diff --git a/CHANGELOG.md b/CHANGELOG.md index 605cc0843..d8242e3c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ - Technical User Creation - API Response Changes - AppSubscription, Service Subscription, Company Subscription - Validation of Technical User UIs for multiple tech user support +- Application Request + - Implement Expandable Status Detail Overlay - Admin Credential - Implement Credential Revocation Feature - Add Credential Status diff --git a/DEPENDENCIES b/DEPENDENCIES index d867432f5..09ab5658a 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -42,7 +42,7 @@ npm/npmjs/-/base64-js/1.5.1, MIT, approved, clearlydefined npm/npmjs/-/binary-extensions/2.3.0, MIT, approved, #13867 npm/npmjs/-/brace-expansion/1.1.11, MIT, approved, clearlydefined npm/npmjs/-/brace-expansion/2.0.1, MIT, approved, clearlydefined -npm/npmjs/-/braces/3.0.2, MIT, approved, clearlydefined +npm/npmjs/-/braces/3.0.2, MIT, approved, #14866 npm/npmjs/-/browserslist/4.23.0, MIT, approved, clearlydefined npm/npmjs/-/bs-logger/0.2.6, MIT, approved, clearlydefined npm/npmjs/-/bser/2.1.1, Apache-2.0, approved, clearlydefined @@ -599,7 +599,7 @@ npm/npmjs/@babel/template/7.24.0, MIT, approved, clearlydefined npm/npmjs/@babel/traverse/7.24.1, MIT AND (BSD-2-Clause AND ISC AND MIT) AND BSD-2-Clause AND BSD-3-Clause, approved, #13926 npm/npmjs/@babel/types/7.24.0, MIT, approved, clearlydefined npm/npmjs/@bcoe/v8-coverage/0.2.3, ISC AND MIT, approved, clearlydefined -npm/npmjs/@catena-x/portal-shared-components/3.0.10, Apache-2.0 AND CC-BY-4.0 AND OFL-1.1, approved, #14247 +npm/npmjs/@catena-x/portal-shared-components/3.0.11, Apache-2.0 AND CC-BY-4.0 AND OFL-1.1, approved, #14247 npm/npmjs/@cspotcode/source-map-support/0.8.1, MIT, approved, clearlydefined npm/npmjs/@date-io/core/3.0.0, MIT, approved, clearlydefined npm/npmjs/@date-io/date-fns/3.0.0, MIT, approved, #14023 diff --git a/package.json b/package.json index 0b62741ea..e91aa707c 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ ] }, "dependencies": { - "@catena-x/portal-shared-components": "^3.0.10", + "@catena-x/portal-shared-components": "^3.0.11", "@emotion/react": "^11.11.4", "@emotion/styled": "^11.11.0", "@hookform/error-message": "^2.0.1", diff --git a/src/components/pages/Admin/components/RegistrationRequests/CompanyDetailOverlay/index.tsx b/src/components/pages/Admin/components/RegistrationRequests/CompanyDetailOverlay/index.tsx index 363d9a941..fc64b33d3 100644 --- a/src/components/pages/Admin/components/RegistrationRequests/CompanyDetailOverlay/index.tsx +++ b/src/components/pages/Admin/components/RegistrationRequests/CompanyDetailOverlay/index.tsx @@ -361,7 +361,10 @@ const CompanyDetailOverlay = ({ - + diff --git a/src/components/pages/Admin/components/RegistrationRequests/components/CheckList/CheckListFullButtons.tsx b/src/components/pages/Admin/components/RegistrationRequests/components/CheckList/CheckListFullButtons.tsx index aaf879c99..f3ccec8ab 100644 --- a/src/components/pages/Admin/components/RegistrationRequests/components/CheckList/CheckListFullButtons.tsx +++ b/src/components/pages/Admin/components/RegistrationRequests/components/CheckList/CheckListFullButtons.tsx @@ -33,10 +33,12 @@ import { ProgressVerificationButton } from 'components/shared/basic/ProgressVeri interface CheckListFullButtonsProps { progressButtons?: Array + selectedRequestId?: string } export default function CheckListFullButtons({ progressButtons, + selectedRequestId, }: CheckListFullButtonsProps) { const { t } = useTranslation() const [checkListButtons, setCheckListButtons] = @@ -143,7 +145,11 @@ export default function CheckListFullButtons({ {checkListButtons && ( {checkListButtons.map((button: ProgressButtonsType) => ( - + ))} )} diff --git a/src/components/pages/Admin/components/RegistrationRequests/components/CheckList/CheckListStatusOverlay.tsx b/src/components/pages/Admin/components/RegistrationRequests/components/CheckList/CheckListStatusOverlay.tsx deleted file mode 100644 index 528d65124..000000000 --- a/src/components/pages/Admin/components/RegistrationRequests/components/CheckList/CheckListStatusOverlay.tsx +++ /dev/null @@ -1,688 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2023 Mercedes-Benz Group AG and BMW Group AG - * Copyright (c) 2023 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - ********************************************************************************/ - -import { useEffect, useReducer } from 'react' -import MuiDialog from '@mui/material/Dialog' -import MuiDialogContent from '@mui/material/DialogContent' -import { - Button, - CircleProgress, - IconButton, - Input, - Typography, -} from '@catena-x/portal-shared-components' -import CheckList from '.' -import { - EndUrlMap, - RetriggerableProcessSteps, - type ProgressButtonsType, - ProgressStatus, - StatusType, - useApproveChecklistMutation, - useDeclineChecklistMutation, - useFetchCheckListDetailsQuery, - useRetriggerProcessMutation, -} from 'features/admin/applicationRequestApiSlice' -import { useTranslation } from 'react-i18next' -import CloseIcon from '@mui/icons-material/Close' -import { useDispatch } from 'react-redux' -import { refreshApplicationRequest } from 'features/admin/registration/actions' - -interface CheckListStatusOverlayProps { - openDialog?: boolean - handleOverlayClose: React.MouseEventHandler - selectedButton?: ProgressButtonsType - modalWidth?: string - selectedRequestId: string -} - -enum ActionKind { - SET_RETRIGGER_LOADING = 'SET_RETRIGGER_LOADING', - SET_APPROVE_LOADING = 'SET_APPROVE_LOADING', - SET_DECLINE_LOADING = 'SET_DECLINE_LOADING', - SET_SELECTED_CHECKLISTBUTTON = 'SET_SELECTED_CHECKLISTBUTTON', - SET_CHECKLIST_BUTTONS = 'SET_CHECKLIST_BUTTONS', - SET_ERROR = 'SET_ERROR', - SET_CHECKLISTBUTTONS_AND_SELECTEDBUTTON = 'SET_CHECKLISTBUTTONS_AND_SELECTEDBUTTON', - SET_SHOW_INPUT = 'SET_SHOW_INPUT', - STOP_DECLINE_LOADIN_SHOW_INPUT = 'STOP_DECLINE_LOADIN_SHOW_INPUT', - SET_DECLINE_COMMENT = 'SET_DECLINE_COMMENT', - SET_CHECKLIST_BUTTONS_AND_SHOWINPUT = 'SET_CHECKLIST_BUTTONS_AND_SHOWINPUT', -} - -type State = { - retriggerLoading: boolean - approveLoading: boolean - declineLoading: boolean - selectedCheckListButton: ProgressButtonsType - checkListButton: ProgressButtonsType[] - error: string - showInput: boolean - declineComment: string -} - -const initialState: State = { - retriggerLoading: false, - approveLoading: false, - declineLoading: false, - selectedCheckListButton: { - statusId: ProgressStatus.DONE, - typeId: StatusType.BUSINESS_PARTNER_NUMBER, - }, - checkListButton: [], - error: '', - showInput: false, - declineComment: '', -} - -type Action = { - type: string - // Add an ESLint exception until there is a solution - // eslint-disable-next-line - payload: any -} - -function reducer(state: State, { type, payload }: Action) { - switch (type) { - case ActionKind.SET_RETRIGGER_LOADING: - return { ...state, retriggerLoading: payload } - case ActionKind.SET_APPROVE_LOADING: - return { ...state, approveLoading: payload } - case ActionKind.SET_DECLINE_LOADING: - return { ...state, declineLoading: payload } - case ActionKind.SET_SELECTED_CHECKLISTBUTTON: - return { ...state, selectedCheckListButton: payload } - case ActionKind.SET_CHECKLIST_BUTTONS: - return { ...state, checkListButton: payload } - case ActionKind.SET_ERROR: - return { ...state, error: payload } - case ActionKind.SET_SHOW_INPUT: - return { ...state, showInput: payload } - case ActionKind.SET_CHECKLISTBUTTONS_AND_SELECTEDBUTTON: - return { - ...state, - selectedCheckListButton: payload.selected, - checkListButton: payload.buttons, - } - case ActionKind.STOP_DECLINE_LOADIN_SHOW_INPUT: - return { - ...state, - declineLoading: payload.declineLoading, - showInput: payload.showInput, - } - case ActionKind.SET_DECLINE_COMMENT: - return { - ...state, - declineComment: payload, - } - case ActionKind.SET_CHECKLIST_BUTTONS_AND_SHOWINPUT: - return { - ...state, - checkListButton: payload.checkListButton, - showInput: payload.showInput, - } - default: - return state - } -} - -const CheckListStatusOverlay = ({ - openDialog = false, - handleOverlayClose, - selectedButton, - modalWidth = '900', - selectedRequestId, -}: CheckListStatusOverlayProps) => { - const { t } = useTranslation() - const dispatch = useDispatch() - const [approveChecklist] = useApproveChecklistMutation() - const [declineChecklist] = useDeclineChecklistMutation() - const [retriggerProcess] = useRetriggerProcessMutation() - const { data } = useFetchCheckListDetailsQuery(selectedRequestId) - const [ - { - retriggerLoading, - approveLoading, - declineLoading, - selectedCheckListButton, - checkListButton, - error, - showInput, - declineComment, - }, - setState, - ] = useReducer(reducer, initialState) - - useEffect(() => { - setTimeout(() => { - if (data && selectedButton) { - setState({ - type: ActionKind.SET_CHECKLISTBUTTONS_AND_SELECTEDBUTTON, - payload: { - selected: data.find( - (btn: ProgressButtonsType) => btn.typeId === selectedButton.typeId - ), - buttons: data, - }, - }) - } - }, 100) - }, [data, selectedButton]) - - const reset = (button: ProgressButtonsType) => { - setState({ - type: ActionKind.SET_CHECKLIST_BUTTONS_AND_SHOWINPUT, - payload: { - checkListButton: data, - showInput: false, - }, - }) - button.highlight = true - setState({ type: ActionKind.SET_SELECTED_CHECKLISTBUTTON, payload: button }) - } - - const onUpdateComment = ( - e: React.ChangeEvent - ) => { - setState({ - type: ActionKind.SET_DECLINE_COMMENT, - payload: e.target.value, - }) - } - - const onApprove = async () => { - setState({ type: ActionKind.SET_APPROVE_LOADING, payload: true }) - await approveChecklist(selectedRequestId) - .unwrap() - .then((payload) => { - console.log('fulfilled', payload) - }) - .catch((error) => { - setState({ type: ActionKind.SET_ERROR, payload: error.data.title }) - }) - setState({ type: ActionKind.SET_APPROVE_LOADING, payload: false }) - dispatch(refreshApplicationRequest(Date.now())) - } - - const onDecline = () => { - setState({ type: ActionKind.SET_SHOW_INPUT, payload: true }) - } - - const onConfirmDecline = async () => { - setState({ type: ActionKind.SET_DECLINE_LOADING, payload: true }) - await declineChecklist({ - applicationId: selectedRequestId, - comment: declineComment, - }) - .unwrap() - .then((payload) => { - console.log('fulfilled', payload) - }) - .catch((error) => { - setState({ type: ActionKind.SET_ERROR, payload: error.data.title }) - }) - setState({ - type: ActionKind.STOP_DECLINE_LOADIN_SHOW_INPUT, - payload: { declineLoading: false, showInput: false }, - }) - dispatch(refreshApplicationRequest(Date.now())) - } - - const onRetrigger = () => { - setState({ type: ActionKind.SET_RETRIGGER_LOADING, payload: true }) - selectedCheckListButton.retriggerableProcessSteps.forEach( - async (process: string) => { - const args = { - applicationId: selectedRequestId, - endUrl: EndUrlMap[process], - } - await retriggerProcess(args) - .unwrap() - .then(() => { - setState({ type: ActionKind.SET_RETRIGGER_LOADING, payload: false }) - dispatch(refreshApplicationRequest(Date.now())) - }) - .catch((error) => { - setState({ - type: ActionKind.SET_RETRIGGER_LOADING, - payload: error.data.title, - }) - }) - } - ) - } - - const getStepName = () => - t(`content.checklistOverlay.${selectedCheckListButton?.typeId}.stepName`) - - const getAdditionalText = () => - t( - `content.checklistOverlay.${selectedCheckListButton?.typeId}.additionalText` - ) - - const getStpeDescription = () => - t( - `content.checklistOverlay.${selectedCheckListButton?.typeId}.stepDescription` - ) - - const getTitle = () => - t( - `content.checklistOverlay.${selectedCheckListButton?.typeId}.${selectedCheckListButton?.statusId}.title` - ) - - const getDescription = () => - t( - `content.checklistOverlay.${selectedCheckListButton?.typeId}.${selectedCheckListButton?.statusId}.description` - ) - - const canShowApproveAndDecline = () => - selectedCheckListButton?.typeId === StatusType.REGISTRATION_VERIFICATION && - selectedCheckListButton?.statusId === ProgressStatus.TO_DO - - const getButtonTitle = () => { - if ( - selectedCheckListButton.retriggerableProcessSteps.indexOf( - RetriggerableProcessSteps.TRIGGER_OVERRIDE_CLEARING_HOUSE - ) > -1 || - selectedCheckListButton.retriggerableProcessSteps.indexOf( - RetriggerableProcessSteps.OVERRIDE_BUSINESS_PARTNER_NUMBER - ) > -1 - ) { - return t('content.checklistOverlay.buttonOverwrite') - } - return t('content.checklistOverlay.buttonRetrigger') - } - - return ( - - - - - -
- {checkListButton && checkListButton.length === 0 ? ( - - - - ) : ( -
- { - reset(button) - }} - /> -
- )} -
-
- - {getStepName()} - - - {getStpeDescription()} - - {getAdditionalText() !== '' && ( - - {getAdditionalText()} - - )} -
-
-
- - {t('content.checklistOverlay.comments')} - - - {selectedCheckListButton?.details - ? selectedCheckListButton.details - : t('content.checklistOverlay.nocomments')} - -
-
-
- - {getTitle()} - - - {getDescription()} - -
- {showInput && ( -
- - ) => { - onUpdateComment(e) - }} - value={declineComment} - /> -
- )} -
- {selectedCheckListButton.retriggerableProcessSteps && - selectedCheckListButton.retriggerableProcessSteps?.length > 0 && - !showInput && ( - <> -
- {retriggerLoading && ( - - - - )} - {!retriggerLoading && ( - - )} -
-
- -
- - )} - {canShowApproveAndDecline() && !showInput && ( - <> -
- {approveLoading && ( - - - - )} - {!approveLoading && ( - - )} -
-
- -
- - )} - {showInput && ( -
-
- {declineLoading && ( - - - - )} - {!declineLoading && ( - <> - - - - )} -
-
- )} -
- {error !== '' && ( - - {error} - - )} - - - ) -} - -export default CheckListStatusOverlay diff --git a/src/components/pages/Admin/components/RegistrationRequests/index.tsx b/src/components/pages/Admin/components/RegistrationRequests/index.tsx index 4d2077d3e..0e367b423 100644 --- a/src/components/pages/Admin/components/RegistrationRequests/index.tsx +++ b/src/components/pages/Admin/components/RegistrationRequests/index.tsx @@ -38,7 +38,6 @@ import { RequestList } from './components/RequestList' import { ServerResponseOverlay } from 'components/overlays/ServerResponse' import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline' import AddBpnOveraly from './ConfirmationOverlay/AddBpnOverlay' -import CheckListStatusOverlay from './components/CheckList/CheckListStatusOverlay' import ConfirmCancelOverlay from './ConfirmationOverlay/ConfirmCancelOverlay' import type { AppDispatch } from 'features/store' @@ -76,8 +75,6 @@ export default function RegistrationRequests() { const [successOverlay, setSuccessOverlay] = useState(false) const [errorOverlay, setErrorOverlay] = useState(false) - const [statusConfirmationOverlay, setStatusConfirmationOverlay] = - useState(false) const [confirmCancelModalOpen, setConfirmCancelModalOpen] = useState(false) const [selectedRequestName, setSelectedRequestName] = useState('') @@ -222,15 +219,6 @@ export default function RegistrationRequests() { companyName={selectedRequestName} selectedRequestId={selectedRequestId} /> - {statusConfirmationOverlay && selectedRequestId && ( - { - setStatusConfirmationOverlay(false) - }} - selectedRequestId={selectedRequestId} - /> - )} { + const { t } = useTranslation() + const dispatch = useDispatch() + + const [approveChecklist] = useApproveChecklistMutation() + const [declineChecklist] = useDeclineChecklistMutation() + const [retriggerProcess] = useRetriggerProcessMutation() + + const [ + { + retriggerLoading, + approveLoading, + declineLoading, + error, + showInput, + declineComment, + }, + setState, + ] = useReducer(reducer, initialState) + + const onUpdateComment = ( + e: React.ChangeEvent + ) => { + setState({ + type: ActionKind.SET_DECLINE_COMMENT, + payload: e.target.value, + }) + } + + const onApprove = async () => { + if (!selectedRequestId) return + setState({ type: ActionKind.SET_APPROVE_LOADING, payload: true }) + await approveChecklist(selectedRequestId) + .unwrap() + .then((payload) => { + console.log('fulfilled', payload) + }) + .catch((error) => { + setState({ type: ActionKind.SET_ERROR, payload: error.data.title }) + }) + setState({ type: ActionKind.SET_APPROVE_LOADING, payload: false }) + dispatch(refreshApplicationRequest(Date.now())) + } + + const onDecline = () => { + setState({ type: ActionKind.SET_SHOW_INPUT, payload: true }) + } + + const onConfirmDecline = async () => { + if (!selectedRequestId) return + setState({ type: ActionKind.SET_DECLINE_LOADING, payload: true }) + await declineChecklist({ + applicationId: selectedRequestId, + comment: declineComment, + }) + .unwrap() + .then((payload) => { + console.log('fulfilled', payload) + }) + .catch((error) => { + setState({ type: ActionKind.SET_ERROR, payload: error.data.title }) + }) + setState({ + type: ActionKind.STOP_DECLINE_LOADIN_SHOW_INPUT, + payload: { declineLoading: false, showInput: false }, + }) + dispatch(refreshApplicationRequest(Date.now())) + } + + const onRetrigger = () => { + if (!selectedRequestId) return + console.log( + 'props.retriggerableProcessSteps', + props.retriggerableProcessSteps + ) + setState({ type: ActionKind.SET_RETRIGGER_LOADING, payload: true }) + props.retriggerableProcessSteps && + props.retriggerableProcessSteps.forEach(async (process: string) => { + const args = { + applicationId: selectedRequestId, + endUrl: EndUrlMap[process], + } + await retriggerProcess(args) + .unwrap() + .then(() => { + setState({ type: ActionKind.SET_RETRIGGER_LOADING, payload: false }) + dispatch(refreshApplicationRequest(Date.now())) + }) + .catch((error) => { + setState({ + type: ActionKind.SET_RETRIGGER_LOADING, + payload: error.data.title, + }) + }) + }) + } + + const getStepName = () => + t(`content.checklistOverlay.${props.typeId}.stepName`) + + const getAdditionalText = () => + t(`content.checklistOverlay.${props.typeId}.additionalText`) + + const getStpeDescription = () => + t(`content.checklistOverlay.${props.typeId}.stepDescription`) + + const getTitle = () => + t(`content.checklistOverlay.${props.typeId}.${props.statusId}.title`) + + const getDescription = () => + t(`content.checklistOverlay.${props.typeId}.${props.statusId}.description`) + + const getButtonTitle = () => { + if ( + (props.retriggerableProcessSteps && + props.retriggerableProcessSteps.indexOf( + RetriggerableProcessSteps.TRIGGER_OVERRIDE_CLEARING_HOUSE + ) > -1) ?? + (props.retriggerableProcessSteps && + props.retriggerableProcessSteps.indexOf( + RetriggerableProcessSteps.OVERRIDE_BUSINESS_PARTNER_NUMBER + ) > -1) + ) { + return t('content.checklistOverlay.buttonOverwrite') + } + return t('content.checklistOverlay.buttonRetrigger') + } + + const canShowApproveAndDecline = () => + props.typeId === StatusType.REGISTRATION_VERIFICATION && + props.statusId === ProgressStatus.TO_DO + return ( - - - - {props.icon} - - {' '} - {props.label} - - - - - - - +
+ + + + {props.icon} + + {' '} + {props.label} + + + + + + + + ), + color: props?.backgroundColor ?? '#fff', + children: ( + <> +
+ + {getStepName()} + + + {getStpeDescription()} + + {getAdditionalText() !== '' && ( + + {getAdditionalText()} + + )} +
+
+
+ + {t('content.checklistOverlay.comments')} + + + {props.details + ? props.details + : t('content.checklistOverlay.nocomments')} + +
+
+
+ + {getTitle()} + + + {getDescription()} + +
+ {showInput && ( +
+ + ) => { + onUpdateComment(e) + }} + value={declineComment} + /> +
+ )} +
+ {props.retriggerableProcessSteps && + props.retriggerableProcessSteps?.length > 0 && + !showInput && ( + <> +
+ {retriggerLoading && ( + + + + )} + {!retriggerLoading && ( + + )} +
+
+ +
+ + )} + {canShowApproveAndDecline() && !showInput && ( + <> +
+ {approveLoading && ( + + + + )} + {!approveLoading && ( + + )} +
+
+ +
+ + )} + {showInput && ( +
+
+ {declineLoading && ( + + + + )} + {!declineLoading && ( + <> + + + + )} +
+
+ )} +
+ {error !== '' && ( + + {error} + + )} + + ), + }, + ]} + /> +
) } diff --git a/src/components/shared/basic/ProgressVerificationButton/style.scss b/src/components/shared/basic/ProgressVerificationButton/style.scss new file mode 100644 index 000000000..ea9d60947 --- /dev/null +++ b/src/components/shared/basic/ProgressVerificationButton/style.scss @@ -0,0 +1,37 @@ +/******************************************************************************** + * Copyright (c) 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ********************************************************************************/ + +.progress-verification { + .MuiAccordion-root { + margin-bottom: 20px !important; + + .MuiAccordionSummary-content { + margin-top: 0; + margin-bottom: 0; + + > div { + margin-bottom: 0; + } + } + } + + .MuiAccordion-root::before { + display: none; + } +} diff --git a/src/features/admin/applicationRequestApiSlice.ts b/src/features/admin/applicationRequestApiSlice.ts index d673a5095..94c182f18 100644 --- a/src/features/admin/applicationRequestApiSlice.ts +++ b/src/features/admin/applicationRequestApiSlice.ts @@ -120,6 +120,7 @@ export type ProgressButtonsType = { retriggerableProcessSteps?: string[] status?: string type?: string + selectedRequestId?: string } export const progressMapper = { diff --git a/yarn.lock b/yarn.lock index d1dac35a3..16e355ee7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -336,10 +336,10 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@catena-x/portal-shared-components@^3.0.10": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@catena-x/portal-shared-components/-/portal-shared-components-3.0.10.tgz#cd9d0c8e13ec0794407332fb5ac2f05ced711e4d" - integrity sha512-F0enQPprHw/mWFaBZtnUIwYvK90CdWsEjSYOXfEjoT7JXn+Hc0x9VcMrSSUOWhDxYKmCIODISksO7oL7gbJXLg== +"@catena-x/portal-shared-components@^3.0.11": + version "3.0.11" + resolved "https://registry.yarnpkg.com/@catena-x/portal-shared-components/-/portal-shared-components-3.0.11.tgz#24efe546ef1f6c31d76afd129e20a8709ff3ccd6" + integrity sha512-7BLuDQqKnT4ghcIAIMRTIhE84Cz7a/ooIr3mYJ7Hs9XWHSF8JIodXEkRWI9/50S+pdIhdk81ueMvE9nqW37HNQ== dependencies: "@date-io/date-fns" "^3.0.0" "@emotion/react" "^11.11.4"