@orchestrator-ui/orchestrator-ui-components 7.4.0 → 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 +426 -415
  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 +3259 -7616
  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
@@ -3,58 +3,47 @@
3
3
  // 2 - queryString is empty
4
4
  // 3 - fieldName does not exist in query string
5
5
  // 4 - fieldName already exists in query string
6
- export const updateQueryString = (
7
- queryString: string,
8
- fieldName: string,
9
- value: string,
10
- ) => {
11
- // 1 - Returning the exising query string when either fieldName or value is empty
12
- if (fieldName === '' || value === '') {
13
- return queryString;
14
- }
6
+ export const updateQueryString = (queryString: string, fieldName: string, value: string) => {
7
+ // 1 - Returning the exising query string when either fieldName or value is empty
8
+ if (fieldName === '' || value === '') {
9
+ return queryString;
10
+ }
15
11
 
16
- // 2 - Empty query string returning directly fieldName:value
17
- if (queryString === '') {
18
- return `${fieldName}:${toQueryValue(value)}`;
19
- }
12
+ // 2 - Empty query string returning directly fieldName:value
13
+ if (queryString === '') {
14
+ return `${fieldName}:${toQueryValue(value)}`;
15
+ }
20
16
 
21
- // Finding fieldName with values in queryString in this order:
22
- // - Value surrounded with double quotes
23
- // field:"value"
24
- // - Value is surrounded with brackets
25
- // field:(value1|value2)
26
- // field:("value1 with spaces"|value2|value3)
27
- // - Value is a single word (no quotes and no brackets)
28
- // field:value
29
- const fieldRegex = new RegExp(
30
- String.raw`(${fieldName}):(".*?"|\(.*?\)|[^()|!:<>*"\s]+\*?)`,
31
- 'i',
32
- );
33
- const match = queryString.match(fieldRegex);
17
+ // Finding fieldName with values in queryString in this order:
18
+ // - Value surrounded with double quotes
19
+ // field:"value"
20
+ // - Value is surrounded with brackets
21
+ // field:(value1|value2)
22
+ // field:("value1 with spaces"|value2|value3)
23
+ // - Value is a single word (no quotes and no brackets)
24
+ // field:value
25
+ const fieldRegex = new RegExp(String.raw`(${fieldName}):(".*?"|\(.*?\)|[^()|!:<>*"\s]+\*?)`, 'i');
26
+ const match = queryString.match(fieldRegex);
34
27
 
35
- // 3 - Field name does not exist in query string yet, appending fieldName:value
36
- if (!match) {
37
- return `${queryString} ${fieldName}:${toQueryValue(value)}`;
38
- }
28
+ // 3 - Field name does not exist in query string yet, appending fieldName:value
29
+ if (!match) {
30
+ return `${queryString} ${fieldName}:${toQueryValue(value)}`;
31
+ }
39
32
 
40
- // 4 - Field name already exists in query string as:
41
- const existingFieldName = match[1];
42
- const existingValue = getValueWithoutBrackets(match[2]);
43
- const updatedValue = `${existingValue}|${toQueryValue(value)}`;
44
- return queryString.replace(
45
- fieldRegex,
46
- `${existingFieldName}:(${updatedValue})`,
47
- );
33
+ // 4 - Field name already exists in query string as:
34
+ const existingFieldName = match[1];
35
+ const existingValue = getValueWithoutBrackets(match[2]);
36
+ const updatedValue = `${existingValue}|${toQueryValue(value)}`;
37
+ return queryString.replace(fieldRegex, `${existingFieldName}:(${updatedValue})`);
48
38
  };
49
39
 
50
40
  const getValueWithoutBrackets = (value: string) => {
51
- if (value.startsWith('(') && value.endsWith(')')) {
52
- return value.slice(1, -1);
53
- }
54
- return value;
41
+ if (value.startsWith('(') && value.endsWith(')')) {
42
+ return value.slice(1, -1);
43
+ }
44
+ return value;
55
45
  };
56
46
 
57
47
  const hasSpaces = (value: string) => value.indexOf(' ') !== -1;
58
48
 
59
- const toQueryValue = (value: string) =>
60
- hasSpaces(value) ? `"${value}"` : value;
49
+ const toQueryValue = (value: string) => (hasSpaces(value) ? `"${value}"` : value);
@@ -2,22 +2,22 @@ import { SortOrder } from '../../../types';
2
2
  import { getSortDirectionFromString } from './columns';
3
3
 
4
4
  describe('columns', () => {
5
- describe('getSortOrderFromString', () => {
6
- it('returns undefined if sortOrder is undefined', () => {
7
- const result = getSortDirectionFromString(undefined);
8
- expect(result).toBeUndefined();
9
- });
10
- it('returns SortDirection.Asc if sortOrder is "asc"', () => {
11
- const result = getSortDirectionFromString('asc');
12
- expect(result).toEqual(SortOrder.ASC);
13
- });
14
- it('returns SortDirection.Desc if sortOrder is "desc"', () => {
15
- const result = getSortDirectionFromString('desc');
16
- expect(result).toEqual(SortOrder.DESC);
17
- });
18
- it('returns undefined if sortOrder is anything other than "asc" or "desc', () => {
19
- const result = getSortDirectionFromString('somethingElse');
20
- expect(result).toBeUndefined();
21
- });
5
+ describe('getSortOrderFromString', () => {
6
+ it('returns undefined if sortOrder is undefined', () => {
7
+ const result = getSortDirectionFromString(undefined);
8
+ expect(result).toBeUndefined();
22
9
  });
10
+ it('returns SortDirection.Asc if sortOrder is "asc"', () => {
11
+ const result = getSortDirectionFromString('asc');
12
+ expect(result).toEqual(SortOrder.ASC);
13
+ });
14
+ it('returns SortDirection.Desc if sortOrder is "desc"', () => {
15
+ const result = getSortDirectionFromString('desc');
16
+ expect(result).toEqual(SortOrder.DESC);
17
+ });
18
+ it('returns undefined if sortOrder is anything other than "asc" or "desc', () => {
19
+ const result = getSortDirectionFromString('somethingElse');
20
+ expect(result).toBeUndefined();
21
+ });
22
+ });
23
23
  });
@@ -5,28 +5,26 @@ export const WFO_STATUS_COLOR_FIELD = 'statusColorField';
5
5
  export type TableColumnKeys<T> = Array<keyof T>;
6
6
 
7
7
  export type WfoDataSorting<T> = {
8
- field: keyof T;
9
- sortOrder: SortOrder;
8
+ field: keyof T;
9
+ sortOrder: SortOrder;
10
10
  };
11
11
 
12
12
  export type WfoDataSearch<T> = {
13
- field: keyof T;
14
- searchText: string;
13
+ field: keyof T;
14
+ searchText: string;
15
15
  };
16
16
 
17
- export const getSortDirectionFromString = (
18
- sortOrder?: string,
19
- ): SortOrder | undefined => {
20
- if (!sortOrder) {
21
- return undefined;
22
- }
17
+ export const getSortDirectionFromString = (sortOrder?: string): SortOrder | undefined => {
18
+ if (!sortOrder) {
19
+ return undefined;
20
+ }
23
21
 
24
- switch (sortOrder.toUpperCase()) {
25
- case SortOrder.ASC.toString():
26
- return SortOrder.ASC;
27
- case SortOrder.DESC.toString():
28
- return SortOrder.DESC;
29
- default:
30
- return undefined;
31
- }
22
+ switch (sortOrder.toUpperCase()) {
23
+ case SortOrder.ASC.toString():
24
+ return SortOrder.ASC;
25
+ case SortOrder.DESC.toString():
26
+ return SortOrder.DESC;
27
+ default:
28
+ return undefined;
29
+ }
32
30
  };
@@ -1,23 +1,17 @@
1
1
  export const DEFAULT_PAGE_SIZES = [5, 10, 15, 20, 25, 50, 100];
2
2
  export const DEFAULT_PAGE_SIZE = 15;
3
3
  export const PAGE_SIZES_INCLUDING_SHOW_ALL = [...DEFAULT_PAGE_SIZES, 0];
4
- export const ACTIVE_PROCESSES_LIST_TABLE_LOCAL_STORAGE_KEY =
5
- 'activeProcessesListTable';
6
- export const COMPLETED_PROCESSES_LIST_TABLE_LOCAL_STORAGE_KEY =
7
- 'completedProcessesListTable';
4
+ export const ACTIVE_PROCESSES_LIST_TABLE_LOCAL_STORAGE_KEY = 'activeProcessesListTable';
5
+ export const COMPLETED_PROCESSES_LIST_TABLE_LOCAL_STORAGE_KEY = 'completedProcessesListTable';
8
6
 
9
7
  export const ACTIVE_TASKS_LIST_TABLE_LOCAL_STORAGE_KEY = 'activeTasksListTable';
10
- export const COMPLETED_TASKS_LIST_TABLE_LOCAL_STORAGE_KEY =
11
- 'completedTasksListTable';
8
+ export const COMPLETED_TASKS_LIST_TABLE_LOCAL_STORAGE_KEY = 'completedTasksListTable';
12
9
 
13
- export const METADATA_RESOURCE_TYPES_TABLE_LOCAL_STORAGE_KEY =
14
- 'metadataResourceTypesTable';
15
- export const METADATA_PRODUCT_BLOCKS_TABLE_LOCAL_STORAGE_KEY =
16
- 'metadataProductBlocksTable';
10
+ export const METADATA_RESOURCE_TYPES_TABLE_LOCAL_STORAGE_KEY = 'metadataResourceTypesTable';
11
+ export const METADATA_PRODUCT_BLOCKS_TABLE_LOCAL_STORAGE_KEY = 'metadataProductBlocksTable';
17
12
  export const METADATA_PRODUCT_TABLE_LOCAL_STORAGE_KEY = 'metadataProductTable';
18
13
  export const METADATA_SCHEDULES_LOCAL_STORAGE_KEY = 'metadataScheduleTable';
19
- export const METADATA_WORKFLOWS_TABLE_LOCAL_STORAGE_KEY =
20
- 'metadataWorkflowsTable';
14
+ export const METADATA_WORKFLOWS_TABLE_LOCAL_STORAGE_KEY = 'metadataWorkflowsTable';
21
15
  export const METADATA_TASKS_TABLE_LOCAL_STORAGE_KEY = 'metadataTasksTable';
22
16
 
23
17
  export const SUBSCRIPTIONS_TABLE_LOCAL_STORAGE_KEY = 'subscriptionsTable';
@@ -1,80 +1,80 @@
1
1
  import {
2
- StoredTableConfig,
3
- getTableConfigFromLocalStorage,
4
- isValidLocalStorageTableConfig,
2
+ StoredTableConfig,
3
+ getTableConfigFromLocalStorage,
4
+ isValidLocalStorageTableConfig,
5
5
  } from './tableConfigPersistence';
6
6
 
7
7
  // Note: for some testcases a typecast is needed on the testObject to bypass TSC errors
8
8
  describe('tableConfigPersistence', () => {
9
- describe('isValidLocalStorageTableConfig', () => {
10
- it('returns true if the input-object does contain LocalStorageTableConfig properties', () => {
11
- const testObject: StoredTableConfig<unknown> = {
12
- hiddenColumns: [],
13
- selectedPageSize: 10,
14
- };
15
- const result = isValidLocalStorageTableConfig(testObject);
16
- expect(result).toEqual(true);
17
- });
9
+ describe('isValidLocalStorageTableConfig', () => {
10
+ it('returns true if the input-object does contain LocalStorageTableConfig properties', () => {
11
+ const testObject: StoredTableConfig<unknown> = {
12
+ hiddenColumns: [],
13
+ selectedPageSize: 10,
14
+ };
15
+ const result = isValidLocalStorageTableConfig(testObject);
16
+ expect(result).toEqual(true);
17
+ });
18
18
 
19
- it('returns false if the input-object contains undefined properties of the LocalStorageTableConfig type', () => {
20
- const testObject = {
21
- hiddenColumns: undefined,
22
- selectedPageSize: undefined,
23
- } as unknown as StoredTableConfig<unknown>;
24
- const result = isValidLocalStorageTableConfig(testObject);
25
- expect(result).toEqual(false);
26
- });
19
+ it('returns false if the input-object contains undefined properties of the LocalStorageTableConfig type', () => {
20
+ const testObject = {
21
+ hiddenColumns: undefined,
22
+ selectedPageSize: undefined,
23
+ } as unknown as StoredTableConfig<unknown>;
24
+ const result = isValidLocalStorageTableConfig(testObject);
25
+ expect(result).toEqual(false);
26
+ });
27
27
 
28
- it('returns false if the input-object does not contain LocalStorageTableConfig properties', () => {
29
- const testObject = {} as StoredTableConfig<unknown>;
30
- const result = isValidLocalStorageTableConfig(testObject);
31
- expect(result).toEqual(false);
32
- });
28
+ it('returns false if the input-object does not contain LocalStorageTableConfig properties', () => {
29
+ const testObject = {} as StoredTableConfig<unknown>;
30
+ const result = isValidLocalStorageTableConfig(testObject);
31
+ expect(result).toEqual(false);
33
32
  });
33
+ });
34
34
 
35
- describe('getTableConfigFromLocalStorage', () => {
36
- it('returns the tableConfig from LocalStorage when it is valid', () => {
37
- // given
38
- const testObject = {
39
- hiddenColumns: [],
40
- selectedPageSize: 10,
41
- };
42
- localStorage.removeItem('testCase1');
43
- localStorage.setItem('testCase1', JSON.stringify(testObject));
35
+ describe('getTableConfigFromLocalStorage', () => {
36
+ it('returns the tableConfig from LocalStorage when it is valid', () => {
37
+ // given
38
+ const testObject = {
39
+ hiddenColumns: [],
40
+ selectedPageSize: 10,
41
+ };
42
+ localStorage.removeItem('testCase1');
43
+ localStorage.setItem('testCase1', JSON.stringify(testObject));
44
44
 
45
- // when
46
- const result = getTableConfigFromLocalStorage<unknown>('testCase1');
45
+ // when
46
+ const result = getTableConfigFromLocalStorage<unknown>('testCase1');
47
47
 
48
- // then
49
- expect(result).toEqual(testObject);
50
- });
48
+ // then
49
+ expect(result).toEqual(testObject);
50
+ });
51
51
 
52
- it('returns the undefined when the object in local storage is not a valid tableConfig', () => {
53
- // given
54
- const testObject = {
55
- hiddenColumns: undefined,
56
- };
57
- localStorage.removeItem('testCase2');
58
- localStorage.setItem('testCase2', JSON.stringify(testObject));
52
+ it('returns the undefined when the object in local storage is not a valid tableConfig', () => {
53
+ // given
54
+ const testObject = {
55
+ hiddenColumns: undefined,
56
+ };
57
+ localStorage.removeItem('testCase2');
58
+ localStorage.setItem('testCase2', JSON.stringify(testObject));
59
59
 
60
- // when
61
- const result = getTableConfigFromLocalStorage<unknown>('testCase2');
60
+ // when
61
+ const result = getTableConfigFromLocalStorage<unknown>('testCase2');
62
62
 
63
- // then
64
- expect(result).toEqual(undefined);
65
- });
63
+ // then
64
+ expect(result).toEqual(undefined);
65
+ });
66
66
 
67
- it('returns the undefined when the object in local storage is not valid json', () => {
68
- // given
69
- const testObject = '{ invalid json " ';
70
- localStorage.removeItem('testCase3');
71
- localStorage.setItem('testCase3', JSON.stringify(testObject));
67
+ it('returns the undefined when the object in local storage is not valid json', () => {
68
+ // given
69
+ const testObject = '{ invalid json " ';
70
+ localStorage.removeItem('testCase3');
71
+ localStorage.setItem('testCase3', JSON.stringify(testObject));
72
72
 
73
- // when
74
- const result = getTableConfigFromLocalStorage<unknown>('testCase3');
73
+ // when
74
+ const result = getTableConfigFromLocalStorage<unknown>('testCase3');
75
75
 
76
- // then
77
- expect(result).toEqual(undefined);
78
- });
76
+ // then
77
+ expect(result).toEqual(undefined);
79
78
  });
79
+ });
80
80
  });
@@ -1,42 +1,33 @@
1
1
  import { TableColumnKeys } from './columns';
2
2
 
3
3
  export type StoredTableConfig<T> = {
4
- hiddenColumns: TableColumnKeys<T>;
5
- selectedPageSize: number;
4
+ hiddenColumns: TableColumnKeys<T>;
5
+ selectedPageSize: number;
6
6
  };
7
7
 
8
- export const isValidLocalStorageTableConfig = <T>(
9
- object: StoredTableConfig<T>,
10
- ): object is StoredTableConfig<T> =>
11
- typeof object === 'object' &&
12
- 'hiddenColumns' in object &&
13
- object.hiddenColumns !== undefined &&
14
- 'selectedPageSize' in object &&
15
- object.selectedPageSize !== undefined;
8
+ export const isValidLocalStorageTableConfig = <T>(object: StoredTableConfig<T>): object is StoredTableConfig<T> =>
9
+ typeof object === 'object'
10
+ && 'hiddenColumns' in object
11
+ && object.hiddenColumns !== undefined
12
+ && 'selectedPageSize' in object
13
+ && object.selectedPageSize !== undefined;
16
14
 
17
- export const getTableConfigFromLocalStorage = <T>(
18
- key: string,
19
- ): StoredTableConfig<T> | undefined => {
20
- if (typeof window !== 'undefined' && window.localStorage) {
21
- const parsedJson = JSON.parse(localStorage.getItem(key) ?? '{}');
22
- return isValidLocalStorageTableConfig(parsedJson)
23
- ? parsedJson
24
- : undefined;
25
- }
26
- return undefined;
15
+ export const getTableConfigFromLocalStorage = <T>(key: string): StoredTableConfig<T> | undefined => {
16
+ if (typeof window !== 'undefined' && window.localStorage) {
17
+ const parsedJson = JSON.parse(localStorage.getItem(key) ?? '{}');
18
+ return isValidLocalStorageTableConfig(parsedJson) ? parsedJson : undefined;
19
+ }
20
+ return undefined;
27
21
  };
28
22
 
29
- export const setTableConfigToLocalStorage = <T>(
30
- key: string,
31
- updatedTableConfig: StoredTableConfig<T>,
32
- ) => {
33
- if (typeof window !== 'undefined' && window.localStorage) {
34
- localStorage.setItem(key, JSON.stringify(updatedTableConfig));
35
- }
23
+ export const setTableConfigToLocalStorage = <T>(key: string, updatedTableConfig: StoredTableConfig<T>) => {
24
+ if (typeof window !== 'undefined' && window.localStorage) {
25
+ localStorage.setItem(key, JSON.stringify(updatedTableConfig));
26
+ }
36
27
  };
37
28
 
38
29
  export const clearTableConfigFromLocalStorage = (key: string) => {
39
- if (typeof window !== 'undefined' && window.localStorage) {
40
- localStorage.removeItem(key);
41
- }
30
+ if (typeof window !== 'undefined' && window.localStorage) {
31
+ localStorage.removeItem(key);
32
+ }
42
33
  };
@@ -1,135 +1,118 @@
1
1
  import { Pagination } from '@/components';
2
2
 
3
3
  import { SortOrder } from '../../../types';
4
- import {
5
- determineNewSortOrder,
6
- determinePageIndex,
7
- getPageCount,
8
- hasSpecialCharacterOrSpace,
9
- } from './tableUtils';
4
+ import { determineNewSortOrder, determinePageIndex, getPageCount, hasSpecialCharacterOrSpace } from './tableUtils';
10
5
 
11
6
  describe('tableUtils', () => {
12
- describe('determinePageIndex()', () => {
13
- it('returns page 0', () => {
14
- const result = determinePageIndex(9, 10);
15
- expect(result).toEqual(0);
16
- });
17
-
18
- it('returns page 1', () => {
19
- const result = determinePageIndex(10, 10);
20
- expect(result).toEqual(1);
21
- });
22
-
23
- it('returns page 1', () => {
24
- const result = determinePageIndex(11, 10);
25
- expect(result).toEqual(1);
26
- });
7
+ describe('determinePageIndex()', () => {
8
+ it('returns page 0', () => {
9
+ const result = determinePageIndex(9, 10);
10
+ expect(result).toEqual(0);
27
11
  });
28
12
 
29
- describe('determineNewSortOrder', () => {
30
- type TestData = {
31
- column1: object;
32
- column2: object;
33
- };
34
-
35
- it('returns SortDirection.Asc when sorting on a new column', () => {
36
- const currentSortColumnId = 'column1';
37
- const currentSortDirection = SortOrder.ASC;
38
- const newSortColumnId = 'column2';
39
-
40
- const result = determineNewSortOrder<TestData>(
41
- currentSortColumnId,
42
- currentSortDirection,
43
- newSortColumnId,
44
- );
45
-
46
- expect(result).toEqual(SortOrder.ASC);
47
- });
48
-
49
- it('returns SortDirection.Asc when sorting on the same column with SortDirection.Desc', () => {
50
- const currentSortColumnId = 'column1';
51
- const currentSortDirection = SortOrder.DESC;
52
- const newSortColumnId = 'column1';
53
-
54
- const result = determineNewSortOrder<TestData>(
55
- currentSortColumnId,
56
- currentSortDirection,
57
- newSortColumnId,
58
- );
59
-
60
- expect(result).toEqual(SortOrder.ASC);
61
- });
62
-
63
- it('returns SortDirection.Desc when sorting on the same column with SortDirection.Asc', () => {
64
- const currentSortColumnId = 'column1';
65
- const currentSortDirection = SortOrder.DESC;
66
- const newSortColumnId = 'column1';
67
-
68
- const result = determineNewSortOrder<TestData>(
69
- currentSortColumnId,
70
- currentSortDirection,
71
- newSortColumnId,
72
- );
73
-
74
- expect(result).toEqual(SortOrder.ASC);
75
- });
13
+ it('returns page 1', () => {
14
+ const result = determinePageIndex(10, 10);
15
+ expect(result).toEqual(1);
76
16
  });
77
17
 
78
- describe('hasSpecialCharacterOrSpace', () => {
79
- it('should return true for strings with special characters', () => {
80
- expect(hasSpecialCharacterOrSpace('hello@world')).toBe(true);
81
- expect(hasSpecialCharacterOrSpace('hello#world')).toBe(true);
82
- expect(hasSpecialCharacterOrSpace('hello!world')).toBe(true);
83
- });
84
-
85
- it('should return true for strings with spaces', () => {
86
- expect(hasSpecialCharacterOrSpace('hello world')).toBe(true);
87
- expect(hasSpecialCharacterOrSpace('hello world')).toBe(true);
88
- });
89
-
90
- it('should return false for strings with only alphanumeric characters', () => {
91
- expect(hasSpecialCharacterOrSpace('helloworld')).toBe(false);
92
- expect(hasSpecialCharacterOrSpace('hello123')).toBe(false);
93
- expect(hasSpecialCharacterOrSpace('123456')).toBe(false);
94
- });
95
-
96
- it('should return true for strings with mixed alphanumeric and special characters', () => {
97
- expect(hasSpecialCharacterOrSpace('hello123@world')).toBe(true);
98
- expect(hasSpecialCharacterOrSpace('123#world')).toBe(true);
99
- });
100
-
101
- it('should return false for empty strings', () => {
102
- expect(hasSpecialCharacterOrSpace('')).toBe(false);
103
- });
104
-
105
- it('should return true for strings with only special characters', () => {
106
- expect(hasSpecialCharacterOrSpace('@#$%^&*')).toBe(true);
107
- });
18
+ it('returns page 1', () => {
19
+ const result = determinePageIndex(11, 10);
20
+ expect(result).toEqual(1);
108
21
  });
22
+ });
109
23
 
110
- describe('getPageCount', () => {
111
- it('returns the page count', () => {
112
- const pagination: Pagination = {
113
- pageIndex: 0,
114
- pageSize: 10,
115
- totalItemCount: 101,
116
- };
24
+ describe('determineNewSortOrder', () => {
25
+ type TestData = {
26
+ column1: object;
27
+ column2: object;
28
+ };
117
29
 
118
- const result = getPageCount(pagination);
30
+ it('returns SortDirection.Asc when sorting on a new column', () => {
31
+ const currentSortColumnId = 'column1';
32
+ const currentSortDirection = SortOrder.ASC;
33
+ const newSortColumnId = 'column2';
119
34
 
120
- expect(result).toEqual(11);
121
- });
35
+ const result = determineNewSortOrder<TestData>(currentSortColumnId, currentSortDirection, newSortColumnId);
122
36
 
123
- it('returns the current page as value when the current page is out of range', () => {
124
- const pagination: Pagination = {
125
- pageIndex: 50,
126
- pageSize: 10,
127
- totalItemCount: 101,
128
- };
37
+ expect(result).toEqual(SortOrder.ASC);
38
+ });
39
+
40
+ it('returns SortDirection.Asc when sorting on the same column with SortDirection.Desc', () => {
41
+ const currentSortColumnId = 'column1';
42
+ const currentSortDirection = SortOrder.DESC;
43
+ const newSortColumnId = 'column1';
44
+
45
+ const result = determineNewSortOrder<TestData>(currentSortColumnId, currentSortDirection, newSortColumnId);
46
+
47
+ expect(result).toEqual(SortOrder.ASC);
48
+ });
49
+
50
+ it('returns SortDirection.Desc when sorting on the same column with SortDirection.Asc', () => {
51
+ const currentSortColumnId = 'column1';
52
+ const currentSortDirection = SortOrder.DESC;
53
+ const newSortColumnId = 'column1';
54
+
55
+ const result = determineNewSortOrder<TestData>(currentSortColumnId, currentSortDirection, newSortColumnId);
56
+
57
+ expect(result).toEqual(SortOrder.ASC);
58
+ });
59
+ });
60
+
61
+ describe('hasSpecialCharacterOrSpace', () => {
62
+ it('should return true for strings with special characters', () => {
63
+ expect(hasSpecialCharacterOrSpace('hello@world')).toBe(true);
64
+ expect(hasSpecialCharacterOrSpace('hello#world')).toBe(true);
65
+ expect(hasSpecialCharacterOrSpace('hello!world')).toBe(true);
66
+ });
67
+
68
+ it('should return true for strings with spaces', () => {
69
+ expect(hasSpecialCharacterOrSpace('hello world')).toBe(true);
70
+ expect(hasSpecialCharacterOrSpace('hello world')).toBe(true);
71
+ });
72
+
73
+ it('should return false for strings with only alphanumeric characters', () => {
74
+ expect(hasSpecialCharacterOrSpace('helloworld')).toBe(false);
75
+ expect(hasSpecialCharacterOrSpace('hello123')).toBe(false);
76
+ expect(hasSpecialCharacterOrSpace('123456')).toBe(false);
77
+ });
78
+
79
+ it('should return true for strings with mixed alphanumeric and special characters', () => {
80
+ expect(hasSpecialCharacterOrSpace('hello123@world')).toBe(true);
81
+ expect(hasSpecialCharacterOrSpace('123#world')).toBe(true);
82
+ });
83
+
84
+ it('should return false for empty strings', () => {
85
+ expect(hasSpecialCharacterOrSpace('')).toBe(false);
86
+ });
87
+
88
+ it('should return true for strings with only special characters', () => {
89
+ expect(hasSpecialCharacterOrSpace('@#$%^&*')).toBe(true);
90
+ });
91
+ });
92
+
93
+ describe('getPageCount', () => {
94
+ it('returns the page count', () => {
95
+ const pagination: Pagination = {
96
+ pageIndex: 0,
97
+ pageSize: 10,
98
+ totalItemCount: 101,
99
+ };
100
+
101
+ const result = getPageCount(pagination);
102
+
103
+ expect(result).toEqual(11);
104
+ });
105
+
106
+ it('returns the current page as value when the current page is out of range', () => {
107
+ const pagination: Pagination = {
108
+ pageIndex: 50,
109
+ pageSize: 10,
110
+ totalItemCount: 101,
111
+ };
129
112
 
130
- const result = getPageCount(pagination);
113
+ const result = getPageCount(pagination);
131
114
 
132
- expect(result).toEqual(51);
133
- });
115
+ expect(result).toEqual(51);
134
116
  });
117
+ });
135
118
  });