@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
@@ -1,11 +1,10 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { useMemo } from 'react';
3
3
  import { getOptionTextStyles } from './styles.js';
4
- import { Text } from '@fluentui/react';
5
4
 
6
5
  const OptionText = (props) => {
7
6
  const styles = useMemo(() => getOptionTextStyles(), []);
8
- return jsx(Text, { className: styles.optionText, children: props.children });
7
+ return jsx("span", { className: styles.optionText, children: props.children });
9
8
  };
10
9
 
11
10
  export { OptionText };
@@ -1 +1 @@
1
- {"version":3,"file":"OptionText.js","sources":["../../../../../src/components/DatasetControl/EditColumns/OptionText/OptionText.tsx"],"sourcesContent":["import { IColumn } from \"@talxis/client-libraries\";\nimport { useMemo } from \"react\";\nimport { GroupBase, OptionProps } from \"react-select\";\nimport { getOptionTextStyles } from \"./styles\";\nimport { Text } from \"@fluentui/react\";\n\nexport const OptionText = (props: React.PropsWithChildren<OptionProps<IColumn, boolean, GroupBase<IColumn>>>) => {\n const styles = useMemo(() => getOptionTextStyles(), []);\n \n return <Text className={styles.optionText}>{props.children}</Text>\n}"],"names":["_jsx"],"mappings":";;;;;AAMa,MAAA,UAAU,GAAG,CAAC,KAAiF,KAAI;AAC5G,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,mBAAmB,EAAE,EAAE,EAAE,CAAC,CAAC;AAExD,IAAA,OAAOA,GAAC,CAAA,IAAI,EAAC,EAAA,SAAS,EAAE,MAAM,CAAC,UAAU,EAAG,QAAA,EAAA,KAAK,CAAC,QAAQ,GAAQ,CAAA;AACtE;;;;"}
1
+ {"version":3,"file":"OptionText.js","sources":["../../../../../src/components/DatasetControl/EditColumns/OptionText/OptionText.tsx"],"sourcesContent":["import { IColumn } from \"@talxis/client-libraries\";\nimport { useMemo } from \"react\";\nimport { GroupBase, OptionProps } from \"react-select\";\nimport { getOptionTextStyles } from \"./styles\";\n\nexport const OptionText = (props: React.PropsWithChildren<OptionProps<IColumn, boolean, GroupBase<IColumn>>>) => {\n const styles = useMemo(() => getOptionTextStyles(), []);\n return <span className={styles.optionText}>{props.children}</span>\n}"],"names":["_jsx"],"mappings":";;;;AAKa,MAAA,UAAU,GAAG,CAAC,KAAiF,KAAI;AAC5G,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,mBAAmB,EAAE,EAAE,EAAE,CAAC,CAAC;IACxD,OAAOA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,MAAM,CAAC,UAAU,EAAA,QAAA,EAAG,KAAK,CAAC,QAAQ,EAAA,CAAQ,CAAA;AACtE;;;;"}
@@ -59,12 +59,8 @@ const Cell = (props) => {
59
59
  })();
60
60
  lastLoadingRefValue.current = props.value.loading;
61
61
  const onCellClick = useCallback((e) => {
62
- if (record.getDataProvider().getSummarizationType() === 'grouping' && !grid.isSelectionModifierKeyPressed()) {
63
- e.stopPropagation();
64
- }
65
- else if (node.isSelected()) {
66
- e.stopPropagation();
67
- }
62
+ if (record.getDataProvider().getSummarizationType() === 'grouping' && !grid.isSelectionModifierKeyPressed()) ;
63
+ else if (node.isSelected()) ;
68
64
  }, []);
69
65
  const onFieldValueChanged = useCallback(async (columnName) => {
70
66
  if (columnName !== column.name) {
@@ -1 +1 @@
1
- {"version":3,"file":"Cell.js","sources":["../../../../../src/components/Grid/cells/cell/Cell.tsx"],"sourcesContent":["import { ICellRendererParams } from \"@ag-grid-community/core\";\nimport { ThemeProvider, useTheme, Shimmer, ICommandBarItemProps, ITooltipHostProps, IconButton, mergeStyleSets } from \"@fluentui/react\";\nimport { IRecord, Constants, DataProvider, IRecordEvents, IRecordSaveOperationResult } from \"@talxis/client-libraries\";\nimport { useThemeGenerator, getClassNames, useRerender } from \"@talxis/react-components\";\nimport { useMemo, useEffect, useRef, useCallback } from \"react\";\nimport { useControlTheme } from \"../../../../utils\";\nimport { ICellValues } from \"../../grid/ag-grid/AgGridModel\";\nimport { IGridColumn } from \"../../grid/GridModel\";\nimport { useGridInstance } from \"../../grid/useGridInstance\";\nimport { CellContent } from \"./content/CellContent\";\nimport { Notifications } from \"./notifications/Notifications\";\nimport { getCellStyles, getInnerCellStyles } from \"./styles\";\nimport { useAgGridInstance } from \"../../grid/ag-grid/useAgGridInstance\";\nimport ReactDOM from \"react-dom\";\nimport { GridContext } from \"../../grid/GridContext\";\nimport { AgGridContext } from \"../../grid/ag-grid/AgGridContext\";\nimport { useEventEmitter } from \"../../../../hooks/useEventEmitter\";\n\nexport interface ICellProps extends ICellRendererParams {\n baseColumn: IGridColumn;\n isCellEditor: boolean;\n record: IRecord;\n value: ICellValues;\n}\n\nexport const Cell = (props: ICellProps) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const memoizedContainerRef = useRef<HTMLDivElement | null>();\n const { record, node, baseColumn } = props;\n const column = baseColumn;\n const grid = useGridInstance();\n const agGrid = useAgGridInstance();\n const lastLoadingRefValue = useRef<boolean>(props.value.loading);\n const rerender = useRerender();\n\n const skipCellRendering = (() => {\n const dataProvider = record.getDataProvider();\n const summarizationType = dataProvider.getSummarizationType();\n switch (true) {\n case column.type === 'action': {\n return false;\n }\n case props.value.loading: {\n return false;\n }\n case summarizationType === 'grouping': {\n if (lastLoadingRefValue.current && !props.value.loading) {\n return false;\n }\n const _column = dataProvider.getColumnsMap()[column.name]!;\n if (_column.aggregation?.aggregationFunction && !_column.grouping?.isGrouped) {\n return false;\n }\n if (grid.getGroupType() === 'nested') {\n return dataProvider.grouping.getGroupBys()[0].columnName !== column.name\n }\n return !column.grouping?.isGrouped;\n }\n case summarizationType === 'aggregation': {\n return !dataProvider.getColumnsMap()[column.name]?.aggregation?.aggregationFunction;\n }\n case summarizationType === 'none': {\n return !!column.grouping?.isGrouped\n }\n default: {\n return false;\n }\n }\n })();\n lastLoadingRefValue.current = props.value.loading;\n\n const onCellClick = useCallback((e: MouseEvent) => {\n if (record.getDataProvider().getSummarizationType() === 'grouping' && !grid.isSelectionModifierKeyPressed()) {\n e.stopPropagation();\n }\n else if (node.isSelected()) {\n e.stopPropagation();\n }\n }, []);\n\n const onFieldValueChanged = useCallback(async (columnName: string) => {\n if (columnName !== column.name) {\n return;\n }\n props.api.refreshCells({\n rowNodes: [node]\n })\n setTimeout(() => {\n rerender();\n }, 0);\n }, []);\n\n\n const getTopLevelCellWrapperStyles = () => {\n return mergeStyleSets({\n cellRoot: {\n width: '100%',\n height: (() => {\n if (skipCellRendering && column.autoHeight) {\n return `${grid.getDefaultRowHeight()}px !important`;\n }\n return '100% !important';\n })()\n }\n })\n }\n useEventEmitter<IRecordEvents>(record, 'onFieldValueChanged', onFieldValueChanged);\n\n useEffect(() => {\n memoizedContainerRef.current = containerRef.current;\n containerRef.current?.addEventListener('click', onCellClick);\n return () => {\n containerRef.current?.removeEventListener('click', onCellClick);\n ReactDOM.unmountComponentAtNode(memoizedContainerRef.current!);\n }\n }, []);\n\n\n useEffect(() => {\n if (skipCellRendering) {\n ReactDOM.render(<></>, containerRef.current)\n }\n else {\n ReactDOM.render(\n <GridContext.Provider value={grid}>\n <AgGridContext.Provider value={agGrid}>\n <CellContentWrapper {...props} />\n </AgGridContext.Provider>\n </GridContext.Provider>,\n containerRef.current\n );\n }\n });\n return <div className={getTopLevelCellWrapperStyles().cellRoot} ref={containerRef} />\n}\n\nconst CellContentWrapper = (props: ICellProps) => {\n const { value: cellData, record } = props;\n const { customFormatting } = cellData;\n const cellTheme = useThemeGenerator(customFormatting.primaryColor, customFormatting.backgroundColor, customFormatting.textColor, customFormatting.themeOverride);\n const styles = useMemo(() => getCellStyles(cellTheme), [cellTheme])\n const cellRef = useRef<HTMLDivElement>(null);\n const rerender = useRerender();\n useEventEmitter<IRecordEvents>(record, 'onBeforeSaved', rerender);\n\n return <ThemeProvider\n ref={cellRef}\n theme={cellTheme}\n className={getClassNames([styles.cellRoot, customFormatting.className])}>\n <InternalCell {...props} />\n </ThemeProvider>\n}\n\n\nexport const InternalCell = (props: ICellProps) => {\n const column = props.baseColumn;\n const record = props.record;\n const node = props.node;\n const formatting = props.value.customFormatting;\n const grid = useGridInstance();\n const agGrid = useAgGridInstance();\n const errorRef = useRef<boolean>(props.value.error);\n const notifications = props.value.notifications;\n const errorMessageRef = useRef<string | undefined>(props.value.errorMessage);\n const theme = useTheme();\n const applicationTheme = useControlTheme(grid.getPcfContext().fluentDesignLanguage);\n const rerender = useRerender();\n const styles = useMemo(() => getInnerCellStyles(\n props.isCellEditor,\n theme,\n props.value.columnAlignment,\n node.expanded\n ), [props.isCellEditor, theme, props.value.columnAlignment, node.expanded]);\n\n useEventEmitter<IRecordEvents>(record, 'onAfterSaved', (result: IRecordSaveOperationResult) => {\n if (!result.success) {\n const errors = result.errors ?? [];\n const fieldError = errors.find(error => error.fieldName === column.name);\n if (fieldError) {\n errorRef.current = true;\n errorMessageRef.current = fieldError.message;\n rerender();\n }\n }\n });\n\n useEventEmitter<IRecordEvents>(record, 'onFieldValueChanged', (fieldName: string) => {\n if (fieldName === column.name) {\n errorRef.current = record.getField(fieldName).isValid().error;\n rerender();\n }\n });\n\n const shouldShowNotEditableNotification = () => {\n if (column.isEditable && !record.getColumnInfo(column.name).security.editable && record.getSummarizationType() === 'none') {\n return true;\n }\n return false;\n }\n\n const getShouldRenderNotifications = (): boolean => {\n if (props.isCellEditor) {\n return false;\n }\n if (errorRef.current === true) {\n return true;\n }\n if (shouldShowNotEditableNotification()) {\n return true;\n }\n if (notifications && notifications.length > 0) {\n return true;\n }\n return false;\n }\n\n const renderContent = (): JSX.Element => {\n if (isLoading()) {\n return (\n <Shimmer styles={{\n shimmerWrapper: styles.shimmerWrapper,\n root: styles.shimmerRoot\n }} />\n );\n }\n return (\n <>\n {grid.isColumnExpandable(record, column) &&\n <IconButton\n iconProps={{ iconName: 'ChevronRight' }}\n styles={{\n root: styles.groupToggleButtonRoot,\n icon: styles.groupToggleButtonIcon\n }}\n onClick={() => {\n agGrid.toggleGroup(node);\n rerender();\n }} />\n }\n {(column.type !== 'action' || column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) &&\n <CellContent {...props} />\n }\n {shouldRenderNotifications &&\n renderNotifications()\n }\n </>\n )\n }\n\n const getFarNotifications = (): ICommandBarItemProps[] => {\n const result: ICommandBarItemProps[] = [];\n const tooltipProps: ITooltipHostProps = {\n tooltipProps: {\n theme: applicationTheme\n },\n calloutProps: {\n theme: applicationTheme,\n }\n }\n if (shouldShowNotEditableNotification()) {\n result.push({\n key: 'noteditable',\n text: grid.getLabels()['value-not-editable'](),\n iconOnly: true,\n disabled: true,\n tooltipHostProps: tooltipProps,\n iconProps: {\n iconName: 'Uneditable',\n styles: {\n root: styles.uneditableIconRoot\n }\n }\n })\n }\n if (errorRef.current) {\n result.push({\n key: 'error',\n iconOnly: true,\n disabled: true,\n text: errorMessageRef.current,\n tooltipHostProps: tooltipProps,\n iconProps: {\n iconName: 'Error',\n styles: {\n root: styles.errorIconRoot\n }\n }\n })\n }\n return result;\n }\n\n const renderNotifications = (): JSX.Element => {\n return <Notifications\n formatting={formatting}\n isActionColumn={column.type === 'action'}\n columnAlignment={props.value.columnAlignment}\n notifications={notifications}\n farItems={getFarNotifications()} />\n }\n\n const isLoading = () => {\n if (props.value.loading) {\n return true;\n }\n return false;\n }\n const shouldRenderNotifications = getShouldRenderNotifications();\n\n return <div\n className={styles.innerCellRoot}\n data-is-loading={isLoading()}\n data-is-valid={!errorRef.current}>\n {renderContent()}\n </div>\n}"],"names":["_jsx","_Fragment","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"Cell.js","sources":["../../../../../src/components/Grid/cells/cell/Cell.tsx"],"sourcesContent":["import { ICellRendererParams } from \"@ag-grid-community/core\";\nimport { ThemeProvider, useTheme, Shimmer, ICommandBarItemProps, ITooltipHostProps, IconButton, mergeStyleSets } from \"@fluentui/react\";\nimport { IRecord, Constants, DataProvider, IRecordEvents, IRecordSaveOperationResult } from \"@talxis/client-libraries\";\nimport { useThemeGenerator, getClassNames, useRerender } from \"@talxis/react-components\";\nimport { useMemo, useEffect, useRef, useCallback } from \"react\";\nimport { useControlTheme } from \"../../../../utils\";\nimport { ICellValues } from \"../../grid/ag-grid/AgGridModel\";\nimport { IGridColumn } from \"../../grid/GridModel\";\nimport { useGridInstance } from \"../../grid/useGridInstance\";\nimport { CellContent } from \"./content/CellContent\";\nimport { Notifications } from \"./notifications/Notifications\";\nimport { getCellStyles, getInnerCellStyles } from \"./styles\";\nimport { useAgGridInstance } from \"../../grid/ag-grid/useAgGridInstance\";\nimport ReactDOM from \"react-dom\";\nimport { GridContext } from \"../../grid/GridContext\";\nimport { AgGridContext } from \"../../grid/ag-grid/AgGridContext\";\nimport { useEventEmitter } from \"../../../../hooks/useEventEmitter\";\n\nexport interface ICellProps extends ICellRendererParams {\n baseColumn: IGridColumn;\n isCellEditor: boolean;\n record: IRecord;\n value: ICellValues;\n}\n\nexport const Cell = (props: ICellProps) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const memoizedContainerRef = useRef<HTMLDivElement | null>();\n const { record, node, baseColumn } = props;\n const column = baseColumn;\n const grid = useGridInstance();\n const agGrid = useAgGridInstance();\n const lastLoadingRefValue = useRef<boolean>(props.value.loading);\n const rerender = useRerender();\n\n const skipCellRendering = (() => {\n const dataProvider = record.getDataProvider();\n const summarizationType = dataProvider.getSummarizationType();\n switch (true) {\n case column.type === 'action': {\n return false;\n }\n case props.value.loading: {\n return false;\n }\n case summarizationType === 'grouping': {\n if (lastLoadingRefValue.current && !props.value.loading) {\n return false;\n }\n const _column = dataProvider.getColumnsMap()[column.name]!;\n if (_column.aggregation?.aggregationFunction && !_column.grouping?.isGrouped) {\n return false;\n }\n if (grid.getGroupType() === 'nested') {\n return dataProvider.grouping.getGroupBys()[0].columnName !== column.name\n }\n return !column.grouping?.isGrouped;\n }\n case summarizationType === 'aggregation': {\n return !dataProvider.getColumnsMap()[column.name]?.aggregation?.aggregationFunction;\n }\n case summarizationType === 'none': {\n return !!column.grouping?.isGrouped\n }\n default: {\n return false;\n }\n }\n })();\n lastLoadingRefValue.current = props.value.loading;\n\n const onCellClick = useCallback((e: MouseEvent) => {\n if (record.getDataProvider().getSummarizationType() === 'grouping' && !grid.isSelectionModifierKeyPressed()) {\n //e.stopPropagation();\n }\n else if (node.isSelected()) {\n //e.stopPropagation();\n }\n }, []);\n\n const onFieldValueChanged = useCallback(async (columnName: string) => {\n if (columnName !== column.name) {\n return;\n }\n props.api.refreshCells({\n rowNodes: [node]\n })\n setTimeout(() => {\n rerender();\n }, 0);\n }, []);\n\n\n const getTopLevelCellWrapperStyles = () => {\n return mergeStyleSets({\n cellRoot: {\n width: '100%',\n height: (() => {\n if (skipCellRendering && column.autoHeight) {\n return `${grid.getDefaultRowHeight()}px !important`;\n }\n return '100% !important';\n })()\n }\n })\n }\n useEventEmitter<IRecordEvents>(record, 'onFieldValueChanged', onFieldValueChanged);\n\n useEffect(() => {\n memoizedContainerRef.current = containerRef.current;\n containerRef.current?.addEventListener('click', onCellClick);\n return () => {\n containerRef.current?.removeEventListener('click', onCellClick);\n ReactDOM.unmountComponentAtNode(memoizedContainerRef.current!);\n }\n }, []);\n\n\n useEffect(() => {\n if (skipCellRendering) {\n ReactDOM.render(<></>, containerRef.current)\n }\n else {\n ReactDOM.render(\n <GridContext.Provider value={grid}>\n <AgGridContext.Provider value={agGrid}>\n <CellContentWrapper {...props} />\n </AgGridContext.Provider>\n </GridContext.Provider>,\n containerRef.current\n );\n }\n });\n return <div className={getTopLevelCellWrapperStyles().cellRoot} ref={containerRef} />\n}\n\nconst CellContentWrapper = (props: ICellProps) => {\n const { value: cellData, record } = props;\n const { customFormatting } = cellData;\n const cellTheme = useThemeGenerator(customFormatting.primaryColor, customFormatting.backgroundColor, customFormatting.textColor, customFormatting.themeOverride);\n const styles = useMemo(() => getCellStyles(cellTheme), [cellTheme])\n const cellRef = useRef<HTMLDivElement>(null);\n const rerender = useRerender();\n useEventEmitter<IRecordEvents>(record, 'onBeforeSaved', rerender);\n\n return <ThemeProvider\n ref={cellRef}\n theme={cellTheme}\n className={getClassNames([styles.cellRoot, customFormatting.className])}>\n <InternalCell {...props} />\n </ThemeProvider>\n}\n\n\nexport const InternalCell = (props: ICellProps) => {\n const column = props.baseColumn;\n const record = props.record;\n const node = props.node;\n const formatting = props.value.customFormatting;\n const grid = useGridInstance();\n const agGrid = useAgGridInstance();\n const errorRef = useRef<boolean>(props.value.error);\n const notifications = props.value.notifications;\n const errorMessageRef = useRef<string | undefined>(props.value.errorMessage);\n const theme = useTheme();\n const applicationTheme = useControlTheme(grid.getPcfContext().fluentDesignLanguage);\n const rerender = useRerender();\n const styles = useMemo(() => getInnerCellStyles(\n props.isCellEditor,\n theme,\n props.value.columnAlignment,\n node.expanded\n ), [props.isCellEditor, theme, props.value.columnAlignment, node.expanded]);\n\n useEventEmitter<IRecordEvents>(record, 'onAfterSaved', (result: IRecordSaveOperationResult) => {\n if (!result.success) {\n const errors = result.errors ?? [];\n const fieldError = errors.find(error => error.fieldName === column.name);\n if (fieldError) {\n errorRef.current = true;\n errorMessageRef.current = fieldError.message;\n rerender();\n }\n }\n });\n\n useEventEmitter<IRecordEvents>(record, 'onFieldValueChanged', (fieldName: string) => {\n if (fieldName === column.name) {\n errorRef.current = record.getField(fieldName).isValid().error;\n rerender();\n }\n });\n\n const shouldShowNotEditableNotification = () => {\n if (column.isEditable && !record.getColumnInfo(column.name).security.editable && record.getSummarizationType() === 'none') {\n return true;\n }\n return false;\n }\n\n const getShouldRenderNotifications = (): boolean => {\n if (props.isCellEditor) {\n return false;\n }\n if (errorRef.current === true) {\n return true;\n }\n if (shouldShowNotEditableNotification()) {\n return true;\n }\n if (notifications && notifications.length > 0) {\n return true;\n }\n return false;\n }\n\n const renderContent = (): JSX.Element => {\n if (isLoading()) {\n return (\n <Shimmer styles={{\n shimmerWrapper: styles.shimmerWrapper,\n root: styles.shimmerRoot\n }} />\n );\n }\n return (\n <>\n {grid.isColumnExpandable(record, column) &&\n <IconButton\n iconProps={{ iconName: 'ChevronRight' }}\n styles={{\n root: styles.groupToggleButtonRoot,\n icon: styles.groupToggleButtonIcon\n }}\n onClick={() => {\n agGrid.toggleGroup(node);\n rerender();\n }} />\n }\n {(column.type !== 'action' || column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) &&\n <CellContent {...props} />\n }\n {shouldRenderNotifications &&\n renderNotifications()\n }\n </>\n )\n }\n\n const getFarNotifications = (): ICommandBarItemProps[] => {\n const result: ICommandBarItemProps[] = [];\n const tooltipProps: ITooltipHostProps = {\n tooltipProps: {\n theme: applicationTheme\n },\n calloutProps: {\n theme: applicationTheme,\n }\n }\n if (shouldShowNotEditableNotification()) {\n result.push({\n key: 'noteditable',\n text: grid.getLabels()['value-not-editable'](),\n iconOnly: true,\n disabled: true,\n tooltipHostProps: tooltipProps,\n iconProps: {\n iconName: 'Uneditable',\n styles: {\n root: styles.uneditableIconRoot\n }\n }\n })\n }\n if (errorRef.current) {\n result.push({\n key: 'error',\n iconOnly: true,\n disabled: true,\n text: errorMessageRef.current,\n tooltipHostProps: tooltipProps,\n iconProps: {\n iconName: 'Error',\n styles: {\n root: styles.errorIconRoot\n }\n }\n })\n }\n return result;\n }\n\n const renderNotifications = (): JSX.Element => {\n return <Notifications\n formatting={formatting}\n isActionColumn={column.type === 'action'}\n columnAlignment={props.value.columnAlignment}\n notifications={notifications}\n farItems={getFarNotifications()} />\n }\n\n const isLoading = () => {\n if (props.value.loading) {\n return true;\n }\n return false;\n }\n const shouldRenderNotifications = getShouldRenderNotifications();\n\n return <div\n className={styles.innerCellRoot}\n data-is-loading={isLoading()}\n data-is-valid={!errorRef.current}>\n {renderContent()}\n </div>\n}"],"names":["_jsx","_Fragment","_jsxs"],"mappings":"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"}
@@ -19,7 +19,7 @@ const ColumnHeader = (props) => {
19
19
  useEventEmitter(agGrid, 'onRefresh', rerender);
20
20
  //needs to be called with onTouchEnd as well since ag grid cancels the click event on them
21
21
  const onClick = () => {
22
- if ((!column.isFilterable && column.disableSorting && !column.canBeAggregated && !column?.metadata?.CanBeGrouped)) {
22
+ if ((!column.isFilterable && column.disableSorting && !column.canBeAggregated && !column.canBeGrouped)) {
23
23
  return;
24
24
  }
25
25
  setColumnHeaderContextualMenuProps({
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnHeader.js","sources":["../../../../../src/components/Grid/column-headers/column-header/ColumnHeader.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { CommandBarButton, Icon, Label, useTheme } from '@fluentui/react';\nimport React from 'react';\nimport { useGridInstance } from '../../grid/useGridInstance';\nimport { IGridColumn } from '../../grid/GridModel';\nimport { ColumnHeaderContextualMenu, IColumnHeaderContextualMenuProps } from './ColumnHeaderContextualMenu';\nimport { FilterCallout } from './FilterCallout';\nimport { NestedControlRenderer } from '../../../NestedControlRenderer';\nimport { useRerender } from '@talxis/react-components';\nimport { useAgGridInstance } from '../../grid/ag-grid/useAgGridInstance';\nimport { useEventEmitter } from '../../../../hooks/useEventEmitter';\nimport { IAgGridModelEvents } from '../../grid/ag-grid/AgGridModel';\n\nexport interface IColumnHeader {\n baseColumn: IGridColumn;\n}\n\nexport const ColumnHeader = (props: IColumnHeader) => {\n const grid = useGridInstance();\n const agGrid = useAgGridInstance();\n const column = grid.getGridColumnByName(props.baseColumn.name, true);\n const [columnHeaderContextualMenuProps, setColumnHeaderContextualMenuProps] = useState<IColumnHeaderContextualMenuProps | null>(null);\n const [filterCalloutProps, setFilterCalloutProps] = useState<any | null>(null);\n const buttonRef = useRef<HTMLDivElement>(null);\n const rerender = useRerender();\n useEventEmitter<IAgGridModelEvents>(agGrid, 'onRefresh', rerender);\n\n //needs to be called with onTouchEnd as well since ag grid cancels the click event on them\n const onClick = () => {\n if ((!column.isFilterable && column.disableSorting && !column.canBeAggregated && !column?.metadata?.CanBeGrouped)) {\n return;\n }\n setColumnHeaderContextualMenuProps({\n column: column,\n onDismiss: (e, dismissAll, showFilterCallout) => {\n setColumnHeaderContextualMenuProps(null);\n if (!showFilterCallout) {\n return;\n }\n setFilterCalloutProps({\n column: column,\n onDismiss: () => {\n setFilterCalloutProps(null)\n }\n })\n }\n });\n }\n const preventDismissOnEvent = (e: Event | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element> | React.FocusEvent<Element, Element>) => {\n if (e.type !== 'scroll') {\n return false;\n }\n const target = e.target as HTMLElement;\n //check for vertical scroll\n if (target?.classList?.contains('ag-body-viewport') || target?.classList?.contains('ag-body-vertical-scroll-viewport')) {\n return true;\n }\n //ios outputs horizontal scroll if focused in callout btn which would result in dismiss of callout\n if (/iPad|iPhone|iPod/.test(navigator.userAgent)) {\n return true;\n }\n return false;\n }\n return (\n <>\n <div ref={buttonRef} onClick={onClick} onTouchEnd={onClick}>\n <NestedControlRenderer\n context={grid.getPcfContext()}\n parameters={{\n ControlName: 'GridColumnHeader',\n Bindings: {\n Column: {\n isStatic: true,\n value: column,\n type: 'Object',\n },\n Dataset: {\n value: grid.getDataset(),\n isStatic: true,\n type: 'Object',\n },\n EnableEditing: {\n isStatic: true,\n value: grid.isEditingEnabled(),\n type: 'TwoOptions'\n },\n Filtering: {\n isStatic: true,\n value: grid.getFiltering(),\n type: 'Object'\n }\n }\n }}\n />\n </div>\n {columnHeaderContextualMenuProps &&\n <ColumnHeaderContextualMenu\n target={buttonRef}\n calloutProps={{\n preventDismissOnEvent: preventDismissOnEvent\n }}\n {...columnHeaderContextualMenuProps} />\n }\n {filterCalloutProps &&\n <FilterCallout preventDismissOnEvent={preventDismissOnEvent} target={buttonRef} {...filterCalloutProps} />\n }\n </>\n )\n};"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnHeader.js","sources":["../../../../../src/components/Grid/column-headers/column-header/ColumnHeader.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { CommandBarButton, Icon, Label, useTheme } from '@fluentui/react';\nimport React from 'react';\nimport { useGridInstance } from '../../grid/useGridInstance';\nimport { IGridColumn } from '../../grid/GridModel';\nimport { ColumnHeaderContextualMenu, IColumnHeaderContextualMenuProps } from './ColumnHeaderContextualMenu';\nimport { FilterCallout } from './FilterCallout';\nimport { NestedControlRenderer } from '../../../NestedControlRenderer';\nimport { useRerender } from '@talxis/react-components';\nimport { useAgGridInstance } from '../../grid/ag-grid/useAgGridInstance';\nimport { useEventEmitter } from '../../../../hooks/useEventEmitter';\nimport { IAgGridModelEvents } from '../../grid/ag-grid/AgGridModel';\n\nexport interface IColumnHeader {\n baseColumn: IGridColumn;\n}\n\nexport const ColumnHeader = (props: IColumnHeader) => {\n const grid = useGridInstance();\n const agGrid = useAgGridInstance();\n const column = grid.getGridColumnByName(props.baseColumn.name, true);\n const [columnHeaderContextualMenuProps, setColumnHeaderContextualMenuProps] = useState<IColumnHeaderContextualMenuProps | null>(null);\n const [filterCalloutProps, setFilterCalloutProps] = useState<any | null>(null);\n const buttonRef = useRef<HTMLDivElement>(null);\n const rerender = useRerender();\n useEventEmitter<IAgGridModelEvents>(agGrid, 'onRefresh', rerender);\n\n //needs to be called with onTouchEnd as well since ag grid cancels the click event on them\n const onClick = () => {\n if ((!column.isFilterable && column.disableSorting && !column.canBeAggregated && !column.canBeGrouped)) {\n return;\n }\n setColumnHeaderContextualMenuProps({\n column: column,\n onDismiss: (e, dismissAll, showFilterCallout) => {\n setColumnHeaderContextualMenuProps(null);\n if (!showFilterCallout) {\n return;\n }\n setFilterCalloutProps({\n column: column,\n onDismiss: () => {\n setFilterCalloutProps(null)\n }\n })\n }\n });\n }\n const preventDismissOnEvent = (e: Event | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element> | React.FocusEvent<Element, Element>) => {\n if (e.type !== 'scroll') {\n return false;\n }\n const target = e.target as HTMLElement;\n //check for vertical scroll\n if (target?.classList?.contains('ag-body-viewport') || target?.classList?.contains('ag-body-vertical-scroll-viewport')) {\n return true;\n }\n //ios outputs horizontal scroll if focused in callout btn which would result in dismiss of callout\n if (/iPad|iPhone|iPod/.test(navigator.userAgent)) {\n return true;\n }\n return false;\n }\n return (\n <>\n <div ref={buttonRef} onClick={onClick} onTouchEnd={onClick}>\n <NestedControlRenderer\n context={grid.getPcfContext()}\n parameters={{\n ControlName: 'GridColumnHeader',\n Bindings: {\n Column: {\n isStatic: true,\n value: column,\n type: 'Object',\n },\n Dataset: {\n value: grid.getDataset(),\n isStatic: true,\n type: 'Object',\n },\n EnableEditing: {\n isStatic: true,\n value: grid.isEditingEnabled(),\n type: 'TwoOptions'\n },\n Filtering: {\n isStatic: true,\n value: grid.getFiltering(),\n type: 'Object'\n }\n }\n }}\n />\n </div>\n {columnHeaderContextualMenuProps &&\n <ColumnHeaderContextualMenu\n target={buttonRef}\n calloutProps={{\n preventDismissOnEvent: preventDismissOnEvent\n }}\n {...columnHeaderContextualMenuProps} />\n }\n {filterCalloutProps &&\n <FilterCallout preventDismissOnEvent={preventDismissOnEvent} target={buttonRef} {...filterCalloutProps} />\n }\n </>\n )\n};"],"names":["_jsxs","_Fragment","_jsx"],"mappings":";;;;;;;;;;AAiBa,MAAA,YAAY,GAAG,CAAC,KAAoB,KAAI;AACjD,IAAA,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;AAC/B,IAAA,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;AACnC,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,+BAA+B,EAAE,kCAAkC,CAAC,GAAG,QAAQ,CAA0C,IAAI,CAAC,CAAC;IACtI,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAa,IAAI,CAAC,CAAC;AAC/E,IAAA,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;AAC/C,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;AAC/B,IAAA,eAAe,CAAqB,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;;IAGnE,MAAM,OAAO,GAAG,MAAK;QACjB,KAAK,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG;YACpG,OAAO;AACV,SAAA;AACD,QAAA,kCAAkC,CAAC;AAC/B,YAAA,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,KAAI;gBAC5C,kCAAkC,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,CAAC,iBAAiB,EAAE;oBACpB,OAAO;AACV,iBAAA;AACD,gBAAA,qBAAqB,CAAC;AAClB,oBAAA,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,MAAK;wBACZ,qBAAqB,CAAC,IAAI,CAAC,CAAA;qBAC9B;AACJ,iBAAA,CAAC,CAAA;aACL;AACJ,SAAA,CAAC,CAAC;AACP,KAAC,CAAA;AACD,IAAA,MAAM,qBAAqB,GAAG,CAAC,CAAoH,KAAI;AACnJ,QAAA,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;AACrB,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;;AAEvC,QAAA,IAAI,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,kBAAkB,CAAC,IAAI,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,kCAAkC,CAAC,EAAE;AACpH,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;;QAED,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;AAC9C,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;AACjB,KAAC,CAAA;IACD,QACIA,IACI,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CAAAC,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EACtD,QAAA,EAAAA,GAAA,CAAC,qBAAqB,EAAA,EAClB,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,EAC7B,UAAU,EAAE;AACR,wBAAA,WAAW,EAAE,kBAAkB;AAC/B,wBAAA,QAAQ,EAAE;AACN,4BAAA,MAAM,EAAE;AACJ,gCAAA,QAAQ,EAAE,IAAI;AACd,gCAAA,KAAK,EAAE,MAAM;AACb,gCAAA,IAAI,EAAE,QAAQ;AACjB,6BAAA;AACD,4BAAA,OAAO,EAAE;AACL,gCAAA,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE;AACxB,gCAAA,QAAQ,EAAE,IAAI;AACd,gCAAA,IAAI,EAAE,QAAQ;AACjB,6BAAA;AACD,4BAAA,aAAa,EAAE;AACX,gCAAA,QAAQ,EAAE,IAAI;AACd,gCAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE;AAC9B,gCAAA,IAAI,EAAE,YAAY;AACrB,6BAAA;AACD,4BAAA,SAAS,EAAE;AACP,gCAAA,QAAQ,EAAE,IAAI;AACd,gCAAA,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE;AAC1B,gCAAA,IAAI,EAAE,QAAQ;AACjB,6BAAA;AACJ,yBAAA;qBACJ,EACH,CAAA,EAAA,CACA,EACL,+BAA+B;AAC5B,gBAAAA,GAAA,CAAC,0BAA0B,EACvB,EAAA,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE;AACV,wBAAA,qBAAqB,EAAE,qBAAqB;qBAC/C,EACG,GAAA,+BAA+B,EAAI,CAAA,EAE9C,kBAAkB;AACf,gBAAAA,GAAA,CAAC,aAAa,EAAA,EAAC,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,EAAE,SAAS,EAAM,GAAA,kBAAkB,EAAI,CAAA,CAAA,EAAA,CAE/G,EACN;AACL;;;;"}
@@ -602,7 +602,7 @@ class AgGridModel extends EventEmitter {
602
602
  aggregatedValue: value.aggregatedValue,
603
603
  loading: columnInfo.ui.isLoading(),
604
604
  errorMessage: columnInfo.errorMessage,
605
- editable: columnInfo.security.editable,
605
+ editable: column.isEditable && columnInfo.security.editable,
606
606
  editing: editing,
607
607
  parameters: parameters,
608
608
  saving: record.isSaving(),
@@ -1 +1 @@
1
- {"version":3,"file":"AgGridModel.js","sources":["../../../../../src/components/Grid/grid/ag-grid/AgGridModel.ts"],"sourcesContent":["import { CellClickedEvent, CellDoubleClickedEvent, ColDef, ColumnMovedEvent, ColumnResizedEvent, GridApi, IRowNode, IsFullWidthRowParams, IsServerSideGroupOpenByDefaultParams, ModuleRegistry, SelectionChangedEvent, SuppressKeyboardEventParams, ValueFormatterParams, ValueGetterParams } from \"@ag-grid-community/core\";\nimport debounce from 'debounce';\nimport { GridModel, IGridColumn } from \"../GridModel\";\nimport { Client, DataProvider, EventEmitter, IAddControlNotificationOptions, IColumn, IColumnInfo, IControlParameters, ICustomColumnComponent, ICustomColumnControl, ICustomColumnFormatting, IDataProvider, IRecord, Operators } from \"@talxis/client-libraries\";\nimport { NestedControl } from \"../../../NestedControlRenderer/NestedControl\";\nimport { Cell } from \"../../cells/cell/Cell\";\nimport { ColumnHeader } from \"../../column-headers/column-header/ColumnHeader\";\nimport { CHECKBOX_COLUMN_KEY } from \"../../constants\";\nimport { Comparator } from \"../ValueComparator\";\nimport { ServerSideDatasource } from \"./ServerSideDatasource\";\nimport { RecordSelectionCheckBox } from \"../../column-headers/record-selection-checkbox/RecordSelectionCheckbox\";\nimport { RowGroupingModule } from \"@ag-grid-enterprise/row-grouping\";\nimport { ServerSideRowModelModule } from \"@ag-grid-enterprise/server-side-row-model\";\nimport { ClipboardModule } from \"@ag-grid-enterprise/clipboard\";\nimport { FullRowLoading } from \"../../loading/full-row/FullRowLoading\";\nimport { FullWidthCellRendererError } from \"../../errors/FullWidthCellRendererError/FullWidthCellRendererError\";\nimport { LicenseManager } from \"@ag-grid-enterprise/core\";\nimport { SelectionCell } from \"../../cells/selection-cell/SelectionCell\";\nModuleRegistry.registerModules([RowGroupingModule, ServerSideRowModelModule, ClipboardModule,]);\n\ninterface IAgGridTestDependencies {\n grid: GridModel;\n getContainer: () => HTMLDivElement;\n}\n\nexport interface IAgGridModelEvents {\n onRefresh: () => void;\n}\n\n\nexport interface ICellValues {\n notifications: IAddControlNotificationOptions[];\n customFormatting: Required<ICustomColumnFormatting>;\n customControl: Required<ICustomColumnControl>;\n customComponent: ICustomColumnComponent;\n loading: boolean;\n value: any;\n aggregatedValue: any;\n error: boolean;\n height: number;\n errorMessage: string;\n parameters: IControlParameters;\n columnAlignment: Required<IColumn['alignment']>;\n editing: boolean;\n editable: boolean;\n disabled: boolean;\n saving: boolean;\n}\n\nexport class AgGridModel extends EventEmitter<IAgGridModelEvents> {\n private _grid: GridModel;\n private _dataSource: ServerSideDatasource;\n private _gridApi: GridApi | undefined;\n private _hasUserResizedColumns: boolean = false;\n private _getContainer: () => HTMLDivElement;\n private _debouncedColumnResized: debounce.DebouncedFunction<(e: ColumnResizedEvent<IRecord>) => void>;\n private _debouncedSetSelectedNodes: debounce.DebouncedFunction<(ids: string[]) => void>;\n private _expandedRowGroupIds: string[] = [];\n private _hasUserExpandedRowGroups: boolean = false;\n private _isLoadingNestedProviders: boolean = false;\n private _idsToAddToExpandGroupState = new Set<string>();\n private _intervals: NodeJS.Timeout[] = [];\n\n\n constructor({ grid, getContainer }: IAgGridTestDependencies) {\n super();\n this._grid = grid;\n this._getContainer = getContainer;\n this._dataSource = new ServerSideDatasource(this);\n this._debouncedColumnResized = debounce((e: ColumnResizedEvent<IRecord>) => this._onColumnResized(e));\n this._debouncedSetSelectedNodes = debounce((ids) => this._setSelectedNodes(ids), 0);\n this._localHarnessDebugSetup();\n const licenseKey = this._grid.getLicenseKey();\n if (licenseKey) {\n LicenseManager.setLicenseKey(licenseKey);\n }\n }\n\n public getColumns(gridColumns: IGridColumn[]): ColDef[] {\n if (this._grid.getDataset().grouping.getGroupBys().length > 0 && !this._grid.isGroupedColumnsPinnedEnabled()) {\n this._sortColumns(gridColumns);\n }\n const agColumns: ColDef[] = [];\n for (const column of gridColumns) {\n if (column.isHidden) {\n continue;\n }\n const agColumn: ColDef = {\n colId: column.name,\n field: column.name,\n headerName: column.displayName,\n width: column.visualSizeFactor,\n sortable: !column.disableSorting,\n lockPinned: true,\n resizable: column.isResizable,\n autoHeaderHeight: true,\n autoHeight: this._isColumnAutoHeightEnabled(column),\n suppressMovable: column.isDraggable === false ? true : false,\n pinned: this._isColumnPinned(column),\n headerComponentParams: {\n baseColumn: column\n },\n rowGroup: column.grouping?.isGrouped,\n cellRendererParams: (p: any) => {\n return {\n ...this._getCellParameters(p.data, column),\n isCellEditor: false\n }\n },\n cellEditorParams: (p: any) => {\n return {\n ...this._getCellParameters(p.data, column),\n isCellEditor: true\n }\n },\n editable: (p) => this._isCellEditorEnabled(column.name, p.data),\n equals: (valueA: ICellValues, valueB: ICellValues) => new Comparator().isEqual(valueA, valueB),\n headerComponent: ColumnHeader,\n cellRenderer: Cell,\n cellEditor: Cell,\n valueGetter: (p: ValueGetterParams<IRecord>) => this._valueGetter(p, column),\n valueFormatter: (p: ValueFormatterParams<IRecord>) => this._valueFormatter(p),\n suppressKeyboardEvent: (p) => this._suppressKeyboardEvent(p, column),\n onCellDoubleClicked: (e: CellDoubleClickedEvent<IRecord>) => this._onCellDoubleClick(e),\n }\n agColumns.push(agColumn);\n }\n if (this._grid.getSelectionType() !== 'none' || this._grid.isEditingEnabled()) {\n agColumns.unshift(this._createCheckBoxColumn())\n }\n return agColumns;\n }\n\n public executeWithGridApi(callback: (gridApi: GridApi) => void) {\n if (!this._gridApi || this._gridApi.isDestroyed()) {\n return;\n }\n return callback(this._gridApi);\n }\n\n public init(gridApi: GridApi) {\n this._gridApi = gridApi;\n this._registerEventListeners();\n this._setGridOptions();\n this._setCurrentColumns();\n if (!this._grid.getDataset().loading) {\n //we need to call this here since the events already fired before the grid api was ready\n this._onNewDataLoaded();\n this._setTotalRow();\n }\n }\n\n public getGrid(): GridModel {\n return this._grid;\n }\n\n public getSelectionType(): 'single' | 'multiple' | undefined {\n switch (this._grid.getSelectionType()) {\n case 'none': {\n return undefined;\n }\n case 'single': {\n return 'single';\n }\n case 'multiple': {\n return 'multiple';\n }\n }\n }\n\n public toggleGroup(node: IRowNode<IRecord>) {\n node.setExpanded(!node.expanded);\n //clears the expanded rows in memory so it does not interfere with the next group expansion\n this._expandedRowGroupIds = [];\n this._hasUserExpandedRowGroups = true;\n }\n\n public getRecordSelectionState(node: IRowNode<IRecord>): 'checked' | 'unchecked' | 'indeterminate' {\n const record = node.data!;\n const dataProvider = record.getDataProvider();\n const childDataProvider = dataProvider.getGroupedRecordDataProvider(record.getRecordId());\n let result: 'checked' | 'unchecked' | 'indeterminate';\n if (childDataProvider) {\n if (node.isSelected()) {\n result = 'checked';\n }\n else {\n if (childDataProvider.getSelectedRecordIds().length === 0) {\n result = 'unchecked';\n }\n else {\n result = 'indeterminate';\n }\n }\n }\n else {\n result = node.isSelected() ? 'checked' : 'unchecked';\n }\n if (record.getSummarizationType() === 'grouping') {\n if (result === 'unchecked') {\n this._idsToAddToExpandGroupState.delete(record.getRecordId());\n }\n else {\n this._idsToAddToExpandGroupState.add(record.getRecordId());\n }\n }\n return result;\n }\n\n public onNotifyOutputChanged(record: IRecord, columnName: string, value: any, parameters: any) {\n record.setValue(columnName, value);\n if(this.getGrid().isAutoSaveEnabled()) {\n record.save();\n }\n const { ShouldUnmountWhenOutputChanges } = parameters;\n if (ShouldUnmountWhenOutputChanges?.raw) {\n this.executeWithGridApi(gridApi => gridApi.stopEditing());\n }\n }\n\n private _localHarnessDebugSetup() {\n if (this._grid.getParameters().IsLocalHarnessDebugMode?.raw === 'true') {\n window.addEventListener('visibilitychange', () => {\n this._saveState();\n })\n }\n }\n\n private _createCheckBoxColumn(): ColDef {\n return {\n colId: DataProvider.CONST.CHECKBOX_COLUMN_KEY,\n field: DataProvider.CONST.CHECKBOX_COLUMN_KEY,\n headerName: '',\n width: 40,\n lockPinned: true,\n resizable: false,\n pinned: 'left',\n headerComponent: RecordSelectionCheckBox,\n cellRenderer: SelectionCell,\n suppressSizeToFit: true,\n suppressMovable: true,\n valueGetter: () => null,\n valueFormatter: () => '',\n cellRendererParams: (p: any) => {\n return {\n record: p.data\n }\n }\n }\n }\n\n private _sortColumns(columns: IGridColumn[]): IGridColumn[] {\n return columns.sort((a, b) => {\n // If both columns have the same grouping status, maintain original order (return 0)\n if ((a.grouping?.isGrouped || false) === (b.grouping?.isGrouped || false)) {\n return 0;\n }\n // If a is grouped, it should come first\n if (a.grouping?.isGrouped) {\n return -1;\n }\n // If b is grouped, it should come first\n if (b.grouping?.isGrouped) {\n return 1;\n }\n // Default case, should never reach here given the first condition\n return 0;\n });\n }\n\n private _onDestroyed() {\n this._intervals.forEach(interval => clearInterval(interval));\n this._saveState();\n }\n\n private _setCurrentColumns() {\n const gridColumns = this._grid.getGridColumns();\n this.executeWithGridApi(gridApi => gridApi.setGridOption('columnDefs', this.getColumns(gridColumns)));\n this._autoSizeColumns();\n }\n\n private _isColumnAutoHeightEnabled(column: IGridColumn): boolean {\n return !!column.autoHeight\n }\n\n private _onCellDoubleClick(e: CellDoubleClickedEvent<IRecord>) {\n const column = this._dataset.getDataProvider().getColumnsMap()[e.colDef.colId!]!\n switch (true) {\n case !this._grid.isNavigationEnabled():\n //do not navigate on editable columns\n case this._grid.isColumnEditable(column.name, e.data):\n //do not navigate on aggregated/grouped rows\n case e.data?.getSummarizationType() !== 'none':\n //do not navigate on checkbox column\n case column.name === DataProvider.CONST.CHECKBOX_COLUMN_KEY: {\n break;\n }\n default: {\n const record = e.data!;\n record.getDataProvider().openDatasetItem(record.getNamedReference());\n }\n }\n }\n\n private _saveState() {\n this.executeWithGridApi(gridApi => {\n const { rowSelection, columnOrder, ...gridState } = gridApi.getState();\n const selectedGroupIds = this._grid.getDataset().getSelectedRecordIds({ includeGroupRecordIds: true }).filter(id => id.startsWith(DataProvider.CONST.GROUP_PREFIX));\n const expandedRowGroupIds = new Set<string>([...selectedGroupIds, ...this._idsToAddToExpandGroupState.values()]);\n if (expandedRowGroupIds.size > 0) {\n gridState.rowGroupExpansion = {\n expandedRowGroupIds: [...expandedRowGroupIds.values()]\n }\n }\n const state = this.getGrid().getState() || {};\n state.AgGridState = gridState;\n this.getGrid().getPcfContext().mode.setControlState(state);\n });\n }\n\n private _isColumnPinned(column: IGridColumn) {\n switch (true) {\n case column.grouping?.isGrouped && this._grid.isGroupedColumnsPinnedEnabled(): {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n\n private _getCellParameters(record: IRecord, column: IGridColumn) {\n return {\n baseColumn: column,\n record: record\n }\n }\n\n private _scrollToTop() {\n this.executeWithGridApi(gridApi => gridApi.ensureIndexVisible(0, 'top'));\n }\n\n private _canExpandRowGroupsByDefault(): boolean {\n if (this._hasUserExpandedRowGroups) {\n return false;\n }\n else {\n return true;\n }\n }\n\n private _suppressKeyboardEvent(params: SuppressKeyboardEventParams<IRecord, any>, column: IGridColumn): boolean {\n if (column.oneClickEdit) {\n return true;\n }\n return false;\n }\n\n private _registerEventListeners() {\n this._dataset.addEventListener('onLoading', (isLoading: boolean) => this._setLoadingOverlay(this._dataset.loading));\n this._dataset.addEventListener('onRecordsSelected', (ids: string[]) => this._debouncedSetSelectedNodes(ids));\n this._dataset.addEventListener('onNewDataLoaded', () => this._onNewDataLoaded());\n this._dataset.addEventListener('onRenderRequested', () => this.executeWithGridApi(gridApi => gridApi.refreshCells()));\n this._dataset.addEventListener('onFirstDataLoaded', () => this._setTotalRow());\n this.executeWithGridApi(gridApi => {\n gridApi.addEventListener('gridSizeChanged', () => this._autoSizeColumns());\n gridApi.addEventListener('firstDataRendered', () => this._autoSizeColumns());\n gridApi.addEventListener('selectionChanged', (e: SelectionChangedEvent) => this._onSelectionChanged(e));\n gridApi.addEventListener('columnResized', (e: any) => this._debouncedColumnResized(e));\n gridApi.addEventListener('modelUpdated', () => {\n if (this._grid.getDataset().loading) {\n this._setLoadingOverlay(true);\n }\n this._setGridHeight();\n });\n gridApi.addEventListener('columnMoved', (e: ColumnMovedEvent<IRecord>) => this._onColumnMoved(e));\n gridApi.addEventListener('firstDataRendered', () => this._handleSelectionFromState());\n gridApi.addEventListener('gridPreDestroyed', () => this._onDestroyed());\n });\n }\n\n private _setTotalRow() {\n const totalRowDataProvider = this._grid.getTotalRow().getDataProvider();\n totalRowDataProvider.addEventListener('onLoading', () => this._setPinnedRowData());\n totalRowDataProvider.addEventListener('onError', () => this._setPinnedRowData());\n this._setPinnedRowData();\n }\n\n private _setGridOptions() {\n this.executeWithGridApi(gridApi => {\n gridApi.setGridOption('serverSideDatasource', this._dataSource);\n gridApi.setGridOption('isServerSideGroupOpenByDefault', (params) => this._syncExpandedRowGroups(params));\n gridApi.setGridOption('loadingCellRenderer', FullRowLoading)\n gridApi.setGridOption('suppressDragLeaveHidesColumns', true);\n gridApi.setGridOption('isFullWidthRow', (params) => this._isFullWidthRow(params));\n gridApi.setGridOption('fullWidthCellRenderer', FullWidthCellRendererError);\n gridApi.setGridOption('fullWidthCellRendererParams', (params: IsFullWidthRowParams<IRecord>) => this._getFullWidthCellRendererParams(params))\n gridApi.setGridOption('suppressCopyRowsToClipboard', true);\n gridApi.setGridOption('animateRows', false);\n gridApi.setGridOption('groupDisplayType', 'custom');\n });\n }\n\n private _isFullWidthRow(params: IsFullWidthRowParams<IRecord>): boolean {\n const provider = params.rowNode.data?.getDataProvider();\n switch (true) {\n case provider?.getSummarizationType() === 'aggregation' && provider.isError(): {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n\n //this should only be triggered when we load the grid with some item pre-selected from state\n //e.g. navigating to a record and coming back to the grid\n private _handleSelectionFromState() {\n const selectedRecordIds = this._grid.getDataset().getSelectedRecordIds();\n this._grid.getDataset().clearSelectedRecordIds();\n let isScrolledToMiddle = false;\n const localIntervals: NodeJS.Timeout[] = [];\n const resolvedProviderSet = new Set<IDataProvider>();\n for (const id of selectedRecordIds) {\n const interval = setInterval(() => {\n const record = this._grid.getDataset().getDataProvider().getRecordsMap()[id];\n if (record) {\n clearInterval(interval);\n const provider = record.getDataProvider();\n if (!resolvedProviderSet.has(provider)) {\n const recordIdsToSelect = selectedRecordIds.filter(id => provider.getRecordsMap()[id])\n provider.setSelectedRecordIds(recordIdsToSelect);\n resolvedProviderSet.add(provider);\n }\n if (!isScrolledToMiddle) {\n const middleSelectedRecordId = selectedRecordIds[Math.floor(selectedRecordIds.length / 2)]\n this.executeWithGridApi(gridApi => {\n const node = gridApi.getRowNode(middleSelectedRecordId);\n if (node) {\n isScrolledToMiddle = true;\n gridApi.ensureNodeVisible(node!, 'middle');\n }\n });\n }\n }\n }, 100);\n localIntervals.push(interval);\n this._intervals.push(interval);\n }\n //abandon the selection after 5 seconds\n //this could be done better by detecting if we are done loading all providers\n setTimeout(() => {\n localIntervals.forEach(interval => clearInterval(interval));\n }, 5000);\n }\n\n private _getFullWidthCellRendererParams(params: IsFullWidthRowParams<IRecord>) {\n //@ts-ignore - typings seem to be incorrect\n const provider = params.node.data?.getDataProvider()\n return {\n errorMessage: provider?.getErrorMessage()\n }\n }\n\n private _syncExpandedRowGroups(params: IsServerSideGroupOpenByDefaultParams): boolean {\n if (this._expandedRowGroupIds.includes(params.rowNode.id!)) {\n return true\n }\n else if (this._canExpandRowGroupsByDefault()) {\n return params.rowNode.level <= this._grid.getDefaultExpandedGroupLevel();\n }\n else return false;\n }\n\n private _onColumnMoved(e: ColumnMovedEvent<IRecord>) {\n const movedColumn = this._grid.getDataset().getDataProvider().getColumnsMap()[e.column?.getColId()!];\n if (!e.finished || e.source !== 'uiColumnMoved') {\n return;\n }\n let order = 0;\n const newColumnsMap = new Map<string, IColumn>(this._grid.getDataset().columns.map(col => [col.name, col]));\n for (const colId of e.api.getState().columnOrder?.orderedColIds!) {\n if (newColumnsMap.has(colId)) {\n newColumnsMap.set(colId, { ...newColumnsMap.get(colId)!, order: order++ });\n }\n }\n this._dataset.setColumns([...newColumnsMap.values()]);\n if (movedColumn?.grouping?.isGrouped) {\n this._dataset.refresh();\n }\n }\n\n private _onNewDataLoaded() {\n this._refreshServerSideModel();\n this._setCurrentColumns();\n this._setNoRowsOverlay();\n this._scrollToTop();\n }\n\n private _refreshServerSideModel() {\n this.executeWithGridApi(gridApi => {\n this._expandedRowGroupIds = gridApi.getState()?.rowGroupExpansion?.expandedRowGroupIds ?? [];\n gridApi.refreshServerSide({\n purge: true\n })\n });\n }\n\n private _calculateGridHeight(): string {\n const defaultRowHeight = this._grid.getDefaultRowHeight();\n let offset = 35;\n if (this._dataset.grouping.getGroupBys().length > 0) {\n offset += 30;\n }\n if (this._grid.getParameters().Height?.raw) {\n return this._grid.getParameters().Height!.raw!;\n }\n else {\n let totalRowHeight = 0;\n let numberOfRecords = 0;\n this.executeWithGridApi(gridApi => {\n const renderedNodes = gridApi.getRenderedNodes();\n totalRowHeight = renderedNodes.reduce((acc, node) => acc + (node.rowHeight ?? defaultRowHeight), 0);\n numberOfRecords = renderedNodes.length;\n });\n if (numberOfRecords <= 15) {\n const headerHeight = this._getContainer().querySelector('.ag-header-row')?.clientHeight ?? 0;\n return `${totalRowHeight + headerHeight + offset}px`;\n }\n else {\n return `${defaultRowHeight * 17 + offset}px`;\n }\n }\n }\n private _setGridHeight() {\n setTimeout(() => {\n const container = this._getContainer();\n if (container) {\n container.style.height = this._calculateGridHeight();\n }\n }, 100);\n }\n\n private _onColumnResized(e: ColumnResizedEvent<IRecord>) {\n if (e.source === 'uiColumnResized') {\n this._hasUserResizedColumns = true;\n this._updateColumnVisualSizeFactor(e);\n }\n }\n\n private _autoSizeColumns() {\n if (this._hasUserResizedColumns) {\n return;\n }\n this.executeWithGridApi(gridApi => {\n gridApi.sizeColumnsToFit({\n columnLimits: this._grid.getDataset().columns.map(col => {\n return {\n key: col.name,\n minWidth: col.visualSizeFactor\n }\n })\n });\n });\n }\n\n private _updateColumnVisualSizeFactor(e: ColumnResizedEvent<IRecord>) {\n const resizedColumnKey = e.column?.getColId();\n if (!resizedColumnKey) {\n return;\n }\n const columns = this._grid.getDataset().columns; const newColumns = columns.map(col => {\n if (col.name === resizedColumnKey) {\n return {\n ...col,\n visualSizeFactor: e.column?.getActualWidth()!\n }\n }\n return col;\n })\n this._grid.getDataset().setColumns(newColumns);\n }\n\n private _onSelectionChanged(e: SelectionChangedEvent<IRecord>) {\n switch (true) {\n case e.source === 'api':\n case e.source === 'apiSelectAll': {\n return;\n }\n }\n let selectedNodes: IRowNode<IRecord>[] = [];\n this.executeWithGridApi(gridApi => {\n selectedNodes = gridApi.getSelectedNodes();\n });\n //if we click a grouped record, do not propagate the selection to children\n const providerSelectedRecordIdsMap = new Map<IDataProvider, string[]>();\n selectedNodes.map(node => {\n const record = node.data!;\n const provider = record.getDataProvider();\n if (!providerSelectedRecordIdsMap.has(provider)) {\n providerSelectedRecordIdsMap.set(provider, []);\n }\n providerSelectedRecordIdsMap.get(provider)!.push(record.getRecordId());\n })\n providerSelectedRecordIdsMap.forEach((ids, provider) => {\n provider.setSelectedRecordIds(ids);\n });\n }\n\n private async _setSelectedNodes(ids: string[]) {\n //interval to prevent infinite loading\n const checkLoadingNestedProviders = setInterval(() => {\n if (this._isLoadingNestedProviders && !this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = false;\n this._dataset.getDataProvider().setLoading(false);\n clearInterval(checkLoadingNestedProviders);\n }\n }, 500);\n this._intervals.push(checkLoadingNestedProviders);\n if (!this._isLoadingNestedProviders && this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = true;\n this._dataset.getDataProvider().setLoading(true);\n }\n else if (this._isLoadingNestedProviders && !this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = false;\n this._dataset.getDataProvider().setLoading(false);\n clearInterval(checkLoadingNestedProviders);\n }\n this.executeWithGridApi(gridApi => {\n gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: this._grid.getDataset().getDataProvider().getSelectedRecordIds({ includeGroupRecordIds: true })\n })\n gridApi.refreshCells({\n columns: [CHECKBOX_COLUMN_KEY],\n force: true\n })\n });\n }\n\n private _areChildProvidersLoading(): boolean {\n const childProviders = this._dataset.getDataProvider().getGroupedRecordDataProviders(true).filter(x => x.getParentRecordId());\n return childProviders.some(provider => provider.isLoading());\n }\n\n private _valueFormatter(p: ValueFormatterParams<IRecord>): string {\n const formattedValue = this._grid.getRecordFormattedValue(p.data!, p.colDef.colId!);\n return formattedValue.value ?? formattedValue.aggregatedValue;\n }\n\n private _valueGetter(p: ValueGetterParams<IRecord>, column: IGridColumn) {\n const record = p.data!;\n let editing: boolean = false;\n const columnInfo = record.getColumnInfo(column.name) as IColumnInfo;\n //i hate this, there is no other way to get the information if we are in edit mode or not\n if (Error().stack!.includes('startEditing')) {\n editing = true;\n }\n const customControl = this._grid.getControl(column, record, editing || !!column.oneClickEdit);\n\n const control = new NestedControl({\n onGetBindings: () => this._grid.getBindings(record, column, customControl),\n parentPcfContext: this._grid.getPcfContext(),\n });\n const parameters = columnInfo.ui.getControlParameters({\n ...this._grid.getFieldBindingParameters(record, column, editing),\n ...control.getParameters(),\n })\n if (column.oneClickEdit && record.getSummarizationType() === 'none') {\n editing = true;\n }\n const value = this._grid.getRecordValue(record, column);\n return {\n notifications: columnInfo.ui.getNotifications(),\n value: value.value,\n customFormatting: this._grid.getFieldFormatting(record, column.name),\n customControl: customControl,\n error: columnInfo.error,\n aggregatedValue: value.aggregatedValue,\n loading: columnInfo.ui.isLoading(),\n errorMessage: columnInfo.errorMessage,\n editable: columnInfo.security.editable,\n editing: editing,\n parameters: parameters,\n saving: record.isSaving(),\n columnAlignment: column.alignment,\n customComponent: columnInfo.ui.getCustomControlComponent()\n } as ICellValues;\n }\n\n private _setPinnedRowData() {\n const totalRecord = this._grid.getTotalRow().getTotalRowRecord();\n this.executeWithGridApi(gridApi => gridApi.setGridOption('pinnedBottomRowData', totalRecord ? [totalRecord] : []));\n }\n\n private _setLoadingOverlay(isLoading: boolean) {\n if (!isLoading) {\n return this.executeWithGridApi(gridApi => gridApi.hideOverlay());\n }\n this.executeWithGridApi(gridApi => gridApi.showLoadingOverlay());\n }\n\n private _setNoRowsOverlay() {\n setTimeout(() => {\n if (this._grid.getDataset().loading) {\n return;\n }\n this.executeWithGridApi(gridApi => {\n gridApi.hideOverlay();\n if (this._grid.getDataset().getDataProvider().getRecords().length === 0) {\n gridApi.showNoRowsOverlay();\n }\n });\n }, 0);\n }\n\n private _isCellEditorEnabled(columnName: string, record: IRecord): boolean {\n\n const column = this._grid.getGridColumnByName(columnName); // check column eligibility for cell editor\n switch (true) {\n //never allow cell editor for oneClickEdit - everything is handled by cell renderer in this case\n case column.oneClickEdit:\n //never allow cell editor for non-editable columns\n case !column.isEditable: {\n return false;\n }\n }\n return record.getColumnInfo(column.name).security.editable;\n }\n\n private get _dataset() {\n return this._grid.getDataset();\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,cAAc,CAAC,eAAe,CAAC,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,eAAe,EAAE,CAAC,CAAC;AA+B1F,MAAO,WAAY,SAAQ,YAAgC,CAAA;AAe7D,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,YAAY,EAA2B,EAAA;AACvD,QAAA,KAAK,EAAE,CAAC;QAZJ,IAAsB,CAAA,sBAAA,GAAY,KAAK,CAAC;QAIxC,IAAoB,CAAA,oBAAA,GAAa,EAAE,CAAC;QACpC,IAAyB,CAAA,yBAAA,GAAY,KAAK,CAAC;QAC3C,IAAyB,CAAA,yBAAA,GAAY,KAAK,CAAC;AAC3C,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,GAAG,EAAU,CAAC;QAChD,IAAU,CAAA,UAAA,GAAqB,EAAE,CAAC;AAKtC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC,CAA8B,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AACtG,QAAA,IAAI,CAAC,0BAA0B,GAAG,QAAQ,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AAC9C,QAAA,IAAI,UAAU,EAAE;AACZ,YAAA,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC5C,SAAA;KACJ;AAEM,IAAA,UAAU,CAAC,WAA0B,EAAA;QACxC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE;AAC1G,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAClC,SAAA;QACD,MAAM,SAAS,GAAa,EAAE,CAAC;AAC/B,QAAA,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE;YAC9B,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACjB,SAAS;AACZ,aAAA;AACD,YAAA,MAAM,QAAQ,GAAW;gBACrB,KAAK,EAAE,MAAM,CAAC,IAAI;gBAClB,KAAK,EAAE,MAAM,CAAC,IAAI;gBAClB,UAAU,EAAE,MAAM,CAAC,WAAW;gBAC9B,KAAK,EAAE,MAAM,CAAC,gBAAgB;AAC9B,gBAAA,QAAQ,EAAE,CAAC,MAAM,CAAC,cAAc;AAChC,gBAAA,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,MAAM,CAAC,WAAW;AAC7B,gBAAA,gBAAgB,EAAE,IAAI;AACtB,gBAAA,UAAU,EAAE,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC;AACnD,gBAAA,eAAe,EAAE,MAAM,CAAC,WAAW,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AAC5D,gBAAA,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AACpC,gBAAA,qBAAqB,EAAE;AACnB,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;AACD,gBAAA,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS;AACpC,gBAAA,kBAAkB,EAAE,CAAC,CAAM,KAAI;oBAC3B,OAAO;wBACH,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC;AAC1C,wBAAA,YAAY,EAAE,KAAK;qBACtB,CAAA;iBACJ;AACD,gBAAA,gBAAgB,EAAE,CAAC,CAAM,KAAI;oBACzB,OAAO;wBACH,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC;AAC1C,wBAAA,YAAY,EAAE,IAAI;qBACrB,CAAA;iBACJ;AACD,gBAAA,QAAQ,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC/D,gBAAA,MAAM,EAAE,CAAC,MAAmB,EAAE,MAAmB,KAAK,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;AAC9F,gBAAA,eAAe,EAAE,YAAY;AAC7B,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,WAAW,EAAE,CAAC,CAA6B,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC;gBAC5E,cAAc,EAAE,CAAC,CAAgC,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC7E,gBAAA,qBAAqB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,MAAM,CAAC;gBACpE,mBAAmB,EAAE,CAAC,CAAkC,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;aAC1F,CAAA;AACD,YAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5B,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE;YAC3E,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAA;AAClD,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KACpB;AAEM,IAAA,kBAAkB,CAAC,QAAoC,EAAA;QAC1D,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE;YAC/C,OAAO;AACV,SAAA;AACD,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAClC;AAEM,IAAA,IAAI,CAAC,OAAgB,EAAA;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;;YAElC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;AACvB,SAAA;KACJ;IAEM,OAAO,GAAA;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IAEM,gBAAgB,GAAA;AACnB,QAAA,QAAQ,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;YACjC,KAAK,MAAM,EAAE;AACT,gBAAA,OAAO,SAAS,CAAC;AACpB,aAAA;YACD,KAAK,QAAQ,EAAE;AACX,gBAAA,OAAO,QAAQ,CAAC;AACnB,aAAA;YACD,KAAK,UAAU,EAAE;AACb,gBAAA,OAAO,UAAU,CAAC;AACrB,aAAA;AACJ,SAAA;KACJ;AAEM,IAAA,WAAW,CAAC,IAAuB,EAAA;QACtC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAEjC,QAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;KACzC;AAEM,IAAA,uBAAuB,CAAC,IAAuB,EAAA;AAClD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAK,CAAC;AAC1B,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,iBAAiB,GAAG,YAAY,CAAC,4BAA4B,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAC1F,QAAA,IAAI,MAAiD,CAAC;AACtD,QAAA,IAAI,iBAAiB,EAAE;AACnB,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;gBACnB,MAAM,GAAG,SAAS,CAAC;AACtB,aAAA;AACI,iBAAA;gBACD,IAAI,iBAAiB,CAAC,oBAAoB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;oBACvD,MAAM,GAAG,WAAW,CAAC;AACxB,iBAAA;AACI,qBAAA;oBACD,MAAM,GAAG,eAAe,CAAC;AAC5B,iBAAA;AACJ,aAAA;AACJ,SAAA;AACI,aAAA;AACD,YAAA,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,SAAS,GAAG,WAAW,CAAC;AACxD,SAAA;AACD,QAAA,IAAI,MAAM,CAAC,oBAAoB,EAAE,KAAK,UAAU,EAAE;YAC9C,IAAI,MAAM,KAAK,WAAW,EAAE;gBACxB,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AACjE,aAAA;AACI,iBAAA;gBACD,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9D,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACjB;AAEM,IAAA,qBAAqB,CAAC,MAAe,EAAE,UAAkB,EAAE,KAAU,EAAE,UAAe,EAAA;AACzF,QAAA,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACnC,QAAA,IAAG,IAAI,CAAC,OAAO,EAAE,CAAC,iBAAiB,EAAE,EAAE;YACnC,MAAM,CAAC,IAAI,EAAE,CAAC;AACjB,SAAA;AACD,QAAA,MAAM,EAAE,8BAA8B,EAAE,GAAG,UAAU,CAAC;QACtD,IAAI,8BAA8B,EAAE,GAAG,EAAE;AACrC,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7D,SAAA;KACJ;IAEO,uBAAuB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,uBAAuB,EAAE,GAAG,KAAK,MAAM,EAAE;AACpE,YAAA,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAK;gBAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,aAAC,CAAC,CAAA;AACL,SAAA;KACJ;IAEO,qBAAqB,GAAA;QACzB,OAAO;AACH,YAAA,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,mBAAmB;AAC7C,YAAA,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,mBAAmB;AAC7C,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,eAAe,EAAE,uBAAuB;AACxC,YAAA,YAAY,EAAE,aAAa;AAC3B,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,WAAW,EAAE,MAAM,IAAI;AACvB,YAAA,cAAc,EAAE,MAAM,EAAE;AACxB,YAAA,kBAAkB,EAAE,CAAC,CAAM,KAAI;gBAC3B,OAAO;oBACH,MAAM,EAAE,CAAC,CAAC,IAAI;iBACjB,CAAA;aACJ;SACJ,CAAA;KACJ;AAEO,IAAA,YAAY,CAAC,OAAsB,EAAA;QACvC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;;AAEzB,YAAA,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,IAAI,KAAK,OAAO,CAAC,CAAC,QAAQ,EAAE,SAAS,IAAI,KAAK,CAAC,EAAE;AACvE,gBAAA,OAAO,CAAC,CAAC;AACZ,aAAA;;AAED,YAAA,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE;gBACvB,OAAO,CAAC,CAAC,CAAC;AACb,aAAA;;AAED,YAAA,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE;AACvB,gBAAA,OAAO,CAAC,CAAC;AACZ,aAAA;;AAED,YAAA,OAAO,CAAC,CAAC;AACb,SAAC,CAAC,CAAC;KACN;IAEO,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAEO,kBAAkB,GAAA;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAChD,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACtG,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;AAEO,IAAA,0BAA0B,CAAC,MAAmB,EAAA;AAClD,QAAA,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,CAAA;KAC7B;AAEO,IAAA,kBAAkB,CAAC,CAAkC,EAAA;AACzD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAM,CAAE,CAAA;AAChF,QAAA,QAAQ,IAAI;AACR,YAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;;AAEvC,YAAA,KAAK,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;;YAEtD,KAAK,CAAC,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,MAAM,CAAC;;YAE/C,KAAK,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,KAAK,CAAC,mBAAmB,EAAE;gBACzD,MAAM;AACT,aAAA;AACD,YAAA,SAAS;AACL,gBAAA,MAAM,MAAM,GAAG,CAAC,CAAC,IAAK,CAAC;gBACvB,MAAM,CAAC,eAAe,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxE,aAAA;AACJ,SAAA;KACJ;IAEO,UAAU,GAAA;AACd,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;AAC9B,YAAA,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;AACvE,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,oBAAoB,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AACpK,YAAA,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACjH,YAAA,IAAI,mBAAmB,CAAC,IAAI,GAAG,CAAC,EAAE;gBAC9B,SAAS,CAAC,iBAAiB,GAAG;AAC1B,oBAAA,mBAAmB,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC;iBACzD,CAAA;AACJ,aAAA;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC9C,YAAA,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;AAC9B,YAAA,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC/D,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,eAAe,CAAC,MAAmB,EAAA;AACvC,QAAA,QAAQ,IAAI;AACR,YAAA,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE;AAC3E,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AACD,YAAA,SAAS;AACL,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AACJ,SAAA;KACJ;IAEO,kBAAkB,CAAC,MAAe,EAAE,MAAmB,EAAA;QAC3D,OAAO;AACH,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,MAAM,EAAE,MAAM;SACjB,CAAA;KACJ;IAEO,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;KAC5E;IAEO,4BAA4B,GAAA;QAChC,IAAI,IAAI,CAAC,yBAAyB,EAAE;AAChC,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACI,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;KACJ;IAEO,sBAAsB,CAAC,MAAiD,EAAE,MAAmB,EAAA;QACjG,IAAI,MAAM,CAAC,YAAY,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;IAEO,uBAAuB,GAAA;QAC3B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,SAAkB,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACpH,QAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,GAAa,KAAK,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7G,QAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACtH,QAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AAC/E,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;AAC9B,YAAA,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC3E,YAAA,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC7E,YAAA,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,CAAwB,KAAK,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,YAAA,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAM,KAAK,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,YAAA,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAK;gBAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;AACjC,oBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjC,iBAAA;gBACD,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1B,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAA4B,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,YAAA,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;AACtF,YAAA,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AAC5E,SAAC,CAAC,CAAC;KACN;IAEO,YAAY,GAAA;QAChB,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE,CAAC;AACxE,QAAA,oBAAoB,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACnF,QAAA,oBAAoB,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAEO,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;YAC9B,OAAO,CAAC,aAAa,CAAC,sBAAsB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAChE,YAAA,OAAO,CAAC,aAAa,CAAC,gCAAgC,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;AACzG,YAAA,OAAO,CAAC,aAAa,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAA;AAC5D,YAAA,OAAO,CAAC,aAAa,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC;AAC7D,YAAA,OAAO,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;AAClF,YAAA,OAAO,CAAC,aAAa,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,CAAC;AAC3E,YAAA,OAAO,CAAC,aAAa,CAAC,6BAA6B,EAAE,CAAC,MAAqC,KAAK,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC,CAAA;AAC7I,YAAA,OAAO,CAAC,aAAa,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;AAC3D,YAAA,OAAO,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAC5C,YAAA,OAAO,CAAC,aAAa,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AACxD,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,eAAe,CAAC,MAAqC,EAAA;QACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC;AACxD,QAAA,QAAQ,IAAI;AACR,YAAA,KAAK,QAAQ,EAAE,oBAAoB,EAAE,KAAK,aAAa,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE;AAC3E,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AACD,YAAA,SAAS;AACL,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AACJ,SAAA;KACJ;;;IAIO,yBAAyB,GAAA;QAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,oBAAoB,EAAE,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,sBAAsB,EAAE,CAAC;QACjD,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,MAAM,cAAc,GAAqB,EAAE,CAAC;AAC5C,QAAA,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAiB,CAAC;AACrD,QAAA,KAAK,MAAM,EAAE,IAAI,iBAAiB,EAAE;AAChC,YAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK;AAC9B,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,eAAe,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7E,gBAAA,IAAI,MAAM,EAAE;oBACR,aAAa,CAAC,QAAQ,CAAC,CAAC;AACxB,oBAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;AAC1C,oBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACpC,wBAAA,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AACtF,wBAAA,QAAQ,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AACjD,wBAAA,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACrC,qBAAA;oBACD,IAAI,CAAC,kBAAkB,EAAE;AACrB,wBAAA,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;AAC1F,wBAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;4BAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;AACxD,4BAAA,IAAI,IAAI,EAAE;gCACN,kBAAkB,GAAG,IAAI,CAAC;AAC1B,gCAAA,OAAO,CAAC,iBAAiB,CAAC,IAAK,EAAE,QAAQ,CAAC,CAAC;AAC9C,6BAAA;AACL,yBAAC,CAAC,CAAC;AACN,qBAAA;AACJ,iBAAA;aACJ,EAAE,GAAG,CAAC,CAAC;AACR,YAAA,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClC,SAAA;;;QAGD,UAAU,CAAC,MAAK;AACZ,YAAA,cAAc,CAAC,OAAO,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC/D,EAAE,IAAI,CAAC,CAAC;KACZ;AAEO,IAAA,+BAA+B,CAAC,MAAqC,EAAA;;QAEzE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,CAAA;QACpD,OAAO;AACH,YAAA,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE;SAC5C,CAAA;KACJ;AAEO,IAAA,sBAAsB,CAAC,MAA4C,EAAA;AACvE,QAAA,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAG,CAAC,EAAE;AACxD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACI,aAAA,IAAI,IAAI,CAAC,4BAA4B,EAAE,EAAE;AAC1C,YAAA,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC;AAC5E,SAAA;;AACI,YAAA,OAAO,KAAK,CAAC;KACrB;AAEO,IAAA,cAAc,CAAC,CAA4B,EAAA;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,eAAe,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAG,CAAC,CAAC;QACrG,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,eAAe,EAAE;YAC7C,OAAO;AACV,SAAA;QACD,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,QAAA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAkB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5G,QAAA,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAc,EAAE;AAC9D,YAAA,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC1B,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AAC9E,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACtD,QAAA,IAAI,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC3B,SAAA;KACJ;IAEO,gBAAgB,GAAA;QACpB,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAEO,uBAAuB,GAAA;AAC3B,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;AAC9B,YAAA,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,iBAAiB,EAAE,mBAAmB,IAAI,EAAE,CAAC;YAC7F,OAAO,CAAC,iBAAiB,CAAC;AACtB,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA,CAAC,CAAA;AACN,SAAC,CAAC,CAAC;KACN;IAEO,oBAAoB,GAAA;QACxB,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC1D,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,MAAM,IAAI,EAAE,CAAC;AAChB,SAAA;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACxC,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,MAAO,CAAC,GAAI,CAAC;AAClD,SAAA;AACI,aAAA;YACD,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,IAAI,eAAe,GAAG,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;AAC9B,gBAAA,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBACjD,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;AACpG,gBAAA,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC;AAC3C,aAAC,CAAC,CAAC;YACH,IAAI,eAAe,IAAI,EAAE,EAAE;AACvB,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC;AAC7F,gBAAA,OAAO,GAAG,cAAc,GAAG,YAAY,GAAG,MAAM,IAAI,CAAC;AACxD,aAAA;AACI,iBAAA;AACD,gBAAA,OAAO,GAAG,gBAAgB,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC;AAChD,aAAA;AACJ,SAAA;KACJ;IACO,cAAc,GAAA;QAClB,UAAU,CAAC,MAAK;AACZ,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACvC,YAAA,IAAI,SAAS,EAAE;gBACX,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AACxD,aAAA;SACJ,EAAE,GAAG,CAAC,CAAC;KACX;AAEO,IAAA,gBAAgB,CAAC,CAA8B,EAAA;AACnD,QAAA,IAAI,CAAC,CAAC,MAAM,KAAK,iBAAiB,EAAE;AAChC,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;AACnC,YAAA,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC;AACzC,SAAA;KACJ;IAEO,gBAAgB,GAAA;QACpB,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;YAC9B,OAAO,CAAC,gBAAgB,CAAC;AACrB,gBAAA,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAG;oBACpD,OAAO;wBACH,GAAG,EAAE,GAAG,CAAC,IAAI;wBACb,QAAQ,EAAE,GAAG,CAAC,gBAAgB;qBACjC,CAAA;AACL,iBAAC,CAAC;AACL,aAAA,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,6BAA6B,CAAC,CAA8B,EAAA;QAChE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC9C,IAAI,CAAC,gBAAgB,EAAE;YACnB,OAAO;AACV,SAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC;QAAC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAG;AAClF,YAAA,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,EAAE;gBAC/B,OAAO;AACH,oBAAA,GAAG,GAAG;AACN,oBAAA,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,cAAc,EAAG;iBAChD,CAAA;AACJ,aAAA;AACD,YAAA,OAAO,GAAG,CAAC;AACf,SAAC,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;KAClD;AAEO,IAAA,mBAAmB,CAAC,CAAiC,EAAA;AACzD,QAAA,QAAQ,IAAI;AACR,YAAA,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC;AACxB,YAAA,KAAK,CAAC,CAAC,MAAM,KAAK,cAAc,EAAE;gBAC9B,OAAO;AACV,aAAA;AACJ,SAAA;QACD,IAAI,aAAa,GAAwB,EAAE,CAAC;AAC5C,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;AAC9B,YAAA,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;AAC/C,SAAC,CAAC,CAAC;;AAEH,QAAA,MAAM,4BAA4B,GAAG,IAAI,GAAG,EAA2B,CAAC;AACxE,QAAA,aAAa,CAAC,GAAG,CAAC,IAAI,IAAG;AACrB,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAK,CAAC;AAC1B,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;AAC1C,YAAA,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AAC7C,gBAAA,4BAA4B,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,aAAA;AACD,YAAA,4BAA4B,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3E,SAAC,CAAC,CAAA;QACF,4BAA4B,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,QAAQ,KAAI;AACnD,YAAA,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;KACN;IAEO,MAAM,iBAAiB,CAAC,GAAa,EAAA;;AAEzC,QAAA,MAAM,2BAA2B,GAAG,WAAW,CAAC,MAAK;YACjD,IAAI,IAAI,CAAC,yBAAyB,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE;AACrE,gBAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;gBACvC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClD,aAAa,CAAC,2BAA2B,CAAC,CAAC;AAC9C,aAAA;SACJ,EAAE,GAAG,CAAC,CAAC;AACR,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,yBAAyB,EAAE,EAAE;AACrE,YAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACpD,SAAA;aACI,IAAI,IAAI,CAAC,yBAAyB,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE;AAC1E,YAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClD,aAAa,CAAC,2BAA2B,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;YAC9B,OAAO,CAAC,2BAA2B,CAAC;AAChC,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,eAAe,EAAE,CAAC,oBAAoB,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC;AAChH,aAAA,CAAC,CAAA;YACF,OAAO,CAAC,YAAY,CAAC;gBACjB,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC9B,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA,CAAC,CAAA;AACN,SAAC,CAAC,CAAC;KACN;IAEO,yBAAyB,GAAA;QAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAC9H,QAAA,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;KAChE;AAEO,IAAA,eAAe,CAAC,CAAgC,EAAA;AACpD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAM,CAAC,CAAC;AACpF,QAAA,OAAO,cAAc,CAAC,KAAK,IAAI,cAAc,CAAC,eAAe,CAAC;KACjE;IAEO,YAAY,CAAC,CAA6B,EAAE,MAAmB,EAAA;AACnE,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,IAAK,CAAC;QACvB,IAAI,OAAO,GAAY,KAAK,CAAC;QAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAgB,CAAC;;QAEpE,IAAI,KAAK,EAAE,CAAC,KAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YACzC,OAAO,GAAG,IAAI,CAAC;AAClB,SAAA;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAE9F,QAAA,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;AAC9B,YAAA,aAAa,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC;AAC1E,YAAA,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AAC/C,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC,oBAAoB,CAAC;YAClD,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;YAChE,GAAG,OAAO,CAAC,aAAa,EAAE;AAC7B,SAAA,CAAC,CAAA;QACF,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,oBAAoB,EAAE,KAAK,MAAM,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC;AAClB,SAAA;AACD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO;AACH,YAAA,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE;YAC/C,KAAK,EAAE,KAAK,CAAC,KAAK;AAClB,YAAA,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;AACpE,YAAA,aAAa,EAAE,aAAa;YAC5B,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,eAAe,EAAE,KAAK,CAAC,eAAe;AACtC,YAAA,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE;YAClC,YAAY,EAAE,UAAU,CAAC,YAAY;AACrC,YAAA,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ;AACtC,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;YACzB,eAAe,EAAE,MAAM,CAAC,SAAS;AACjC,YAAA,eAAe,EAAE,UAAU,CAAC,EAAE,CAAC,yBAAyB,EAAE;SAC9C,CAAC;KACpB;IAEO,iBAAiB,GAAA;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACjE,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,qBAAqB,EAAE,WAAW,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;KACtH;AAEO,IAAA,kBAAkB,CAAC,SAAkB,EAAA;QACzC,IAAI,CAAC,SAAS,EAAE;AACZ,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AACpE,SAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;KACpE;IAEO,iBAAiB,GAAA;QACrB,UAAU,CAAC,MAAK;YACZ,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;gBACjC,OAAO;AACV,aAAA;AACD,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;gBAC9B,OAAO,CAAC,WAAW,EAAE,CAAC;AACtB,gBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;oBACrE,OAAO,CAAC,iBAAiB,EAAE,CAAC;AAC/B,iBAAA;AACL,aAAC,CAAC,CAAC;SACN,EAAE,CAAC,CAAC,CAAC;KACT;IAEO,oBAAoB,CAAC,UAAkB,EAAE,MAAe,EAAA;AAE5D,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;AAC1D,QAAA,QAAQ,IAAI;;YAER,KAAK,MAAM,CAAC,YAAY,CAAC;;AAEzB,YAAA,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE;AACrB,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;KAC9D;AAED,IAAA,IAAY,QAAQ,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;KAClC;AACJ;;;;"}
1
+ {"version":3,"file":"AgGridModel.js","sources":["../../../../../src/components/Grid/grid/ag-grid/AgGridModel.ts"],"sourcesContent":["import { CellClickedEvent, CellDoubleClickedEvent, ColDef, ColumnMovedEvent, ColumnResizedEvent, GridApi, IRowNode, IsFullWidthRowParams, IsServerSideGroupOpenByDefaultParams, ModuleRegistry, SelectionChangedEvent, SuppressKeyboardEventParams, ValueFormatterParams, ValueGetterParams } from \"@ag-grid-community/core\";\nimport debounce from 'debounce';\nimport { GridModel, IGridColumn } from \"../GridModel\";\nimport { Client, DataProvider, EventEmitter, IAddControlNotificationOptions, IColumn, IColumnInfo, IControlParameters, ICustomColumnComponent, ICustomColumnControl, ICustomColumnFormatting, IDataProvider, IRecord, Operators } from \"@talxis/client-libraries\";\nimport { NestedControl } from \"../../../NestedControlRenderer/NestedControl\";\nimport { Cell } from \"../../cells/cell/Cell\";\nimport { ColumnHeader } from \"../../column-headers/column-header/ColumnHeader\";\nimport { CHECKBOX_COLUMN_KEY } from \"../../constants\";\nimport { Comparator } from \"../ValueComparator\";\nimport { ServerSideDatasource } from \"./ServerSideDatasource\";\nimport { RecordSelectionCheckBox } from \"../../column-headers/record-selection-checkbox/RecordSelectionCheckbox\";\nimport { RowGroupingModule } from \"@ag-grid-enterprise/row-grouping\";\nimport { ServerSideRowModelModule } from \"@ag-grid-enterprise/server-side-row-model\";\nimport { ClipboardModule } from \"@ag-grid-enterprise/clipboard\";\nimport { FullRowLoading } from \"../../loading/full-row/FullRowLoading\";\nimport { FullWidthCellRendererError } from \"../../errors/FullWidthCellRendererError/FullWidthCellRendererError\";\nimport { LicenseManager } from \"@ag-grid-enterprise/core\";\nimport { SelectionCell } from \"../../cells/selection-cell/SelectionCell\";\nModuleRegistry.registerModules([RowGroupingModule, ServerSideRowModelModule, ClipboardModule,]);\n\ninterface IAgGridTestDependencies {\n grid: GridModel;\n getContainer: () => HTMLDivElement;\n}\n\nexport interface IAgGridModelEvents {\n onRefresh: () => void;\n}\n\n\nexport interface ICellValues {\n notifications: IAddControlNotificationOptions[];\n customFormatting: Required<ICustomColumnFormatting>;\n customControl: Required<ICustomColumnControl>;\n customComponent: ICustomColumnComponent;\n loading: boolean;\n value: any;\n aggregatedValue: any;\n error: boolean;\n height: number;\n errorMessage: string;\n parameters: IControlParameters;\n columnAlignment: Required<IColumn['alignment']>;\n editing: boolean;\n editable: boolean;\n disabled: boolean;\n saving: boolean;\n}\n\nexport class AgGridModel extends EventEmitter<IAgGridModelEvents> {\n private _grid: GridModel;\n private _dataSource: ServerSideDatasource;\n private _gridApi: GridApi | undefined;\n private _hasUserResizedColumns: boolean = false;\n private _getContainer: () => HTMLDivElement;\n private _debouncedColumnResized: debounce.DebouncedFunction<(e: ColumnResizedEvent<IRecord>) => void>;\n private _debouncedSetSelectedNodes: debounce.DebouncedFunction<(ids: string[]) => void>;\n private _expandedRowGroupIds: string[] = [];\n private _hasUserExpandedRowGroups: boolean = false;\n private _isLoadingNestedProviders: boolean = false;\n private _idsToAddToExpandGroupState = new Set<string>();\n private _intervals: NodeJS.Timeout[] = [];\n\n\n constructor({ grid, getContainer }: IAgGridTestDependencies) {\n super();\n this._grid = grid;\n this._getContainer = getContainer;\n this._dataSource = new ServerSideDatasource(this);\n this._debouncedColumnResized = debounce((e: ColumnResizedEvent<IRecord>) => this._onColumnResized(e));\n this._debouncedSetSelectedNodes = debounce((ids) => this._setSelectedNodes(ids), 0);\n this._localHarnessDebugSetup();\n const licenseKey = this._grid.getLicenseKey();\n if (licenseKey) {\n LicenseManager.setLicenseKey(licenseKey);\n }\n }\n\n public getColumns(gridColumns: IGridColumn[]): ColDef[] {\n if (this._grid.getDataset().grouping.getGroupBys().length > 0 && !this._grid.isGroupedColumnsPinnedEnabled()) {\n this._sortColumns(gridColumns);\n }\n const agColumns: ColDef[] = [];\n for (const column of gridColumns) {\n if (column.isHidden) {\n continue;\n }\n const agColumn: ColDef = {\n colId: column.name,\n field: column.name,\n headerName: column.displayName,\n width: column.visualSizeFactor,\n sortable: !column.disableSorting,\n lockPinned: true,\n resizable: column.isResizable,\n autoHeaderHeight: true,\n autoHeight: this._isColumnAutoHeightEnabled(column),\n suppressMovable: column.isDraggable === false ? true : false,\n pinned: this._isColumnPinned(column),\n headerComponentParams: {\n baseColumn: column\n },\n rowGroup: column.grouping?.isGrouped,\n cellRendererParams: (p: any) => {\n return {\n ...this._getCellParameters(p.data, column),\n isCellEditor: false\n }\n },\n cellEditorParams: (p: any) => {\n return {\n ...this._getCellParameters(p.data, column),\n isCellEditor: true\n }\n },\n editable: (p) => this._isCellEditorEnabled(column.name, p.data),\n equals: (valueA: ICellValues, valueB: ICellValues) => new Comparator().isEqual(valueA, valueB),\n headerComponent: ColumnHeader,\n cellRenderer: Cell,\n cellEditor: Cell,\n valueGetter: (p: ValueGetterParams<IRecord>) => this._valueGetter(p, column),\n valueFormatter: (p: ValueFormatterParams<IRecord>) => this._valueFormatter(p),\n suppressKeyboardEvent: (p) => this._suppressKeyboardEvent(p, column),\n onCellDoubleClicked: (e: CellDoubleClickedEvent<IRecord>) => this._onCellDoubleClick(e),\n }\n agColumns.push(agColumn);\n }\n if (this._grid.getSelectionType() !== 'none' || this._grid.isEditingEnabled()) {\n agColumns.unshift(this._createCheckBoxColumn())\n }\n return agColumns;\n }\n\n public executeWithGridApi(callback: (gridApi: GridApi) => void) {\n if (!this._gridApi || this._gridApi.isDestroyed()) {\n return;\n }\n return callback(this._gridApi);\n }\n\n public init(gridApi: GridApi) {\n this._gridApi = gridApi;\n this._registerEventListeners();\n this._setGridOptions();\n this._setCurrentColumns();\n if (!this._grid.getDataset().loading) {\n //we need to call this here since the events already fired before the grid api was ready\n this._onNewDataLoaded();\n this._setTotalRow();\n }\n }\n\n public getGrid(): GridModel {\n return this._grid;\n }\n\n public getSelectionType(): 'single' | 'multiple' | undefined {\n switch (this._grid.getSelectionType()) {\n case 'none': {\n return undefined;\n }\n case 'single': {\n return 'single';\n }\n case 'multiple': {\n return 'multiple';\n }\n }\n }\n\n public toggleGroup(node: IRowNode<IRecord>) {\n node.setExpanded(!node.expanded);\n //clears the expanded rows in memory so it does not interfere with the next group expansion\n this._expandedRowGroupIds = [];\n this._hasUserExpandedRowGroups = true;\n }\n\n public getRecordSelectionState(node: IRowNode<IRecord>): 'checked' | 'unchecked' | 'indeterminate' {\n const record = node.data!;\n const dataProvider = record.getDataProvider();\n const childDataProvider = dataProvider.getGroupedRecordDataProvider(record.getRecordId());\n let result: 'checked' | 'unchecked' | 'indeterminate';\n if (childDataProvider) {\n if (node.isSelected()) {\n result = 'checked';\n }\n else {\n if (childDataProvider.getSelectedRecordIds().length === 0) {\n result = 'unchecked';\n }\n else {\n result = 'indeterminate';\n }\n }\n }\n else {\n result = node.isSelected() ? 'checked' : 'unchecked';\n }\n if (record.getSummarizationType() === 'grouping') {\n if (result === 'unchecked') {\n this._idsToAddToExpandGroupState.delete(record.getRecordId());\n }\n else {\n this._idsToAddToExpandGroupState.add(record.getRecordId());\n }\n }\n return result;\n }\n\n public onNotifyOutputChanged(record: IRecord, columnName: string, value: any, parameters: any) {\n record.setValue(columnName, value);\n if(this.getGrid().isAutoSaveEnabled()) {\n record.save();\n }\n const { ShouldUnmountWhenOutputChanges } = parameters;\n if (ShouldUnmountWhenOutputChanges?.raw) {\n this.executeWithGridApi(gridApi => gridApi.stopEditing());\n }\n }\n\n private _localHarnessDebugSetup() {\n if (this._grid.getParameters().IsLocalHarnessDebugMode?.raw === 'true') {\n window.addEventListener('visibilitychange', () => {\n this._saveState();\n })\n }\n }\n\n private _createCheckBoxColumn(): ColDef {\n return {\n colId: DataProvider.CONST.CHECKBOX_COLUMN_KEY,\n field: DataProvider.CONST.CHECKBOX_COLUMN_KEY,\n headerName: '',\n width: 40,\n lockPinned: true,\n resizable: false,\n pinned: 'left',\n headerComponent: RecordSelectionCheckBox,\n cellRenderer: SelectionCell,\n suppressSizeToFit: true,\n suppressMovable: true,\n valueGetter: () => null,\n valueFormatter: () => '',\n cellRendererParams: (p: any) => {\n return {\n record: p.data\n }\n }\n }\n }\n\n private _sortColumns(columns: IGridColumn[]): IGridColumn[] {\n return columns.sort((a, b) => {\n // If both columns have the same grouping status, maintain original order (return 0)\n if ((a.grouping?.isGrouped || false) === (b.grouping?.isGrouped || false)) {\n return 0;\n }\n // If a is grouped, it should come first\n if (a.grouping?.isGrouped) {\n return -1;\n }\n // If b is grouped, it should come first\n if (b.grouping?.isGrouped) {\n return 1;\n }\n // Default case, should never reach here given the first condition\n return 0;\n });\n }\n\n private _onDestroyed() {\n this._intervals.forEach(interval => clearInterval(interval));\n this._saveState();\n }\n\n private _setCurrentColumns() {\n const gridColumns = this._grid.getGridColumns();\n this.executeWithGridApi(gridApi => gridApi.setGridOption('columnDefs', this.getColumns(gridColumns)));\n this._autoSizeColumns();\n }\n\n private _isColumnAutoHeightEnabled(column: IGridColumn): boolean {\n return !!column.autoHeight\n }\n\n private _onCellDoubleClick(e: CellDoubleClickedEvent<IRecord>) {\n const column = this._dataset.getDataProvider().getColumnsMap()[e.colDef.colId!]!\n switch (true) {\n case !this._grid.isNavigationEnabled():\n //do not navigate on editable columns\n case this._grid.isColumnEditable(column.name, e.data):\n //do not navigate on aggregated/grouped rows\n case e.data?.getSummarizationType() !== 'none':\n //do not navigate on checkbox column\n case column.name === DataProvider.CONST.CHECKBOX_COLUMN_KEY: {\n break;\n }\n default: {\n const record = e.data!;\n record.getDataProvider().openDatasetItem(record.getNamedReference());\n }\n }\n }\n\n private _saveState() {\n this.executeWithGridApi(gridApi => {\n const { rowSelection, columnOrder, ...gridState } = gridApi.getState();\n const selectedGroupIds = this._grid.getDataset().getSelectedRecordIds({ includeGroupRecordIds: true }).filter(id => id.startsWith(DataProvider.CONST.GROUP_PREFIX));\n const expandedRowGroupIds = new Set<string>([...selectedGroupIds, ...this._idsToAddToExpandGroupState.values()]);\n if (expandedRowGroupIds.size > 0) {\n gridState.rowGroupExpansion = {\n expandedRowGroupIds: [...expandedRowGroupIds.values()]\n }\n }\n const state = this.getGrid().getState() || {};\n state.AgGridState = gridState;\n this.getGrid().getPcfContext().mode.setControlState(state);\n });\n }\n\n private _isColumnPinned(column: IGridColumn) {\n switch (true) {\n case column.grouping?.isGrouped && this._grid.isGroupedColumnsPinnedEnabled(): {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n\n private _getCellParameters(record: IRecord, column: IGridColumn) {\n return {\n baseColumn: column,\n record: record\n }\n }\n\n private _scrollToTop() {\n this.executeWithGridApi(gridApi => gridApi.ensureIndexVisible(0, 'top'));\n }\n\n private _canExpandRowGroupsByDefault(): boolean {\n if (this._hasUserExpandedRowGroups) {\n return false;\n }\n else {\n return true;\n }\n }\n\n private _suppressKeyboardEvent(params: SuppressKeyboardEventParams<IRecord, any>, column: IGridColumn): boolean {\n if (column.oneClickEdit) {\n return true;\n }\n return false;\n }\n\n private _registerEventListeners() {\n this._dataset.addEventListener('onLoading', (isLoading: boolean) => this._setLoadingOverlay(this._dataset.loading));\n this._dataset.addEventListener('onRecordsSelected', (ids: string[]) => this._debouncedSetSelectedNodes(ids));\n this._dataset.addEventListener('onNewDataLoaded', () => this._onNewDataLoaded());\n this._dataset.addEventListener('onRenderRequested', () => this.executeWithGridApi(gridApi => gridApi.refreshCells()));\n this._dataset.addEventListener('onFirstDataLoaded', () => this._setTotalRow());\n this.executeWithGridApi(gridApi => {\n gridApi.addEventListener('gridSizeChanged', () => this._autoSizeColumns());\n gridApi.addEventListener('firstDataRendered', () => this._autoSizeColumns());\n gridApi.addEventListener('selectionChanged', (e: SelectionChangedEvent) => this._onSelectionChanged(e));\n gridApi.addEventListener('columnResized', (e: any) => this._debouncedColumnResized(e));\n gridApi.addEventListener('modelUpdated', () => {\n if (this._grid.getDataset().loading) {\n this._setLoadingOverlay(true);\n }\n this._setGridHeight();\n });\n gridApi.addEventListener('columnMoved', (e: ColumnMovedEvent<IRecord>) => this._onColumnMoved(e));\n gridApi.addEventListener('firstDataRendered', () => this._handleSelectionFromState());\n gridApi.addEventListener('gridPreDestroyed', () => this._onDestroyed());\n });\n }\n\n private _setTotalRow() {\n const totalRowDataProvider = this._grid.getTotalRow().getDataProvider();\n totalRowDataProvider.addEventListener('onLoading', () => this._setPinnedRowData());\n totalRowDataProvider.addEventListener('onError', () => this._setPinnedRowData());\n this._setPinnedRowData();\n }\n\n private _setGridOptions() {\n this.executeWithGridApi(gridApi => {\n gridApi.setGridOption('serverSideDatasource', this._dataSource);\n gridApi.setGridOption('isServerSideGroupOpenByDefault', (params) => this._syncExpandedRowGroups(params));\n gridApi.setGridOption('loadingCellRenderer', FullRowLoading)\n gridApi.setGridOption('suppressDragLeaveHidesColumns', true);\n gridApi.setGridOption('isFullWidthRow', (params) => this._isFullWidthRow(params));\n gridApi.setGridOption('fullWidthCellRenderer', FullWidthCellRendererError);\n gridApi.setGridOption('fullWidthCellRendererParams', (params: IsFullWidthRowParams<IRecord>) => this._getFullWidthCellRendererParams(params))\n gridApi.setGridOption('suppressCopyRowsToClipboard', true);\n gridApi.setGridOption('animateRows', false);\n gridApi.setGridOption('groupDisplayType', 'custom');\n });\n }\n\n private _isFullWidthRow(params: IsFullWidthRowParams<IRecord>): boolean {\n const provider = params.rowNode.data?.getDataProvider();\n switch (true) {\n case provider?.getSummarizationType() === 'aggregation' && provider.isError(): {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n\n //this should only be triggered when we load the grid with some item pre-selected from state\n //e.g. navigating to a record and coming back to the grid\n private _handleSelectionFromState() {\n const selectedRecordIds = this._grid.getDataset().getSelectedRecordIds();\n this._grid.getDataset().clearSelectedRecordIds();\n let isScrolledToMiddle = false;\n const localIntervals: NodeJS.Timeout[] = [];\n const resolvedProviderSet = new Set<IDataProvider>();\n for (const id of selectedRecordIds) {\n const interval = setInterval(() => {\n const record = this._grid.getDataset().getDataProvider().getRecordsMap()[id];\n if (record) {\n clearInterval(interval);\n const provider = record.getDataProvider();\n if (!resolvedProviderSet.has(provider)) {\n const recordIdsToSelect = selectedRecordIds.filter(id => provider.getRecordsMap()[id])\n provider.setSelectedRecordIds(recordIdsToSelect);\n resolvedProviderSet.add(provider);\n }\n if (!isScrolledToMiddle) {\n const middleSelectedRecordId = selectedRecordIds[Math.floor(selectedRecordIds.length / 2)]\n this.executeWithGridApi(gridApi => {\n const node = gridApi.getRowNode(middleSelectedRecordId);\n if (node) {\n isScrolledToMiddle = true;\n gridApi.ensureNodeVisible(node!, 'middle');\n }\n });\n }\n }\n }, 100);\n localIntervals.push(interval);\n this._intervals.push(interval);\n }\n //abandon the selection after 5 seconds\n //this could be done better by detecting if we are done loading all providers\n setTimeout(() => {\n localIntervals.forEach(interval => clearInterval(interval));\n }, 5000);\n }\n\n private _getFullWidthCellRendererParams(params: IsFullWidthRowParams<IRecord>) {\n //@ts-ignore - typings seem to be incorrect\n const provider = params.node.data?.getDataProvider()\n return {\n errorMessage: provider?.getErrorMessage()\n }\n }\n\n private _syncExpandedRowGroups(params: IsServerSideGroupOpenByDefaultParams): boolean {\n if (this._expandedRowGroupIds.includes(params.rowNode.id!)) {\n return true\n }\n else if (this._canExpandRowGroupsByDefault()) {\n return params.rowNode.level <= this._grid.getDefaultExpandedGroupLevel();\n }\n else return false;\n }\n\n private _onColumnMoved(e: ColumnMovedEvent<IRecord>) {\n const movedColumn = this._grid.getDataset().getDataProvider().getColumnsMap()[e.column?.getColId()!];\n if (!e.finished || e.source !== 'uiColumnMoved') {\n return;\n }\n let order = 0;\n const newColumnsMap = new Map<string, IColumn>(this._grid.getDataset().columns.map(col => [col.name, col]));\n for (const colId of e.api.getState().columnOrder?.orderedColIds!) {\n if (newColumnsMap.has(colId)) {\n newColumnsMap.set(colId, { ...newColumnsMap.get(colId)!, order: order++ });\n }\n }\n this._dataset.setColumns([...newColumnsMap.values()]);\n if (movedColumn?.grouping?.isGrouped) {\n this._dataset.refresh();\n }\n }\n\n private _onNewDataLoaded() {\n this._refreshServerSideModel();\n this._setCurrentColumns();\n this._setNoRowsOverlay();\n this._scrollToTop();\n }\n\n private _refreshServerSideModel() {\n this.executeWithGridApi(gridApi => {\n this._expandedRowGroupIds = gridApi.getState()?.rowGroupExpansion?.expandedRowGroupIds ?? [];\n gridApi.refreshServerSide({\n purge: true\n })\n });\n }\n\n private _calculateGridHeight(): string {\n const defaultRowHeight = this._grid.getDefaultRowHeight();\n let offset = 35;\n if (this._dataset.grouping.getGroupBys().length > 0) {\n offset += 30;\n }\n if (this._grid.getParameters().Height?.raw) {\n return this._grid.getParameters().Height!.raw!;\n }\n else {\n let totalRowHeight = 0;\n let numberOfRecords = 0;\n this.executeWithGridApi(gridApi => {\n const renderedNodes = gridApi.getRenderedNodes();\n totalRowHeight = renderedNodes.reduce((acc, node) => acc + (node.rowHeight ?? defaultRowHeight), 0);\n numberOfRecords = renderedNodes.length;\n });\n if (numberOfRecords <= 15) {\n const headerHeight = this._getContainer().querySelector('.ag-header-row')?.clientHeight ?? 0;\n return `${totalRowHeight + headerHeight + offset}px`;\n }\n else {\n return `${defaultRowHeight * 17 + offset}px`;\n }\n }\n }\n private _setGridHeight() {\n setTimeout(() => {\n const container = this._getContainer();\n if (container) {\n container.style.height = this._calculateGridHeight();\n }\n }, 100);\n }\n\n private _onColumnResized(e: ColumnResizedEvent<IRecord>) {\n if (e.source === 'uiColumnResized') {\n this._hasUserResizedColumns = true;\n this._updateColumnVisualSizeFactor(e);\n }\n }\n\n private _autoSizeColumns() {\n if (this._hasUserResizedColumns) {\n return;\n }\n this.executeWithGridApi(gridApi => {\n gridApi.sizeColumnsToFit({\n columnLimits: this._grid.getDataset().columns.map(col => {\n return {\n key: col.name,\n minWidth: col.visualSizeFactor\n }\n })\n });\n });\n }\n\n private _updateColumnVisualSizeFactor(e: ColumnResizedEvent<IRecord>) {\n const resizedColumnKey = e.column?.getColId();\n if (!resizedColumnKey) {\n return;\n }\n const columns = this._grid.getDataset().columns; const newColumns = columns.map(col => {\n if (col.name === resizedColumnKey) {\n return {\n ...col,\n visualSizeFactor: e.column?.getActualWidth()!\n }\n }\n return col;\n })\n this._grid.getDataset().setColumns(newColumns);\n }\n\n private _onSelectionChanged(e: SelectionChangedEvent<IRecord>) {\n switch (true) {\n case e.source === 'api':\n case e.source === 'apiSelectAll': {\n return;\n }\n }\n let selectedNodes: IRowNode<IRecord>[] = [];\n this.executeWithGridApi(gridApi => {\n selectedNodes = gridApi.getSelectedNodes();\n });\n //if we click a grouped record, do not propagate the selection to children\n const providerSelectedRecordIdsMap = new Map<IDataProvider, string[]>();\n selectedNodes.map(node => {\n const record = node.data!;\n const provider = record.getDataProvider();\n if (!providerSelectedRecordIdsMap.has(provider)) {\n providerSelectedRecordIdsMap.set(provider, []);\n }\n providerSelectedRecordIdsMap.get(provider)!.push(record.getRecordId());\n })\n providerSelectedRecordIdsMap.forEach((ids, provider) => {\n provider.setSelectedRecordIds(ids);\n });\n }\n\n private async _setSelectedNodes(ids: string[]) {\n //interval to prevent infinite loading\n const checkLoadingNestedProviders = setInterval(() => {\n if (this._isLoadingNestedProviders && !this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = false;\n this._dataset.getDataProvider().setLoading(false);\n clearInterval(checkLoadingNestedProviders);\n }\n }, 500);\n this._intervals.push(checkLoadingNestedProviders);\n if (!this._isLoadingNestedProviders && this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = true;\n this._dataset.getDataProvider().setLoading(true);\n }\n else if (this._isLoadingNestedProviders && !this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = false;\n this._dataset.getDataProvider().setLoading(false);\n clearInterval(checkLoadingNestedProviders);\n }\n this.executeWithGridApi(gridApi => {\n gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: this._grid.getDataset().getDataProvider().getSelectedRecordIds({ includeGroupRecordIds: true })\n })\n gridApi.refreshCells({\n columns: [CHECKBOX_COLUMN_KEY],\n force: true\n })\n });\n }\n\n private _areChildProvidersLoading(): boolean {\n const childProviders = this._dataset.getDataProvider().getGroupedRecordDataProviders(true).filter(x => x.getParentRecordId());\n return childProviders.some(provider => provider.isLoading());\n }\n\n private _valueFormatter(p: ValueFormatterParams<IRecord>): string {\n const formattedValue = this._grid.getRecordFormattedValue(p.data!, p.colDef.colId!);\n return formattedValue.value ?? formattedValue.aggregatedValue;\n }\n\n private _valueGetter(p: ValueGetterParams<IRecord>, column: IGridColumn) {\n const record = p.data!;\n let editing: boolean = false;\n const columnInfo = record.getColumnInfo(column.name) as IColumnInfo;\n //i hate this, there is no other way to get the information if we are in edit mode or not\n if (Error().stack!.includes('startEditing')) {\n editing = true;\n }\n const customControl = this._grid.getControl(column, record, editing || !!column.oneClickEdit);\n\n const control = new NestedControl({\n onGetBindings: () => this._grid.getBindings(record, column, customControl),\n parentPcfContext: this._grid.getPcfContext(),\n });\n const parameters = columnInfo.ui.getControlParameters({\n ...this._grid.getFieldBindingParameters(record, column, editing),\n ...control.getParameters(),\n });\n if (column.oneClickEdit && record.getSummarizationType() === 'none') {\n editing = true;\n }\n const value = this._grid.getRecordValue(record, column);\n return {\n notifications: columnInfo.ui.getNotifications(),\n value: value.value,\n customFormatting: this._grid.getFieldFormatting(record, column.name),\n customControl: customControl,\n error: columnInfo.error,\n aggregatedValue: value.aggregatedValue,\n loading: columnInfo.ui.isLoading(),\n errorMessage: columnInfo.errorMessage,\n editable: column.isEditable && columnInfo.security.editable,\n editing: editing,\n parameters: parameters,\n saving: record.isSaving(),\n columnAlignment: column.alignment,\n customComponent: columnInfo.ui.getCustomControlComponent()\n } as ICellValues;\n }\n\n private _setPinnedRowData() {\n const totalRecord = this._grid.getTotalRow().getTotalRowRecord();\n this.executeWithGridApi(gridApi => gridApi.setGridOption('pinnedBottomRowData', totalRecord ? [totalRecord] : []));\n }\n\n private _setLoadingOverlay(isLoading: boolean) {\n if (!isLoading) {\n return this.executeWithGridApi(gridApi => gridApi.hideOverlay());\n }\n this.executeWithGridApi(gridApi => gridApi.showLoadingOverlay());\n }\n\n private _setNoRowsOverlay() {\n setTimeout(() => {\n if (this._grid.getDataset().loading) {\n return;\n }\n this.executeWithGridApi(gridApi => {\n gridApi.hideOverlay();\n if (this._grid.getDataset().getDataProvider().getRecords().length === 0) {\n gridApi.showNoRowsOverlay();\n }\n });\n }, 0);\n }\n\n private _isCellEditorEnabled(columnName: string, record: IRecord): boolean {\n\n const column = this._grid.getGridColumnByName(columnName); // check column eligibility for cell editor\n switch (true) {\n //never allow cell editor for oneClickEdit - everything is handled by cell renderer in this case\n case column.oneClickEdit:\n //never allow cell editor for non-editable columns\n case !column.isEditable: {\n return false;\n }\n }\n return record.getColumnInfo(column.name).security.editable;\n }\n\n private get _dataset() {\n return this._grid.getDataset();\n }\n}"],"names":[],"mappings":"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"}
@@ -94,6 +94,9 @@ const Lookup = (props) => {
94
94
  const isComponentActive = () => {
95
95
  return mouseOver || isFocused;
96
96
  };
97
+ const getDisplayName = () => {
98
+ return props.parameters.value.attributes.DisplayName ?? labels.record();
99
+ };
97
100
  const getSecondaryName = async (result) => {
98
101
  const metadata = await entities.find(x => x.entityName === result.entityType)?.metadata;
99
102
  const attribute = result.layout?.Rows?.[0]?.Cells?.[1]?.Name;
@@ -177,7 +180,7 @@ const Lookup = (props) => {
177
180
  if (context.mode.isControlDisabled) {
178
181
  return;
179
182
  }
180
- setPlaceholder(`${labels.placeholder()} ${props.parameters.value.attributes.DisplayName}`);
183
+ setPlaceholder(`${labels.placeholder()} ${getDisplayName()}`);
181
184
  },
182
185
  onMouseLeave: () => {
183
186
  setPlaceholder("---");
@@ -1 +1 @@
1
- {"version":3,"file":"Lookup.js","sources":["../../../src/components/Lookup/Lookup.tsx"],"sourcesContent":["\nimport { ILayout, ILookup, IMetadata } from \"./interfaces\";\nimport { useLookup } from \"./hooks/useLookup\";\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { ThemeProvider } from \"@fluentui/react\";\nimport { IItemProps, TagPicker } from \"@talxis/react-components\";\nimport { TargetSelector } from \"./components/TargetSelector\";\nimport { useMouseOver } from \"../../hooks/useMouseOver\";\nimport { getLookupStyles, getSuggestionsCalloutStyles } from \"./styles\";\nimport { IBasePicker } from \"@fluentui/react/lib/components/pickers/BasePicker.types\";\nimport { ITag } from \"@fluentui/react/lib/components/pickers/TagPicker/TagPicker.types\";\nimport { RecordCreator } from \"./components/RecordCreator\";\nimport { useFocusIn } from \"../../hooks/useFocusIn\";\nimport { useControlSizing } from \"../../hooks/useControlSizing\";\nimport dayjs from \"dayjs\";\n\nexport const Lookup = (props: ILookup) => {\n const context = props.context;\n const ref = useRef<HTMLDivElement>(null);\n const componentRef = useRef<IBasePicker<ITag>>(null);\n const itemLimit = props.parameters.MultipleEnabled?.raw === true ? Infinity : 1\n const { height } = useControlSizing(props.context.mode);\n const [value, entities, labels, records, selectEntity, getSearchResults, theme] = useLookup(props);\n const styles = getLookupStyles(theme, itemLimit === 1, height);\n const suggestionsCalloutTheme = props.context.fluentDesignLanguage?.applicationTheme ?? theme;\n const suggestionsCalloutStyles = useMemo(() => getSuggestionsCalloutStyles(suggestionsCalloutTheme), [suggestionsCalloutTheme])\n const mouseOver = useMouseOver(ref);\n const isFocused = useFocusIn(ref, 100);\n const firstRenderRef = useRef(true);\n const shouldFocusRef = useRef(false);\n const [placeholder, setPlaceholder] = useState('---');\n const onOverrideComponentProps = props.onOverrideComponentProps ?? ((props) => props);\n\n\n useEffect(() => {\n if (firstRenderRef.current) {\n firstRenderRef.current = false;\n return;\n }\n //@ts-ignore\n if (componentRef.current.state.suggestionsVisible) {\n //if the suggestions callout is open and the selected target changes, refresh the results\n forceSearch();\n }\n }, [entities])\n\n useEffect(() => {\n const onKeyPress = (ev: KeyboardEvent) => {\n if (context.mode.isControlDisabled) {\n return;\n }\n if (ev.key === 'Backspace') {\n const picker = ref.current?.querySelector('[class*=\"TALXIS__tag-picker__root\"]');\n if ((document.activeElement === picker) && value.length === 1) {\n records.select(undefined);\n setTimeout(() => {\n componentRef.current?.focusInput()\n }, 200)\n }\n }\n }\n document.addEventListener('keydown', onKeyPress)\n return () => {\n document.removeEventListener('keydown', onKeyPress);\n }\n }, [value]);\n\n useEffect(() => {\n if (props.parameters.AutoFocus?.raw === true) {\n focus();\n }\n }, []);\n\n const focus = () => {\n if (componentRef.current?.items?.length === itemLimit) {\n const el = ref.current?.querySelector(':scope>div') as HTMLDivElement;\n el?.click();\n el?.focus();\n return;\n }\n componentRef.current?.focusInput();\n }\n\n const forceSearch = async () => {\n //@ts-ignore - We need to use internal methods to show and fill the suggestions on entity change\n componentRef.current.suggestionStore.updateSuggestions([]);\n //@ts-ignore - ^^same as above\n componentRef.current.setState({\n suggestionsVisible: true,\n suggestionsLoading: true,\n });\n //@ts-ignore - ^^same as above\n const results = await onResolveSuggestions(componentRef.current.input.current.value)\n //@ts-ignore - ^^same as above\n componentRef.current.updateSuggestionsList(results);\n //@ts-ignore - ^^same above\n componentRef.current.setState({\n isMostRecentlyUsedVisible: false,\n suggestionsVisible: true,\n moreSuggestionsAvailable: false,\n });\n }\n\n const isComponentActive = () => {\n return mouseOver || isFocused;\n }\n\n const getSecondaryName = async (result: ComponentFramework.LookupValue & {\n entityData: {\n [key: string]: any;\n };\n layout: ILayout;\n }): Promise<string | undefined> => {\n const metadata = await entities.find(x => x.entityName === result.entityType)?.metadata;\n const attribute: string | undefined = result.layout?.Rows?.[0]?.Cells?.[1]?.Name;\n //polymorphic, selected all\n if (!entities.find(x => x.selected)) {\n return metadata?.DisplayName;\n }\n else if (metadata?.LogicalName && attribute) {\n let targetEntityName = metadata.LogicalName;\n let targetAttribute = attribute;\n //checking for attributes pointing to related entity attribute, given by convention of using dot as separator\n if (attribute.includes(\".\")) {\n targetEntityName = result.layout.Rows.find(x => x.Cells.find(y => y.Name === attribute))?.Cells?.find(y => y.Name === attribute)?.RelatedEntityName || metadata.LogicalName;\n targetAttribute = attribute.split(\".\")[1]\n }\n const entityMetadata: ComponentFramework.PropertyHelper.EntityMetadata = await window.Xrm.Utility.getEntityMetadata(targetEntityName, [targetAttribute]);\n const attributetype: string = entityMetadata.Attributes.get(targetAttribute).AttributeTypeName;\n let primaryName: string;\n switch (attributetype) {\n case \"lookup\":\n case \"partylist\":\n case \"owner\":\n case \"customer\":\n primaryName = result.entityData[`_${targetAttribute}_value@OData.Community.Display.V1.FormattedValue`];\n break;\n case \"optionset\":\n case \"picklist\":\n case \"state\":\n case \"status\":\n case \"boolean\":\n case \"integer\":\n case \"bigint\":\n case \"decimal\":\n case \"money\":\n //TODO: Introduce user formatting, this approach takes format from application user setting\n primaryName = result.entityData[`${targetAttribute}@OData.Community.Display.V1.FormattedValue`];\n break;\n case \"datetime\":\n primaryName = props.context.formatting.formatTime(dayjs(result.entityData[attribute]).toDate(), 1);\n break;\n default:\n primaryName = result.entityData[attribute];\n };\n return primaryName;\n }\n }\n\n const onResolveSuggestions = async (filter: string, selectedItems?: IItemProps[] | undefined): Promise<IItemProps[]> => {\n //TODO: onResolveSuggestions gets called when the record gets selected resulting in unnecessary call\n const results = await getSearchResults(filter);\n const suggestions: IItemProps[] = [];\n for (const result of results) {\n if (selectedItems?.find(x => x.key === result.id)) {\n continue;\n }\n suggestions.push({\n key: result.id,\n text: result.name,\n secondaryText: await getSecondaryName(result),\n 'data-entity': result.entityType\n })\n }\n return suggestions;\n }\n\n const componentProps = onOverrideComponentProps({\n ref: componentRef,\n readOnly: context.mode.isControlDisabled,\n resolveDelay: 200,\n stackItems: itemLimit === 1,\n errorMessage: props.parameters.value.errorMessage,\n hideErrorMessage: !props.parameters.ShowErrorMessage?.raw,\n pickerCalloutProps: {\n layerProps: {\n eventBubblingEnabled: true\n },\n className: suggestionsCalloutStyles.suggestionsCallout,\n theme: suggestionsCalloutTheme,\n },\n inputProps: {\n placeholder: placeholder,\n onMouseEnter: () => {\n if (context.mode.isControlDisabled) {\n return;\n }\n setPlaceholder(`${labels.placeholder()} ${props.parameters.value.attributes.DisplayName}`);\n },\n onMouseLeave: () => {\n setPlaceholder(\"---\");\n }\n\n },\n pickerSuggestionsProps: {\n loadingText: labels.searching(),\n theme: suggestionsCalloutTheme,\n noResultsFoundText: labels.noRecordsFound(),\n className: suggestionsCalloutStyles.suggestionsContainer,\n // @ts-ignore\n suggestionsHeaderText: (\n <>\n {props.parameters.IsInlineNewEnabled?.raw !== false && (\n <RecordCreator labels={labels} entities={entities} onCreateRecord={records.create} />\n )}\n {props.parameters.value.attributes.Targets.length > 1 && (\n <TargetSelector\n labels={labels}\n entities={entities}\n onEntitySelected={(entityName) => {\n selectEntity(entityName);\n }}\n />\n )}\n </>\n )\n },\n transparent: itemLimit === 1,\n onChange: (items) => {\n records.select(\n items?.map((item) => {\n return {\n entityType: item['data-entity'],\n id: item.key,\n name: item.text\n };\n })\n );\n },\n searchBtnProps: {\n key: 'search',\n iconProps: {\n iconName: 'Search'\n },\n showOnlyOnHover: true\n },\n selectedItems: value.map((lookup) => {\n return {\n key: lookup.id,\n text: lookup.name || labels.noName(),\n 'data-entity': lookup.entityType,\n 'data-navigation-enabled': props.parameters.EnableNavigation?.raw !== false,\n onClick: () => {\n if (props.parameters.EnableNavigation?.raw === false) {\n return;\n }\n context.navigation.openForm({\n entityName: lookup.entityType,\n entityId: lookup.id\n });\n },\n deleteButtonProps:\n isComponentActive() || itemLimit > 1\n ? {\n key: 'delete',\n iconProps: {\n iconName: 'Cancel',\n },\n onClick: () => {\n shouldFocusRef.current = false;\n records.deselect(lookup);\n setTimeout(() => {\n focus();\n }, 200);\n }\n }\n : undefined\n };\n }),\n itemLimit: itemLimit,\n onEmptyResolveSuggestions: !context.mode.isControlDisabled ? (selectedItems) => onResolveSuggestions(\"\", selectedItems as IItemProps[]) as any : undefined,\n onResolveSuggestions: onResolveSuggestions,\n });\n\n return (\n <ThemeProvider applyTo=\"none\" theme={theme} className={`talxis__lookupControl ${styles.root}`} ref={ref}>\n <TagPicker {...componentProps} />\n </ThemeProvider>\n );\n};"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Lookup.js","sources":["../../../src/components/Lookup/Lookup.tsx"],"sourcesContent":["\nimport { ILayout, ILookup, IMetadata } from \"./interfaces\";\nimport { useLookup } from \"./hooks/useLookup\";\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { ThemeProvider } from \"@fluentui/react\";\nimport { IItemProps, TagPicker } from \"@talxis/react-components\";\nimport { TargetSelector } from \"./components/TargetSelector\";\nimport { useMouseOver } from \"../../hooks/useMouseOver\";\nimport { getLookupStyles, getSuggestionsCalloutStyles } from \"./styles\";\nimport { IBasePicker } from \"@fluentui/react/lib/components/pickers/BasePicker.types\";\nimport { ITag } from \"@fluentui/react/lib/components/pickers/TagPicker/TagPicker.types\";\nimport { RecordCreator } from \"./components/RecordCreator\";\nimport { useFocusIn } from \"../../hooks/useFocusIn\";\nimport { useControlSizing } from \"../../hooks/useControlSizing\";\nimport dayjs from \"dayjs\";\n\nexport const Lookup = (props: ILookup) => {\n const context = props.context;\n const ref = useRef<HTMLDivElement>(null);\n const componentRef = useRef<IBasePicker<ITag>>(null);\n const itemLimit = props.parameters.MultipleEnabled?.raw === true ? Infinity : 1\n const { height } = useControlSizing(props.context.mode);\n const [value, entities, labels, records, selectEntity, getSearchResults, theme] = useLookup(props);\n const styles = getLookupStyles(theme, itemLimit === 1, height);\n const suggestionsCalloutTheme = props.context.fluentDesignLanguage?.applicationTheme ?? theme;\n const suggestionsCalloutStyles = useMemo(() => getSuggestionsCalloutStyles(suggestionsCalloutTheme), [suggestionsCalloutTheme])\n const mouseOver = useMouseOver(ref);\n const isFocused = useFocusIn(ref, 100);\n const firstRenderRef = useRef(true);\n const shouldFocusRef = useRef(false);\n const [placeholder, setPlaceholder] = useState('---');\n const onOverrideComponentProps = props.onOverrideComponentProps ?? ((props) => props);\n\n\n useEffect(() => {\n if (firstRenderRef.current) {\n firstRenderRef.current = false;\n return;\n }\n //@ts-ignore\n if (componentRef.current.state.suggestionsVisible) {\n //if the suggestions callout is open and the selected target changes, refresh the results\n forceSearch();\n }\n }, [entities])\n\n useEffect(() => {\n const onKeyPress = (ev: KeyboardEvent) => {\n if (context.mode.isControlDisabled) {\n return;\n }\n if (ev.key === 'Backspace') {\n const picker = ref.current?.querySelector('[class*=\"TALXIS__tag-picker__root\"]');\n if ((document.activeElement === picker) && value.length === 1) {\n records.select(undefined);\n setTimeout(() => {\n componentRef.current?.focusInput()\n }, 200)\n }\n }\n }\n document.addEventListener('keydown', onKeyPress)\n return () => {\n document.removeEventListener('keydown', onKeyPress);\n }\n }, [value]);\n\n useEffect(() => {\n if (props.parameters.AutoFocus?.raw === true) {\n focus();\n }\n }, []);\n\n const focus = () => {\n if (componentRef.current?.items?.length === itemLimit) {\n const el = ref.current?.querySelector(':scope>div') as HTMLDivElement;\n el?.click();\n el?.focus();\n return;\n }\n componentRef.current?.focusInput();\n }\n\n const forceSearch = async () => {\n //@ts-ignore - We need to use internal methods to show and fill the suggestions on entity change\n componentRef.current.suggestionStore.updateSuggestions([]);\n //@ts-ignore - ^^same as above\n componentRef.current.setState({\n suggestionsVisible: true,\n suggestionsLoading: true,\n });\n //@ts-ignore - ^^same as above\n const results = await onResolveSuggestions(componentRef.current.input.current.value)\n //@ts-ignore - ^^same as above\n componentRef.current.updateSuggestionsList(results);\n //@ts-ignore - ^^same above\n componentRef.current.setState({\n isMostRecentlyUsedVisible: false,\n suggestionsVisible: true,\n moreSuggestionsAvailable: false,\n });\n }\n\n const isComponentActive = () => {\n return mouseOver || isFocused;\n }\n\n const getDisplayName = () => {\n return props.parameters.value.attributes.DisplayName ?? labels.record();\n }\n\n const getSecondaryName = async (result: ComponentFramework.LookupValue & {\n entityData: {\n [key: string]: any;\n };\n layout: ILayout;\n }): Promise<string | undefined> => {\n const metadata = await entities.find(x => x.entityName === result.entityType)?.metadata;\n const attribute: string | undefined = result.layout?.Rows?.[0]?.Cells?.[1]?.Name;\n //polymorphic, selected all\n if (!entities.find(x => x.selected)) {\n return metadata?.DisplayName;\n }\n else if (metadata?.LogicalName && attribute) {\n let targetEntityName = metadata.LogicalName;\n let targetAttribute = attribute;\n //checking for attributes pointing to related entity attribute, given by convention of using dot as separator\n if (attribute.includes(\".\")) {\n targetEntityName = result.layout.Rows.find(x => x.Cells.find(y => y.Name === attribute))?.Cells?.find(y => y.Name === attribute)?.RelatedEntityName || metadata.LogicalName;\n targetAttribute = attribute.split(\".\")[1]\n }\n const entityMetadata: ComponentFramework.PropertyHelper.EntityMetadata = await window.Xrm.Utility.getEntityMetadata(targetEntityName, [targetAttribute]);\n const attributetype: string = entityMetadata.Attributes.get(targetAttribute).AttributeTypeName;\n let primaryName: string;\n switch (attributetype) {\n case \"lookup\":\n case \"partylist\":\n case \"owner\":\n case \"customer\":\n primaryName = result.entityData[`_${targetAttribute}_value@OData.Community.Display.V1.FormattedValue`];\n break;\n case \"optionset\":\n case \"picklist\":\n case \"state\":\n case \"status\":\n case \"boolean\":\n case \"integer\":\n case \"bigint\":\n case \"decimal\":\n case \"money\":\n //TODO: Introduce user formatting, this approach takes format from application user setting\n primaryName = result.entityData[`${targetAttribute}@OData.Community.Display.V1.FormattedValue`];\n break;\n case \"datetime\":\n primaryName = props.context.formatting.formatTime(dayjs(result.entityData[attribute]).toDate(), 1);\n break;\n default:\n primaryName = result.entityData[attribute];\n };\n return primaryName;\n }\n }\n\n const onResolveSuggestions = async (filter: string, selectedItems?: IItemProps[] | undefined): Promise<IItemProps[]> => {\n //TODO: onResolveSuggestions gets called when the record gets selected resulting in unnecessary call\n const results = await getSearchResults(filter);\n const suggestions: IItemProps[] = [];\n for (const result of results) {\n if (selectedItems?.find(x => x.key === result.id)) {\n continue;\n }\n suggestions.push({\n key: result.id,\n text: result.name,\n secondaryText: await getSecondaryName(result),\n 'data-entity': result.entityType\n })\n }\n return suggestions;\n }\n\n const componentProps = onOverrideComponentProps({\n ref: componentRef,\n readOnly: context.mode.isControlDisabled,\n resolveDelay: 200,\n stackItems: itemLimit === 1,\n errorMessage: props.parameters.value.errorMessage,\n hideErrorMessage: !props.parameters.ShowErrorMessage?.raw,\n pickerCalloutProps: {\n layerProps: {\n eventBubblingEnabled: true\n },\n className: suggestionsCalloutStyles.suggestionsCallout,\n theme: suggestionsCalloutTheme,\n },\n inputProps: {\n placeholder: placeholder,\n onMouseEnter: () => {\n if (context.mode.isControlDisabled) {\n return;\n }\n setPlaceholder(`${labels.placeholder()} ${getDisplayName()}`);\n },\n onMouseLeave: () => {\n setPlaceholder(\"---\");\n }\n\n },\n pickerSuggestionsProps: {\n loadingText: labels.searching(),\n theme: suggestionsCalloutTheme,\n noResultsFoundText: labels.noRecordsFound(),\n className: suggestionsCalloutStyles.suggestionsContainer,\n // @ts-ignore\n suggestionsHeaderText: (\n <>\n {props.parameters.IsInlineNewEnabled?.raw !== false && (\n <RecordCreator labels={labels} entities={entities} onCreateRecord={records.create} />\n )}\n {props.parameters.value.attributes.Targets.length > 1 && (\n <TargetSelector\n labels={labels}\n entities={entities}\n onEntitySelected={(entityName) => {\n selectEntity(entityName);\n }}\n />\n )}\n </>\n )\n },\n transparent: itemLimit === 1,\n onChange: (items) => {\n records.select(\n items?.map((item) => {\n return {\n entityType: item['data-entity'],\n id: item.key,\n name: item.text\n };\n })\n );\n },\n searchBtnProps: {\n key: 'search',\n iconProps: {\n iconName: 'Search'\n },\n showOnlyOnHover: true\n },\n selectedItems: value.map((lookup) => {\n return {\n key: lookup.id,\n text: lookup.name || labels.noName(),\n 'data-entity': lookup.entityType,\n 'data-navigation-enabled': props.parameters.EnableNavigation?.raw !== false,\n onClick: () => {\n if (props.parameters.EnableNavigation?.raw === false) {\n return;\n }\n context.navigation.openForm({\n entityName: lookup.entityType,\n entityId: lookup.id\n });\n },\n deleteButtonProps:\n isComponentActive() || itemLimit > 1\n ? {\n key: 'delete',\n iconProps: {\n iconName: 'Cancel',\n },\n onClick: () => {\n shouldFocusRef.current = false;\n records.deselect(lookup);\n setTimeout(() => {\n focus();\n }, 200);\n }\n }\n : undefined\n };\n }),\n itemLimit: itemLimit,\n onEmptyResolveSuggestions: !context.mode.isControlDisabled ? (selectedItems) => onResolveSuggestions(\"\", selectedItems as IItemProps[]) as any : undefined,\n onResolveSuggestions: onResolveSuggestions,\n });\n\n return (\n <ThemeProvider applyTo=\"none\" theme={theme} className={`talxis__lookupControl ${styles.root}`} ref={ref}>\n <TagPicker {...componentProps} />\n </ThemeProvider>\n );\n};"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}