@kartverket/backstage-plugin-risk-scorecard 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/components/common/Spinner.esm.js +24 -6
  2. package/dist/components/common/Spinner.esm.js.map +1 -1
  3. package/dist/components/riScInfo/riScStatus/RiScStatusComponent.esm.js +3 -3
  4. package/dist/components/riScInfo/riScStatus/RiScStatusComponent.esm.js.map +1 -1
  5. package/dist/components/riScPlugin/RiScPlugin.esm.js.map +1 -1
  6. package/dist/components/riskMatrix/RiskMatrixScenarioCount.esm.js +2 -2
  7. package/dist/components/riskMatrix/RiskMatrixScenarioCount.esm.js.map +1 -1
  8. package/dist/components/scenarioDrawer/ScenarioDrawer.esm.js +11 -5
  9. package/dist/components/scenarioDrawer/ScenarioDrawer.esm.js.map +1 -1
  10. package/dist/components/scenarioDrawer/components/ActionBox.esm.js +2 -9
  11. package/dist/components/scenarioDrawer/components/ActionBox.esm.js.map +1 -1
  12. package/dist/components/scenarioDrawer/components/ActionFormSection.esm.js +2 -2
  13. package/dist/components/scenarioDrawer/components/ActionFormSection.esm.js.map +1 -1
  14. package/dist/components/scenarioDrawer/components/ActionsSection.esm.js +2 -9
  15. package/dist/components/scenarioDrawer/components/ActionsSection.esm.js.map +1 -1
  16. package/dist/components/scenarioDrawer/components/DeleteConfirmation.esm.js +19 -4
  17. package/dist/components/scenarioDrawer/components/DeleteConfirmation.esm.js.map +1 -1
  18. package/dist/components/scenarioTable/ScenarioTable.esm.js +4 -4
  19. package/dist/components/scenarioTable/ScenarioTable.esm.js.map +1 -1
  20. package/dist/components/scenarioWizard/ScenarioWizard.esm.js +55 -63
  21. package/dist/components/scenarioWizard/ScenarioWizard.esm.js.map +1 -1
  22. package/dist/components/scenarioWizard/components/ConsequenceTable.esm.js +65 -56
  23. package/dist/components/scenarioWizard/components/ConsequenceTable.esm.js.map +1 -1
  24. package/dist/components/scenarioWizard/components/ProbabilityTable.esm.js +25 -27
  25. package/dist/components/scenarioWizard/components/ProbabilityTable.esm.js.map +1 -1
  26. package/dist/components/scenarioWizard/components/RiskRadioButton.esm.js +22 -0
  27. package/dist/components/scenarioWizard/components/RiskRadioButton.esm.js.map +1 -0
  28. package/dist/components/scenarioWizard/steps/ActionsStep.esm.js +92 -14
  29. package/dist/components/scenarioWizard/steps/ActionsStep.esm.js.map +1 -1
  30. package/dist/components/scenarioWizard/steps/RiskStep.esm.js +3 -49
  31. package/dist/components/scenarioWizard/steps/RiskStep.esm.js.map +1 -1
  32. package/dist/components/scenarioWizard/steps/ScenarioStep.esm.js +47 -48
  33. package/dist/components/scenarioWizard/steps/ScenarioStep.esm.js.map +1 -1
  34. package/dist/components/scenarioWizard/wizardStyles.esm.js +9 -6
  35. package/dist/components/scenarioWizard/wizardStyles.esm.js.map +1 -1
  36. package/dist/contexts/RiScContext.esm.js +27 -68
  37. package/dist/contexts/RiScContext.esm.js.map +1 -1
  38. package/dist/contexts/ScenarioContext.esm.js +43 -156
  39. package/dist/contexts/ScenarioContext.esm.js.map +1 -1
  40. package/dist/utils/DTOs.esm.js.map +1 -1
  41. package/dist/utils/constants.esm.js +3 -1
  42. package/dist/utils/constants.esm.js.map +1 -1
  43. package/dist/utils/hooks.esm.js +4 -17
  44. package/dist/utils/hooks.esm.js.map +1 -1
  45. package/dist/utils/style.esm.js +1 -48
  46. package/dist/utils/style.esm.js.map +1 -1
  47. package/dist/utils/types.esm.js +0 -1
  48. package/dist/utils/types.esm.js.map +1 -1
  49. package/dist/utils/utilityfunctions.esm.js +2 -2
  50. package/dist/utils/utilityfunctions.esm.js.map +1 -1
  51. package/package.json +1 -1
  52. package/dist/components/common/Dropdown.esm.js +0 -79
  53. package/dist/components/common/Dropdown.esm.js.map +0 -1
  54. package/dist/components/common/Textfield.esm.js +0 -64
  55. package/dist/components/common/Textfield.esm.js.map +0 -1
  56. package/dist/components/scenarioWizard/components/ActionEdit.esm.js +0 -111
  57. package/dist/components/scenarioWizard/components/ActionEdit.esm.js.map +0 -1
@@ -1,11 +1,29 @@
1
- import { CircularProgress } from '@material-ui/core';
2
1
  import React from 'react';
3
- import { useSpinnerStyles } from '../../utils/style.esm.js';
2
+ import Box from '@mui/material/Box';
3
+ import CircularProgress from '@mui/material/CircularProgress';
4
4
 
5
- const Spinner = ({ size }) => {
6
- const { container, spinner } = useSpinnerStyles();
7
- return /* @__PURE__ */ React.createElement("div", { className: container }, /* @__PURE__ */ React.createElement(CircularProgress, { className: spinner, size }));
8
- };
5
+ const Spinner = ({ size }) => /* @__PURE__ */ React.createElement(
6
+ Box,
7
+ {
8
+ sx: {
9
+ display: "flex",
10
+ minWidth: "100wh",
11
+ height: "100vh",
12
+ justifyContent: "center",
13
+ alignItems: "flex-start"
14
+ }
15
+ },
16
+ /* @__PURE__ */ React.createElement(
17
+ CircularProgress,
18
+ {
19
+ size,
20
+ sx: {
21
+ display: "flex",
22
+ marginTop: "200px"
23
+ }
24
+ }
25
+ )
26
+ );
9
27
 
10
28
  export { Spinner };
11
29
  //# sourceMappingURL=Spinner.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.esm.js","sources":["../../../src/components/common/Spinner.tsx"],"sourcesContent":["import { CircularProgress } from '@material-ui/core';\nimport React from 'react';\nimport { useSpinnerStyles } from '../../utils/style';\n\nexport const Spinner = ({ size }: { size?: string | number }) => {\n const { container, spinner } = useSpinnerStyles();\n return (\n <div className={container}>\n <CircularProgress className={spinner} size={size} />\n </div>\n );\n};\n"],"names":[],"mappings":";;;;AAIO,MAAM,OAAU,GAAA,CAAC,EAAE,IAAA,EAAuC,KAAA;AAC/D,EAAA,MAAM,EAAE,SAAA,EAAW,OAAQ,EAAA,GAAI,gBAAiB,EAAA,CAAA;AAChD,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,SAAI,SAAW,EAAA,SAAA,EAAA,sCACb,gBAAiB,EAAA,EAAA,SAAA,EAAW,OAAS,EAAA,IAAA,EAAY,CACpD,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"Spinner.esm.js","sources":["../../../src/components/common/Spinner.tsx"],"sourcesContent":["import React from 'react';\nimport Box from '@mui/material/Box';\nimport CircularProgress from '@mui/material/CircularProgress';\n\nexport const Spinner = ({ size }: { size?: string | number }) => (\n <Box\n sx={{\n display: 'flex',\n minWidth: '100wh',\n height: '100vh',\n justifyContent: 'center',\n alignItems: 'flex-start',\n }}\n >\n <CircularProgress\n size={size}\n sx={{\n display: 'flex',\n marginTop: '200px',\n }}\n />\n </Box>\n);\n"],"names":[],"mappings":";;;;AAIO,MAAM,OAAU,GAAA,CAAC,EAAE,IAAA,EACxB,qBAAA,KAAA,CAAA,aAAA;AAAA,EAAC,GAAA;AAAA,EAAA;AAAA,IACC,EAAI,EAAA;AAAA,MACF,OAAS,EAAA,MAAA;AAAA,MACT,QAAU,EAAA,OAAA;AAAA,MACV,MAAQ,EAAA,OAAA;AAAA,MACR,cAAgB,EAAA,QAAA;AAAA,MAChB,UAAY,EAAA,YAAA;AAAA,KACd;AAAA,GAAA;AAAA,kBAEA,KAAA,CAAA,aAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,EAAI,EAAA;AAAA,QACF,OAAS,EAAA,MAAA;AAAA,QACT,SAAW,EAAA,OAAA;AAAA,OACb;AAAA,KAAA;AAAA,GACF;AACF;;;;"}
@@ -123,9 +123,9 @@ const RiScStatusComponent = ({
123
123
  RosAcceptance,
124
124
  {
125
125
  status: selectedRiSc.status,
126
- migration: selectedRiSc.migrationChanges
126
+ migration: selectedRiSc.migrationStatus?.migrationChanges
127
127
  }
128
- ), selectedRiSc.status === RiScStatus.SentForApproval && !selectedRiSc.migrationChanges && /* @__PURE__ */ React.createElement(Typography, { sx: { fontWeight: 700 }, paragraph: true, variant: "subtitle1" }, /* @__PURE__ */ React.createElement(PullRequestSvg, null), t("rosStatus.prStatus"), /* @__PURE__ */ React.createElement(Link, { target: "_blank", href: selectedRiSc.pullRequestUrl }, "Github")), selectedRiSc.status === RiScStatus.Draft && !selectedRiSc.migrationChanges && /* @__PURE__ */ React.createElement(
128
+ ), selectedRiSc.status === RiScStatus.SentForApproval && !selectedRiSc.migrationStatus?.migrationChanges && /* @__PURE__ */ React.createElement(Typography, { sx: { fontWeight: 700 }, paragraph: true, variant: "subtitle1" }, /* @__PURE__ */ React.createElement(PullRequestSvg, null), t("rosStatus.prStatus"), /* @__PURE__ */ React.createElement(Link, { target: "_blank", href: selectedRiSc.pullRequestUrl }, "Github")), selectedRiSc.status === RiScStatus.Draft && !selectedRiSc.migrationStatus?.migrationChanges && /* @__PURE__ */ React.createElement(
129
129
  Button,
130
130
  {
131
131
  color: "primary",
@@ -135,7 +135,7 @@ const RiScStatusComponent = ({
135
135
  sx: { display: "block", marginLeft: "auto" }
136
136
  },
137
137
  t("rosStatus.approveButton")
138
- ), selectedRiSc.migrationChanges && /* @__PURE__ */ React.createElement(
138
+ ), selectedRiSc.migrationStatus?.migrationChanges && /* @__PURE__ */ React.createElement(
139
139
  Button,
140
140
  {
141
141
  color: "primary",
@@ -1 +1 @@
1
- {"version":3,"file":"RiScStatusComponent.esm.js","sources":["../../../../src/components/riScInfo/riScStatus/RiScStatusComponent.tsx"],"sourcesContent":["import React, { ReactComponentElement, useState } from 'react';\nimport { RiScStatus, RiScWithMetadata } from '../../../utils/types';\nimport Alert from '@mui/material/Alert';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogActions from '@mui/material/DialogActions';\nimport Link from '@mui/material/Link';\nimport Typography from '@mui/material/Typography';\nimport Checkbox from '@mui/material/Checkbox';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport CheckIcon from '@mui/icons-material/Check';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport { dialogActions } from '../../common/mixins';\nimport { InfoCard } from '@backstage/core-components';\nimport { PullRequestSvg } from '../../common/Icons';\nimport { useRiScs } from '../../../contexts/RiScContext';\nimport { subtitle1 } from '../../common/typography';\n\ninterface RiScPublishDialogProps {\n openDialog: boolean;\n handleCancel: () => void;\n handlePublish: () => void;\n}\n\nconst RiScPublishDialog = ({\n openDialog,\n handleCancel,\n handlePublish,\n}: RiScPublishDialogProps): ReactComponentElement<any> => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const [riskOwnerApproves, setRiskOwnerApproves] = useState<boolean>(false);\n\n const handleCheckboxInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n setRiskOwnerApproves(event.target.checked);\n };\n\n return (\n <Dialog open={openDialog}>\n <DialogTitle>{t('publishDialog.title')}</DialogTitle>\n <DialogContent>\n <Alert severity=\"info\" icon={false}>\n <FormControlLabel\n control={\n <Checkbox\n color=\"primary\"\n checked={riskOwnerApproves}\n onChange={handleCheckboxInput}\n />\n }\n label={t('publishDialog.checkboxLabel')}\n />\n </Alert>\n </DialogContent>\n <DialogActions sx={dialogActions}>\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={handlePublish}\n disabled={!riskOwnerApproves}\n >\n {t('dictionary.confirm')}\n </Button>\n <Button variant=\"outlined\" color=\"primary\" onClick={handleCancel}>\n {t('dictionary.cancel')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n\ninterface RiScMigrationDialogProps {\n openDialog: boolean;\n handleCancel: () => void;\n handleUpdate: () => void;\n}\n\nconst RiScMigrationDialog = ({\n openDialog,\n handleCancel,\n handleUpdate,\n}: RiScMigrationDialogProps): ReactComponentElement<any> => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const [saveMigration, setSaveMigration] = useState<boolean>(false);\n\n const handleCheckboxInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSaveMigration(event.target.checked);\n };\n\n return (\n <Dialog open={openDialog}>\n <DialogTitle>{t('migrationDialog.title')}</DialogTitle>\n <DialogContent>\n <Alert severity=\"info\" icon={false}>\n <FormControlLabel\n control={\n <Checkbox\n checked={saveMigration}\n onChange={handleCheckboxInput}\n />\n }\n label={t('migrationDialog.checkboxLabel')}\n />\n </Alert>\n </DialogContent>\n <DialogActions sx={dialogActions}>\n <Button\n variant=\"contained\"\n onClick={handleUpdate}\n disabled={!saveMigration}\n >\n {t('dictionary.confirm')}\n </Button>\n <Button variant=\"outlined\" color=\"primary\" onClick={handleCancel}>\n {t('dictionary.cancel')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n\nconst RosAcceptance = ({\n status,\n migration,\n}: {\n status: RiScStatus;\n migration?: boolean;\n}): React.JSX.Element => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n if (migration) {\n return (\n <Typography paragraph sx={subtitle1}>\n {t('rosStatus.statusBadge.migration')}\n </Typography>\n );\n }\n switch (status) {\n case RiScStatus.Draft:\n return (\n <Typography paragraph sx={subtitle1}>\n {t('rosStatus.statusBadge.missing')}\n </Typography>\n );\n case RiScStatus.SentForApproval:\n case RiScStatus.Published:\n return (\n <Typography paragraph sx={subtitle1}>\n <CheckIcon fontSize=\"medium\" sx={{ transform: 'translateY(5px)' }} />{' '}\n {t('rosStatus.statusBadge.approved')}\n </Typography>\n );\n default:\n return (\n <Typography paragraph sx={subtitle1}>\n {t('rosStatus.statusBadge.error')}\n </Typography>\n );\n }\n};\n\ninterface RiScStatusProps {\n selectedRiSc: RiScWithMetadata;\n publishRiScFn: () => void;\n}\n\nexport const RiScStatusComponent = ({\n selectedRiSc,\n publishRiScFn,\n}: RiScStatusProps) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const [publishRiScDialogIsOpen, setPublishRiScDialogIsOpen] =\n useState<boolean>(false);\n\n const [migrationDialogIsOpen, setMigrationDialogIsOpen] =\n useState<boolean>(false);\n\n const { updateRiSc } = useRiScs();\n\n const handleApproveAndPublish = () => {\n publishRiScFn();\n setPublishRiScDialogIsOpen(false);\n };\n\n const handleUpdate = () => {\n updateRiSc(selectedRiSc.content);\n setMigrationDialogIsOpen(false);\n };\n\n return (\n <InfoCard>\n <Typography variant=\"h5\">Status</Typography>\n\n <RosAcceptance\n status={selectedRiSc.status}\n migration={selectedRiSc.migrationChanges}\n />\n {selectedRiSc.status === RiScStatus.SentForApproval &&\n !selectedRiSc.migrationChanges && (\n <Typography sx={{ fontWeight: 700 }} paragraph variant=\"subtitle1\">\n <PullRequestSvg />\n {t('rosStatus.prStatus')}\n <Link target=\"_blank\" href={selectedRiSc.pullRequestUrl}>\n Github\n </Link>\n </Typography>\n )}\n {selectedRiSc.status === RiScStatus.Draft &&\n !selectedRiSc.migrationChanges && (\n <Button\n color=\"primary\"\n variant=\"contained\"\n onClick={() => setPublishRiScDialogIsOpen(!publishRiScDialogIsOpen)}\n disabled={selectedRiSc.status !== RiScStatus.Draft}\n sx={{ display: 'block', marginLeft: 'auto' }}\n >\n {t('rosStatus.approveButton')}\n </Button>\n )}\n {selectedRiSc.migrationChanges && (\n <Button\n color=\"primary\"\n variant=\"contained\"\n onClick={() => setMigrationDialogIsOpen(!migrationDialogIsOpen)}\n sx={{ display: 'block', marginLeft: 'auto' }}\n >\n <Typography variant=\"button\">{t('rosStatus.saveButton')}</Typography>\n </Button>\n )}\n <RiScPublishDialog\n openDialog={publishRiScDialogIsOpen}\n handlePublish={handleApproveAndPublish}\n handleCancel={() => setPublishRiScDialogIsOpen(false)}\n />\n <RiScMigrationDialog\n openDialog={migrationDialogIsOpen}\n handleUpdate={handleUpdate}\n handleCancel={() => setMigrationDialogIsOpen(false)}\n />\n </InfoCard>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RiScStatusComponent.esm.js","sources":["../../../../src/components/riScInfo/riScStatus/RiScStatusComponent.tsx"],"sourcesContent":["import React, { ReactComponentElement, useState } from 'react';\nimport { RiScStatus, RiScWithMetadata } from '../../../utils/types';\nimport Alert from '@mui/material/Alert';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogActions from '@mui/material/DialogActions';\nimport Link from '@mui/material/Link';\nimport Typography from '@mui/material/Typography';\nimport Checkbox from '@mui/material/Checkbox';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport CheckIcon from '@mui/icons-material/Check';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport { dialogActions } from '../../common/mixins';\nimport { InfoCard } from '@backstage/core-components';\nimport { PullRequestSvg } from '../../common/Icons';\nimport { useRiScs } from '../../../contexts/RiScContext';\nimport { subtitle1 } from '../../common/typography';\n\ninterface RiScPublishDialogProps {\n openDialog: boolean;\n handleCancel: () => void;\n handlePublish: () => void;\n}\n\nconst RiScPublishDialog = ({\n openDialog,\n handleCancel,\n handlePublish,\n}: RiScPublishDialogProps): ReactComponentElement<any> => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const [riskOwnerApproves, setRiskOwnerApproves] = useState<boolean>(false);\n\n const handleCheckboxInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n setRiskOwnerApproves(event.target.checked);\n };\n\n return (\n <Dialog open={openDialog}>\n <DialogTitle>{t('publishDialog.title')}</DialogTitle>\n <DialogContent>\n <Alert severity=\"info\" icon={false}>\n <FormControlLabel\n control={\n <Checkbox\n color=\"primary\"\n checked={riskOwnerApproves}\n onChange={handleCheckboxInput}\n />\n }\n label={t('publishDialog.checkboxLabel')}\n />\n </Alert>\n </DialogContent>\n <DialogActions sx={dialogActions}>\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={handlePublish}\n disabled={!riskOwnerApproves}\n >\n {t('dictionary.confirm')}\n </Button>\n <Button variant=\"outlined\" color=\"primary\" onClick={handleCancel}>\n {t('dictionary.cancel')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n\ninterface RiScMigrationDialogProps {\n openDialog: boolean;\n handleCancel: () => void;\n handleUpdate: () => void;\n}\n\nconst RiScMigrationDialog = ({\n openDialog,\n handleCancel,\n handleUpdate,\n}: RiScMigrationDialogProps): ReactComponentElement<any> => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const [saveMigration, setSaveMigration] = useState<boolean>(false);\n\n const handleCheckboxInput = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSaveMigration(event.target.checked);\n };\n\n return (\n <Dialog open={openDialog}>\n <DialogTitle>{t('migrationDialog.title')}</DialogTitle>\n <DialogContent>\n <Alert severity=\"info\" icon={false}>\n <FormControlLabel\n control={\n <Checkbox\n checked={saveMigration}\n onChange={handleCheckboxInput}\n />\n }\n label={t('migrationDialog.checkboxLabel')}\n />\n </Alert>\n </DialogContent>\n <DialogActions sx={dialogActions}>\n <Button\n variant=\"contained\"\n onClick={handleUpdate}\n disabled={!saveMigration}\n >\n {t('dictionary.confirm')}\n </Button>\n <Button variant=\"outlined\" color=\"primary\" onClick={handleCancel}>\n {t('dictionary.cancel')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n\nconst RosAcceptance = ({\n status,\n migration,\n}: {\n status: RiScStatus;\n migration?: boolean;\n}): React.JSX.Element => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n if (migration) {\n return (\n <Typography paragraph sx={subtitle1}>\n {t('rosStatus.statusBadge.migration')}\n </Typography>\n );\n }\n switch (status) {\n case RiScStatus.Draft:\n return (\n <Typography paragraph sx={subtitle1}>\n {t('rosStatus.statusBadge.missing')}\n </Typography>\n );\n case RiScStatus.SentForApproval:\n case RiScStatus.Published:\n return (\n <Typography paragraph sx={subtitle1}>\n <CheckIcon fontSize=\"medium\" sx={{ transform: 'translateY(5px)' }} />{' '}\n {t('rosStatus.statusBadge.approved')}\n </Typography>\n );\n default:\n return (\n <Typography paragraph sx={subtitle1}>\n {t('rosStatus.statusBadge.error')}\n </Typography>\n );\n }\n};\n\ninterface RiScStatusProps {\n selectedRiSc: RiScWithMetadata;\n publishRiScFn: () => void;\n}\n\nexport const RiScStatusComponent = ({\n selectedRiSc,\n publishRiScFn,\n}: RiScStatusProps) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const [publishRiScDialogIsOpen, setPublishRiScDialogIsOpen] =\n useState<boolean>(false);\n\n const [migrationDialogIsOpen, setMigrationDialogIsOpen] =\n useState<boolean>(false);\n\n const { updateRiSc } = useRiScs();\n\n const handleApproveAndPublish = () => {\n publishRiScFn();\n setPublishRiScDialogIsOpen(false);\n };\n\n const handleUpdate = () => {\n updateRiSc(selectedRiSc.content);\n setMigrationDialogIsOpen(false);\n };\n\n return (\n <InfoCard>\n <Typography variant=\"h5\">Status</Typography>\n\n <RosAcceptance\n status={selectedRiSc.status}\n migration={selectedRiSc.migrationStatus?.migrationChanges}\n />\n {selectedRiSc.status === RiScStatus.SentForApproval &&\n !selectedRiSc.migrationStatus?.migrationChanges && (\n <Typography sx={{ fontWeight: 700 }} paragraph variant=\"subtitle1\">\n <PullRequestSvg />\n {t('rosStatus.prStatus')}\n <Link target=\"_blank\" href={selectedRiSc.pullRequestUrl}>\n Github\n </Link>\n </Typography>\n )}\n {selectedRiSc.status === RiScStatus.Draft &&\n !selectedRiSc.migrationStatus?.migrationChanges && (\n <Button\n color=\"primary\"\n variant=\"contained\"\n onClick={() => setPublishRiScDialogIsOpen(!publishRiScDialogIsOpen)}\n disabled={selectedRiSc.status !== RiScStatus.Draft}\n sx={{ display: 'block', marginLeft: 'auto' }}\n >\n {t('rosStatus.approveButton')}\n </Button>\n )}\n {selectedRiSc.migrationStatus?.migrationChanges && (\n <Button\n color=\"primary\"\n variant=\"contained\"\n onClick={() => setMigrationDialogIsOpen(!migrationDialogIsOpen)}\n sx={{ display: 'block', marginLeft: 'auto' }}\n >\n <Typography variant=\"button\">{t('rosStatus.saveButton')}</Typography>\n </Button>\n )}\n <RiScPublishDialog\n openDialog={publishRiScDialogIsOpen}\n handlePublish={handleApproveAndPublish}\n handleCancel={() => setPublishRiScDialogIsOpen(false)}\n />\n <RiScMigrationDialog\n openDialog={migrationDialogIsOpen}\n handleUpdate={handleUpdate}\n handleCancel={() => setMigrationDialogIsOpen(false)}\n />\n </InfoCard>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RiScPlugin.esm.js","sources":["../../../src/components/riScPlugin/RiScPlugin.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { ContentHeader, SupportButton } from '@backstage/core-components';\nimport { useSearchParams } from 'react-router-dom';\nimport { ScenarioWizard } from '../scenarioWizard/ScenarioWizard';\nimport { ScenarioDrawer } from '../scenarioDrawer/ScenarioDrawer';\nimport { RiskMatrix } from '../riskMatrix/RiskMatrix';\nimport { ScenarioTable } from '../scenarioTable/ScenarioTable';\nimport Alert from '@mui/material/Alert';\nimport Button from '@mui/material/Button';\nimport Grid from '@mui/material/Grid';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport Typography from '@mui/material/Typography';\nimport { getAlertSeverity } from '../../utils/utilityfunctions';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { RiScDialog, RiScDialogStates } from '../riScDialog/RiScDialog';\nimport { RiScInfo } from '../riScInfo/RiScInfo';\nimport AddCircle from '@mui/icons-material/AddCircle';\nimport { Spinner } from '../common/Spinner';\nimport { useRiScs } from '../../contexts/RiScContext';\nimport Select from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport ListItemText from '@mui/material/ListItemText';\nimport { ScenarioWizardSteps } from '../../contexts/ScenarioContext';\n\nexport const RiScPlugin = () => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const [riScDialogState, setRiScDialogState] = useState<RiScDialogStates>(\n RiScDialogStates.Closed,\n );\n\n const openCreateRiScDialog = () =>\n setRiScDialogState(RiScDialogStates.Create);\n const openEditRiScDialog = () => setRiScDialogState(RiScDialogStates.Edit);\n const closeRiScDialog = () => setRiScDialogState(RiScDialogStates.Closed);\n\n const {\n selectedRiSc,\n riScs,\n selectRiSc,\n isFetching,\n resetRiScStatus,\n response,\n riScUpdateStatus,\n } = useRiScs();\n\n const [searchParams] = useSearchParams();\n const scenarioWizardStep = searchParams.get(\n 'step',\n ) as ScenarioWizardSteps | null;\n\n useEffect(() => {\n if (scenarioWizardStep !== null) resetRiScStatus();\n }, [resetRiScStatus, scenarioWizardStep]);\n\n return (\n <>\n {response && (\n <Alert\n severity={getAlertSeverity(response.status)}\n sx={{ marginBottom: 2 }}\n >\n <Typography>{response.statusMessage}</Typography>\n </Alert>\n )}\n {riScUpdateStatus.isLoading && (\n <LinearProgress\n sx={{\n position: 'sticky',\n top: 0,\n margin: 2,\n }}\n />\n )}\n\n {scenarioWizardStep !== null ? (\n <ScenarioWizard step={scenarioWizardStep} />\n ) : (\n <>\n <ContentHeader title={t('contentHeader.title')}>\n <SupportButton />\n </ContentHeader>\n\n {isFetching && <Spinner size={80} />}\n\n <Grid container spacing={4}>\n {riScs !== null && riScs.length !== 0 && (\n <Grid\n item\n xs={12}\n sm={6}\n sx={{\n maxWidth: '600px',\n minWidth: '300px',\n }}\n >\n <Select\n variant=\"standard\"\n value={selectedRiSc?.content.title ?? ''}\n onChange={e => selectRiSc(e.target.value)}\n sx={{ width: '100%' }}\n >\n {riScs.map(riSc => (\n <MenuItem key={riSc.id} value={riSc.content.title}>\n <ListItemText primary={riSc.content.title} />\n </MenuItem>\n )) ?? []}\n </Select>\n </Grid>\n )}\n\n {!isFetching && (\n <Grid item xs>\n <Button\n startIcon={<AddCircle />}\n variant=\"text\"\n color=\"primary\"\n onClick={openCreateRiScDialog}\n sx={{\n minWidth: '205px',\n }}\n >\n {t('contentHeader.createNewButton')}\n </Button>\n </Grid>\n )}\n {selectedRiSc && (\n <>\n <Grid item xs={12}>\n <RiScInfo riSc={selectedRiSc} edit={openEditRiScDialog} />\n </Grid>\n <Grid item xs md={7} lg={8}>\n <ScenarioTable riSc={selectedRiSc.content} />\n </Grid>\n <Grid item xs md={5} lg={4}>\n <RiskMatrix riSc={selectedRiSc.content} />\n </Grid>\n </>\n )}\n </Grid>\n </>\n )}\n\n {riScDialogState !== RiScDialogStates.Closed && (\n <RiScDialog onClose={closeRiScDialog} dialogState={riScDialogState} />\n )}\n\n {!scenarioWizardStep && <ScenarioDrawer />}\n </>\n );\n};\n"],"names":["Select"],"mappings":"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"}
1
+ {"version":3,"file":"RiScPlugin.esm.js","sources":["../../../src/components/riScPlugin/RiScPlugin.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { ContentHeader, SupportButton } from '@backstage/core-components';\nimport { useSearchParams } from 'react-router-dom';\nimport { ScenarioWizard } from '../scenarioWizard/ScenarioWizard';\nimport { ScenarioDrawer } from '../scenarioDrawer/ScenarioDrawer';\nimport { RiskMatrix } from '../riskMatrix/RiskMatrix';\nimport { ScenarioTable } from '../scenarioTable/ScenarioTable';\nimport Alert from '@mui/material/Alert';\nimport Button from '@mui/material/Button';\nimport Grid from '@mui/material/Grid';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport Typography from '@mui/material/Typography';\nimport { getAlertSeverity } from '../../utils/utilityfunctions';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { RiScDialog, RiScDialogStates } from '../riScDialog/RiScDialog';\nimport { RiScInfo } from '../riScInfo/RiScInfo';\nimport AddCircle from '@mui/icons-material/AddCircle';\nimport { Spinner } from '../common/Spinner';\nimport { useRiScs } from '../../contexts/RiScContext';\nimport Select from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport ListItemText from '@mui/material/ListItemText';\nimport { ScenarioWizardSteps } from '../../contexts/ScenarioContext';\n\nexport const RiScPlugin = () => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const [riScDialogState, setRiScDialogState] = useState<RiScDialogStates>(\n RiScDialogStates.Closed,\n );\n\n const openCreateRiScDialog = () =>\n setRiScDialogState(RiScDialogStates.Create);\n const openEditRiScDialog = () => setRiScDialogState(RiScDialogStates.Edit);\n const closeRiScDialog = () => setRiScDialogState(RiScDialogStates.Closed);\n\n const {\n selectedRiSc,\n riScs,\n selectRiSc,\n isFetching,\n resetRiScStatus,\n response,\n riScUpdateStatus,\n } = useRiScs();\n\n const [searchParams] = useSearchParams();\n const scenarioWizardStep = searchParams.get(\n 'step',\n ) as ScenarioWizardSteps | null;\n\n useEffect(() => {\n if (scenarioWizardStep !== null) resetRiScStatus();\n }, [resetRiScStatus, scenarioWizardStep]);\n\n return (\n <>\n {response && (\n <Alert\n severity={getAlertSeverity(response.status)}\n sx={{ marginBottom: 2 }}\n >\n <Typography>{response.statusMessage}</Typography>\n </Alert>\n )}\n {riScUpdateStatus.isLoading && (\n <LinearProgress\n sx={{\n position: 'sticky',\n top: 0,\n margin: 2,\n }}\n />\n )}\n\n {scenarioWizardStep !== null ? (\n <ScenarioWizard step={scenarioWizardStep} />\n ) : (\n <>\n <ContentHeader title={t('contentHeader.title')}>\n <SupportButton />\n </ContentHeader>\n\n {isFetching && <Spinner size={80} />}\n\n <Grid container spacing={4}>\n {riScs !== null && riScs.length !== 0 && (\n <Grid\n item\n xs={12}\n sm={6}\n sx={{\n maxWidth: '600px',\n minWidth: '300px',\n }}\n >\n <Select\n variant=\"standard\"\n value={selectedRiSc?.content.title ?? ''}\n onChange={e => selectRiSc(e.target.value)}\n sx={{ width: '100%' }}\n >\n {riScs.map(riSc => (\n <MenuItem key={riSc.id} value={riSc.content.title}>\n <ListItemText primary={riSc.content.title} />\n </MenuItem>\n )) ?? []}\n </Select>\n </Grid>\n )}\n\n {!isFetching && (\n <Grid item xs>\n <Button\n startIcon={<AddCircle />}\n variant=\"text\"\n color=\"primary\"\n onClick={openCreateRiScDialog}\n sx={{\n minWidth: '205px',\n }}\n >\n {t('contentHeader.createNewButton')}\n </Button>\n </Grid>\n )}\n\n {selectedRiSc && (\n <>\n <Grid item xs={12}>\n <RiScInfo riSc={selectedRiSc} edit={openEditRiScDialog} />\n </Grid>\n <Grid item xs md={7} lg={8}>\n <ScenarioTable riSc={selectedRiSc.content} />\n </Grid>\n <Grid item xs md={5} lg={4}>\n <RiskMatrix riSc={selectedRiSc.content} />\n </Grid>\n </>\n )}\n </Grid>\n </>\n )}\n\n {riScDialogState !== RiScDialogStates.Closed && (\n <RiScDialog onClose={closeRiScDialog} dialogState={riScDialogState} />\n )}\n\n {!scenarioWizardStep && <ScenarioDrawer />}\n </>\n );\n};\n"],"names":["Select"],"mappings":"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"}
@@ -24,10 +24,10 @@ const RiskMatrixScenarioCount = ({
24
24
  tooltipText
25
25
  } = useRiskMatrixStyles();
26
26
  const [tooltipOpen, setTooltipOpen] = useState(false);
27
- const { openScenario } = useScenario();
27
+ const { openScenarioDrawer } = useScenario();
28
28
  const handleScenarioClick = (ID) => {
29
29
  setTooltipOpen(false);
30
- openScenario(ID);
30
+ openScenarioDrawer(ID);
31
31
  };
32
32
  const scenarios = riSc.scenarios.filter(
33
33
  (scenario) => probabilityOptions.indexOf(
@@ -1 +1 @@
1
- {"version":3,"file":"RiskMatrixScenarioCount.esm.js","sources":["../../../src/components/riskMatrix/RiskMatrixScenarioCount.tsx"],"sourcesContent":["import {\n ClickAwayListener,\n List,\n ListItem,\n ListItemText,\n ListSubheader,\n Paper,\n Tooltip,\n Typography,\n} from '@material-ui/core';\nimport React, { useState } from 'react';\nimport CircleIcon from '@material-ui/icons/FiberManualRecord';\nimport { consequenceOptions, probabilityOptions } from '../../utils/constants';\nimport { RiSc } from '../../utils/types';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useRiskMatrixStyles } from './riskMatrixStyle';\nimport { useScenario } from '../../contexts/ScenarioContext';\n\ninterface ScenarioCountProps {\n riSc: RiSc;\n probability: number;\n consequence: number;\n initialRisk: boolean;\n}\n\nexport const RiskMatrixScenarioCount = ({\n riSc,\n probability,\n consequence,\n initialRisk,\n}: ScenarioCountProps) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const {\n circle,\n centered,\n circleText,\n text,\n tooltip,\n tooltipArrow,\n tooltipText,\n } = useRiskMatrixStyles();\n\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const { openScenario } = useScenario();\n\n const handleScenarioClick = (ID: string) => {\n setTooltipOpen(false);\n openScenario(ID);\n };\n\n const scenarios = riSc.scenarios.filter(\n scenario =>\n probabilityOptions.indexOf(\n initialRisk\n ? scenario.risk.probability\n : scenario.remainingRisk.probability,\n ) === probability &&\n consequenceOptions.indexOf(\n initialRisk\n ? scenario.risk.consequence\n : scenario.remainingRisk.consequence,\n ) === consequence,\n );\n\n if (scenarios.length === 0) {\n return null;\n }\n\n const tooltipList = (\n <List dense>\n <ListSubheader className={tooltipText}>\n <Typography variant=\"h6\" className={tooltipText}>\n {t('riskMatrix.tooltip.title')}\n </Typography>\n </ListSubheader>\n {scenarios.map(s => (\n <ListItem\n key={s.ID}\n button\n disableGutters\n className={tooltipText}\n onClick={() => {\n handleScenarioClick(s.ID);\n }}\n >\n <CircleIcon className={tooltipText} style={{ width: '10px' }} />\n <ListItemText\n className={tooltipText}\n style={{ paddingLeft: '0.6rem' }}\n >\n <span>{s.title}</span>\n </ListItemText>\n </ListItem>\n ))}\n </List>\n );\n\n return (\n <ClickAwayListener onClickAway={() => setTooltipOpen(false)}>\n <Tooltip\n interactive\n classes={{ tooltip: tooltip, arrow: tooltipArrow }}\n title={tooltipList}\n placement=\"right\"\n arrow\n open={tooltipOpen}\n >\n <Paper\n className={`${circle} ${centered}`}\n elevation={10}\n onClick={() => setTooltipOpen(!tooltipOpen)}\n >\n <Typography className={`${circleText} ${text}`}>\n {scenarios.length}\n </Typography>\n </Paper>\n </Tooltip>\n </ClickAwayListener>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RiskMatrixScenarioCount.esm.js","sources":["../../../src/components/riskMatrix/RiskMatrixScenarioCount.tsx"],"sourcesContent":["import {\n ClickAwayListener,\n List,\n ListItem,\n ListItemText,\n ListSubheader,\n Paper,\n Tooltip,\n Typography,\n} from '@material-ui/core';\nimport React, { useState } from 'react';\nimport CircleIcon from '@material-ui/icons/FiberManualRecord';\nimport { consequenceOptions, probabilityOptions } from '../../utils/constants';\nimport { RiSc } from '../../utils/types';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useRiskMatrixStyles } from './riskMatrixStyle';\nimport { useScenario } from '../../contexts/ScenarioContext';\n\ninterface ScenarioCountProps {\n riSc: RiSc;\n probability: number;\n consequence: number;\n initialRisk: boolean;\n}\n\nexport const RiskMatrixScenarioCount = ({\n riSc,\n probability,\n consequence,\n initialRisk,\n}: ScenarioCountProps) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const {\n circle,\n centered,\n circleText,\n text,\n tooltip,\n tooltipArrow,\n tooltipText,\n } = useRiskMatrixStyles();\n\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const { openScenarioDrawer } = useScenario();\n\n const handleScenarioClick = (ID: string) => {\n setTooltipOpen(false);\n openScenarioDrawer(ID);\n };\n\n const scenarios = riSc.scenarios.filter(\n scenario =>\n probabilityOptions.indexOf(\n initialRisk\n ? scenario.risk.probability\n : scenario.remainingRisk.probability,\n ) === probability &&\n consequenceOptions.indexOf(\n initialRisk\n ? scenario.risk.consequence\n : scenario.remainingRisk.consequence,\n ) === consequence,\n );\n\n if (scenarios.length === 0) {\n return null;\n }\n\n const tooltipList = (\n <List dense>\n <ListSubheader className={tooltipText}>\n <Typography variant=\"h6\" className={tooltipText}>\n {t('riskMatrix.tooltip.title')}\n </Typography>\n </ListSubheader>\n {scenarios.map(s => (\n <ListItem\n key={s.ID}\n button\n disableGutters\n className={tooltipText}\n onClick={() => {\n handleScenarioClick(s.ID);\n }}\n >\n <CircleIcon className={tooltipText} style={{ width: '10px' }} />\n <ListItemText\n className={tooltipText}\n style={{ paddingLeft: '0.6rem' }}\n >\n <span>{s.title}</span>\n </ListItemText>\n </ListItem>\n ))}\n </List>\n );\n\n return (\n <ClickAwayListener onClickAway={() => setTooltipOpen(false)}>\n <Tooltip\n interactive\n classes={{ tooltip: tooltip, arrow: tooltipArrow }}\n title={tooltipList}\n placement=\"right\"\n arrow\n open={tooltipOpen}\n >\n <Paper\n className={`${circle} ${centered}`}\n elevation={10}\n onClick={() => setTooltipOpen(!tooltipOpen)}\n >\n <Typography className={`${circleText} ${text}`}>\n {scenarios.length}\n </Typography>\n </Paper>\n </Tooltip>\n </ClickAwayListener>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -27,10 +27,10 @@ const ScenarioDrawer = () => {
27
27
  const {
28
28
  scenario,
29
29
  isDrawerOpen,
30
- openDeleteConfirmation,
31
- closeScenario,
30
+ closeScenarioForm,
32
31
  submitEditedScenarioToRiSc
33
32
  } = useScenario();
33
+ const [deleteConfirmationIsOpen, setDeleteConfirmationIsOpen] = useState(false);
34
34
  const { riScUpdateStatus, response } = useRiScs();
35
35
  const formMethods = useForm({
36
36
  defaultValues: scenario,
@@ -41,7 +41,7 @@ const ScenarioDrawer = () => {
41
41
  setIsEditing(false);
42
42
  };
43
43
  const onClose = () => {
44
- closeScenario();
44
+ closeScenarioForm();
45
45
  setIsEditing(false);
46
46
  };
47
47
  const onSubmit = formMethods.handleSubmit((data) => {
@@ -130,14 +130,20 @@ const ScenarioDrawer = () => {
130
130
  startIcon: /* @__PURE__ */ React.createElement(DeleteIcon, null),
131
131
  variant: "text",
132
132
  color: "primary",
133
- onClick: openDeleteConfirmation,
133
+ onClick: () => setDeleteConfirmationIsOpen(true),
134
134
  sx: { marginLeft: "auto" }
135
135
  },
136
136
  t("scenarioDrawer.deleteScenarioButton")
137
137
  )
138
138
  ),
139
139
  response && response.status !== ProcessingStatus.ErrorWhenFetchingRiScs && /* @__PURE__ */ React.createElement(Alert, { severity: getAlertSeverity(response.status) }, /* @__PURE__ */ React.createElement(Typography, null, response.statusMessage)),
140
- /* @__PURE__ */ React.createElement(DeleteConfirmation, null)
140
+ /* @__PURE__ */ React.createElement(
141
+ DeleteConfirmation,
142
+ {
143
+ deleteConfirmationIsOpen,
144
+ setDeleteConfirmationIsOpen
145
+ }
146
+ )
141
147
  );
142
148
  };
143
149
 
@@ -1 +1 @@
1
- {"version":3,"file":"ScenarioDrawer.esm.js","sources":["../../../src/components/scenarioDrawer/ScenarioDrawer.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport Box from '@mui/material/Box';\nimport { useScenario } from '../../contexts/ScenarioContext';\nimport { RiskSection } from './components/RiskSection';\nimport { ActionsSection } from './components/ActionsSection';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport { DeleteConfirmation } from './components/DeleteConfirmation';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { ScopeSection } from './components/ScopeSection';\nimport { useForm } from 'react-hook-form';\nimport { ProcessingStatus, Scenario } from '../../utils/types';\nimport RiskFormSection from './components/RiskFormSection';\nimport ActionFormSection from './components/ActionFormSection';\nimport ScopeFormSection from './components/ScopeFormSection';\nimport Drawer from '@mui/material/Drawer';\nimport Button from '@mui/material/Button';\nimport { useRiScs } from '../../contexts/RiScContext';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Alert from '@mui/material/Alert';\nimport { getAlertSeverity } from '../../utils/utilityfunctions';\nimport Typography from '@mui/material/Typography';\n\nexport const ScenarioDrawer = () => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const [isEditing, setIsEditing] = useState(false);\n const {\n scenario,\n isDrawerOpen,\n openDeleteConfirmation,\n closeScenario,\n submitEditedScenarioToRiSc,\n } = useScenario();\n\n const { riScUpdateStatus, response } = useRiScs();\n\n const formMethods = useForm<Scenario>({\n defaultValues: scenario,\n mode: 'onBlur',\n });\n\n const onCancel = () => {\n formMethods.reset(scenario);\n setIsEditing(false);\n };\n\n const onClose = () => {\n closeScenario();\n setIsEditing(false);\n };\n\n const onSubmit = formMethods.handleSubmit((data: Scenario) => {\n submitEditedScenarioToRiSc(data, () => setIsEditing(false));\n });\n\n useEffect(() => {\n formMethods.reset(scenario);\n }, [scenario, formMethods]);\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 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 && (\n <Button\n color=\"primary\"\n variant=\"contained\"\n onClick={() => setIsEditing(true)}\n >\n {t('dictionary.edit')}\n </Button>\n )}\n <Button\n variant=\"outlined\"\n color=\"primary\"\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 formMethods={formMethods} />\n <ActionFormSection formMethods={formMethods} />\n </>\n ) : (\n <>\n <ScopeSection />\n <RiskSection />\n <ActionsSection />\n </>\n )}\n <Box\n sx={{\n display: 'flex',\n gap: '16px',\n }}\n >\n {isEditing && (\n <Button\n color=\"primary\"\n variant=\"contained\"\n onClick={onSubmit}\n disabled={\n !formMethods.formState.isDirty || riScUpdateStatus.isLoading\n }\n >\n {t('dictionary.save')}\n {riScUpdateStatus.isLoading && (\n <CircularProgress\n size={16}\n sx={{ marginLeft: 1, color: 'inherit' }}\n />\n )}\n </Button>\n )}\n <Button\n startIcon={<DeleteIcon />}\n variant=\"text\"\n color=\"primary\"\n onClick={openDeleteConfirmation}\n sx={{ marginLeft: 'auto' }}\n >\n {t('scenarioDrawer.deleteScenarioButton')}\n </Button>\n </Box>\n\n {response &&\n response.status !== ProcessingStatus.ErrorWhenFetchingRiScs && (\n <Alert severity={getAlertSeverity(response.status)}>\n <Typography>{response.statusMessage}</Typography>\n </Alert>\n )}\n\n <DeleteConfirmation />\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 React, { useEffect, useState } from 'react';\nimport Box from '@mui/material/Box';\nimport { useScenario } from '../../contexts/ScenarioContext';\nimport { RiskSection } from './components/RiskSection';\nimport { ActionsSection } from './components/ActionsSection';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport { DeleteConfirmation } from './components/DeleteConfirmation';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { ScopeSection } from './components/ScopeSection';\nimport { useForm } from 'react-hook-form';\nimport { ProcessingStatus, Scenario } from '../../utils/types';\nimport RiskFormSection from './components/RiskFormSection';\nimport ActionFormSection from './components/ActionFormSection';\nimport ScopeFormSection from './components/ScopeFormSection';\nimport Drawer from '@mui/material/Drawer';\nimport Button from '@mui/material/Button';\nimport { useRiScs } from '../../contexts/RiScContext';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Alert from '@mui/material/Alert';\nimport { getAlertSeverity } from '../../utils/utilityfunctions';\nimport Typography from '@mui/material/Typography';\n\nexport const ScenarioDrawer = () => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const [isEditing, setIsEditing] = useState(false);\n const {\n scenario,\n isDrawerOpen,\n closeScenarioForm,\n submitEditedScenarioToRiSc,\n } = useScenario();\n\n const [deleteConfirmationIsOpen, setDeleteConfirmationIsOpen] =\n useState(false);\n\n const { riScUpdateStatus, response } = useRiScs();\n\n const formMethods = useForm<Scenario>({\n defaultValues: scenario,\n mode: 'onBlur',\n });\n\n const onCancel = () => {\n formMethods.reset(scenario);\n setIsEditing(false);\n };\n\n const onClose = () => {\n closeScenarioForm();\n setIsEditing(false);\n };\n\n const onSubmit = formMethods.handleSubmit((data: Scenario) => {\n submitEditedScenarioToRiSc(data, () => setIsEditing(false));\n });\n\n useEffect(() => {\n formMethods.reset(scenario);\n }, [scenario, formMethods]);\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 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 && (\n <Button\n color=\"primary\"\n variant=\"contained\"\n onClick={() => setIsEditing(true)}\n >\n {t('dictionary.edit')}\n </Button>\n )}\n <Button\n variant=\"outlined\"\n color=\"primary\"\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 formMethods={formMethods} />\n <ActionFormSection formMethods={formMethods} />\n </>\n ) : (\n <>\n <ScopeSection />\n <RiskSection />\n <ActionsSection />\n </>\n )}\n <Box\n sx={{\n display: 'flex',\n gap: '16px',\n }}\n >\n {isEditing && (\n <Button\n color=\"primary\"\n variant=\"contained\"\n onClick={onSubmit}\n disabled={\n !formMethods.formState.isDirty || riScUpdateStatus.isLoading\n }\n >\n {t('dictionary.save')}\n {riScUpdateStatus.isLoading && (\n <CircularProgress\n size={16}\n sx={{ marginLeft: 1, color: 'inherit' }}\n />\n )}\n </Button>\n )}\n <Button\n startIcon={<DeleteIcon />}\n variant=\"text\"\n color=\"primary\"\n onClick={() => setDeleteConfirmationIsOpen(true)}\n sx={{ marginLeft: 'auto' }}\n >\n {t('scenarioDrawer.deleteScenarioButton')}\n </Button>\n </Box>\n\n {response &&\n response.status !== ProcessingStatus.ErrorWhenFetchingRiScs && (\n <Alert severity={getAlertSeverity(response.status)}>\n <Typography>{response.statusMessage}</Typography>\n </Alert>\n )}\n\n <DeleteConfirmation\n deleteConfirmationIsOpen={deleteConfirmationIsOpen}\n setDeleteConfirmationIsOpen={setDeleteConfirmationIsOpen}\n />\n </Drawer>\n );\n};\n"],"names":["RiskFormSection"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React, { useState, useEffect } from 'react';
1
+ import React, { useState } from 'react';
2
2
  import { pluginRiScTranslationRef } from '../../../utils/translations.esm.js';
3
3
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
4
4
  import Chip from '@mui/material/Chip';
@@ -10,16 +10,9 @@ import Button from '@mui/material/Button';
10
10
  import Collapse from '@mui/material/Collapse';
11
11
  import { ExpandLess, ExpandMore } from '@mui/icons-material';
12
12
 
13
- const ActionBox = ({ action, index, saveScenario }) => {
13
+ const ActionBox = ({ action, index }) => {
14
14
  const { t } = useTranslationRef(pluginRiScTranslationRef);
15
- const [previousAction, setPreviousAction] = useState(action);
16
15
  const [isExpanded, setIsExpanded] = useState(false);
17
- useEffect(() => {
18
- if (previousAction !== action) {
19
- saveScenario();
20
- setPreviousAction(action);
21
- }
22
- }, [action, saveScenario, previousAction]);
23
16
  const isActionTitlePresent = action.title !== null && action.title !== "";
24
17
  const translatedActionStatus = t(`actionStatus.${action.status}`);
25
18
  return /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBox.esm.js","sources":["../../../../src/components/scenarioDrawer/components/ActionBox.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { Action } from '../../../utils/types';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Chip from '@mui/material/Chip';\nimport Box from '@mui/material/Box';\nimport Link from '@mui/material/Link';\nimport Typography from '@mui/material/Typography';\nimport { body2, emptyState, label } from '../../common/typography';\nimport Button from '@mui/material/Button';\nimport Collapse from '@mui/material/Collapse';\nimport { ExpandLess, ExpandMore } from '@mui/icons-material';\n\ninterface ActionBoxProps {\n action: Action;\n index: number;\n saveScenario: () => void;\n}\n\nexport const ActionBox = ({ action, index, saveScenario }: ActionBoxProps) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const [previousAction, setPreviousAction] = useState(action);\n const [isExpanded, setIsExpanded] = useState<boolean>(false);\n\n useEffect(() => {\n if (previousAction !== action) {\n saveScenario();\n setPreviousAction(action);\n }\n }, [action, saveScenario, previousAction]);\n const isActionTitlePresent = action.title !== null && action.title !== '';\n\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n const translatedActionStatus = t(`actionStatus.${action.status}`);\n\n return (\n <Box>\n <Button\n sx={{\n width: '100%',\n fontSize: '16px',\n color: 'inherit',\n textAlign: 'left',\n justifyContent: 'start',\n textTransform: 'initial',\n }}\n startIcon={isExpanded ? <ExpandLess /> : <ExpandMore />}\n onClick={() => setIsExpanded(!isExpanded)}\n variant=\"text\"\n >\n {isActionTitlePresent\n ? action.title\n : `${t('dictionary.measure')} ${index}`}\n </Button>\n <Collapse in={isExpanded}>\n <Typography sx={{ ...label, marginTop: 1 }}>\n {t('dictionary.description')}\n </Typography>\n <Typography sx={body2}>{action.description}</Typography>\n\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'end',\n marginTop: '16px',\n }}\n >\n <Box>\n <Typography sx={label}>{t('dictionary.url')}</Typography>\n {action.url ? (\n <Link\n sx={body2}\n target=\"_blank\"\n rel=\"noreferrer\"\n href={\n action.url.startsWith('http') ? action.url : `//${action.url}`\n }\n >\n {action.url}\n </Link>\n ) : (\n <Typography sx={emptyState}>\n {t('dictionary.emptyField', {\n field: t('dictionary.url').toLowerCase(),\n })}\n </Typography>\n )}\n </Box>\n\n <Chip\n label={translatedActionStatus}\n sx={{\n margin: 0,\n backgroundColor:\n action.status === 'Completed'\n ? { backgroundColor: '#6BC6A4' }\n : undefined,\n }}\n />\n </Box>\n </Collapse>\n </Box>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActionBox.esm.js","sources":["../../../../src/components/scenarioDrawer/components/ActionBox.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Action } from '../../../utils/types';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Chip from '@mui/material/Chip';\nimport Box from '@mui/material/Box';\nimport Link from '@mui/material/Link';\nimport Typography from '@mui/material/Typography';\nimport { body2, emptyState, label } from '../../common/typography';\nimport Button from '@mui/material/Button';\nimport Collapse from '@mui/material/Collapse';\nimport { ExpandLess, ExpandMore } from '@mui/icons-material';\n\ninterface ActionBoxProps {\n action: Action;\n index: number;\n}\n\nexport const ActionBox = ({ action, index }: ActionBoxProps) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const [isExpanded, setIsExpanded] = useState<boolean>(false);\n\n const isActionTitlePresent = action.title !== null && action.title !== '';\n\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n const translatedActionStatus = t(`actionStatus.${action.status}`);\n\n return (\n <Box>\n <Button\n sx={{\n width: '100%',\n fontSize: '16px',\n color: 'inherit',\n textAlign: 'left',\n justifyContent: 'start',\n textTransform: 'initial',\n }}\n startIcon={isExpanded ? <ExpandLess /> : <ExpandMore />}\n onClick={() => setIsExpanded(!isExpanded)}\n variant=\"text\"\n >\n {isActionTitlePresent\n ? action.title\n : `${t('dictionary.measure')} ${index}`}\n </Button>\n <Collapse in={isExpanded}>\n <Typography sx={{ ...label, marginTop: 1 }}>\n {t('dictionary.description')}\n </Typography>\n <Typography sx={body2}>{action.description}</Typography>\n\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'end',\n marginTop: '16px',\n }}\n >\n <Box>\n <Typography sx={label}>{t('dictionary.url')}</Typography>\n {action.url ? (\n <Link\n sx={body2}\n target=\"_blank\"\n rel=\"noreferrer\"\n href={\n action.url.startsWith('http') ? action.url : `//${action.url}`\n }\n >\n {action.url}\n </Link>\n ) : (\n <Typography sx={emptyState}>\n {t('dictionary.emptyField', {\n field: t('dictionary.url').toLowerCase(),\n })}\n </Typography>\n )}\n </Box>\n\n <Chip\n label={translatedActionStatus}\n sx={{\n margin: 0,\n backgroundColor:\n action.status === 'Completed'\n ? { backgroundColor: '#6BC6A4' }\n : undefined,\n }}\n />\n </Box>\n </Collapse>\n </Box>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { useFieldArray } from 'react-hook-form';
3
3
  import { pluginRiScTranslationRef } from '../../../utils/translations.esm.js';
4
4
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
5
5
  import { Input } from '../../common/Input.esm.js';
6
- import { actionStatusOptions } from '../../../utils/constants.esm.js';
6
+ import { actionStatusOptions, urlRegExpPattern } from '../../../utils/constants.esm.js';
7
7
  import { Select } from '../../common/Select.esm.js';
8
8
  import Box from '@mui/material/Box';
9
9
  import Typography from '@mui/material/Typography';
@@ -85,7 +85,7 @@ const ActionFormSection = ({
85
85
  {
86
86
  ...register(`actions.${index}.url`, {
87
87
  pattern: {
88
- value: /[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/,
88
+ value: urlRegExpPattern,
89
89
  message: t("scenarioDrawer.action.urlError")
90
90
  }
91
91
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"ActionFormSection.esm.js","sources":["../../../../src/components/scenarioDrawer/components/ActionFormSection.tsx"],"sourcesContent":["import React, { Fragment } from 'react';\nimport { useFieldArray, UseFormReturn } from 'react-hook-form';\nimport { Scenario } from '../../../utils/types';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { Input } from '../../common/Input';\nimport { actionStatusOptions } from '../../../utils/constants';\nimport { Select } from '../../common/Select';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport { heading3 } from '../../common/typography';\nimport { AddCircle } from '@mui/icons-material';\nimport Divider from '@mui/material/Divider';\nimport Button from '@mui/material/Button';\nimport { emptyAction } from '../../../contexts/ScenarioContext';\nimport IconButton from '@mui/material/IconButton';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport { section } from '../scenarioDrawerComponents';\nimport Paper from '@mui/material/Paper';\n\nconst ActionFormSection = ({\n formMethods,\n}: {\n formMethods: UseFormReturn<Scenario>;\n}) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { control, register, formState } = formMethods;\n const { fields, append, remove } = useFieldArray({\n control,\n name: 'actions',\n rules: {\n required: true,\n },\n });\n\n const translatedActionStatuses = actionStatusOptions.map(actionStatus => ({\n value: actionStatus,\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n renderedValue: t(`actionStatus.${actionStatus}`),\n }));\n\n return (\n <Paper sx={section}>\n <Typography sx={heading3}>{t('dictionary.measure')}</Typography>\n {fields.map((field, index) => (\n <Fragment key={field.ID}>\n <Divider variant=\"fullWidth\" />\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 <Typography sx={heading3}>\n {t('dictionary.measure')} {index + 1}\n </Typography>\n <IconButton onClick={() => remove(index)} color=\"primary\">\n <DeleteIcon aria-label=\"Edit\" />\n </IconButton>\n </Box>\n <Input\n {...register(`actions.${index}.title`)}\n label={t('dictionary.title')}\n />\n <Input\n required\n {...register(`actions.${index}.description`, { required: true })}\n error={\n formState.errors?.actions?.[index]?.description !== undefined\n }\n label={t('dictionary.description')}\n />\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: '2fr 1fr',\n gap: '24px',\n }}\n >\n <Input\n {...register(`actions.${index}.url`, {\n pattern: {\n value:\n /[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)/,\n message: t('scenarioDrawer.action.urlError'),\n },\n })}\n label={t('dictionary.url')}\n helperText={formState.errors.actions?.[index]?.url?.message}\n error={!!formState.errors.actions?.[index]?.url?.message}\n />\n <Select<Scenario>\n required\n control={control}\n name={`actions.${index}.status`}\n label={t('dictionary.status')}\n options={translatedActionStatuses}\n />\n </Box>\n </Box>\n </Fragment>\n ))}\n <Button\n startIcon={<AddCircle />}\n color=\"primary\"\n onClick={() => append(emptyAction())}\n >\n {t('scenarioDrawer.measureTab.addMeasureButton')}\n </Button>\n </Paper>\n );\n};\n\nexport default ActionFormSection;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,MAAM,oBAAoB,CAAC;AAAA,EACzB,WAAA;AACF,CAEM,KAAA;AACJ,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA,CAAA;AACxD,EAAA,MAAM,EAAE,OAAA,EAAS,QAAU,EAAA,SAAA,EAAc,GAAA,WAAA,CAAA;AACzC,EAAA,MAAM,EAAE,MAAA,EAAQ,MAAQ,EAAA,MAAA,KAAW,aAAc,CAAA;AAAA,IAC/C,OAAA;AAAA,IACA,IAAM,EAAA,SAAA;AAAA,IACN,KAAO,EAAA;AAAA,MACL,QAAU,EAAA,IAAA;AAAA,KACZ;AAAA,GACD,CAAA,CAAA;AAED,EAAM,MAAA,wBAAA,GAA2B,mBAAoB,CAAA,GAAA,CAAI,CAAiB,YAAA,MAAA;AAAA,IACxE,KAAO,EAAA,YAAA;AAAA;AAAA,IAEP,aAAe,EAAA,CAAA,CAAE,CAAgB,aAAA,EAAA,YAAY,CAAE,CAAA,CAAA;AAAA,GAC/C,CAAA,CAAA,CAAA;AAEF,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,EAAA,EAAI,OACT,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,EAAA,EAAI,QAAW,EAAA,EAAA,CAAA,CAAE,oBAAoB,CAAE,CAClD,EAAA,MAAA,CAAO,IAAI,CAAC,KAAA,EAAO,KAClB,qBAAA,KAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,GAAA,EAAK,KAAM,CAAA,EAAA,EAAA,kBAClB,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAQ,OAAQ,EAAA,WAAA,EAAY,CAC7B,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,EAAI,EAAA;AAAA,QACF,OAAS,EAAA,MAAA;AAAA,QACT,GAAK,EAAA,MAAA;AAAA,QACL,OAAS,EAAA,CAAA;AAAA,OACX;AAAA,KAAA;AAAA,oBAEA,KAAA,CAAA,aAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,EAAI,EAAA;AAAA,UACF,OAAS,EAAA,MAAA;AAAA,UACT,cAAgB,EAAA,eAAA;AAAA,UAChB,UAAY,EAAA,QAAA;AAAA,SACd;AAAA,OAAA;AAAA,sBAEA,KAAA,CAAA,aAAA,CAAC,cAAW,EAAI,EAAA,QAAA,EAAA,EACb,EAAE,oBAAoB,CAAA,EAAE,GAAE,EAAA,KAAA,GAAQ,CACrC,CAAA;AAAA,sBACC,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,OAAS,EAAA,MAAM,MAAO,CAAA,KAAK,CAAG,EAAA,KAAA,EAAM,SAC9C,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,YAAA,EAAW,QAAO,CAChC,CAAA;AAAA,KACF;AAAA,oBACA,KAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,QAAA,CAAS,CAAW,QAAA,EAAA,KAAK,CAAQ,MAAA,CAAA,CAAA;AAAA,QACrC,KAAA,EAAO,EAAE,kBAAkB,CAAA;AAAA,OAAA;AAAA,KAC7B;AAAA,oBACA,KAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,QAAQ,EAAA,IAAA;AAAA,QACP,GAAG,SAAS,CAAW,QAAA,EAAA,KAAK,gBAAgB,EAAE,QAAA,EAAU,MAAM,CAAA;AAAA,QAC/D,OACE,SAAU,CAAA,MAAA,EAAQ,OAAU,GAAA,KAAK,GAAG,WAAgB,KAAA,KAAA,CAAA;AAAA,QAEtD,KAAA,EAAO,EAAE,wBAAwB,CAAA;AAAA,OAAA;AAAA,KACnC;AAAA,oBACA,KAAA,CAAA,aAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,EAAI,EAAA;AAAA,UACF,OAAS,EAAA,MAAA;AAAA,UACT,mBAAqB,EAAA,SAAA;AAAA,UACrB,GAAK,EAAA,MAAA;AAAA,SACP;AAAA,OAAA;AAAA,sBAEA,KAAA,CAAA,aAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACE,GAAG,QAAA,CAAS,CAAW,QAAA,EAAA,KAAK,CAAQ,IAAA,CAAA,EAAA;AAAA,YACnC,OAAS,EAAA;AAAA,cACP,KACE,EAAA,oFAAA;AAAA,cACF,OAAA,EAAS,EAAE,gCAAgC,CAAA;AAAA,aAC7C;AAAA,WACD,CAAA;AAAA,UACD,KAAA,EAAO,EAAE,gBAAgB,CAAA;AAAA,UACzB,YAAY,SAAU,CAAA,MAAA,CAAO,OAAU,GAAA,KAAK,GAAG,GAAK,EAAA,OAAA;AAAA,UACpD,KAAA,EAAO,CAAC,CAAC,SAAA,CAAU,OAAO,OAAU,GAAA,KAAK,GAAG,GAAK,EAAA,OAAA;AAAA,SAAA;AAAA,OACnD;AAAA,sBACA,KAAA,CAAA,aAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,QAAQ,EAAA,IAAA;AAAA,UACR,OAAA;AAAA,UACA,IAAA,EAAM,WAAW,KAAK,CAAA,OAAA,CAAA;AAAA,UACtB,KAAA,EAAO,EAAE,mBAAmB,CAAA;AAAA,UAC5B,OAAS,EAAA,wBAAA;AAAA,SAAA;AAAA,OACX;AAAA,KACF;AAAA,GAEJ,CACD,CACD,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,sCAAY,SAAU,EAAA,IAAA,CAAA;AAAA,MACtB,KAAM,EAAA,SAAA;AAAA,MACN,OAAS,EAAA,MAAM,MAAO,CAAA,WAAA,EAAa,CAAA;AAAA,KAAA;AAAA,IAElC,EAAE,4CAA4C,CAAA;AAAA,GAEnD,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"ActionFormSection.esm.js","sources":["../../../../src/components/scenarioDrawer/components/ActionFormSection.tsx"],"sourcesContent":["import React, { Fragment } from 'react';\nimport { useFieldArray, UseFormReturn } from 'react-hook-form';\nimport { Scenario } from '../../../utils/types';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { Input } from '../../common/Input';\nimport {\n actionStatusOptions,\n urlRegExpPattern,\n} from '../../../utils/constants';\nimport { Select } from '../../common/Select';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport { heading3 } from '../../common/typography';\nimport { AddCircle } from '@mui/icons-material';\nimport Divider from '@mui/material/Divider';\nimport Button from '@mui/material/Button';\nimport { emptyAction } from '../../../contexts/ScenarioContext';\nimport IconButton from '@mui/material/IconButton';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport { section } from '../scenarioDrawerComponents';\nimport Paper from '@mui/material/Paper';\n\nconst ActionFormSection = ({\n formMethods,\n}: {\n formMethods: UseFormReturn<Scenario>;\n}) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { control, register, formState } = formMethods;\n const { fields, append, remove } = useFieldArray({\n control,\n name: 'actions',\n rules: {\n required: true,\n },\n });\n\n const translatedActionStatuses = actionStatusOptions.map(actionStatus => ({\n value: actionStatus,\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n renderedValue: t(`actionStatus.${actionStatus}`),\n }));\n\n return (\n <Paper sx={section}>\n <Typography sx={heading3}>{t('dictionary.measure')}</Typography>\n {fields.map((field, index) => (\n <Fragment key={field.ID}>\n <Divider variant=\"fullWidth\" />\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 <Typography sx={heading3}>\n {t('dictionary.measure')} {index + 1}\n </Typography>\n <IconButton onClick={() => remove(index)} color=\"primary\">\n <DeleteIcon aria-label=\"Edit\" />\n </IconButton>\n </Box>\n <Input\n {...register(`actions.${index}.title`)}\n label={t('dictionary.title')}\n />\n <Input\n required\n {...register(`actions.${index}.description`, { required: true })}\n error={\n formState.errors?.actions?.[index]?.description !== undefined\n }\n label={t('dictionary.description')}\n />\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: '2fr 1fr',\n gap: '24px',\n }}\n >\n <Input\n {...register(`actions.${index}.url`, {\n pattern: {\n value: urlRegExpPattern,\n message: t('scenarioDrawer.action.urlError'),\n },\n })}\n label={t('dictionary.url')}\n helperText={formState.errors.actions?.[index]?.url?.message}\n error={!!formState.errors.actions?.[index]?.url?.message}\n />\n <Select<Scenario>\n required\n control={control}\n name={`actions.${index}.status`}\n label={t('dictionary.status')}\n options={translatedActionStatuses}\n />\n </Box>\n </Box>\n </Fragment>\n ))}\n <Button\n startIcon={<AddCircle />}\n color=\"primary\"\n onClick={() => append(emptyAction())}\n >\n {t('scenarioDrawer.measureTab.addMeasureButton')}\n </Button>\n </Paper>\n );\n};\n\nexport default ActionFormSection;\n"],"names":[],"mappings":"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"}
@@ -11,15 +11,8 @@ import Divider from '@mui/material/Divider';
11
11
 
12
12
  const ActionsSection = () => {
13
13
  const { t } = useTranslationRef(pluginRiScTranslationRef);
14
- const { scenario, saveScenario } = useScenario();
15
- return /* @__PURE__ */ React.createElement(Paper, { sx: section }, /* @__PURE__ */ React.createElement(Typography, { sx: heading3 }, t("dictionary.measure")), scenario.actions.length > 0 ? scenario.actions.map((action, index) => /* @__PURE__ */ React.createElement(Fragment, { key: action.ID }, /* @__PURE__ */ React.createElement(Divider, null), /* @__PURE__ */ React.createElement(
16
- ActionBox,
17
- {
18
- action,
19
- index: index + 1,
20
- saveScenario
21
- }
22
- ))) : /* @__PURE__ */ React.createElement(Typography, { sx: emptyState }, t("dictionary.emptyField", {
14
+ const { scenario } = useScenario();
15
+ return /* @__PURE__ */ React.createElement(Paper, { sx: section }, /* @__PURE__ */ React.createElement(Typography, { sx: heading3 }, t("dictionary.measure")), scenario.actions.length > 0 ? scenario.actions.map((action, index) => /* @__PURE__ */ React.createElement(Fragment, { key: action.ID }, /* @__PURE__ */ React.createElement(Divider, null), /* @__PURE__ */ React.createElement(ActionBox, { action, index: index + 1 }))) : /* @__PURE__ */ React.createElement(Typography, { sx: emptyState }, t("dictionary.emptyField", {
23
16
  field: t("dictionary.measures").toLowerCase()
24
17
  })));
25
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsSection.esm.js","sources":["../../../../src/components/scenarioDrawer/components/ActionsSection.tsx"],"sourcesContent":["import { ActionBox } from './ActionBox';\nimport React, { Fragment } from 'react';\nimport Paper from '@mui/material/Paper';\nimport Typography from '@mui/material/Typography';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { useScenario } from '../../../contexts/ScenarioContext';\nimport { section } from '../scenarioDrawerComponents';\nimport { emptyState, heading3 } from '../../common/typography';\nimport Divider from '@mui/material/Divider';\n\nexport const ActionsSection = () => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { scenario, saveScenario } = useScenario();\n\n return (\n <Paper sx={section}>\n <Typography sx={heading3}>{t('dictionary.measure')}</Typography>\n\n {scenario.actions.length > 0 ? (\n scenario.actions.map((action, index) => (\n <Fragment key={action.ID}>\n <Divider />\n <ActionBox\n action={action}\n index={index + 1}\n saveScenario={saveScenario}\n />\n </Fragment>\n ))\n ) : (\n <Typography sx={emptyState}>\n {t('dictionary.emptyField', {\n field: t('dictionary.measures').toLowerCase(),\n })}\n </Typography>\n )}\n </Paper>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAWO,MAAM,iBAAiB,MAAM;AAClC,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA,CAAA;AACxD,EAAA,MAAM,EAAE,QAAA,EAAU,YAAa,EAAA,GAAI,WAAY,EAAA,CAAA;AAE/C,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAM,EAAI,EAAA,OAAA,EAAA,kBACR,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,EAAI,EAAA,QAAA,EAAA,EAAW,CAAE,CAAA,oBAAoB,CAAE,CAAA,EAElD,QAAS,CAAA,OAAA,CAAQ,MAAS,GAAA,CAAA,GACzB,QAAS,CAAA,OAAA,CAAQ,GAAI,CAAA,CAAC,MAAQ,EAAA,KAAA,qBAC3B,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAS,GAAK,EAAA,MAAA,CAAO,EACpB,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,aAAQ,CACT,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,MAAA;AAAA,MACA,OAAO,KAAQ,GAAA,CAAA;AAAA,MACf,YAAA;AAAA,KAAA;AAAA,GAEJ,CACD,CAED,mBAAA,KAAA,CAAA,aAAA,CAAC,cAAW,EAAI,EAAA,UAAA,EAAA,EACb,EAAE,uBAAyB,EAAA;AAAA,IAC1B,KAAO,EAAA,CAAA,CAAE,qBAAqB,CAAA,CAAE,WAAY,EAAA;AAAA,GAC7C,CACH,CAEJ,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"ActionsSection.esm.js","sources":["../../../../src/components/scenarioDrawer/components/ActionsSection.tsx"],"sourcesContent":["import { ActionBox } from './ActionBox';\nimport React, { Fragment } from 'react';\nimport Paper from '@mui/material/Paper';\nimport Typography from '@mui/material/Typography';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { useScenario } from '../../../contexts/ScenarioContext';\nimport { section } from '../scenarioDrawerComponents';\nimport { emptyState, heading3 } from '../../common/typography';\nimport Divider from '@mui/material/Divider';\n\nexport const ActionsSection = () => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { scenario } = useScenario();\n\n return (\n <Paper sx={section}>\n <Typography sx={heading3}>{t('dictionary.measure')}</Typography>\n\n {scenario.actions.length > 0 ? (\n scenario.actions.map((action, index) => (\n <Fragment key={action.ID}>\n <Divider />\n <ActionBox action={action} index={index + 1} />\n </Fragment>\n ))\n ) : (\n <Typography sx={emptyState}>\n {t('dictionary.emptyField', {\n field: t('dictionary.measures').toLowerCase(),\n })}\n </Typography>\n )}\n </Paper>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAWO,MAAM,iBAAiB,MAAM;AAClC,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA,CAAA;AACxD,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,WAAY,EAAA,CAAA;AAEjC,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,SAAM,EAAI,EAAA,OAAA,EAAA,sCACR,UAAW,EAAA,EAAA,EAAA,EAAI,YAAW,CAAE,CAAA,oBAAoB,CAAE,CAElD,EAAA,QAAA,CAAS,QAAQ,MAAS,GAAA,CAAA,GACzB,SAAS,OAAQ,CAAA,GAAA,CAAI,CAAC,MAAQ,EAAA,KAAA,yCAC3B,QAAS,EAAA,EAAA,GAAA,EAAK,OAAO,EACpB,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,aAAQ,CACT,kBAAA,KAAA,CAAA,aAAA,CAAC,aAAU,MAAgB,EAAA,KAAA,EAAO,QAAQ,CAAG,EAAA,CAC/C,CACD,CAED,mBAAA,KAAA,CAAA,aAAA,CAAC,cAAW,EAAI,EAAA,UAAA,EAAA,EACb,EAAE,uBAAyB,EAAA;AAAA,IAC1B,KAAO,EAAA,CAAA,CAAE,qBAAqB,CAAA,CAAE,WAAY,EAAA;AAAA,GAC7C,CACH,CAEJ,CAAA,CAAA;AAEJ;;;;"}
@@ -2,16 +2,31 @@ import Button from '@mui/material/Button';
2
2
  import React from 'react';
3
3
  import { pluginRiScTranslationRef } from '../../../utils/translations.esm.js';
4
4
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
5
- import { useScenario } from '../../../contexts/ScenarioContext.esm.js';
6
5
  import Dialog from '@mui/material/Dialog';
7
6
  import DialogTitle from '@mui/material/DialogTitle';
8
7
  import DialogActions from '@mui/material/DialogActions';
9
8
  import { dialogActions } from '../../common/mixins.esm.js';
9
+ import { useScenario } from '../../../contexts/ScenarioContext.esm.js';
10
+ import { useRiScs } from '../../../contexts/RiScContext.esm.js';
10
11
 
11
- const DeleteConfirmation = () => {
12
+ const DeleteConfirmation = ({
13
+ deleteConfirmationIsOpen,
14
+ setDeleteConfirmationIsOpen
15
+ }) => {
12
16
  const { t } = useTranslationRef(pluginRiScTranslationRef);
13
- const { deleteConfirmationIsOpen, abortDeletion, confirmDeletion } = useScenario();
14
- return /* @__PURE__ */ React.createElement(Dialog, { open: deleteConfirmationIsOpen }, /* @__PURE__ */ React.createElement(DialogTitle, null, t("scenarioDrawer.deleteScenarioConfirmation")), /* @__PURE__ */ React.createElement(DialogActions, { sx: dialogActions }, /* @__PURE__ */ React.createElement(Button, { onClick: abortDeletion }, t("dictionary.cancel")), /* @__PURE__ */ React.createElement(Button, { onClick: confirmDeletion, variant: "contained", color: "error" }, t("scenarioDrawer.deleteScenarioButton"))));
17
+ const { selectedRiSc: riSc, updateRiSc } = useRiScs();
18
+ const { scenario, closeScenarioForm } = useScenario();
19
+ const confirmDeletion = () => {
20
+ if (riSc) {
21
+ setDeleteConfirmationIsOpen(false);
22
+ closeScenarioForm();
23
+ const updatedScenarios = riSc.content.scenarios.filter(
24
+ (s) => s.ID !== scenario.ID
25
+ );
26
+ updateRiSc({ ...riSc.content, scenarios: updatedScenarios });
27
+ }
28
+ };
29
+ return /* @__PURE__ */ React.createElement(Dialog, { open: deleteConfirmationIsOpen }, /* @__PURE__ */ React.createElement(DialogTitle, null, t("scenarioDrawer.deleteScenarioConfirmation")), /* @__PURE__ */ React.createElement(DialogActions, { sx: dialogActions }, /* @__PURE__ */ React.createElement(Button, { onClick: () => setDeleteConfirmationIsOpen(false) }, t("dictionary.cancel")), /* @__PURE__ */ React.createElement(Button, { onClick: confirmDeletion, variant: "contained", color: "error" }, t("scenarioDrawer.deleteScenarioButton"))));
15
30
  };
16
31
 
17
32
  export { DeleteConfirmation };
@@ -1 +1 @@
1
- {"version":3,"file":"DeleteConfirmation.esm.js","sources":["../../../../src/components/scenarioDrawer/components/DeleteConfirmation.tsx"],"sourcesContent":["import Button from '@mui/material/Button';\nimport React from 'react';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { useScenario } from '../../../contexts/ScenarioContext';\nimport Dialog from '@mui/material/Dialog';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogActions from '@mui/material/DialogActions';\nimport { dialogActions } from '../../common/mixins';\n\nexport const DeleteConfirmation = () => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { deleteConfirmationIsOpen, abortDeletion, confirmDeletion } =\n useScenario();\n\n return (\n <Dialog open={deleteConfirmationIsOpen}>\n <DialogTitle>\n {t('scenarioDrawer.deleteScenarioConfirmation')}\n </DialogTitle>\n <DialogActions sx={dialogActions}>\n <Button onClick={abortDeletion}>{t('dictionary.cancel')}</Button>\n <Button onClick={confirmDeletion} variant=\"contained\" color=\"error\">\n {t('scenarioDrawer.deleteScenarioButton')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;AAUO,MAAM,qBAAqB,MAAM;AACtC,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA,CAAA;AACxD,EAAA,MAAM,EAAE,wBAAA,EAA0B,aAAe,EAAA,eAAA,KAC/C,WAAY,EAAA,CAAA;AAEd,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,IAAM,EAAA,wBAAA,EAAA,sCACX,WACE,EAAA,IAAA,EAAA,CAAA,CAAE,2CAA2C,CAChD,mBACC,KAAA,CAAA,aAAA,CAAA,aAAA,EAAA,EAAc,EAAI,EAAA,aAAA,EAAA,sCAChB,MAAO,EAAA,EAAA,OAAA,EAAS,aAAgB,EAAA,EAAA,CAAA,CAAE,mBAAmB,CAAE,CACxD,kBAAA,KAAA,CAAA,aAAA,CAAC,UAAO,OAAS,EAAA,eAAA,EAAiB,OAAQ,EAAA,WAAA,EAAY,OAAM,OACzD,EAAA,EAAA,CAAA,CAAE,qCAAqC,CAC1C,CACF,CACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"DeleteConfirmation.esm.js","sources":["../../../../src/components/scenarioDrawer/components/DeleteConfirmation.tsx"],"sourcesContent":["import Button from '@mui/material/Button';\nimport React from 'react';\nimport { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Dialog from '@mui/material/Dialog';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogActions from '@mui/material/DialogActions';\nimport { dialogActions } from '../../common/mixins';\nimport { useScenario } from '../../../contexts/ScenarioContext';\nimport { useRiScs } from '../../../contexts/RiScContext';\n\nexport const DeleteConfirmation = ({\n deleteConfirmationIsOpen,\n setDeleteConfirmationIsOpen,\n}: {\n deleteConfirmationIsOpen: boolean;\n setDeleteConfirmationIsOpen: (deleteConfirmationIsOpen: boolean) => void;\n}) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { selectedRiSc: riSc, updateRiSc } = useRiScs();\n const { scenario, closeScenarioForm } = useScenario();\n\n const confirmDeletion = () => {\n if (riSc) {\n setDeleteConfirmationIsOpen(false);\n closeScenarioForm();\n const updatedScenarios = riSc.content.scenarios.filter(\n s => s.ID !== scenario.ID,\n );\n updateRiSc({ ...riSc.content, scenarios: updatedScenarios });\n }\n };\n\n return (\n <Dialog open={deleteConfirmationIsOpen}>\n <DialogTitle>\n {t('scenarioDrawer.deleteScenarioConfirmation')}\n </DialogTitle>\n <DialogActions sx={dialogActions}>\n <Button onClick={() => setDeleteConfirmationIsOpen(false)}>\n {t('dictionary.cancel')}\n </Button>\n <Button onClick={confirmDeletion} variant=\"contained\" color=\"error\">\n {t('scenarioDrawer.deleteScenarioButton')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAWO,MAAM,qBAAqB,CAAC;AAAA,EACjC,wBAAA;AAAA,EACA,2BAAA;AACF,CAGM,KAAA;AACJ,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA,CAAA;AACxD,EAAA,MAAM,EAAE,YAAA,EAAc,IAAM,EAAA,UAAA,KAAe,QAAS,EAAA,CAAA;AACpD,EAAA,MAAM,EAAE,QAAA,EAAU,iBAAkB,EAAA,GAAI,WAAY,EAAA,CAAA;AAEpD,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,IAAI,IAAM,EAAA;AACR,MAAA,2BAAA,CAA4B,KAAK,CAAA,CAAA;AACjC,MAAkB,iBAAA,EAAA,CAAA;AAClB,MAAM,MAAA,gBAAA,GAAmB,IAAK,CAAA,OAAA,CAAQ,SAAU,CAAA,MAAA;AAAA,QAC9C,CAAA,CAAA,KAAK,CAAE,CAAA,EAAA,KAAO,QAAS,CAAA,EAAA;AAAA,OACzB,CAAA;AACA,MAAA,UAAA,CAAW,EAAE,GAAG,IAAA,CAAK,OAAS,EAAA,SAAA,EAAW,kBAAkB,CAAA,CAAA;AAAA,KAC7D;AAAA,GACF,CAAA;AAEA,EAAA,2CACG,MAAO,EAAA,EAAA,IAAA,EAAM,wBACZ,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,mBACE,CAAE,CAAA,2CAA2C,CAChD,CAAA,sCACC,aAAc,EAAA,EAAA,EAAA,EAAI,aACjB,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,UAAO,OAAS,EAAA,MAAM,2BAA4B,CAAA,KAAK,KACrD,CAAE,CAAA,mBAAmB,CACxB,CAAA,sCACC,MAAO,EAAA,EAAA,OAAA,EAAS,eAAiB,EAAA,OAAA,EAAQ,aAAY,KAAM,EAAA,OAAA,EAAA,EACzD,EAAE,qCAAqC,CAC1C,CACF,CACF,CAAA,CAAA;AAEJ;;;;"}
@@ -19,7 +19,7 @@ const ScenarioTable = ({ riSc }) => {
19
19
  const { t } = useTranslationRef(pluginRiScTranslationRef);
20
20
  const { label } = useFontStyles();
21
21
  const { titleBox, rowBorder, tableCell, tableCellTitle } = useTableStyles();
22
- const { newScenario, openScenario } = useScenario();
22
+ const { openNewScenarioWizard, openScenarioDrawer } = useScenario();
23
23
  return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Paper, null, /* @__PURE__ */ React.createElement(Box, { className: titleBox }, /* @__PURE__ */ React.createElement(Typography, { variant: "h5", style: { padding: "1rem", marginBottom: 0 } }, t("scenarioTable.title")), riSc.scenarios.length > 0 && /* @__PURE__ */ React.createElement(
24
24
  Box,
25
25
  {
@@ -36,7 +36,7 @@ const ScenarioTable = ({ riSc }) => {
36
36
  startIcon: /* @__PURE__ */ React.createElement(AddCircle, null),
37
37
  variant: "text",
38
38
  color: "primary",
39
- onClick: newScenario
39
+ onClick: openNewScenarioWizard
40
40
  },
41
41
  t("scenarioTable.addScenarioButton")
42
42
  )
@@ -55,7 +55,7 @@ const ScenarioTable = ({ riSc }) => {
55
55
  startIcon: /* @__PURE__ */ React.createElement(AddCircleOutlineIcon, null),
56
56
  variant: "contained",
57
57
  color: "primary",
58
- onClick: newScenario,
58
+ onClick: openNewScenarioWizard,
59
59
  style: {
60
60
  display: "flex",
61
61
  padding: "0.5rem 1rem 0.5rem 1rem",
@@ -69,7 +69,7 @@ const ScenarioTable = ({ riSc }) => {
69
69
  {
70
70
  key: scenario.ID,
71
71
  scenario,
72
- viewRow: openScenario,
72
+ viewRow: openScenarioDrawer,
73
73
  isLastRow: idx === riSc.scenarios.length - 1
74
74
  }
75
75
  )))))));