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

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 +12 -12
  4. package/CHANGELOG.md +427 -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 +3272 -7599
  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 +40 -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 +117 -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,19 +1,13 @@
1
- export const toOptionalArrayEntry = <T>(
2
- data: T,
3
- condition: boolean,
4
- ): [T] | [] => (condition ? [data] : []);
1
+ export const toOptionalArrayEntry = <T>(data: T, condition: boolean): [T] | [] => (condition ? [data] : []);
5
2
 
6
- export const toOptionalArrayEntries = <T>(
7
- data: T | T[],
8
- condition: boolean,
9
- ): T[] => (condition ? (Array.isArray(data) ? data : [data]) : []);
3
+ export const toOptionalArrayEntries = <T>(data: T | T[], condition: boolean): T[] =>
4
+ condition ?
5
+ Array.isArray(data) ?
6
+ data
7
+ : [data]
8
+ : [];
10
9
 
11
- export const optionalArrayMapper = <T, U>(
12
- data: T[] | undefined = [],
13
- mapper: (input: T) => U,
14
- ): U[] => data.map(mapper);
10
+ export const optionalArrayMapper = <T, U>(data: T[] | undefined = [], mapper: (input: T) => U): U[] => data.map(mapper);
15
11
 
16
- export const toOptionalObjectProperty = <T extends object>(
17
- entries: T,
18
- condition: boolean,
19
- ): T | object => (condition ? entries : {});
12
+ export const toOptionalObjectProperty = <T extends object>(entries: T, condition: boolean): T | object =>
13
+ condition ? entries : {};
@@ -1,51 +1,48 @@
1
- import {
2
- getConcatenatedPagedResult,
3
- getConcatenatedResult,
4
- } from './resultFlattener';
1
+ import { getConcatenatedPagedResult, getConcatenatedResult } from './resultFlattener';
5
2
 
6
3
  describe('pagedResultFlattener', () => {
7
- it('returns an empty string when the paged result is empty', () => {
8
- const pagedResult = { page: [] };
9
- const fields = ['name', 'age'];
4
+ it('returns an empty string when the paged result is empty', () => {
5
+ const pagedResult = { page: [] };
6
+ const fields = ['name', 'age'];
10
7
 
11
- const result = getConcatenatedPagedResult(pagedResult, fields);
8
+ const result = getConcatenatedPagedResult(pagedResult, fields);
12
9
 
13
- expect(result).toBe('');
14
- });
10
+ expect(result).toBe('');
11
+ });
15
12
  });
16
13
 
17
14
  describe('resultFlattener', () => {
18
- it('returns a flattened string of the specified fields', () => {
19
- type TestItem = {
20
- name: string;
21
- age: number;
22
- };
23
- const results = [
24
- { name: 'John', age: 25 },
25
- { name: 'Jane', age: 30 },
26
- { name: 'Bob', age: 40 },
27
- ];
28
- const fields: Array<keyof TestItem> = ['name', 'age'];
29
- const result = getConcatenatedResult<TestItem>(results, fields);
30
- expect(result).toBe('John: 25 - Jane: 30 - Bob: 40');
31
- });
32
-
33
- it('returns a flattened string with selected fields only', () => {
34
- type TestItem = {
35
- name: string;
36
- age: number;
37
- city: string;
38
- };
39
- const results: TestItem[] = [
40
- { name: 'John', age: 25, city: 'New York' },
41
- { name: 'Jane', age: 30, city: 'London' },
42
- { name: 'Bob', age: 40, city: 'Paris' },
43
- ];
44
-
45
- const fields: Array<keyof TestItem> = ['name', 'city'];
46
-
47
- const result = getConcatenatedResult(results, fields);
48
-
49
- expect(result).toBe('John: New York - Jane: London - Bob: Paris');
50
- });
15
+ it('returns a flattened string of the specified fields', () => {
16
+ type TestItem = {
17
+ name: string;
18
+ age: number;
19
+ };
20
+ const results = [
21
+ { name: 'John', age: 25 },
22
+ { name: 'Jane', age: 30 },
23
+ { name: 'Bob', age: 40 },
24
+ ];
25
+ const fields: Array<keyof TestItem> = ['name', 'age'];
26
+ const result = getConcatenatedResult<TestItem>(results, fields);
27
+ expect(result).toBe('John: 25 - Jane: 30 - Bob: 40');
28
+ });
29
+
30
+ it('returns a flattened string with selected fields only', () => {
31
+ type TestItem = {
32
+ name: string;
33
+ age: number;
34
+ city: string;
35
+ };
36
+ const results: TestItem[] = [
37
+ { name: 'John', age: 25, city: 'New York' },
38
+ { name: 'Jane', age: 30, city: 'London' },
39
+ { name: 'Bob', age: 40, city: 'Paris' },
40
+ ];
41
+
42
+ const fields: Array<keyof TestItem> = ['name', 'city'];
43
+
44
+ const result = getConcatenatedResult(results, fields);
45
+
46
+ expect(result).toBe('John: New York - Jane: London - Bob: Paris');
47
+ });
51
48
  });
@@ -1,27 +1,16 @@
1
1
  import { GraphQlSinglePage } from '@/types';
2
2
 
3
- export const getConcatenatedPagedResult = <T>(
4
- pagedResult: GraphQlSinglePage<T>,
5
- fields: Array<keyof T>,
6
- ): string => {
7
- const results = pagedResult.page || [];
8
- return getConcatenatedResult(results, fields);
3
+ export const getConcatenatedPagedResult = <T>(pagedResult: GraphQlSinglePage<T>, fields: Array<keyof T>): string => {
4
+ const results = pagedResult.page || [];
5
+ return getConcatenatedResult(results, fields);
9
6
  };
10
7
 
11
- export const getConcatenatedResult = <T>(
12
- results: T[],
13
- fields: Array<keyof T>,
14
- ): string => {
15
- return results.reduce((accumulator, result, index) => {
16
- const resultFields = fields.reduce((accumulator, field, index) => {
17
- return (
18
- accumulator +
19
- `${result[field]}${index !== fields.length - 1 ? ': ' : ''}`
20
- );
21
- }, '');
22
-
23
- return `${accumulator}${resultFields}${
24
- index !== results.length - 1 ? ' - ' : ''
25
- }`;
8
+ export const getConcatenatedResult = <T>(results: T[], fields: Array<keyof T>): string => {
9
+ return results.reduce((accumulator, result, index) => {
10
+ const resultFields = fields.reduce((accumulator, field, index) => {
11
+ return accumulator + `${result[field]}${index !== fields.length - 1 ? ': ' : ''}`;
26
12
  }, '');
13
+
14
+ return `${accumulator}${resultFields}${index !== results.length - 1 ? ' - ' : ''}`;
15
+ }, '');
27
16
  };
@@ -1,161 +1,161 @@
1
1
  import {
2
- camelToHuman,
3
- isAllUpperCase,
4
- isNullOrEmpty,
5
- removeSuffix,
6
- snakeToHuman,
7
- snakeToKebab,
8
- upperCaseFirstChar,
2
+ camelToHuman,
3
+ isAllUpperCase,
4
+ isNullOrEmpty,
5
+ removeSuffix,
6
+ snakeToHuman,
7
+ snakeToKebab,
8
+ upperCaseFirstChar,
9
9
  } from './strings';
10
10
 
11
11
  describe('upperCaseFirstChar()', () => {
12
- it("Doesn't crash on an empty string but returns empty string", () => {
13
- const result = upperCaseFirstChar('');
14
- expect(result).toEqual('');
15
- });
16
- it('Uppercases strings of length 1', () => {
17
- const result = upperCaseFirstChar('a');
18
- expect(result).toEqual('A');
19
- });
20
- it('Uppercases strings simple strings', () => {
21
- const result = upperCaseFirstChar('subscriptions');
22
- expect(result).toEqual('Subscriptions');
23
- });
24
- it('Uppercases strings simple strings and spaces', () => {
25
- const result = upperCaseFirstChar('subscriptions are ok');
26
- expect(result).toEqual('Subscriptions are ok');
27
- });
28
- it('Uppercases / lowercases strings with all caps', () => {
29
- const result = upperCaseFirstChar('ALL');
30
- expect(result).toEqual('All');
31
- });
12
+ it("Doesn't crash on an empty string but returns empty string", () => {
13
+ const result = upperCaseFirstChar('');
14
+ expect(result).toEqual('');
15
+ });
16
+ it('Uppercases strings of length 1', () => {
17
+ const result = upperCaseFirstChar('a');
18
+ expect(result).toEqual('A');
19
+ });
20
+ it('Uppercases strings simple strings', () => {
21
+ const result = upperCaseFirstChar('subscriptions');
22
+ expect(result).toEqual('Subscriptions');
23
+ });
24
+ it('Uppercases strings simple strings and spaces', () => {
25
+ const result = upperCaseFirstChar('subscriptions are ok');
26
+ expect(result).toEqual('Subscriptions are ok');
27
+ });
28
+ it('Uppercases / lowercases strings with all caps', () => {
29
+ const result = upperCaseFirstChar('ALL');
30
+ expect(result).toEqual('All');
31
+ });
32
32
  });
33
33
 
34
34
  describe('removeSuffix()', () => {
35
- it("Doesn't crash on an empty string but returns empty string", () => {
36
- const result = removeSuffix('');
37
- expect(result).toEqual('');
38
- });
39
- it('Works ok for strings with length 1', () => {
40
- const result = removeSuffix('a');
41
- expect(result).toEqual('a');
42
- });
43
- it('Works ok for strings with default splitChar', () => {
44
- const result = removeSuffix('a?b');
45
- expect(result).toEqual('a');
46
- });
47
- it('Works ok for strings with specified splitChar', () => {
48
- const result = removeSuffix('a=b', '=');
49
- expect(result).toEqual('a');
50
- });
51
- it('Works ok for strings without splitChar', () => {
52
- const result = removeSuffix('a=b');
53
- expect(result).toEqual('a=b');
54
- });
35
+ it("Doesn't crash on an empty string but returns empty string", () => {
36
+ const result = removeSuffix('');
37
+ expect(result).toEqual('');
38
+ });
39
+ it('Works ok for strings with length 1', () => {
40
+ const result = removeSuffix('a');
41
+ expect(result).toEqual('a');
42
+ });
43
+ it('Works ok for strings with default splitChar', () => {
44
+ const result = removeSuffix('a?b');
45
+ expect(result).toEqual('a');
46
+ });
47
+ it('Works ok for strings with specified splitChar', () => {
48
+ const result = removeSuffix('a=b', '=');
49
+ expect(result).toEqual('a');
50
+ });
51
+ it('Works ok for strings without splitChar', () => {
52
+ const result = removeSuffix('a=b');
53
+ expect(result).toEqual('a=b');
54
+ });
55
55
  });
56
56
 
57
57
  describe('camelToHuman()', () => {
58
- it("Doesn't crash on an empty string but returns empty string", () => {
59
- const result = camelToHuman('');
60
- expect(result).toEqual('');
61
- });
62
- it('Works ok for lowercase strings with length 1', () => {
63
- const result = camelToHuman('a');
64
- expect(result).toEqual('A');
65
- });
66
- it('Works ok for uppercase strings with length 1', () => {
67
- const result = camelToHuman('A');
68
- expect(result).toEqual('A');
69
- });
70
- it('Works ok for strings starting with an lowercase char', () => {
71
- const result = camelToHuman('aQuickBrownFox');
72
- expect(result).toEqual('A Quick Brown Fox');
73
- });
74
- it('Works ok for strings starting with an uppercase char', () => {
75
- const result = camelToHuman('AQuickBrownFox');
76
- expect(result).toEqual('A Quick Brown Fox');
77
- });
58
+ it("Doesn't crash on an empty string but returns empty string", () => {
59
+ const result = camelToHuman('');
60
+ expect(result).toEqual('');
61
+ });
62
+ it('Works ok for lowercase strings with length 1', () => {
63
+ const result = camelToHuman('a');
64
+ expect(result).toEqual('A');
65
+ });
66
+ it('Works ok for uppercase strings with length 1', () => {
67
+ const result = camelToHuman('A');
68
+ expect(result).toEqual('A');
69
+ });
70
+ it('Works ok for strings starting with an lowercase char', () => {
71
+ const result = camelToHuman('aQuickBrownFox');
72
+ expect(result).toEqual('A Quick Brown Fox');
73
+ });
74
+ it('Works ok for strings starting with an uppercase char', () => {
75
+ const result = camelToHuman('AQuickBrownFox');
76
+ expect(result).toEqual('A Quick Brown Fox');
77
+ });
78
78
  });
79
79
 
80
80
  describe('snakeToHuman()', () => {
81
- it('Returns an empty string when input is an empty string', () => {
82
- const result = snakeToHuman('');
83
- expect(result).toEqual('');
84
- });
85
- it('Returns two words from a single underscore snake case word', () => {
86
- const result = snakeToHuman('hello_world');
87
- expect(result).toEqual('hello world');
88
- });
89
- it('Returns multiple words from a multiple underscore snake case word', () => {
90
- const result = snakeToHuman('quick_brown_fox');
91
- expect(result).toEqual('quick brown fox');
92
- });
81
+ it('Returns an empty string when input is an empty string', () => {
82
+ const result = snakeToHuman('');
83
+ expect(result).toEqual('');
84
+ });
85
+ it('Returns two words from a single underscore snake case word', () => {
86
+ const result = snakeToHuman('hello_world');
87
+ expect(result).toEqual('hello world');
88
+ });
89
+ it('Returns multiple words from a multiple underscore snake case word', () => {
90
+ const result = snakeToHuman('quick_brown_fox');
91
+ expect(result).toEqual('quick brown fox');
92
+ });
93
93
  });
94
94
 
95
95
  describe('snakeToKebab()', () => {
96
- it('Returns an empty string when input is an empty string', () => {
97
- const result = snakeToKebab('');
98
- expect(result).toEqual('');
99
- });
100
- it('Returns kebab case word from a single underscore snake case word', () => {
101
- const result = snakeToKebab('hello_world');
102
- expect(result).toEqual('hello-world');
103
- });
104
- it('Returns kebab case word from a multiple underscore snake case word', () => {
105
- const result = snakeToKebab('quick_brown_fox');
106
- expect(result).toEqual('quick-brown-fox');
107
- });
96
+ it('Returns an empty string when input is an empty string', () => {
97
+ const result = snakeToKebab('');
98
+ expect(result).toEqual('');
99
+ });
100
+ it('Returns kebab case word from a single underscore snake case word', () => {
101
+ const result = snakeToKebab('hello_world');
102
+ expect(result).toEqual('hello-world');
103
+ });
104
+ it('Returns kebab case word from a multiple underscore snake case word', () => {
105
+ const result = snakeToKebab('quick_brown_fox');
106
+ expect(result).toEqual('quick-brown-fox');
107
+ });
108
108
  });
109
109
 
110
110
  describe('isAllUpperCase()', () => {
111
- it('Returns true for an empty string', () => {
112
- const result = isAllUpperCase('');
113
- expect(result).toBe(true);
114
- });
115
- it('Returns true for a string with all uppercase letters', () => {
116
- const result = isAllUpperCase('HELLO');
117
- expect(result).toBe(true);
118
- });
119
- it('Returns false for a string with all lowercase letters', () => {
120
- const result = isAllUpperCase('hello');
121
- expect(result).toBe(false);
122
- });
123
- it('Returns false for a string with mixed case letters', () => {
124
- const result = isAllUpperCase('Hello');
125
- expect(result).toBe(false);
126
- });
127
- it('Returns true for a string with uppercase letters and non-letter characters', () => {
128
- const result = isAllUpperCase('HELLO123!');
129
- expect(result).toBe(true);
130
- });
131
- it('Returns false for a string with mixed case letters and non-letter characters', () => {
132
- const result = isAllUpperCase('Hello123!');
133
- expect(result).toBe(false);
134
- });
111
+ it('Returns true for an empty string', () => {
112
+ const result = isAllUpperCase('');
113
+ expect(result).toBe(true);
114
+ });
115
+ it('Returns true for a string with all uppercase letters', () => {
116
+ const result = isAllUpperCase('HELLO');
117
+ expect(result).toBe(true);
118
+ });
119
+ it('Returns false for a string with all lowercase letters', () => {
120
+ const result = isAllUpperCase('hello');
121
+ expect(result).toBe(false);
122
+ });
123
+ it('Returns false for a string with mixed case letters', () => {
124
+ const result = isAllUpperCase('Hello');
125
+ expect(result).toBe(false);
126
+ });
127
+ it('Returns true for a string with uppercase letters and non-letter characters', () => {
128
+ const result = isAllUpperCase('HELLO123!');
129
+ expect(result).toBe(true);
130
+ });
131
+ it('Returns false for a string with mixed case letters and non-letter characters', () => {
132
+ const result = isAllUpperCase('Hello123!');
133
+ expect(result).toBe(false);
134
+ });
135
135
  });
136
136
 
137
137
  describe('isNullOrEmpty', () => {
138
- it('should return true for null', () => {
139
- expect(isNullOrEmpty(null)).toBe(true);
140
- });
138
+ it('should return true for null', () => {
139
+ expect(isNullOrEmpty(null)).toBe(true);
140
+ });
141
141
 
142
- it('should return true for undefined', () => {
143
- expect(isNullOrEmpty(undefined)).toBe(true);
144
- });
142
+ it('should return true for undefined', () => {
143
+ expect(isNullOrEmpty(undefined)).toBe(true);
144
+ });
145
145
 
146
- it('should return true for an empty string', () => {
147
- expect(isNullOrEmpty('')).toBe(true);
148
- });
146
+ it('should return true for an empty string', () => {
147
+ expect(isNullOrEmpty('')).toBe(true);
148
+ });
149
149
 
150
- it('should return true for a string with only spaces', () => {
151
- expect(isNullOrEmpty(' ')).toBe(true);
152
- });
150
+ it('should return true for a string with only spaces', () => {
151
+ expect(isNullOrEmpty(' ')).toBe(true);
152
+ });
153
153
 
154
- it('should return false for a non-empty string', () => {
155
- expect(isNullOrEmpty('Hello')).toBe(false);
156
- });
154
+ it('should return false for a non-empty string', () => {
155
+ expect(isNullOrEmpty('Hello')).toBe(false);
156
+ });
157
157
 
158
- it('should return false for a string with spaces and text', () => {
159
- expect(isNullOrEmpty(' Hello ')).toBe(false);
160
- });
158
+ it('should return false for a string with spaces and text', () => {
159
+ expect(isNullOrEmpty(' Hello ')).toBe(false);
160
+ });
161
161
  });
@@ -1,32 +1,32 @@
1
1
  export const upperCaseFirstChar = (value: string): string => {
2
- if (value.length === 0) return value;
3
- if (value.length === 1) return value.charAt(0).toUpperCase();
4
- return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
2
+ if (value.length === 0) return value;
3
+ if (value.length === 1) return value.charAt(0).toUpperCase();
4
+ return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
5
5
  };
6
6
 
7
7
  export const removeSuffix = (value: string, splitChar = '?'): string => {
8
- if (value.length <= 1 || !value.includes(splitChar)) return value;
9
- return value.split(splitChar).slice(0, -1).join();
8
+ if (value.length <= 1 || !value.includes(splitChar)) return value;
9
+ return value.split(splitChar).slice(0, -1).join();
10
10
  };
11
11
 
12
12
  export const camelToHuman = (value: string): string => {
13
- const result = value.replace(/([A-Z])/g, ' $1').trimStart();
14
- return result.charAt(0).toUpperCase() + result.slice(1);
13
+ const result = value.replace(/([A-Z])/g, ' $1').trimStart();
14
+ return result.charAt(0).toUpperCase() + result.slice(1);
15
15
  };
16
16
 
17
17
  export const snakeToHuman = (value: string): string => {
18
- const result = value.replace(/_/g, ' ');
19
- return result.charAt(0) + result.slice(1);
18
+ const result = value.replace(/_/g, ' ');
19
+ return result.charAt(0) + result.slice(1);
20
20
  };
21
21
 
22
22
  export const snakeToKebab = (value: string): string => {
23
- return value.replace(/_/g, '-');
23
+ return value.replace(/_/g, '-');
24
24
  };
25
25
 
26
26
  export const isAllUpperCase = (str: string) => str === str.toUpperCase();
27
27
 
28
28
  export const isNullOrEmpty = (str: string | null | undefined): boolean => {
29
- return str === null || str === undefined || str.trim() === '';
29
+ return str === null || str === undefined || str.trim() === '';
30
30
  };
31
31
 
32
32
  export const INVISIBLE_CHARACTER = '‎';
@@ -1,36 +1,36 @@
1
1
  import { toObjectWithSerializedValues } from '@/utils/toObjectWithSerializedValues';
2
2
 
3
3
  describe('toObjectWithSerializedValues()', () => {
4
- it('should serialize object fields', () => {
5
- const input = {
6
- testObject: { foo: 'bar' },
7
- };
4
+ it('should serialize object fields', () => {
5
+ const input = {
6
+ testObject: { foo: 'bar' },
7
+ };
8
8
 
9
- const result = toObjectWithSerializedValues(input);
9
+ const result = toObjectWithSerializedValues(input);
10
10
 
11
- expect(result.testObject).toEqual(`{"foo":"bar"}`);
12
- });
11
+ expect(result.testObject).toEqual(`{"foo":"bar"}`);
12
+ });
13
13
 
14
- it('should not serialize date fields', () => {
15
- const testDate = new Date();
16
- const input = {
17
- date: testDate,
18
- };
14
+ it('should not serialize date fields', () => {
15
+ const testDate = new Date();
16
+ const input = {
17
+ date: testDate,
18
+ };
19
19
 
20
- const result = toObjectWithSerializedValues(input);
20
+ const result = toObjectWithSerializedValues(input);
21
21
 
22
- expect(result.date).toEqual(testDate);
23
- });
22
+ expect(result.date).toEqual(testDate);
23
+ });
24
24
 
25
- it('should not serialize non-date and non-object fields', () => {
26
- const input = {
27
- string: 'string',
28
- number: 1,
29
- boolean: true,
30
- };
25
+ it('should not serialize non-date and non-object fields', () => {
26
+ const input = {
27
+ string: 'string',
28
+ number: 1,
29
+ boolean: true,
30
+ };
31
31
 
32
- const result = toObjectWithSerializedValues(input);
32
+ const result = toObjectWithSerializedValues(input);
33
33
 
34
- expect(result).toEqual(input);
35
- });
34
+ expect(result).toEqual(input);
35
+ });
36
36
  });
@@ -1,17 +1,11 @@
1
- export const toObjectWithSerializedValues = <T extends object>(
2
- inputObject: T,
3
- ) => {
4
- const entries = Object.entries(inputObject);
5
- const mappedEntries = entries.map(([key, value]) => {
6
- if (
7
- value !== null &&
8
- value.constructor !== Date &&
9
- typeof value === 'object'
10
- ) {
11
- return [key, JSON.stringify(value)];
12
- }
13
- return [key, value];
14
- });
1
+ export const toObjectWithSerializedValues = <T extends object>(inputObject: T) => {
2
+ const entries = Object.entries(inputObject);
3
+ const mappedEntries = entries.map(([key, value]) => {
4
+ if (value !== null && value.constructor !== Date && typeof value === 'object') {
5
+ return [key, JSON.stringify(value)];
6
+ }
7
+ return [key, value];
8
+ });
15
9
 
16
- return Object.fromEntries(mappedEntries);
10
+ return Object.fromEntries(mappedEntries);
17
11
  };
@@ -1,33 +1,30 @@
1
1
  // Some components in this project need the keys of an object to be in a certain order
2
2
  // This function sorts the keys of an object based on an array of strings
3
3
  // Keys that do not exist in the object will be ignored
4
- export const toObjectWithSortedKeys = <T extends object>(
5
- inputObject: T,
6
- keyOrder: string[],
7
- ): T => {
8
- const allInputObjectKeys = Object.keys(inputObject) as Array<keyof T>;
9
- allInputObjectKeys.sort((left, right) => {
10
- const leftIndex = keyOrder.indexOf(left.toString());
11
- const rightIndex = keyOrder.indexOf(right.toString());
4
+ export const toObjectWithSortedKeys = <T extends object>(inputObject: T, keyOrder: string[]): T => {
5
+ const allInputObjectKeys = Object.keys(inputObject) as Array<keyof T>;
6
+ allInputObjectKeys.sort((left, right) => {
7
+ const leftIndex = keyOrder.indexOf(left.toString());
8
+ const rightIndex = keyOrder.indexOf(right.toString());
12
9
 
13
- if (leftIndex === -1 && rightIndex === -1) {
14
- return 0;
15
- }
10
+ if (leftIndex === -1 && rightIndex === -1) {
11
+ return 0;
12
+ }
16
13
 
17
- if (leftIndex === -1) {
18
- return 1;
19
- }
14
+ if (leftIndex === -1) {
15
+ return 1;
16
+ }
20
17
 
21
- if (rightIndex === -1) {
22
- return -1;
23
- }
18
+ if (rightIndex === -1) {
19
+ return -1;
20
+ }
24
21
 
25
- return leftIndex - rightIndex;
26
- });
22
+ return leftIndex - rightIndex;
23
+ });
27
24
 
28
- // Using all keys from the input object means the result will contain all keys of T, meaning the type is T
29
- return allInputObjectKeys.reduce((acc, key) => {
30
- acc[key] = inputObject[key];
31
- return acc;
32
- }, {} as T);
25
+ // Using all keys from the input object means the result will contain all keys of T, meaning the type is T
26
+ return allInputObjectKeys.reduce((acc, key) => {
27
+ acc[key] = inputObject[key];
28
+ return acc;
29
+ }, {} as T);
33
30
  };