@orchestrator-ui/orchestrator-ui-components 7.4.1 → 7.5.0

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 (554) hide show
  1. package/.turbo/turbo-build.log +9 -9
  2. package/.turbo/turbo-lint.log +1 -13
  3. package/.turbo/turbo-test.log +11 -11
  4. package/CHANGELOG.md +421 -416
  5. package/__mocks__/@copilotkit/react-core.js +6 -6
  6. package/__mocks__/@copilotkit/react-ui.js +1 -6
  7. package/dist/index.d.ts +283 -176
  8. package/dist/index.js +3258 -7615
  9. package/dist/index.js.map +1 -1
  10. package/package.json +93 -93
  11. package/src/api/types.ts +36 -36
  12. package/src/components/WfoAgent/ExportButton/ExportButton.tsx +59 -63
  13. package/src/components/WfoAgent/ExportButton/styles.ts +56 -56
  14. package/src/components/WfoAgent/ToolProgress/DiscoverFilterPathsDisplay.tsx +79 -94
  15. package/src/components/WfoAgent/ToolProgress/RunSearchDisplay.tsx +22 -22
  16. package/src/components/WfoAgent/ToolProgress/SetFilterTreeDisplay.styles.ts +56 -56
  17. package/src/components/WfoAgent/ToolProgress/SetFilterTreeDisplay.tsx +76 -104
  18. package/src/components/WfoAgent/ToolProgress/StartNewSearchDisplay.tsx +49 -51
  19. package/src/components/WfoAgent/ToolProgress/ToolProgress.tsx +65 -115
  20. package/src/components/WfoAgent/ToolProgress/styles.ts +46 -46
  21. package/src/components/WfoAgent/WfoAgent/WfoAgent.tsx +69 -110
  22. package/src/components/WfoAgent/WfoAgentChart/WfoAgentLineChart.tsx +36 -46
  23. package/src/components/WfoAgent/WfoAgentChart/WfoAgentPieChart.tsx +40 -53
  24. package/src/components/WfoAgent/WfoAgentChart/styles.ts +2 -2
  25. package/src/components/WfoAgent/WfoAgentTable/WfoAgentTable.tsx +45 -55
  26. package/src/components/WfoAgent/WfoAgentVisualization/WfoAgentVisualization.tsx +37 -42
  27. package/src/components/WfoAuth/WfoAuth.tsx +11 -18
  28. package/src/components/WfoAuth/WfoIsAllowedToRender.tsx +5 -8
  29. package/src/components/WfoAuth/WfoPageUnauthorized.tsx +2 -2
  30. package/src/components/WfoAuth/WfoPolicyRenderPageFallback.tsx +5 -8
  31. package/src/components/WfoAvailabilityCheck/WfoAvailabilityCheck.tsx +8 -17
  32. package/src/components/WfoBackendUnavailable/WfoBackendUnavailable.tsx +71 -94
  33. package/src/components/WfoBadges/WfoBadge/WfoBadge.stories.tsx +9 -9
  34. package/src/components/WfoBadges/WfoBadge/WfoBadge.tsx +11 -14
  35. package/src/components/WfoBadges/WfoEngineStatusBadge/WfoEngineStatusBadge.stories.tsx +17 -17
  36. package/src/components/WfoBadges/WfoEngineStatusBadge/WfoEngineStatusBadge.tsx +19 -25
  37. package/src/components/WfoBadges/WfoEnvironmentBadge/WfoEnvironmentBadge.stories.tsx +7 -7
  38. package/src/components/WfoBadges/WfoEnvironmentBadge/WfoEnvironmentBadge.tsx +13 -16
  39. package/src/components/WfoBadges/WfoFailedTasksBadge/WfoFailedTasksBadge.stories.tsx +3 -3
  40. package/src/components/WfoBadges/WfoFailedTasksBadge/WfoFailedTasksBadge.tsx +66 -83
  41. package/src/components/WfoBadges/WfoFailedTasksBadge/styles.ts +5 -5
  42. package/src/components/WfoBadges/WfoHeaderBadge/WfoHeaderBadge.stories.tsx +9 -9
  43. package/src/components/WfoBadges/WfoHeaderBadge/WfoHeaderBadge.tsx +19 -21
  44. package/src/components/WfoBadges/WfoProcessStatusBadge/WfoProcessStatusBadge.tsx +56 -59
  45. package/src/components/WfoBadges/WfoProductBlockBadge/WfoProductBlockBadge.stories.tsx +5 -5
  46. package/src/components/WfoBadges/WfoProductBlockBadge/WfoProductBlockBadge.tsx +60 -66
  47. package/src/components/WfoBadges/WfoProductStatusBadge/WfoProductStatusBadge.stories.tsx +8 -8
  48. package/src/components/WfoBadges/WfoProductStatusBadge/WfoProductStatusBadge.tsx +34 -43
  49. package/src/components/WfoBadges/WfoScheduledTasksBadges/WfoScheduledTasksBadges.tsx +19 -29
  50. package/src/components/WfoBadges/WfoScheduledTasksBadges/WfoScheduledTasksBadgesContainer.tsx +10 -11
  51. package/src/components/WfoBadges/WfoSubscriptionStatusBadge/WfoSubscriptionStatusBadge.stories.tsx +11 -11
  52. package/src/components/WfoBadges/WfoSubscriptionStatusBadge/WfoSubscriptionStatusBadge.tsx +35 -44
  53. package/src/components/WfoBadges/WfoSubscriptionSyncStatusBadge/WfoSubscriptionSyncStatusBadge.stories.tsx +12 -12
  54. package/src/components/WfoBadges/WfoSubscriptionSyncStatusBadge/WfoSubscriptionSyncStatusBadge.tsx +31 -34
  55. package/src/components/WfoBadges/WfoVersionIncompatibleBadge/WfoVersionIncompatibleBadge.stories.tsx +7 -7
  56. package/src/components/WfoBadges/WfoVersionIncompatibleBadge/WfoVersionIncompatibleBadge.tsx +44 -47
  57. package/src/components/WfoBadges/WfoWebsocketStatusBadge/WfoWebsocketStatusBadge.stories.tsx +3 -3
  58. package/src/components/WfoBadges/WfoWebsocketStatusBadge/WfoWebsocketStatusBadge.tsx +48 -71
  59. package/src/components/WfoBadges/WfoWebsocketStatusBadge/styles.ts +14 -16
  60. package/src/components/WfoBadges/WfoWorkflowTargetBadge/WfoWorkflowTargetBadge.tsx +51 -63
  61. package/src/components/WfoButtonComboBox/WfoButtonComboBox.tsx +55 -64
  62. package/src/components/WfoButtonComboBox/styles.ts +19 -19
  63. package/src/components/WfoButtonWithConfirm/WfoButtonWithConfirm.tsx +21 -21
  64. package/src/components/WfoContentHeader/WfoContentHeader.tsx +28 -48
  65. package/src/components/WfoDateTime/WfoDateTime.tsx +3 -3
  66. package/src/components/WfoDiff/WfoDiff.tsx +82 -100
  67. package/src/components/WfoDiff/styles.ts +28 -35
  68. package/src/components/WfoDropdownButton/WfoDropdownButton.tsx +54 -58
  69. package/src/components/WfoError/WfoError.stories.tsx +9 -12
  70. package/src/components/WfoError/WfoError.tsx +22 -25
  71. package/src/components/WfoErrorBoundary/WfoErrorBoundary.tsx +30 -34
  72. package/src/components/WfoExpandableField/WfoExpandableField.tsx +24 -31
  73. package/src/components/WfoExpandableField/styles.ts +11 -11
  74. package/src/components/WfoFilterTabs/WfoFilterTabs.tsx +33 -35
  75. package/src/components/WfoFilterTabs/styles.ts +7 -7
  76. package/src/components/WfoInlineEdit/WfoInlineEdit.tsx +99 -112
  77. package/src/components/WfoInlineNoteEdit/WfoSubscriptionDetailNoteEdit.tsx +33 -39
  78. package/src/components/WfoInlineNoteEdit/WfoSubscriptionNoteEdit.tsx +32 -35
  79. package/src/components/WfoInsyncIcon/WfoInsyncIcon.stories.tsx +8 -8
  80. package/src/components/WfoInsyncIcon/WfoInsyncIcon.tsx +5 -15
  81. package/src/components/WfoJsonCodeBlock/WfoJsonCodeBlock.tsx +15 -19
  82. package/src/components/WfoJsonCodeBlock/styles.ts +19 -19
  83. package/src/components/WfoKeyValueTable/WfoKeyCell.tsx +10 -11
  84. package/src/components/WfoKeyValueTable/WfoKeyValueTable.tsx +22 -25
  85. package/src/components/WfoKeyValueTable/WfoValueCell.tsx +44 -54
  86. package/src/components/WfoKeyValueTable/WfoValueOnlyTable.tsx +19 -22
  87. package/src/components/WfoKeyValueTable/styles.ts +77 -78
  88. package/src/components/WfoLogoSpinner/WfoLogoSpinner.tsx +22 -29
  89. package/src/components/WfoLogoSpinner/styles.ts +33 -36
  90. package/src/components/WfoMetadata/WfoMetadataDescriptionField.tsx +8 -14
  91. package/src/components/WfoMonacoCodeBlock/WfoMonacoCodeBlock.tsx +56 -63
  92. package/src/components/WfoMonacoCodeBlock/styles.ts +9 -11
  93. package/src/components/WfoNoResults/WfoNoResults.stories.tsx +6 -6
  94. package/src/components/WfoNoResults/WfoNoResults.tsx +8 -8
  95. package/src/components/WfoNoResults/styles.ts +16 -16
  96. package/src/components/WfoOptionalLink/WfoOptionalLink.tsx +7 -10
  97. package/src/components/WfoPageTemplate/WfoBreadcrumbs/WfoBreadcrumbs.tsx +61 -87
  98. package/src/components/WfoPageTemplate/WfoPageHeader/WfoAppLogo.tsx +15 -24
  99. package/src/components/WfoPageTemplate/WfoPageHeader/WfoHamburgerMenu.tsx +115 -140
  100. package/src/components/WfoPageTemplate/WfoPageHeader/WfoPageHeader.stories.tsx +43 -43
  101. package/src/components/WfoPageTemplate/WfoPageHeader/WfoPageHeader.tsx +67 -101
  102. package/src/components/WfoPageTemplate/WfoPageHeader/styles.ts +16 -16
  103. package/src/components/WfoPageTemplate/WfoPageHeader/utils/toHexColorWithOpacity.spec.ts +6 -6
  104. package/src/components/WfoPageTemplate/WfoPageHeader/utils/toHexColorWithOpacity.ts +2 -2
  105. package/src/components/WfoPageTemplate/WfoPageTemplate/ContentContext.tsx +10 -16
  106. package/src/components/WfoPageTemplate/WfoPageTemplate/WfoPageTemplate.stories.tsx +10 -10
  107. package/src/components/WfoPageTemplate/WfoPageTemplate/WfoPageTemplate.tsx +62 -94
  108. package/src/components/WfoPageTemplate/WfoPageTemplate/styles.ts +19 -22
  109. package/src/components/WfoPageTemplate/WfoSidebar/WfoCopyright.tsx +13 -13
  110. package/src/components/WfoPageTemplate/WfoSidebar/WfoMenuLink.tsx +34 -42
  111. package/src/components/WfoPageTemplate/WfoSidebar/WfoSidebar.stories.tsx +7 -7
  112. package/src/components/WfoPageTemplate/WfoSidebar/WfoSidebar.tsx +205 -240
  113. package/src/components/WfoPageTemplate/WfoSidebar/styles.ts +92 -99
  114. package/src/components/WfoPageTemplate/WfoSidebar/utils/menuItemIsAllowed.spec.ts +31 -40
  115. package/src/components/WfoPageTemplate/WfoSidebar/utils/menuItemIsAllowed.ts +8 -8
  116. package/src/components/WfoPageTemplate/paths.ts +1 -2
  117. package/src/components/WfoPopover/WfoPopover.tsx +26 -36
  118. package/src/components/WfoProcessList/WfoProcessesList.tsx +212 -247
  119. package/src/components/WfoProcessList/processListObjectMappers.ts +95 -100
  120. package/src/components/WfoPydanticForm/Footer.tsx +139 -157
  121. package/src/components/WfoPydanticForm/Header.tsx +9 -10
  122. package/src/components/WfoPydanticForm/RenderFormErrors.tsx +18 -20
  123. package/src/components/WfoPydanticForm/Row.tsx +22 -31
  124. package/src/components/WfoPydanticForm/WfoPydanticForm.tsx +77 -93
  125. package/src/components/WfoPydanticForm/fields/WfoArrayField/WfoArrayField.tsx +85 -120
  126. package/src/components/WfoPydanticForm/fields/WfoArrayField/styles.ts +28 -28
  127. package/src/components/WfoPydanticForm/fields/WfoCallout.tsx +9 -12
  128. package/src/components/WfoPydanticForm/fields/WfoCheckbox.tsx +11 -16
  129. package/src/components/WfoPydanticForm/fields/WfoDivider.tsx +4 -8
  130. package/src/components/WfoPydanticForm/fields/WfoDropdown.tsx +6 -17
  131. package/src/components/WfoPydanticForm/fields/WfoInteger.tsx +29 -43
  132. package/src/components/WfoPydanticForm/fields/WfoLabel.tsx +14 -14
  133. package/src/components/WfoPydanticForm/fields/WfoMultiCheckboxField.tsx +40 -51
  134. package/src/components/WfoPydanticForm/fields/WfoObjectField/WfoObjectField.tsx +22 -35
  135. package/src/components/WfoPydanticForm/fields/WfoObjectField/styles.ts +9 -9
  136. package/src/components/WfoPydanticForm/fields/WfoRadio.tsx +15 -20
  137. package/src/components/WfoPydanticForm/fields/WfoReactSelect/WfoReactSelect.tsx +84 -97
  138. package/src/components/WfoPydanticForm/fields/WfoReactSelect/styles.ts +68 -85
  139. package/src/components/WfoPydanticForm/fields/WfoSummary.tsx +58 -67
  140. package/src/components/WfoPydanticForm/fields/WfoText.tsx +16 -26
  141. package/src/components/WfoPydanticForm/fields/WfoTextArea.tsx +12 -17
  142. package/src/components/WfoPydanticForm/fields/WfoTimestampField.tsx +42 -48
  143. package/src/components/WfoPydanticForm/fields/styles.ts +71 -71
  144. package/src/components/WfoPydanticForm/fields/wfoPydanticFormUtils.spec.ts +24 -24
  145. package/src/components/WfoPydanticForm/fields/wfoPydanticFormUtils.ts +11 -18
  146. package/src/components/WfoRadioDropdown/WfoRadioDropdown.tsx +55 -74
  147. package/src/components/WfoRenderElementOrString/WfoRenderElementOrString.tsx +8 -8
  148. package/src/components/WfoSearchBar/WfoSearchField.tsx +35 -47
  149. package/src/components/WfoSearchPage/WfoConditionRow/WfoConditionRow.tsx +290 -354
  150. package/src/components/WfoSearchPage/WfoConditionRow/WfoFieldSelector.tsx +30 -30
  151. package/src/components/WfoSearchPage/WfoConditionRow/WfoOperatorSelector.tsx +56 -85
  152. package/src/components/WfoSearchPage/WfoConditionRow/WfoPathChips.tsx +143 -171
  153. package/src/components/WfoSearchPage/WfoConditionRow/WfoPathSelector.tsx +40 -42
  154. package/src/components/WfoSearchPage/WfoConditionRow/WfoRenderFunctions.tsx +50 -86
  155. package/src/components/WfoSearchPage/WfoConditionRow/WfoSelectedPathDisplay.tsx +48 -65
  156. package/src/components/WfoSearchPage/WfoConditionRow/index.ts +1 -4
  157. package/src/components/WfoSearchPage/WfoConditionRow/types.ts +56 -61
  158. package/src/components/WfoSearchPage/WfoConditionRow/utils.ts +36 -48
  159. package/src/components/WfoSearchPage/WfoFilterGroup/WfoFilterGroup.tsx +158 -213
  160. package/src/components/WfoSearchPage/WfoSearch/WfoSearch.tsx +327 -411
  161. package/src/components/WfoSearchPage/WfoSearchResults/WfoHighlightedText.tsx +46 -53
  162. package/src/components/WfoSearchPage/WfoSearchResults/WfoPathBreadcrumb.tsx +50 -67
  163. package/src/components/WfoSearchPage/WfoSearchResults/WfoSearchEmptyState.tsx +13 -13
  164. package/src/components/WfoSearchPage/WfoSearchResults/WfoSearchLoadingState.tsx +13 -13
  165. package/src/components/WfoSearchPage/WfoSearchResults/WfoSearchMetadataHeader.tsx +13 -15
  166. package/src/components/WfoSearchPage/WfoSearchResults/WfoSearchPaginationInfo.tsx +76 -86
  167. package/src/components/WfoSearchPage/WfoSearchResults/WfoSearchResultItem.tsx +112 -133
  168. package/src/components/WfoSearchPage/WfoSearchResults/WfoSearchResults.tsx +31 -31
  169. package/src/components/WfoSearchPage/WfoValueControl/WfoValueControl.tsx +181 -215
  170. package/src/components/WfoSearchPage/constants.ts +3 -8
  171. package/src/components/WfoSearchPage/utils.ts +83 -112
  172. package/src/components/WfoSettings/WfoAoStackStatus.tsx +19 -28
  173. package/src/components/WfoSettings/WfoEngineStatus.tsx +31 -37
  174. package/src/components/WfoSettings/WfoEngineStatusButton.tsx +17 -30
  175. package/src/components/WfoSettings/WfoFlushSettings.tsx +54 -72
  176. package/src/components/WfoSettings/WfoModifySettings.tsx +23 -29
  177. package/src/components/WfoSettings/WfoResetTextSearchIndexButton.tsx +7 -10
  178. package/src/components/WfoSettings/WfoWorkerStatus.tsx +35 -42
  179. package/src/components/WfoSettings/styles.ts +17 -17
  180. package/src/components/WfoSettingsModal/WfoInformationModal.tsx +25 -29
  181. package/src/components/WfoSettingsModal/WfoSettingsModal.tsx +43 -43
  182. package/src/components/WfoSettingsModal/WfoSubmitModal.tsx +45 -50
  183. package/src/components/WfoStartButton/WfoStartButtonComboBox.tsx +98 -121
  184. package/src/components/WfoStartButton/WfoStartTaskComboBox.tsx +35 -35
  185. package/src/components/WfoStartButton/WfoStartWorkflowComboBox.tsx +42 -44
  186. package/src/components/WfoStartButton/styles.ts +15 -15
  187. package/src/components/WfoSubscription/SubscriptionKeyValueBlock.tsx +23 -35
  188. package/src/components/WfoSubscription/WfoCustomerDescriptionsField.tsx +85 -99
  189. package/src/components/WfoSubscription/WfoInSyncField/WfoInSyncErrorToastMessage.tsx +15 -17
  190. package/src/components/WfoSubscription/WfoInSyncField/WfoInSyncField.tsx +147 -192
  191. package/src/components/WfoSubscription/WfoInUseByRelations.tsx +50 -74
  192. package/src/components/WfoSubscription/WfoProcessesTimeline.tsx +113 -173
  193. package/src/components/WfoSubscription/WfoRelatedSubscriptions.tsx +140 -172
  194. package/src/components/WfoSubscription/WfoSubscription.tsx +67 -102
  195. package/src/components/WfoSubscription/WfoSubscriptionActions/WfoSubscriptionActionExpandableMenuItem.tsx +47 -53
  196. package/src/components/WfoSubscription/WfoSubscriptionActions/WfoSubscriptionActions.tsx +173 -223
  197. package/src/components/WfoSubscription/WfoSubscriptionActions/WfoSubscriptionActionsMenuItem.tsx +67 -87
  198. package/src/components/WfoSubscription/WfoSubscriptionActions/styles.ts +70 -70
  199. package/src/components/WfoSubscription/WfoSubscriptionDetailTree.tsx +190 -242
  200. package/src/components/WfoSubscription/WfoSubscriptionGeneral.tsx +48 -60
  201. package/src/components/WfoSubscription/WfoSubscriptionGeneralSections/WfoSubscriptionDetailSection.tsx +67 -91
  202. package/src/components/WfoSubscription/WfoSubscriptionGeneralSections/WfoSubscriptionFixedInputSection.tsx +8 -15
  203. package/src/components/WfoSubscription/WfoSubscriptionGeneralSections/WfoSubscriptionMetadataSection.tsx +8 -15
  204. package/src/components/WfoSubscription/WfoSubscriptionGeneralSections/WfoSubscriptionProductInfoSection.tsx +34 -41
  205. package/src/components/WfoSubscription/WfoSubscriptionProductBlock/WfoProductBlockKeyValueRow.tsx +36 -36
  206. package/src/components/WfoSubscription/WfoSubscriptionProductBlock/WfoSubscriptionProductBlock.tsx +156 -233
  207. package/src/components/WfoSubscription/WfoSubscriptionProductBlock/styles.ts +60 -62
  208. package/src/components/WfoSubscription/WfoTargetTypeIcon.tsx +39 -50
  209. package/src/components/WfoSubscription/overrides/useSubscriptionDetailGeneralSectionConfigurationOverride.ts +6 -8
  210. package/src/components/WfoSubscription/overrides/useSubscriptionDetailValueOverride.ts +20 -23
  211. package/src/components/WfoSubscription/styles.ts +57 -62
  212. package/src/components/WfoSubscription/subscriptionDetailTabs.tsx +44 -48
  213. package/src/components/WfoSubscription/utils/relatedSubscriptionsListItemsObjectMappers.ts +30 -42
  214. package/src/components/WfoSubscription/utils/utils.spec.ts +405 -452
  215. package/src/components/WfoSubscription/utils/utils.ts +139 -159
  216. package/src/components/WfoSubscriptionsList/WfoSubscriptionsList.tsx +214 -258
  217. package/src/components/WfoSubscriptionsList/subscriptionListTabs.ts +39 -42
  218. package/src/components/WfoSubscriptionsList/subscriptionResultMappers.ts +33 -45
  219. package/src/components/WfoSummary/WfoActiveWorkflowsSummaryCard.tsx +19 -28
  220. package/src/components/WfoSummary/WfoFailedTasksSummaryCard.tsx +18 -21
  221. package/src/components/WfoSummary/WfoLatestActiveSubscriptionsSummaryCard.tsx +22 -28
  222. package/src/components/WfoSummary/WfoLatestOutOfSyncSubscriptionSummaryCard.tsx +30 -40
  223. package/src/components/WfoSummary/WfoMyWorkflowsSummaryCard.tsx +30 -44
  224. package/src/components/WfoSummary/WfoProductsSummaryCard.tsx +37 -45
  225. package/src/components/WfoSummary/WfoSummaryCard.tsx +68 -99
  226. package/src/components/WfoSummary/WfoSummaryCardHeader/WfoSummaryCardHeader.tsx +38 -50
  227. package/src/components/WfoSummary/WfoSummaryCardHeader/styles.ts +18 -18
  228. package/src/components/WfoSummary/WfoSummaryCardList/WfoSummaryCardList.tsx +44 -67
  229. package/src/components/WfoSummary/WfoSummaryCardList/WfoSummaryCardListItem.tsx +25 -44
  230. package/src/components/WfoSummary/WfoSummaryCardList/styles.ts +49 -49
  231. package/src/components/WfoSummary/WfoSummaryCards.tsx +7 -11
  232. package/src/components/WfoSummary/getNumberOfColumns.ts +12 -12
  233. package/src/components/WfoSummary/styles.ts +7 -7
  234. package/src/components/WfoTable/WfoAdvancedTable/WfoAdvancedTable.tsx +181 -229
  235. package/src/components/WfoTable/WfoAdvancedTable/getRowDetailData.tsx +31 -42
  236. package/src/components/WfoTable/WfoAdvancedTable/toSortedTableColumnConfig.ts +8 -8
  237. package/src/components/WfoTable/WfoAdvancedTable/types.ts +9 -11
  238. package/src/components/WfoTable/WfoFirstPartUUID/WfoFirstPartUUID.tsx +19 -30
  239. package/src/components/WfoTable/WfoFirstPartUUID/styles.ts +19 -19
  240. package/src/components/WfoTable/WfoInlineJson/WfoInlineJson.tsx +6 -6
  241. package/src/components/WfoTable/WfoRowContextMenu/WfoRowContextMenu.tsx +30 -46
  242. package/src/components/WfoTable/WfoSortButtons/WfoSortButton.tsx +11 -24
  243. package/src/components/WfoTable/WfoSortButtons/WfoSortButtons.tsx +18 -21
  244. package/src/components/WfoTable/WfoSortButtons/styles.ts +14 -14
  245. package/src/components/WfoTable/WfoStatusColorField/WfoStatusColorField.tsx +3 -5
  246. package/src/components/WfoTable/WfoStatusColorField/styles.ts +10 -10
  247. package/src/components/WfoTable/WfoTable/WfoDataCell.tsx +8 -14
  248. package/src/components/WfoTable/WfoTable/WfoDragHandler.tsx +49 -61
  249. package/src/components/WfoTable/WfoTable/WfoExpandedRow.tsx +12 -33
  250. package/src/components/WfoTable/WfoTable/WfoGroupedTable/WfoExpandableRow.tsx +28 -32
  251. package/src/components/WfoTable/WfoTable/WfoGroupedTable/WfoExpandedGroupRow.tsx +34 -52
  252. package/src/components/WfoTable/WfoTable/WfoGroupedTable/WfoGroupedTable.tsx +63 -78
  253. package/src/components/WfoTable/WfoTable/WfoGroupedTable/WfoGroupedTableGroups.tsx +40 -54
  254. package/src/components/WfoTable/WfoTable/WfoGroupedTable/styles.ts +28 -28
  255. package/src/components/WfoTable/WfoTable/WfoGroupedTable/useGroupedTableConfig.tsx +147 -168
  256. package/src/components/WfoTable/WfoTable/WfoGroupedTable/utils.spec.ts +133 -140
  257. package/src/components/WfoTable/WfoTable/WfoGroupedTable/utils.ts +21 -33
  258. package/src/components/WfoTable/WfoTable/WfoMultilineCell.tsx +5 -5
  259. package/src/components/WfoTable/WfoTable/WfoTable.tsx +213 -251
  260. package/src/components/WfoTable/WfoTable/WfoTableDataRows.tsx +63 -107
  261. package/src/components/WfoTable/WfoTable/WfoTableHeaderCell/WfoPopoverContent.tsx +34 -40
  262. package/src/components/WfoTable/WfoTable/WfoTableHeaderCell/WfoSortDirectionIcon.tsx +17 -21
  263. package/src/components/WfoTable/WfoTable/WfoTableHeaderCell/WfoTableHeaderCell.tsx +68 -83
  264. package/src/components/WfoTable/WfoTable/WfoTableHeaderCell/styles.ts +118 -118
  265. package/src/components/WfoTable/WfoTable/WfoTableHeaderRow.tsx +91 -118
  266. package/src/components/WfoTable/WfoTable/WfoToolTip.tsx +17 -21
  267. package/src/components/WfoTable/WfoTable/WfoTruncateCell.tsx +15 -15
  268. package/src/components/WfoTable/WfoTable/WfoVirtualizedTableBody.tsx +42 -49
  269. package/src/components/WfoTable/WfoTable/styles.ts +168 -176
  270. package/src/components/WfoTable/WfoTable/utils.spec.ts +71 -89
  271. package/src/components/WfoTable/WfoTable/utils.ts +61 -80
  272. package/src/components/WfoTable/WfoTableSettingsModal/WfoTableSettingsModal.tsx +77 -100
  273. package/src/components/WfoTable/WfoTableSettingsModal/styles.ts +12 -14
  274. package/src/components/WfoTable/WfoTableWithFilter/updateQueryString.spec.ts +63 -65
  275. package/src/components/WfoTable/WfoTableWithFilter/updateQueryString.ts +33 -44
  276. package/src/components/WfoTable/utils/columns.spec.ts +17 -17
  277. package/src/components/WfoTable/utils/columns.ts +16 -18
  278. package/src/components/WfoTable/utils/constants.ts +6 -12
  279. package/src/components/WfoTable/utils/tableConfigPersistence.spec.ts +61 -61
  280. package/src/components/WfoTable/utils/tableConfigPersistence.ts +21 -30
  281. package/src/components/WfoTable/utils/tableUtils.spec.ts +100 -117
  282. package/src/components/WfoTable/utils/tableUtils.ts +33 -50
  283. package/src/components/WfoTableCodeBlock/WfoTableCodeBlock.tsx +20 -27
  284. package/src/components/WfoTableCodeBlock/styles.ts +8 -8
  285. package/src/components/WfoTextAnchor/WfoTextAnchor.stories.tsx +6 -6
  286. package/src/components/WfoTextAnchor/WfoTextAnchor.tsx +8 -8
  287. package/src/components/WfoTextAnchor/styles.ts +11 -11
  288. package/src/components/WfoTimeline/WfoTimeline.tsx +28 -43
  289. package/src/components/WfoTimeline/WfoTimelineStep.tsx +38 -40
  290. package/src/components/WfoTimeline/mapProcessStepStatusToEuiStepStatus.ts +16 -18
  291. package/src/components/WfoTimeline/styles.ts +151 -168
  292. package/src/components/WfoTimeline/timelineUtils.ts +5 -10
  293. package/src/components/WfoTitleWithWebsocketBadge/WfoTitleWithWebsocketBadge.tsx +10 -13
  294. package/src/components/WfoToastsList/WfoToastsList.tsx +11 -13
  295. package/src/components/WfoTree/WfoTree.tsx +14 -14
  296. package/src/components/WfoTree/WfoTreeBranch.tsx +27 -39
  297. package/src/components/WfoTree/WfoTreeNode.tsx +29 -41
  298. package/src/components/WfoTree/WfoTreeNodeListItem.tsx +34 -48
  299. package/src/components/WfoTree/styles.ts +35 -38
  300. package/src/components/WfoTree/treeUtils.spec.ts +141 -146
  301. package/src/components/WfoTree/treeUtils.ts +52 -58
  302. package/src/components/WfoWorkflowSteps/WfoStep/WfoCodeViewSelector.tsx +75 -106
  303. package/src/components/WfoWorkflowSteps/WfoStep/WfoStep.stories.tsx +3 -3
  304. package/src/components/WfoWorkflowSteps/WfoStep/WfoStep.tsx +128 -191
  305. package/src/components/WfoWorkflowSteps/WfoStep/WfoStepForm.tsx +42 -58
  306. package/src/components/WfoWorkflowSteps/WfoStep/WfoStepFormFooter.tsx +31 -42
  307. package/src/components/WfoWorkflowSteps/WfoStepList/WfoStepList.tsx +79 -101
  308. package/src/components/WfoWorkflowSteps/WfoStepStatusIcon/WfoStepStatusIcon.stories.tsx +6 -6
  309. package/src/components/WfoWorkflowSteps/WfoStepStatusIcon/WfoStepStatusIcon.tsx +64 -103
  310. package/src/components/WfoWorkflowSteps/WfoTraceback/WfoTraceback.tsx +11 -11
  311. package/src/components/WfoWorkflowSteps/WfoTraceback/styles.ts +8 -8
  312. package/src/components/WfoWorkflowSteps/WfoWorkflowStepList/WfoStepListHeader.tsx +97 -140
  313. package/src/components/WfoWorkflowSteps/WfoWorkflowStepList/WfoWorkflowStepList.stories.tsx +40 -40
  314. package/src/components/WfoWorkflowSteps/WfoWorkflowStepList/WfoWorkflowStepList.tsx +146 -198
  315. package/src/components/WfoWorkflowSteps/stepListUtils.spec.ts +18 -18
  316. package/src/components/WfoWorkflowSteps/stepListUtils.ts +14 -25
  317. package/src/components/WfoWorkflowSteps/styles.ts +116 -122
  318. package/src/components/confirmationDialog/ConfirmationDialogStyling.ts +7 -7
  319. package/src/components/confirmationDialog/WfoConfirmationDialog.tsx +58 -72
  320. package/src/configuration/constants.ts +2 -4
  321. package/src/configuration/policy-resources.ts +21 -21
  322. package/src/configuration/version.ts +1 -1
  323. package/src/contexts/ConfirmationDialogProvider.tsx +54 -72
  324. package/src/contexts/OrchestratorConfigContext.tsx +23 -30
  325. package/src/contexts/PolicyContext.tsx +6 -11
  326. package/src/contexts/TreeContext.tsx +83 -97
  327. package/src/contexts/WfoErrorMonitoringProvider.tsx +16 -19
  328. package/src/hooks/useBackendAvailability.ts +39 -44
  329. package/src/hooks/useCheckEngineStatus.ts +19 -19
  330. package/src/hooks/useContentRef.ts +1 -1
  331. package/src/hooks/useDataDisplayParams.ts +35 -47
  332. package/src/hooks/useDebounce.ts +14 -14
  333. package/src/hooks/useGetOrchestratorConfig.ts +1 -1
  334. package/src/hooks/useGetPydanticFormsConfig.tsx +249 -286
  335. package/src/hooks/useGetSchedulesForWorkflow.tsx +19 -20
  336. package/src/hooks/useGetWorkflowNameById.tsx +8 -13
  337. package/src/hooks/useOrchestratorConfig.ts +2 -4
  338. package/src/hooks/useOrchestratorTheme.ts +20 -24
  339. package/src/hooks/usePathAutoComplete.ts +105 -117
  340. package/src/hooks/usePolicy.ts +5 -6
  341. package/src/hooks/useSearch.ts +60 -75
  342. package/src/hooks/useSearchPagination.ts +124 -134
  343. package/src/hooks/useShowToastMessage.ts +12 -12
  344. package/src/hooks/useStoredTableConfig.ts +22 -29
  345. package/src/hooks/useUrlParams.ts +90 -108
  346. package/src/hooks/useWfoErrorMonitoring.ts +1 -2
  347. package/src/hooks/useWfoSession.ts +15 -17
  348. package/src/hooks/useWithOrchestratorTheme.ts +3 -5
  349. package/src/icons/WfoActualWork.tsx +8 -17
  350. package/src/icons/WfoArrowsExpand.stories.tsx +3 -3
  351. package/src/icons/WfoArrowsExpand.tsx +12 -28
  352. package/src/icons/WfoBell.tsx +12 -28
  353. package/src/icons/WfoBoltFill.tsx +15 -31
  354. package/src/icons/WfoBoltSlashFill.tsx +15 -31
  355. package/src/icons/WfoChartBar.tsx +22 -26
  356. package/src/icons/WfoCheckmarkCircleFill.stories.tsx +3 -3
  357. package/src/icons/WfoCheckmarkCircleFill.tsx +11 -27
  358. package/src/icons/WfoChevronDown.stories.tsx +3 -3
  359. package/src/icons/WfoChevronDown.tsx +12 -28
  360. package/src/icons/WfoChevronUp.stories.tsx +3 -3
  361. package/src/icons/WfoChevronUp.tsx +12 -28
  362. package/src/icons/WfoClipboardCopy.stories.tsx +3 -3
  363. package/src/icons/WfoClipboardCopy.tsx +12 -28
  364. package/src/icons/WfoCode.stories.tsx +3 -3
  365. package/src/icons/WfoCode.tsx +14 -30
  366. package/src/icons/WfoCogFill.stories.tsx +3 -3
  367. package/src/icons/WfoCogFill.tsx +18 -28
  368. package/src/icons/WfoContactEnvelopeFill.tsx +9 -24
  369. package/src/icons/WfoCubeFill.tsx +14 -35
  370. package/src/icons/WfoCubeSolid.tsx +12 -28
  371. package/src/icons/WfoDotsHorizontal.tsx +12 -28
  372. package/src/icons/WfoExclamationTriangle.tsx +13 -24
  373. package/src/icons/WfoExternalLink.tsx +9 -25
  374. package/src/icons/WfoEyeFill.stories.tsx +3 -3
  375. package/src/icons/WfoEyeFill.tsx +14 -30
  376. package/src/icons/WfoIconProps.ts +3 -3
  377. package/src/icons/WfoLogoutIcon.stories.tsx +3 -3
  378. package/src/icons/WfoLogoutIcon.tsx +12 -28
  379. package/src/icons/WfoMalfunction.tsx +8 -17
  380. package/src/icons/WfoMinusCircleFill.stories.tsx +3 -3
  381. package/src/icons/WfoMinusCircleFill.tsx +12 -28
  382. package/src/icons/WfoMinusCircleOutline.stories.tsx +3 -3
  383. package/src/icons/WfoMinusCircleOutline.tsx +11 -27
  384. package/src/icons/WfoPencil.tsx +12 -30
  385. package/src/icons/WfoPencilAlt.stories.tsx +3 -3
  386. package/src/icons/WfoPencilAlt.tsx +12 -28
  387. package/src/icons/WfoPlannedWork.tsx +9 -18
  388. package/src/icons/WfoPlayCircle.tsx +14 -30
  389. package/src/icons/WfoPlayFill.stories.tsx +3 -3
  390. package/src/icons/WfoPlayFill.tsx +14 -30
  391. package/src/icons/WfoPlusCircleFill.stories.tsx +3 -3
  392. package/src/icons/WfoPlusCircleFill.tsx +12 -28
  393. package/src/icons/WfoPort.tsx +9 -18
  394. package/src/icons/WfoQuestionCircle.tsx +13 -29
  395. package/src/icons/WfoRefresh.stories.tsx +3 -3
  396. package/src/icons/WfoRefresh.tsx +14 -30
  397. package/src/icons/WfoSearchStrikethrough.stories.tsx +3 -3
  398. package/src/icons/WfoSearchStrikethrough.tsx +12 -28
  399. package/src/icons/WfoShare.tsx +14 -30
  400. package/src/icons/WfoSideMenu.stories.tsx +3 -3
  401. package/src/icons/WfoSideMenu.tsx +10 -34
  402. package/src/icons/WfoSortAsc.stories.tsx +3 -3
  403. package/src/icons/WfoSortAsc.tsx +12 -28
  404. package/src/icons/WfoSortDesc.stories.tsx +3 -3
  405. package/src/icons/WfoSortDesc.tsx +12 -28
  406. package/src/icons/WfoStatistic.tsx +32 -36
  407. package/src/icons/WfoStatusDotIcon.stories.tsx +3 -3
  408. package/src/icons/WfoStatusDotIcon.tsx +10 -26
  409. package/src/icons/WfoTrash.tsx +13 -23
  410. package/src/icons/WfoViewList.tsx +9 -19
  411. package/src/icons/WfoWarningTriangle.tsx +13 -23
  412. package/src/icons/WfoXCircleFill.stories.tsx +3 -3
  413. package/src/icons/WfoXCircleFill.tsx +12 -28
  414. package/src/icons/WfoXMarkSmall.tsx +9 -24
  415. package/src/icons/heroicons/WfoArrowDown.tsx +8 -18
  416. package/src/icons/heroicons/WfoArrowUp.tsx +8 -18
  417. package/src/icons/heroicons/WfoArrowsUpDown.tsx +8 -18
  418. package/src/icons/heroicons/WfoBracketSquare.tsx +16 -20
  419. package/src/icons/heroicons/WfoCommandLine.tsx +16 -20
  420. package/src/icons/heroicons/WfoHeroIconsWrapper.tsx +23 -26
  421. package/src/icons/heroicons/WfoScheduledTaskOnce.tsx +14 -24
  422. package/src/icons/heroicons/WfoScheduledTaskRecurring.tsx +18 -24
  423. package/src/icons/heroicons/WfoSquareStack3dStack.tsx +7 -19
  424. package/src/icons/heroicons/WfoTableCells.tsx +16 -20
  425. package/src/icons/heroicons/WfoWrench.tsx +8 -18
  426. package/src/messages/en-GB.json +623 -623
  427. package/src/messages/getTranslationMessages.spec.ts +3 -3
  428. package/src/messages/nl-NL.json +492 -492
  429. package/src/messages/useGetTranslationMessages.ts +20 -20
  430. package/src/pages/metadata/WfoMetadataPageLayout.tsx +53 -60
  431. package/src/pages/metadata/WfoProductBlocksPage.tsx +229 -283
  432. package/src/pages/metadata/WfoProductsPage.tsx +217 -282
  433. package/src/pages/metadata/WfoResourceTypesPage.tsx +178 -230
  434. package/src/pages/metadata/WfoScheduleTaskFormPage.tsx +365 -407
  435. package/src/pages/metadata/WfoScheduledTasksPage.tsx +173 -226
  436. package/src/pages/metadata/WfoTasksPage.tsx +247 -337
  437. package/src/pages/metadata/WfoWorkflowsPage.tsx +213 -282
  438. package/src/pages/metadata/taskListObjectMapper.ts +26 -34
  439. package/src/pages/metadata/workflowListObjectMapper.ts +23 -31
  440. package/src/pages/processes/WfoProcessDetail.tsx +247 -346
  441. package/src/pages/processes/WfoProcessDetailPage.tsx +53 -76
  442. package/src/pages/processes/WfoProcessListSubscriptionsCell.tsx +55 -64
  443. package/src/pages/processes/WfoProductInformationWithLink.tsx +18 -26
  444. package/src/pages/processes/WfoStartProcessPage.tsx +121 -153
  445. package/src/pages/processes/timelineUtils.spec.ts +167 -179
  446. package/src/pages/processes/timelineUtils.ts +63 -87
  447. package/src/pages/settings/WfoSettingsPage.tsx +131 -161
  448. package/src/pages/startPage/WfoStartPage.tsx +36 -45
  449. package/src/pages/startPage/mappers.ts +8 -10
  450. package/src/pages/startPage/queryVariables.ts +84 -93
  451. package/src/pages/startPage/useStartPageSummaryCardConfigurationOverride.ts +6 -8
  452. package/src/pages/subscriptions/WfoSubscriptionDetailPage.tsx +9 -9
  453. package/src/pages/subscriptions/WfoSubscriptionsListPage.tsx +66 -85
  454. package/src/pages/tasks/WfoTasksListPage.tsx +129 -156
  455. package/src/pages/tasks/getTasksListTabTypeFromString.ts +12 -14
  456. package/src/pages/tasks/tabConfig.ts +41 -44
  457. package/src/pages/workflows/WfoWorkflowsListPage.tsx +73 -88
  458. package/src/pages/workflows/getWorkflowsListTabTypeFromString.ts +12 -14
  459. package/src/pages/workflows/tabConfig.ts +41 -44
  460. package/src/rtk/api.ts +113 -132
  461. package/src/rtk/endpoints/agentExport.ts +12 -12
  462. package/src/rtk/endpoints/availability.ts +29 -32
  463. package/src/rtk/endpoints/customerDescriptions.ts +40 -46
  464. package/src/rtk/endpoints/customers.ts +26 -40
  465. package/src/rtk/endpoints/fileUpload.ts +20 -20
  466. package/src/rtk/endpoints/forms.ts +41 -54
  467. package/src/rtk/endpoints/inSync.ts +16 -19
  468. package/src/rtk/endpoints/metadata/productBlocks.ts +37 -43
  469. package/src/rtk/endpoints/metadata/products.ts +37 -42
  470. package/src/rtk/endpoints/metadata/resourceTypes.ts +38 -44
  471. package/src/rtk/endpoints/metadata/scheduledTasks.ts +88 -99
  472. package/src/rtk/endpoints/metadata/tasks.ts +21 -32
  473. package/src/rtk/endpoints/metadata/workflows.ts +65 -86
  474. package/src/rtk/endpoints/processDetail.ts +87 -103
  475. package/src/rtk/endpoints/processList.ts +20 -29
  476. package/src/rtk/endpoints/processListSummary.ts +18 -34
  477. package/src/rtk/endpoints/processStatusCounts.ts +16 -16
  478. package/src/rtk/endpoints/processSteps.ts +17 -27
  479. package/src/rtk/endpoints/productsSummary.ts +21 -26
  480. package/src/rtk/endpoints/relatedSubscriptions.ts +27 -38
  481. package/src/rtk/endpoints/search.ts +63 -82
  482. package/src/rtk/endpoints/settings.ts +110 -119
  483. package/src/rtk/endpoints/startOptions.ts +64 -80
  484. package/src/rtk/endpoints/streamMessages.ts +102 -125
  485. package/src/rtk/endpoints/subscriptionActions.ts +14 -24
  486. package/src/rtk/endpoints/subscriptionDetail.ts +23 -35
  487. package/src/rtk/endpoints/subscriptionInUseByRelationsList.ts +22 -32
  488. package/src/rtk/endpoints/subscriptionList.ts +19 -31
  489. package/src/rtk/endpoints/subscriptionListMutation.ts +65 -81
  490. package/src/rtk/endpoints/subscriptionListSummary.ts +23 -29
  491. package/src/rtk/endpoints/translations.ts +16 -19
  492. package/src/rtk/endpoints/versions.ts +9 -9
  493. package/src/rtk/slices/customApis.ts +8 -10
  494. package/src/rtk/slices/orchestratorComponentOverride.ts +20 -22
  495. package/src/rtk/slices/orchestratorConfig.ts +7 -10
  496. package/src/rtk/slices/pydanticForm.ts +7 -9
  497. package/src/rtk/slices/toastMessages.ts +26 -36
  498. package/src/rtk/store.ts +35 -44
  499. package/src/rtk/storeProvider.tsx +20 -21
  500. package/src/rtk/utils.spec.ts +68 -68
  501. package/src/rtk/utils.ts +72 -80
  502. package/src/rtk/wfoGraphqlRequestBaseQuery.ts +44 -63
  503. package/src/theme/baseStyles/formFieldsBaseStyle.ts +12 -12
  504. package/src/theme/wfoThemeModifications.ts +92 -95
  505. package/src/types/forms.ts +20 -20
  506. package/src/types/search.ts +89 -94
  507. package/src/types/types.ts +378 -403
  508. package/src/utils/cacheTag.spec.ts +8 -8
  509. package/src/utils/cacheTag.ts +7 -7
  510. package/src/utils/compareVersions.spec.ts +38 -116
  511. package/src/utils/compareVersions.ts +28 -48
  512. package/src/utils/csvDownload.ts +68 -83
  513. package/src/utils/date.spec.ts +142 -179
  514. package/src/utils/date.ts +64 -84
  515. package/src/utils/environmentVariables.spec.ts +12 -12
  516. package/src/utils/environmentVariables.ts +7 -7
  517. package/src/utils/filterData.spec.ts +18 -20
  518. package/src/utils/filterData.ts +7 -10
  519. package/src/utils/getDefaultTableConfig.ts +91 -113
  520. package/src/utils/getEnvironmentVariables.spec.ts +30 -32
  521. package/src/utils/getEnvironmentVariables.ts +19 -22
  522. package/src/utils/getObjectKeys.ts +2 -3
  523. package/src/utils/getProductNamesFromProcess.spec.ts +125 -127
  524. package/src/utils/getProductNamesFromProcess.ts +7 -9
  525. package/src/utils/getQueryParams.spec.ts +31 -34
  526. package/src/utils/getQueryParams.ts +9 -12
  527. package/src/utils/getQueryUrl.spec.ts +4 -4
  528. package/src/utils/getQueryUrl.ts +3 -3
  529. package/src/utils/getQueryVariablesForExport.spec.ts +12 -12
  530. package/src/utils/getQueryVariablesForExport.ts +4 -6
  531. package/src/utils/getStatusBadgeColor.ts +13 -13
  532. package/src/utils/getToastMessage.spec.ts +20 -20
  533. package/src/utils/getToastMessage.ts +24 -28
  534. package/src/utils/getTokenName.spec.ts +16 -16
  535. package/src/utils/getTokenName.ts +10 -10
  536. package/src/utils/getTypedFieldFromObject.spec.ts +13 -13
  537. package/src/utils/getTypedFieldFromObject.ts +5 -8
  538. package/src/utils/onlyUnique.spec.ts +15 -15
  539. package/src/utils/onlyUnique.ts +1 -1
  540. package/src/utils/optionalArray.spec.ts +65 -78
  541. package/src/utils/optionalArray.ts +10 -16
  542. package/src/utils/resultFlattener.spec.ts +40 -43
  543. package/src/utils/resultFlattener.ts +10 -21
  544. package/src/utils/string.spec.ts +133 -133
  545. package/src/utils/strings.ts +11 -11
  546. package/src/utils/toObjectWithSerializedValues.spec.ts +24 -24
  547. package/src/utils/toObjectWithSerializedValues.ts +9 -15
  548. package/src/utils/toObjectWithSortedKeys.ts +21 -24
  549. package/src/utils/toSortedObjectKeys.spec.ts +25 -29
  550. package/src/utils/uuid.spec.ts +16 -16
  551. package/src/utils/uuid.ts +2 -5
  552. package/tsconfig.build.json +10 -16
  553. package/tsconfig.json +10 -16
  554. package/tsup.config.ts +10 -10
@@ -1,520 +1,473 @@
1
1
  import { EuiThemeComputed } from '@elastic/eui';
2
2
 
3
3
  import {
4
- FieldValue,
5
- ProcessStatus,
6
- ProductBlockInstance,
7
- SubscriptionAction,
8
- SubscriptionDetailProcess,
9
- WorkflowTarget,
4
+ FieldValue,
5
+ ProcessStatus,
6
+ ProductBlockInstance,
7
+ SubscriptionAction,
8
+ SubscriptionDetailProcess,
9
+ WorkflowTarget,
10
10
  } from '../../../types';
11
11
  import {
12
- flattenArrayProps,
13
- getFieldFromProductBlockInstanceValues,
14
- getLastUncompletedProcess,
15
- getLatestTaskDate,
16
- getProductBlockTitle,
17
- getWorkflowTargetColor,
18
- getWorkflowTargetIconContent,
19
- mapProductBlockInstancesToEuiSelectableOptions,
20
- parseErrorDetail,
12
+ flattenArrayProps,
13
+ getFieldFromProductBlockInstanceValues,
14
+ getLastUncompletedProcess,
15
+ getLatestTaskDate,
16
+ getProductBlockTitle,
17
+ getWorkflowTargetColor,
18
+ getWorkflowTargetIconContent,
19
+ mapProductBlockInstancesToEuiSelectableOptions,
20
+ parseErrorDetail,
21
21
  } from './utils';
22
22
 
23
23
  describe('getFieldFromProductBlockInstanceValues()', () => {
24
- const instanceValues: FieldValue[] = [
25
- { field: 'field1', value: 'value1' },
26
- { field: 'field2', value: 'value2' },
27
- ];
28
-
29
- it('returns field value when field matches', () => {
30
- const result = getFieldFromProductBlockInstanceValues(
31
- instanceValues,
32
- 'field1',
33
- );
34
- expect(result).toEqual('value1');
35
- });
36
- it('returns empty string when field is not found', () => {
37
- const result = getFieldFromProductBlockInstanceValues(
38
- instanceValues,
39
- 'unknonw_field',
40
- );
41
- expect(result).toEqual('');
42
- });
24
+ const instanceValues: FieldValue[] = [
25
+ { field: 'field1', value: 'value1' },
26
+ { field: 'field2', value: 'value2' },
27
+ ];
28
+
29
+ it('returns field value when field matches', () => {
30
+ const result = getFieldFromProductBlockInstanceValues(instanceValues, 'field1');
31
+ expect(result).toEqual('value1');
32
+ });
33
+ it('returns empty string when field is not found', () => {
34
+ const result = getFieldFromProductBlockInstanceValues(instanceValues, 'unknonw_field');
35
+ expect(result).toEqual('');
36
+ });
43
37
  });
44
38
 
45
39
  describe('getProductBlockTitle()', () => {
46
- const instanceValues: FieldValue[] = [
47
- { field: 'field1', value: 'value1' },
48
- { field: 'field2', value: 'value2' },
40
+ const instanceValues: FieldValue[] = [
41
+ { field: 'field1', value: 'value1' },
42
+ { field: 'field2', value: 'value2' },
43
+ ];
44
+
45
+ it('returns name value there is no title field', () => {
46
+ const valuesWithName = [...instanceValues, { field: 'name', value: 'name_value' }];
47
+ expect(getProductBlockTitle(valuesWithName)).toBe('name_value');
48
+ });
49
+
50
+ it('returns title field when there is a title field', () => {
51
+ const valuesWithNameAndTitle = [
52
+ ...instanceValues,
53
+ { field: 'name', value: 'name_value' },
54
+ { field: 'title', value: 'title_value' },
49
55
  ];
56
+ expect(getProductBlockTitle(valuesWithNameAndTitle)).toBe('title_value');
57
+ });
50
58
 
51
- it('returns name value there is no title field', () => {
52
- const valuesWithName = [
53
- ...instanceValues,
54
- { field: 'name', value: 'name_value' },
55
- ];
56
- expect(getProductBlockTitle(valuesWithName)).toBe('name_value');
57
- });
58
-
59
- it('returns title field when there is a title field', () => {
60
- const valuesWithNameAndTitle = [
61
- ...instanceValues,
62
- { field: 'name', value: 'name_value' },
63
- { field: 'title', value: 'title_value' },
64
- ];
65
- expect(getProductBlockTitle(valuesWithNameAndTitle)).toBe(
66
- 'title_value',
67
- );
68
- });
69
-
70
- it('returns empty string when there are no title or name fields', () => {
71
- expect(getProductBlockTitle(instanceValues)).toBe('');
72
- });
59
+ it('returns empty string when there are no title or name fields', () => {
60
+ expect(getProductBlockTitle(instanceValues)).toBe('');
61
+ });
73
62
  });
74
63
 
75
64
  describe('flattenArrayProps', () => {
76
- it('should flatten an object with array values into a comma-separated string', () => {
77
- const action: SubscriptionAction = {
78
- name: 'action name',
79
- description: 'action description',
80
- usable_when: ['Status1', 'Status2', 'Status3'],
81
- };
82
-
83
- const result = flattenArrayProps(action);
84
-
85
- expect(result).toEqual({
86
- name: 'action name',
87
- description: 'action description',
88
- usable_when: 'Status1, Status2, Status3',
89
- });
90
- });
91
-
92
- it('should handle an object with non-array values', () => {
93
- const action: SubscriptionAction = {
94
- name: 'action name',
95
- description: 'action description',
96
- };
97
- const result = flattenArrayProps(action);
98
- expect(result).toEqual({
99
- name: 'action name',
100
- description: 'action description',
101
- });
102
- });
103
- });
104
-
105
- describe('getWorkflowTargetColor', () => {
106
- it('should return textSuccess color for CREATE', () => {
107
- const theme = {
108
- colors: {
109
- textSuccess: 'textSuccessColor',
110
- },
111
- } as EuiThemeComputed;
112
-
113
- expect(getWorkflowTargetColor(WorkflowTarget.CREATE, theme)).toBe(
114
- 'textSuccessColor',
115
- );
116
- });
117
-
118
- it('should return textPrimary color for MODIFY', () => {
119
- const theme = {
120
- colors: {
121
- textPrimary: 'textPrimaryColor',
122
- },
123
- } as EuiThemeComputed;
124
-
125
- expect(getWorkflowTargetColor(WorkflowTarget.MODIFY, theme)).toBe(
126
- 'textPrimaryColor',
127
- );
128
- });
65
+ it('should flatten an object with array values into a comma-separated string', () => {
66
+ const action: SubscriptionAction = {
67
+ name: 'action name',
68
+ description: 'action description',
69
+ usable_when: ['Status1', 'Status2', 'Status3'],
70
+ };
129
71
 
130
- it('should return warning color for SYSTEM', () => {
131
- const theme = {
132
- colors: {
133
- warning: 'warningColor',
134
- },
135
- } as EuiThemeComputed;
72
+ const result = flattenArrayProps(action);
136
73
 
137
- expect(getWorkflowTargetColor(WorkflowTarget.SYSTEM, theme)).toBe(
138
- 'warningColor',
139
- );
74
+ expect(result).toEqual({
75
+ name: 'action name',
76
+ description: 'action description',
77
+ usable_when: 'Status1, Status2, Status3',
140
78
  });
79
+ });
141
80
 
142
- it('should return danger color for TERMINATE', () => {
143
- const theme = {
144
- colors: {
145
- danger: 'dangerColor',
146
- },
147
- } as EuiThemeComputed;
148
-
149
- expect(getWorkflowTargetColor(WorkflowTarget.TERMINATE, theme)).toBe(
150
- 'dangerColor',
151
- );
81
+ it('should handle an object with non-array values', () => {
82
+ const action: SubscriptionAction = {
83
+ name: 'action name',
84
+ description: 'action description',
85
+ };
86
+ const result = flattenArrayProps(action);
87
+ expect(result).toEqual({
88
+ name: 'action name',
89
+ description: 'action description',
152
90
  });
91
+ });
92
+ });
153
93
 
154
- it('should return body color for unknown targets', () => {
155
- const theme = {
156
- colors: {
157
- backgroundBaseDisabled: 'gray',
158
- },
159
- } as EuiThemeComputed;
160
-
161
- // Test with an unknown target
162
- expect(
163
- getWorkflowTargetColor('UNKNOWN_TARGET' as WorkflowTarget, theme),
164
- ).toBe('gray');
165
- });
94
+ describe('getWorkflowTargetColor', () => {
95
+ it('should return textSuccess color for CREATE', () => {
96
+ const theme = {
97
+ colors: {
98
+ textSuccess: 'textSuccessColor',
99
+ },
100
+ } as EuiThemeComputed;
101
+
102
+ expect(getWorkflowTargetColor(WorkflowTarget.CREATE, theme)).toBe('textSuccessColor');
103
+ });
104
+
105
+ it('should return textPrimary color for MODIFY', () => {
106
+ const theme = {
107
+ colors: {
108
+ textPrimary: 'textPrimaryColor',
109
+ },
110
+ } as EuiThemeComputed;
111
+
112
+ expect(getWorkflowTargetColor(WorkflowTarget.MODIFY, theme)).toBe('textPrimaryColor');
113
+ });
114
+
115
+ it('should return warning color for SYSTEM', () => {
116
+ const theme = {
117
+ colors: {
118
+ warning: 'warningColor',
119
+ },
120
+ } as EuiThemeComputed;
121
+
122
+ expect(getWorkflowTargetColor(WorkflowTarget.SYSTEM, theme)).toBe('warningColor');
123
+ });
124
+
125
+ it('should return danger color for TERMINATE', () => {
126
+ const theme = {
127
+ colors: {
128
+ danger: 'dangerColor',
129
+ },
130
+ } as EuiThemeComputed;
131
+
132
+ expect(getWorkflowTargetColor(WorkflowTarget.TERMINATE, theme)).toBe('dangerColor');
133
+ });
134
+
135
+ it('should return body color for unknown targets', () => {
136
+ const theme = {
137
+ colors: {
138
+ backgroundBaseDisabled: 'gray',
139
+ },
140
+ } as EuiThemeComputed;
141
+
142
+ // Test with an unknown target
143
+ expect(getWorkflowTargetColor('UNKNOWN_TARGET' as WorkflowTarget, theme)).toBe('gray');
144
+ });
166
145
  });
167
146
 
168
147
  describe('getWorkflowTargetIconContent', () => {
169
- it('should return C for CREATE', () => {
170
- expect(getWorkflowTargetIconContent(WorkflowTarget.CREATE)).toBe('C');
171
- });
172
-
173
- it('should return T for SYSTEM', () => {
174
- expect(getWorkflowTargetIconContent(WorkflowTarget.SYSTEM)).toBe('T');
175
- });
176
-
177
- it('should return X for TERMINATE', () => {
178
- expect(getWorkflowTargetIconContent(WorkflowTarget.TERMINATE)).toBe(
179
- 'X',
180
- );
181
- });
182
-
183
- it('should return M for unknown targets', () => {
184
- // Test with an unknown target
185
- expect(
186
- getWorkflowTargetIconContent('UNKNOWN_TARGET' as WorkflowTarget),
187
- ).toBe('M');
188
- });
148
+ it('should return C for CREATE', () => {
149
+ expect(getWorkflowTargetIconContent(WorkflowTarget.CREATE)).toBe('C');
150
+ });
151
+
152
+ it('should return T for SYSTEM', () => {
153
+ expect(getWorkflowTargetIconContent(WorkflowTarget.SYSTEM)).toBe('T');
154
+ });
155
+
156
+ it('should return X for TERMINATE', () => {
157
+ expect(getWorkflowTargetIconContent(WorkflowTarget.TERMINATE)).toBe('X');
158
+ });
159
+
160
+ it('should return M for unknown targets', () => {
161
+ // Test with an unknown target
162
+ expect(getWorkflowTargetIconContent('UNKNOWN_TARGET' as WorkflowTarget)).toBe('M');
163
+ });
189
164
  });
190
165
 
191
166
  const testProcess: SubscriptionDetailProcess = {
192
- workflowName: 'testWorkflow 1',
193
- lastStatus: ProcessStatus.COMPLETED,
194
- workflowTarget: WorkflowTarget.MODIFY,
195
- createdBy: 'testUser 1',
196
- processId: 'testProcessId 1',
197
- startedAt: '2021-01-01T00:00:00Z',
198
- isTask: false,
167
+ workflowName: 'testWorkflow 1',
168
+ lastStatus: ProcessStatus.COMPLETED,
169
+ workflowTarget: WorkflowTarget.MODIFY,
170
+ createdBy: 'testUser 1',
171
+ processId: 'testProcessId 1',
172
+ startedAt: '2021-01-01T00:00:00Z',
173
+ isTask: false,
199
174
  };
200
175
 
201
176
  describe('getLastUncompletedProcess', () => {
202
- it('Returns empty string with empty process array', () => {
203
- const processes: SubscriptionDetailProcess[] = [];
177
+ it('Returns empty string with empty process array', () => {
178
+ const processes: SubscriptionDetailProcess[] = [];
179
+
180
+ const getLastUncompletedProcessResult = getLastUncompletedProcess(processes);
181
+
182
+ expect(getLastUncompletedProcessResult).toBe(undefined);
183
+ });
184
+
185
+ it('Return undefined string when there is only completed process', () => {
186
+ const completedProcesses = [
187
+ {
188
+ ...testProcess,
189
+ lastStatus: ProcessStatus.COMPLETED,
190
+ startedAt: '2021-01-01T00:00:00Z',
191
+ },
192
+ {
193
+ ...testProcess,
194
+ lastStatus: ProcessStatus.COMPLETED,
195
+ startedAt: '2021-02-01T00:00:00Z',
196
+ },
197
+ {
198
+ ...testProcess,
199
+ lastStatus: ProcessStatus.COMPLETED,
200
+ startedAt: '2021-03-01T00:00:00Z',
201
+ },
202
+ ];
204
203
 
205
- const getLastUncompletedProcessResult =
206
- getLastUncompletedProcess(processes);
204
+ const lastUncompletedProcess = getLastUncompletedProcess(completedProcesses);
207
205
 
208
- expect(getLastUncompletedProcessResult).toBe(undefined);
209
- });
206
+ expect(lastUncompletedProcess).toBe(undefined);
207
+ });
208
+ it('Returns uncompleted process from list of processes', () => {
209
+ const failedProcess = {
210
+ ...testProcess,
211
+ lastStatus: ProcessStatus.FAILED,
212
+ processId: 'FAILED_PROCESS_ID',
213
+ startedAt: '2021-02-01T00:00:00Z',
214
+ };
210
215
 
211
- it('Return undefined string when there is only completed process', () => {
212
- const completedProcesses = [
213
- {
214
- ...testProcess,
215
- lastStatus: ProcessStatus.COMPLETED,
216
- startedAt: '2021-01-01T00:00:00Z',
217
- },
218
- {
219
- ...testProcess,
220
- lastStatus: ProcessStatus.COMPLETED,
221
- startedAt: '2021-02-01T00:00:00Z',
222
- },
223
- {
224
- ...testProcess,
225
- lastStatus: ProcessStatus.COMPLETED,
226
- startedAt: '2021-03-01T00:00:00Z',
227
- },
228
- ];
229
-
230
- const lastUncompletedProcess =
231
- getLastUncompletedProcess(completedProcesses);
232
-
233
- expect(lastUncompletedProcess).toBe(undefined);
234
- });
235
- it('Returns uncompleted process from list of processes', () => {
236
- const failedProcess = {
237
- ...testProcess,
238
- lastStatus: ProcessStatus.FAILED,
239
- processId: 'FAILED_PROCESS_ID',
240
- startedAt: '2021-02-01T00:00:00Z',
241
- };
242
-
243
- const failedProcesses = [
244
- {
245
- ...testProcess,
246
- lastStatus: ProcessStatus.COMPLETED,
247
- startedAt: '2021-01-01T00:00:00Z',
248
- },
249
- failedProcess,
250
- {
251
- ...testProcess,
252
- lastStatus: ProcessStatus.COMPLETED,
253
- startedAt: '2021-03-01T00:00:00Z',
254
- },
255
- ];
256
-
257
- const lastUncompletedProcess =
258
- getLastUncompletedProcess(failedProcesses);
259
-
260
- expect(lastUncompletedProcess?.processId).toBe('FAILED_PROCESS_ID');
261
- });
216
+ const failedProcesses = [
217
+ {
218
+ ...testProcess,
219
+ lastStatus: ProcessStatus.COMPLETED,
220
+ startedAt: '2021-01-01T00:00:00Z',
221
+ },
222
+ failedProcess,
223
+ {
224
+ ...testProcess,
225
+ lastStatus: ProcessStatus.COMPLETED,
226
+ startedAt: '2021-03-01T00:00:00Z',
227
+ },
228
+ ];
262
229
 
263
- it('Returns last failed process if there are more uncompleted processes', () => {
264
- const failedProcess = {
265
- ...testProcess,
266
- lastStatus: ProcessStatus.FAILED,
267
- processId: 'FAILED_PROCESS_1',
268
- startedAt: '2021-02-01T00:00:00Z',
269
- };
270
-
271
- const failedProcess2 = {
272
- ...testProcess,
273
- lastStatus: ProcessStatus.SUSPENDED,
274
- processId: 'FAILED_PROCESS_ID_2',
275
- startedAt: '2021-04-01T00:00:00Z',
276
- };
277
-
278
- const failedProcesses = [
279
- {
280
- ...testProcess,
281
- lastStatus: ProcessStatus.COMPLETED,
282
- startedAt: '2021-01-01T00:00:00Z',
283
- },
284
- failedProcess,
285
- {
286
- ...testProcess,
287
- lastStatus: ProcessStatus.COMPLETED,
288
- startedAt: '2021-03-01T00:00:00Z',
289
- },
290
- failedProcess2,
291
- ];
292
-
293
- const lastUncompletedProcess =
294
- getLastUncompletedProcess(failedProcesses);
295
-
296
- expect(lastUncompletedProcess?.processId).toBe('FAILED_PROCESS_ID_2');
297
- });
230
+ const lastUncompletedProcess = getLastUncompletedProcess(failedProcesses);
231
+
232
+ expect(lastUncompletedProcess?.processId).toBe('FAILED_PROCESS_ID');
233
+ });
234
+
235
+ it('Returns last failed process if there are more uncompleted processes', () => {
236
+ const failedProcess = {
237
+ ...testProcess,
238
+ lastStatus: ProcessStatus.FAILED,
239
+ processId: 'FAILED_PROCESS_1',
240
+ startedAt: '2021-02-01T00:00:00Z',
241
+ };
242
+
243
+ const failedProcess2 = {
244
+ ...testProcess,
245
+ lastStatus: ProcessStatus.SUSPENDED,
246
+ processId: 'FAILED_PROCESS_ID_2',
247
+ startedAt: '2021-04-01T00:00:00Z',
248
+ };
249
+
250
+ const failedProcesses = [
251
+ {
252
+ ...testProcess,
253
+ lastStatus: ProcessStatus.COMPLETED,
254
+ startedAt: '2021-01-01T00:00:00Z',
255
+ },
256
+ failedProcess,
257
+ {
258
+ ...testProcess,
259
+ lastStatus: ProcessStatus.COMPLETED,
260
+ startedAt: '2021-03-01T00:00:00Z',
261
+ },
262
+ failedProcess2,
263
+ ];
264
+
265
+ const lastUncompletedProcess = getLastUncompletedProcess(failedProcesses);
266
+
267
+ expect(lastUncompletedProcess?.processId).toBe('FAILED_PROCESS_ID_2');
268
+ });
298
269
  });
299
270
 
300
271
  describe('getLatestTaskDate', () => {
301
- it('Returns empty string on empty array', () => {
302
- const tasks: SubscriptionDetailProcess[] = [];
272
+ it('Returns empty string on empty array', () => {
273
+ const tasks: SubscriptionDetailProcess[] = [];
303
274
 
304
- const lastTask = getLatestTaskDate(tasks);
275
+ const lastTask = getLatestTaskDate(tasks);
305
276
 
306
- expect(lastTask).toBe('');
307
- });
277
+ expect(lastTask).toBe('');
278
+ });
308
279
 
309
- it('Returns empty string if there are no tasks among the processes', () => {
310
- const workflowsOnly = [
311
- { ...testProcess, isTask: false },
312
- { ...testProcess, isTask: false },
313
- ];
280
+ it('Returns empty string if there are no tasks among the processes', () => {
281
+ const workflowsOnly = [
282
+ { ...testProcess, isTask: false },
283
+ { ...testProcess, isTask: false },
284
+ ];
314
285
 
315
- const lastTask = getLatestTaskDate(workflowsOnly);
286
+ const lastTask = getLatestTaskDate(workflowsOnly);
316
287
 
317
- expect(lastTask).toBe('');
318
- });
288
+ expect(lastTask).toBe('');
289
+ });
319
290
 
320
- it('Returns date of tasks among the processes', () => {
321
- const workflowsAndTask = [
322
- { ...testProcess, isTask: false },
323
- { ...testProcess, isTask: true, startedAt: '2021-01-01T00:00:00Z' },
324
- { ...testProcess, isTask: false },
325
- ];
291
+ it('Returns date of tasks among the processes', () => {
292
+ const workflowsAndTask = [
293
+ { ...testProcess, isTask: false },
294
+ { ...testProcess, isTask: true, startedAt: '2021-01-01T00:00:00Z' },
295
+ { ...testProcess, isTask: false },
296
+ ];
326
297
 
327
- const lastTaskDate = getLatestTaskDate(workflowsAndTask);
298
+ const lastTaskDate = getLatestTaskDate(workflowsAndTask);
299
+
300
+ expect(lastTaskDate).toBe('2021-01-01T00:00:00Z');
301
+ });
302
+
303
+ it('Returns date of last task among the processes if there are more tasks', () => {
304
+ const workflowsAndTask = [
305
+ {
306
+ ...testProcess,
307
+ isTask: false,
308
+ startedAt: '2021-01-01T00:00:00Z',
309
+ },
310
+ { ...testProcess, isTask: true, startedAt: '2021-02-01T00:00:00Z' },
311
+ {
312
+ ...testProcess,
313
+ isTask: false,
314
+ startedAt: '2021-03-01T00:00:00Z',
315
+ },
316
+ { ...testProcess, isTask: true, startedAt: '2021-04-01T00:00:00Z' },
317
+ ];
328
318
 
329
- expect(lastTaskDate).toBe('2021-01-01T00:00:00Z');
330
- });
319
+ const lastTaskDate = getLatestTaskDate(workflowsAndTask);
331
320
 
332
- it('Returns date of last task among the processes if there are more tasks', () => {
333
- const workflowsAndTask = [
334
- {
335
- ...testProcess,
336
- isTask: false,
337
- startedAt: '2021-01-01T00:00:00Z',
338
- },
339
- { ...testProcess, isTask: true, startedAt: '2021-02-01T00:00:00Z' },
340
- {
341
- ...testProcess,
342
- isTask: false,
343
- startedAt: '2021-03-01T00:00:00Z',
344
- },
345
- { ...testProcess, isTask: true, startedAt: '2021-04-01T00:00:00Z' },
346
- ];
347
-
348
- const lastTaskDate = getLatestTaskDate(workflowsAndTask);
349
-
350
- expect(lastTaskDate).toBe('2021-04-01T00:00:00Z');
351
- });
321
+ expect(lastTaskDate).toBe('2021-04-01T00:00:00Z');
322
+ });
352
323
  });
353
324
 
354
325
  describe('mapProductBlockInstancesToEuiSelectableOptions', () => {
355
- const baseProductBlockInstance: Omit<
356
- ProductBlockInstance,
357
- 'id' | 'productBlockInstanceValues'
358
- > = {
359
- subscriptionInstanceId: '',
360
- parent: null,
361
- inUseByRelations: [],
362
- subscription: {
363
- subscriptionId: '',
364
- description: '',
326
+ const baseProductBlockInstance: Omit<ProductBlockInstance, 'id' | 'productBlockInstanceValues'> = {
327
+ subscriptionInstanceId: '',
328
+ parent: null,
329
+ inUseByRelations: [],
330
+ subscription: {
331
+ subscriptionId: '',
332
+ description: '',
333
+ },
334
+ };
335
+
336
+ it('maps product block instances to EuiSelectableOptions', () => {
337
+ // Given
338
+ const productBlockInstances: ProductBlockInstance[] = [
339
+ {
340
+ ...baseProductBlockInstance,
341
+ id: 0,
342
+ productBlockInstanceValues: [
343
+ {
344
+ field: 'name',
345
+ value: 'test1',
346
+ },
347
+ ],
348
+ },
349
+ {
350
+ ...baseProductBlockInstance,
351
+ id: 1,
352
+ productBlockInstanceValues: [
353
+ {
354
+ field: 'name',
355
+ value: 'test2',
356
+ },
357
+ ],
358
+ },
359
+ ];
360
+
361
+ // When
362
+ const result = mapProductBlockInstancesToEuiSelectableOptions(productBlockInstances);
363
+
364
+ // Then
365
+ expect(result).toEqual([
366
+ {
367
+ label: 'test1',
368
+ data: {
369
+ ids: [0],
365
370
  },
366
- };
371
+ },
372
+ {
373
+ label: 'test2',
374
+ data: {
375
+ ids: [1],
376
+ },
377
+ },
378
+ ]);
379
+ });
380
+
381
+ it('maps product block instances to EuiSelectableOptions and groups ids by name', () => {
382
+ // Given
383
+ const productBlockInstances: ProductBlockInstance[] = [
384
+ {
385
+ ...baseProductBlockInstance,
386
+ id: 0,
387
+ productBlockInstanceValues: [
388
+ {
389
+ field: 'name',
390
+ value: 'test1',
391
+ },
392
+ ],
393
+ },
394
+ {
395
+ ...baseProductBlockInstance,
396
+ id: 1,
397
+ productBlockInstanceValues: [
398
+ {
399
+ field: 'name',
400
+ value: 'test2',
401
+ },
402
+ ],
403
+ },
404
+ {
405
+ ...baseProductBlockInstance,
406
+ id: 2,
407
+ productBlockInstanceValues: [
408
+ {
409
+ field: 'name',
410
+ value: 'test1',
411
+ },
412
+ ],
413
+ },
414
+ ];
367
415
 
368
- it('maps product block instances to EuiSelectableOptions', () => {
369
- // Given
370
- const productBlockInstances: ProductBlockInstance[] = [
371
- {
372
- ...baseProductBlockInstance,
373
- id: 0,
374
- productBlockInstanceValues: [
375
- {
376
- field: 'name',
377
- value: 'test1',
378
- },
379
- ],
380
- },
381
- {
382
- ...baseProductBlockInstance,
383
- id: 1,
384
- productBlockInstanceValues: [
385
- {
386
- field: 'name',
387
- value: 'test2',
388
- },
389
- ],
390
- },
391
- ];
392
-
393
- // When
394
- const result = mapProductBlockInstancesToEuiSelectableOptions(
395
- productBlockInstances,
396
- );
397
-
398
- // Then
399
- expect(result).toEqual([
400
- {
401
- label: 'test1',
402
- data: {
403
- ids: [0],
404
- },
405
- },
406
- {
407
- label: 'test2',
408
- data: {
409
- ids: [1],
410
- },
411
- },
412
- ]);
413
- });
416
+ // When
417
+ const result = mapProductBlockInstancesToEuiSelectableOptions(productBlockInstances);
414
418
 
415
- it('maps product block instances to EuiSelectableOptions and groups ids by name', () => {
416
- // Given
417
- const productBlockInstances: ProductBlockInstance[] = [
418
- {
419
- ...baseProductBlockInstance,
420
- id: 0,
421
- productBlockInstanceValues: [
422
- {
423
- field: 'name',
424
- value: 'test1',
425
- },
426
- ],
427
- },
428
- {
429
- ...baseProductBlockInstance,
430
- id: 1,
431
- productBlockInstanceValues: [
432
- {
433
- field: 'name',
434
- value: 'test2',
435
- },
436
- ],
437
- },
438
- {
439
- ...baseProductBlockInstance,
440
- id: 2,
441
- productBlockInstanceValues: [
442
- {
443
- field: 'name',
444
- value: 'test1',
445
- },
446
- ],
447
- },
448
- ];
449
-
450
- // When
451
- const result = mapProductBlockInstancesToEuiSelectableOptions(
452
- productBlockInstances,
453
- );
454
-
455
- // Then
456
- expect(result).toEqual([
457
- {
458
- label: 'test1',
459
- data: {
460
- ids: [0, 2],
461
- },
462
- },
463
- {
464
- label: 'test2',
465
- data: {
466
- ids: [1],
467
- },
468
- },
469
- ]);
470
- });
419
+ // Then
420
+ expect(result).toEqual([
421
+ {
422
+ label: 'test1',
423
+ data: {
424
+ ids: [0, 2],
425
+ },
426
+ },
427
+ {
428
+ label: 'test2',
429
+ data: {
430
+ ids: [1],
431
+ },
432
+ },
433
+ ]);
434
+ });
471
435
  });
472
436
 
473
437
  describe('parseErrorDetail', () => {
474
- it('parses a single UUID inside brackets', () => {
475
- const input =
476
- "Subscription 123 has still failed processes with id's: ['11111111-1111-1111-1111-111111111111']";
438
+ it('parses a single UUID inside brackets', () => {
439
+ const input = "Subscription 123 has still failed processes with id's: ['11111111-1111-1111-1111-111111111111']";
477
440
 
478
- const { failedIds, filteredInput } = parseErrorDetail(input);
441
+ const { failedIds, filteredInput } = parseErrorDetail(input);
479
442
 
480
- expect(failedIds).toEqual(['11111111-1111-1111-1111-111111111111']);
481
- expect(filteredInput).toBe(
482
- "Subscription 123 has still failed processes with id's:",
483
- );
484
- });
443
+ expect(failedIds).toEqual(['11111111-1111-1111-1111-111111111111']);
444
+ expect(filteredInput).toBe("Subscription 123 has still failed processes with id's:");
445
+ });
485
446
 
486
- it('parses multiple UUIDs inside brackets', () => {
487
- const input =
488
- "Failed processes: ['11111111-1111-1111-1111-111111111111', '22222222-2222-2222-2222-222222222222']";
447
+ it('parses multiple UUIDs inside brackets', () => {
448
+ const input = "Failed processes: ['11111111-1111-1111-1111-111111111111', '22222222-2222-2222-2222-222222222222']";
489
449
 
490
- const { failedIds, filteredInput } = parseErrorDetail(input);
450
+ const { failedIds, filteredInput } = parseErrorDetail(input);
491
451
 
492
- expect(failedIds).toEqual([
493
- '11111111-1111-1111-1111-111111111111',
494
- '22222222-2222-2222-2222-222222222222',
495
- ]);
496
- expect(filteredInput).toBe('Failed processes:');
497
- });
452
+ expect(failedIds).toEqual(['11111111-1111-1111-1111-111111111111', '22222222-2222-2222-2222-222222222222']);
453
+ expect(filteredInput).toBe('Failed processes:');
454
+ });
498
455
 
499
- it('returns empty array when no brackets present', () => {
500
- const input = 'No failed processes.';
456
+ it('returns empty array when no brackets present', () => {
457
+ const input = 'No failed processes.';
501
458
 
502
- const { failedIds, filteredInput } = parseErrorDetail(input);
459
+ const { failedIds, filteredInput } = parseErrorDetail(input);
503
460
 
504
- expect(failedIds).toEqual([]);
505
- expect(filteredInput).toBe('No failed processes.');
506
- });
461
+ expect(failedIds).toEqual([]);
462
+ expect(filteredInput).toBe('No failed processes.');
463
+ });
507
464
 
508
- it('ignores extra spaces or commas inside brackets', () => {
509
- const input =
510
- "Errors: [ '11111111-1111-1111-1111-111111111111' , '22222222-2222-2222-2222-222222222222' ]";
465
+ it('ignores extra spaces or commas inside brackets', () => {
466
+ const input = "Errors: [ '11111111-1111-1111-1111-111111111111' , '22222222-2222-2222-2222-222222222222' ]";
511
467
 
512
- const { failedIds, filteredInput } = parseErrorDetail(input);
468
+ const { failedIds, filteredInput } = parseErrorDetail(input);
513
469
 
514
- expect(failedIds).toEqual([
515
- '11111111-1111-1111-1111-111111111111',
516
- '22222222-2222-2222-2222-222222222222',
517
- ]);
518
- expect(filteredInput).toBe('Errors:');
519
- });
470
+ expect(failedIds).toEqual(['11111111-1111-1111-1111-111111111111', '22222222-2222-2222-2222-222222222222']);
471
+ expect(filteredInput).toBe('Errors:');
472
+ });
520
473
  });