@kartverket/backstage-plugin-risk-scorecard 6.2.2 → 6.2.4
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/dist/components/riScInfo/RiScSelectionCard.module.css.esm.js +2 -2
- package/dist/components/scenarioDrawer/ScenarioDrawer.esm.js +1 -1
- package/dist/components/scenarioDrawer/ScenarioDrawer.esm.js.map +1 -1
- package/dist/components/scenarioDrawer/scenarioDrawer.module.css.esm.js +2 -2
- package/dist/components/scenarioWizard/components/RiskTableBase.esm.js +2 -2
- package/dist/components/scenarioWizard/components/RiskTableBase.esm.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = ".
|
|
4
|
-
var riscStyles = {"selectTrigger":"
|
|
3
|
+
var css_248z = ".RiScSelectionCard_selectTrigger__3e2e061704 button {\n background-color: transparent;\n}\n\n[role='listbox'] {\n max-height: 400px;\n overflow-y: auto;\n}\n\n.RiScSelectionCard_riScInfoDialog__3e2e061704 {\n padding: 24px;\n border-radius: 4px;\n width: 800px;\n}\n\n.RiScSelectionCard_riscSelectionDialogHeader__3e2e061704 {\n padding: 0 0 16px 0;\n}\n\n.RiScSelectionCard_riscSelectionDialogBody__3e2e061704 {\n gap: 16px;\n padding: 16px 0 0 0;\n}\n\n.RiScSelectionCard_riscDescriptionComponent__3e2e061704 {\n padding-bottom: 10px;\n}\n.RiScSelectionCard_componentLayout__3e2e061704 {\n height: 60%;\n}\n\n.RiScSelectionCard_riscDescriptionContainer__3e2e061704 {\n margin-bottom: 16px;\n}\n\n.RiScSelectionCard_riScInfoDialog__3e2e061704 {\n background-color: var(--bui-bg-app);\n}\n";
|
|
4
|
+
var riscStyles = {"selectTrigger":"RiScSelectionCard_selectTrigger__3e2e061704","riScInfoDialog":"RiScSelectionCard_riScInfoDialog__3e2e061704","riscDescriptionComponent":"RiScSelectionCard_riscDescriptionComponent__3e2e061704","componentLayout":"RiScSelectionCard_componentLayout__3e2e061704","riscDescriptionContainer":"RiScSelectionCard_riscDescriptionContainer__3e2e061704"};
|
|
5
5
|
styleInject(css_248z);
|
|
6
6
|
|
|
7
7
|
export { riscStyles as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScenarioDrawer.esm.js","sources":["../../../src/components/scenarioDrawer/ScenarioDrawer.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport Box from '@mui/material/Box';\nimport { Button } from '@backstage/ui';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Drawer from '@mui/material/Drawer';\nimport { useEffect, useRef, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useRiScs } from '../../contexts/RiScContext';\nimport { useScenario } from '../../contexts/ScenarioContext';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { FormScenario } from '../../utils/types';\nimport { deleteScenario } from '../../utils/utilityfunctions';\nimport { MatrixDialog } from '../riScDialog/MatrixDialog';\nimport { CloseConfirmation } from '../scenarioWizard/components/CloseConfirmation';\nimport { ActionsSection } from './components/ActionsSection';\nimport { DeleteScenarioConfirmation } from './components/DeleteConfirmation';\nimport RiskFormSection from './components/RiskFormSection';\nimport ScopeFormSection from './components/ScopeFormSection';\nimport { Flex } from '@backstage/ui';\nimport { useBackstageContext } from '../../contexts/BackstageContext.tsx';\nimport alertBarStyles from '../common/alertBar.module.css';\nimport drawerStyles from './scenarioDrawer.module.css';\nimport { ScopeSection } from './components/ScopeSection.tsx';\nimport { RiskSection } from './components/RiskSection.tsx';\nimport AlertBar from '../common/AlertBar/AlertBar.tsx';\n\nexport function ScenarioDrawer() {\n const { profileInfo } = useBackstageContext();\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const [isEditing, setIsEditing] = useState(false);\n const {\n scenario,\n isDrawerOpen,\n isEditingAllowed,\n closeScenarioForm,\n submitEditedScenarioToRiSc,\n mapScenarioToFormScenario,\n mapFormScenarioToScenario,\n collapseAllActions,\n } = useScenario();\n const { selectedRiSc, updateRiSc } = useRiScs();\n\n const [deleteConfirmationIsOpen, setDeleteConfirmationIsOpen] =\n useState(false);\n\n const [showCloseConfirmation, setShowCloseConfirmation] = useState(false);\n\n const [isMatrixDialogOpen, setIsMatrixDialogOpen] = useState<boolean>(false);\n\n const { updateStatus, response } = useRiScs();\n\n const [currentUpdatedActionIDs, setCurrentUpdatedActionIDs] = useState<\n string[]\n >([]);\n\n // Used to scroll to the bottom of the drawer when the user deletes a scenario\n // via the quick edit and DeleteConfirmation\n const deleteScenarioRef = useRef<HTMLDivElement>(null);\n\n const formMethods = useForm<FormScenario>({\n defaultValues: mapScenarioToFormScenario(scenario),\n mode: 'onChange',\n });\n\n function onCancel() {\n formMethods.reset(mapScenarioToFormScenario(scenario));\n setIsEditing(false);\n }\n\n function handleClose() {\n closeScenarioForm();\n setIsEditing(false);\n setShowCloseConfirmation(false);\n collapseAllActions();\n }\n\n function onClose() {\n if (formMethods.formState.isDirty) {\n setShowCloseConfirmation(true);\n } else {\n closeScenarioForm();\n setIsEditing(false);\n collapseAllActions();\n }\n }\n\n const onSubmit = formMethods.handleSubmit((data: FormScenario) => {\n submitEditedScenarioToRiSc(mapFormScenarioToScenario(data), {\n onSuccess: () => {\n setCurrentUpdatedActionIDs([]);\n setIsEditing(false);\n },\n idsOfActionsToForceUpdateLastUpdatedValue: currentUpdatedActionIDs,\n profileInfo: profileInfo,\n });\n });\n\n function onSubmitAndCloseDialog() {\n onSubmit();\n setShowCloseConfirmation(false);\n\n if (deleteScenarioRef.current) {\n deleteScenarioRef.current.scrollIntoView({ behavior: 'smooth' });\n }\n }\n\n useEffect(() => {\n formMethods.reset(mapScenarioToFormScenario(scenario));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [scenario]);\n\n return (\n <Drawer\n PaperProps={{\n sx: theme => ({\n padding: theme.spacing(4),\n width: '50%',\n gap: theme.spacing(3),\n [theme.breakpoints.down('sm')]: {\n width: '90%',\n padding: theme.spacing(2),\n },\n backgroundColor:\n theme.palette.mode === 'dark' ? '#333333' : '#f8f8f8',\n }),\n }}\n variant=\"temporary\"\n ModalProps={{ sx: { zIndex: 100 } }}\n anchor=\"right\"\n open={isDrawerOpen}\n onClose={onClose}\n >\n <Box className={drawerStyles.topButtons}>\n {!isEditing && isEditingAllowed && (\n <Button\n size=\"medium\"\n variant=\"primary\"\n onClick={() => setIsEditing(true)}\n >\n {t('dictionary.edit')}\n </Button>\n )}\n <Button\n size=\"medium\"\n variant=\"secondary\"\n onClick={isEditing ? onCancel : onClose}\n >\n {t(isEditing ? 'dictionary.cancel' : 'dictionary.close')}\n </Button>\n </Box>\n\n {isEditing ? (\n <>\n <ScopeFormSection formMethods={formMethods} />\n <RiskFormSection\n formMethods={formMethods}\n setIsMatrixDialogOpen={setIsMatrixDialogOpen}\n />\n </>\n ) : (\n <>\n <Flex className={alertBarStyles.alertBarBox}>\n <AlertBar\n updateStatus={updateStatus}\n response={response}\n statusText={response?.statusMessage}\n />\n </Flex>\n <ScopeSection />\n <RiskSection />\n </>\n )}\n <ActionsSection formMethods={formMethods} isEditing={isEditing} />\n <Box className={drawerStyles.bottomButtons}>\n {isEditing && (\n <Button\n size=\"medium\"\n variant=\"primary\"\n onClick={onSubmit}\n isDisabled={\n !formMethods.formState.isDirty || updateStatus.isLoading\n }\n >\n {t('dictionary.save')}\n {updateStatus.isLoading && (\n <CircularProgress size={16} className={drawerStyles.spinner} />\n )}\n </Button>\n )}\n {isEditingAllowed && (\n <div ref={deleteScenarioRef}>\n <Button\n iconStart={<DeleteIcon />}\n size=\"medium\"\n variant=\"tertiary\"\n onClick={() => setDeleteConfirmationIsOpen(true)}\n >\n {t('scenarioDrawer.deleteScenarioButton')}\n </Button>\n </div>\n )}\n </Box>\n\n <DeleteScenarioConfirmation\n isOpen={deleteConfirmationIsOpen}\n setIsOpen={setDeleteConfirmationIsOpen}\n onConfirm={() => deleteScenario(selectedRiSc, updateRiSc, scenario)}\n />\n <MatrixDialog\n open={isMatrixDialogOpen}\n close={() => setIsMatrixDialogOpen(false)}\n />\n <CloseConfirmation\n isOpen={showCloseConfirmation}\n close={handleClose}\n save={onSubmitAndCloseDialog}\n />\n </Drawer>\n );\n}\n"],"names":["RiskFormSection","alertBarStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScenarioDrawer.esm.js","sources":["../../../src/components/scenarioDrawer/ScenarioDrawer.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport Box from '@mui/material/Box';\nimport { Button } from '@backstage/ui';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Drawer from '@mui/material/Drawer';\nimport { useEffect, useRef, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useRiScs } from '../../contexts/RiScContext';\nimport { useScenario } from '../../contexts/ScenarioContext';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { FormScenario } from '../../utils/types';\nimport { deleteScenario } from '../../utils/utilityfunctions';\nimport { MatrixDialog } from '../riScDialog/MatrixDialog';\nimport { CloseConfirmation } from '../scenarioWizard/components/CloseConfirmation';\nimport { ActionsSection } from './components/ActionsSection';\nimport { DeleteScenarioConfirmation } from './components/DeleteConfirmation';\nimport RiskFormSection from './components/RiskFormSection';\nimport ScopeFormSection from './components/ScopeFormSection';\nimport { Flex } from '@backstage/ui';\nimport { useBackstageContext } from '../../contexts/BackstageContext.tsx';\nimport alertBarStyles from '../common/alertBar.module.css';\nimport drawerStyles from './scenarioDrawer.module.css';\nimport { ScopeSection } from './components/ScopeSection.tsx';\nimport { RiskSection } from './components/RiskSection.tsx';\nimport AlertBar from '../common/AlertBar/AlertBar.tsx';\n\nexport function ScenarioDrawer() {\n const { profileInfo } = useBackstageContext();\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const [isEditing, setIsEditing] = useState(false);\n const {\n scenario,\n isDrawerOpen,\n isEditingAllowed,\n closeScenarioForm,\n submitEditedScenarioToRiSc,\n mapScenarioToFormScenario,\n mapFormScenarioToScenario,\n collapseAllActions,\n } = useScenario();\n const { selectedRiSc, updateRiSc } = useRiScs();\n\n const [deleteConfirmationIsOpen, setDeleteConfirmationIsOpen] =\n useState(false);\n\n const [showCloseConfirmation, setShowCloseConfirmation] = useState(false);\n\n const [isMatrixDialogOpen, setIsMatrixDialogOpen] = useState<boolean>(false);\n\n const { updateStatus, response } = useRiScs();\n\n const [currentUpdatedActionIDs, setCurrentUpdatedActionIDs] = useState<\n string[]\n >([]);\n\n // Used to scroll to the bottom of the drawer when the user deletes a scenario\n // via the quick edit and DeleteConfirmation\n const deleteScenarioRef = useRef<HTMLDivElement>(null);\n\n const formMethods = useForm<FormScenario>({\n defaultValues: mapScenarioToFormScenario(scenario),\n mode: 'onChange',\n });\n\n function onCancel() {\n formMethods.reset(mapScenarioToFormScenario(scenario));\n setIsEditing(false);\n }\n\n function handleClose() {\n closeScenarioForm();\n setIsEditing(false);\n setShowCloseConfirmation(false);\n collapseAllActions();\n }\n\n function onClose() {\n if (formMethods.formState.isDirty) {\n setShowCloseConfirmation(true);\n } else {\n closeScenarioForm();\n setIsEditing(false);\n collapseAllActions();\n }\n }\n\n const onSubmit = formMethods.handleSubmit((data: FormScenario) => {\n submitEditedScenarioToRiSc(mapFormScenarioToScenario(data), {\n onSuccess: () => {\n setCurrentUpdatedActionIDs([]);\n setIsEditing(false);\n },\n idsOfActionsToForceUpdateLastUpdatedValue: currentUpdatedActionIDs,\n profileInfo: profileInfo,\n });\n });\n\n function onSubmitAndCloseDialog() {\n onSubmit();\n setShowCloseConfirmation(false);\n\n if (deleteScenarioRef.current) {\n deleteScenarioRef.current.scrollIntoView({ behavior: 'smooth' });\n }\n }\n\n useEffect(() => {\n formMethods.reset(mapScenarioToFormScenario(scenario));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [scenario]);\n\n return (\n <Drawer\n PaperProps={{\n sx: theme => ({\n padding: theme.spacing(4),\n width: '50%',\n gap: theme.spacing(3),\n [theme.breakpoints.down('sm')]: {\n width: '90%',\n padding: theme.spacing(2),\n },\n backgroundColor: 'var(--bui-bg-app)',\n }),\n }}\n variant=\"temporary\"\n ModalProps={{ sx: { zIndex: 100 } }}\n anchor=\"right\"\n open={isDrawerOpen}\n onClose={onClose}\n >\n <Box className={drawerStyles.topButtons}>\n {!isEditing && isEditingAllowed && (\n <Button\n size=\"medium\"\n variant=\"primary\"\n onClick={() => setIsEditing(true)}\n >\n {t('dictionary.edit')}\n </Button>\n )}\n <Button\n size=\"medium\"\n variant=\"secondary\"\n onClick={isEditing ? onCancel : onClose}\n >\n {t(isEditing ? 'dictionary.cancel' : 'dictionary.close')}\n </Button>\n </Box>\n\n {isEditing ? (\n <>\n <ScopeFormSection formMethods={formMethods} />\n <RiskFormSection\n formMethods={formMethods}\n setIsMatrixDialogOpen={setIsMatrixDialogOpen}\n />\n </>\n ) : (\n <>\n <Flex className={alertBarStyles.alertBarBox}>\n <AlertBar\n updateStatus={updateStatus}\n response={response}\n statusText={response?.statusMessage}\n />\n </Flex>\n <ScopeSection />\n <RiskSection />\n </>\n )}\n <ActionsSection formMethods={formMethods} isEditing={isEditing} />\n <Box className={drawerStyles.bottomButtons}>\n {isEditing && (\n <Button\n size=\"medium\"\n variant=\"primary\"\n onClick={onSubmit}\n isDisabled={\n !formMethods.formState.isDirty || updateStatus.isLoading\n }\n >\n {t('dictionary.save')}\n {updateStatus.isLoading && (\n <CircularProgress size={16} className={drawerStyles.spinner} />\n )}\n </Button>\n )}\n {isEditingAllowed && (\n <div ref={deleteScenarioRef}>\n <Button\n iconStart={<DeleteIcon />}\n size=\"medium\"\n variant=\"tertiary\"\n onClick={() => setDeleteConfirmationIsOpen(true)}\n >\n {t('scenarioDrawer.deleteScenarioButton')}\n </Button>\n </div>\n )}\n </Box>\n\n <DeleteScenarioConfirmation\n isOpen={deleteConfirmationIsOpen}\n setIsOpen={setDeleteConfirmationIsOpen}\n onConfirm={() => deleteScenario(selectedRiSc, updateRiSc, scenario)}\n />\n <MatrixDialog\n open={isMatrixDialogOpen}\n close={() => setIsMatrixDialogOpen(false)}\n />\n <CloseConfirmation\n isOpen={showCloseConfirmation}\n close={handleClose}\n save={onSubmitAndCloseDialog}\n />\n </Drawer>\n );\n}\n"],"names":["RiskFormSection","alertBarStyles"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = ".
|
|
4
|
-
var drawerStyles = {"section":"
|
|
3
|
+
var css_248z = ".scenarioDrawer_section__fa844416db {\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n padding: 16px;\n position: relative;\n}\n\n.scenarioDrawer_riscSection__fa844416db {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n gap: 16px;\n width: 100%;\n padding: 16px;\n position: relative;\n box-shadow: none !important;\n}\n\n[data-theme-mode='dark'] .scenarioDrawer_section__fa844416db,\n[data-theme-mode='dark'] .scenarioDrawer_riscSection__fa844416db {\n background-color: var(--ros-gray-700);\n}\n\n.scenarioDrawer_headerSection__fa844416db {\n display: flex;\n flex-direction: column;\n gap: 4px;\n width: 100%;\n}\n\n.scenarioDrawer_selectSection__fa844416db {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 24px;\n row-gap: 16px;\n}\n\n.scenarioDrawer_deleteConfirmationDialog__fa844416db {\n width: 500px;\n padding: 16px;\n}\n\n.scenarioDrawer_deleteConfirmationDialogBody__fa844416db {\n display: flex;\n justify-content: space-between;\n}\n\n.scenarioDrawer_topButtons__fa844416db {\n display: flex;\n gap: 16px;\n margin-left: auto;\n}\n\n.scenarioDrawer_bottomButtons__fa844416db {\n display: flex;\n gap: 16px;\n}\n\n.scenarioDrawer_spinner__fa844416db {\n margin-left: 8px;\n color: inherit;\n}\n";
|
|
4
|
+
var drawerStyles = {"section":"scenarioDrawer_section__fa844416db","riscSection":"scenarioDrawer_riscSection__fa844416db","headerSection":"scenarioDrawer_headerSection__fa844416db","selectSection":"scenarioDrawer_selectSection__fa844416db","deleteConfirmationDialog":"scenarioDrawer_deleteConfirmationDialog__fa844416db","topButtons":"scenarioDrawer_topButtons__fa844416db","bottomButtons":"scenarioDrawer_bottomButtons__fa844416db","spinner":"scenarioDrawer_spinner__fa844416db"};
|
|
5
5
|
styleInject(css_248z);
|
|
6
6
|
|
|
7
7
|
export { drawerStyles as default };
|
|
@@ -50,9 +50,9 @@ function createInfoWithHeadersComponent(translationPrefix, InfoComponent, includ
|
|
|
50
50
|
return /* @__PURE__ */ jsx(Text, { as: "p", variant: "body-large", children: `${row}: ${t(`${translationPrefix}.rows.${row}`)}` });
|
|
51
51
|
}
|
|
52
52
|
return /* @__PURE__ */ jsxs(Box, { className: styles.riskTable, children: [
|
|
53
|
-
/* @__PURE__ */ jsxs(Box, { className: styles.consequenceGrid, children: [
|
|
53
|
+
/* @__PURE__ */ jsxs(Box, { className: includeLabel ? styles.consequenceGrid : styles.riskRow, children: [
|
|
54
54
|
includeLabel && /* @__PURE__ */ jsx(Box, { className: styles.riskLabelCell }),
|
|
55
|
-
Array.from({ length: 5 }, (_, i) => getRadioLabel(i))
|
|
55
|
+
Array.from({ length: 5 }, (_, i) => getRadioLabel(i + 1))
|
|
56
56
|
] }),
|
|
57
57
|
/* @__PURE__ */ jsx(InfoComponent, {})
|
|
58
58
|
] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RiskTableBase.esm.js","sources":["../../../../src/components/scenarioWizard/components/RiskTableBase.tsx"],"sourcesContent":["import { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { useController, UseFormReturn } from 'react-hook-form';\nimport { FormScenario } from '../../../utils/types';\nimport { RiskRadioButton } from './RiskRadioButton';\nimport RadioGroup from '@mui/material/RadioGroup';\nimport { Text, Box } from '@backstage/ui';\nimport styles from '../ScenarioWizardTable.module.css';\nimport React from 'react';\n\ntype RiskTableBaseProps = {\n formMethods: UseFormReturn<FormScenario>;\n riskType: keyof Pick<FormScenario, 'risk' | 'remainingRisk'>;\n fieldName: 'probability' | 'consequence';\n translationPrefix: 'probabilityTable' | 'consequenceTable';\n options: readonly number[];\n additionalClassName?: string;\n InfoComponent: React.ComponentType;\n};\n\nexport function RiskTableBase({\n formMethods,\n riskType,\n fieldName,\n options,\n additionalClassName = '',\n translationPrefix,\n InfoComponent,\n}: RiskTableBaseProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const { field } = useController({\n name: `${riskType}.${fieldName}`,\n control: formMethods.control,\n });\n\n function getRadioLabel(row: number) {\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n return `${row}: ${t(`${translationPrefix}.rows.${row}`)}`;\n }\n\n function getRadioCell(row: number) {\n return (\n <RiskRadioButton\n value={options[row]}\n ref={field.ref}\n label={getRadioLabel(row + 1)}\n />\n );\n }\n\n const radioGroupClassName = additionalClassName\n ? `${styles.riskRow} ${additionalClassName}`\n : styles.riskRow;\n\n return (\n <Box className={styles.riskTable}>\n <RadioGroup {...field} className={radioGroupClassName}>\n {fieldName === 'consequence' && (\n <Box className={styles.riskLabelCell} />\n )}\n {Array.from({ length: 5 }, (_, i) => getRadioCell(i))}\n </RadioGroup>\n <InfoComponent />\n </Box>\n );\n}\n\nexport function createInfoWithHeadersComponent(\n translationPrefix: 'probabilityTable' | 'consequenceTable',\n InfoComponent: React.ComponentType,\n includeLabel: boolean = false,\n) {\n return function InfoWithHeaders() {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n function getRadioLabel(row: number) {\n return (\n <Text as=\"p\" variant=\"body-large\">\n {/* @ts-ignore Because ts can't typecheck strings against our keys */}\n {`${row}: ${t(`${translationPrefix}.rows.${row}`)}`}\n </Text>\n );\n }\n return (\n <Box className={styles.riskTable}>\n <Box className={styles.consequenceGrid}>\n {includeLabel && <Box className={styles.riskLabelCell} />}\n {Array.from({ length: 5 }, (_, i) => getRadioLabel(i))}\n </Box>\n <InfoComponent />\n </Box>\n );\n };\n}\n"],"names":[],"mappings":";;;;;;;;;AAoBO,SAAS,aAAA,CAAc;AAAA,EAC5B,WAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,mBAAA,GAAsB,EAAA;AAAA,EACtB,iBAAA;AAAA,EACA;AACF,CAAA,EAAuB;AACrB,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,aAAA,CAAc;AAAA,IAC9B,IAAA,EAAM,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA;AAAA,IAC9B,SAAS,WAAA,CAAY;AAAA,GACtB,CAAA;AAED,EAAA,SAAS,cAAc,GAAA,EAAa;AAElC,IAAA,OAAO,CAAA,EAAG,GAAG,CAAA,EAAA,EAAK,CAAA,CAAE,GAAG,iBAAiB,CAAA,MAAA,EAAS,GAAG,CAAA,CAAE,CAAC,CAAA,CAAA;AAAA,EACzD;AAEA,EAAA,SAAS,aAAa,GAAA,EAAa;AACjC,IAAA,uBACE,GAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,QAAQ,GAAG,CAAA;AAAA,QAClB,KAAK,KAAA,CAAM,GAAA;AAAA,QACX,KAAA,EAAO,aAAA,CAAc,GAAA,GAAM,CAAC;AAAA;AAAA,KAC9B;AAAA,EAEJ;AAEA,EAAA,MAAM,mBAAA,GAAsB,sBACxB,CAAA,EAAG,MAAA,CAAO,OAAO,CAAA,CAAA,EAAI,mBAAmB,KACxC,MAAA,CAAO,OAAA;AAEX,EAAA,uBACE,IAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,SAAA,EACrB,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,UAAA,EAAA,EAAY,GAAG,KAAA,EAAO,SAAA,EAAW,mBAAA,EAC/B,QAAA,EAAA;AAAA,MAAA,SAAA,KAAc,aAAA,oBACb,GAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAW,OAAO,aAAA,EAAe,CAAA;AAAA,MAEvC,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,CAAA,EAAE,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,YAAA,CAAa,CAAC,CAAC;AAAA,KAAA,EACtD,CAAA;AAAA,wBACC,aAAA,EAAA,EAAc;AAAA,GAAA,EACjB,CAAA;AAEJ;AAEO,SAAS,8BAAA,CACd,iBAAA,EACA,aAAA,EACA,YAAA,GAAwB,KAAA,EACxB;AACA,EAAA,OAAO,SAAS,eAAA,GAAkB;AAChC,IAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,IAAA,SAAS,cAAc,GAAA,EAAa;AAClC,MAAA,2BACG,IAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,OAAA,EAAQ,cAElB,QAAA,EAAA,CAAA,EAAG,GAAG,CAAA,EAAA,EAAK,CAAA,CAAE,GAAG,iBAAiB,CAAA,MAAA,EAAS,GAAG,CAAA,CAAE,CAAC,CAAA,CAAA,EACnD,CAAA;AAAA,IAEJ;AACA,IAAA,uBACE,IAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,SAAA,EACrB,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,
|
|
1
|
+
{"version":3,"file":"RiskTableBase.esm.js","sources":["../../../../src/components/scenarioWizard/components/RiskTableBase.tsx"],"sourcesContent":["import { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { useController, UseFormReturn } from 'react-hook-form';\nimport { FormScenario } from '../../../utils/types';\nimport { RiskRadioButton } from './RiskRadioButton';\nimport RadioGroup from '@mui/material/RadioGroup';\nimport { Text, Box } from '@backstage/ui';\nimport styles from '../ScenarioWizardTable.module.css';\nimport React from 'react';\n\ntype RiskTableBaseProps = {\n formMethods: UseFormReturn<FormScenario>;\n riskType: keyof Pick<FormScenario, 'risk' | 'remainingRisk'>;\n fieldName: 'probability' | 'consequence';\n translationPrefix: 'probabilityTable' | 'consequenceTable';\n options: readonly number[];\n additionalClassName?: string;\n InfoComponent: React.ComponentType;\n};\n\nexport function RiskTableBase({\n formMethods,\n riskType,\n fieldName,\n options,\n additionalClassName = '',\n translationPrefix,\n InfoComponent,\n}: RiskTableBaseProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const { field } = useController({\n name: `${riskType}.${fieldName}`,\n control: formMethods.control,\n });\n\n function getRadioLabel(row: number) {\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n return `${row}: ${t(`${translationPrefix}.rows.${row}`)}`;\n }\n\n function getRadioCell(row: number) {\n return (\n <RiskRadioButton\n value={options[row]}\n ref={field.ref}\n label={getRadioLabel(row + 1)}\n />\n );\n }\n\n const radioGroupClassName = additionalClassName\n ? `${styles.riskRow} ${additionalClassName}`\n : styles.riskRow;\n\n return (\n <Box className={styles.riskTable}>\n <RadioGroup {...field} className={radioGroupClassName}>\n {fieldName === 'consequence' && (\n <Box className={styles.riskLabelCell} />\n )}\n {Array.from({ length: 5 }, (_, i) => getRadioCell(i))}\n </RadioGroup>\n <InfoComponent />\n </Box>\n );\n}\n\nexport function createInfoWithHeadersComponent(\n translationPrefix: 'probabilityTable' | 'consequenceTable',\n InfoComponent: React.ComponentType,\n includeLabel: boolean = false,\n) {\n return function InfoWithHeaders() {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n function getRadioLabel(row: number) {\n return (\n <Text as=\"p\" variant=\"body-large\">\n {/* @ts-ignore Because ts can't typecheck strings against our keys */}\n {`${row}: ${t(`${translationPrefix}.rows.${row}`)}`}\n </Text>\n );\n }\n return (\n <Box className={styles.riskTable}>\n <Box className={includeLabel ? styles.consequenceGrid : styles.riskRow}>\n {includeLabel && <Box className={styles.riskLabelCell} />}\n {Array.from({ length: 5 }, (_, i) => getRadioLabel(i + 1))}\n </Box>\n <InfoComponent />\n </Box>\n );\n };\n}\n"],"names":[],"mappings":";;;;;;;;;AAoBO,SAAS,aAAA,CAAc;AAAA,EAC5B,WAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,mBAAA,GAAsB,EAAA;AAAA,EACtB,iBAAA;AAAA,EACA;AACF,CAAA,EAAuB;AACrB,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,aAAA,CAAc;AAAA,IAC9B,IAAA,EAAM,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA;AAAA,IAC9B,SAAS,WAAA,CAAY;AAAA,GACtB,CAAA;AAED,EAAA,SAAS,cAAc,GAAA,EAAa;AAElC,IAAA,OAAO,CAAA,EAAG,GAAG,CAAA,EAAA,EAAK,CAAA,CAAE,GAAG,iBAAiB,CAAA,MAAA,EAAS,GAAG,CAAA,CAAE,CAAC,CAAA,CAAA;AAAA,EACzD;AAEA,EAAA,SAAS,aAAa,GAAA,EAAa;AACjC,IAAA,uBACE,GAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,QAAQ,GAAG,CAAA;AAAA,QAClB,KAAK,KAAA,CAAM,GAAA;AAAA,QACX,KAAA,EAAO,aAAA,CAAc,GAAA,GAAM,CAAC;AAAA;AAAA,KAC9B;AAAA,EAEJ;AAEA,EAAA,MAAM,mBAAA,GAAsB,sBACxB,CAAA,EAAG,MAAA,CAAO,OAAO,CAAA,CAAA,EAAI,mBAAmB,KACxC,MAAA,CAAO,OAAA;AAEX,EAAA,uBACE,IAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,SAAA,EACrB,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,UAAA,EAAA,EAAY,GAAG,KAAA,EAAO,SAAA,EAAW,mBAAA,EAC/B,QAAA,EAAA;AAAA,MAAA,SAAA,KAAc,aAAA,oBACb,GAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAW,OAAO,aAAA,EAAe,CAAA;AAAA,MAEvC,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,CAAA,EAAE,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,YAAA,CAAa,CAAC,CAAC;AAAA,KAAA,EACtD,CAAA;AAAA,wBACC,aAAA,EAAA,EAAc;AAAA,GAAA,EACjB,CAAA;AAEJ;AAEO,SAAS,8BAAA,CACd,iBAAA,EACA,aAAA,EACA,YAAA,GAAwB,KAAA,EACxB;AACA,EAAA,OAAO,SAAS,eAAA,GAAkB;AAChC,IAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,IAAA,SAAS,cAAc,GAAA,EAAa;AAClC,MAAA,2BACG,IAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,OAAA,EAAQ,cAElB,QAAA,EAAA,CAAA,EAAG,GAAG,CAAA,EAAA,EAAK,CAAA,CAAE,GAAG,iBAAiB,CAAA,MAAA,EAAS,GAAG,CAAA,CAAE,CAAC,CAAA,CAAA,EACnD,CAAA;AAAA,IAEJ;AACA,IAAA,uBACE,IAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,SAAA,EACrB,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,OAAI,SAAA,EAAW,YAAA,GAAe,MAAA,CAAO,eAAA,GAAkB,OAAO,OAAA,EAC5D,QAAA,EAAA;AAAA,QAAA,YAAA,oBAAgB,GAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,aAAA,EAAe,CAAA;AAAA,QACtD,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,CAAA,EAAE,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,aAAA,CAAc,CAAA,GAAI,CAAC,CAAC;AAAA,OAAA,EAC3D,CAAA;AAAA,0BACC,aAAA,EAAA,EAAc;AAAA,KAAA,EACjB,CAAA;AAAA,EAEJ,CAAA;AACF;;;;"}
|