@kartverket/backstage-plugin-risk-scorecard 6.1.7 → 6.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/dist/components/scenarioDrawer/ScenarioDrawer.esm.js +46 -70
  2. package/dist/components/scenarioDrawer/ScenarioDrawer.esm.js.map +1 -1
  3. package/dist/components/scenarioDrawer/components/ActionFormItem.esm.js +77 -116
  4. package/dist/components/scenarioDrawer/components/ActionFormItem.esm.js.map +1 -1
  5. package/dist/components/scenarioDrawer/components/ActionFormItem.module.css.esm.js +8 -0
  6. package/dist/components/scenarioDrawer/components/ActionFormItem.module.css.esm.js.map +1 -0
  7. package/dist/components/scenarioDrawer/components/ActionsSection.esm.js +8 -8
  8. package/dist/components/scenarioDrawer/components/ActionsSection.esm.js.map +1 -1
  9. package/dist/components/scenarioDrawer/components/DeleteConfirmation.esm.js +3 -3
  10. package/dist/components/scenarioDrawer/components/DeleteConfirmation.esm.js.map +1 -1
  11. package/dist/components/scenarioDrawer/components/RiskFormSection.esm.js +5 -5
  12. package/dist/components/scenarioDrawer/components/RiskFormSection.esm.js.map +1 -1
  13. package/dist/components/scenarioDrawer/components/RiskSection.esm.js +2 -2
  14. package/dist/components/scenarioDrawer/components/RiskSection.esm.js.map +1 -1
  15. package/dist/components/scenarioDrawer/components/ScopeFormSection.esm.js +2 -2
  16. package/dist/components/scenarioDrawer/components/ScopeFormSection.esm.js.map +1 -1
  17. package/dist/components/scenarioDrawer/components/ScopeSection.esm.js +2 -2
  18. package/dist/components/scenarioDrawer/components/ScopeSection.esm.js.map +1 -1
  19. package/dist/components/scenarioDrawer/scenarioDrawer.module.css.esm.js +3 -3
  20. package/dist/components/scenarioWizard/ScenarioWizard.esm.js +62 -72
  21. package/dist/components/scenarioWizard/ScenarioWizard.esm.js.map +1 -1
  22. package/dist/components/scenarioWizard/ScenarioWizard.module.css.esm.js +2 -2
  23. package/package.json +1 -1
  24. package/dist/components/scenarioDrawer/components/ScenarioDrawer.module.css.esm.js +0 -8
  25. package/dist/components/scenarioDrawer/components/ScenarioDrawer.module.css.esm.js.map +0 -1
@@ -19,6 +19,7 @@ import ScenarioForm from './components/RiskFormSection.esm.js';
19
19
  import ScopeFormSection from './components/ScopeFormSection.esm.js';
20
20
  import { useBackstageContext } from '../../contexts/BackstageContext.esm.js';
21
21
  import styles from '../common/alertBar.module.css.esm.js';
22
+ import drawerStyles from './scenarioDrawer.module.css.esm.js';
22
23
  import { ScopeSection } from './components/ScopeSection.esm.js';
23
24
  import { RiskSection } from './components/RiskSection.esm.js';
24
25
  import AlertBar from '../common/AlertBar/AlertBar.esm.js';
@@ -108,36 +109,26 @@ function ScenarioDrawer() {
108
109
  open: isDrawerOpen,
109
110
  onClose,
110
111
  children: [
111
- /* @__PURE__ */ jsxs(
112
- Box,
113
- {
114
- sx: {
115
- display: "flex",
116
- gap: "16px",
117
- marginLeft: "auto"
118
- },
119
- children: [
120
- !isEditing && isEditingAllowed && /* @__PURE__ */ jsx(
121
- Button,
122
- {
123
- size: "medium",
124
- variant: "primary",
125
- onClick: () => setIsEditing(true),
126
- children: t("dictionary.edit")
127
- }
128
- ),
129
- /* @__PURE__ */ jsx(
130
- Button,
131
- {
132
- size: "medium",
133
- variant: "secondary",
134
- onClick: isEditing ? onCancel : onClose,
135
- children: t(isEditing ? "dictionary.cancel" : "dictionary.close")
136
- }
137
- )
138
- ]
139
- }
140
- ),
112
+ /* @__PURE__ */ jsxs(Box, { className: drawerStyles.topButtons, children: [
113
+ !isEditing && isEditingAllowed && /* @__PURE__ */ jsx(
114
+ Button,
115
+ {
116
+ size: "medium",
117
+ variant: "primary",
118
+ onClick: () => setIsEditing(true),
119
+ children: t("dictionary.edit")
120
+ }
121
+ ),
122
+ /* @__PURE__ */ jsx(
123
+ Button,
124
+ {
125
+ size: "medium",
126
+ variant: "secondary",
127
+ onClick: isEditing ? onCancel : onClose,
128
+ children: t(isEditing ? "dictionary.cancel" : "dictionary.close")
129
+ }
130
+ )
131
+ ] }),
141
132
  isEditing ? /* @__PURE__ */ jsxs(Fragment, { children: [
142
133
  /* @__PURE__ */ jsx(ScopeFormSection, { formMethods }),
143
134
  /* @__PURE__ */ jsx(
@@ -160,46 +151,31 @@ function ScenarioDrawer() {
160
151
  /* @__PURE__ */ jsx(RiskSection, {})
161
152
  ] }),
162
153
  /* @__PURE__ */ jsx(ActionsSection, { formMethods, isEditing }),
163
- /* @__PURE__ */ jsxs(
164
- Box,
165
- {
166
- sx: {
167
- display: "flex",
168
- gap: "16px"
169
- },
170
- children: [
171
- isEditing && /* @__PURE__ */ jsxs(
172
- Button,
173
- {
174
- size: "medium",
175
- variant: "primary",
176
- onClick: onSubmit,
177
- isDisabled: !formMethods.formState.isDirty || updateStatus.isLoading,
178
- children: [
179
- t("dictionary.save"),
180
- updateStatus.isLoading && /* @__PURE__ */ jsx(
181
- CircularProgress,
182
- {
183
- size: 16,
184
- sx: { marginLeft: 1, color: "inherit" }
185
- }
186
- )
187
- ]
188
- }
189
- ),
190
- isEditingAllowed && /* @__PURE__ */ jsx("div", { ref: deleteScenarioRef, children: /* @__PURE__ */ jsx(
191
- Button,
192
- {
193
- iconStart: /* @__PURE__ */ jsx(DeleteIcon, {}),
194
- size: "medium",
195
- variant: "tertiary",
196
- onClick: () => setDeleteConfirmationIsOpen(true),
197
- children: t("scenarioDrawer.deleteScenarioButton")
198
- }
199
- ) })
200
- ]
201
- }
202
- ),
154
+ /* @__PURE__ */ jsxs(Box, { className: drawerStyles.bottomButtons, children: [
155
+ isEditing && /* @__PURE__ */ jsxs(
156
+ Button,
157
+ {
158
+ size: "medium",
159
+ variant: "primary",
160
+ onClick: onSubmit,
161
+ isDisabled: !formMethods.formState.isDirty || updateStatus.isLoading,
162
+ children: [
163
+ t("dictionary.save"),
164
+ updateStatus.isLoading && /* @__PURE__ */ jsx(CircularProgress, { size: 16, className: drawerStyles.spinner })
165
+ ]
166
+ }
167
+ ),
168
+ isEditingAllowed && /* @__PURE__ */ jsx("div", { ref: deleteScenarioRef, children: /* @__PURE__ */ jsx(
169
+ Button,
170
+ {
171
+ iconStart: /* @__PURE__ */ jsx(DeleteIcon, {}),
172
+ size: "medium",
173
+ variant: "tertiary",
174
+ onClick: () => setDeleteConfirmationIsOpen(true),
175
+ children: t("scenarioDrawer.deleteScenarioButton")
176
+ }
177
+ ) })
178
+ ] }),
203
179
  /* @__PURE__ */ jsx(
204
180
  DeleteScenarioConfirmation,
205
181
  {
@@ -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 styles from '../common/alertBar.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\n sx={{\n display: 'flex',\n gap: '16px',\n marginLeft: 'auto',\n }}\n >\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={styles.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\n sx={{\n display: 'flex',\n gap: '16px',\n }}\n >\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\n size={16}\n sx={{ marginLeft: 1, color: 'inherit' }}\n />\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"],"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:\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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"}
@@ -13,6 +13,7 @@ import { Select } from '../../common/Select.esm.js';
13
13
  import HelpIcon from '@mui/icons-material/Help';
14
14
  import { Tooltip } from '@material-ui/core';
15
15
  import { Text } from '@backstage/ui';
16
+ import styles from './ActionFormItem.module.css.esm.js';
16
17
 
17
18
  function addPeriodToBaseObjectPath(s) {
18
19
  if (!s) return "";
@@ -34,131 +35,91 @@ function ActionFormItem({
34
35
  renderedValue: t(actionStatusOptionsToTranslationKeys[actionStatus])
35
36
  })
36
37
  );
37
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
38
- Box,
39
- {
40
- sx: {
41
- display: "grid",
42
- gap: "24px",
43
- padding: 0
44
- },
45
- children: [
46
- /* @__PURE__ */ jsxs(
47
- Box,
38
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(Box, { className: styles.formGrid, children: [
39
+ /* @__PURE__ */ jsxs(Box, { className: styles.formHeader, children: [
40
+ displayedIndex !== void 0 && displayedIndex !== null ? /* @__PURE__ */ jsxs(Text, { variant: "title-x-small", weight: "bold", children: [
41
+ t("dictionary.measure"),
42
+ " ",
43
+ displayedIndex + 1
44
+ ] }) : /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: t("dictionary.edit") }),
45
+ /* @__PURE__ */ jsx(IconButton, { onClick: handleDelete, color: "primary", children: /* @__PURE__ */ jsx(DeleteIcon, { "aria-label": "Delete" }) })
46
+ ] }),
47
+ /* @__PURE__ */ jsx(
48
+ Input,
49
+ {
50
+ required: true,
51
+ ...register(
52
+ `${addPeriodToBaseObjectPath(baseObjectPathToActionOfForm)}title`,
48
53
  {
49
- sx: {
50
- display: "flex",
51
- justifyContent: "space-between",
52
- alignItems: "center"
53
- },
54
- children: [
55
- displayedIndex !== void 0 && displayedIndex !== null ? /* @__PURE__ */ jsxs(Text, { variant: "title-x-small", weight: "bold", children: [
56
- t("dictionary.measure"),
57
- " ",
58
- displayedIndex + 1
59
- ] }) : /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: t("dictionary.edit") }),
60
- /* @__PURE__ */ jsx(IconButton, { onClick: handleDelete, color: "primary", children: /* @__PURE__ */ jsx(DeleteIcon, { "aria-label": "Delete" }) })
61
- ]
54
+ required: true
62
55
  }
63
56
  ),
64
- /* @__PURE__ */ jsx(
65
- Input,
57
+ error: errorObject?.title !== void 0,
58
+ label: t("dictionary.title"),
59
+ helperText: errorObject?.title && t("scenarioDrawer.measureTab.addMeasureTitleError")
60
+ }
61
+ ),
62
+ /* @__PURE__ */ jsx(
63
+ Controller,
64
+ {
65
+ control,
66
+ name: `${addPeriodToBaseObjectPath(baseObjectPathToActionOfForm)}description`,
67
+ render: ({ field: { onChange, value }, fieldState: { error } }) => /* @__PURE__ */ jsx(
68
+ MarkdownInput,
66
69
  {
67
- required: true,
68
- ...register(
69
- `${addPeriodToBaseObjectPath(baseObjectPathToActionOfForm)}title`,
70
- {
71
- required: true
72
- }
73
- ),
74
- error: errorObject?.title !== void 0,
75
- label: t("dictionary.title"),
76
- helperText: errorObject?.title && t("scenarioDrawer.measureTab.addMeasureTitleError")
77
- }
78
- ),
79
- /* @__PURE__ */ jsx(
80
- Controller,
81
- {
82
- control,
83
- name: `${addPeriodToBaseObjectPath(baseObjectPathToActionOfForm)}description`,
84
- render: ({ field: { onChange, value }, fieldState: { error } }) => /* @__PURE__ */ jsx(
85
- MarkdownInput,
86
- {
87
- label: t("dictionary.description"),
88
- value,
89
- onMarkdownChange: onChange,
90
- error: !!error,
91
- minRows: 8
92
- }
93
- )
94
- }
95
- ),
96
- /* @__PURE__ */ jsxs(
97
- Box,
98
- {
99
- sx: {
100
- display: "grid",
101
- gridTemplateColumns: "2fr 1fr",
102
- gap: "24px"
103
- },
104
- children: [
105
- /* @__PURE__ */ jsx(
106
- Input,
107
- {
108
- ...register(
109
- `${addPeriodToBaseObjectPath(baseObjectPathToActionOfForm)}url`,
110
- {
111
- pattern: {
112
- value: urlRegExpPattern,
113
- message: t("scenarioDrawer.action.urlError")
114
- }
115
- }
116
- ),
117
- label: /* @__PURE__ */ jsx(UrlLabel, {}),
118
- helperText: errorObject?.url?.message,
119
- error: errorObject?.url?.message
120
- }
121
- ),
122
- /* @__PURE__ */ jsx(
123
- Select,
124
- {
125
- required: true,
126
- control,
127
- name: `${addPeriodToBaseObjectPath(baseObjectPathToActionOfForm)}status`,
128
- label: t("dictionary.status"),
129
- options: actionStatusOptions
130
- }
131
- )
132
- ]
70
+ label: t("dictionary.description"),
71
+ value,
72
+ onMarkdownChange: onChange,
73
+ error: !!error,
74
+ minRows: 8
133
75
  }
134
76
  )
135
- ]
136
- }
137
- ) });
77
+ }
78
+ ),
79
+ /* @__PURE__ */ jsxs(Box, { className: styles.inputGrid, children: [
80
+ /* @__PURE__ */ jsx(
81
+ Input,
82
+ {
83
+ ...register(
84
+ `${addPeriodToBaseObjectPath(baseObjectPathToActionOfForm)}url`,
85
+ {
86
+ pattern: {
87
+ value: urlRegExpPattern,
88
+ message: t("scenarioDrawer.action.urlError")
89
+ }
90
+ }
91
+ ),
92
+ label: /* @__PURE__ */ jsx(UrlLabel, {}),
93
+ helperText: errorObject?.url?.message,
94
+ error: errorObject?.url?.message
95
+ }
96
+ ),
97
+ /* @__PURE__ */ jsx(
98
+ Select,
99
+ {
100
+ required: true,
101
+ control,
102
+ name: `${addPeriodToBaseObjectPath(baseObjectPathToActionOfForm)}status`,
103
+ label: t("dictionary.status"),
104
+ options: actionStatusOptions
105
+ }
106
+ )
107
+ ] })
108
+ ] }) });
138
109
  }
139
110
  function UrlLabel() {
140
111
  const { t } = useTranslationRef(pluginRiScTranslationRef);
141
- return /* @__PURE__ */ jsxs(
142
- Box,
143
- {
144
- sx: {
145
- display: "flex",
146
- gap: 1,
147
- alignItems: "center"
148
- },
149
- children: [
150
- t("dictionary.url"),
151
- /* @__PURE__ */ jsx(
152
- Tooltip,
153
- {
154
- title: /* @__PURE__ */ jsx(Text, { variant: "body-large", style: { color: "white" }, children: t("scenarioDrawer.measureTab.urlDescription") }),
155
- arrow: true,
156
- children: /* @__PURE__ */ jsx(HelpIcon, { color: "primary" })
157
- }
158
- )
159
- ]
160
- }
161
- );
112
+ return /* @__PURE__ */ jsxs(Box, { className: styles.urlLabel, children: [
113
+ t("dictionary.url"),
114
+ /* @__PURE__ */ jsx(
115
+ Tooltip,
116
+ {
117
+ title: /* @__PURE__ */ jsx(Text, { variant: "body-large", className: styles.tooltipText, children: t("scenarioDrawer.measureTab.urlDescription") }),
118
+ arrow: true,
119
+ children: /* @__PURE__ */ jsx(HelpIcon, { color: "primary" })
120
+ }
121
+ )
122
+ ] });
162
123
  }
163
124
 
164
125
  export { ActionFormItem, UrlLabel };
@@ -1 +1 @@
1
- {"version":3,"file":"ActionFormItem.esm.js","sources":["../../../../src/components/scenarioDrawer/components/ActionFormItem.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport Box from '@mui/material/Box';\nimport IconButton from '@mui/material/IconButton';\nimport { Controller, UseFormReturn } from 'react-hook-form';\nimport {\n ActionStatusOptions,\n urlRegExpPattern,\n} from '../../../utils/constants';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport {\n actionStatusOptionsToTranslationKeys,\n getValue,\n} from '../../../utils/utilityfunctions';\nimport { Input } from '../../common/Input';\nimport { MarkdownInput } from '../../common/MarkdownInput';\nimport { Select } from '../../common/Select';\nimport HelpIcon from '@mui/icons-material/Help';\nimport { Tooltip } from '@material-ui/core';\nimport { Text } from '@backstage/ui';\n\nfunction addPeriodToBaseObjectPath(s: string) {\n if (!s) return '';\n return `${s}.`;\n}\n\ntype ActionFormItemProps = {\n formMethods: UseFormReturn<any>;\n handleDelete: () => void;\n displayedIndex?: number;\n // Specify baseObjectPathToActionOfForm where in the form of formMethods the action object is (use if nested)\n // Example value: \"actions.1\"\n baseObjectPathToActionOfForm?: string;\n};\n\nexport function ActionFormItem({\n formMethods,\n handleDelete,\n displayedIndex,\n baseObjectPathToActionOfForm = '',\n}: ActionFormItemProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const { control, register, formState } = formMethods;\n const errorObject = getValue(formState.errors, baseObjectPathToActionOfForm);\n\n const actionStatusOptions = Object.values(ActionStatusOptions).map(\n actionStatus => ({\n value: actionStatus,\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n renderedValue: t(actionStatusOptionsToTranslationKeys[actionStatus]),\n }),\n );\n\n return (\n <>\n <Box\n sx={{\n display: 'grid',\n gap: '24px',\n padding: 0,\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n {displayedIndex !== undefined && displayedIndex !== null ? (\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('dictionary.measure')} {displayedIndex + 1}\n </Text>\n ) : (\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('dictionary.edit')}\n </Text>\n )}\n <IconButton onClick={handleDelete} color=\"primary\">\n <DeleteIcon aria-label=\"Delete\" />\n </IconButton>\n </Box>\n <Input\n required\n {...register(\n `${addPeriodToBaseObjectPath(baseObjectPathToActionOfForm)}title`,\n {\n required: true,\n },\n )}\n error={errorObject?.title !== undefined}\n label={t('dictionary.title')}\n helperText={\n errorObject?.title &&\n t('scenarioDrawer.measureTab.addMeasureTitleError')\n }\n />\n <Controller\n control={control}\n name={`${addPeriodToBaseObjectPath(baseObjectPathToActionOfForm)}description`}\n render={({ field: { onChange, value }, fieldState: { error } }) => (\n <MarkdownInput\n label={t('dictionary.description')}\n value={value}\n onMarkdownChange={onChange}\n error={!!error}\n minRows={8}\n />\n )}\n />\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: '2fr 1fr',\n gap: '24px',\n }}\n >\n <Input\n {...register(\n `${addPeriodToBaseObjectPath(baseObjectPathToActionOfForm)}url`,\n {\n pattern: {\n value: urlRegExpPattern,\n message: t('scenarioDrawer.action.urlError'),\n },\n },\n )}\n label={<UrlLabel />}\n helperText={errorObject?.url?.message}\n error={errorObject?.url?.message}\n />\n <Select\n required\n control={control}\n name={`${addPeriodToBaseObjectPath(baseObjectPathToActionOfForm)}status`}\n label={t('dictionary.status')}\n options={actionStatusOptions}\n />\n </Box>\n </Box>\n </>\n );\n}\n\nexport function UrlLabel(): JSX.Element {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n return (\n <Box\n sx={{\n display: 'flex',\n gap: 1,\n alignItems: 'center',\n }}\n >\n {t('dictionary.url')}\n <Tooltip\n title={\n <Text variant=\"body-large\" style={{ color: 'white' }}>\n {t('scenarioDrawer.measureTab.urlDescription')}\n </Text>\n }\n arrow\n >\n <HelpIcon color=\"primary\" />\n </Tooltip>\n </Box>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActionFormItem.esm.js","sources":["../../../../src/components/scenarioDrawer/components/ActionFormItem.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport Box from '@mui/material/Box';\nimport IconButton from '@mui/material/IconButton';\nimport { Controller, UseFormReturn } from 'react-hook-form';\nimport {\n ActionStatusOptions,\n urlRegExpPattern,\n} from '../../../utils/constants';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport {\n actionStatusOptionsToTranslationKeys,\n getValue,\n} from '../../../utils/utilityfunctions';\nimport { Input } from '../../common/Input';\nimport { MarkdownInput } from '../../common/MarkdownInput';\nimport { Select } from '../../common/Select';\nimport HelpIcon from '@mui/icons-material/Help';\nimport { Tooltip } from '@material-ui/core';\nimport { Text } from '@backstage/ui';\nimport styles from './ActionFormItem.module.css';\n\nfunction addPeriodToBaseObjectPath(s: string) {\n if (!s) return '';\n return `${s}.`;\n}\n\ntype ActionFormItemProps = {\n formMethods: UseFormReturn<any>;\n handleDelete: () => void;\n displayedIndex?: number;\n // Specify baseObjectPathToActionOfForm where in the form of formMethods the action object is (use if nested)\n // Example value: \"actions.1\"\n baseObjectPathToActionOfForm?: string;\n};\n\nexport function ActionFormItem({\n formMethods,\n handleDelete,\n displayedIndex,\n baseObjectPathToActionOfForm = '',\n}: ActionFormItemProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const { control, register, formState } = formMethods;\n const errorObject = getValue(formState.errors, baseObjectPathToActionOfForm);\n\n const actionStatusOptions = Object.values(ActionStatusOptions).map(\n actionStatus => ({\n value: actionStatus,\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n renderedValue: t(actionStatusOptionsToTranslationKeys[actionStatus]),\n }),\n );\n\n return (\n <>\n <Box className={styles.formGrid}>\n <Box className={styles.formHeader}>\n {displayedIndex !== undefined && displayedIndex !== null ? (\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('dictionary.measure')} {displayedIndex + 1}\n </Text>\n ) : (\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('dictionary.edit')}\n </Text>\n )}\n <IconButton onClick={handleDelete} color=\"primary\">\n <DeleteIcon aria-label=\"Delete\" />\n </IconButton>\n </Box>\n <Input\n required\n {...register(\n `${addPeriodToBaseObjectPath(baseObjectPathToActionOfForm)}title`,\n {\n required: true,\n },\n )}\n error={errorObject?.title !== undefined}\n label={t('dictionary.title')}\n helperText={\n errorObject?.title &&\n t('scenarioDrawer.measureTab.addMeasureTitleError')\n }\n />\n <Controller\n control={control}\n name={`${addPeriodToBaseObjectPath(baseObjectPathToActionOfForm)}description`}\n render={({ field: { onChange, value }, fieldState: { error } }) => (\n <MarkdownInput\n label={t('dictionary.description')}\n value={value}\n onMarkdownChange={onChange}\n error={!!error}\n minRows={8}\n />\n )}\n />\n <Box className={styles.inputGrid}>\n <Input\n {...register(\n `${addPeriodToBaseObjectPath(baseObjectPathToActionOfForm)}url`,\n {\n pattern: {\n value: urlRegExpPattern,\n message: t('scenarioDrawer.action.urlError'),\n },\n },\n )}\n label={<UrlLabel />}\n helperText={errorObject?.url?.message}\n error={errorObject?.url?.message}\n />\n <Select\n required\n control={control}\n name={`${addPeriodToBaseObjectPath(baseObjectPathToActionOfForm)}status`}\n label={t('dictionary.status')}\n options={actionStatusOptions}\n />\n </Box>\n </Box>\n </>\n );\n}\n\nexport function UrlLabel(): JSX.Element {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n return (\n <Box className={styles.urlLabel}>\n {t('dictionary.url')}\n <Tooltip\n title={\n <Text variant=\"body-large\" className={styles.tooltipText}>\n {t('scenarioDrawer.measureTab.urlDescription')}\n </Text>\n }\n arrow\n >\n <HelpIcon color=\"primary\" />\n </Tooltip>\n </Box>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import styleInject from '../../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
+
3
+ var css_248z = ".ActionFormItem_formGrid__e2b6b438eb {\n display: grid;\n gap: 24px;\n padding: 0;\n}\n\n.ActionFormItem_formHeader__e2b6b438eb {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.ActionFormItem_inputGrid__e2b6b438eb {\n display: grid;\n grid-template-columns: 2fr 1fr;\n gap: 24px;\n}\n\n.ActionFormItem_urlLabel__e2b6b438eb {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.ActionFormItem_tooltipText__e2b6b438eb {\n color: white;\n}\n";
4
+ var styles = {"formGrid":"ActionFormItem_formGrid__e2b6b438eb","formHeader":"ActionFormItem_formHeader__e2b6b438eb","inputGrid":"ActionFormItem_inputGrid__e2b6b438eb","urlLabel":"ActionFormItem_urlLabel__e2b6b438eb","tooltipText":"ActionFormItem_tooltipText__e2b6b438eb"};
5
+ styleInject(css_248z);
6
+
7
+ export { styles as default };
8
+ //# sourceMappingURL=ActionFormItem.module.css.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionFormItem.module.css.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -4,7 +4,7 @@ import Paper from '@mui/material/Paper';
4
4
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
5
5
  import { pluginRiScTranslationRef } from '../../../utils/translations.esm.js';
6
6
  import { useScenario, emptyAction } from '../../../contexts/ScenarioContext.esm.js';
7
- import styles from '../scenarioDrawer.module.css.esm.js';
7
+ import drawerStyles from '../scenarioDrawer.module.css.esm.js';
8
8
  import { useFieldArray } from 'react-hook-form';
9
9
  import { ActionFormItem } from './ActionFormItem.esm.js';
10
10
  import { AddCircle } from '@mui/icons-material';
@@ -14,7 +14,7 @@ import { Flex, Text, TooltipTrigger, Button, Tooltip, Box, Card } from '@backsta
14
14
  import { useSortActionsByRelevance } from '../../../hooks/UseSortActionsByRelevance.esm.js';
15
15
  import { filterActionsByRelevance } from '../../../utils/actions.esm.js';
16
16
  import { ActionRowList } from '../../action/ActionRowList.esm.js';
17
- import styles$1 from './ActionsSection.module.css.esm.js';
17
+ import styles from './ActionsSection.module.css.esm.js';
18
18
  import { ActionStatusOptions } from '../../../utils/constants.esm.js';
19
19
 
20
20
  const RelevanceToggle = ({
@@ -22,7 +22,7 @@ const RelevanceToggle = ({
22
22
  onChange
23
23
  }) => {
24
24
  const { t } = useTranslationRef(pluginRiScTranslationRef);
25
- return /* @__PURE__ */ jsxs(Flex, { align: "center", gap: "0", className: styles$1.noRelevantActionToggle, children: [
25
+ return /* @__PURE__ */ jsxs(Flex, { align: "center", gap: "0", className: styles.noRelevantActionToggle, children: [
26
26
  /* @__PURE__ */ jsx(
27
27
  Switch,
28
28
  {
@@ -70,7 +70,7 @@ function ActionsSection({ formMethods, isEditing }) {
70
70
  (action) => action.status === ActionStatusOptions.NotRelevant
71
71
  );
72
72
  const isActionsEmpty = currentActions.length === 0;
73
- return /* @__PURE__ */ jsxs(Paper, { className: styles.section, children: [
73
+ return /* @__PURE__ */ jsxs(Paper, { className: drawerStyles.section, children: [
74
74
  /* @__PURE__ */ jsxs(Flex, { justify: "between", mb: "2", children: [
75
75
  /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: t("dictionary.measures") }),
76
76
  /* @__PURE__ */ jsxs(Flex, { align: "center", children: [
@@ -106,7 +106,7 @@ function ActionsSection({ formMethods, isEditing }) {
106
106
  allowDeletion: allowActionDeletion,
107
107
  allowEdit: true
108
108
  }
109
- ) : /* @__PURE__ */ jsx(Text, { variant: "body-large", className: styles$1.italicText, children: !currentActions || currentActions.length === 0 ? t("dictionary.emptyField", {
109
+ ) : /* @__PURE__ */ jsx(Text, { variant: "body-large", className: styles.italicText, children: !currentActions || currentActions.length === 0 ? t("dictionary.emptyField", {
110
110
  field: t("dictionary.measures").toLowerCase()
111
111
  }) : t("dictionary.noRelevantMeasures") })
112
112
  ] });
@@ -118,9 +118,9 @@ function ActionsSectionOnEdit(props) {
118
118
  control,
119
119
  name: "actions"
120
120
  });
121
- return /* @__PURE__ */ jsxs(Paper, { className: styles.section, children: [
121
+ return /* @__PURE__ */ jsxs(Paper, { className: drawerStyles.section, children: [
122
122
  /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: t("dictionary.measures") }) }),
123
- fields.map((field, index) => /* @__PURE__ */ jsx(Card, { className: styles$1.actionFormItemCard, children: /* @__PURE__ */ jsx(
123
+ fields.map((field, index) => /* @__PURE__ */ jsx(Card, { className: styles.actionFormItemCard, children: /* @__PURE__ */ jsx(
124
124
  ActionFormItem,
125
125
  {
126
126
  formMethods: props.formMethods,
@@ -136,7 +136,7 @@ function ActionsSectionOnEdit(props) {
136
136
  iconStart: /* @__PURE__ */ jsx(AddCircle, {}),
137
137
  variant: "primary",
138
138
  onClick: () => append(emptyAction()),
139
- className: styles$1.addActionButton,
139
+ className: styles.addActionButton,
140
140
  children: t("scenarioDrawer.measureTab.addMeasureButton")
141
141
  }
142
142
  )
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsSection.esm.js","sources":["../../../../src/components/scenarioDrawer/components/ActionsSection.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport Paper from '@mui/material/Paper';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { emptyAction, useScenario } from '../../../contexts/ScenarioContext';\nimport sharedStyles from '../scenarioDrawer.module.css';\nimport { useFieldArray, UseFormReturn } from 'react-hook-form';\nimport { Action, FormScenario } from '../../../utils/types';\nimport { ActionFormItem } from './ActionFormItem';\nimport { AddCircle } from '@mui/icons-material';\nimport Switch from '@mui/material/Switch';\nimport { useActionFiltersStorage } from '../../../stores/ActionFiltersStore.ts';\nimport {\n Text,\n Tooltip,\n TooltipTrigger,\n Flex,\n Button,\n Card,\n Box,\n} from '@backstage/ui';\nimport { useSortActionsByRelevance } from '../../../hooks/UseSortActionsByRelevance.ts';\nimport { filterActionsByRelevance } from '../../../utils/actions.ts';\nimport { ActionRowList } from '../../action/ActionRowList.tsx';\nimport styles from './ActionsSection.module.css';\nimport { ActionStatusOptions } from '../../../utils/constants.ts';\n\nconst RelevanceToggle = ({\n checked,\n onChange,\n}: {\n checked: boolean;\n onChange: (checked: boolean) => void;\n}) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n return (\n <Flex align=\"center\" gap=\"0\" className={styles.noRelevantActionToggle}>\n <Switch\n checked={checked}\n onChange={e => onChange(e.target.checked)}\n name=\"showOnlyRelevant\"\n color=\"primary\"\n />\n <Text variant=\"body-medium\">{t('dictionary.showOnlyRelevant')}</Text>\n </Flex>\n );\n};\n\ntype ActionSectionProps = {\n formMethods: UseFormReturn<FormScenario>;\n isEditing: boolean;\n};\n\nexport function ActionsSection({ formMethods, isEditing }: ActionSectionProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { scenario } = useScenario();\n\n const [allowActionDeletion, setAllowActionDeletion] =\n useState<boolean>(false);\n const { watch } = formMethods;\n const currentActions = watch('actions');\n\n const [sortedActions, setSortedActions] = useState<Action[] | undefined>(\n undefined,\n );\n const { actionFilters, saveOnlyRelevantFilter } = useActionFiltersStorage();\n const sortActionsByRelevance = useSortActionsByRelevance();\n\n useEffect(() => {\n setSortedActions(sortedActionsState => {\n if (sortedActionsState === undefined)\n return sortActionsByRelevance([...currentActions]);\n\n // sync actions\n const updatedSortedActions: Action[] = [];\n for (const action of sortedActionsState) {\n const updatedAction = currentActions.find(a => a.ID === action.ID);\n if (updatedAction) updatedSortedActions.push(updatedAction);\n }\n // add new actions\n for (const action of currentActions) {\n if (!updatedSortedActions.some(a => a.ID === action.ID)) {\n updatedSortedActions.push(action);\n }\n }\n return updatedSortedActions;\n });\n }, [currentActions, actionFilters, sortActionsByRelevance]);\n\n if (isEditing) {\n return <ActionsSectionOnEdit formMethods={formMethods} />;\n }\n\n const doesCurrentActionsContainNotRelevantActions = currentActions.some(\n action => action.status === ActionStatusOptions.NotRelevant,\n );\n\n const isActionsEmpty = currentActions.length === 0;\n\n return (\n <Paper className={sharedStyles.section}>\n <Flex justify=\"between\" mb=\"2\">\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('dictionary.measures')}\n </Text>\n <Flex align=\"center\">\n {doesCurrentActionsContainNotRelevantActions && (\n <RelevanceToggle\n checked={actionFilters.showOnlyRelevant}\n onChange={value => saveOnlyRelevantFilter(value)}\n />\n )}\n {!isActionsEmpty && (\n <TooltipTrigger>\n <Button\n iconStart={\n allowActionDeletion ? (\n <i className=\"ri-checkbox-circle-line\" />\n ) : (\n <i className=\"ri-pencil-line\" />\n )\n }\n variant=\"secondary\"\n onClick={() => setAllowActionDeletion(prev => !prev)}\n >\n {allowActionDeletion}\n </Button>\n <Tooltip>\n {allowActionDeletion\n ? t('scenarioTable.doneEditing')\n : t('scenarioTable.editButton')}\n </Tooltip>\n </TooltipTrigger>\n )}\n </Flex>\n </Flex>\n {sortedActions !== undefined && sortedActions.length > 0 ? (\n <ActionRowList\n scenarioId={scenario.ID}\n displayedActions={filterActionsByRelevance(\n sortedActions,\n actionFilters.showOnlyRelevant,\n )}\n allowDeletion={allowActionDeletion}\n allowEdit\n />\n ) : (\n <Text variant=\"body-large\" className={styles.italicText}>\n {!currentActions || currentActions.length === 0\n ? t('dictionary.emptyField', {\n field: t('dictionary.measures').toLowerCase(),\n })\n : t('dictionary.noRelevantMeasures')}\n </Text>\n )}\n </Paper>\n );\n}\n\ntype ActionsSectionOnEditProps = {\n formMethods: UseFormReturn<FormScenario>;\n};\n\nfunction ActionsSectionOnEdit(props: ActionsSectionOnEditProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const { control } = props.formMethods;\n const { fields, append, remove } = useFieldArray({\n control,\n name: 'actions',\n });\n\n return (\n <Paper className={sharedStyles.section}>\n <Box>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('dictionary.measures')}\n </Text>\n </Box>\n {fields.map((field, index) => (\n <Card key={field.id} className={styles.actionFormItemCard}>\n <ActionFormItem\n key={index}\n formMethods={props.formMethods}\n displayedIndex={index}\n handleDelete={() => remove(index)}\n baseObjectPathToActionOfForm={`actions.${index}`}\n />\n </Card>\n ))}\n <Button\n iconStart={<AddCircle />}\n variant=\"primary\"\n onClick={() => append(emptyAction())}\n className={styles.addActionButton}\n >\n {t('scenarioDrawer.measureTab.addMeasureButton')}\n </Button>\n </Paper>\n );\n}\n"],"names":["styles","sharedStyles"],"mappings":"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"}
1
+ {"version":3,"file":"ActionsSection.esm.js","sources":["../../../../src/components/scenarioDrawer/components/ActionsSection.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport Paper from '@mui/material/Paper';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { emptyAction, useScenario } from '../../../contexts/ScenarioContext';\nimport sharedStyles from '../scenarioDrawer.module.css';\nimport { useFieldArray, UseFormReturn } from 'react-hook-form';\nimport { Action, FormScenario } from '../../../utils/types';\nimport { ActionFormItem } from './ActionFormItem';\nimport { AddCircle } from '@mui/icons-material';\nimport Switch from '@mui/material/Switch';\nimport { useActionFiltersStorage } from '../../../stores/ActionFiltersStore.ts';\nimport {\n Text,\n Tooltip,\n TooltipTrigger,\n Flex,\n Button,\n Card,\n Box,\n} from '@backstage/ui';\nimport { useSortActionsByRelevance } from '../../../hooks/UseSortActionsByRelevance.ts';\nimport { filterActionsByRelevance } from '../../../utils/actions.ts';\nimport { ActionRowList } from '../../action/ActionRowList.tsx';\nimport styles from './ActionsSection.module.css';\nimport { ActionStatusOptions } from '../../../utils/constants.ts';\n\nconst RelevanceToggle = ({\n checked,\n onChange,\n}: {\n checked: boolean;\n onChange: (checked: boolean) => void;\n}) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n return (\n <Flex align=\"center\" gap=\"0\" className={styles.noRelevantActionToggle}>\n <Switch\n checked={checked}\n onChange={e => onChange(e.target.checked)}\n name=\"showOnlyRelevant\"\n color=\"primary\"\n />\n <Text variant=\"body-medium\">{t('dictionary.showOnlyRelevant')}</Text>\n </Flex>\n );\n};\n\ntype ActionSectionProps = {\n formMethods: UseFormReturn<FormScenario>;\n isEditing: boolean;\n};\n\nexport function ActionsSection({ formMethods, isEditing }: ActionSectionProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { scenario } = useScenario();\n\n const [allowActionDeletion, setAllowActionDeletion] =\n useState<boolean>(false);\n const { watch } = formMethods;\n const currentActions = watch('actions');\n\n const [sortedActions, setSortedActions] = useState<Action[] | undefined>(\n undefined,\n );\n const { actionFilters, saveOnlyRelevantFilter } = useActionFiltersStorage();\n const sortActionsByRelevance = useSortActionsByRelevance();\n\n useEffect(() => {\n setSortedActions(sortedActionsState => {\n if (sortedActionsState === undefined)\n return sortActionsByRelevance([...currentActions]);\n\n // sync actions\n const updatedSortedActions: Action[] = [];\n for (const action of sortedActionsState) {\n const updatedAction = currentActions.find(a => a.ID === action.ID);\n if (updatedAction) updatedSortedActions.push(updatedAction);\n }\n // add new actions\n for (const action of currentActions) {\n if (!updatedSortedActions.some(a => a.ID === action.ID)) {\n updatedSortedActions.push(action);\n }\n }\n return updatedSortedActions;\n });\n }, [currentActions, actionFilters, sortActionsByRelevance]);\n\n if (isEditing) {\n return <ActionsSectionOnEdit formMethods={formMethods} />;\n }\n\n const doesCurrentActionsContainNotRelevantActions = currentActions.some(\n action => action.status === ActionStatusOptions.NotRelevant,\n );\n\n const isActionsEmpty = currentActions.length === 0;\n\n return (\n <Paper className={sharedStyles.section}>\n <Flex justify=\"between\" mb=\"2\">\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('dictionary.measures')}\n </Text>\n <Flex align=\"center\">\n {doesCurrentActionsContainNotRelevantActions && (\n <RelevanceToggle\n checked={actionFilters.showOnlyRelevant}\n onChange={value => saveOnlyRelevantFilter(value)}\n />\n )}\n {!isActionsEmpty && (\n <TooltipTrigger>\n <Button\n iconStart={\n allowActionDeletion ? (\n <i className=\"ri-checkbox-circle-line\" />\n ) : (\n <i className=\"ri-pencil-line\" />\n )\n }\n variant=\"secondary\"\n onClick={() => setAllowActionDeletion(prev => !prev)}\n >\n {allowActionDeletion}\n </Button>\n <Tooltip>\n {allowActionDeletion\n ? t('scenarioTable.doneEditing')\n : t('scenarioTable.editButton')}\n </Tooltip>\n </TooltipTrigger>\n )}\n </Flex>\n </Flex>\n {sortedActions !== undefined && sortedActions.length > 0 ? (\n <ActionRowList\n scenarioId={scenario.ID}\n displayedActions={filterActionsByRelevance(\n sortedActions,\n actionFilters.showOnlyRelevant,\n )}\n allowDeletion={allowActionDeletion}\n allowEdit\n />\n ) : (\n <Text variant=\"body-large\" className={styles.italicText}>\n {!currentActions || currentActions.length === 0\n ? t('dictionary.emptyField', {\n field: t('dictionary.measures').toLowerCase(),\n })\n : t('dictionary.noRelevantMeasures')}\n </Text>\n )}\n </Paper>\n );\n}\n\ntype ActionsSectionOnEditProps = {\n formMethods: UseFormReturn<FormScenario>;\n};\n\nfunction ActionsSectionOnEdit(props: ActionsSectionOnEditProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const { control } = props.formMethods;\n const { fields, append, remove } = useFieldArray({\n control,\n name: 'actions',\n });\n\n return (\n <Paper className={sharedStyles.section}>\n <Box>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('dictionary.measures')}\n </Text>\n </Box>\n {fields.map((field, index) => (\n <Card key={field.id} className={styles.actionFormItemCard}>\n <ActionFormItem\n key={index}\n formMethods={props.formMethods}\n displayedIndex={index}\n handleDelete={() => remove(index)}\n baseObjectPathToActionOfForm={`actions.${index}`}\n />\n </Card>\n ))}\n <Button\n iconStart={<AddCircle />}\n variant=\"primary\"\n onClick={() => append(emptyAction())}\n className={styles.addActionButton}\n >\n {t('scenarioDrawer.measureTab.addMeasureButton')}\n </Button>\n </Paper>\n );\n}\n"],"names":["sharedStyles"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
3
3
  import { pluginRiScTranslationRef } from '../../../utils/translations.esm.js';
4
- import styles from './ScenarioDrawer.module.css.esm.js';
4
+ import drawerStyles from '../scenarioDrawer.module.css.esm.js';
5
5
  import { ConfirmationDialogWithoutCheckbox } from '../../common/ConfirmationDialog.esm.js';
6
6
 
7
7
  function DeleteScenarioConfirmation({
@@ -21,7 +21,7 @@ function DeleteScenarioConfirmation({
21
21
  },
22
22
  title: t("scenarioDrawer.deleteScenarioConfirmation"),
23
23
  confirmButtonText: t("scenarioDrawer.deleteScenarioButton"),
24
- className: styles.deleteConfirmationDialog
24
+ className: drawerStyles.deleteConfirmationDialog
25
25
  }
26
26
  );
27
27
  }
@@ -42,7 +42,7 @@ function DeleteActionConfirmation({
42
42
  },
43
43
  title: t("scenarioDrawer.deleteActionConfirmation"),
44
44
  confirmButtonText: t("scenarioDrawer.deleteActionButton"),
45
- className: styles.deleteConfirmationDialog
45
+ className: drawerStyles.deleteConfirmationDialog
46
46
  }
47
47
  );
48
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DeleteConfirmation.esm.js","sources":["../../../../src/components/scenarioDrawer/components/DeleteConfirmation.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport type { SetState } from '../../../utils/types';\nimport styles from '../components/ScenarioDrawer.module.css';\nimport { ConfirmationDialogWithoutCheckbox } from '../../common/ConfirmationDialog';\n\ntype DeleteScenarioConfirmationProps = {\n isOpen: boolean;\n setIsOpen: SetState<boolean>;\n onConfirm?: () => void;\n};\n\nexport function DeleteScenarioConfirmation({\n isOpen,\n setIsOpen,\n onConfirm,\n}: DeleteScenarioConfirmationProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n return (\n <ConfirmationDialogWithoutCheckbox\n isOpen={isOpen}\n onCancel={() => setIsOpen(false)}\n onConfirm={() => {\n setIsOpen(false);\n onConfirm?.();\n }}\n title={t('scenarioDrawer.deleteScenarioConfirmation')}\n confirmButtonText={t('scenarioDrawer.deleteScenarioButton')}\n className={styles.deleteConfirmationDialog}\n />\n );\n}\n\ntype DeleteActionConfirmationProps = {\n isOpen: boolean;\n setIsOpen: SetState<boolean>;\n onConfirm?: () => void;\n};\n\nexport function DeleteActionConfirmation({\n isOpen,\n setIsOpen,\n onConfirm,\n}: DeleteActionConfirmationProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n return (\n <ConfirmationDialogWithoutCheckbox\n isOpen={isOpen}\n onCancel={() => setIsOpen(false)}\n onConfirm={() => {\n setIsOpen(false);\n onConfirm?.();\n }}\n title={t('scenarioDrawer.deleteActionConfirmation')}\n confirmButtonText={t('scenarioDrawer.deleteActionButton')}\n className={styles.deleteConfirmationDialog}\n />\n );\n}\n"],"names":[],"mappings":";;;;;;AAYO,SAAS,0BAAA,CAA2B;AAAA,EACzC,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAAoC;AAClC,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,uBACE,GAAA;AAAA,IAAC,iCAAA;AAAA,IAAA;AAAA,MACC,MAAA;AAAA,MACA,QAAA,EAAU,MAAM,SAAA,CAAU,KAAK,CAAA;AAAA,MAC/B,WAAW,MAAM;AACf,QAAA,SAAA,CAAU,KAAK,CAAA;AACf,QAAA,SAAA,IAAY;AAAA,MACd,CAAA;AAAA,MACA,KAAA,EAAO,EAAE,2CAA2C,CAAA;AAAA,MACpD,iBAAA,EAAmB,EAAE,qCAAqC,CAAA;AAAA,MAC1D,WAAW,MAAA,CAAO;AAAA;AAAA,GACpB;AAEJ;AAQO,SAAS,wBAAA,CAAyB;AAAA,EACvC,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAAkC;AAChC,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,uBACE,GAAA;AAAA,IAAC,iCAAA;AAAA,IAAA;AAAA,MACC,MAAA;AAAA,MACA,QAAA,EAAU,MAAM,SAAA,CAAU,KAAK,CAAA;AAAA,MAC/B,WAAW,MAAM;AACf,QAAA,SAAA,CAAU,KAAK,CAAA;AACf,QAAA,SAAA,IAAY;AAAA,MACd,CAAA;AAAA,MACA,KAAA,EAAO,EAAE,yCAAyC,CAAA;AAAA,MAClD,iBAAA,EAAmB,EAAE,mCAAmC,CAAA;AAAA,MACxD,WAAW,MAAA,CAAO;AAAA;AAAA,GACpB;AAEJ;;;;"}
1
+ {"version":3,"file":"DeleteConfirmation.esm.js","sources":["../../../../src/components/scenarioDrawer/components/DeleteConfirmation.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport type { SetState } from '../../../utils/types';\nimport styles from '../scenarioDrawer.module.css';\nimport { ConfirmationDialogWithoutCheckbox } from '../../common/ConfirmationDialog';\n\ntype DeleteScenarioConfirmationProps = {\n isOpen: boolean;\n setIsOpen: SetState<boolean>;\n onConfirm?: () => void;\n};\n\nexport function DeleteScenarioConfirmation({\n isOpen,\n setIsOpen,\n onConfirm,\n}: DeleteScenarioConfirmationProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n return (\n <ConfirmationDialogWithoutCheckbox\n isOpen={isOpen}\n onCancel={() => setIsOpen(false)}\n onConfirm={() => {\n setIsOpen(false);\n onConfirm?.();\n }}\n title={t('scenarioDrawer.deleteScenarioConfirmation')}\n confirmButtonText={t('scenarioDrawer.deleteScenarioButton')}\n className={styles.deleteConfirmationDialog}\n />\n );\n}\n\ntype DeleteActionConfirmationProps = {\n isOpen: boolean;\n setIsOpen: SetState<boolean>;\n onConfirm?: () => void;\n};\n\nexport function DeleteActionConfirmation({\n isOpen,\n setIsOpen,\n onConfirm,\n}: DeleteActionConfirmationProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n return (\n <ConfirmationDialogWithoutCheckbox\n isOpen={isOpen}\n onCancel={() => setIsOpen(false)}\n onConfirm={() => {\n setIsOpen(false);\n onConfirm?.();\n }}\n title={t('scenarioDrawer.deleteActionConfirmation')}\n confirmButtonText={t('scenarioDrawer.deleteActionButton')}\n className={styles.deleteConfirmationDialog}\n />\n );\n}\n"],"names":["styles"],"mappings":";;;;;;AAYO,SAAS,0BAAA,CAA2B;AAAA,EACzC,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAAoC;AAClC,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,uBACE,GAAA;AAAA,IAAC,iCAAA;AAAA,IAAA;AAAA,MACC,MAAA;AAAA,MACA,QAAA,EAAU,MAAM,SAAA,CAAU,KAAK,CAAA;AAAA,MAC/B,WAAW,MAAM;AACf,QAAA,SAAA,CAAU,KAAK,CAAA;AACf,QAAA,SAAA,IAAY;AAAA,MACd,CAAA;AAAA,MACA,KAAA,EAAO,EAAE,2CAA2C,CAAA;AAAA,MACpD,iBAAA,EAAmB,EAAE,qCAAqC,CAAA;AAAA,MAC1D,WAAWA,YAAA,CAAO;AAAA;AAAA,GACpB;AAEJ;AAQO,SAAS,wBAAA,CAAyB;AAAA,EACvC,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAAkC;AAChC,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,uBACE,GAAA;AAAA,IAAC,iCAAA;AAAA,IAAA;AAAA,MACC,MAAA;AAAA,MACA,QAAA,EAAU,MAAM,SAAA,CAAU,KAAK,CAAA;AAAA,MAC/B,WAAW,MAAM;AACf,QAAA,SAAA,CAAU,KAAK,CAAA;AACf,QAAA,SAAA,IAAY;AAAA,MACd,CAAA;AAAA,MACA,KAAA,EAAO,EAAE,yCAAyC,CAAA;AAAA,MAClD,iBAAA,EAAmB,EAAE,mCAAmC,CAAA;AAAA,MACxD,WAAWA,YAAA,CAAO;AAAA;AAAA,GACpB;AAEJ;;;;"}
@@ -8,7 +8,7 @@ import { probabilityOptions, consequenceOptions } from '../../../utils/constants
8
8
  import { pluginRiScTranslationRef } from '../../../utils/translations.esm.js';
9
9
  import { probabilityIndexToTranslationKeys, findProbabilityIndex, consequenceIndexToTranslationKeys, findConsequenceIndex } from '../../../utils/utilityfunctions.esm.js';
10
10
  import { Select } from '../../common/Select.esm.js';
11
- import styles from '../scenarioDrawer.module.css.esm.js';
11
+ import drawerStyles from '../scenarioDrawer.module.css.esm.js';
12
12
  import RiskOptionDisplay from './RiskOptionDisplay.esm.js';
13
13
  import { Text } from '@backstage/ui';
14
14
 
@@ -69,7 +69,7 @@ function ScenarioForm({
69
69
  )
70
70
  }));
71
71
  };
72
- return /* @__PURE__ */ jsxs(Paper, { className: styles.section, children: [
72
+ return /* @__PURE__ */ jsxs(Paper, { className: drawerStyles.section, children: [
73
73
  /* @__PURE__ */ jsx(
74
74
  Box,
75
75
  {
@@ -77,12 +77,12 @@ function ScenarioForm({
77
77
  display: "flex",
78
78
  gap: "24px"
79
79
  },
80
- children: /* @__PURE__ */ jsx(Paper, { className: styles.riscSection, children: /* @__PURE__ */ jsxs(Box, { className: styles.selectSection, children: [
81
- /* @__PURE__ */ jsxs(Box, { className: styles.headerSection, children: [
80
+ children: /* @__PURE__ */ jsx(Paper, { className: drawerStyles.riscSection, children: /* @__PURE__ */ jsxs(Box, { className: drawerStyles.selectSection, children: [
81
+ /* @__PURE__ */ jsxs(Box, { className: drawerStyles.headerSection, children: [
82
82
  /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: t("dictionary.initialRisk") }),
83
83
  /* @__PURE__ */ jsx(Text, { variant: "body-large", children: t("scenarioDrawer.riskMatrixModal.startRisk") })
84
84
  ] }),
85
- /* @__PURE__ */ jsxs(Box, { className: styles.headerSection, children: [
85
+ /* @__PURE__ */ jsxs(Box, { className: drawerStyles.headerSection, children: [
86
86
  /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: t("dictionary.restRisk") }),
87
87
  /* @__PURE__ */ jsx(Text, { variant: "body-large", children: t("scenarioDrawer.riskMatrixModal.restRisk") })
88
88
  ] }),
@@ -1 +1 @@
1
- {"version":3,"file":"RiskFormSection.esm.js","sources":["../../../../src/components/scenarioDrawer/components/RiskFormSection.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport InfoIcon from '@mui/icons-material/Info';\nimport Box from '@mui/material/Box';\nimport IconButton from '@mui/material/IconButton';\nimport Paper from '@mui/material/Paper';\nimport { UseFormReturn } from 'react-hook-form';\nimport {\n consequenceOptions,\n probabilityOptions,\n} from '../../../utils/constants';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { FormScenario } from '../../../utils/types';\nimport {\n consequenceIndexToTranslationKeys,\n findConsequenceIndex,\n findProbabilityIndex,\n probabilityIndexToTranslationKeys,\n} from '../../../utils/utilityfunctions';\nimport { Select } from '../../common/Select';\nimport styles from '../scenarioDrawer.module.css';\nimport RiskOptionDisplay from './RiskOptionDisplay';\nimport { Text } from '@backstage/ui';\n\nfunction ScenarioForm({\n formMethods,\n setIsMatrixDialogOpen,\n}: {\n formMethods: UseFormReturn<FormScenario>;\n setIsMatrixDialogOpen: React.Dispatch<React.SetStateAction<boolean>>;\n}) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const {\n watch,\n control,\n formState: { errors },\n } = formMethods;\n\n const [\n riskProbability,\n riskConsequence,\n remainingRiskProbability,\n remainingRiskConsequence,\n ] = watch([\n 'risk.probability',\n 'risk.consequence',\n 'remainingRisk.probability',\n 'remainingRisk.consequence',\n ]);\n\n const probabilityValues = (selectedValue: number) => {\n return probabilityOptions.map((value, index) => ({\n value: `${value}`,\n renderedValue: (\n <RiskOptionDisplay\n isSelected={\n findProbabilityIndex(value) === findProbabilityIndex(selectedValue)\n }\n level={index + 1}\n label={\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n `${t(`probabilityTable.rows.${index + 1}`)} (${t(\n probabilityIndexToTranslationKeys[index],\n )})`\n }\n />\n ),\n }));\n };\n\n const consequenceValues = (selectedValue: number) => {\n return consequenceOptions.map((value, index) => ({\n value: `${value}`,\n renderedValue: (\n <RiskOptionDisplay\n isSelected={\n findConsequenceIndex(value) === findConsequenceIndex(selectedValue)\n }\n level={index + 1}\n label={\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n `${t(`consequenceTable.rows.${index + 1}`)} (${t(\n consequenceIndexToTranslationKeys[index],\n )})`\n }\n />\n ),\n }));\n };\n\n return (\n <Paper className={styles.section}>\n <Box\n sx={{\n display: 'flex',\n gap: '24px',\n }}\n >\n <Paper className={styles.riscSection}>\n <Box className={styles.selectSection}>\n {/* Row 1 */}\n <Box className={styles.headerSection}>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('dictionary.initialRisk')}\n </Text>\n <Text variant=\"body-large\">\n {t('scenarioDrawer.riskMatrixModal.startRisk')}\n </Text>\n </Box>\n <Box className={styles.headerSection}>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('dictionary.restRisk')}\n </Text>\n <Text variant=\"body-large\">\n {t('scenarioDrawer.riskMatrixModal.restRisk')}\n </Text>\n </Box>\n\n {/* Row 2 */}\n <Select<FormScenario>\n control={control}\n name=\"risk.probability\"\n label={t('infoDialog.probabilityTitle')}\n options={probabilityValues(Number(riskProbability))}\n />\n <Select<FormScenario>\n control={control}\n name=\"remainingRisk.probability\"\n label={t('infoDialog.probabilityTitle')}\n options={probabilityValues(Number(remainingRiskProbability))}\n rules={{\n validate: (value, _) =>\n Number(value) <=\n Number(control._formValues.risk?.probability) ||\n t('scenarioDrawer.errors.remainingProbabilityTooHigh'),\n }}\n error={errors.remainingRisk?.probability !== undefined}\n helperText={errors.remainingRisk?.probability?.message}\n />\n\n {/* Row 3 */}\n <Select<FormScenario>\n control={control}\n name=\"risk.consequence\"\n label={t('infoDialog.consequenceTitle')}\n options={consequenceValues(Number(riskConsequence))}\n />\n <Select<FormScenario>\n control={control}\n name=\"remainingRisk.consequence\"\n label={t('infoDialog.consequenceTitle')}\n options={consequenceValues(Number(remainingRiskConsequence))}\n rules={{\n validate: (value, _) =>\n Number(value) <=\n Number(control._formValues.risk?.consequence) ||\n t('scenarioDrawer.errors.remainingConsequenceTooHigh'),\n }}\n error={errors.remainingRisk?.consequence !== undefined}\n helperText={errors.remainingRisk?.consequence?.message}\n />\n </Box>\n </Paper>\n </Box>\n <IconButton\n sx={{\n position: 'absolute',\n top: 10,\n right: 10,\n }}\n onClick={() => setIsMatrixDialogOpen(true)}\n color=\"primary\"\n >\n <InfoIcon />\n </IconButton>\n </Paper>\n );\n}\n\nexport default ScenarioForm;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RiskFormSection.esm.js","sources":["../../../../src/components/scenarioDrawer/components/RiskFormSection.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport InfoIcon from '@mui/icons-material/Info';\nimport Box from '@mui/material/Box';\nimport IconButton from '@mui/material/IconButton';\nimport Paper from '@mui/material/Paper';\nimport { UseFormReturn } from 'react-hook-form';\nimport {\n consequenceOptions,\n probabilityOptions,\n} from '../../../utils/constants';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { FormScenario } from '../../../utils/types';\nimport {\n consequenceIndexToTranslationKeys,\n findConsequenceIndex,\n findProbabilityIndex,\n probabilityIndexToTranslationKeys,\n} from '../../../utils/utilityfunctions';\nimport { Select } from '../../common/Select';\nimport styles from '../scenarioDrawer.module.css';\nimport RiskOptionDisplay from './RiskOptionDisplay';\nimport { Text } from '@backstage/ui';\n\nfunction ScenarioForm({\n formMethods,\n setIsMatrixDialogOpen,\n}: {\n formMethods: UseFormReturn<FormScenario>;\n setIsMatrixDialogOpen: React.Dispatch<React.SetStateAction<boolean>>;\n}) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const {\n watch,\n control,\n formState: { errors },\n } = formMethods;\n\n const [\n riskProbability,\n riskConsequence,\n remainingRiskProbability,\n remainingRiskConsequence,\n ] = watch([\n 'risk.probability',\n 'risk.consequence',\n 'remainingRisk.probability',\n 'remainingRisk.consequence',\n ]);\n\n const probabilityValues = (selectedValue: number) => {\n return probabilityOptions.map((value, index) => ({\n value: `${value}`,\n renderedValue: (\n <RiskOptionDisplay\n isSelected={\n findProbabilityIndex(value) === findProbabilityIndex(selectedValue)\n }\n level={index + 1}\n label={\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n `${t(`probabilityTable.rows.${index + 1}`)} (${t(\n probabilityIndexToTranslationKeys[index],\n )})`\n }\n />\n ),\n }));\n };\n\n const consequenceValues = (selectedValue: number) => {\n return consequenceOptions.map((value, index) => ({\n value: `${value}`,\n renderedValue: (\n <RiskOptionDisplay\n isSelected={\n findConsequenceIndex(value) === findConsequenceIndex(selectedValue)\n }\n level={index + 1}\n label={\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n `${t(`consequenceTable.rows.${index + 1}`)} (${t(\n consequenceIndexToTranslationKeys[index],\n )})`\n }\n />\n ),\n }));\n };\n\n return (\n <Paper className={styles.section}>\n <Box\n sx={{\n display: 'flex',\n gap: '24px',\n }}\n >\n <Paper className={styles.riscSection}>\n <Box className={styles.selectSection}>\n {/* Row 1 */}\n <Box className={styles.headerSection}>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('dictionary.initialRisk')}\n </Text>\n <Text variant=\"body-large\">\n {t('scenarioDrawer.riskMatrixModal.startRisk')}\n </Text>\n </Box>\n <Box className={styles.headerSection}>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('dictionary.restRisk')}\n </Text>\n <Text variant=\"body-large\">\n {t('scenarioDrawer.riskMatrixModal.restRisk')}\n </Text>\n </Box>\n\n {/* Row 2 */}\n <Select<FormScenario>\n control={control}\n name=\"risk.probability\"\n label={t('infoDialog.probabilityTitle')}\n options={probabilityValues(Number(riskProbability))}\n />\n <Select<FormScenario>\n control={control}\n name=\"remainingRisk.probability\"\n label={t('infoDialog.probabilityTitle')}\n options={probabilityValues(Number(remainingRiskProbability))}\n rules={{\n validate: (value, _) =>\n Number(value) <=\n Number(control._formValues.risk?.probability) ||\n t('scenarioDrawer.errors.remainingProbabilityTooHigh'),\n }}\n error={errors.remainingRisk?.probability !== undefined}\n helperText={errors.remainingRisk?.probability?.message}\n />\n\n {/* Row 3 */}\n <Select<FormScenario>\n control={control}\n name=\"risk.consequence\"\n label={t('infoDialog.consequenceTitle')}\n options={consequenceValues(Number(riskConsequence))}\n />\n <Select<FormScenario>\n control={control}\n name=\"remainingRisk.consequence\"\n label={t('infoDialog.consequenceTitle')}\n options={consequenceValues(Number(remainingRiskConsequence))}\n rules={{\n validate: (value, _) =>\n Number(value) <=\n Number(control._formValues.risk?.consequence) ||\n t('scenarioDrawer.errors.remainingConsequenceTooHigh'),\n }}\n error={errors.remainingRisk?.consequence !== undefined}\n helperText={errors.remainingRisk?.consequence?.message}\n />\n </Box>\n </Paper>\n </Box>\n <IconButton\n sx={{\n position: 'absolute',\n top: 10,\n right: 10,\n }}\n onClick={() => setIsMatrixDialogOpen(true)}\n color=\"primary\"\n >\n <InfoIcon />\n </IconButton>\n </Paper>\n );\n}\n\nexport default ScenarioForm;\n"],"names":["styles"],"mappings":";;;;;;;;;;;;;;AAuBA,SAAS,YAAA,CAAa;AAAA,EACpB,WAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM;AAAA,IACJ,KAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA,EAAW,EAAE,MAAA;AAAO,GACtB,GAAI,WAAA;AAEJ,EAAA,MAAM;AAAA,IACJ,eAAA;AAAA,IACA,eAAA;AAAA,IACA,wBAAA;AAAA,IACA;AAAA,MACE,KAAA,CAAM;AAAA,IACR,kBAAA;AAAA,IACA,kBAAA;AAAA,IACA,2BAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,iBAAA,GAAoB,CAAC,aAAA,KAA0B;AACnD,IAAA,OAAO,kBAAA,CAAmB,GAAA,CAAI,CAAC,KAAA,EAAO,KAAA,MAAW;AAAA,MAC/C,KAAA,EAAO,GAAG,KAAK,CAAA,CAAA;AAAA,MACf,aAAA,kBACE,GAAA;AAAA,QAAC,iBAAA;AAAA,QAAA;AAAA,UACC,UAAA,EACE,oBAAA,CAAqB,KAAK,CAAA,KAAM,qBAAqB,aAAa,CAAA;AAAA,UAEpE,OAAO,KAAA,GAAQ,CAAA;AAAA,UACf,KAAA;AAAA;AAAA,YAEE,GAAG,CAAA,CAAE,CAAA,sBAAA,EAAyB,QAAQ,CAAC,CAAA,CAAE,CAAC,CAAA,EAAA,EAAK,CAAA;AAAA,cAC7C,kCAAkC,KAAK;AAAA,aACxC,CAAA,CAAA;AAAA;AAAA;AAAA;AAEL,KAEJ,CAAE,CAAA;AAAA,EACJ,CAAA;AAEA,EAAA,MAAM,iBAAA,GAAoB,CAAC,aAAA,KAA0B;AACnD,IAAA,OAAO,kBAAA,CAAmB,GAAA,CAAI,CAAC,KAAA,EAAO,KAAA,MAAW;AAAA,MAC/C,KAAA,EAAO,GAAG,KAAK,CAAA,CAAA;AAAA,MACf,aAAA,kBACE,GAAA;AAAA,QAAC,iBAAA;AAAA,QAAA;AAAA,UACC,UAAA,EACE,oBAAA,CAAqB,KAAK,CAAA,KAAM,qBAAqB,aAAa,CAAA;AAAA,UAEpE,OAAO,KAAA,GAAQ,CAAA;AAAA,UACf,KAAA;AAAA;AAAA,YAEE,GAAG,CAAA,CAAE,CAAA,sBAAA,EAAyB,QAAQ,CAAC,CAAA,CAAE,CAAC,CAAA,EAAA,EAAK,CAAA;AAAA,cAC7C,kCAAkC,KAAK;AAAA,aACxC,CAAA,CAAA;AAAA;AAAA;AAAA;AAEL,KAEJ,CAAE,CAAA;AAAA,EACJ,CAAA;AAEA,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAM,SAAA,EAAWA,YAAA,CAAO,OAAA,EACvB,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI;AAAA,UACF,OAAA,EAAS,MAAA;AAAA,UACT,GAAA,EAAK;AAAA,SACP;AAAA,QAEA,QAAA,kBAAA,GAAA,CAAC,SAAM,SAAA,EAAWA,YAAA,CAAO,aACvB,QAAA,kBAAA,IAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAWA,YAAA,CAAO,aAAA,EAErB,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAWA,YAAA,CAAO,aAAA,EACrB,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,QAAK,OAAA,EAAQ,eAAA,EAAgB,QAAO,MAAA,EAClC,QAAA,EAAA,CAAA,CAAE,wBAAwB,CAAA,EAC7B,CAAA;AAAA,gCACC,IAAA,EAAA,EAAK,OAAA,EAAQ,YAAA,EACX,QAAA,EAAA,CAAA,CAAE,0CAA0C,CAAA,EAC/C;AAAA,WAAA,EACF,CAAA;AAAA,0BACA,IAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAWA,YAAA,CAAO,aAAA,EACrB,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,QAAK,OAAA,EAAQ,eAAA,EAAgB,QAAO,MAAA,EAClC,QAAA,EAAA,CAAA,CAAE,qBAAqB,CAAA,EAC1B,CAAA;AAAA,gCACC,IAAA,EAAA,EAAK,OAAA,EAAQ,YAAA,EACX,QAAA,EAAA,CAAA,CAAE,yCAAyC,CAAA,EAC9C;AAAA,WAAA,EACF,CAAA;AAAA,0BAGA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,OAAA;AAAA,cACA,IAAA,EAAK,kBAAA;AAAA,cACL,KAAA,EAAO,EAAE,6BAA6B,CAAA;AAAA,cACtC,OAAA,EAAS,iBAAA,CAAkB,MAAA,CAAO,eAAe,CAAC;AAAA;AAAA,WACpD;AAAA,0BACA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,OAAA;AAAA,cACA,IAAA,EAAK,2BAAA;AAAA,cACL,KAAA,EAAO,EAAE,6BAA6B,CAAA;AAAA,cACtC,OAAA,EAAS,iBAAA,CAAkB,MAAA,CAAO,wBAAwB,CAAC,CAAA;AAAA,cAC3D,KAAA,EAAO;AAAA,gBACL,QAAA,EAAU,CAAC,KAAA,EAAO,CAAA,KAChB,OAAO,KAAK,CAAA,IACV,MAAA,CAAO,OAAA,CAAQ,WAAA,CAAY,IAAA,EAAM,WAAW,CAAA,IAC9C,EAAE,mDAAmD;AAAA,eACzD;AAAA,cACA,KAAA,EAAO,MAAA,CAAO,aAAA,EAAe,WAAA,KAAgB,MAAA;AAAA,cAC7C,UAAA,EAAY,MAAA,CAAO,aAAA,EAAe,WAAA,EAAa;AAAA;AAAA,WACjD;AAAA,0BAGA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,OAAA;AAAA,cACA,IAAA,EAAK,kBAAA;AAAA,cACL,KAAA,EAAO,EAAE,6BAA6B,CAAA;AAAA,cACtC,OAAA,EAAS,iBAAA,CAAkB,MAAA,CAAO,eAAe,CAAC;AAAA;AAAA,WACpD;AAAA,0BACA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,OAAA;AAAA,cACA,IAAA,EAAK,2BAAA;AAAA,cACL,KAAA,EAAO,EAAE,6BAA6B,CAAA;AAAA,cACtC,OAAA,EAAS,iBAAA,CAAkB,MAAA,CAAO,wBAAwB,CAAC,CAAA;AAAA,cAC3D,KAAA,EAAO;AAAA,gBACL,QAAA,EAAU,CAAC,KAAA,EAAO,CAAA,KAChB,OAAO,KAAK,CAAA,IACV,MAAA,CAAO,OAAA,CAAQ,WAAA,CAAY,IAAA,EAAM,WAAW,CAAA,IAC9C,EAAE,mDAAmD;AAAA,eACzD;AAAA,cACA,KAAA,EAAO,MAAA,CAAO,aAAA,EAAe,WAAA,KAAgB,MAAA;AAAA,cAC7C,UAAA,EAAY,MAAA,CAAO,aAAA,EAAe,WAAA,EAAa;AAAA;AAAA;AACjD,SAAA,EACF,CAAA,EACF;AAAA;AAAA,KACF;AAAA,oBACA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI;AAAA,UACF,QAAA,EAAU,UAAA;AAAA,UACV,GAAA,EAAK,EAAA;AAAA,UACL,KAAA,EAAO;AAAA,SACT;AAAA,QACA,OAAA,EAAS,MAAM,qBAAA,CAAsB,IAAI,CAAA;AAAA,QACzC,KAAA,EAAM,SAAA;AAAA,QAEN,8BAAC,QAAA,EAAA,EAAS;AAAA;AAAA;AACZ,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -6,13 +6,13 @@ import Paper from '@mui/material/Paper';
6
6
  import { useScenario } from '../../../contexts/ScenarioContext.esm.js';
7
7
  import { pluginRiScTranslationRef } from '../../../utils/translations.esm.js';
8
8
  import { getRiskMatrixColor, getProbabilityLevel, getConsequenceLevel, formatNOK } from '../../../utils/utilityfunctions.esm.js';
9
- import styles from '../scenarioDrawer.module.css.esm.js';
9
+ import drawerStyles from '../scenarioDrawer.module.css.esm.js';
10
10
  import { Text } from '@backstage/ui';
11
11
 
12
12
  function RiskBox({ risk, heading }) {
13
13
  const { t } = useTranslationRef(pluginRiScTranslationRef);
14
14
  const cost = risk.probability * risk.consequence;
15
- return /* @__PURE__ */ jsxs(Paper, { className: styles.section, children: [
15
+ return /* @__PURE__ */ jsxs(Paper, { className: drawerStyles.section, children: [
16
16
  /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: heading }),
17
17
  /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsxs(
18
18
  Box,
@@ -1 +1 @@
1
- {"version":3,"file":"RiskSection.esm.js","sources":["../../../../src/components/scenarioDrawer/components/RiskSection.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport KeyboardDoubleArrowRightIcon from '@mui/icons-material/KeyboardDoubleArrowRight';\nimport Box from '@mui/material/Box';\nimport Paper from '@mui/material/Paper';\nimport { useScenario } from '../../../contexts/ScenarioContext';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { Risk } from '../../../utils/types';\nimport {\n formatNOK,\n getConsequenceLevel,\n getProbabilityLevel,\n getRiskMatrixColor,\n} from '../../../utils/utilityfunctions';\nimport styles from '../scenarioDrawer.module.css';\nimport { Text } from '@backstage/ui';\n\ninterface RiskProps {\n risk: Risk;\n heading: string;\n}\n\nfunction RiskBox({ risk, heading }: RiskProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const cost = risk.probability * risk.consequence;\n\n return (\n <Paper className={styles.section}>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {heading}\n </Text>\n\n <Box>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n }}\n >\n <Box\n sx={{\n width: '20px',\n height: '48px',\n borderRadius: 1,\n backgroundColor: getRiskMatrixColor(risk),\n }}\n />\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'start',\n gap: 0.5,\n }}\n >\n <Text variant=\"body-medium\" style={{ fontWeight: '700' }}>\n {t('dictionary.probability')}: {getProbabilityLevel(risk)}\n </Text>\n <Text variant=\"body-medium\" style={{ fontWeight: '700' }}>\n {t('dictionary.consequence')}: {getConsequenceLevel(risk)}\n </Text>\n </Box>\n </Box>\n </Box>\n <Box>\n <Text\n as=\"p\"\n variant=\"body-medium\"\n style={{ paddingBottom: '0.4rem', fontWeight: '700' }}\n >\n {t('dictionary.estimatedRisk')}\n </Text>\n <Text variant=\"body-large\" weight=\"bold\">\n {formatNOK(cost)} {t('riskMatrix.estimatedRisk.unit.nokPerYear')}\n </Text>\n </Box>\n </Paper>\n );\n}\n\nexport function RiskSection() {\n const { scenario } = useScenario();\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <RiskBox risk={scenario.risk} heading={t('dictionary.initialRisk')} />\n <KeyboardDoubleArrowRightIcon sx={{ fontSize: '48px' }} />\n <RiskBox\n risk={scenario.remainingRisk}\n heading={t('dictionary.restRisk')}\n />\n </Box>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RiskSection.esm.js","sources":["../../../../src/components/scenarioDrawer/components/RiskSection.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport KeyboardDoubleArrowRightIcon from '@mui/icons-material/KeyboardDoubleArrowRight';\nimport Box from '@mui/material/Box';\nimport Paper from '@mui/material/Paper';\nimport { useScenario } from '../../../contexts/ScenarioContext';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { Risk } from '../../../utils/types';\nimport {\n formatNOK,\n getConsequenceLevel,\n getProbabilityLevel,\n getRiskMatrixColor,\n} from '../../../utils/utilityfunctions';\nimport styles from '../scenarioDrawer.module.css';\nimport { Text } from '@backstage/ui';\n\ninterface RiskProps {\n risk: Risk;\n heading: string;\n}\n\nfunction RiskBox({ risk, heading }: RiskProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const cost = risk.probability * risk.consequence;\n\n return (\n <Paper className={styles.section}>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {heading}\n </Text>\n\n <Box>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n }}\n >\n <Box\n sx={{\n width: '20px',\n height: '48px',\n borderRadius: 1,\n backgroundColor: getRiskMatrixColor(risk),\n }}\n />\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'start',\n gap: 0.5,\n }}\n >\n <Text variant=\"body-medium\" style={{ fontWeight: '700' }}>\n {t('dictionary.probability')}: {getProbabilityLevel(risk)}\n </Text>\n <Text variant=\"body-medium\" style={{ fontWeight: '700' }}>\n {t('dictionary.consequence')}: {getConsequenceLevel(risk)}\n </Text>\n </Box>\n </Box>\n </Box>\n <Box>\n <Text\n as=\"p\"\n variant=\"body-medium\"\n style={{ paddingBottom: '0.4rem', fontWeight: '700' }}\n >\n {t('dictionary.estimatedRisk')}\n </Text>\n <Text variant=\"body-large\" weight=\"bold\">\n {formatNOK(cost)} {t('riskMatrix.estimatedRisk.unit.nokPerYear')}\n </Text>\n </Box>\n </Paper>\n );\n}\n\nexport function RiskSection() {\n const { scenario } = useScenario();\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <RiskBox risk={scenario.risk} heading={t('dictionary.initialRisk')} />\n <KeyboardDoubleArrowRightIcon sx={{ fontSize: '48px' }} />\n <RiskBox\n risk={scenario.remainingRisk}\n heading={t('dictionary.restRisk')}\n />\n </Box>\n );\n}\n"],"names":["styles"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { threatActorOptionsToTranslationKeys, vulnerabiltiesOptionsToTranslation
8
8
  import { Input } from '../../common/Input.esm.js';
9
9
  import { MarkdownInput } from '../../common/MarkdownInput/MarkdownInput.esm.js';
10
10
  import { Select } from '../../common/Select.esm.js';
11
- import styles from '../scenarioDrawer.module.css.esm.js';
11
+ import drawerStyles from '../scenarioDrawer.module.css.esm.js';
12
12
  import { Text } from '@backstage/ui';
13
13
 
14
14
  function ScopeFormSection({
@@ -34,7 +34,7 @@ function ScopeFormSection({
34
34
  renderedValue: t(vulnerabiltiesOptionsToTranslationKeys[vulnerability])
35
35
  })
36
36
  );
37
- return /* @__PURE__ */ jsxs(Paper, { className: styles.section, children: [
37
+ return /* @__PURE__ */ jsxs(Paper, { className: drawerStyles.section, children: [
38
38
  /* @__PURE__ */ jsx(Text, { as: "h6", variant: "title-x-small", weight: "bold", children: t("scenarioDrawer.title") }),
39
39
  /* @__PURE__ */ jsx(
40
40
  Input,
@@ -1 +1 @@
1
- {"version":3,"file":"ScopeFormSection.esm.js","sources":["../../../../src/components/scenarioDrawer/components/ScopeFormSection.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Paper from '@mui/material/Paper';\nimport { Controller, UseFormReturn } from 'react-hook-form';\nimport {\n ThreatActorsOptions,\n VulnerabilitiesOptions,\n} from '../../../utils/constants';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { FormScenario } from '../../../utils/types';\nimport {\n threatActorOptionsToTranslationKeys,\n vulnerabiltiesOptionsToTranslationKeys,\n} from '../../../utils/utilityfunctions';\nimport { Input } from '../../common/Input';\nimport { MarkdownInput } from '../../common/MarkdownInput';\nimport { Select } from '../../common/Select';\nimport styles from '../scenarioDrawer.module.css';\nimport { Text } from '@backstage/ui';\n\nfunction ScopeFormSection({\n formMethods,\n}: {\n formMethods: UseFormReturn<FormScenario>;\n}) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const {\n control,\n register,\n formState: { errors },\n } = formMethods;\n\n const threatActorOptions = Object.values(ThreatActorsOptions).map(\n threatActor => ({\n value: threatActor,\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n renderedValue: t(threatActorOptionsToTranslationKeys[threatActor]),\n }),\n );\n\n const vulnerabilitiesOptions = Object.values(VulnerabilitiesOptions).map(\n vulnerability => ({\n value: vulnerability,\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n renderedValue: t(vulnerabiltiesOptionsToTranslationKeys[vulnerability]),\n }),\n );\n\n return (\n <Paper className={styles.section}>\n <Text as=\"h6\" variant=\"title-x-small\" weight=\"bold\">\n {t('scenarioDrawer.title')}\n </Text>\n <Input\n required\n {...register('title', { required: true })}\n error={errors.title !== undefined}\n label={t('dictionary.title')}\n helperText={errors.title && t('scenarioDrawer.titleError')}\n />\n <Select<FormScenario>\n multiple\n control={control}\n name=\"threatActors\"\n label={t('dictionary.threatActors')}\n labelTranslationKey=\"threatActors\"\n options={threatActorOptions}\n />\n <Select<FormScenario>\n multiple\n control={control}\n name=\"vulnerabilities\"\n label={t('dictionary.vulnerabilities')}\n labelTranslationKey=\"vulnerabilities\"\n options={vulnerabilitiesOptions}\n />\n <Controller\n control={control}\n name=\"description\"\n render={({ field: { onChange, value }, fieldState: { error } }) => (\n <MarkdownInput\n value={value}\n onMarkdownChange={onChange}\n label={t('dictionary.description')}\n minRows={8}\n error={!!error}\n />\n )}\n />\n </Paper>\n );\n}\n\nexport default ScopeFormSection;\n"],"names":[],"mappings":";;;;;;;;;;;;;AAmBA,SAAS,gBAAA,CAAiB;AAAA,EACxB;AACF,CAAA,EAEG;AACD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM;AAAA,IACJ,OAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA,EAAW,EAAE,MAAA;AAAO,GACtB,GAAI,WAAA;AAEJ,EAAA,MAAM,kBAAA,GAAqB,MAAA,CAAO,MAAA,CAAO,mBAAmB,CAAA,CAAE,GAAA;AAAA,IAC5D,CAAA,WAAA,MAAgB;AAAA,MACd,KAAA,EAAO,WAAA;AAAA;AAAA,MAEP,aAAA,EAAe,CAAA,CAAE,mCAAA,CAAoC,WAAW,CAAC;AAAA,KACnE;AAAA,GACF;AAEA,EAAA,MAAM,sBAAA,GAAyB,MAAA,CAAO,MAAA,CAAO,sBAAsB,CAAA,CAAE,GAAA;AAAA,IACnE,CAAA,aAAA,MAAkB;AAAA,MAChB,KAAA,EAAO,aAAA;AAAA;AAAA,MAEP,aAAA,EAAe,CAAA,CAAE,sCAAA,CAAuC,aAAa,CAAC;AAAA,KACxE;AAAA,GACF;AAEA,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAM,SAAA,EAAW,MAAA,CAAO,OAAA,EACvB,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAG,IAAA,EAAK,OAAA,EAAQ,iBAAgB,MAAA,EAAO,MAAA,EAC1C,QAAA,EAAA,CAAA,CAAE,sBAAsB,CAAA,EAC3B,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAQ,IAAA;AAAA,QACP,GAAG,QAAA,CAAS,OAAA,EAAS,EAAE,QAAA,EAAU,MAAM,CAAA;AAAA,QACxC,KAAA,EAAO,OAAO,KAAA,KAAU,MAAA;AAAA,QACxB,KAAA,EAAO,EAAE,kBAAkB,CAAA;AAAA,QAC3B,UAAA,EAAY,MAAA,CAAO,KAAA,IAAS,CAAA,CAAE,2BAA2B;AAAA;AAAA,KAC3D;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAQ,IAAA;AAAA,QACR,OAAA;AAAA,QACA,IAAA,EAAK,cAAA;AAAA,QACL,KAAA,EAAO,EAAE,yBAAyB,CAAA;AAAA,QAClC,mBAAA,EAAoB,cAAA;AAAA,QACpB,OAAA,EAAS;AAAA;AAAA,KACX;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAQ,IAAA;AAAA,QACR,OAAA;AAAA,QACA,IAAA,EAAK,iBAAA;AAAA,QACL,KAAA,EAAO,EAAE,4BAA4B,CAAA;AAAA,QACrC,mBAAA,EAAoB,iBAAA;AAAA,QACpB,OAAA,EAAS;AAAA;AAAA,KACX;AAAA,oBACA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,OAAA;AAAA,QACA,IAAA,EAAK,aAAA;AAAA,QACL,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAO,EAAE,QAAA,EAAU,KAAA,EAAM,EAAG,UAAA,EAAY,EAAE,KAAA,EAAM,EAAE,qBAC3D,GAAA;AAAA,UAAC,aAAA;AAAA,UAAA;AAAA,YACC,KAAA;AAAA,YACA,gBAAA,EAAkB,QAAA;AAAA,YAClB,KAAA,EAAO,EAAE,wBAAwB,CAAA;AAAA,YACjC,OAAA,EAAS,CAAA;AAAA,YACT,KAAA,EAAO,CAAC,CAAC;AAAA;AAAA;AACX;AAAA;AAEJ,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"ScopeFormSection.esm.js","sources":["../../../../src/components/scenarioDrawer/components/ScopeFormSection.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Paper from '@mui/material/Paper';\nimport { Controller, UseFormReturn } from 'react-hook-form';\nimport {\n ThreatActorsOptions,\n VulnerabilitiesOptions,\n} from '../../../utils/constants';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { FormScenario } from '../../../utils/types';\nimport {\n threatActorOptionsToTranslationKeys,\n vulnerabiltiesOptionsToTranslationKeys,\n} from '../../../utils/utilityfunctions';\nimport { Input } from '../../common/Input';\nimport { MarkdownInput } from '../../common/MarkdownInput';\nimport { Select } from '../../common/Select';\nimport styles from '../scenarioDrawer.module.css';\nimport { Text } from '@backstage/ui';\n\nfunction ScopeFormSection({\n formMethods,\n}: {\n formMethods: UseFormReturn<FormScenario>;\n}) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const {\n control,\n register,\n formState: { errors },\n } = formMethods;\n\n const threatActorOptions = Object.values(ThreatActorsOptions).map(\n threatActor => ({\n value: threatActor,\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n renderedValue: t(threatActorOptionsToTranslationKeys[threatActor]),\n }),\n );\n\n const vulnerabilitiesOptions = Object.values(VulnerabilitiesOptions).map(\n vulnerability => ({\n value: vulnerability,\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n renderedValue: t(vulnerabiltiesOptionsToTranslationKeys[vulnerability]),\n }),\n );\n\n return (\n <Paper className={styles.section}>\n <Text as=\"h6\" variant=\"title-x-small\" weight=\"bold\">\n {t('scenarioDrawer.title')}\n </Text>\n <Input\n required\n {...register('title', { required: true })}\n error={errors.title !== undefined}\n label={t('dictionary.title')}\n helperText={errors.title && t('scenarioDrawer.titleError')}\n />\n <Select<FormScenario>\n multiple\n control={control}\n name=\"threatActors\"\n label={t('dictionary.threatActors')}\n labelTranslationKey=\"threatActors\"\n options={threatActorOptions}\n />\n <Select<FormScenario>\n multiple\n control={control}\n name=\"vulnerabilities\"\n label={t('dictionary.vulnerabilities')}\n labelTranslationKey=\"vulnerabilities\"\n options={vulnerabilitiesOptions}\n />\n <Controller\n control={control}\n name=\"description\"\n render={({ field: { onChange, value }, fieldState: { error } }) => (\n <MarkdownInput\n value={value}\n onMarkdownChange={onChange}\n label={t('dictionary.description')}\n minRows={8}\n error={!!error}\n />\n )}\n />\n </Paper>\n );\n}\n\nexport default ScopeFormSection;\n"],"names":["styles"],"mappings":";;;;;;;;;;;;;AAmBA,SAAS,gBAAA,CAAiB;AAAA,EACxB;AACF,CAAA,EAEG;AACD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM;AAAA,IACJ,OAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA,EAAW,EAAE,MAAA;AAAO,GACtB,GAAI,WAAA;AAEJ,EAAA,MAAM,kBAAA,GAAqB,MAAA,CAAO,MAAA,CAAO,mBAAmB,CAAA,CAAE,GAAA;AAAA,IAC5D,CAAA,WAAA,MAAgB;AAAA,MACd,KAAA,EAAO,WAAA;AAAA;AAAA,MAEP,aAAA,EAAe,CAAA,CAAE,mCAAA,CAAoC,WAAW,CAAC;AAAA,KACnE;AAAA,GACF;AAEA,EAAA,MAAM,sBAAA,GAAyB,MAAA,CAAO,MAAA,CAAO,sBAAsB,CAAA,CAAE,GAAA;AAAA,IACnE,CAAA,aAAA,MAAkB;AAAA,MAChB,KAAA,EAAO,aAAA;AAAA;AAAA,MAEP,aAAA,EAAe,CAAA,CAAE,sCAAA,CAAuC,aAAa,CAAC;AAAA,KACxE;AAAA,GACF;AAEA,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAM,SAAA,EAAWA,YAAA,CAAO,OAAA,EACvB,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAG,IAAA,EAAK,OAAA,EAAQ,iBAAgB,MAAA,EAAO,MAAA,EAC1C,QAAA,EAAA,CAAA,CAAE,sBAAsB,CAAA,EAC3B,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAQ,IAAA;AAAA,QACP,GAAG,QAAA,CAAS,OAAA,EAAS,EAAE,QAAA,EAAU,MAAM,CAAA;AAAA,QACxC,KAAA,EAAO,OAAO,KAAA,KAAU,MAAA;AAAA,QACxB,KAAA,EAAO,EAAE,kBAAkB,CAAA;AAAA,QAC3B,UAAA,EAAY,MAAA,CAAO,KAAA,IAAS,CAAA,CAAE,2BAA2B;AAAA;AAAA,KAC3D;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAQ,IAAA;AAAA,QACR,OAAA;AAAA,QACA,IAAA,EAAK,cAAA;AAAA,QACL,KAAA,EAAO,EAAE,yBAAyB,CAAA;AAAA,QAClC,mBAAA,EAAoB,cAAA;AAAA,QACpB,OAAA,EAAS;AAAA;AAAA,KACX;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAQ,IAAA;AAAA,QACR,OAAA;AAAA,QACA,IAAA,EAAK,iBAAA;AAAA,QACL,KAAA,EAAO,EAAE,4BAA4B,CAAA;AAAA,QACrC,mBAAA,EAAoB,iBAAA;AAAA,QACpB,OAAA,EAAS;AAAA;AAAA,KACX;AAAA,oBACA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,OAAA;AAAA,QACA,IAAA,EAAK,aAAA;AAAA,QACL,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAO,EAAE,QAAA,EAAU,KAAA,EAAM,EAAG,UAAA,EAAY,EAAE,KAAA,EAAM,EAAE,qBAC3D,GAAA;AAAA,UAAC,aAAA;AAAA,UAAA;AAAA,YACC,KAAA;AAAA,YACA,gBAAA,EAAkB,QAAA;AAAA,YAClB,KAAA,EAAO,EAAE,wBAAwB,CAAA;AAAA,YACjC,OAAA,EAAS,CAAA;AAAA,YACT,KAAA,EAAO,CAAC,CAAC;AAAA;AAAA;AACX;AAAA;AAEJ,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -5,14 +5,14 @@ import Paper from '@mui/material/Paper';
5
5
  import Box from '@mui/material/Box';
6
6
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
7
7
  import { useScenario } from '../../../contexts/ScenarioContext.esm.js';
8
- import styles from '../scenarioDrawer.module.css.esm.js';
8
+ import drawerStyles from '../scenarioDrawer.module.css.esm.js';
9
9
  import { Markdown } from '../../common/Markdown.esm.js';
10
10
  import { Text } from '@backstage/ui';
11
11
 
12
12
  function ScopeSection() {
13
13
  const { t } = useTranslationRef(pluginRiScTranslationRef);
14
14
  const { scenario } = useScenario();
15
- return /* @__PURE__ */ jsxs(Paper, { className: styles.section, children: [
15
+ return /* @__PURE__ */ jsxs(Paper, { className: drawerStyles.section, children: [
16
16
  /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: t("scenarioDrawer.title") }),
17
17
  /* @__PURE__ */ jsx(Text, { variant: "title-medium", style: { fontWeight: "700" }, children: scenario.title }),
18
18
  /* @__PURE__ */ jsxs(Box, { children: [
@@ -1 +1 @@
1
- {"version":3,"file":"ScopeSection.esm.js","sources":["../../../../src/components/scenarioDrawer/components/ScopeSection.tsx"],"sourcesContent":["import { pluginRiScTranslationRef } from '../../../utils/translations';\nimport Divider from '@mui/material/Divider';\nimport Paper from '@mui/material/Paper';\nimport Box from '@mui/material/Box';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { useScenario } from '../../../contexts/ScenarioContext';\nimport styles from '../scenarioDrawer.module.css';\nimport { Markdown } from '../../common/Markdown';\nimport { Text } from '@backstage/ui';\n\nexport function ScopeSection() {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { scenario } = useScenario();\n\n return (\n <Paper className={styles.section}>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('scenarioDrawer.title')}\n </Text>\n\n <Text variant=\"title-medium\" style={{ fontWeight: '700' }}>\n {scenario.title}\n </Text>\n\n <Box>\n <Text\n as=\"p\"\n variant=\"body-medium\"\n weight=\"bold\"\n style={{ paddingBottom: '0.4rem' }}\n >\n {t('dictionary.description')}\n </Text>\n {scenario.description ? (\n <Markdown description={scenario.description} />\n ) : (\n <Text variant=\"body-large\" style={{ fontStyle: 'italic' }}>\n {t('dictionary.emptyField', {\n field: t('dictionary.description').toLowerCase(),\n })}{' '}\n </Text>\n )}\n </Box>\n\n <Divider />\n\n <Box sx={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 2 }}>\n <Box>\n <Text\n as=\"p\"\n variant=\"body-medium\"\n style={{ paddingBottom: '0.4rem', fontWeight: '700' }}\n >\n {t('dictionary.threatActors')}\n </Text>\n {scenario.threatActors.length > 0 ? (\n scenario.threatActors.map(threatActor => {\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n const translatedThreatActor = t(`threatActors.${threatActor}`);\n return (\n <Text as=\"p\" variant=\"body-large\" key={threatActor}>\n {translatedThreatActor}\n </Text>\n );\n })\n ) : (\n <Text variant=\"body-large\" style={{ fontStyle: 'italic' }}>\n {t('dictionary.emptyField', {\n field: t('dictionary.threatActors').toLowerCase(),\n })}\n </Text>\n )}\n </Box>\n\n <Box>\n <Text\n as=\"p\"\n variant=\"body-medium\"\n style={{ paddingBottom: '0.4rem', fontWeight: '700' }}\n >\n {t('dictionary.vulnerabilities')}\n </Text>\n {scenario.vulnerabilities.length > 0 ? (\n scenario.vulnerabilities.map(vulnerability => {\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n const translatedVulnerability = t(\n `vulnerabilities.${vulnerability}`,\n );\n return (\n <Text variant=\"body-large\" as=\"p\" key={vulnerability}>\n {translatedVulnerability}\n </Text>\n );\n })\n ) : (\n <Text variant=\"body-large\" style={{ fontStyle: 'italic' }}>\n {t('dictionary.emptyField', {\n field: t('dictionary.vulnerabilities').toLowerCase(),\n })}\n </Text>\n )}\n </Box>\n </Box>\n </Paper>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScopeSection.esm.js","sources":["../../../../src/components/scenarioDrawer/components/ScopeSection.tsx"],"sourcesContent":["import { pluginRiScTranslationRef } from '../../../utils/translations';\nimport Divider from '@mui/material/Divider';\nimport Paper from '@mui/material/Paper';\nimport Box from '@mui/material/Box';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { useScenario } from '../../../contexts/ScenarioContext';\nimport styles from '../scenarioDrawer.module.css';\nimport { Markdown } from '../../common/Markdown';\nimport { Text } from '@backstage/ui';\n\nexport function ScopeSection() {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { scenario } = useScenario();\n\n return (\n <Paper className={styles.section}>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('scenarioDrawer.title')}\n </Text>\n\n <Text variant=\"title-medium\" style={{ fontWeight: '700' }}>\n {scenario.title}\n </Text>\n\n <Box>\n <Text\n as=\"p\"\n variant=\"body-medium\"\n weight=\"bold\"\n style={{ paddingBottom: '0.4rem' }}\n >\n {t('dictionary.description')}\n </Text>\n {scenario.description ? (\n <Markdown description={scenario.description} />\n ) : (\n <Text variant=\"body-large\" style={{ fontStyle: 'italic' }}>\n {t('dictionary.emptyField', {\n field: t('dictionary.description').toLowerCase(),\n })}{' '}\n </Text>\n )}\n </Box>\n\n <Divider />\n\n <Box sx={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 2 }}>\n <Box>\n <Text\n as=\"p\"\n variant=\"body-medium\"\n style={{ paddingBottom: '0.4rem', fontWeight: '700' }}\n >\n {t('dictionary.threatActors')}\n </Text>\n {scenario.threatActors.length > 0 ? (\n scenario.threatActors.map(threatActor => {\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n const translatedThreatActor = t(`threatActors.${threatActor}`);\n return (\n <Text as=\"p\" variant=\"body-large\" key={threatActor}>\n {translatedThreatActor}\n </Text>\n );\n })\n ) : (\n <Text variant=\"body-large\" style={{ fontStyle: 'italic' }}>\n {t('dictionary.emptyField', {\n field: t('dictionary.threatActors').toLowerCase(),\n })}\n </Text>\n )}\n </Box>\n\n <Box>\n <Text\n as=\"p\"\n variant=\"body-medium\"\n style={{ paddingBottom: '0.4rem', fontWeight: '700' }}\n >\n {t('dictionary.vulnerabilities')}\n </Text>\n {scenario.vulnerabilities.length > 0 ? (\n scenario.vulnerabilities.map(vulnerability => {\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n const translatedVulnerability = t(\n `vulnerabilities.${vulnerability}`,\n );\n return (\n <Text variant=\"body-large\" as=\"p\" key={vulnerability}>\n {translatedVulnerability}\n </Text>\n );\n })\n ) : (\n <Text variant=\"body-large\" style={{ fontStyle: 'italic' }}>\n {t('dictionary.emptyField', {\n field: t('dictionary.vulnerabilities').toLowerCase(),\n })}\n </Text>\n )}\n </Box>\n </Box>\n </Paper>\n );\n}\n"],"names":["styles"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
2
 
3
- var css_248z = ".scenarioDrawer_section__cc79f985a5 {\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n padding: 16px;\n position: relative;\n}\n\n.scenarioDrawer_riscSection__cc79f985a5 {\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.scenarioDrawer_headerSection__cc79f985a5 {\n display: flex;\n flex-direction: column;\n gap: 4px;\n width: 100%;\n}\n\n.scenarioDrawer_selectSection__cc79f985a5 {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 24px;\n row-gap: 16px;\n}\n";
4
- var styles = {"section":"scenarioDrawer_section__cc79f985a5","riscSection":"scenarioDrawer_riscSection__cc79f985a5","headerSection":"scenarioDrawer_headerSection__cc79f985a5","selectSection":"scenarioDrawer_selectSection__cc79f985a5"};
3
+ var css_248z = ".scenarioDrawer_section__f30b5ac44d {\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n padding: 16px;\n position: relative;\n}\n\n.scenarioDrawer_riscSection__f30b5ac44d {\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.scenarioDrawer_headerSection__f30b5ac44d {\n display: flex;\n flex-direction: column;\n gap: 4px;\n width: 100%;\n}\n\n.scenarioDrawer_selectSection__f30b5ac44d {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 24px;\n row-gap: 16px;\n}\n\n.scenarioDrawer_deleteConfirmationDialog__f30b5ac44d {\n width: 500px;\n padding: 16px;\n}\n\n.scenarioDrawer_deleteConfirmationDialogBody__f30b5ac44d {\n display: flex;\n justify-content: space-between;\n}\n\n.scenarioDrawer_topButtons__f30b5ac44d {\n display: flex;\n gap: 16px;\n margin-left: auto;\n}\n\n.scenarioDrawer_bottomButtons__f30b5ac44d {\n display: flex;\n gap: 16px;\n}\n\n.scenarioDrawer_spinner__f30b5ac44d {\n margin-left: 8px;\n color: inherit;\n}\n";
4
+ var drawerStyles = {"section":"scenarioDrawer_section__f30b5ac44d","riscSection":"scenarioDrawer_riscSection__f30b5ac44d","headerSection":"scenarioDrawer_headerSection__f30b5ac44d","selectSection":"scenarioDrawer_selectSection__f30b5ac44d","deleteConfirmationDialog":"scenarioDrawer_deleteConfirmationDialog__f30b5ac44d","topButtons":"scenarioDrawer_topButtons__f30b5ac44d","bottomButtons":"scenarioDrawer_bottomButtons__f30b5ac44d","spinner":"scenarioDrawer_spinner__f30b5ac44d"};
5
5
  styleInject(css_248z);
6
6
 
7
- export { styles as default };
7
+ export { drawerStyles as default };
8
8
  //# sourceMappingURL=scenarioDrawer.module.css.esm.js.map
@@ -22,6 +22,7 @@ import { useSearchParams } from 'react-router-dom';
22
22
  import { validateRemainingRiskNotHigher, getAlertSeverity } from '../../utils/utilityfunctions.esm.js';
23
23
  import { Flex, Text, Button } from '@backstage/ui';
24
24
  import { useBackstageContext } from '../../contexts/BackstageContext.esm.js';
25
+ import styles from './ScenarioWizard.module.css.esm.js';
25
26
 
26
27
  function ScenarioWizard({ step }) {
27
28
  const { profileInfo } = useBackstageContext();
@@ -101,81 +102,70 @@ function ScenarioWizard({ step }) {
101
102
  measure: /* @__PURE__ */ jsx(ActionsStep, { formMethods }),
102
103
  restRisk: /* @__PURE__ */ jsx(RiskStep, { formMethods, riskType: "remainingRisk" })
103
104
  };
104
- return /* @__PURE__ */ jsxs(
105
- Container,
106
- {
107
- maxWidth: "md",
108
- sx: {
109
- display: "flex",
110
- flexDirection: "column",
111
- gap: "32px"
112
- },
113
- children: [
114
- /* @__PURE__ */ jsxs(Flex, { justify: "between", children: [
115
- /* @__PURE__ */ jsx(Text, { variant: "title-medium", weight: "bold", children: t("scenarioDrawer.newTitle") }),
116
- /* @__PURE__ */ jsx(Button, { size: "medium", variant: "secondary", onClick: handleCloseStepper, children: t("dictionary.cancel") })
117
- ] }),
118
- /* @__PURE__ */ jsx(
119
- Stepper,
105
+ return /* @__PURE__ */ jsxs(Container, { maxWidth: "md", className: styles.container, children: [
106
+ /* @__PURE__ */ jsxs(Flex, { justify: "between", children: [
107
+ /* @__PURE__ */ jsx(Text, { variant: "title-medium", weight: "bold", children: t("scenarioDrawer.newTitle") }),
108
+ /* @__PURE__ */ jsx(Button, { size: "medium", variant: "secondary", onClick: handleCloseStepper, children: t("dictionary.cancel") })
109
+ ] }),
110
+ /* @__PURE__ */ jsx(
111
+ Stepper,
112
+ {
113
+ activeStep: scenarioWizardSteps.indexOf(step),
114
+ alternativeLabel: true,
115
+ nonLinear: true,
116
+ children: scenarioWizardSteps.map((wizardStep) => /* @__PURE__ */ jsx(Step, { completed: false, children: /* @__PURE__ */ jsx(StepButton, { onClick: () => selectStep(wizardStep), children: /* @__PURE__ */ jsx(Text, { children: t(`dictionary.${wizardStep}`) }) }) }, wizardStep))
117
+ }
118
+ ),
119
+ /* @__PURE__ */ jsx(Divider, {}),
120
+ isFetching ? /* @__PURE__ */ jsx(Spinner, { size: 80 }) : /* @__PURE__ */ jsxs(Fragment, { children: [
121
+ stepComponents[step],
122
+ response && /* @__PURE__ */ jsx(Alert, { severity: getAlertSeverity(updateStatus, response), children: /* @__PURE__ */ jsx(Text, { variant: "body-large", children: response.statusMessage }) }),
123
+ riskValidationError.length > 0 && /* @__PURE__ */ jsx(Alert, { severity: "error", children: riskValidationError.map((line, index) => /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Text, { variant: "body-large", children: line }) }, index)) }),
124
+ /* @__PURE__ */ jsxs(Flex, { justify: isFirstStep ? "end" : "between", children: [
125
+ !isFirstStep && /* @__PURE__ */ jsx(
126
+ Button,
120
127
  {
121
- activeStep: scenarioWizardSteps.indexOf(step),
122
- alternativeLabel: true,
123
- nonLinear: true,
124
- children: scenarioWizardSteps.map((wizardStep) => /* @__PURE__ */ jsx(Step, { completed: false, children: /* @__PURE__ */ jsx(StepButton, { onClick: () => selectStep(wizardStep), children: /* @__PURE__ */ jsx(Text, { children: t(`dictionary.${wizardStep}`) }) }) }, wizardStep))
128
+ size: "medium",
129
+ variant: "tertiary",
130
+ onClick: previousStep,
131
+ iconStart: /* @__PURE__ */ jsx(KeyboardArrowLeft, {}),
132
+ children: t("dictionary.previous")
125
133
  }
126
134
  ),
127
- /* @__PURE__ */ jsx(Divider, {}),
128
- isFetching ? /* @__PURE__ */ jsx(Spinner, { size: 80 }) : /* @__PURE__ */ jsxs(Fragment, { children: [
129
- stepComponents[step],
130
- response && /* @__PURE__ */ jsx(Alert, { severity: getAlertSeverity(updateStatus, response), children: /* @__PURE__ */ jsx(Text, { variant: "body-large", children: response.statusMessage }) }),
131
- riskValidationError.length > 0 && /* @__PURE__ */ jsx(Alert, { severity: "error", children: riskValidationError.map((line, index) => /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Text, { variant: "body-large", children: line }) }, index)) }),
132
- /* @__PURE__ */ jsxs(Flex, { justify: isFirstStep ? "end" : "between", children: [
133
- !isFirstStep && /* @__PURE__ */ jsx(
134
- Button,
135
- {
136
- size: "medium",
137
- variant: "tertiary",
138
- onClick: previousStep,
139
- iconStart: /* @__PURE__ */ jsx(KeyboardArrowLeft, {}),
140
- children: t("dictionary.previous")
141
- }
142
- ),
143
- /* @__PURE__ */ jsxs(Flex, { gap: "16px", children: [
144
- /* @__PURE__ */ jsx(
145
- Button,
146
- {
147
- variant: isLastStep ? "primary" : "secondary",
148
- onClick: onSubmit,
149
- size: "medium",
150
- isDisabled: !isDirty || updateStatus.isLoading,
151
- children: isLastStep ? t("scenarioDrawer.createNewScenario") : t("scenarioDrawer.saveAsDraft")
152
- }
153
- ),
154
- !isLastStep && /* @__PURE__ */ jsx(
155
- Button,
156
- {
157
- variant: "primary",
158
- size: "medium",
159
- onClick: nextStep,
160
- iconEnd: /* @__PURE__ */ jsx(KeyboardArrowRight, {}),
161
- children: t("dictionary.next")
162
- }
163
- )
164
- ] })
165
- ] })
166
- ] }),
167
- /* @__PURE__ */ jsx(
168
- CloseConfirmation,
169
- {
170
- isOpen: showCloseConfirmation,
171
- onCloseDialog: () => setShowCloseConfirmation(false),
172
- close,
173
- save: onSubmit
174
- }
175
- )
176
- ]
177
- }
178
- );
135
+ /* @__PURE__ */ jsxs(Flex, { gap: "16px", children: [
136
+ /* @__PURE__ */ jsx(
137
+ Button,
138
+ {
139
+ variant: isLastStep ? "primary" : "secondary",
140
+ onClick: onSubmit,
141
+ size: "medium",
142
+ isDisabled: !isDirty || updateStatus.isLoading,
143
+ children: isLastStep ? t("scenarioDrawer.createNewScenario") : t("scenarioDrawer.saveAsDraft")
144
+ }
145
+ ),
146
+ !isLastStep && /* @__PURE__ */ jsx(
147
+ Button,
148
+ {
149
+ variant: "primary",
150
+ size: "medium",
151
+ onClick: nextStep,
152
+ iconEnd: /* @__PURE__ */ jsx(KeyboardArrowRight, {}),
153
+ children: t("dictionary.next")
154
+ }
155
+ )
156
+ ] })
157
+ ] })
158
+ ] }),
159
+ /* @__PURE__ */ jsx(
160
+ CloseConfirmation,
161
+ {
162
+ isOpen: showCloseConfirmation,
163
+ onCloseDialog: () => setShowCloseConfirmation(false),
164
+ close,
165
+ save: onSubmit
166
+ }
167
+ )
168
+ ] });
179
169
  }
180
170
 
181
171
  export { ScenarioWizard };
@@ -1 +1 @@
1
- {"version":3,"file":"ScenarioWizard.esm.js","sources":["../../../src/components/scenarioWizard/ScenarioWizard.tsx"],"sourcesContent":["import { ReactNode, useCallback, useState } from 'react';\nimport Step from '@mui/material/Step';\nimport StepButton from '@mui/material/StepButton';\nimport Stepper from '@mui/material/Stepper';\nimport KeyboardArrowRight from '@mui/icons-material/KeyboardArrowRight';\nimport KeyboardArrowLeft from '@mui/icons-material/KeyboardArrowLeft';\nimport { ScenarioStep } from './steps/ScenarioStep';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Divider from '@mui/material/Divider';\nimport { ActionsStep } from './steps/ActionsStep';\nimport { RiskStep } from './steps/RiskStep';\nimport Alert from '@mui/material/Alert';\nimport { Spinner } from '../common/Spinner';\nimport { CloseConfirmation } from './components/CloseConfirmation';\nimport {\n scenarioWizardSteps,\n ScenarioWizardSteps,\n useScenario,\n} from '../../contexts/ScenarioContext';\nimport { useRiScs } from '../../contexts/RiScContext';\nimport Container from '@mui/material/Container';\nimport { useForm } from 'react-hook-form';\nimport { FormScenario, Scenario } from '../../utils/types';\nimport { useSearchParams } from 'react-router-dom';\nimport {\n getAlertSeverity,\n validateRemainingRiskNotHigher,\n} from '../../utils/utilityfunctions';\nimport { Text, Button, Flex } from '@backstage/ui';\nimport { useBackstageContext } from '../../contexts/BackstageContext.tsx';\n\nexport function ScenarioWizard({ step }: { step: ScenarioWizardSteps }) {\n const { profileInfo } = useBackstageContext();\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { isFetching, response, updateStatus } = useRiScs();\n const [, setSearchParams] = useSearchParams();\n\n const { scenario, emptyFormScenario, closeScenarioForm, submitNewScenario } =\n useScenario();\n\n const [showCloseConfirmation, setShowCloseConfirmation] = useState(false);\n const [riskValidationError, setRiskValidationError] = useState<string[]>([]);\n\n const formMethods = useForm<FormScenario>({\n defaultValues: emptyFormScenario(scenario),\n mode: 'onBlur',\n });\n\n const { isDirty, isValid } = formMethods.formState;\n\n const onSubmit = formMethods.handleSubmit((data: FormScenario) => {\n const validation = validateRemainingRiskNotHigher(data, t);\n\n if (!validation.isValid) {\n setRiskValidationError(validation.errors);\n return;\n }\n\n setRiskValidationError([]);\n\n const submitScenario: Scenario = {\n ...data,\n risk: {\n ...data.risk,\n probability: Number(data.risk.probability),\n consequence: Number(data.risk.consequence),\n },\n remainingRisk: {\n ...data.remainingRisk,\n probability: Number(data.remainingRisk.probability),\n consequence: Number(data.remainingRisk.consequence),\n },\n };\n\n formMethods.trigger();\n\n if (isValid) {\n submitNewScenario(submitScenario, profileInfo, () => closeScenarioForm());\n } else {\n formMethods.trigger();\n }\n });\n\n const close = useCallback(() => {\n closeScenarioForm();\n setShowCloseConfirmation(false);\n }, [closeScenarioForm]);\n\n function handleCloseStepper() {\n if (isDirty) {\n setShowCloseConfirmation(true);\n } else {\n close();\n }\n }\n\n function selectStep(newStep: ScenarioWizardSteps) {\n if (isValid) {\n setSearchParams({ step: newStep });\n } else {\n formMethods.trigger();\n }\n }\n\n function nextStep() {\n const currentIndex = scenarioWizardSteps.indexOf(step);\n if (currentIndex < scenarioWizardSteps.length - 1) {\n selectStep(scenarioWizardSteps[currentIndex + 1]);\n }\n }\n\n function previousStep() {\n const currentIndex = scenarioWizardSteps.indexOf(step);\n if (currentIndex > 0) {\n selectStep(scenarioWizardSteps[currentIndex - 1]);\n }\n }\n\n const isFirstStep = step === scenarioWizardSteps.at(0);\n const isLastStep = step === scenarioWizardSteps.at(-1);\n\n const stepComponents: Record<ScenarioWizardSteps, ReactNode> = {\n scenario: <ScenarioStep formMethods={formMethods} />,\n initialRisk: <RiskStep formMethods={formMethods} riskType=\"risk\" />,\n measure: <ActionsStep formMethods={formMethods} />,\n restRisk: <RiskStep formMethods={formMethods} riskType=\"remainingRisk\" />,\n };\n\n return (\n <Container\n maxWidth=\"md\"\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: '32px',\n }}\n >\n <Flex justify=\"between\">\n <Text variant=\"title-medium\" weight=\"bold\">\n {t('scenarioDrawer.newTitle')}\n </Text>\n <Button size=\"medium\" variant=\"secondary\" onClick={handleCloseStepper}>\n {t('dictionary.cancel')}\n </Button>\n </Flex>\n <Stepper\n activeStep={scenarioWizardSteps.indexOf(step)}\n alternativeLabel\n nonLinear\n >\n {scenarioWizardSteps.map(wizardStep => (\n <Step key={wizardStep} completed={false}>\n <StepButton onClick={() => selectStep(wizardStep)}>\n <Text>{t(`dictionary.${wizardStep}`)}</Text>\n </StepButton>\n </Step>\n ))}\n </Stepper>\n <Divider />\n {isFetching ? (\n <Spinner size={80} />\n ) : (\n <>\n {stepComponents[step]}\n\n {response && (\n <Alert severity={getAlertSeverity(updateStatus, response)}>\n <Text variant=\"body-large\">{response.statusMessage}</Text>\n </Alert>\n )}\n {riskValidationError.length > 0 && (\n <Alert severity=\"error\">\n {riskValidationError.map((line, index) => (\n <div key={index}>\n <Text variant=\"body-large\">{line}</Text>\n </div>\n ))}\n </Alert>\n )}\n <Flex justify={isFirstStep ? 'end' : 'between'}>\n {!isFirstStep && (\n <Button\n size=\"medium\"\n variant=\"tertiary\"\n onClick={previousStep}\n iconStart={<KeyboardArrowLeft />}\n >\n {t('dictionary.previous')}\n </Button>\n )}\n <Flex gap=\"16px\">\n <Button\n variant={isLastStep ? 'primary' : 'secondary'}\n onClick={onSubmit}\n size=\"medium\"\n isDisabled={!isDirty || updateStatus.isLoading}\n >\n {isLastStep\n ? t('scenarioDrawer.createNewScenario')\n : t('scenarioDrawer.saveAsDraft')}\n </Button>\n\n {!isLastStep && (\n <Button\n variant=\"primary\"\n size=\"medium\"\n onClick={nextStep}\n iconEnd={<KeyboardArrowRight />}\n >\n {t('dictionary.next')}\n </Button>\n )}\n </Flex>\n </Flex>\n </>\n )}\n <CloseConfirmation\n isOpen={showCloseConfirmation}\n onCloseDialog={() => setShowCloseConfirmation(false)}\n close={close}\n save={onSubmit}\n />\n </Container>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScenarioWizard.esm.js","sources":["../../../src/components/scenarioWizard/ScenarioWizard.tsx"],"sourcesContent":["import { ReactNode, useCallback, useState } from 'react';\nimport Step from '@mui/material/Step';\nimport StepButton from '@mui/material/StepButton';\nimport Stepper from '@mui/material/Stepper';\nimport KeyboardArrowRight from '@mui/icons-material/KeyboardArrowRight';\nimport KeyboardArrowLeft from '@mui/icons-material/KeyboardArrowLeft';\nimport { ScenarioStep } from './steps/ScenarioStep';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Divider from '@mui/material/Divider';\nimport { ActionsStep } from './steps/ActionsStep';\nimport { RiskStep } from './steps/RiskStep';\nimport Alert from '@mui/material/Alert';\nimport { Spinner } from '../common/Spinner';\nimport { CloseConfirmation } from './components/CloseConfirmation';\nimport {\n scenarioWizardSteps,\n ScenarioWizardSteps,\n useScenario,\n} from '../../contexts/ScenarioContext';\nimport { useRiScs } from '../../contexts/RiScContext';\nimport Container from '@mui/material/Container';\nimport { useForm } from 'react-hook-form';\nimport { FormScenario, Scenario } from '../../utils/types';\nimport { useSearchParams } from 'react-router-dom';\nimport {\n getAlertSeverity,\n validateRemainingRiskNotHigher,\n} from '../../utils/utilityfunctions';\nimport { Text, Button, Flex } from '@backstage/ui';\nimport { useBackstageContext } from '../../contexts/BackstageContext.tsx';\nimport styles from './ScenarioWizard.module.css';\n\nexport function ScenarioWizard({ step }: { step: ScenarioWizardSteps }) {\n const { profileInfo } = useBackstageContext();\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { isFetching, response, updateStatus } = useRiScs();\n const [, setSearchParams] = useSearchParams();\n\n const { scenario, emptyFormScenario, closeScenarioForm, submitNewScenario } =\n useScenario();\n\n const [showCloseConfirmation, setShowCloseConfirmation] = useState(false);\n const [riskValidationError, setRiskValidationError] = useState<string[]>([]);\n\n const formMethods = useForm<FormScenario>({\n defaultValues: emptyFormScenario(scenario),\n mode: 'onBlur',\n });\n\n const { isDirty, isValid } = formMethods.formState;\n\n const onSubmit = formMethods.handleSubmit((data: FormScenario) => {\n const validation = validateRemainingRiskNotHigher(data, t);\n\n if (!validation.isValid) {\n setRiskValidationError(validation.errors);\n return;\n }\n\n setRiskValidationError([]);\n\n const submitScenario: Scenario = {\n ...data,\n risk: {\n ...data.risk,\n probability: Number(data.risk.probability),\n consequence: Number(data.risk.consequence),\n },\n remainingRisk: {\n ...data.remainingRisk,\n probability: Number(data.remainingRisk.probability),\n consequence: Number(data.remainingRisk.consequence),\n },\n };\n\n formMethods.trigger();\n\n if (isValid) {\n submitNewScenario(submitScenario, profileInfo, () => closeScenarioForm());\n } else {\n formMethods.trigger();\n }\n });\n\n const close = useCallback(() => {\n closeScenarioForm();\n setShowCloseConfirmation(false);\n }, [closeScenarioForm]);\n\n function handleCloseStepper() {\n if (isDirty) {\n setShowCloseConfirmation(true);\n } else {\n close();\n }\n }\n\n function selectStep(newStep: ScenarioWizardSteps) {\n if (isValid) {\n setSearchParams({ step: newStep });\n } else {\n formMethods.trigger();\n }\n }\n\n function nextStep() {\n const currentIndex = scenarioWizardSteps.indexOf(step);\n if (currentIndex < scenarioWizardSteps.length - 1) {\n selectStep(scenarioWizardSteps[currentIndex + 1]);\n }\n }\n\n function previousStep() {\n const currentIndex = scenarioWizardSteps.indexOf(step);\n if (currentIndex > 0) {\n selectStep(scenarioWizardSteps[currentIndex - 1]);\n }\n }\n\n const isFirstStep = step === scenarioWizardSteps.at(0);\n const isLastStep = step === scenarioWizardSteps.at(-1);\n\n const stepComponents: Record<ScenarioWizardSteps, ReactNode> = {\n scenario: <ScenarioStep formMethods={formMethods} />,\n initialRisk: <RiskStep formMethods={formMethods} riskType=\"risk\" />,\n measure: <ActionsStep formMethods={formMethods} />,\n restRisk: <RiskStep formMethods={formMethods} riskType=\"remainingRisk\" />,\n };\n\n return (\n <Container maxWidth=\"md\" className={styles.container}>\n <Flex justify=\"between\">\n <Text variant=\"title-medium\" weight=\"bold\">\n {t('scenarioDrawer.newTitle')}\n </Text>\n <Button size=\"medium\" variant=\"secondary\" onClick={handleCloseStepper}>\n {t('dictionary.cancel')}\n </Button>\n </Flex>\n <Stepper\n activeStep={scenarioWizardSteps.indexOf(step)}\n alternativeLabel\n nonLinear\n >\n {scenarioWizardSteps.map(wizardStep => (\n <Step key={wizardStep} completed={false}>\n <StepButton onClick={() => selectStep(wizardStep)}>\n <Text>{t(`dictionary.${wizardStep}`)}</Text>\n </StepButton>\n </Step>\n ))}\n </Stepper>\n <Divider />\n {isFetching ? (\n <Spinner size={80} />\n ) : (\n <>\n {stepComponents[step]}\n\n {response && (\n <Alert severity={getAlertSeverity(updateStatus, response)}>\n <Text variant=\"body-large\">{response.statusMessage}</Text>\n </Alert>\n )}\n {riskValidationError.length > 0 && (\n <Alert severity=\"error\">\n {riskValidationError.map((line, index) => (\n <div key={index}>\n <Text variant=\"body-large\">{line}</Text>\n </div>\n ))}\n </Alert>\n )}\n <Flex justify={isFirstStep ? 'end' : 'between'}>\n {!isFirstStep && (\n <Button\n size=\"medium\"\n variant=\"tertiary\"\n onClick={previousStep}\n iconStart={<KeyboardArrowLeft />}\n >\n {t('dictionary.previous')}\n </Button>\n )}\n <Flex gap=\"16px\">\n <Button\n variant={isLastStep ? 'primary' : 'secondary'}\n onClick={onSubmit}\n size=\"medium\"\n isDisabled={!isDirty || updateStatus.isLoading}\n >\n {isLastStep\n ? t('scenarioDrawer.createNewScenario')\n : t('scenarioDrawer.saveAsDraft')}\n </Button>\n\n {!isLastStep && (\n <Button\n variant=\"primary\"\n size=\"medium\"\n onClick={nextStep}\n iconEnd={<KeyboardArrowRight />}\n >\n {t('dictionary.next')}\n </Button>\n )}\n </Flex>\n </Flex>\n </>\n )}\n <CloseConfirmation\n isOpen={showCloseConfirmation}\n onCloseDialog={() => setShowCloseConfirmation(false)}\n close={close}\n save={onSubmit}\n />\n </Container>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAiCO,SAAS,cAAA,CAAe,EAAE,IAAA,EAAK,EAAkC;AACtE,EAAA,MAAM,EAAE,WAAA,EAAY,GAAI,mBAAA,EAAoB;AAC5C,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM,EAAE,UAAA,EAAY,QAAA,EAAU,YAAA,KAAiB,QAAA,EAAS;AACxD,EAAA,MAAM,GAAG,eAAe,CAAA,GAAI,eAAA,EAAgB;AAE5C,EAAA,MAAM,EAAE,QAAA,EAAU,iBAAA,EAAmB,iBAAA,EAAmB,iBAAA,KACtD,WAAA,EAAY;AAEd,EAAA,MAAM,CAAC,qBAAA,EAAuB,wBAAwB,CAAA,GAAI,SAAS,KAAK,CAAA;AACxE,EAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAI,QAAA,CAAmB,EAAE,CAAA;AAE3E,EAAA,MAAM,cAAc,OAAA,CAAsB;AAAA,IACxC,aAAA,EAAe,kBAAkB,QAAQ,CAAA;AAAA,IACzC,IAAA,EAAM;AAAA,GACP,CAAA;AAED,EAAA,MAAM,EAAE,OAAA,EAAS,OAAA,EAAQ,GAAI,WAAA,CAAY,SAAA;AAEzC,EAAA,MAAM,QAAA,GAAW,WAAA,CAAY,YAAA,CAAa,CAAC,IAAA,KAAuB;AAChE,IAAA,MAAM,UAAA,GAAa,8BAAA,CAA+B,IAAA,EAAM,CAAC,CAAA;AAEzD,IAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACvB,MAAA,sBAAA,CAAuB,WAAW,MAAM,CAAA;AACxC,MAAA;AAAA,IACF;AAEA,IAAA,sBAAA,CAAuB,EAAE,CAAA;AAEzB,IAAA,MAAM,cAAA,GAA2B;AAAA,MAC/B,GAAG,IAAA;AAAA,MACH,IAAA,EAAM;AAAA,QACJ,GAAG,IAAA,CAAK,IAAA;AAAA,QACR,WAAA,EAAa,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,WAAW,CAAA;AAAA,QACzC,WAAA,EAAa,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,WAAW;AAAA,OAC3C;AAAA,MACA,aAAA,EAAe;AAAA,QACb,GAAG,IAAA,CAAK,aAAA;AAAA,QACR,WAAA,EAAa,MAAA,CAAO,IAAA,CAAK,aAAA,CAAc,WAAW,CAAA;AAAA,QAClD,WAAA,EAAa,MAAA,CAAO,IAAA,CAAK,aAAA,CAAc,WAAW;AAAA;AACpD,KACF;AAEA,IAAA,WAAA,CAAY,OAAA,EAAQ;AAEpB,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,iBAAA,CAAkB,cAAA,EAAgB,WAAA,EAAa,MAAM,iBAAA,EAAmB,CAAA;AAAA,IAC1E,CAAA,MAAO;AACL,MAAA,WAAA,CAAY,OAAA,EAAQ;AAAA,IACtB;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,KAAA,GAAQ,YAAY,MAAM;AAC9B,IAAA,iBAAA,EAAkB;AAClB,IAAA,wBAAA,CAAyB,KAAK,CAAA;AAAA,EAChC,CAAA,EAAG,CAAC,iBAAiB,CAAC,CAAA;AAEtB,EAAA,SAAS,kBAAA,GAAqB;AAC5B,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,wBAAA,CAAyB,IAAI,CAAA;AAAA,IAC/B,CAAA,MAAO;AACL,MAAA,KAAA,EAAM;AAAA,IACR;AAAA,EACF;AAEA,EAAA,SAAS,WAAW,OAAA,EAA8B;AAChD,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,eAAA,CAAgB,EAAE,IAAA,EAAM,OAAA,EAAS,CAAA;AAAA,IACnC,CAAA,MAAO;AACL,MAAA,WAAA,CAAY,OAAA,EAAQ;AAAA,IACtB;AAAA,EACF;AAEA,EAAA,SAAS,QAAA,GAAW;AAClB,IAAA,MAAM,YAAA,GAAe,mBAAA,CAAoB,OAAA,CAAQ,IAAI,CAAA;AACrD,IAAA,IAAI,YAAA,GAAe,mBAAA,CAAoB,MAAA,GAAS,CAAA,EAAG;AACjD,MAAA,UAAA,CAAW,mBAAA,CAAoB,YAAA,GAAe,CAAC,CAAC,CAAA;AAAA,IAClD;AAAA,EACF;AAEA,EAAA,SAAS,YAAA,GAAe;AACtB,IAAA,MAAM,YAAA,GAAe,mBAAA,CAAoB,OAAA,CAAQ,IAAI,CAAA;AACrD,IAAA,IAAI,eAAe,CAAA,EAAG;AACpB,MAAA,UAAA,CAAW,mBAAA,CAAoB,YAAA,GAAe,CAAC,CAAC,CAAA;AAAA,IAClD;AAAA,EACF;AAEA,EAAA,MAAM,WAAA,GAAc,IAAA,KAAS,mBAAA,CAAoB,EAAA,CAAG,CAAC,CAAA;AACrD,EAAA,MAAM,UAAA,GAAa,IAAA,KAAS,mBAAA,CAAoB,EAAA,CAAG,EAAE,CAAA;AAErD,EAAA,MAAM,cAAA,GAAyD;AAAA,IAC7D,QAAA,kBAAU,GAAA,CAAC,YAAA,EAAA,EAAa,WAAA,EAA0B,CAAA;AAAA,IAClD,WAAA,kBAAa,GAAA,CAAC,QAAA,EAAA,EAAS,WAAA,EAA0B,UAAS,MAAA,EAAO,CAAA;AAAA,IACjE,OAAA,kBAAS,GAAA,CAAC,WAAA,EAAA,EAAY,WAAA,EAA0B,CAAA;AAAA,IAChD,QAAA,kBAAU,GAAA,CAAC,QAAA,EAAA,EAAS,WAAA,EAA0B,UAAS,eAAA,EAAgB;AAAA,GACzE;AAEA,EAAA,4BACG,SAAA,EAAA,EAAU,QAAA,EAAS,IAAA,EAAK,SAAA,EAAW,OAAO,SAAA,EACzC,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,IAAA,EAAA,EAAK,SAAQ,SAAA,EACZ,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,QAAK,OAAA,EAAQ,cAAA,EAAe,QAAO,MAAA,EACjC,QAAA,EAAA,CAAA,CAAE,yBAAyB,CAAA,EAC9B,CAAA;AAAA,sBACA,GAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,OAAA,EAAQ,aAAY,OAAA,EAAS,kBAAA,EAChD,QAAA,EAAA,CAAA,CAAE,mBAAmB,CAAA,EACxB;AAAA,KAAA,EACF,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAY,mBAAA,CAAoB,OAAA,CAAQ,IAAI,CAAA;AAAA,QAC5C,gBAAA,EAAgB,IAAA;AAAA,QAChB,SAAA,EAAS,IAAA;AAAA,QAER,QAAA,EAAA,mBAAA,CAAoB,GAAA,CAAI,CAAA,UAAA,qBACvB,GAAA,CAAC,IAAA,EAAA,EAAsB,WAAW,KAAA,EAChC,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,OAAA,EAAS,MAAM,UAAA,CAAW,UAAU,CAAA,EAC9C,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAM,QAAA,EAAA,CAAA,CAAE,CAAA,WAAA,EAAc,UAAU,EAAE,CAAA,EAAE,CAAA,EACvC,CAAA,EAAA,EAHS,UAIX,CACD;AAAA;AAAA,KACH;AAAA,wBACC,OAAA,EAAA,EAAQ,CAAA;AAAA,IACR,6BACC,GAAA,CAAC,OAAA,EAAA,EAAQ,IAAA,EAAM,EAAA,EAAI,oBAEnB,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,cAAA,CAAe,IAAI,CAAA;AAAA,MAEnB,QAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAM,QAAA,EAAU,iBAAiB,YAAA,EAAc,QAAQ,CAAA,EACtD,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,YAAA,EAAc,QAAA,EAAA,QAAA,CAAS,eAAc,CAAA,EACrD,CAAA;AAAA,MAED,mBAAA,CAAoB,SAAS,CAAA,oBAC5B,GAAA,CAAC,SAAM,QAAA,EAAS,OAAA,EACb,QAAA,EAAA,mBAAA,CAAoB,GAAA,CAAI,CAAC,IAAA,EAAM,0BAC9B,GAAA,CAAC,KAAA,EAAA,EACC,8BAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,cAAc,QAAA,EAAA,IAAA,EAAK,CAAA,EAAA,EADzB,KAEV,CACD,CAAA,EACH,CAAA;AAAA,sBAEF,IAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAS,WAAA,GAAc,QAAQ,SAAA,EAClC,QAAA,EAAA;AAAA,QAAA,CAAC,WAAA,oBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAQ,UAAA;AAAA,YACR,OAAA,EAAS,YAAA;AAAA,YACT,SAAA,sBAAY,iBAAA,EAAA,EAAkB,CAAA;AAAA,YAE7B,YAAE,qBAAqB;AAAA;AAAA,SAC1B;AAAA,wBAEF,IAAA,CAAC,IAAA,EAAA,EAAK,GAAA,EAAI,MAAA,EACR,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAS,aAAa,SAAA,GAAY,WAAA;AAAA,cAClC,OAAA,EAAS,QAAA;AAAA,cACT,IAAA,EAAK,QAAA;AAAA,cACL,UAAA,EAAY,CAAC,OAAA,IAAW,YAAA,CAAa,SAAA;AAAA,cAEpC,QAAA,EAAA,UAAA,GACG,CAAA,CAAE,kCAAkC,CAAA,GACpC,EAAE,4BAA4B;AAAA;AAAA,WACpC;AAAA,UAEC,CAAC,UAAA,oBACA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAQ,SAAA;AAAA,cACR,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,QAAA;AAAA,cACT,OAAA,sBAAU,kBAAA,EAAA,EAAmB,CAAA;AAAA,cAE5B,YAAE,iBAAiB;AAAA;AAAA;AACtB,SAAA,EAEJ;AAAA,OAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,oBAEF,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,MAAA,EAAQ,qBAAA;AAAA,QACR,aAAA,EAAe,MAAM,wBAAA,CAAyB,KAAK,CAAA;AAAA,QACnD,KAAA;AAAA,QACA,IAAA,EAAM;AAAA;AAAA;AACR,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -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 = ".ScenarioWizard_scenarioWizardDialog__6e9bc59001 {\n padding: 16px;\n}\n\n.ScenarioWizard_scenarioWizardDialogBody__6e9bc59001 {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 0 0 0;\n}\n";
4
- var styles = {"scenarioWizardDialog":"ScenarioWizard_scenarioWizardDialog__6e9bc59001"};
3
+ var css_248z = ".ScenarioWizard_container__88329bea1d {\n display: flex;\n flex-direction: column;\n gap: 32px;\n}\n\n.ScenarioWizard_scenarioWizardDialog__88329bea1d {\n padding: 16px;\n}\n\n.ScenarioWizard_scenarioWizardDialogBody__88329bea1d {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 0 0 0;\n}\n";
4
+ var styles = {"container":"ScenarioWizard_container__88329bea1d","scenarioWizardDialog":"ScenarioWizard_scenarioWizardDialog__88329bea1d"};
5
5
  styleInject(css_248z);
6
6
 
7
7
  export { styles as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kartverket/backstage-plugin-risk-scorecard",
3
- "version": "6.1.7",
3
+ "version": "6.1.8",
4
4
  "main": "dist/index.esm.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "MIT",
@@ -1,8 +0,0 @@
1
- import styleInject from '../../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
-
3
- var css_248z = ".ScenarioDrawer_deleteConfirmationDialog__62ea4bf46c {\n width: 500px;\n padding: 16px;\n}\n\n.ScenarioDrawer_deleteConfirmationDialogBody__62ea4bf46c {\n display: flex;\n justify-content: space-between;\n}\n";
4
- var styles = {"deleteConfirmationDialog":"ScenarioDrawer_deleteConfirmationDialog__62ea4bf46c"};
5
- styleInject(css_248z);
6
-
7
- export { styles as default };
8
- //# sourceMappingURL=ScenarioDrawer.module.css.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScenarioDrawer.module.css.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}