@talxis/base-controls 1.2605.1 → 1.2606.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) 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/Grid/cells/cell/Cell.js +2 -6
  4. package/dist/components/Grid/cells/cell/Cell.js.map +1 -1
  5. package/dist/components/Grid/column-headers/column-header/ColumnHeader.js +1 -1
  6. package/dist/components/Grid/column-headers/column-header/ColumnHeader.js.map +1 -1
  7. package/dist/components/Grid/grid/ag-grid/AgGridModel.js +1 -1
  8. package/dist/components/Grid/grid/ag-grid/AgGridModel.js.map +1 -1
  9. package/dist/components/Lookup/Lookup.js +4 -1
  10. package/dist/components/Lookup/Lookup.js.map +1 -1
  11. package/dist/components/Lookup/components/TargetSelector.js +1 -1
  12. package/dist/components/Lookup/components/TargetSelector.js.map +1 -1
  13. package/dist/components/Lookup/hooks/useLookup.d.ts +8 -0
  14. package/dist/components/Lookup/translations.d.ts +8 -0
  15. package/dist/components/Lookup/translations.js +8 -0
  16. package/dist/components/Lookup/translations.js.map +1 -1
  17. package/dist/components/TaskGrid/TaskGrid.js +5 -6
  18. package/dist/components/TaskGrid/TaskGrid.js.map +1 -1
  19. package/dist/components/TaskGrid/TaskGridDatasetControl.d.ts +18 -5
  20. package/dist/components/TaskGrid/TaskGridDatasetControl.js +63 -30
  21. package/dist/components/TaskGrid/TaskGridDatasetControl.js.map +1 -1
  22. package/dist/components/TaskGrid/TaskGridDatasetControlFactory.d.ts +3 -2
  23. package/dist/components/TaskGrid/TaskGridDatasetControlFactory.js +10 -5
  24. package/dist/components/TaskGrid/TaskGridDatasetControlFactory.js.map +1 -1
  25. package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/AddTaskButton.js +3 -8
  26. package/dist/components/TaskGrid/components/grid/cell-renderers/add-task-button/AddTaskButton.js.map +1 -1
  27. package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/LookupManyCellRenderer.d.ts +7 -0
  28. package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/LookupManyCellRenderer.js +102 -0
  29. package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/LookupManyCellRenderer.js.map +1 -0
  30. package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/index.d.ts +1 -0
  31. package/dist/components/TaskGrid/components/grid/cell-renderers/lookup-many/index.js +2 -0
  32. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.d.ts +1 -0
  33. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.js +4 -5
  34. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/PercentComplete.js.map +1 -1
  35. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/index.js +1 -1
  36. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/styles.d.ts +0 -6
  37. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/styles.js +0 -6
  38. package/dist/components/TaskGrid/components/grid/cell-renderers/percent-complete/styles.js.map +1 -1
  39. package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.d.ts +2 -7
  40. package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.js +47 -16
  41. package/dist/components/TaskGrid/components/grid/grid-customizer/GridCustomizer.js.map +1 -1
  42. package/dist/components/TaskGrid/components/grid/grid-drag-handler/GridDragHandler.js.map +1 -1
  43. package/dist/components/TaskGrid/components/grid/group-cell/styles.d.ts +3 -0
  44. package/dist/components/TaskGrid/components/grid/group-cell/styles.js +3 -0
  45. package/dist/components/TaskGrid/components/grid/group-cell/styles.js.map +1 -1
  46. package/dist/components/TaskGrid/components/grid/lookup-many/LookupMany.d.ts +13 -0
  47. package/dist/components/TaskGrid/components/grid/lookup-many/LookupMany.js +84 -0
  48. package/dist/components/TaskGrid/components/grid/lookup-many/LookupMany.js.map +1 -0
  49. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/ColorfulLookupMany.d.ts +5 -0
  50. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/ColorfulLookupMany.js +12 -0
  51. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/ColorfulLookupMany.js.map +1 -0
  52. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/index.d.ts +2 -0
  53. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/index.js +13 -0
  54. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/index.js.map +1 -0
  55. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/multi-value-container/MultiValueContainer.d.ts +3 -0
  56. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/multi-value-container/MultiValueContainer.js +17 -0
  57. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/multi-value-container/MultiValueContainer.js.map +1 -0
  58. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/multi-value-container/index.d.ts +1 -0
  59. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/multi-value-container/index.js +2 -0
  60. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/Option.d.ts +3 -0
  61. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/Option.js +17 -0
  62. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/Option.js.map +1 -0
  63. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/index.d.ts +1 -0
  64. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/index.js +2 -0
  65. package/dist/components/TaskGrid/{data-providers/custom-columns-data-provider → components/grid/lookup-many/colorful-lookup-many/components/option}/index.js.map +1 -1
  66. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/styles.d.ts +14 -0
  67. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/styles.js +21 -0
  68. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/components/option/styles.js.map +1 -0
  69. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/context.d.ts +4 -0
  70. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/context.js +9 -0
  71. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/context.js.map +1 -0
  72. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/index.d.ts +1 -0
  73. package/dist/components/TaskGrid/components/grid/lookup-many/colorful-lookup-many/index.js +2 -0
  74. package/dist/components/TaskGrid/{data-providers/saved-query-data-provider → components/grid/lookup-many/colorful-lookup-many}/index.js.map +1 -1
  75. package/dist/components/TaskGrid/components/grid/lookup-many/components/components.d.ts +11 -0
  76. package/dist/components/TaskGrid/components/grid/lookup-many/components/components.js +17 -0
  77. package/dist/components/TaskGrid/components/grid/lookup-many/components/components.js.map +1 -0
  78. package/dist/components/TaskGrid/components/grid/lookup-many/components/index.d.ts +1 -0
  79. package/dist/components/TaskGrid/components/grid/lookup-many/components/index.js +2 -0
  80. package/dist/components/TaskGrid/components/grid/lookup-many/components/index.js.map +1 -0
  81. package/dist/components/TaskGrid/components/grid/lookup-many/components/menu/Menu.d.ts +3 -0
  82. package/dist/components/TaskGrid/components/grid/lookup-many/components/menu/Menu.js +10 -0
  83. package/dist/components/TaskGrid/components/grid/lookup-many/components/menu/Menu.js.map +1 -0
  84. package/dist/components/TaskGrid/components/grid/lookup-many/components/menu/index.d.ts +1 -0
  85. package/dist/components/TaskGrid/components/grid/lookup-many/components/menu/index.js +2 -0
  86. package/dist/components/TaskGrid/components/grid/lookup-many/components/menu/index.js.map +1 -0
  87. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/MultiValueContainer.d.ts +7 -0
  88. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/MultiValueContainer.js +16 -0
  89. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/MultiValueContainer.js.map +1 -0
  90. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/index.d.ts +1 -0
  91. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/index.js +2 -0
  92. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/index.js.map +1 -0
  93. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/styles.d.ts +18 -0
  94. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/styles.js +24 -0
  95. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-container/styles.js.map +1 -0
  96. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/MultiValueLabel.d.ts +3 -0
  97. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/MultiValueLabel.js +21 -0
  98. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/MultiValueLabel.js.map +1 -0
  99. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/index.d.ts +1 -0
  100. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/index.js +2 -0
  101. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/index.js.map +1 -0
  102. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/styles.d.ts +15 -0
  103. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/styles.js +22 -0
  104. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-label/styles.js.map +1 -0
  105. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/MultiValueRemove.d.ts +3 -0
  106. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/MultiValueRemove.js +18 -0
  107. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/MultiValueRemove.js.map +1 -0
  108. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/styles.d.ts +22 -0
  109. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/styles.js +28 -0
  110. package/dist/components/TaskGrid/components/grid/lookup-many/components/multi-value-remove/styles.js.map +1 -0
  111. package/dist/components/TaskGrid/components/grid/lookup-many/context.d.ts +4 -0
  112. package/dist/components/TaskGrid/components/grid/lookup-many/context.js +9 -0
  113. package/dist/components/TaskGrid/components/grid/lookup-many/context.js.map +1 -0
  114. package/dist/components/TaskGrid/components/grid/lookup-many/index.d.ts +4 -0
  115. package/dist/components/TaskGrid/components/grid/lookup-many/index.js +5 -0
  116. package/dist/components/TaskGrid/components/grid/lookup-many/index.js.map +1 -0
  117. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/PeopleLookupMany.d.ts +5 -0
  118. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/PeopleLookupMany.js +12 -0
  119. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/PeopleLookupMany.js.map +1 -0
  120. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/components.d.ts +2 -0
  121. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/components.js +15 -0
  122. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/components.js.map +1 -0
  123. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/index.d.ts +1 -0
  124. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/index.js +2 -0
  125. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/index.js.map +1 -0
  126. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/MultiValueContainer.d.ts +3 -0
  127. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/MultiValueContainer.js +12 -0
  128. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/MultiValueContainer.js.map +1 -0
  129. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/index.d.ts +1 -0
  130. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/index.js +2 -0
  131. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/index.js.map +1 -0
  132. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/styles.d.ts +9 -0
  133. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/styles.js +18 -0
  134. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-container/styles.js.map +1 -0
  135. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/MultiValueLabel.d.ts +3 -0
  136. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/MultiValueLabel.js +17 -0
  137. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/MultiValueLabel.js.map +1 -0
  138. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/index.d.ts +1 -0
  139. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/index.js +2 -0
  140. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/index.js.map +1 -0
  141. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/styles.d.ts +5 -0
  142. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/styles.js +6 -0
  143. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/multi-value-label/styles.js.map +1 -0
  144. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/Option.d.ts +3 -0
  145. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/Option.js +16 -0
  146. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/Option.js.map +1 -0
  147. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/index.d.ts +1 -0
  148. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/index.js +2 -0
  149. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/index.js.map +1 -0
  150. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/styles.d.ts +10 -0
  151. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/styles.js +11 -0
  152. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/components/option/styles.js.map +1 -0
  153. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/context.d.ts +4 -0
  154. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/context.js +9 -0
  155. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/context.js.map +1 -0
  156. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/index.d.ts +1 -0
  157. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/index.js +2 -0
  158. package/dist/components/TaskGrid/components/grid/lookup-many/people-lookup-many/index.js.map +1 -0
  159. package/dist/components/TaskGrid/components/grid/multi-record-selector/MultiRecordSelector.d.ts +1 -0
  160. package/dist/components/TaskGrid/components/grid/multi-record-selector/MultiRecordSelector.js +27 -14
  161. package/dist/components/TaskGrid/components/grid/multi-record-selector/MultiRecordSelector.js.map +1 -1
  162. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/MultiValueContainer.d.ts +3 -0
  163. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/MultiValueContainer.js +13 -0
  164. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/MultiValueContainer.js.map +1 -0
  165. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/styles.d.ts +18 -0
  166. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/styles.js +24 -0
  167. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-container/styles.js.map +1 -0
  168. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/MultiValueLabel.d.ts +3 -0
  169. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/MultiValueLabel.js +20 -0
  170. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/MultiValueLabel.js.map +1 -0
  171. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/styles.d.ts +12 -0
  172. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/styles.js +19 -0
  173. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-label/styles.js.map +1 -0
  174. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/MultiValueRemove.d.ts +3 -0
  175. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/MultiValueRemove.js +16 -0
  176. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/MultiValueRemove.js.map +1 -0
  177. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/styles.d.ts +22 -0
  178. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/styles.js +28 -0
  179. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/multi-value-remove/styles.js.map +1 -0
  180. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/option/Option.d.ts +3 -0
  181. package/dist/components/TaskGrid/components/grid/multi-record-selector/components/option/styles.d.ts +16 -0
  182. package/dist/components/TaskGrid/components/grid/multi-record-selector/styles.d.ts +3 -0
  183. package/dist/components/TaskGrid/components/grid/multi-record-selector/styles.js +15 -0
  184. package/dist/components/TaskGrid/components/grid/multi-record-selector/styles.js.map +1 -0
  185. package/dist/components/TaskGrid/components/header/Header.d.ts +1 -1
  186. package/dist/components/TaskGrid/components/header/Header.js +62 -47
  187. package/dist/components/TaskGrid/components/header/Header.js.map +1 -1
  188. package/dist/components/TaskGrid/components/header/edit-columns/EditColumns.js.map +1 -1
  189. package/dist/components/TaskGrid/components/header/view-switcher/create-view-dialog/CreateViewDialog.js.map +1 -1
  190. package/dist/components/TaskGrid/components/header/view-switcher/view-manager/ViewManager.js.map +1 -1
  191. package/dist/components/TaskGrid/context.d.ts +5 -4
  192. package/dist/components/TaskGrid/context.js.map +1 -1
  193. package/dist/components/TaskGrid/extensions/dataverse/DataverseCustomColumnsStrategy.d.ts +75 -0
  194. package/dist/components/TaskGrid/{data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.js → extensions/dataverse/DataverseCustomColumnsStrategy.js} +56 -21
  195. package/dist/components/TaskGrid/extensions/dataverse/DataverseCustomColumnsStrategy.js.map +1 -0
  196. package/dist/components/TaskGrid/extensions/dataverse/DataverseGridCustomizerStrategy.d.ts +20 -0
  197. package/dist/components/TaskGrid/extensions/dataverse/DataverseGridCustomizerStrategy.js +41 -0
  198. package/dist/components/TaskGrid/extensions/dataverse/DataverseGridCustomizerStrategy.js.map +1 -0
  199. package/dist/components/TaskGrid/extensions/dataverse/DataverseSavedQueryStrategy.d.ts +49 -0
  200. package/dist/components/TaskGrid/{data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.js → extensions/dataverse/DataverseSavedQueryStrategy.js} +41 -19
  201. package/dist/components/TaskGrid/extensions/dataverse/DataverseSavedQueryStrategy.js.map +1 -0
  202. package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskGridDescriptor.d.ts +102 -0
  203. package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskGridDescriptor.js +184 -0
  204. package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskGridDescriptor.js.map +1 -0
  205. package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskStrategy.d.ts +124 -0
  206. package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskStrategy.js +498 -0
  207. package/dist/components/TaskGrid/extensions/dataverse/DataverseTaskStrategy.js.map +1 -0
  208. package/dist/components/TaskGrid/extensions/dataverse/index.d.ts +5 -0
  209. package/dist/components/TaskGrid/extensions/dataverse/index.js +6 -0
  210. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/LookupManyHandler.d.ts +65 -0
  211. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/LookupManyHandler.js +208 -0
  212. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/LookupManyHandler.js.map +1 -0
  213. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlDataProviderFactory.d.ts +11 -0
  214. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlDataProviderFactory.js +16 -0
  215. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlDataProviderFactory.js.map +1 -0
  216. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlLookupManyCellRenderer.d.ts +2 -0
  217. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlLookupManyCellRenderer.js +35 -0
  218. package/dist/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlLookupManyCellRenderer.js.map +1 -0
  219. package/dist/components/TaskGrid/interfaces.d.ts +58 -26
  220. package/dist/components/TaskGrid/labels.d.ts +1 -15
  221. package/dist/components/TaskGrid/labels.js +2 -16
  222. package/dist/components/TaskGrid/labels.js.map +1 -1
  223. package/dist/components/TaskGrid/{data-providers/custom-columns-data-provider → providers/custom-columns}/CustomColumnsDataProvider.d.ts +11 -1
  224. package/dist/components/TaskGrid/{data-providers/custom-columns-data-provider → providers/custom-columns}/CustomColumnsDataProvider.js +3 -0
  225. package/dist/components/TaskGrid/providers/custom-columns/CustomColumnsDataProvider.js.map +1 -0
  226. package/dist/components/TaskGrid/providers/custom-columns/index.d.ts +1 -0
  227. package/dist/components/TaskGrid/providers/custom-columns/index.js +2 -0
  228. package/dist/components/TaskGrid/providers/custom-columns/index.js.map +1 -0
  229. package/dist/components/TaskGrid/providers/index.d.ts +3 -0
  230. package/dist/components/TaskGrid/providers/index.js +4 -0
  231. package/dist/components/TaskGrid/providers/index.js.map +1 -0
  232. package/dist/components/TaskGrid/{data-providers/saved-query-data-provider → providers/saved-query}/SavedQueryDataProvider.d.ts +14 -9
  233. package/dist/components/TaskGrid/{data-providers/saved-query-data-provider → providers/saved-query}/SavedQueryDataProvider.js +89 -69
  234. package/dist/components/TaskGrid/providers/saved-query/SavedQueryDataProvider.js.map +1 -0
  235. package/dist/components/TaskGrid/providers/saved-query/index.d.ts +1 -0
  236. package/dist/components/TaskGrid/providers/saved-query/index.js +2 -0
  237. package/dist/components/TaskGrid/providers/saved-query/index.js.map +1 -0
  238. package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/TaskDataProvider.d.ts +25 -39
  239. package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/TaskDataProvider.js +51 -34
  240. package/dist/components/TaskGrid/providers/task/TaskDataProvider.js.map +1 -0
  241. package/dist/components/TaskGrid/providers/task/index.js.map +1 -0
  242. package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/RecordTree.d.ts +8 -0
  243. package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/RecordTree.js +2 -0
  244. package/dist/components/TaskGrid/providers/task/record-tree/RecordTree.js.map +1 -0
  245. package/dist/components/TaskGrid/providers/task/record-tree/index.js.map +1 -0
  246. package/dist/components/TaskGrid/providers/task/record-tree/patchDataBuilderPrepare.js.map +1 -0
  247. package/dist/index.d.ts +234 -196
  248. package/dist/index.js +1 -0
  249. package/dist/index.js.map +1 -1
  250. package/dist/utils/index.d.ts +1 -0
  251. package/dist/utils/index.js +1 -0
  252. package/dist/utils/index.js.map +1 -1
  253. package/dist/utils/localization/LocalizationService.d.ts +15 -0
  254. package/dist/utils/localization/LocalizationService.js +17 -0
  255. package/dist/utils/localization/LocalizationService.js.map +1 -0
  256. package/dist/utils/localization/index.d.ts +1 -0
  257. package/dist/utils/localization/index.js +2 -0
  258. package/dist/utils/localization/index.js.map +1 -0
  259. package/package.json +5 -4
  260. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/CustomColumnsDataProvider.js.map +0 -1
  261. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.d.ts +0 -33
  262. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/TalxisCustomColumnsDataProviderStrategy.js.map +0 -1
  263. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/index.d.ts +0 -2
  264. package/dist/components/TaskGrid/data-providers/custom-columns-data-provider/index.js +0 -3
  265. package/dist/components/TaskGrid/data-providers/index.d.ts +0 -3
  266. package/dist/components/TaskGrid/data-providers/index.js +0 -6
  267. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/SavedQueryDataProvider.js.map +0 -1
  268. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.d.ts +0 -21
  269. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/TalxisSavedQueryDataProvider.js.map +0 -1
  270. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/index.d.ts +0 -2
  271. package/dist/components/TaskGrid/data-providers/saved-query-data-provider/index.js +0 -3
  272. package/dist/components/TaskGrid/data-providers/task-data-provider/TaskDataProvider.js.map +0 -1
  273. package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/RecordTree.js.map +0 -1
  274. package/dist/components/TaskGrid/data-providers/task-data-provider/record-tree/patchDataBuilderPrepare.js.map +0 -1
  275. /package/dist/components/TaskGrid/{data-providers/task-data-provider → components/grid/cell-renderers/lookup-many}/index.js.map +0 -0
  276. /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
  277. /package/dist/components/TaskGrid/{data-providers → extensions/dataverse}/index.js.map +0 -0
  278. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/index.d.ts +0 -0
  279. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/index.js +0 -0
  280. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/index.d.ts +0 -0
  281. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/index.js +0 -0
  282. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/patchDataBuilderPrepare.d.ts +0 -0
  283. /package/dist/components/TaskGrid/{data-providers/task-data-provider → providers/task}/record-tree/patchDataBuilderPrepare.js +0 -0
@@ -0,0 +1,65 @@
1
+ /// <reference types="@types/xrm" />
2
+ import { IRecord, IRecordSaveOperationResult } from "@talxis/client-libraries";
3
+ /** Constructor parameters required to resolve relationship metadata. */
4
+ interface IManyToManyTestParams {
5
+ /** Parent entity navigation property name that identifies the relationship. */
6
+ navigationPropertyName: string;
7
+ /** Logical name of the source entity for association operations. */
8
+ entityName: string;
9
+ /** Optional custom intersection configuration for non-standard many-to-many persistence. */
10
+ customIntersection?: ICustomIntersection;
11
+ }
12
+ /** Custom intersection mapping used for manual association/disassociation. */
13
+ interface ICustomIntersection {
14
+ /** Navigation property name from intersection entity to related entity. */
15
+ referencingEntityNavigationPropertyName: string;
16
+ }
17
+ /** Contract for a lookup-many relationship handler. */
18
+ export interface ILookupManyHandler {
19
+ /** Loads relationship metadata and prepares the handler for usage. */
20
+ init(): Promise<void>;
21
+ /** Returns OData expand segment for the configured relationship. */
22
+ getExpand(select?: string): string;
23
+ isCustomIntersection(): boolean;
24
+ /** Returns cached metadata for the custom intersection entity. Throws if custom intersection is not configured or metadata is unavailable. */
25
+ getCustomIntersectionEntityMetadata: () => Xrm.Metadata.EntityMetadata;
26
+ /** Saves lookup-many association changes for a record. */
27
+ saveRecord(record: IRecord, lookupManyColName: string): Promise<IRecordSaveOperationResult>;
28
+ }
29
+ /**
30
+ * Handles metadata resolution and associate/disassociate operations
31
+ * for lookup-many fields in task grid records.
32
+ */
33
+ export declare class LookupManyHandler implements ILookupManyHandler {
34
+ private _relationship?;
35
+ private _initialized;
36
+ private _customIntersection?;
37
+ private _customIntersectionEntityMetadata?;
38
+ private _entityName;
39
+ private _navigationPropertyName;
40
+ constructor(params: IManyToManyTestParams);
41
+ /** Initializes the handler and caches relationship metadata. */
42
+ init(): Promise<void>;
43
+ /**
44
+ * Builds an OData expand clause for the configured relationship.
45
+ * @param select Optional comma-separated projection for expanded records.
46
+ */
47
+ getExpand(select?: string): string;
48
+ isCustomIntersection(): boolean;
49
+ getCustomIntersectionEntityMetadata(): Xrm.Metadata.EntityMetadata;
50
+ /**
51
+ * Persists association changes by comparing current values with original values.
52
+ * @param record Record being saved.
53
+ * @param lookupManyColName Logical column name for the lookup-many field.
54
+ */
55
+ saveRecord(record: IRecord, lookupManyColName: string): Promise<IRecordSaveOperationResult>;
56
+ private _getRelationship;
57
+ private _fetchRelationship;
58
+ private _executeAssociation;
59
+ private _createCustomIntersectionRecord;
60
+ private _deleteCustomIntersectionRecord;
61
+ private _getCustomIntersection;
62
+ private _buildBaseRequest;
63
+ private _getRelatedEntityName;
64
+ }
65
+ export {};
@@ -0,0 +1,208 @@
1
+ /** Supported Dataverse relationship kinds used by the handler. */
2
+ var RelationshipType;
3
+ (function (RelationshipType) {
4
+ RelationshipType[RelationshipType["OneToMany"] = 0] = "OneToMany";
5
+ RelationshipType[RelationshipType["ManyToMany"] = 1] = "ManyToMany";
6
+ })(RelationshipType || (RelationshipType = {}));
7
+ /**
8
+ * Handles metadata resolution and associate/disassociate operations
9
+ * for lookup-many fields in task grid records.
10
+ */
11
+ class LookupManyHandler {
12
+ constructor(params) {
13
+ this._initialized = false;
14
+ this._navigationPropertyName = params.navigationPropertyName;
15
+ this._entityName = params.entityName;
16
+ this._customIntersection = params.customIntersection;
17
+ }
18
+ /** Initializes the handler and caches relationship metadata. */
19
+ async init() {
20
+ if (this._initialized)
21
+ return;
22
+ this._relationship = await this._fetchRelationship();
23
+ if (this._customIntersection) {
24
+ this._customIntersectionEntityMetadata = await window.Xrm.Utility.getEntityMetadata(this._getRelatedEntityName());
25
+ }
26
+ this._initialized = true;
27
+ }
28
+ /**
29
+ * Builds an OData expand clause for the configured relationship.
30
+ * @param select Optional comma-separated projection for expanded records.
31
+ */
32
+ getExpand(select) {
33
+ if (this.isCustomIntersection()) {
34
+ const intersectionMetadata = this.getCustomIntersectionEntityMetadata();
35
+ const intersectionIdField = intersectionMetadata.PrimaryIdAttribute;
36
+ const relatedNavProp = this._customIntersection.referencingEntityNavigationPropertyName;
37
+ const expandClause = select ? `($select=${select})` : '';
38
+ return `${this._navigationPropertyName}($select=${intersectionIdField};$expand=${relatedNavProp}${expandClause})`;
39
+ }
40
+ const relationship = this._getRelationship();
41
+ //@ts-ignore - typings
42
+ if (relationship.RelationshipType === RelationshipType.OneToMany) {
43
+ return `${relationship.ReferencedEntityNavigationPropertyName}${select ? `($select=${select})` : ''}`;
44
+ }
45
+ else {
46
+ return `${this._navigationPropertyName}${select ? `($select=${select})` : ''}`;
47
+ }
48
+ }
49
+ isCustomIntersection() {
50
+ return !!this._customIntersection;
51
+ }
52
+ getCustomIntersectionEntityMetadata() {
53
+ if (!this._customIntersection) {
54
+ throw new Error('Custom intersection configuration is missing. Please provide referencingEntityNavigationPropertyName in the constructor parameters.');
55
+ }
56
+ if (!this._customIntersectionEntityMetadata) {
57
+ throw new Error('Custom intersection metadata is not available. Ensure init() was called before metadata access.');
58
+ }
59
+ return this._customIntersectionEntityMetadata;
60
+ }
61
+ /**
62
+ * Persists association changes by comparing current values with original values.
63
+ * @param record Record being saved.
64
+ * @param lookupManyColName Logical column name for the lookup-many field.
65
+ */
66
+ async saveRecord(record, lookupManyColName) {
67
+ const recordId = record.getRecordId();
68
+ const newValue = record.getValue(lookupManyColName) ?? [];
69
+ //@ts-ignore - typings
70
+ const previousValue = record.getField(lookupManyColName)._originalValue ?? [];
71
+ const toAdd = newValue.filter((newValue) => !previousValue.some((origValue) => origValue.id.guid === newValue.id.guid));
72
+ const toRemove = previousValue.filter((origValue) => !newValue.some((newValue) => newValue.id.guid === origValue.id.guid));
73
+ if (toAdd.length === 0 && toRemove.length === 0) {
74
+ return {
75
+ success: true,
76
+ recordId: recordId,
77
+ fields: [],
78
+ };
79
+ }
80
+ const deleteResult = await this._executeAssociation('Disassociate', recordId, toRemove);
81
+ const addResult = await this._executeAssociation('Associate', recordId, toAdd);
82
+ const success = (deleteResult?.success ?? true) && (addResult?.success ?? true);
83
+ const errors = [...(deleteResult?.errors ?? []), ...(addResult?.errors ?? [])];
84
+ return {
85
+ success,
86
+ recordId: recordId,
87
+ fields: [lookupManyColName],
88
+ errors
89
+ };
90
+ }
91
+ _getRelationship() {
92
+ if (!this._relationship) {
93
+ throw new Error('Relationship not loaded. Have you called init()?');
94
+ }
95
+ return this._relationship;
96
+ }
97
+ async _fetchRelationship() {
98
+ const metadata = await window.Xrm.Utility.getEntityMetadata(this._entityName);
99
+ const relationships = [...metadata.OneToManyRelationships.getAll(), ...metadata.ManyToManyRelationships.getAll()];
100
+ const relationship = relationships.find(rel => {
101
+ //@ts-ignore - typings
102
+ if (rel.RelationshipType === RelationshipType.ManyToMany) {
103
+ const m2m = rel;
104
+ return m2m.Entity1NavigationPropertyName === this._navigationPropertyName ||
105
+ m2m.Entity2NavigationPropertyName === this._navigationPropertyName;
106
+ }
107
+ const o2m = rel;
108
+ return o2m.ReferencedEntityNavigationPropertyName === this._navigationPropertyName ||
109
+ o2m.ReferencingEntityNavigationPropertyName === this._navigationPropertyName;
110
+ });
111
+ if (!relationship) {
112
+ throw new Error(`Could not find navigation property name ${this._navigationPropertyName} on ${metadata.LogicalName}`);
113
+ }
114
+ return relationship;
115
+ }
116
+ async _executeAssociation(operationName, parentId, relatedRecords) {
117
+ if (relatedRecords.length === 0) {
118
+ return null;
119
+ }
120
+ try {
121
+ if (operationName === 'Disassociate') {
122
+ if (this._customIntersection) {
123
+ await this._deleteCustomIntersectionRecord(parentId, relatedRecords);
124
+ }
125
+ else {
126
+ await Promise.all(relatedRecords.map(record => window.Xrm.WebApi.online.execute({
127
+ ...this._buildBaseRequest(operationName, parentId),
128
+ relatedEntityId: record.id.guid,
129
+ })));
130
+ }
131
+ }
132
+ else {
133
+ if (this._customIntersection) {
134
+ await Promise.all(relatedRecords.map(record => this._createCustomIntersectionRecord(parentId, record)));
135
+ }
136
+ else {
137
+ await window.Xrm.WebApi.online.execute({
138
+ ...this._buildBaseRequest(operationName, parentId),
139
+ relatedEntities: relatedRecords.map(record => ({ id: record.id.guid, entityType: this._getRelatedEntityName() })),
140
+ });
141
+ }
142
+ }
143
+ return { recordId: parentId, success: true, fields: [] };
144
+ }
145
+ catch (err) {
146
+ return { recordId: parentId, success: false, fields: [], errors: [{ message: err.message }] };
147
+ }
148
+ }
149
+ async _createCustomIntersectionRecord(parentId, relatedRecord) {
150
+ const parentEntityMetadata = await window.Xrm.Utility.getEntityMetadata(this._entityName);
151
+ const intersectionEntityMetadata = this.getCustomIntersectionEntityMetadata();
152
+ const relatedEntityRelationship = intersectionEntityMetadata.ManyToOneRelationships.getAll().find((rel) => rel.ReferencingEntityNavigationPropertyName === this._getCustomIntersection().referencingEntityNavigationPropertyName);
153
+ const relatedEntityMetadata = await window.Xrm.Utility.getEntityMetadata(relatedEntityRelationship.ReferencedEntity);
154
+ const payload = {
155
+ //@ts-ignore - typings
156
+ [`${this._getRelationship().ReferencingEntityNavigationPropertyName}@odata.bind`]: `${parentEntityMetadata.EntitySetName}(${parentId})`,
157
+ [`${this._getCustomIntersection().referencingEntityNavigationPropertyName}@odata.bind`]: `${relatedEntityMetadata.EntitySetName}(${relatedRecord.id.guid})`
158
+ };
159
+ const result = await window.Xrm.WebApi.createRecord(intersectionEntityMetadata.LogicalName, payload);
160
+ //this should be done through setValue
161
+ relatedRecord.rawData = {
162
+ ...relatedRecord.rawData,
163
+ __intersectionId: result.id
164
+ };
165
+ }
166
+ async _deleteCustomIntersectionRecord(parentId, relatedRecords) {
167
+ const intersectionEntityMetadata = this.getCustomIntersectionEntityMetadata();
168
+ await Promise.all(relatedRecords.map(async (record) => {
169
+ const intersectionId = record.rawData?.__intersectionId;
170
+ if (!intersectionId) {
171
+ throw new Error('Missing intersection record ID for disassociation. Cannot proceed with custom intersection deletion.');
172
+ }
173
+ await window.Xrm.WebApi.deleteRecord(intersectionEntityMetadata.LogicalName, intersectionId);
174
+ }));
175
+ }
176
+ _getCustomIntersection() {
177
+ if (!this._customIntersection) {
178
+ throw new Error('Custom intersection configuration is missing. Please provide referencingEntityNavigationPropertyName in the constructor parameters.');
179
+ }
180
+ return this._customIntersection;
181
+ }
182
+ _buildBaseRequest(operationName, parentId) {
183
+ return {
184
+ getMetadata: () => ({
185
+ operationType: 2,
186
+ operationName,
187
+ parameterTypes: {},
188
+ }),
189
+ target: { id: parentId, entityType: this._entityName },
190
+ relationship: this._getRelationship().SchemaName,
191
+ };
192
+ }
193
+ _getRelatedEntityName() {
194
+ const relationship = this._getRelationship();
195
+ //@ts-ignore - typings
196
+ if (relationship.RelationshipType === RelationshipType.ManyToMany) {
197
+ const rel = relationship;
198
+ const isEntity1Source = rel.Entity1LogicalName === this._entityName;
199
+ return isEntity1Source ? rel.Entity2LogicalName : rel.Entity1LogicalName;
200
+ }
201
+ else {
202
+ return relationship.ReferencingEntity;
203
+ }
204
+ }
205
+ }
206
+
207
+ export { LookupManyHandler };
208
+ //# sourceMappingURL=LookupManyHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LookupManyHandler.js","sources":["../../../../../../src/components/TaskGrid/extensions/dataverse/lookup-many/LookupManyHandler.ts"],"sourcesContent":["import { IRecord, IRecordSaveOperationResult } from \"@talxis/client-libraries\";\nimport { IManyToManyRelationship, IRelationship } from \"@talxis/client-metadata/dist/interfaces/entity/IEntityDefinition\";\n\n\n/** Supported Dataverse relationship kinds used by the handler. */\nenum RelationshipType {\n OneToMany = 0,\n ManyToMany = 1\n}\n\n/** Constructor parameters required to resolve relationship metadata. */\ninterface IManyToManyTestParams {\n /** Parent entity navigation property name that identifies the relationship. */\n navigationPropertyName: string;\n /** Logical name of the source entity for association operations. */\n entityName: string;\n\n /** Optional custom intersection configuration for non-standard many-to-many persistence. */\n customIntersection?: ICustomIntersection;\n}\n\n/** Custom intersection mapping used for manual association/disassociation. */\ninterface ICustomIntersection {\n /** Navigation property name from intersection entity to related entity. */\n referencingEntityNavigationPropertyName: string;\n}\n\n/** Extended entity reference used to carry raw lookup payload and custom intersection ids. */\ninterface IRelatedEntityReference extends ComponentFramework.EntityReference {\n rawData?: {\n [key: string]: any;\n __intersectionId?: string;\n }\n}\n\n/** Contract for a lookup-many relationship handler. */\nexport interface ILookupManyHandler {\n /** Loads relationship metadata and prepares the handler for usage. */\n init(): Promise<void>;\n /** Returns OData expand segment for the configured relationship. */\n getExpand(select?: string): string;\n //*/ Indicates whether this handler uses a custom intersection entity for association management. */\n isCustomIntersection(): boolean;\n /** Returns cached metadata for the custom intersection entity. Throws if custom intersection is not configured or metadata is unavailable. */\n getCustomIntersectionEntityMetadata: () => Xrm.Metadata.EntityMetadata;\n /** Saves lookup-many association changes for a record. */\n saveRecord(record: IRecord, lookupManyColName: string): Promise<IRecordSaveOperationResult>;\n}\n\n\n/**\n * Handles metadata resolution and associate/disassociate operations\n * for lookup-many fields in task grid records.\n */\nexport class LookupManyHandler implements ILookupManyHandler {\n private _relationship?: IRelationship | IManyToManyRelationship;\n private _initialized: boolean = false;\n private _customIntersection?: ICustomIntersection;\n private _customIntersectionEntityMetadata?: Xrm.Metadata.EntityMetadata | null;\n private _entityName: string;\n private _navigationPropertyName: string;\n\n constructor(params: IManyToManyTestParams) {\n this._navigationPropertyName = params.navigationPropertyName;\n this._entityName = params.entityName;\n this._customIntersection = params.customIntersection;\n }\n\n /** Initializes the handler and caches relationship metadata. */\n public async init() {\n if (this._initialized) return;\n this._relationship = await this._fetchRelationship();\n if(this._customIntersection) {\n this._customIntersectionEntityMetadata = await window.Xrm.Utility.getEntityMetadata(this._getRelatedEntityName());\n }\n this._initialized = true;\n }\n\n /**\n * Builds an OData expand clause for the configured relationship.\n * @param select Optional comma-separated projection for expanded records.\n */\n public getExpand(select?: string): string {\n if (this.isCustomIntersection()) {\n const intersectionMetadata = this.getCustomIntersectionEntityMetadata();\n const intersectionIdField = intersectionMetadata.PrimaryIdAttribute;\n const relatedNavProp = this._customIntersection!.referencingEntityNavigationPropertyName;\n const expandClause = select ? `($select=${select})` : '';\n return `${this._navigationPropertyName}($select=${intersectionIdField};$expand=${relatedNavProp}${expandClause})`;\n }\n const relationship = this._getRelationship();\n //@ts-ignore - typings\n if (relationship.RelationshipType === RelationshipType.OneToMany) {\n return `${(relationship as IRelationship).ReferencedEntityNavigationPropertyName}${select ? `($select=${select})` : ''}`;\n }\n else {\n const rel = relationship as IManyToManyRelationship;\n return `${this._navigationPropertyName}${select ? `($select=${select})` : ''}`;\n }\n }\n\n public isCustomIntersection(): boolean {\n return !!this._customIntersection;\n }\n\n public getCustomIntersectionEntityMetadata(): Xrm.Metadata.EntityMetadata {\n if (!this._customIntersection) {\n throw new Error('Custom intersection configuration is missing. Please provide referencingEntityNavigationPropertyName in the constructor parameters.');\n }\n if (!this._customIntersectionEntityMetadata) {\n throw new Error('Custom intersection metadata is not available. Ensure init() was called before metadata access.');\n }\n return this._customIntersectionEntityMetadata;\n }\n\n /**\n * Persists association changes by comparing current values with original values.\n * @param record Record being saved.\n * @param lookupManyColName Logical column name for the lookup-many field.\n */\n public async saveRecord(record: IRecord, lookupManyColName: string): Promise<IRecordSaveOperationResult> {\n const recordId = record.getRecordId();\n const newValue = record.getValue(lookupManyColName) ?? [];\n //@ts-ignore - typings\n const previousValue = record.getField(lookupManyColName)._originalValue ?? [];\n\n const toAdd: ComponentFramework.EntityReference[] = newValue.filter((newValue: ComponentFramework.EntityReference) =>\n !previousValue.some((origValue: ComponentFramework.EntityReference) => origValue.id.guid === newValue.id.guid)\n );\n const toRemove: ComponentFramework.EntityReference[] = previousValue.filter((origValue: ComponentFramework.EntityReference) =>\n !newValue.some((newValue: ComponentFramework.EntityReference) => newValue.id.guid === origValue.id.guid)\n );\n if (toAdd.length === 0 && toRemove.length === 0) {\n return {\n success: true,\n recordId: recordId,\n fields: [],\n }\n }\n\n const deleteResult = await this._executeAssociation('Disassociate', recordId, toRemove);\n const addResult = await this._executeAssociation('Associate', recordId, toAdd);\n const success = (deleteResult?.success ?? true) && (addResult?.success ?? true);\n const errors = [...(deleteResult?.errors ?? []), ...(addResult?.errors ?? [])];\n\n return {\n success,\n recordId: recordId,\n fields: [lookupManyColName],\n errors\n };\n\n }\n\n private _getRelationship(): IRelationship | IManyToManyRelationship {\n if (!this._relationship) {\n throw new Error('Relationship not loaded. Have you called init()?');\n }\n return this._relationship;\n }\n\n private async _fetchRelationship(): Promise<IRelationship | IManyToManyRelationship> {\n const metadata: any = await window.Xrm.Utility.getEntityMetadata(this._entityName);\n const relationships: (IRelationship | IManyToManyRelationship)[] = [...metadata.OneToManyRelationships.getAll(), ...metadata.ManyToManyRelationships.getAll()];\n const relationship = relationships.find(rel => {\n //@ts-ignore - typings\n if (rel.RelationshipType === RelationshipType.ManyToMany) {\n const m2m = rel as IManyToManyRelationship;\n return m2m.Entity1NavigationPropertyName === this._navigationPropertyName ||\n m2m.Entity2NavigationPropertyName === this._navigationPropertyName;\n }\n const o2m = rel as IRelationship;\n return o2m.ReferencedEntityNavigationPropertyName === this._navigationPropertyName ||\n o2m.ReferencingEntityNavigationPropertyName === this._navigationPropertyName;\n\n });\n if (!relationship) {\n throw new Error(`Could not find navigation property name ${this._navigationPropertyName} on ${metadata.LogicalName}`);\n }\n return relationship;\n }\n\n private async _executeAssociation(operationName: 'Associate' | 'Disassociate', parentId: string, relatedRecords: IRelatedEntityReference[]): Promise<IRecordSaveOperationResult | null> {\n if (relatedRecords.length === 0) {\n return null;\n }\n try {\n if (operationName === 'Disassociate') {\n if (this._customIntersection) {\n await this._deleteCustomIntersectionRecord(parentId, relatedRecords);\n }\n else {\n await Promise.all(relatedRecords.map(record =>\n window.Xrm.WebApi.online.execute({\n ...this._buildBaseRequest(operationName, parentId),\n relatedEntityId: record.id.guid,\n })\n ));\n }\n }\n else {\n if (this._customIntersection) {\n await Promise.all(relatedRecords.map(record => this._createCustomIntersectionRecord(parentId, record)));\n }\n else {\n await window.Xrm.WebApi.online.execute({\n ...this._buildBaseRequest(operationName, parentId),\n relatedEntities: relatedRecords.map(record => ({ id: record.id.guid, entityType: this._getRelatedEntityName() })),\n });\n }\n }\n return { recordId: parentId, success: true, fields: [] };\n }\n catch (err: any) {\n return { recordId: parentId, success: false, fields: [], errors: [{ message: err.message }] };\n }\n }\n\n private async _createCustomIntersectionRecord(parentId: string, relatedRecord: IRelatedEntityReference): Promise<void> {\n const parentEntityMetadata = await window.Xrm.Utility.getEntityMetadata(this._entityName);\n const intersectionEntityMetadata: any = this.getCustomIntersectionEntityMetadata();\n const relatedEntityRelationship = intersectionEntityMetadata.ManyToOneRelationships.getAll().find((rel: any) => rel.ReferencingEntityNavigationPropertyName === this._getCustomIntersection().referencingEntityNavigationPropertyName);\n const relatedEntityMetadata = await window.Xrm.Utility.getEntityMetadata(relatedEntityRelationship.ReferencedEntity);\n\n const payload = {\n //@ts-ignore - typings\n [`${this._getRelationship().ReferencingEntityNavigationPropertyName}@odata.bind`]: `${parentEntityMetadata.EntitySetName}(${parentId})`,\n [`${this._getCustomIntersection().referencingEntityNavigationPropertyName}@odata.bind`]: `${relatedEntityMetadata.EntitySetName}(${relatedRecord.id.guid})`\n }\n const result = await window.Xrm.WebApi.createRecord(intersectionEntityMetadata.LogicalName, payload);\n //this should be done through setValue\n relatedRecord.rawData = {\n ...relatedRecord.rawData,\n __intersectionId: result.id\n }\n\n }\n\n private async _deleteCustomIntersectionRecord(parentId: string, relatedRecords: IRelatedEntityReference[]): Promise<void> {\n const intersectionEntityMetadata: any = this.getCustomIntersectionEntityMetadata();\n await Promise.all(relatedRecords.map(async record => {\n const intersectionId = record.rawData?.__intersectionId;\n if (!intersectionId) {\n throw new Error('Missing intersection record ID for disassociation. Cannot proceed with custom intersection deletion.');\n }\n await window.Xrm.WebApi.deleteRecord(intersectionEntityMetadata.LogicalName, intersectionId);\n }))\n }\n\n private _getCustomIntersection() {\n if (!this._customIntersection) {\n throw new Error('Custom intersection configuration is missing. Please provide referencingEntityNavigationPropertyName in the constructor parameters.');\n }\n return this._customIntersection;\n }\n\n private _buildBaseRequest(operationName: 'Associate' | 'Disassociate', parentId: string) {\n return {\n getMetadata: () => ({\n operationType: 2,\n operationName,\n parameterTypes: {},\n }),\n target: { id: parentId, entityType: this._entityName },\n relationship: this._getRelationship().SchemaName,\n };\n }\n\n private _getRelatedEntityName(): string {\n const relationship = this._getRelationship();\n //@ts-ignore - typings\n if (relationship.RelationshipType === RelationshipType.ManyToMany) {\n const rel = relationship as IManyToManyRelationship;\n const isEntity1Source = rel.Entity1LogicalName === this._entityName;\n return isEntity1Source ? rel.Entity2LogicalName : rel.Entity1LogicalName;\n }\n else {\n return (relationship as IRelationship).ReferencingEntity;\n }\n }\n\n}"],"names":[],"mappings":"AAIA;AACA,IAAK,gBAGJ,CAAA;AAHD,CAAA,UAAK,gBAAgB,EAAA;AACjB,IAAA,gBAAA,CAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;AACb,IAAA,gBAAA,CAAA,gBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AAClB,CAAC,EAHI,gBAAgB,KAAhB,gBAAgB,GAGpB,EAAA,CAAA,CAAA,CAAA;AA0CD;;;AAGG;MACU,iBAAiB,CAAA;AAQ1B,IAAA,WAAA,CAAY,MAA6B,EAAA;QANjC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AAOlC,QAAA,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAC7D,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AACrC,QAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,kBAAkB,CAAC;KACxD;;AAGM,IAAA,MAAM,IAAI,GAAA;QACb,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAC9B,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACrD,IAAG,IAAI,CAAC,mBAAmB,EAAE;AACzB,YAAA,IAAI,CAAC,iCAAiC,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACrH,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KAC5B;AAED;;;AAGG;AACI,IAAA,SAAS,CAAC,MAAe,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;AAC7B,YAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,mCAAmC,EAAE,CAAC;AACxE,YAAA,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,kBAAkB,CAAC;AACpE,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAoB,CAAC,uCAAuC,CAAC;AACzF,YAAA,MAAM,YAAY,GAAG,MAAM,GAAG,CAAY,SAAA,EAAA,MAAM,CAAG,CAAA,CAAA,GAAG,EAAE,CAAC;YACzD,OAAO,CAAA,EAAG,IAAI,CAAC,uBAAuB,CAAA,SAAA,EAAY,mBAAmB,CAAA,SAAA,EAAY,cAAc,CAAA,EAAG,YAAY,CAAA,CAAA,CAAG,CAAC;AACrH,SAAA;AACD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;;AAE7C,QAAA,IAAI,YAAY,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,SAAS,EAAE;AAC9D,YAAA,OAAO,GAAI,YAA8B,CAAC,sCAAsC,CAAA,EAAG,MAAM,GAAG,CAAA,SAAA,EAAY,MAAM,CAAG,CAAA,CAAA,GAAG,EAAE,EAAE,CAAC;AAC5H,SAAA;AACI,aAAA;AAED,YAAA,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAA,EAAG,MAAM,GAAG,CAAA,SAAA,EAAY,MAAM,CAAG,CAAA,CAAA,GAAG,EAAE,EAAE,CAAC;AAClF,SAAA;KACJ;IAEM,oBAAoB,GAAA;AACvB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;KACrC;IAEM,mCAAmC,GAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC3B,YAAA,MAAM,IAAI,KAAK,CAAC,qIAAqI,CAAC,CAAC;AAC1J,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,iCAAiC,EAAE;AACzC,YAAA,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;AACtH,SAAA;QACD,OAAO,IAAI,CAAC,iCAAiC,CAAC;KACjD;AAED;;;;AAIG;AACI,IAAA,MAAM,UAAU,CAAC,MAAe,EAAE,iBAAyB,EAAA;AAC9D,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;;AAE1D,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC;AAE9E,QAAA,MAAM,KAAK,GAAyC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAA4C,KAC7G,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAA6C,KAAK,SAAS,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CACjH,CAAC;AACF,QAAA,MAAM,QAAQ,GAAyC,aAAa,CAAC,MAAM,CAAC,CAAC,SAA6C,KACtH,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAA4C,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAC3G,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7C,OAAO;AACH,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,MAAM,EAAE,EAAE;aACb,CAAA;AACJ,SAAA;AAED,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACxF,QAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC/E,QAAA,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,OAAO,IAAI,IAAI,MAAM,SAAS,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,CAAC,IAAI,YAAY,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,IAAI,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;QAE/E,OAAO;YACH,OAAO;AACP,YAAA,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,CAAC,iBAAiB,CAAC;YAC3B,MAAM;SACT,CAAC;KAEL;IAEO,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACrB,YAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AACvE,SAAA;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;AAEO,IAAA,MAAM,kBAAkB,GAAA;AAC5B,QAAA,MAAM,QAAQ,GAAQ,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACnF,QAAA,MAAM,aAAa,GAAgD,CAAC,GAAG,QAAQ,CAAC,sBAAsB,CAAC,MAAM,EAAE,EAAE,GAAG,QAAQ,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/J,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,IAAG;;AAE1C,YAAA,IAAI,GAAG,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,UAAU,EAAE;gBACtD,MAAM,GAAG,GAAG,GAA8B,CAAC;AAC3C,gBAAA,OAAO,GAAG,CAAC,6BAA6B,KAAK,IAAI,CAAC,uBAAuB;AACrE,oBAAA,GAAG,CAAC,6BAA6B,KAAK,IAAI,CAAC,uBAAuB,CAAC;AAC1E,aAAA;YACD,MAAM,GAAG,GAAG,GAAoB,CAAC;AACjC,YAAA,OAAO,GAAG,CAAC,sCAAsC,KAAK,IAAI,CAAC,uBAAuB;AAC9E,gBAAA,GAAG,CAAC,uCAAuC,KAAK,IAAI,CAAC,uBAAuB,CAAC;AAErF,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,wCAAA,EAA2C,IAAI,CAAC,uBAAuB,CAAA,IAAA,EAAO,QAAQ,CAAC,WAAW,CAAA,CAAE,CAAC,CAAC;AACzH,SAAA;AACD,QAAA,OAAO,YAAY,CAAC;KACvB;AAEO,IAAA,MAAM,mBAAmB,CAAC,aAA2C,EAAE,QAAgB,EAAE,cAAyC,EAAA;AACtI,QAAA,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QACD,IAAI;YACA,IAAI,aAAa,KAAK,cAAc,EAAE;gBAClC,IAAI,IAAI,CAAC,mBAAmB,EAAE;oBAC1B,MAAM,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACxE,iBAAA;AACI,qBAAA;oBACD,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,IACvC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;AAC7B,wBAAA,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC;AAClD,wBAAA,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI;qBAClC,CAAC,CACL,CAAC,CAAC;AACN,iBAAA;AACJ,aAAA;AACI,iBAAA;gBACD,IAAI,IAAI,CAAC,mBAAmB,EAAE;oBAC1B,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3G,iBAAA;AACI,qBAAA;oBACD,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;AACnC,wBAAA,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC;wBAClD,eAAe,EAAE,cAAc,CAAC,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;AACpH,qBAAA,CAAC,CAAC;AACN,iBAAA;AACJ,aAAA;AACD,YAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAC5D,SAAA;AACD,QAAA,OAAO,GAAQ,EAAE;YACb,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;AACjG,SAAA;KACJ;AAEO,IAAA,MAAM,+BAA+B,CAAC,QAAgB,EAAE,aAAsC,EAAA;AAClG,QAAA,MAAM,oBAAoB,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1F,QAAA,MAAM,0BAA0B,GAAQ,IAAI,CAAC,mCAAmC,EAAE,CAAC;QACnF,MAAM,yBAAyB,GAAG,0BAA0B,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,uCAAuC,KAAK,IAAI,CAAC,sBAAsB,EAAE,CAAC,uCAAuC,CAAC,CAAC;AACvO,QAAA,MAAM,qBAAqB,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;AAErH,QAAA,MAAM,OAAO,GAAG;;AAEZ,YAAA,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,uCAAuC,CAAA,WAAA,CAAa,GAAG,GAAG,oBAAoB,CAAC,aAAa,CAAA,CAAA,EAAI,QAAQ,CAAG,CAAA,CAAA;YACvI,CAAC,CAAA,EAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,uCAAuC,aAAa,GAAG,GAAG,qBAAqB,CAAC,aAAa,CAAI,CAAA,EAAA,aAAa,CAAC,EAAE,CAAC,IAAI,CAAG,CAAA,CAAA;SAC9J,CAAA;AACD,QAAA,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,0BAA0B,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;;QAErG,aAAa,CAAC,OAAO,GAAG;YACpB,GAAG,aAAa,CAAC,OAAO;YACxB,gBAAgB,EAAE,MAAM,CAAC,EAAE;SAC9B,CAAA;KAEJ;AAEO,IAAA,MAAM,+BAA+B,CAAC,QAAgB,EAAE,cAAyC,EAAA;AACrG,QAAA,MAAM,0BAA0B,GAAQ,IAAI,CAAC,mCAAmC,EAAE,CAAC;AACnF,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,OAAM,MAAM,KAAG;AAChD,YAAA,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC;YACxD,IAAI,CAAC,cAAc,EAAE;AACjB,gBAAA,MAAM,IAAI,KAAK,CAAC,sGAAsG,CAAC,CAAC;AAC3H,aAAA;AACD,YAAA,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,0BAA0B,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;SAChG,CAAC,CAAC,CAAA;KACN;IAEO,sBAAsB,GAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC3B,YAAA,MAAM,IAAI,KAAK,CAAC,qIAAqI,CAAC,CAAC;AAC1J,SAAA;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACnC;IAEO,iBAAiB,CAAC,aAA2C,EAAE,QAAgB,EAAA;QACnF,OAAO;AACH,YAAA,WAAW,EAAE,OAAO;AAChB,gBAAA,aAAa,EAAE,CAAC;gBAChB,aAAa;AACb,gBAAA,cAAc,EAAE,EAAE;aACrB,CAAC;YACF,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;AACtD,YAAA,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,UAAU;SACnD,CAAC;KACL;IAEO,qBAAqB,GAAA;AACzB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;;AAE7C,QAAA,IAAI,YAAY,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,UAAU,EAAE;YAC/D,MAAM,GAAG,GAAG,YAAuC,CAAC;YACpD,MAAM,eAAe,GAAG,GAAG,CAAC,kBAAkB,KAAK,IAAI,CAAC,WAAW,CAAC;AACpE,YAAA,OAAO,eAAe,GAAG,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,kBAAkB,CAAC;AAC5E,SAAA;AACI,aAAA;YACD,OAAQ,YAA8B,CAAC,iBAAiB,CAAC;AAC5D,SAAA;KACJ;AAEJ;;;;"}
@@ -0,0 +1,11 @@
1
+ import { IDataProvider } from "@talxis/client-libraries";
2
+ export interface ILookupManyStrategy {
3
+ fetchXml: string;
4
+ variables?: {
5
+ [key: string]: any;
6
+ };
7
+ }
8
+ export declare class FetchXmlDataProviderFactory {
9
+ private static _liquid;
10
+ static create(strategy: ILookupManyStrategy): IDataProvider;
11
+ }
@@ -0,0 +1,16 @@
1
+ import { FetchXmlDataProvider } from '@talxis/client-libraries';
2
+ import { Liquid } from 'liquidjs';
3
+
4
+ class FetchXmlDataProviderFactory {
5
+ static create(strategy) {
6
+ const variables = strategy.variables ?? {};
7
+ let fetchXml = this._liquid.parseAndRenderSync(strategy.fetchXml, variables);
8
+ return new FetchXmlDataProvider({
9
+ fetchXml: fetchXml
10
+ });
11
+ }
12
+ }
13
+ FetchXmlDataProviderFactory._liquid = new Liquid();
14
+
15
+ export { FetchXmlDataProviderFactory };
16
+ //# sourceMappingURL=FetchXmlDataProviderFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchXmlDataProviderFactory.js","sources":["../../../../../../../src/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlDataProviderFactory.ts"],"sourcesContent":["import { FetchXmlDataProvider, IDataProvider } from \"@talxis/client-libraries\";\nimport { Liquid } from \"liquidjs\";\n\nexport interface ILookupManyStrategy {\n fetchXml: string;\n variables?: { [key: string]: any };\n}\n\n\nexport class FetchXmlDataProviderFactory {\n private static _liquid: Liquid = new Liquid();\n\n public static create(strategy: ILookupManyStrategy): IDataProvider {\n const variables = strategy.variables ?? {};\n let fetchXml = this._liquid.parseAndRenderSync(strategy.fetchXml, variables);\n return new FetchXmlDataProvider({\n fetchXml: fetchXml\n });\n }\n}"],"names":[],"mappings":";;;MASa,2BAA2B,CAAA;IAG7B,OAAO,MAAM,CAAC,QAA6B,EAAA;AAC9C,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;AAC3C,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC7E,OAAO,IAAI,oBAAoB,CAAC;AAC5B,YAAA,QAAQ,EAAE,QAAQ;AACrB,SAAA,CAAC,CAAC;KACN;;AARc,2BAAA,CAAA,OAAO,GAAW,IAAI,MAAM,EAAE;;;;"}
@@ -0,0 +1,2 @@
1
+ import { ICellProps } from "../../../../../Grid/cells/cell/Cell";
2
+ export declare const FetchXmlLookupManyCellRenderer: (props: ICellProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,35 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { FetchXmlDataProviderFactory } from './FetchXmlDataProviderFactory.js';
3
+ import React__default from 'react';
4
+ import { LookupManyCellRenderer } from '../../../../components/grid/cell-renderers/lookup-many/LookupManyCellRenderer.js';
5
+ import { useTaskDataProvider } from '../../../../context.js';
6
+
7
+ const FetchXmlLookupManyCellRenderer = (props) => {
8
+ const { baseColumn } = props;
9
+ const record = props.data;
10
+ const strategy = useTaskDataProvider().getStrategy();
11
+ const projectRecord = strategy.getProjectRecord();
12
+ const customControl = record.getColumnInfo(baseColumn.name).ui.getCustomControls([])?.[0];
13
+ const fetchXml = customControl?.bindings?.FetchXml.value;
14
+ const taskId = record.getRecordId();
15
+ const dataProvider = React__default.useMemo(() => FetchXmlDataProviderFactory.create({
16
+ fetchXml: fetchXml,
17
+ variables: {
18
+ task: {
19
+ id: taskId,
20
+ ...record.getRawData()
21
+ },
22
+ project: {
23
+ id: projectRecord?.getRecordId(),
24
+ ...projectRecord?.getRawData()
25
+ }
26
+ }
27
+ }), []);
28
+ if (!fetchXml) {
29
+ throw new Error('FetchXml for LookupMany is not defined in column metadata. Define it using the "FetchXml" property.');
30
+ }
31
+ return jsx(LookupManyCellRenderer, { ...props, dataProvider: dataProvider });
32
+ };
33
+
34
+ export { FetchXmlLookupManyCellRenderer };
35
+ //# sourceMappingURL=FetchXmlLookupManyCellRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchXmlLookupManyCellRenderer.js","sources":["../../../../../../../src/components/TaskGrid/extensions/dataverse/lookup-many/cell-renderer/FetchXmlLookupManyCellRenderer.tsx"],"sourcesContent":["import { IRecord } from \"@talxis/client-libraries\";\nimport { useTaskDataProvider } from \"../../../../..\";\nimport { FetchXmlDataProviderFactory } from \"./FetchXmlDataProviderFactory\";\nimport React from \"react\";\nimport { LookupManyCellRenderer } from '../../../../components/grid/cell-renderers/lookup-many'\nimport { ICellProps } from \"../../../../../Grid/cells/cell/Cell\";\nimport { IDataverseTaskStrategy } from \"../../DataverseTaskStrategy\";\n\nexport const FetchXmlLookupManyCellRenderer = (props: ICellProps) => {\n const { baseColumn } = props;\n const record: IRecord = props.data;\n const strategy: IDataverseTaskStrategy = useTaskDataProvider().getStrategy();\n const projectRecord = strategy.getProjectRecord();\n const customControl = record.getColumnInfo(baseColumn.name).ui.getCustomControls([])?.[0];\n const fetchXml = customControl?.bindings?.FetchXml.value;\n const taskId = record.getRecordId();\n const dataProvider = React.useMemo(() => FetchXmlDataProviderFactory.create({\n fetchXml: fetchXml,\n variables: {\n task: {\n id: taskId,\n ...record.getRawData()\n },\n project: {\n id: projectRecord?.getRecordId(),\n ...projectRecord?.getRawData()\n }\n }\n }), []);\n\n if (!fetchXml) {\n throw new Error('FetchXml for LookupMany is not defined in column metadata. Define it using the \"FetchXml\" property.');\n }\n\n return <LookupManyCellRenderer \n {...props} \n dataProvider={dataProvider} />\n\n}"],"names":["React","_jsx"],"mappings":";;;;;;AAQa,MAAA,8BAA8B,GAAG,CAAC,KAAiB,KAAI;AAChE,IAAA,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;AAC7B,IAAA,MAAM,MAAM,GAAY,KAAK,CAAC,IAAI,CAAC;AACnC,IAAA,MAAM,QAAQ,GAA2B,mBAAmB,EAAE,CAAC,WAAW,EAAE,CAAC;AAC7E,IAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;IAClD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1F,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC;AACzD,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;AACpC,IAAA,MAAM,YAAY,GAAGA,cAAK,CAAC,OAAO,CAAC,MAAM,2BAA2B,CAAC,MAAM,CAAC;AACxE,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,SAAS,EAAE;AACP,YAAA,IAAI,EAAE;AACF,gBAAA,EAAE,EAAE,MAAM;gBACV,GAAG,MAAM,CAAC,UAAU,EAAE;AACzB,aAAA;AACD,YAAA,OAAO,EAAE;AACL,gBAAA,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE;gBAChC,GAAG,aAAa,EAAE,UAAU,EAAE;AACjC,aAAA;AACJ,SAAA;KACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAER,IAAI,CAAC,QAAQ,EAAE;AACX,QAAA,MAAM,IAAI,KAAK,CAAC,qGAAqG,CAAC,CAAC;AAC1H,KAAA;IAED,OAAOC,GAAA,CAAC,sBAAsB,EACtB,EAAA,GAAA,KAAK,EACT,YAAY,EAAE,YAAY,EAAA,CAAI,CAAA;AAEtC;;;;"}
@@ -2,11 +2,12 @@
2
2
  import { IDataset, IDataProvider } from "@talxis/client-libraries";
3
3
  import { IDatasetControl } from "../../utils/dataset-control";
4
4
  import { IGridCustomizerStrategy } from "./components/grid/grid-customizer";
5
- import { ICustomColumnsDataProvider, ICustomColumnsStrategy } from "./data-providers/custom-columns-data-provider/CustomColumnsDataProvider";
6
- import { ISavedQueryDataProvider, ISavedQueryStrategy } from "./data-providers/saved-query-data-provider";
7
- import { ITaskDataProviderStrategy, ITaskDataProvider } from "./data-providers/task-data-provider";
8
- import { ILocalizationService, ITaskGridLabels } from "./labels";
5
+ import { ICustomColumnsDataProvider, ICustomColumnsStrategy } from "./providers/custom-columns/CustomColumnsDataProvider";
6
+ import { ISavedQueryDataProvider, ISavedQueryStrategy } from "./providers/saved-query";
7
+ import { ITaskDataProviderStrategy, ITaskDataProvider } from "./providers/task";
8
+ import { ITaskGridLabels } from "./labels";
9
9
  import { ITaskGridState } from "./TaskGridDatasetControlFactory";
10
+ import { ILocalizationService } from "../../utils";
10
11
  export interface ITaskGridDatasetControlParameters {
11
12
  dataset: IDataset;
12
13
  state: ITaskGridState;
@@ -18,7 +19,7 @@ export interface ITaskGridDatasetControlParameters {
18
19
  onGetPcfContext: () => ComponentFramework.Context<any>;
19
20
  }
20
21
  /** Maps functional column roles to the physical attribute (field) names in the consuming entity's schema. */
21
- export interface INativeColumns {
22
+ export interface IFieldMapping {
22
23
  /** Lookup attribute pointing to the parent task — drives the tree hierarchy. */
23
24
  parentId: string;
24
25
  /** Display name / title attribute. Always pinned left; never hidden by the control. */
@@ -27,43 +28,62 @@ export interface INativeColumns {
27
28
  stackRank: string;
28
29
  /** Active/inactive status attribute. Used by the "Hide inactive tasks" filter. */
29
30
  stateCode: string;
30
- /** Virtual breadcrumb column. Its value is computed automatically from ancestor names and is never editable. */
31
+ }
32
+ export interface INativeColumns extends IFieldMapping {
31
33
  path: string;
32
- /** (Optional) Numeric completion percentage. When present, rendered with a progress-bar cell renderer. */
33
- percentComplete?: string;
34
34
  }
35
35
  /** Feature flags that control which UI elements are rendered in the grid header and ribbon. */
36
36
  export interface ITaskGridParameters {
37
- /** Explicit CSS height for the grid container. When omitted the grid sizes to fit its parent. */
38
- height?: string;
39
- /** Show drag handles and allow rows to be dragged for reordering. Defaults to `true`. Automatically suppressed when flat-list mode is active or sorting by a non-stack-rank column. */
37
+ agGridLicenseKey?: string;
38
+ /** Show drag handles and allow rows to be dragged for reordering. Defaults to `false`. Automatically suppressed when flat-list mode is active or sorting by a non-stack-rank column. */
40
39
  enableRowDragging?: boolean;
41
- /** Show the *Edit Columns* button in the ribbon. Defaults to `true`. */
40
+ /** Show the *Edit Columns* button in the ribbon. Defaults to `false`. */
42
41
  enableEditColumns?: boolean;
43
- /** Show the search / quick-find input. Defaults to `true`. */
42
+ /** Enable editing of tasks directly in the grid. Defaults to `false`. */
43
+ enableTaskEditing?: boolean;
44
+ /** Enable creation of new tasks. Defaults to `false`. */
45
+ enableTaskCreation?: boolean;
46
+ /** Enable deletion of tasks. Defaults to `false`. */
47
+ enableTaskDeletion?: boolean;
48
+ /** Show the search / quick-find input. Defaults to `false`. */
44
49
  enableQuickFind?: boolean;
45
- /** Show the view-switcher dropdown. Defaults to `true`. */
50
+ /** Show the view-switcher dropdown. Defaults to `false`. */
46
51
  enableViewSwitcher?: boolean;
47
- /** Show the *Show hierarchy* toggle. Defaults to `true`. */
52
+ /** Show the *Show hierarchy* toggle. Defaults to `false`. */
48
53
  enableShowHierarchyToggle?: boolean;
49
- /** Show the *Hide inactive tasks* toggle. Defaults to `true`. */
54
+ /** Show the *Hide inactive tasks* toggle. Defaults to `false`. */
50
55
  enableHideInactiveTasksToggle?: boolean;
51
- /** Show the personal/system scope selector inside the Edit Columns panel. Defaults to `true`. */
56
+ /** Show the personal/system scope selector inside the Edit Columns panel. Defaults to `false`. */
52
57
  enableEditColumnsScopeSelector?: boolean;
53
- /** Enable user queries. Defaults to `true`. */
58
+ /** Enable user queries. Defaults to `false`. */
54
59
  enableUserQueries?: boolean;
55
- /** Show the query manager. Defaults to `true`. */
60
+ /** Show the query manager. Defaults to `false`. */
56
61
  enableQueryManager?: boolean;
57
- /** Show the "Save as new" button in the query manager. Defaults to `true`. */
62
+ /** Show the "Save as new" button in the query manager. Defaults to `false`. */
58
63
  enableSaveAsNewQuery?: boolean;
59
- /** Show the "Save changes" button in the query manager. Defaults to `true`. */
60
- enableSaveChangesToQuery?: boolean;
64
+ /** Show the "Save changes" button in the query manager. Defaults to `false`. */
65
+ enableSaveQueryChanges?: boolean;
66
+ /** Enable creation of custom columns. Defaults to `false`. */
61
67
  enableCustomColumnCreation?: boolean;
68
+ /** Enable editing of custom columns. Defaults to `false`. */
62
69
  enableCustomColumnEditing?: boolean;
70
+ /** Enable deletion of custom columns. Defaults to `false`. */
63
71
  enableCustomColumnDeletion?: boolean;
72
+ /** Enable inline creation of tasks. Defaults to `false`. */
73
+ enableInlineCreation?: boolean;
74
+ /** Enable navigation within the grid. Defaults to `false`. */
75
+ enableNavigation?: boolean;
76
+ /** Enable column sorting in the grid. Defaults to `false`. */
77
+ enableSorting?: boolean;
78
+ /** Enable column filtering in the grid. Defaults to `false`. */
79
+ enableFiltering?: boolean;
80
+ /** Override the default row height in pixels. Uses the AG Grid default when omitted. */
81
+ rowHeight?: number;
64
82
  }
65
83
  /** Available data providers injected into `ITaskDataProviderStrategy` at construction time. */
66
84
  export interface ITaskStrategyDeps {
85
+ enableInlineCreation: boolean;
86
+ enableTaskEditing: boolean;
67
87
  /** Present when the consumer provided `onCreateCustomColumnsStrategy`. */
68
88
  customColumnsDataProvider?: ICustomColumnsDataProvider;
69
89
  /** Present when the consumer provided `onCreateTemplateDataProvider`. */
@@ -75,21 +95,21 @@ export interface ITaskStrategyDeps {
75
95
  */
76
96
  export interface ITaskGridDescriptor {
77
97
  /** Returns the mapping of logical column roles to physical schema attribute names. */
78
- onGetNativeColumns: () => INativeColumns;
98
+ onGetFieldMapping: () => IFieldMapping;
79
99
  /** Returns the strategy responsible for loading system/user views and persisting view changes. */
80
100
  onCreateSavedQueryStrategy: () => ISavedQueryStrategy;
81
101
  /** Returns the strategy that handles all task CRUD, move, template and record-save operations. */
82
102
  onCreateTaskStrategy: (deps: ITaskStrategyDeps) => ITaskDataProviderStrategy;
83
103
  /** Returns an `IDataProvider` that drives the user-query creation/update dialog. */
84
104
  onCreateUserQueryDataProvider: () => IDataProvider;
105
+ /** (Optional) Returns the container height as a CSS string. Falls back to a default stretch when omitted. */
106
+ onGetHeight?: () => string | undefined;
85
107
  /** (Optional) Returns the strategy for managing dynamic (user-defined) columns. When provided, the custom-columns feature is enabled. */
86
108
  onCreateCustomColumnsStrategy?: () => ICustomColumnsStrategy | undefined;
87
109
  /** (Optional) Returns an `IDataProvider` for task templates. When provided, the template-based task creation feature is enabled. */
88
110
  onCreateTemplateDataProvider?: () => IDataProvider | undefined;
89
111
  /** (Optional) Returns a strategy for deep customization of AG Grid column definitions, renderers, editors, and row class rules. */
90
112
  onCreateGridCustomizerStrategy?: () => IGridCustomizerStrategy | undefined;
91
- /** (Optional) Returns the AG Grid Enterprise license key. */
92
- onGetAgGridLicenseKey?: () => string;
93
113
  /** (Optional) Returns a stable DOM/control identifier. Auto-generated as a UUID when omitted. */
94
114
  onGetControlId?: () => string;
95
115
  /** (Optional) Async hook called before any data provider is created. Use for lazy loading or authentication. */
@@ -142,13 +162,23 @@ export interface ITaskGridDatasetControl extends IDatasetControl {
142
162
  isEditColumnsScopeSelectorEnabled: () => boolean;
143
163
  /** Returns `true` when a template data provider was supplied through the descriptor. */
144
164
  isTemplatingEnabled: () => boolean;
165
+ /** Returns `true` when inline creation of tasks is enabled. */
166
+ isTaskCreatingEnabled: () => boolean;
167
+ /** Returns `true` when inline editing of tasks is enabled. */
168
+ isTaskEditingEnabled: () => boolean;
169
+ /** Returns `true` when task deletion is enabled. */
170
+ isTaskDeletingEnabled: () => boolean;
171
+ /** Whether the view-switcher dropdown is visible (from `ITaskGridParameters.enableViewSwitcher`). */
172
+ isViewSwitcherEnabled: () => boolean;
173
+ /** Whether grid navigation is enabled (from `ITaskGridParameters.enableNavigation`). */
174
+ isNavigationEnabled: () => boolean;
145
175
  /** Returns `true` when a custom columns strategy was supplied through the descriptor. */
146
176
  isCustomColumnsEnabled: () => boolean;
147
177
  /** Whether the view manager is enabled (from `ITaskGridParameters.enableQueryManager`). */
148
178
  isViewManagerEnabled: () => boolean;
149
179
  /** Whether the "Save as new" button is enabled (from `ITaskGridParameters.enableSaveAsNewQuery`). */
150
180
  isSaveQueryAsNewEnabled: () => boolean;
151
- /** Whether the "Save changes" button is enabled (from `ITaskGridParameters.enableSaveChangesToQuery`). */
181
+ /** Whether the "Save changes" button is enabled (from `ITaskGridParameters.enableSaveQueryChanges`). */
152
182
  isSaveQueryChangesEnabled: () => boolean;
153
183
  /** Whether custom column creation is enabled (from `ITaskGridParameters.enableCustomColumnCreation`). */
154
184
  isCustomColumnCreationEnabled: () => boolean;
@@ -158,4 +188,6 @@ export interface ITaskGridDatasetControl extends IDatasetControl {
158
188
  isCustomColumnDeletionEnabled: () => boolean;
159
189
  /** Whether user queries are enabled (from `ITaskGridParameters.enableUserQueries`). */
160
190
  isUserQueriesFeatureEnabled: () => boolean;
191
+ /** Whether inline task creation is enabled (from `ITaskGridParameters.enableInlineCreation`). */
192
+ isInlineCreateEnabled: () => boolean;
161
193
  }
@@ -32,6 +32,7 @@ export interface ITaskGridLabels {
32
32
  templateCreatedSuccessfully: string;
33
33
  description: string;
34
34
  noTaskTemplates: string;
35
+ path: string;
35
36
  addChild: string;
36
37
  addCustomColumn: string;
37
38
  confirmColumnDelete: string;
@@ -74,19 +75,4 @@ export interface ITaskGridLabels {
74
75
  unexpectedErrorOccurred: string;
75
76
  deletingUserQueriesError: string;
76
77
  }
77
- export interface ILocalizationService<T> {
78
- getLocalizedString: (key: keyof T, variables?: {
79
- [key: string]: string;
80
- }) => string;
81
- }
82
78
  export declare const TASK_GRID_LABELS: ITaskGridLabels;
83
- export declare class LocalizationService<T extends {
84
- [K in keyof T]: string;
85
- }> implements ILocalizationService<T> {
86
- private _getLabels;
87
- private _liquidEngine;
88
- constructor(getLabels: () => T);
89
- getLocalizedString(key: keyof T, variables?: {
90
- [key: string]: string;
91
- }): string;
92
- }
@@ -1,10 +1,9 @@
1
- import { Liquid } from 'liquidjs';
2
-
3
1
  const TASK_GRID_LABELS = {
4
2
  name: 'Name',
5
3
  no: 'No',
6
4
  yes: 'Yes',
7
5
  ok: 'Ok',
6
+ path: 'Path',
8
7
  confirm: 'Confirm',
9
8
  confirmation: 'Confirmation',
10
9
  myViews: 'My views',
@@ -76,19 +75,6 @@ const TASK_GRID_LABELS = {
76
75
  noRecordsFound: 'No records found.',
77
76
  unexpectedErrorOccurred: 'Unexpected error occurred.',
78
77
  };
79
- class LocalizationService {
80
- constructor(getLabels) {
81
- this._getLabels = getLabels;
82
- this._liquidEngine = new Liquid();
83
- }
84
- getLocalizedString(key, variables) {
85
- const labels = this._getLabels();
86
- if (variables) {
87
- return this._liquidEngine.parseAndRenderSync(labels[key], variables);
88
- }
89
- return labels[key];
90
- }
91
- }
92
78
 
93
- export { LocalizationService, TASK_GRID_LABELS };
79
+ export { TASK_GRID_LABELS };
94
80
  //# sourceMappingURL=labels.js.map