@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.
- package/.turbo/turbo-build.log +9 -9
- package/.turbo/turbo-lint.log +1 -13
- package/.turbo/turbo-test.log +11 -11
- package/CHANGELOG.md +426 -415
- package/__mocks__/@copilotkit/react-core.js +6 -6
- package/__mocks__/@copilotkit/react-ui.js +1 -6
- package/dist/index.d.ts +283 -176
- package/dist/index.js +3259 -7616
- package/dist/index.js.map +1 -1
- package/package.json +93 -93
- package/src/api/types.ts +36 -36
- package/src/components/WfoAgent/ExportButton/ExportButton.tsx +59 -63
- package/src/components/WfoAgent/ExportButton/styles.ts +56 -56
- package/src/components/WfoAgent/ToolProgress/DiscoverFilterPathsDisplay.tsx +79 -94
- package/src/components/WfoAgent/ToolProgress/RunSearchDisplay.tsx +22 -22
- package/src/components/WfoAgent/ToolProgress/SetFilterTreeDisplay.styles.ts +56 -56
- package/src/components/WfoAgent/ToolProgress/SetFilterTreeDisplay.tsx +76 -104
- package/src/components/WfoAgent/ToolProgress/StartNewSearchDisplay.tsx +49 -51
- package/src/components/WfoAgent/ToolProgress/ToolProgress.tsx +65 -115
- package/src/components/WfoAgent/ToolProgress/styles.ts +46 -46
- package/src/components/WfoAgent/WfoAgent/WfoAgent.tsx +69 -110
- package/src/components/WfoAgent/WfoAgentChart/WfoAgentLineChart.tsx +36 -46
- package/src/components/WfoAgent/WfoAgentChart/WfoAgentPieChart.tsx +40 -53
- package/src/components/WfoAgent/WfoAgentChart/styles.ts +2 -2
- package/src/components/WfoAgent/WfoAgentTable/WfoAgentTable.tsx +45 -55
- package/src/components/WfoAgent/WfoAgentVisualization/WfoAgentVisualization.tsx +37 -42
- package/src/components/WfoAuth/WfoAuth.tsx +11 -18
- package/src/components/WfoAuth/WfoIsAllowedToRender.tsx +5 -8
- package/src/components/WfoAuth/WfoPageUnauthorized.tsx +2 -2
- package/src/components/WfoAuth/WfoPolicyRenderPageFallback.tsx +5 -8
- package/src/components/WfoAvailabilityCheck/WfoAvailabilityCheck.tsx +8 -17
- package/src/components/WfoBackendUnavailable/WfoBackendUnavailable.tsx +71 -94
- package/src/components/WfoBadges/WfoBadge/WfoBadge.stories.tsx +9 -9
- package/src/components/WfoBadges/WfoBadge/WfoBadge.tsx +11 -14
- package/src/components/WfoBadges/WfoEngineStatusBadge/WfoEngineStatusBadge.stories.tsx +17 -17
- package/src/components/WfoBadges/WfoEngineStatusBadge/WfoEngineStatusBadge.tsx +19 -25
- package/src/components/WfoBadges/WfoEnvironmentBadge/WfoEnvironmentBadge.stories.tsx +7 -7
- package/src/components/WfoBadges/WfoEnvironmentBadge/WfoEnvironmentBadge.tsx +13 -16
- package/src/components/WfoBadges/WfoFailedTasksBadge/WfoFailedTasksBadge.stories.tsx +3 -3
- package/src/components/WfoBadges/WfoFailedTasksBadge/WfoFailedTasksBadge.tsx +66 -83
- package/src/components/WfoBadges/WfoFailedTasksBadge/styles.ts +5 -5
- package/src/components/WfoBadges/WfoHeaderBadge/WfoHeaderBadge.stories.tsx +9 -9
- package/src/components/WfoBadges/WfoHeaderBadge/WfoHeaderBadge.tsx +19 -21
- package/src/components/WfoBadges/WfoProcessStatusBadge/WfoProcessStatusBadge.tsx +56 -59
- package/src/components/WfoBadges/WfoProductBlockBadge/WfoProductBlockBadge.stories.tsx +5 -5
- package/src/components/WfoBadges/WfoProductBlockBadge/WfoProductBlockBadge.tsx +60 -66
- package/src/components/WfoBadges/WfoProductStatusBadge/WfoProductStatusBadge.stories.tsx +8 -8
- package/src/components/WfoBadges/WfoProductStatusBadge/WfoProductStatusBadge.tsx +34 -43
- package/src/components/WfoBadges/WfoScheduledTasksBadges/WfoScheduledTasksBadges.tsx +19 -29
- package/src/components/WfoBadges/WfoScheduledTasksBadges/WfoScheduledTasksBadgesContainer.tsx +10 -11
- package/src/components/WfoBadges/WfoSubscriptionStatusBadge/WfoSubscriptionStatusBadge.stories.tsx +11 -11
- package/src/components/WfoBadges/WfoSubscriptionStatusBadge/WfoSubscriptionStatusBadge.tsx +35 -44
- package/src/components/WfoBadges/WfoSubscriptionSyncStatusBadge/WfoSubscriptionSyncStatusBadge.stories.tsx +12 -12
- package/src/components/WfoBadges/WfoSubscriptionSyncStatusBadge/WfoSubscriptionSyncStatusBadge.tsx +31 -34
- package/src/components/WfoBadges/WfoVersionIncompatibleBadge/WfoVersionIncompatibleBadge.stories.tsx +7 -7
- package/src/components/WfoBadges/WfoVersionIncompatibleBadge/WfoVersionIncompatibleBadge.tsx +44 -47
- package/src/components/WfoBadges/WfoWebsocketStatusBadge/WfoWebsocketStatusBadge.stories.tsx +3 -3
- package/src/components/WfoBadges/WfoWebsocketStatusBadge/WfoWebsocketStatusBadge.tsx +48 -71
- package/src/components/WfoBadges/WfoWebsocketStatusBadge/styles.ts +14 -16
- package/src/components/WfoBadges/WfoWorkflowTargetBadge/WfoWorkflowTargetBadge.tsx +51 -63
- package/src/components/WfoButtonComboBox/WfoButtonComboBox.tsx +55 -64
- package/src/components/WfoButtonComboBox/styles.ts +19 -19
- package/src/components/WfoButtonWithConfirm/WfoButtonWithConfirm.tsx +21 -21
- package/src/components/WfoContentHeader/WfoContentHeader.tsx +28 -48
- package/src/components/WfoDateTime/WfoDateTime.tsx +3 -3
- package/src/components/WfoDiff/WfoDiff.tsx +82 -100
- package/src/components/WfoDiff/styles.ts +28 -35
- package/src/components/WfoDropdownButton/WfoDropdownButton.tsx +54 -58
- package/src/components/WfoError/WfoError.stories.tsx +9 -12
- package/src/components/WfoError/WfoError.tsx +22 -25
- package/src/components/WfoErrorBoundary/WfoErrorBoundary.tsx +30 -34
- package/src/components/WfoExpandableField/WfoExpandableField.tsx +24 -31
- package/src/components/WfoExpandableField/styles.ts +11 -11
- package/src/components/WfoFilterTabs/WfoFilterTabs.tsx +33 -35
- package/src/components/WfoFilterTabs/styles.ts +7 -7
- package/src/components/WfoInlineEdit/WfoInlineEdit.tsx +99 -112
- package/src/components/WfoInlineNoteEdit/WfoSubscriptionDetailNoteEdit.tsx +33 -39
- package/src/components/WfoInlineNoteEdit/WfoSubscriptionNoteEdit.tsx +32 -35
- package/src/components/WfoInsyncIcon/WfoInsyncIcon.stories.tsx +8 -8
- package/src/components/WfoInsyncIcon/WfoInsyncIcon.tsx +5 -15
- package/src/components/WfoJsonCodeBlock/WfoJsonCodeBlock.tsx +15 -19
- package/src/components/WfoJsonCodeBlock/styles.ts +19 -19
- package/src/components/WfoKeyValueTable/WfoKeyCell.tsx +10 -11
- package/src/components/WfoKeyValueTable/WfoKeyValueTable.tsx +22 -25
- package/src/components/WfoKeyValueTable/WfoValueCell.tsx +44 -54
- package/src/components/WfoKeyValueTable/WfoValueOnlyTable.tsx +19 -22
- package/src/components/WfoKeyValueTable/styles.ts +77 -78
- package/src/components/WfoLogoSpinner/WfoLogoSpinner.tsx +22 -29
- package/src/components/WfoLogoSpinner/styles.ts +33 -36
- package/src/components/WfoMetadata/WfoMetadataDescriptionField.tsx +8 -14
- package/src/components/WfoMonacoCodeBlock/WfoMonacoCodeBlock.tsx +56 -63
- package/src/components/WfoMonacoCodeBlock/styles.ts +9 -11
- package/src/components/WfoNoResults/WfoNoResults.stories.tsx +6 -6
- package/src/components/WfoNoResults/WfoNoResults.tsx +8 -8
- package/src/components/WfoNoResults/styles.ts +16 -16
- package/src/components/WfoOptionalLink/WfoOptionalLink.tsx +7 -10
- package/src/components/WfoPageTemplate/WfoBreadcrumbs/WfoBreadcrumbs.tsx +61 -87
- package/src/components/WfoPageTemplate/WfoPageHeader/WfoAppLogo.tsx +15 -24
- package/src/components/WfoPageTemplate/WfoPageHeader/WfoHamburgerMenu.tsx +115 -140
- package/src/components/WfoPageTemplate/WfoPageHeader/WfoPageHeader.stories.tsx +43 -43
- package/src/components/WfoPageTemplate/WfoPageHeader/WfoPageHeader.tsx +67 -101
- package/src/components/WfoPageTemplate/WfoPageHeader/styles.ts +16 -16
- package/src/components/WfoPageTemplate/WfoPageHeader/utils/toHexColorWithOpacity.spec.ts +6 -6
- package/src/components/WfoPageTemplate/WfoPageHeader/utils/toHexColorWithOpacity.ts +2 -2
- package/src/components/WfoPageTemplate/WfoPageTemplate/ContentContext.tsx +10 -16
- package/src/components/WfoPageTemplate/WfoPageTemplate/WfoPageTemplate.stories.tsx +10 -10
- package/src/components/WfoPageTemplate/WfoPageTemplate/WfoPageTemplate.tsx +62 -94
- package/src/components/WfoPageTemplate/WfoPageTemplate/styles.ts +19 -22
- package/src/components/WfoPageTemplate/WfoSidebar/WfoCopyright.tsx +13 -13
- package/src/components/WfoPageTemplate/WfoSidebar/WfoMenuLink.tsx +34 -42
- package/src/components/WfoPageTemplate/WfoSidebar/WfoSidebar.stories.tsx +7 -7
- package/src/components/WfoPageTemplate/WfoSidebar/WfoSidebar.tsx +205 -240
- package/src/components/WfoPageTemplate/WfoSidebar/styles.ts +92 -99
- package/src/components/WfoPageTemplate/WfoSidebar/utils/menuItemIsAllowed.spec.ts +31 -40
- package/src/components/WfoPageTemplate/WfoSidebar/utils/menuItemIsAllowed.ts +8 -8
- package/src/components/WfoPageTemplate/paths.ts +1 -2
- package/src/components/WfoPopover/WfoPopover.tsx +26 -36
- package/src/components/WfoProcessList/WfoProcessesList.tsx +212 -247
- package/src/components/WfoProcessList/processListObjectMappers.ts +95 -100
- package/src/components/WfoPydanticForm/Footer.tsx +139 -157
- package/src/components/WfoPydanticForm/Header.tsx +9 -10
- package/src/components/WfoPydanticForm/RenderFormErrors.tsx +18 -20
- package/src/components/WfoPydanticForm/Row.tsx +22 -31
- package/src/components/WfoPydanticForm/WfoPydanticForm.tsx +77 -93
- package/src/components/WfoPydanticForm/fields/WfoArrayField/WfoArrayField.tsx +85 -120
- package/src/components/WfoPydanticForm/fields/WfoArrayField/styles.ts +28 -28
- package/src/components/WfoPydanticForm/fields/WfoCallout.tsx +9 -12
- package/src/components/WfoPydanticForm/fields/WfoCheckbox.tsx +11 -16
- package/src/components/WfoPydanticForm/fields/WfoDivider.tsx +4 -8
- package/src/components/WfoPydanticForm/fields/WfoDropdown.tsx +6 -17
- package/src/components/WfoPydanticForm/fields/WfoInteger.tsx +29 -43
- package/src/components/WfoPydanticForm/fields/WfoLabel.tsx +14 -14
- package/src/components/WfoPydanticForm/fields/WfoMultiCheckboxField.tsx +40 -51
- package/src/components/WfoPydanticForm/fields/WfoObjectField/WfoObjectField.tsx +22 -35
- package/src/components/WfoPydanticForm/fields/WfoObjectField/styles.ts +9 -9
- package/src/components/WfoPydanticForm/fields/WfoRadio.tsx +15 -20
- package/src/components/WfoPydanticForm/fields/WfoReactSelect/WfoReactSelect.tsx +84 -97
- package/src/components/WfoPydanticForm/fields/WfoReactSelect/styles.ts +68 -85
- package/src/components/WfoPydanticForm/fields/WfoSummary.tsx +58 -67
- package/src/components/WfoPydanticForm/fields/WfoText.tsx +16 -26
- package/src/components/WfoPydanticForm/fields/WfoTextArea.tsx +12 -17
- package/src/components/WfoPydanticForm/fields/WfoTimestampField.tsx +42 -48
- package/src/components/WfoPydanticForm/fields/styles.ts +71 -71
- package/src/components/WfoPydanticForm/fields/wfoPydanticFormUtils.spec.ts +24 -24
- package/src/components/WfoPydanticForm/fields/wfoPydanticFormUtils.ts +11 -18
- package/src/components/WfoRadioDropdown/WfoRadioDropdown.tsx +55 -74
- package/src/components/WfoRenderElementOrString/WfoRenderElementOrString.tsx +8 -8
- package/src/components/WfoSearchBar/WfoSearchField.tsx +35 -47
- package/src/components/WfoSearchPage/WfoConditionRow/WfoConditionRow.tsx +290 -354
- package/src/components/WfoSearchPage/WfoConditionRow/WfoFieldSelector.tsx +30 -30
- package/src/components/WfoSearchPage/WfoConditionRow/WfoOperatorSelector.tsx +56 -85
- package/src/components/WfoSearchPage/WfoConditionRow/WfoPathChips.tsx +143 -171
- package/src/components/WfoSearchPage/WfoConditionRow/WfoPathSelector.tsx +40 -42
- package/src/components/WfoSearchPage/WfoConditionRow/WfoRenderFunctions.tsx +50 -86
- package/src/components/WfoSearchPage/WfoConditionRow/WfoSelectedPathDisplay.tsx +48 -65
- package/src/components/WfoSearchPage/WfoConditionRow/index.ts +1 -4
- package/src/components/WfoSearchPage/WfoConditionRow/types.ts +56 -61
- package/src/components/WfoSearchPage/WfoConditionRow/utils.ts +36 -48
- package/src/components/WfoSearchPage/WfoFilterGroup/WfoFilterGroup.tsx +158 -213
- package/src/components/WfoSearchPage/WfoSearch/WfoSearch.tsx +327 -411
- package/src/components/WfoSearchPage/WfoSearchResults/WfoHighlightedText.tsx +46 -53
- package/src/components/WfoSearchPage/WfoSearchResults/WfoPathBreadcrumb.tsx +50 -67
- package/src/components/WfoSearchPage/WfoSearchResults/WfoSearchEmptyState.tsx +13 -13
- package/src/components/WfoSearchPage/WfoSearchResults/WfoSearchLoadingState.tsx +13 -13
- package/src/components/WfoSearchPage/WfoSearchResults/WfoSearchMetadataHeader.tsx +13 -15
- package/src/components/WfoSearchPage/WfoSearchResults/WfoSearchPaginationInfo.tsx +76 -86
- package/src/components/WfoSearchPage/WfoSearchResults/WfoSearchResultItem.tsx +112 -133
- package/src/components/WfoSearchPage/WfoSearchResults/WfoSearchResults.tsx +31 -31
- package/src/components/WfoSearchPage/WfoValueControl/WfoValueControl.tsx +181 -215
- package/src/components/WfoSearchPage/constants.ts +3 -8
- package/src/components/WfoSearchPage/utils.ts +83 -112
- package/src/components/WfoSettings/WfoAoStackStatus.tsx +19 -28
- package/src/components/WfoSettings/WfoEngineStatus.tsx +31 -37
- package/src/components/WfoSettings/WfoEngineStatusButton.tsx +17 -30
- package/src/components/WfoSettings/WfoFlushSettings.tsx +54 -72
- package/src/components/WfoSettings/WfoModifySettings.tsx +23 -29
- package/src/components/WfoSettings/WfoResetTextSearchIndexButton.tsx +7 -10
- package/src/components/WfoSettings/WfoWorkerStatus.tsx +35 -42
- package/src/components/WfoSettings/styles.ts +17 -17
- package/src/components/WfoSettingsModal/WfoInformationModal.tsx +25 -29
- package/src/components/WfoSettingsModal/WfoSettingsModal.tsx +43 -43
- package/src/components/WfoSettingsModal/WfoSubmitModal.tsx +45 -50
- package/src/components/WfoStartButton/WfoStartButtonComboBox.tsx +98 -121
- package/src/components/WfoStartButton/WfoStartTaskComboBox.tsx +35 -35
- package/src/components/WfoStartButton/WfoStartWorkflowComboBox.tsx +42 -44
- package/src/components/WfoStartButton/styles.ts +15 -15
- package/src/components/WfoSubscription/SubscriptionKeyValueBlock.tsx +23 -35
- package/src/components/WfoSubscription/WfoCustomerDescriptionsField.tsx +85 -99
- package/src/components/WfoSubscription/WfoInSyncField/WfoInSyncErrorToastMessage.tsx +15 -17
- package/src/components/WfoSubscription/WfoInSyncField/WfoInSyncField.tsx +147 -192
- package/src/components/WfoSubscription/WfoInUseByRelations.tsx +50 -74
- package/src/components/WfoSubscription/WfoProcessesTimeline.tsx +113 -173
- package/src/components/WfoSubscription/WfoRelatedSubscriptions.tsx +140 -172
- package/src/components/WfoSubscription/WfoSubscription.tsx +67 -102
- package/src/components/WfoSubscription/WfoSubscriptionActions/WfoSubscriptionActionExpandableMenuItem.tsx +47 -53
- package/src/components/WfoSubscription/WfoSubscriptionActions/WfoSubscriptionActions.tsx +173 -223
- package/src/components/WfoSubscription/WfoSubscriptionActions/WfoSubscriptionActionsMenuItem.tsx +67 -87
- package/src/components/WfoSubscription/WfoSubscriptionActions/styles.ts +70 -70
- package/src/components/WfoSubscription/WfoSubscriptionDetailTree.tsx +190 -242
- package/src/components/WfoSubscription/WfoSubscriptionGeneral.tsx +48 -60
- package/src/components/WfoSubscription/WfoSubscriptionGeneralSections/WfoSubscriptionDetailSection.tsx +67 -91
- package/src/components/WfoSubscription/WfoSubscriptionGeneralSections/WfoSubscriptionFixedInputSection.tsx +8 -15
- package/src/components/WfoSubscription/WfoSubscriptionGeneralSections/WfoSubscriptionMetadataSection.tsx +8 -15
- package/src/components/WfoSubscription/WfoSubscriptionGeneralSections/WfoSubscriptionProductInfoSection.tsx +34 -41
- package/src/components/WfoSubscription/WfoSubscriptionProductBlock/WfoProductBlockKeyValueRow.tsx +36 -36
- package/src/components/WfoSubscription/WfoSubscriptionProductBlock/WfoSubscriptionProductBlock.tsx +156 -233
- package/src/components/WfoSubscription/WfoSubscriptionProductBlock/styles.ts +60 -62
- package/src/components/WfoSubscription/WfoTargetTypeIcon.tsx +39 -50
- package/src/components/WfoSubscription/overrides/useSubscriptionDetailGeneralSectionConfigurationOverride.ts +6 -8
- package/src/components/WfoSubscription/overrides/useSubscriptionDetailValueOverride.ts +20 -23
- package/src/components/WfoSubscription/styles.ts +57 -62
- package/src/components/WfoSubscription/subscriptionDetailTabs.tsx +44 -48
- package/src/components/WfoSubscription/utils/relatedSubscriptionsListItemsObjectMappers.ts +30 -42
- package/src/components/WfoSubscription/utils/utils.spec.ts +405 -452
- package/src/components/WfoSubscription/utils/utils.ts +139 -159
- package/src/components/WfoSubscriptionsList/WfoSubscriptionsList.tsx +214 -258
- package/src/components/WfoSubscriptionsList/subscriptionListTabs.ts +39 -42
- package/src/components/WfoSubscriptionsList/subscriptionResultMappers.ts +33 -45
- package/src/components/WfoSummary/WfoActiveWorkflowsSummaryCard.tsx +19 -28
- package/src/components/WfoSummary/WfoFailedTasksSummaryCard.tsx +18 -21
- package/src/components/WfoSummary/WfoLatestActiveSubscriptionsSummaryCard.tsx +22 -28
- package/src/components/WfoSummary/WfoLatestOutOfSyncSubscriptionSummaryCard.tsx +30 -40
- package/src/components/WfoSummary/WfoMyWorkflowsSummaryCard.tsx +30 -44
- package/src/components/WfoSummary/WfoProductsSummaryCard.tsx +37 -45
- package/src/components/WfoSummary/WfoSummaryCard.tsx +68 -99
- package/src/components/WfoSummary/WfoSummaryCardHeader/WfoSummaryCardHeader.tsx +38 -50
- package/src/components/WfoSummary/WfoSummaryCardHeader/styles.ts +18 -18
- package/src/components/WfoSummary/WfoSummaryCardList/WfoSummaryCardList.tsx +44 -67
- package/src/components/WfoSummary/WfoSummaryCardList/WfoSummaryCardListItem.tsx +25 -44
- package/src/components/WfoSummary/WfoSummaryCardList/styles.ts +49 -49
- package/src/components/WfoSummary/WfoSummaryCards.tsx +7 -11
- package/src/components/WfoSummary/getNumberOfColumns.ts +12 -12
- package/src/components/WfoSummary/styles.ts +7 -7
- package/src/components/WfoTable/WfoAdvancedTable/WfoAdvancedTable.tsx +181 -229
- package/src/components/WfoTable/WfoAdvancedTable/getRowDetailData.tsx +31 -42
- package/src/components/WfoTable/WfoAdvancedTable/toSortedTableColumnConfig.ts +8 -8
- package/src/components/WfoTable/WfoAdvancedTable/types.ts +9 -11
- package/src/components/WfoTable/WfoFirstPartUUID/WfoFirstPartUUID.tsx +19 -30
- package/src/components/WfoTable/WfoFirstPartUUID/styles.ts +19 -19
- package/src/components/WfoTable/WfoInlineJson/WfoInlineJson.tsx +6 -6
- package/src/components/WfoTable/WfoRowContextMenu/WfoRowContextMenu.tsx +30 -46
- package/src/components/WfoTable/WfoSortButtons/WfoSortButton.tsx +11 -24
- package/src/components/WfoTable/WfoSortButtons/WfoSortButtons.tsx +18 -21
- package/src/components/WfoTable/WfoSortButtons/styles.ts +14 -14
- package/src/components/WfoTable/WfoStatusColorField/WfoStatusColorField.tsx +3 -5
- package/src/components/WfoTable/WfoStatusColorField/styles.ts +10 -10
- package/src/components/WfoTable/WfoTable/WfoDataCell.tsx +8 -14
- package/src/components/WfoTable/WfoTable/WfoDragHandler.tsx +49 -61
- package/src/components/WfoTable/WfoTable/WfoExpandedRow.tsx +12 -33
- package/src/components/WfoTable/WfoTable/WfoGroupedTable/WfoExpandableRow.tsx +28 -32
- package/src/components/WfoTable/WfoTable/WfoGroupedTable/WfoExpandedGroupRow.tsx +34 -52
- package/src/components/WfoTable/WfoTable/WfoGroupedTable/WfoGroupedTable.tsx +63 -78
- package/src/components/WfoTable/WfoTable/WfoGroupedTable/WfoGroupedTableGroups.tsx +40 -54
- package/src/components/WfoTable/WfoTable/WfoGroupedTable/styles.ts +28 -28
- package/src/components/WfoTable/WfoTable/WfoGroupedTable/useGroupedTableConfig.tsx +147 -168
- package/src/components/WfoTable/WfoTable/WfoGroupedTable/utils.spec.ts +133 -140
- package/src/components/WfoTable/WfoTable/WfoGroupedTable/utils.ts +21 -33
- package/src/components/WfoTable/WfoTable/WfoMultilineCell.tsx +5 -5
- package/src/components/WfoTable/WfoTable/WfoTable.tsx +213 -251
- package/src/components/WfoTable/WfoTable/WfoTableDataRows.tsx +63 -107
- package/src/components/WfoTable/WfoTable/WfoTableHeaderCell/WfoPopoverContent.tsx +34 -40
- package/src/components/WfoTable/WfoTable/WfoTableHeaderCell/WfoSortDirectionIcon.tsx +17 -21
- package/src/components/WfoTable/WfoTable/WfoTableHeaderCell/WfoTableHeaderCell.tsx +68 -83
- package/src/components/WfoTable/WfoTable/WfoTableHeaderCell/styles.ts +118 -118
- package/src/components/WfoTable/WfoTable/WfoTableHeaderRow.tsx +91 -118
- package/src/components/WfoTable/WfoTable/WfoToolTip.tsx +17 -21
- package/src/components/WfoTable/WfoTable/WfoTruncateCell.tsx +15 -15
- package/src/components/WfoTable/WfoTable/WfoVirtualizedTableBody.tsx +42 -49
- package/src/components/WfoTable/WfoTable/styles.ts +168 -176
- package/src/components/WfoTable/WfoTable/utils.spec.ts +71 -89
- package/src/components/WfoTable/WfoTable/utils.ts +61 -80
- package/src/components/WfoTable/WfoTableSettingsModal/WfoTableSettingsModal.tsx +77 -100
- package/src/components/WfoTable/WfoTableSettingsModal/styles.ts +12 -14
- package/src/components/WfoTable/WfoTableWithFilter/updateQueryString.spec.ts +63 -65
- package/src/components/WfoTable/WfoTableWithFilter/updateQueryString.ts +33 -44
- package/src/components/WfoTable/utils/columns.spec.ts +17 -17
- package/src/components/WfoTable/utils/columns.ts +16 -18
- package/src/components/WfoTable/utils/constants.ts +6 -12
- package/src/components/WfoTable/utils/tableConfigPersistence.spec.ts +61 -61
- package/src/components/WfoTable/utils/tableConfigPersistence.ts +21 -30
- package/src/components/WfoTable/utils/tableUtils.spec.ts +100 -117
- package/src/components/WfoTable/utils/tableUtils.ts +33 -50
- package/src/components/WfoTableCodeBlock/WfoTableCodeBlock.tsx +20 -27
- package/src/components/WfoTableCodeBlock/styles.ts +8 -8
- package/src/components/WfoTextAnchor/WfoTextAnchor.stories.tsx +6 -6
- package/src/components/WfoTextAnchor/WfoTextAnchor.tsx +8 -8
- package/src/components/WfoTextAnchor/styles.ts +11 -11
- package/src/components/WfoTimeline/WfoTimeline.tsx +28 -43
- package/src/components/WfoTimeline/WfoTimelineStep.tsx +38 -40
- package/src/components/WfoTimeline/mapProcessStepStatusToEuiStepStatus.ts +16 -18
- package/src/components/WfoTimeline/styles.ts +151 -168
- package/src/components/WfoTimeline/timelineUtils.ts +5 -10
- package/src/components/WfoTitleWithWebsocketBadge/WfoTitleWithWebsocketBadge.tsx +10 -13
- package/src/components/WfoToastsList/WfoToastsList.tsx +11 -13
- package/src/components/WfoTree/WfoTree.tsx +14 -14
- package/src/components/WfoTree/WfoTreeBranch.tsx +27 -39
- package/src/components/WfoTree/WfoTreeNode.tsx +29 -41
- package/src/components/WfoTree/WfoTreeNodeListItem.tsx +34 -48
- package/src/components/WfoTree/styles.ts +35 -38
- package/src/components/WfoTree/treeUtils.spec.ts +141 -146
- package/src/components/WfoTree/treeUtils.ts +52 -58
- package/src/components/WfoWorkflowSteps/WfoStep/WfoCodeViewSelector.tsx +75 -106
- package/src/components/WfoWorkflowSteps/WfoStep/WfoStep.stories.tsx +3 -3
- package/src/components/WfoWorkflowSteps/WfoStep/WfoStep.tsx +128 -191
- package/src/components/WfoWorkflowSteps/WfoStep/WfoStepForm.tsx +42 -58
- package/src/components/WfoWorkflowSteps/WfoStep/WfoStepFormFooter.tsx +31 -42
- package/src/components/WfoWorkflowSteps/WfoStepList/WfoStepList.tsx +79 -101
- package/src/components/WfoWorkflowSteps/WfoStepStatusIcon/WfoStepStatusIcon.stories.tsx +6 -6
- package/src/components/WfoWorkflowSteps/WfoStepStatusIcon/WfoStepStatusIcon.tsx +64 -103
- package/src/components/WfoWorkflowSteps/WfoTraceback/WfoTraceback.tsx +11 -11
- package/src/components/WfoWorkflowSteps/WfoTraceback/styles.ts +8 -8
- package/src/components/WfoWorkflowSteps/WfoWorkflowStepList/WfoStepListHeader.tsx +97 -140
- package/src/components/WfoWorkflowSteps/WfoWorkflowStepList/WfoWorkflowStepList.stories.tsx +40 -40
- package/src/components/WfoWorkflowSteps/WfoWorkflowStepList/WfoWorkflowStepList.tsx +146 -198
- package/src/components/WfoWorkflowSteps/stepListUtils.spec.ts +18 -18
- package/src/components/WfoWorkflowSteps/stepListUtils.ts +14 -25
- package/src/components/WfoWorkflowSteps/styles.ts +116 -122
- package/src/components/confirmationDialog/ConfirmationDialogStyling.ts +7 -7
- package/src/components/confirmationDialog/WfoConfirmationDialog.tsx +58 -72
- package/src/configuration/constants.ts +2 -4
- package/src/configuration/policy-resources.ts +21 -21
- package/src/configuration/version.ts +1 -1
- package/src/contexts/ConfirmationDialogProvider.tsx +54 -72
- package/src/contexts/OrchestratorConfigContext.tsx +23 -30
- package/src/contexts/PolicyContext.tsx +6 -11
- package/src/contexts/TreeContext.tsx +83 -97
- package/src/contexts/WfoErrorMonitoringProvider.tsx +16 -19
- package/src/hooks/useBackendAvailability.ts +39 -44
- package/src/hooks/useCheckEngineStatus.ts +19 -19
- package/src/hooks/useContentRef.ts +1 -1
- package/src/hooks/useDataDisplayParams.ts +35 -47
- package/src/hooks/useDebounce.ts +14 -14
- package/src/hooks/useGetOrchestratorConfig.ts +1 -1
- package/src/hooks/useGetPydanticFormsConfig.tsx +249 -286
- package/src/hooks/useGetSchedulesForWorkflow.tsx +19 -20
- package/src/hooks/useGetWorkflowNameById.tsx +8 -13
- package/src/hooks/useOrchestratorConfig.ts +2 -4
- package/src/hooks/useOrchestratorTheme.ts +20 -24
- package/src/hooks/usePathAutoComplete.ts +105 -117
- package/src/hooks/usePolicy.ts +5 -6
- package/src/hooks/useSearch.ts +60 -75
- package/src/hooks/useSearchPagination.ts +124 -134
- package/src/hooks/useShowToastMessage.ts +12 -12
- package/src/hooks/useStoredTableConfig.ts +22 -29
- package/src/hooks/useUrlParams.ts +90 -108
- package/src/hooks/useWfoErrorMonitoring.ts +1 -2
- package/src/hooks/useWfoSession.ts +15 -17
- package/src/hooks/useWithOrchestratorTheme.ts +3 -5
- package/src/icons/WfoActualWork.tsx +8 -17
- package/src/icons/WfoArrowsExpand.stories.tsx +3 -3
- package/src/icons/WfoArrowsExpand.tsx +12 -28
- package/src/icons/WfoBell.tsx +12 -28
- package/src/icons/WfoBoltFill.tsx +15 -31
- package/src/icons/WfoBoltSlashFill.tsx +15 -31
- package/src/icons/WfoChartBar.tsx +22 -26
- package/src/icons/WfoCheckmarkCircleFill.stories.tsx +3 -3
- package/src/icons/WfoCheckmarkCircleFill.tsx +11 -27
- package/src/icons/WfoChevronDown.stories.tsx +3 -3
- package/src/icons/WfoChevronDown.tsx +12 -28
- package/src/icons/WfoChevronUp.stories.tsx +3 -3
- package/src/icons/WfoChevronUp.tsx +12 -28
- package/src/icons/WfoClipboardCopy.stories.tsx +3 -3
- package/src/icons/WfoClipboardCopy.tsx +12 -28
- package/src/icons/WfoCode.stories.tsx +3 -3
- package/src/icons/WfoCode.tsx +14 -30
- package/src/icons/WfoCogFill.stories.tsx +3 -3
- package/src/icons/WfoCogFill.tsx +18 -28
- package/src/icons/WfoContactEnvelopeFill.tsx +9 -24
- package/src/icons/WfoCubeFill.tsx +14 -35
- package/src/icons/WfoCubeSolid.tsx +12 -28
- package/src/icons/WfoDotsHorizontal.tsx +12 -28
- package/src/icons/WfoExclamationTriangle.tsx +13 -24
- package/src/icons/WfoExternalLink.tsx +9 -25
- package/src/icons/WfoEyeFill.stories.tsx +3 -3
- package/src/icons/WfoEyeFill.tsx +14 -30
- package/src/icons/WfoIconProps.ts +3 -3
- package/src/icons/WfoLogoutIcon.stories.tsx +3 -3
- package/src/icons/WfoLogoutIcon.tsx +12 -28
- package/src/icons/WfoMalfunction.tsx +8 -17
- package/src/icons/WfoMinusCircleFill.stories.tsx +3 -3
- package/src/icons/WfoMinusCircleFill.tsx +12 -28
- package/src/icons/WfoMinusCircleOutline.stories.tsx +3 -3
- package/src/icons/WfoMinusCircleOutline.tsx +11 -27
- package/src/icons/WfoPencil.tsx +12 -30
- package/src/icons/WfoPencilAlt.stories.tsx +3 -3
- package/src/icons/WfoPencilAlt.tsx +12 -28
- package/src/icons/WfoPlannedWork.tsx +9 -18
- package/src/icons/WfoPlayCircle.tsx +14 -30
- package/src/icons/WfoPlayFill.stories.tsx +3 -3
- package/src/icons/WfoPlayFill.tsx +14 -30
- package/src/icons/WfoPlusCircleFill.stories.tsx +3 -3
- package/src/icons/WfoPlusCircleFill.tsx +12 -28
- package/src/icons/WfoPort.tsx +9 -18
- package/src/icons/WfoQuestionCircle.tsx +13 -29
- package/src/icons/WfoRefresh.stories.tsx +3 -3
- package/src/icons/WfoRefresh.tsx +14 -30
- package/src/icons/WfoSearchStrikethrough.stories.tsx +3 -3
- package/src/icons/WfoSearchStrikethrough.tsx +12 -28
- package/src/icons/WfoShare.tsx +14 -30
- package/src/icons/WfoSideMenu.stories.tsx +3 -3
- package/src/icons/WfoSideMenu.tsx +10 -34
- package/src/icons/WfoSortAsc.stories.tsx +3 -3
- package/src/icons/WfoSortAsc.tsx +12 -28
- package/src/icons/WfoSortDesc.stories.tsx +3 -3
- package/src/icons/WfoSortDesc.tsx +12 -28
- package/src/icons/WfoStatistic.tsx +32 -36
- package/src/icons/WfoStatusDotIcon.stories.tsx +3 -3
- package/src/icons/WfoStatusDotIcon.tsx +10 -26
- package/src/icons/WfoTrash.tsx +13 -23
- package/src/icons/WfoViewList.tsx +9 -19
- package/src/icons/WfoWarningTriangle.tsx +13 -23
- package/src/icons/WfoXCircleFill.stories.tsx +3 -3
- package/src/icons/WfoXCircleFill.tsx +12 -28
- package/src/icons/WfoXMarkSmall.tsx +9 -24
- package/src/icons/heroicons/WfoArrowDown.tsx +8 -18
- package/src/icons/heroicons/WfoArrowUp.tsx +8 -18
- package/src/icons/heroicons/WfoArrowsUpDown.tsx +8 -18
- package/src/icons/heroicons/WfoBracketSquare.tsx +16 -20
- package/src/icons/heroicons/WfoCommandLine.tsx +16 -20
- package/src/icons/heroicons/WfoHeroIconsWrapper.tsx +23 -26
- package/src/icons/heroicons/WfoScheduledTaskOnce.tsx +14 -24
- package/src/icons/heroicons/WfoScheduledTaskRecurring.tsx +18 -24
- package/src/icons/heroicons/WfoSquareStack3dStack.tsx +7 -19
- package/src/icons/heroicons/WfoTableCells.tsx +16 -20
- package/src/icons/heroicons/WfoWrench.tsx +8 -18
- package/src/messages/en-GB.json +623 -623
- package/src/messages/getTranslationMessages.spec.ts +3 -3
- package/src/messages/nl-NL.json +492 -492
- package/src/messages/useGetTranslationMessages.ts +20 -20
- package/src/pages/metadata/WfoMetadataPageLayout.tsx +53 -60
- package/src/pages/metadata/WfoProductBlocksPage.tsx +229 -283
- package/src/pages/metadata/WfoProductsPage.tsx +217 -282
- package/src/pages/metadata/WfoResourceTypesPage.tsx +178 -230
- package/src/pages/metadata/WfoScheduleTaskFormPage.tsx +365 -407
- package/src/pages/metadata/WfoScheduledTasksPage.tsx +173 -226
- package/src/pages/metadata/WfoTasksPage.tsx +247 -337
- package/src/pages/metadata/WfoWorkflowsPage.tsx +213 -282
- package/src/pages/metadata/taskListObjectMapper.ts +26 -34
- package/src/pages/metadata/workflowListObjectMapper.ts +23 -31
- package/src/pages/processes/WfoProcessDetail.tsx +247 -346
- package/src/pages/processes/WfoProcessDetailPage.tsx +53 -76
- package/src/pages/processes/WfoProcessListSubscriptionsCell.tsx +55 -64
- package/src/pages/processes/WfoProductInformationWithLink.tsx +18 -26
- package/src/pages/processes/WfoStartProcessPage.tsx +121 -153
- package/src/pages/processes/timelineUtils.spec.ts +167 -179
- package/src/pages/processes/timelineUtils.ts +63 -87
- package/src/pages/settings/WfoSettingsPage.tsx +131 -161
- package/src/pages/startPage/WfoStartPage.tsx +36 -45
- package/src/pages/startPage/mappers.ts +8 -10
- package/src/pages/startPage/queryVariables.ts +84 -93
- package/src/pages/startPage/useStartPageSummaryCardConfigurationOverride.ts +6 -8
- package/src/pages/subscriptions/WfoSubscriptionDetailPage.tsx +9 -9
- package/src/pages/subscriptions/WfoSubscriptionsListPage.tsx +66 -85
- package/src/pages/tasks/WfoTasksListPage.tsx +129 -156
- package/src/pages/tasks/getTasksListTabTypeFromString.ts +12 -14
- package/src/pages/tasks/tabConfig.ts +41 -44
- package/src/pages/workflows/WfoWorkflowsListPage.tsx +73 -88
- package/src/pages/workflows/getWorkflowsListTabTypeFromString.ts +12 -14
- package/src/pages/workflows/tabConfig.ts +41 -44
- package/src/rtk/api.ts +113 -132
- package/src/rtk/endpoints/agentExport.ts +12 -12
- package/src/rtk/endpoints/availability.ts +29 -32
- package/src/rtk/endpoints/customerDescriptions.ts +40 -46
- package/src/rtk/endpoints/customers.ts +26 -40
- package/src/rtk/endpoints/fileUpload.ts +20 -20
- package/src/rtk/endpoints/forms.ts +41 -54
- package/src/rtk/endpoints/inSync.ts +16 -19
- package/src/rtk/endpoints/metadata/productBlocks.ts +37 -43
- package/src/rtk/endpoints/metadata/products.ts +37 -42
- package/src/rtk/endpoints/metadata/resourceTypes.ts +38 -44
- package/src/rtk/endpoints/metadata/scheduledTasks.ts +88 -99
- package/src/rtk/endpoints/metadata/tasks.ts +21 -32
- package/src/rtk/endpoints/metadata/workflows.ts +65 -86
- package/src/rtk/endpoints/processDetail.ts +87 -103
- package/src/rtk/endpoints/processList.ts +20 -29
- package/src/rtk/endpoints/processListSummary.ts +18 -34
- package/src/rtk/endpoints/processStatusCounts.ts +16 -16
- package/src/rtk/endpoints/processSteps.ts +17 -27
- package/src/rtk/endpoints/productsSummary.ts +21 -26
- package/src/rtk/endpoints/relatedSubscriptions.ts +27 -38
- package/src/rtk/endpoints/search.ts +63 -82
- package/src/rtk/endpoints/settings.ts +110 -119
- package/src/rtk/endpoints/startOptions.ts +64 -80
- package/src/rtk/endpoints/streamMessages.ts +102 -125
- package/src/rtk/endpoints/subscriptionActions.ts +14 -24
- package/src/rtk/endpoints/subscriptionDetail.ts +23 -35
- package/src/rtk/endpoints/subscriptionInUseByRelationsList.ts +22 -32
- package/src/rtk/endpoints/subscriptionList.ts +19 -31
- package/src/rtk/endpoints/subscriptionListMutation.ts +65 -81
- package/src/rtk/endpoints/subscriptionListSummary.ts +23 -29
- package/src/rtk/endpoints/translations.ts +16 -19
- package/src/rtk/endpoints/versions.ts +9 -9
- package/src/rtk/slices/customApis.ts +8 -10
- package/src/rtk/slices/orchestratorComponentOverride.ts +20 -22
- package/src/rtk/slices/orchestratorConfig.ts +7 -10
- package/src/rtk/slices/pydanticForm.ts +7 -9
- package/src/rtk/slices/toastMessages.ts +26 -36
- package/src/rtk/store.ts +35 -44
- package/src/rtk/storeProvider.tsx +20 -21
- package/src/rtk/utils.spec.ts +68 -68
- package/src/rtk/utils.ts +72 -80
- package/src/rtk/wfoGraphqlRequestBaseQuery.ts +44 -63
- package/src/theme/baseStyles/formFieldsBaseStyle.ts +12 -12
- package/src/theme/wfoThemeModifications.ts +92 -95
- package/src/types/forms.ts +20 -20
- package/src/types/search.ts +89 -94
- package/src/types/types.ts +378 -403
- package/src/utils/cacheTag.spec.ts +8 -8
- package/src/utils/cacheTag.ts +7 -7
- package/src/utils/compareVersions.spec.ts +38 -116
- package/src/utils/compareVersions.ts +28 -48
- package/src/utils/csvDownload.ts +68 -83
- package/src/utils/date.spec.ts +142 -179
- package/src/utils/date.ts +64 -84
- package/src/utils/environmentVariables.spec.ts +12 -12
- package/src/utils/environmentVariables.ts +7 -7
- package/src/utils/filterData.spec.ts +18 -20
- package/src/utils/filterData.ts +7 -10
- package/src/utils/getDefaultTableConfig.ts +91 -113
- package/src/utils/getEnvironmentVariables.spec.ts +30 -32
- package/src/utils/getEnvironmentVariables.ts +19 -22
- package/src/utils/getObjectKeys.ts +2 -3
- package/src/utils/getProductNamesFromProcess.spec.ts +125 -127
- package/src/utils/getProductNamesFromProcess.ts +7 -9
- package/src/utils/getQueryParams.spec.ts +31 -34
- package/src/utils/getQueryParams.ts +9 -12
- package/src/utils/getQueryUrl.spec.ts +4 -4
- package/src/utils/getQueryUrl.ts +3 -3
- package/src/utils/getQueryVariablesForExport.spec.ts +12 -12
- package/src/utils/getQueryVariablesForExport.ts +4 -6
- package/src/utils/getStatusBadgeColor.ts +13 -13
- package/src/utils/getToastMessage.spec.ts +20 -20
- package/src/utils/getToastMessage.ts +24 -28
- package/src/utils/getTokenName.spec.ts +16 -16
- package/src/utils/getTokenName.ts +10 -10
- package/src/utils/getTypedFieldFromObject.spec.ts +13 -13
- package/src/utils/getTypedFieldFromObject.ts +5 -8
- package/src/utils/onlyUnique.spec.ts +15 -15
- package/src/utils/onlyUnique.ts +1 -1
- package/src/utils/optionalArray.spec.ts +65 -78
- package/src/utils/optionalArray.ts +10 -16
- package/src/utils/resultFlattener.spec.ts +40 -43
- package/src/utils/resultFlattener.ts +10 -21
- package/src/utils/string.spec.ts +133 -133
- package/src/utils/strings.ts +11 -11
- package/src/utils/toObjectWithSerializedValues.spec.ts +24 -24
- package/src/utils/toObjectWithSerializedValues.ts +9 -15
- package/src/utils/toObjectWithSortedKeys.ts +21 -24
- package/src/utils/toSortedObjectKeys.spec.ts +25 -29
- package/src/utils/uuid.spec.ts +16 -16
- package/src/utils/uuid.ts +2 -5
- package/tsconfig.build.json +10 -16
- package/tsconfig.json +10 -16
- 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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
// 2 - Empty query string returning directly fieldName:value
|
|
13
|
+
if (queryString === '') {
|
|
14
|
+
return `${fieldName}:${toQueryValue(value)}`;
|
|
15
|
+
}
|
|
20
16
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
9
|
-
|
|
8
|
+
field: keyof T;
|
|
9
|
+
sortOrder: SortOrder;
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
export type WfoDataSearch<T> = {
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
field: keyof T;
|
|
14
|
+
searchText: string;
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
-
export const getSortDirectionFromString = (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return undefined;
|
|
22
|
-
}
|
|
17
|
+
export const getSortDirectionFromString = (sortOrder?: string): SortOrder | undefined => {
|
|
18
|
+
if (!sortOrder) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
23
21
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
46
|
-
|
|
45
|
+
// when
|
|
46
|
+
const result = getTableConfigFromLocalStorage<unknown>('testCase1');
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
// then
|
|
49
|
+
expect(result).toEqual(testObject);
|
|
50
|
+
});
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
-
|
|
61
|
-
|
|
60
|
+
// when
|
|
61
|
+
const result = getTableConfigFromLocalStorage<unknown>('testCase2');
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
// then
|
|
64
|
+
expect(result).toEqual(undefined);
|
|
65
|
+
});
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
-
|
|
74
|
-
|
|
73
|
+
// when
|
|
74
|
+
const result = getTableConfigFromLocalStorage<unknown>('testCase3');
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
|
|
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
|
-
|
|
5
|
-
|
|
4
|
+
hiddenColumns: TableColumnKeys<T>;
|
|
5
|
+
selectedPageSize: number;
|
|
6
6
|
};
|
|
7
7
|
|
|
8
|
-
export const isValidLocalStorageTableConfig = <T>(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
31
|
-
updatedTableConfig
|
|
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
|
-
|
|
40
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
totalItemCount: 101,
|
|
116
|
-
};
|
|
24
|
+
describe('determineNewSortOrder', () => {
|
|
25
|
+
type TestData = {
|
|
26
|
+
column1: object;
|
|
27
|
+
column2: object;
|
|
28
|
+
};
|
|
117
29
|
|
|
118
|
-
|
|
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
|
-
|
|
121
|
-
});
|
|
35
|
+
const result = determineNewSortOrder<TestData>(currentSortColumnId, currentSortDirection, newSortColumnId);
|
|
122
36
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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
|
-
|
|
113
|
+
const result = getPageCount(pagination);
|
|
131
114
|
|
|
132
|
-
|
|
133
|
-
});
|
|
115
|
+
expect(result).toEqual(51);
|
|
134
116
|
});
|
|
117
|
+
});
|
|
135
118
|
});
|