@kartverket/backstage-plugin-risk-scorecard 3.9.4 → 3.9.6

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 (59) hide show
  1. package/css/theme.css +48 -47
  2. package/dist/PluginRoot.esm.js +2 -2
  3. package/dist/PluginRoot.esm.js.map +1 -1
  4. package/dist/components/common/UpdatedStatusBadge.module.css.esm.js +1 -1
  5. package/dist/components/riScDialog/MatrixDialog.esm.js +1 -1
  6. package/dist/components/riScDialog/MatrixDialog.esm.js.map +1 -1
  7. package/dist/components/riScDialog/RiScDialog.esm.js +4 -4
  8. package/dist/components/riScDialog/RiScDialog.esm.js.map +1 -1
  9. package/dist/components/riScDialog/SupportDialog.esm.js +32 -41
  10. package/dist/components/riScDialog/SupportDialog.esm.js.map +1 -1
  11. package/dist/components/riScInfo/MigrationDialog.esm.js +1 -1
  12. package/dist/components/riScInfo/MigrationDialog.esm.js.map +1 -1
  13. package/dist/components/riScInfo/PublishDialog.esm.js +1 -1
  14. package/dist/components/riScInfo/PublishDialog.esm.js.map +1 -1
  15. package/dist/components/riScInfo/changeset/RiScActionChange.esm.js +7 -0
  16. package/dist/components/riScInfo/changeset/RiScActionChange.esm.js.map +1 -1
  17. package/dist/components/riScInfo/changeset/RiScActionChangeSet.esm.js +7 -0
  18. package/dist/components/riScInfo/changeset/RiScActionChangeSet.esm.js.map +1 -1
  19. package/dist/components/riScInfo/migrations/RiScMigrationChanges.esm.js +3 -1
  20. package/dist/components/riScInfo/migrations/RiScMigrationChanges.esm.js.map +1 -1
  21. package/dist/components/riScInfo/migrations/RiScMigrationChanges51.esm.js +42 -0
  22. package/dist/components/riScInfo/migrations/RiScMigrationChanges51.esm.js.map +1 -0
  23. package/dist/components/riScPlugin/RiScPlugin.esm.js +2 -2
  24. package/dist/components/riScPlugin/RiScPlugin.esm.js.map +1 -1
  25. package/dist/components/scenario/ScenarioLastUpdatedLabel.esm.js +26 -0
  26. package/dist/components/scenario/ScenarioLastUpdatedLabel.esm.js.map +1 -0
  27. package/dist/components/scenario/ScenarioLastUpdatedLabel.module.css.esm.js +8 -0
  28. package/dist/components/scenario/ScenarioLastUpdatedLabel.module.css.esm.js.map +1 -0
  29. package/dist/components/scenarioDrawer/ScenarioDrawer.esm.js +7 -4
  30. package/dist/components/scenarioDrawer/ScenarioDrawer.esm.js.map +1 -1
  31. package/dist/components/scenarioDrawer/components/ActionBox.esm.js +11 -19
  32. package/dist/components/scenarioDrawer/components/ActionBox.esm.js.map +1 -1
  33. package/dist/components/scenarioDrawer/components/DeleteConfirmation.esm.js +1 -1
  34. package/dist/components/scenarioDrawer/components/DeleteConfirmation.esm.js.map +1 -1
  35. package/dist/components/scenarioTable/ActionsCard.esm.js +15 -10
  36. package/dist/components/scenarioTable/ActionsCard.esm.js.map +1 -1
  37. package/dist/components/scenarioTable/components/OutdatedActionsCountButton/OutdatedActionsCountButton.module.css.esm.js +1 -1
  38. package/dist/components/scenarioWizard/ScenarioWizard.esm.js +3 -1
  39. package/dist/components/scenarioWizard/ScenarioWizard.esm.js.map +1 -1
  40. package/dist/components/scenarioWizard/components/CloseConfirmation.esm.js +1 -1
  41. package/dist/components/scenarioWizard/components/CloseConfirmation.esm.js.map +1 -1
  42. package/dist/contexts/BackstageContext.esm.js +29 -0
  43. package/dist/contexts/BackstageContext.esm.js.map +1 -0
  44. package/dist/contexts/ScenarioContext.esm.js +9 -3
  45. package/dist/contexts/ScenarioContext.esm.js.map +1 -1
  46. package/dist/utils/DTOs.esm.js +2 -1
  47. package/dist/utils/DTOs.esm.js.map +1 -1
  48. package/dist/utils/actions.esm.js +12 -3
  49. package/dist/utils/actions.esm.js.map +1 -1
  50. package/dist/utils/constants.esm.js +1 -1
  51. package/dist/utils/constants.esm.js.map +1 -1
  52. package/dist/utils/translations.esm.js +14 -2
  53. package/dist/utils/translations.esm.js.map +1 -1
  54. package/dist/utils/types.esm.js.map +1 -1
  55. package/dist/utils/utilityfunctions.esm.js +30 -5
  56. package/dist/utils/utilityfunctions.esm.js.map +1 -1
  57. package/package.json +1 -1
  58. package/dist/plugins/ros/css/theme.css.esm.js +0 -7
  59. package/dist/plugins/ros/css/theme.css.esm.js.map +0 -1
package/css/theme.css CHANGED
@@ -1,71 +1,72 @@
1
1
  /*
2
- This file contains custom CSS styles for the ROS plugin in Backstage, as well as our own overrides of Backstage UI styles. For colors that should vary depending on mode: declare them in both :root and [data-theme-mode='dark'] sections and then use the variables in your code.
3
- */
2
+ This file contains custom CSS styles for the ROS plugin in Backstage. For colors that should vary depending on mode: declare them in both :root and [data-theme-mode='dark'] sections and then use the variables in your code.
4
3
 
5
- /*
6
- The Text-fill-scenario-and-action and Text-border-scenario-and-action variables are here as proofs of concept for how variables can be defined for both "default (light/:root) and dark mode and then our code can simply refer to the variable and don't are about the mode.
4
+ NOTE: this file is imported globally in Kartverket.dev, so any override of bui-styles will apply to ALL plugins. It should not be taken lightly to do so (and should be coordinated with other teams and team SKVIS).
5
+
6
+ Remember to prefix custom styles with 'ros-' to avoid conflicts with other plugins.
7
7
  */
8
- [data-root-for='ros'] {
9
- --green-50: #e9f8eb;
10
- --green-100: #d0ecd6;
11
- --green-200: #9fd2ab;
12
- --green-300: #66b077;
13
- --green-500: #156630;
14
8
 
15
- --light-blue-100: #cae3fe;
16
- --light-blue-200: #9bc9fe;
9
+ :root {
10
+ --ros-green-50: #e9f8eb;
11
+ --ros-green-100: #d0ecd6;
12
+ --ros-green-200: #9fd2ab;
13
+ --ros-green-300: #66b077;
14
+ --ros-green-500: #156630;
15
+
16
+ --ros-light-blue-100: #cae3fe;
17
+ --ros-light-blue-200: #9bc9fe;
17
18
 
18
- --blue-600: #1f5492;
19
+ --ros-blue-600: #1f5492;
19
20
 
20
- --red-100: #ffe2d4;
21
- --red-200: #ebb095;
22
- --red-300: #e58869;
23
- --red-400: #d04a14;
24
- --red-500: #a32f00;
25
- --red-600: #862906;
26
- --red-700: #722609;
27
- --red-800: #541f0b;
28
- --red-900: #39170a;
29
- --red-bright: #d3302f;
21
+ --ros-red-100: #ffe2d4;
22
+ --ros-red-200: #ebb095;
23
+ --ros-red-300: #e58869;
24
+ --ros-red-400: #d04a14;
25
+ --ros-red-500: #a32f00;
26
+ --ros-red-600: #862906;
27
+ --ros-red-700: #722609;
28
+ --ros-red-800: #541f0b;
29
+ --ros-red-900: #39170a;
30
+ --ros-red-bright: #d3302f;
30
31
 
31
- --orange-50: #fcebcd;
32
- --orange-100: #ffdd9d;
33
- --orange-200: #ebbe76;
34
- --orange-300: #cf914a;
35
- --orange-400: #bc7729;
36
- --orange-500: #8e5a1f;
32
+ --ros-orange-50: #fcebcd;
33
+ --ros-orange-100: #ffdd9d;
34
+ --ros-orange-200: #ebbe76;
35
+ --ros-orange-300: #cf914a;
36
+ --ros-orange-400: #bc7729;
37
+ --ros-orange-500: #8e5a1f;
37
38
 
38
- --gray-50: #f8f8f8;
39
- --gray-100: #eae7e7;
40
- --gray-200: #c8c5c5;
41
- --gray-300: #a2a0a0;
42
- --gray-400: #706f6e;
43
- --gray-500: #5a5858;
44
- --gray-600: #4a4848;
45
- --gray-700: #403f3f;
46
- --gray-800: #2e2e2e;
47
- --gray-900: #212121;
48
- --gray-medium: #808080;
39
+ --ros-gray-50: #f8f8f8;
40
+ --ros-gray-100: #eae7e7;
41
+ --ros-gray-200: #c8c5c5;
42
+ --ros-gray-300: #a2a0a0;
43
+ --ros-gray-400: #706f6e;
44
+ --ros-gray-500: #5a5858;
45
+ --ros-gray-600: #4a4848;
46
+ --ros-gray-700: #403f3f;
47
+ --ros-gray-800: #2e2e2e;
48
+ --ros-gray-900: #212121;
49
+ --ros-gray-medium: #808080;
49
50
 
50
51
  /* -------Button styles------- */
51
- .button-red {
52
- background-color: var(--red-bright);
52
+ .ros-button-red {
53
+ background-color: var(--ros-red-bright);
53
54
  color: var(--bui-white);
54
55
  }
55
56
 
56
- .button-green {
57
- background-color: var(--green-500);
57
+ .ros-button-green {
58
+ background-color: var(--ros-green-500);
58
59
  color: var(--bui-white);
59
60
  }
60
61
 
61
- .button-gray {
62
- background-color: var(--gray-medium);
62
+ .ros-button-gray {
63
+ background-color: var(--ros-gray-medium);
63
64
  color: var(--bui-white);
64
65
  }
65
66
  /* ---------------------------- */
66
67
  }
67
68
 
68
69
  /* Dark mode custom styles can be added here */
69
- /* [data-theme-mode='dark'] [data-root-for='ros'] {
70
+ /* [data-theme-mode='dark'] {
70
71
 
71
72
  } */
@@ -7,8 +7,8 @@ import { ScenarioProvider } from './contexts/ScenarioContext.esm.js';
7
7
  import { riScRouteRef, scenarioRouteRef } from './routes.esm.js';
8
8
  import { RiScProvider } from './contexts/RiScContext.esm.js';
9
9
  import 'remixicon/fonts/remixicon.css';
10
- import './plugins/ros/css/theme.css.esm.js';
11
10
  import { DefaultRiScTypesProvider } from './contexts/DefaultRiScTypesContext.esm.js';
11
+ import { BackstageContextProvider } from './contexts/BackstageContext.esm.js';
12
12
 
13
13
  const emotionInsertionPoint = document.createElement("meta");
14
14
  emotionInsertionPoint.setAttribute("name", "emotion-insertion-point");
@@ -18,7 +18,7 @@ const cache = createCache({
18
18
  insertionPoint: emotionInsertionPoint
19
19
  });
20
20
  function ProvidedPlugin() {
21
- return /* @__PURE__ */ jsx(CacheProvider, { value: cache, children: /* @__PURE__ */ jsx(RiScProvider, { children: /* @__PURE__ */ jsx(DefaultRiScTypesProvider, { children: /* @__PURE__ */ jsx(ScenarioProvider, { children: /* @__PURE__ */ jsx(RiScPlugin, {}) }) }) }) });
21
+ return /* @__PURE__ */ jsx(CacheProvider, { value: cache, children: /* @__PURE__ */ jsx(BackstageContextProvider, { children: /* @__PURE__ */ jsx(RiScProvider, { children: /* @__PURE__ */ jsx(DefaultRiScTypesProvider, { children: /* @__PURE__ */ jsx(ScenarioProvider, { children: /* @__PURE__ */ jsx(RiScPlugin, {}) }) }) }) }) });
22
22
  }
23
23
  function PluginRoot() {
24
24
  return /* @__PURE__ */ jsxs(Routes, { children: [
@@ -1 +1 @@
1
- {"version":3,"file":"PluginRoot.esm.js","sources":["../src/PluginRoot.tsx"],"sourcesContent":["import { Route, Routes } from 'react-router-dom';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\nimport { RiScPlugin } from './components/riScPlugin/RiScPlugin';\nimport { ScenarioProvider } from './contexts/ScenarioContext';\nimport { riScRouteRef, scenarioRouteRef } from './routes';\nimport { RiScProvider } from './contexts/RiScContext';\nimport 'remixicon/fonts/remixicon.css';\nimport '../css/theme.css';\nimport { DefaultRiScTypesProvider } from './contexts/DefaultRiScTypesContext.tsx';\n\nconst emotionInsertionPoint = document.createElement('meta');\nemotionInsertionPoint.setAttribute('name', 'emotion-insertion-point');\ndocument.querySelector('head')?.appendChild(emotionInsertionPoint);\n\nconst cache = createCache({\n key: 'css',\n insertionPoint: emotionInsertionPoint,\n});\n\nfunction ProvidedPlugin() {\n return (\n <CacheProvider value={cache}>\n <RiScProvider>\n <DefaultRiScTypesProvider>\n <ScenarioProvider>\n <RiScPlugin />\n </ScenarioProvider>\n </DefaultRiScTypesProvider>\n </RiScProvider>\n </CacheProvider>\n );\n}\n\nexport function PluginRoot() {\n return (\n <Routes>\n <Route path=\"/\" element={<ProvidedPlugin />} />\n <Route path={riScRouteRef.path} element={<ProvidedPlugin />} />\n <Route path={scenarioRouteRef.path} element={<ProvidedPlugin />} />\n </Routes>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAWA,MAAM,qBAAA,GAAwB,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA;AAC3D,qBAAA,CAAsB,YAAA,CAAa,QAAQ,yBAAyB,CAAA;AACpE,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,EAAG,WAAA,CAAY,qBAAqB,CAAA;AAEjE,MAAM,QAAQ,WAAA,CAAY;AAAA,EACxB,GAAA,EAAK,KAAA;AAAA,EACL,cAAA,EAAgB;AAClB,CAAC,CAAA;AAED,SAAS,cAAA,GAAiB;AACxB,EAAA,uBACE,GAAA,CAAC,aAAA,EAAA,EAAc,KAAA,EAAO,KAAA,EACpB,8BAAC,YAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,wBAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,oBACC,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,CAAA,EACd,CAAA,EACF,GACF,CAAA,EACF,CAAA;AAEJ;AAEO,SAAS,UAAA,GAAa;AAC3B,EAAA,4BACG,MAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAM,IAAA,EAAK,GAAA,EAAI,OAAA,kBAAS,GAAA,CAAC,kBAAe,CAAA,EAAI,CAAA;AAAA,oBAC7C,GAAA,CAAC,SAAM,IAAA,EAAM,YAAA,CAAa,MAAM,OAAA,kBAAS,GAAA,CAAC,kBAAe,CAAA,EAAI,CAAA;AAAA,oBAC7D,GAAA,CAAC,SAAM,IAAA,EAAM,gBAAA,CAAiB,MAAM,OAAA,kBAAS,GAAA,CAAC,kBAAe,CAAA,EAAI;AAAA,GAAA,EACnE,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"PluginRoot.esm.js","sources":["../src/PluginRoot.tsx"],"sourcesContent":["import { Route, Routes } from 'react-router-dom';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\nimport { RiScPlugin } from './components/riScPlugin/RiScPlugin';\nimport { ScenarioProvider } from './contexts/ScenarioContext';\nimport { riScRouteRef, scenarioRouteRef } from './routes';\nimport { RiScProvider } from './contexts/RiScContext';\nimport 'remixicon/fonts/remixicon.css';\nimport { DefaultRiScTypesProvider } from './contexts/DefaultRiScTypesContext.tsx';\nimport { BackstageContextProvider } from './contexts/BackstageContext.tsx';\n\nconst emotionInsertionPoint = document.createElement('meta');\nemotionInsertionPoint.setAttribute('name', 'emotion-insertion-point');\ndocument.querySelector('head')?.appendChild(emotionInsertionPoint);\n\nconst cache = createCache({\n key: 'css',\n insertionPoint: emotionInsertionPoint,\n});\n\nfunction ProvidedPlugin() {\n return (\n <CacheProvider value={cache}>\n <BackstageContextProvider>\n <RiScProvider>\n <DefaultRiScTypesProvider>\n <ScenarioProvider>\n <RiScPlugin />\n </ScenarioProvider>\n </DefaultRiScTypesProvider>\n </RiScProvider>\n </BackstageContextProvider>\n </CacheProvider>\n );\n}\n\nexport function PluginRoot() {\n return (\n <Routes>\n <Route path=\"/\" element={<ProvidedPlugin />} />\n <Route path={riScRouteRef.path} element={<ProvidedPlugin />} />\n <Route path={scenarioRouteRef.path} element={<ProvidedPlugin />} />\n </Routes>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAWA,MAAM,qBAAA,GAAwB,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA;AAC3D,qBAAA,CAAsB,YAAA,CAAa,QAAQ,yBAAyB,CAAA;AACpE,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA,EAAG,WAAA,CAAY,qBAAqB,CAAA;AAEjE,MAAM,QAAQ,WAAA,CAAY;AAAA,EACxB,GAAA,EAAK,KAAA;AAAA,EACL,cAAA,EAAgB;AAClB,CAAC,CAAA;AAED,SAAS,cAAA,GAAiB;AACxB,EAAA,2BACG,aAAA,EAAA,EAAc,KAAA,EAAO,OACpB,QAAA,kBAAA,GAAA,CAAC,wBAAA,EAAA,EACC,8BAAC,YAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,wBAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,oBACC,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,GACd,CAAA,EACF,CAAA,EACF,GACF,CAAA,EACF,CAAA;AAEJ;AAEO,SAAS,UAAA,GAAa;AAC3B,EAAA,4BACG,MAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAM,IAAA,EAAK,GAAA,EAAI,OAAA,kBAAS,GAAA,CAAC,kBAAe,CAAA,EAAI,CAAA;AAAA,oBAC7C,GAAA,CAAC,SAAM,IAAA,EAAM,YAAA,CAAa,MAAM,OAAA,kBAAS,GAAA,CAAC,kBAAe,CAAA,EAAI,CAAA;AAAA,oBAC7D,GAAA,CAAC,SAAM,IAAA,EAAM,gBAAA,CAAiB,MAAM,OAAA,kBAAS,GAAA,CAAC,kBAAe,CAAA,EAAI;AAAA,GAAA,EACnE,CAAA;AAEJ;;;;"}
@@ -1,6 +1,6 @@
1
1
  import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
2
 
3
- var css_248z = ".UpdatedStatusBadge-module_badge__L8lzQ {\n display: flex;\n align-items: center;\n padding: 4px 8px;\n border-radius: 24px;\n text-align: center;\n font-size: 12px;\n}\n.UpdatedStatusBadge-module_text__1DPQ3 {\n color: var(--gray-900, #000);\n}\n\n.UpdatedStatusBadge-module_pending__9XU9w {\n background: var(--green-100);\n border: 1px solid var(--green-500);\n}\n\n.UpdatedStatusBadge-module_veryOutdated__tCijL {\n background: var(--red-200);\n border: 1px solid var(--red-400);\n}\n\n.UpdatedStatusBadge-module_outdated__5H9Uw {\n background: var(--orange-100);\n border: 1px solid var(--orange-300);\n}\n";
3
+ var css_248z = ".UpdatedStatusBadge-module_badge__L8lzQ {\n display: flex;\n align-items: center;\n padding: 4px 8px;\n border-radius: 24px;\n text-align: center;\n font-size: 12px;\n}\n.UpdatedStatusBadge-module_text__1DPQ3 {\n color: var(--ros-gray-900, #000);\n}\n\n.UpdatedStatusBadge-module_pending__9XU9w {\n background: var(--ros-green-100);\n border: 1px solid var(--ros-green-500);\n}\n\n.UpdatedStatusBadge-module_veryOutdated__tCijL {\n background: var(--ros-red-200);\n border: 1px solid var(--ros-red-400);\n}\n\n.UpdatedStatusBadge-module_outdated__5H9Uw {\n background: var(--ros-orange-100);\n border: 1px solid var(--ros-orange-300);\n}\n";
4
4
  var styles = {"badge":"UpdatedStatusBadge-module_badge__L8lzQ","text":"UpdatedStatusBadge-module_text__1DPQ3","pending":"UpdatedStatusBadge-module_pending__9XU9w","veryOutdated":"UpdatedStatusBadge-module_veryOutdated__tCijL","outdated":"UpdatedStatusBadge-module_outdated__5H9Uw"};
5
5
  styleInject(css_248z);
6
6
 
@@ -17,7 +17,7 @@ function MatrixDialog({
17
17
  close
18
18
  }) {
19
19
  const { t } = useTranslationRef(pluginRiScTranslationRef);
20
- return /* @__PURE__ */ jsxs(Dialog, { maxWidth: "lg", open, onClose: close, disablePortal: true, children: [
20
+ return /* @__PURE__ */ jsxs(Dialog, { maxWidth: "lg", open, onClose: close, children: [
21
21
  /* @__PURE__ */ jsx(DialogTitle, { children: t("scenarioDrawer.riskMatrixModal.title") }),
22
22
  /* @__PURE__ */ jsx(
23
23
  IconButton,
@@ -1 +1 @@
1
- {"version":3,"file":"MatrixDialog.esm.js","sources":["../../../src/components/riScDialog/MatrixDialog.tsx"],"sourcesContent":["import { ConsequenceTableInfoWithHeaders } from '../scenarioWizard/components/ConsequenceTable';\nimport CloseIcon from '@mui/icons-material/Close';\nimport { ProbabilityTableInfoWithHeaders } from '../scenarioWizard/components/ProbabilityTable';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Box from '@mui/material/Box';\nimport Dialog from '@mui/material/Dialog';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport IconButton from '@mui/material/IconButton';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport { Button, Text } from '@backstage/ui';\n\nexport function MatrixDialog({\n open,\n close,\n}: {\n open: boolean;\n close: () => void;\n}) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n return (\n <Dialog maxWidth=\"lg\" open={open} onClose={close} disablePortal>\n <DialogTitle>{t('scenarioDrawer.riskMatrixModal.title')}</DialogTitle>\n <IconButton\n aria-label=\"close\"\n onClick={close}\n sx={{\n position: 'absolute',\n right: 8,\n top: 8,\n color: theme => theme.palette.grey[500],\n }}\n >\n <CloseIcon />\n </IconButton>\n <DialogContent>\n <Text as=\"p\" variant=\"body-large\" style={{ paddingBottom: '32px' }}>\n {t('scenarioStepper.initialRiskStep.subtitle')}\n </Text>\n <Box>\n <Text\n variant=\"title-x-small\"\n weight=\"bold\"\n style={{ paddingBottom: '4px' }}\n >\n {t('dictionary.probability')}\n </Text>\n </Box>\n <ProbabilityTableInfoWithHeaders />\n <Box>\n <Text\n variant=\"title-x-small\"\n weight=\"bold\"\n style={{ paddingTop: '32px', paddingBottom: '4px' }}\n >\n {t('dictionary.consequence')}\n </Text>\n </Box>\n <ConsequenceTableInfoWithHeaders />\n </DialogContent>\n <DialogActions>\n <Button onClick={close}>{t('dictionary.close')}</Button>\n </DialogActions>\n </Dialog>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAaO,SAAS,YAAA,CAAa;AAAA,EAC3B,IAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,uBACE,IAAA,CAAC,UAAO,QAAA,EAAS,IAAA,EAAK,MAAY,OAAA,EAAS,KAAA,EAAO,eAAa,IAAA,EAC7D,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,WAAA,EAAA,EAAa,QAAA,EAAA,CAAA,CAAE,sCAAsC,CAAA,EAAE,CAAA;AAAA,oBACxD,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,YAAA,EAAW,OAAA;AAAA,QACX,OAAA,EAAS,KAAA;AAAA,QACT,EAAA,EAAI;AAAA,UACF,QAAA,EAAU,UAAA;AAAA,UACV,KAAA,EAAO,CAAA;AAAA,UACP,GAAA,EAAK,CAAA;AAAA,UACL,KAAA,EAAO,CAAA,KAAA,KAAS,KAAA,CAAM,OAAA,CAAQ,KAAK,GAAG;AAAA,SACxC;AAAA,QAEA,8BAAC,SAAA,EAAA,EAAU;AAAA;AAAA,KACb;AAAA,yBACC,aAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,OAAA,EAAQ,YAAA,EAAa,KAAA,EAAO,EAAE,aAAA,EAAe,MAAA,EAAO,EAC9D,QAAA,EAAA,CAAA,CAAE,0CAA0C,CAAA,EAC/C,CAAA;AAAA,0BACC,GAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,eAAA;AAAA,UACR,MAAA,EAAO,MAAA;AAAA,UACP,KAAA,EAAO,EAAE,aAAA,EAAe,KAAA,EAAM;AAAA,UAE7B,YAAE,wBAAwB;AAAA;AAAA,OAC7B,EACF,CAAA;AAAA,0BACC,+BAAA,EAAA,EAAgC,CAAA;AAAA,0BAChC,GAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,eAAA;AAAA,UACR,MAAA,EAAO,MAAA;AAAA,UACP,KAAA,EAAO,EAAE,UAAA,EAAY,MAAA,EAAQ,eAAe,KAAA,EAAM;AAAA,UAEjD,YAAE,wBAAwB;AAAA;AAAA,OAC7B,EACF,CAAA;AAAA,0BACC,+BAAA,EAAA,EAAgC;AAAA,KAAA,EACnC,CAAA;AAAA,oBACA,GAAA,CAAC,iBACC,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,SAAS,KAAA,EAAQ,QAAA,EAAA,CAAA,CAAE,kBAAkB,CAAA,EAAE,CAAA,EACjD;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"MatrixDialog.esm.js","sources":["../../../src/components/riScDialog/MatrixDialog.tsx"],"sourcesContent":["import { ConsequenceTableInfoWithHeaders } from '../scenarioWizard/components/ConsequenceTable';\nimport CloseIcon from '@mui/icons-material/Close';\nimport { ProbabilityTableInfoWithHeaders } from '../scenarioWizard/components/ProbabilityTable';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Box from '@mui/material/Box';\nimport Dialog from '@mui/material/Dialog';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport IconButton from '@mui/material/IconButton';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport { Button, Text } from '@backstage/ui';\n\nexport function MatrixDialog({\n open,\n close,\n}: {\n open: boolean;\n close: () => void;\n}) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n return (\n <Dialog maxWidth=\"lg\" open={open} onClose={close}>\n <DialogTitle>{t('scenarioDrawer.riskMatrixModal.title')}</DialogTitle>\n <IconButton\n aria-label=\"close\"\n onClick={close}\n sx={{\n position: 'absolute',\n right: 8,\n top: 8,\n color: theme => theme.palette.grey[500],\n }}\n >\n <CloseIcon />\n </IconButton>\n <DialogContent>\n <Text as=\"p\" variant=\"body-large\" style={{ paddingBottom: '32px' }}>\n {t('scenarioStepper.initialRiskStep.subtitle')}\n </Text>\n <Box>\n <Text\n variant=\"title-x-small\"\n weight=\"bold\"\n style={{ paddingBottom: '4px' }}\n >\n {t('dictionary.probability')}\n </Text>\n </Box>\n <ProbabilityTableInfoWithHeaders />\n <Box>\n <Text\n variant=\"title-x-small\"\n weight=\"bold\"\n style={{ paddingTop: '32px', paddingBottom: '4px' }}\n >\n {t('dictionary.consequence')}\n </Text>\n </Box>\n <ConsequenceTableInfoWithHeaders />\n </DialogContent>\n <DialogActions>\n <Button onClick={close}>{t('dictionary.close')}</Button>\n </DialogActions>\n </Dialog>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAaO,SAAS,YAAA,CAAa;AAAA,EAC3B,IAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,4BACG,MAAA,EAAA,EAAO,QAAA,EAAS,IAAA,EAAK,IAAA,EAAY,SAAS,KAAA,EACzC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,WAAA,EAAA,EAAa,QAAA,EAAA,CAAA,CAAE,sCAAsC,CAAA,EAAE,CAAA;AAAA,oBACxD,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,YAAA,EAAW,OAAA;AAAA,QACX,OAAA,EAAS,KAAA;AAAA,QACT,EAAA,EAAI;AAAA,UACF,QAAA,EAAU,UAAA;AAAA,UACV,KAAA,EAAO,CAAA;AAAA,UACP,GAAA,EAAK,CAAA;AAAA,UACL,KAAA,EAAO,CAAA,KAAA,KAAS,KAAA,CAAM,OAAA,CAAQ,KAAK,GAAG;AAAA,SACxC;AAAA,QAEA,8BAAC,SAAA,EAAA,EAAU;AAAA;AAAA,KACb;AAAA,yBACC,aAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,OAAA,EAAQ,YAAA,EAAa,KAAA,EAAO,EAAE,aAAA,EAAe,MAAA,EAAO,EAC9D,QAAA,EAAA,CAAA,CAAE,0CAA0C,CAAA,EAC/C,CAAA;AAAA,0BACC,GAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,eAAA;AAAA,UACR,MAAA,EAAO,MAAA;AAAA,UACP,KAAA,EAAO,EAAE,aAAA,EAAe,KAAA,EAAM;AAAA,UAE7B,YAAE,wBAAwB;AAAA;AAAA,OAC7B,EACF,CAAA;AAAA,0BACC,+BAAA,EAAA,EAAgC,CAAA;AAAA,0BAChC,GAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,eAAA;AAAA,UACR,MAAA,EAAO,MAAA;AAAA,UACP,KAAA,EAAO,EAAE,UAAA,EAAY,MAAA,EAAQ,eAAe,KAAA,EAAM;AAAA,UAEjD,YAAE,wBAAwB;AAAA;AAAA,OAC7B,EACF,CAAA;AAAA,0BACC,+BAAA,EAAA,EAAgC;AAAA,KAAA,EACnC,CAAA;AAAA,oBACA,GAAA,CAAC,iBACC,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,SAAS,KAAA,EAAQ,QAAA,EAAA,CAAA,CAAE,kBAAkB,CAAA,EAAE,CAAA,EACjD;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -133,7 +133,7 @@ function RiScDialog({
133
133
  onClose();
134
134
  });
135
135
  if (dialogState === 1 /* Create */) {
136
- return /* @__PURE__ */ jsxs(Dialog, { open: true, onClose, disablePortal: true, children: [
136
+ return /* @__PURE__ */ jsxs(Dialog, { open: true, onClose, children: [
137
137
  /* @__PURE__ */ jsx(DialogTitle, { children: t("rosDialog.titleNew") }),
138
138
  /* @__PURE__ */ jsx(RiScStepper, { activeStep, children: /* @__PURE__ */ jsxs(
139
139
  DialogContent,
@@ -199,7 +199,7 @@ function RiScDialog({
199
199
  ] });
200
200
  }
201
201
  if (dialogState === 5 /* Delete */) {
202
- return /* @__PURE__ */ jsxs(Dialog, { open: true, onClose, disablePortal: true, children: [
202
+ return /* @__PURE__ */ jsxs(Dialog, { open: true, onClose, children: [
203
203
  /* @__PURE__ */ jsx(DialogTitle, { children: t("deleteDialog.title") }),
204
204
  /* @__PURE__ */ jsx(DialogContent, { children: /* @__PURE__ */ jsx(DialogContent, { children: t("deleteDialog.confirmationMessage") }) }),
205
205
  /* @__PURE__ */ jsxs(DialogActions, { children: [
@@ -209,7 +209,7 @@ function RiScDialog({
209
209
  ] });
210
210
  }
211
211
  if (dialogState === 2 /* EditRiscInfo */) {
212
- return /* @__PURE__ */ jsxs(Dialog, { open: true, onClose, disablePortal: true, children: [
212
+ return /* @__PURE__ */ jsxs(Dialog, { open: true, onClose, children: [
213
213
  /* @__PURE__ */ jsx(DialogTitle, { children: /* @__PURE__ */ jsx(Flex, { direction: "column", children: t("rosDialog.titleEdit") }) }),
214
214
  /* @__PURE__ */ jsx(
215
215
  DialogContent,
@@ -256,7 +256,7 @@ function RiScDialog({
256
256
  ] });
257
257
  }
258
258
  if (dialogState === 4 /* EditEncryption */) {
259
- return /* @__PURE__ */ jsxs(Dialog, { open: true, onClose, disablePortal: true, children: [
259
+ return /* @__PURE__ */ jsxs(Dialog, { open: true, onClose, children: [
260
260
  /* @__PURE__ */ jsx(DialogTitle, { children: t("rosDialog.editEncryption") }),
261
261
  /* @__PURE__ */ jsx(
262
262
  DialogContent,
@@ -1 +1 @@
1
- {"version":3,"file":"RiScDialog.esm.js","sources":["../../../src/components/riScDialog/RiScDialog.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { DefaultRiScType, RiScWithMetadata } from '../../utils/types';\nimport { emptyRiSc, isDeeplyEqual } from '../../utils/utilityfunctions';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useRiScs } from '../../contexts/RiScContext';\nimport { useForm } from 'react-hook-form';\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 { dialogActions } from '../common/mixins';\nimport { Step, StepLabel, Stepper } from '@mui/material';\nimport ConfigEncryptionDialog from './ConfigEncryptionDialog';\nimport ConfigRiscInfo from './ConfigRiscInfo';\nimport ConfigInitialRisc from './ConfigInitialRisc';\nimport { Flex, Box, Button } from '@backstage/ui';\n\nexport enum RiScDialogStates {\n Closed = 0,\n Create = 1,\n EditRiscInfo = 2,\n SelectInitialRisc = 3,\n EditEncryption = 4,\n Delete = 5,\n}\n\ninterface RiScDialogProps {\n onClose: () => void;\n dialogState: RiScDialogStates;\n onDelete: () => void;\n}\n\nfunction RiScStepper({\n children,\n activeStep,\n}: {\n children: React.ReactNode;\n activeStep: number;\n}) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const steps = [\n t('rosDialog.initialRiscTitle'),\n t('rosDialog.stepRiscDetails'),\n t('rosDialog.stepEncryption'),\n ];\n return (\n <Box style={{ width: '100%', padding: '24px' }}>\n <Stepper activeStep={activeStep} alternativeLabel>\n {steps.map(label => (\n <Step key={label}>\n <StepLabel>{label}</StepLabel>\n </Step>\n ))}\n </Stepper>\n {children}\n </Box>\n );\n}\n\nexport function RiScDialog({\n onClose,\n dialogState,\n onDelete,\n}: RiScDialogProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const {\n selectedRiSc,\n riScs,\n selectRiSc,\n createNewRiSc,\n deleteRiSc,\n updateRiSc,\n gcpCryptoKeys,\n } = useRiScs();\n const {\n register,\n handleSubmit,\n watch,\n formState: { errors },\n setValue,\n } = useForm<RiScWithMetadata>({\n defaultValues:\n dialogState === RiScDialogStates.EditRiscInfo ||\n dialogState === RiScDialogStates.EditEncryption\n ? selectedRiSc!\n : {\n content: emptyRiSc(),\n sopsConfig: {\n shamir_threshold: 2,\n },\n },\n mode: 'onBlur',\n });\n\n const [activeStep, setActiveStep] = useState(0);\n\n const [switchOn, setSwitchOn] = useState(false);\n\n const [selectedRiScType, setSelectedRiScType] = useState<DefaultRiScType>(\n DefaultRiScType.Standard,\n );\n\n const handleNext = handleSubmit(\n () => {\n if (activeStep === 0) {\n setActiveStep(1);\n }\n if (activeStep === 1) {\n setActiveStep(2);\n }\n },\n // Continue to step 1 even if there are errors, as long as there are no errors in step 0 (the content)\n validationErrors => {\n if (activeStep === 0 && validationErrors.content === undefined) {\n setActiveStep(1);\n }\n },\n );\n\n function handleBack() {\n if (activeStep === 1) {\n setActiveStep(0);\n }\n if (activeStep === 2) {\n setActiveStep(1);\n }\n }\n\n const handleFinish = handleSubmit((data: RiScWithMetadata) => {\n if (dialogState === RiScDialogStates.Create) {\n createNewRiSc(data, switchOn, [selectedRiScType]);\n } else if (dialogState === RiScDialogStates.Delete) {\n deleteRiSc(() =>\n selectRiSc(riScs && riScs.length > 0 ? riScs[0].id : ''),\n );\n } else {\n // Do manual comparison of contents, as the sopsConfig field contains many values from the backend that are not\n // used or set by the frontend.\n // Check if the additional Age keys are equal, using the single important field, `recipient`\n const areAgeKeysEqual = isDeeplyEqual(\n data.sopsConfig.age?.map(age => age.recipient).sort(),\n selectedRiSc?.sopsConfig.age?.map(age => age.recipient).sort(),\n );\n\n // Check if the GCP keys are equal, using the two important fields, `resource_id` and `created_at`.\n // Comparison uses dictionaries, where resource ids are keys and created at dates are values\n const areGCPKeysEqual = isDeeplyEqual(\n Object.fromEntries(\n data.sopsConfig.gcp_kms?.map(key => [\n key.resource_id,\n key.created_at,\n ]) ?? [],\n ),\n Object.fromEntries(\n selectedRiSc?.sopsConfig.gcp_kms?.map(key => [\n key.resource_id,\n key.created_at,\n ]) ?? [],\n ),\n );\n\n // Only update the risc if it has changed\n if (\n !isDeeplyEqual(data, selectedRiSc, ['sopsConfig']) ||\n !areGCPKeysEqual ||\n !areAgeKeysEqual\n ) {\n updateRiSc(data);\n }\n }\n onClose();\n });\n\n if (dialogState === RiScDialogStates.Create) {\n return (\n <Dialog open={true} onClose={onClose} disablePortal>\n <DialogTitle>{t('rosDialog.titleNew')}</DialogTitle>\n <RiScStepper activeStep={activeStep}>\n <DialogContent\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n paddingX: 1,\n paddingY: 0.5,\n }}\n >\n {activeStep === 0 && (\n <ConfigInitialRisc\n dialogState={dialogState}\n switchOn={switchOn}\n setSwitchOn={setSwitchOn}\n setValue={setValue}\n selectedRiScType={selectedRiScType}\n setSelectedRiScType={setSelectedRiScType}\n />\n )}\n {activeStep === 1 && (\n <ConfigRiscInfo\n dialogState={dialogState}\n register={register}\n errors={errors}\n setValue={setValue}\n watch={watch}\n />\n )}\n {activeStep === 2 && (\n <ConfigEncryptionDialog\n gcpCryptoKeys={gcpCryptoKeys}\n setValue={setValue}\n state={dialogState}\n register={register}\n errors={errors}\n />\n )}\n </DialogContent>\n </RiScStepper>\n <DialogActions sx={dialogActions}>\n <Button size=\"medium\" variant=\"secondary\" onClick={onClose}>\n {t('dictionary.cancel')}\n </Button>\n <Flex>\n <Button\n size=\"medium\"\n variant=\"secondary\"\n isDisabled={activeStep === 0}\n onClick={handleBack}\n >\n {t('dictionary.previous')}\n </Button>\n {activeStep < 2 ? (\n <Button size=\"medium\" variant=\"primary\" onClick={handleNext}>\n {t('dictionary.next')}\n </Button>\n ) : (\n <Button size=\"medium\" variant=\"primary\" onClick={handleFinish}>\n {t('dictionary.save')}\n </Button>\n )}\n </Flex>\n </DialogActions>\n </Dialog>\n );\n }\n\n if (dialogState === RiScDialogStates.Delete) {\n return (\n <Dialog open={true} onClose={onClose} disablePortal>\n <DialogTitle>{t('deleteDialog.title')}</DialogTitle>\n <DialogContent>\n <DialogContent>{t('deleteDialog.confirmationMessage')}</DialogContent>\n </DialogContent>\n <DialogActions>\n <Button size=\"medium\" variant=\"secondary\" onClick={onClose}>\n {t('dictionary.cancel')}\n </Button>\n <Button size=\"medium\" variant=\"primary\" onClick={handleFinish}>\n {t('dictionary.delete')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n\n if (dialogState === RiScDialogStates.EditRiscInfo) {\n return (\n <Dialog open={true} onClose={onClose} disablePortal>\n <DialogTitle>\n <Flex direction=\"column\">{t('rosDialog.titleEdit')}</Flex>\n </DialogTitle>\n <DialogContent\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n width: '100%',\n paddingX: 4,\n paddingY: 3,\n }}\n >\n <ConfigRiscInfo\n dialogState={dialogState}\n register={register}\n errors={errors}\n setValue={setValue}\n watch={watch}\n />\n </DialogContent>\n <DialogActions sx={dialogActions}>\n <Button\n size=\"medium\"\n variant=\"tertiary\"\n onClick={onDelete}\n style={{ color: '#d32f2f', paddingLeft: 0 }}\n >\n <i className=\"ri-delete-bin-line\" style={{ fontSize: '16px' }} />\n {t('contentHeader.deleteButton')}\n </Button>\n <Flex>\n <Button size=\"medium\" variant=\"secondary\" onClick={onClose}>\n {t('dictionary.cancel')}\n </Button>\n <Button size=\"medium\" variant=\"primary\" onClick={handleFinish}>\n {t('dictionary.save')}\n </Button>\n </Flex>\n </DialogActions>\n </Dialog>\n );\n }\n\n if (dialogState === RiScDialogStates.EditEncryption) {\n return (\n <Dialog open={true} onClose={onClose} disablePortal>\n <DialogTitle>{t('rosDialog.editEncryption')}</DialogTitle>\n <DialogContent\n sx={{ display: 'flex', flexDirection: 'column', gap: '16px' }}\n >\n <ConfigEncryptionDialog\n gcpCryptoKeys={gcpCryptoKeys}\n sopsData={selectedRiSc?.sopsConfig}\n setValue={setValue}\n state={dialogState}\n register={register}\n errors={errors}\n />\n </DialogContent>\n <DialogActions sx={dialogActions}>\n <Button size=\"medium\" variant=\"secondary\" onClick={onClose}>\n {t('dictionary.cancel')}\n </Button>\n <Button size=\"medium\" variant=\"primary\" onClick={handleFinish}>\n {t('dictionary.save')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n\n return null;\n}\n"],"names":["RiScDialogStates"],"mappings":"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"}
1
+ {"version":3,"file":"RiScDialog.esm.js","sources":["../../../src/components/riScDialog/RiScDialog.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { DefaultRiScType, RiScWithMetadata } from '../../utils/types';\nimport { emptyRiSc, isDeeplyEqual } from '../../utils/utilityfunctions';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useRiScs } from '../../contexts/RiScContext';\nimport { useForm } from 'react-hook-form';\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 { dialogActions } from '../common/mixins';\nimport { Step, StepLabel, Stepper } from '@mui/material';\nimport ConfigEncryptionDialog from './ConfigEncryptionDialog';\nimport ConfigRiscInfo from './ConfigRiscInfo';\nimport ConfigInitialRisc from './ConfigInitialRisc';\nimport { Flex, Box, Button } from '@backstage/ui';\n\nexport enum RiScDialogStates {\n Closed = 0,\n Create = 1,\n EditRiscInfo = 2,\n SelectInitialRisc = 3,\n EditEncryption = 4,\n Delete = 5,\n}\n\ninterface RiScDialogProps {\n onClose: () => void;\n dialogState: RiScDialogStates;\n onDelete: () => void;\n}\n\nfunction RiScStepper({\n children,\n activeStep,\n}: {\n children: React.ReactNode;\n activeStep: number;\n}) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const steps = [\n t('rosDialog.initialRiscTitle'),\n t('rosDialog.stepRiscDetails'),\n t('rosDialog.stepEncryption'),\n ];\n return (\n <Box style={{ width: '100%', padding: '24px' }}>\n <Stepper activeStep={activeStep} alternativeLabel>\n {steps.map(label => (\n <Step key={label}>\n <StepLabel>{label}</StepLabel>\n </Step>\n ))}\n </Stepper>\n {children}\n </Box>\n );\n}\n\nexport function RiScDialog({\n onClose,\n dialogState,\n onDelete,\n}: RiScDialogProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const {\n selectedRiSc,\n riScs,\n selectRiSc,\n createNewRiSc,\n deleteRiSc,\n updateRiSc,\n gcpCryptoKeys,\n } = useRiScs();\n const {\n register,\n handleSubmit,\n watch,\n formState: { errors },\n setValue,\n } = useForm<RiScWithMetadata>({\n defaultValues:\n dialogState === RiScDialogStates.EditRiscInfo ||\n dialogState === RiScDialogStates.EditEncryption\n ? selectedRiSc!\n : {\n content: emptyRiSc(),\n sopsConfig: {\n shamir_threshold: 2,\n },\n },\n mode: 'onBlur',\n });\n\n const [activeStep, setActiveStep] = useState(0);\n\n const [switchOn, setSwitchOn] = useState(false);\n\n const [selectedRiScType, setSelectedRiScType] = useState<DefaultRiScType>(\n DefaultRiScType.Standard,\n );\n\n const handleNext = handleSubmit(\n () => {\n if (activeStep === 0) {\n setActiveStep(1);\n }\n if (activeStep === 1) {\n setActiveStep(2);\n }\n },\n // Continue to step 1 even if there are errors, as long as there are no errors in step 0 (the content)\n validationErrors => {\n if (activeStep === 0 && validationErrors.content === undefined) {\n setActiveStep(1);\n }\n },\n );\n\n function handleBack() {\n if (activeStep === 1) {\n setActiveStep(0);\n }\n if (activeStep === 2) {\n setActiveStep(1);\n }\n }\n\n const handleFinish = handleSubmit((data: RiScWithMetadata) => {\n if (dialogState === RiScDialogStates.Create) {\n createNewRiSc(data, switchOn, [selectedRiScType]);\n } else if (dialogState === RiScDialogStates.Delete) {\n deleteRiSc(() =>\n selectRiSc(riScs && riScs.length > 0 ? riScs[0].id : ''),\n );\n } else {\n // Do manual comparison of contents, as the sopsConfig field contains many values from the backend that are not\n // used or set by the frontend.\n // Check if the additional Age keys are equal, using the single important field, `recipient`\n const areAgeKeysEqual = isDeeplyEqual(\n data.sopsConfig.age?.map(age => age.recipient).sort(),\n selectedRiSc?.sopsConfig.age?.map(age => age.recipient).sort(),\n );\n\n // Check if the GCP keys are equal, using the two important fields, `resource_id` and `created_at`.\n // Comparison uses dictionaries, where resource ids are keys and created at dates are values\n const areGCPKeysEqual = isDeeplyEqual(\n Object.fromEntries(\n data.sopsConfig.gcp_kms?.map(key => [\n key.resource_id,\n key.created_at,\n ]) ?? [],\n ),\n Object.fromEntries(\n selectedRiSc?.sopsConfig.gcp_kms?.map(key => [\n key.resource_id,\n key.created_at,\n ]) ?? [],\n ),\n );\n\n // Only update the risc if it has changed\n if (\n !isDeeplyEqual(data, selectedRiSc, ['sopsConfig']) ||\n !areGCPKeysEqual ||\n !areAgeKeysEqual\n ) {\n updateRiSc(data);\n }\n }\n onClose();\n });\n\n if (dialogState === RiScDialogStates.Create) {\n return (\n <Dialog open={true} onClose={onClose}>\n <DialogTitle>{t('rosDialog.titleNew')}</DialogTitle>\n <RiScStepper activeStep={activeStep}>\n <DialogContent\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n paddingX: 1,\n paddingY: 0.5,\n }}\n >\n {activeStep === 0 && (\n <ConfigInitialRisc\n dialogState={dialogState}\n switchOn={switchOn}\n setSwitchOn={setSwitchOn}\n setValue={setValue}\n selectedRiScType={selectedRiScType}\n setSelectedRiScType={setSelectedRiScType}\n />\n )}\n {activeStep === 1 && (\n <ConfigRiscInfo\n dialogState={dialogState}\n register={register}\n errors={errors}\n setValue={setValue}\n watch={watch}\n />\n )}\n {activeStep === 2 && (\n <ConfigEncryptionDialog\n gcpCryptoKeys={gcpCryptoKeys}\n setValue={setValue}\n state={dialogState}\n register={register}\n errors={errors}\n />\n )}\n </DialogContent>\n </RiScStepper>\n <DialogActions sx={dialogActions}>\n <Button size=\"medium\" variant=\"secondary\" onClick={onClose}>\n {t('dictionary.cancel')}\n </Button>\n <Flex>\n <Button\n size=\"medium\"\n variant=\"secondary\"\n isDisabled={activeStep === 0}\n onClick={handleBack}\n >\n {t('dictionary.previous')}\n </Button>\n {activeStep < 2 ? (\n <Button size=\"medium\" variant=\"primary\" onClick={handleNext}>\n {t('dictionary.next')}\n </Button>\n ) : (\n <Button size=\"medium\" variant=\"primary\" onClick={handleFinish}>\n {t('dictionary.save')}\n </Button>\n )}\n </Flex>\n </DialogActions>\n </Dialog>\n );\n }\n\n if (dialogState === RiScDialogStates.Delete) {\n return (\n <Dialog open={true} onClose={onClose}>\n <DialogTitle>{t('deleteDialog.title')}</DialogTitle>\n <DialogContent>\n <DialogContent>{t('deleteDialog.confirmationMessage')}</DialogContent>\n </DialogContent>\n <DialogActions>\n <Button size=\"medium\" variant=\"secondary\" onClick={onClose}>\n {t('dictionary.cancel')}\n </Button>\n <Button size=\"medium\" variant=\"primary\" onClick={handleFinish}>\n {t('dictionary.delete')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n\n if (dialogState === RiScDialogStates.EditRiscInfo) {\n return (\n <Dialog open={true} onClose={onClose}>\n <DialogTitle>\n <Flex direction=\"column\">{t('rosDialog.titleEdit')}</Flex>\n </DialogTitle>\n <DialogContent\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n width: '100%',\n paddingX: 4,\n paddingY: 3,\n }}\n >\n <ConfigRiscInfo\n dialogState={dialogState}\n register={register}\n errors={errors}\n setValue={setValue}\n watch={watch}\n />\n </DialogContent>\n <DialogActions sx={dialogActions}>\n <Button\n size=\"medium\"\n variant=\"tertiary\"\n onClick={onDelete}\n style={{ color: '#d32f2f', paddingLeft: 0 }}\n >\n <i className=\"ri-delete-bin-line\" style={{ fontSize: '16px' }} />\n {t('contentHeader.deleteButton')}\n </Button>\n <Flex>\n <Button size=\"medium\" variant=\"secondary\" onClick={onClose}>\n {t('dictionary.cancel')}\n </Button>\n <Button size=\"medium\" variant=\"primary\" onClick={handleFinish}>\n {t('dictionary.save')}\n </Button>\n </Flex>\n </DialogActions>\n </Dialog>\n );\n }\n\n if (dialogState === RiScDialogStates.EditEncryption) {\n return (\n <Dialog open={true} onClose={onClose}>\n <DialogTitle>{t('rosDialog.editEncryption')}</DialogTitle>\n <DialogContent\n sx={{ display: 'flex', flexDirection: 'column', gap: '16px' }}\n >\n <ConfigEncryptionDialog\n gcpCryptoKeys={gcpCryptoKeys}\n sopsData={selectedRiSc?.sopsConfig}\n setValue={setValue}\n state={dialogState}\n register={register}\n errors={errors}\n />\n </DialogContent>\n <DialogActions sx={dialogActions}>\n <Button size=\"medium\" variant=\"secondary\" onClick={onClose}>\n {t('dictionary.cancel')}\n </Button>\n <Button size=\"medium\" variant=\"primary\" onClick={handleFinish}>\n {t('dictionary.save')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n\n return null;\n}\n"],"names":["RiScDialogStates"],"mappings":"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"}
@@ -20,51 +20,42 @@ function SupportDialog() {
20
20
  children: t("supportDialog.title")
21
21
  }
22
22
  ),
23
- /* @__PURE__ */ jsxs(
24
- Dialog,
25
- {
26
- open,
27
- onClose: () => setOpen(false),
28
- fullWidth: true,
29
- disablePortal: true,
30
- children: [
31
- /* @__PURE__ */ jsx(Flex, { px: "24px", pt: "18px", pb: "10px", children: /* @__PURE__ */ jsx(Text, { as: "h3", variant: "title-small", weight: "bold", children: t("supportDialog.title") }) }),
32
- /* @__PURE__ */ jsxs(DialogContent, { children: [
33
- /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: "8px", children: [
34
- /* @__PURE__ */ jsx(
35
- SupportEntry,
23
+ /* @__PURE__ */ jsxs(Dialog, { open, onClose: () => setOpen(false), fullWidth: true, children: [
24
+ /* @__PURE__ */ jsx(Flex, { px: "24px", pt: "18px", pb: "10px", children: /* @__PURE__ */ jsx(Text, { as: "h3", variant: "title-small", weight: "bold", children: t("supportDialog.title") }) }),
25
+ /* @__PURE__ */ jsxs(DialogContent, { children: [
26
+ /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: "8px", children: [
27
+ /* @__PURE__ */ jsx(
28
+ SupportEntry,
29
+ {
30
+ label: t("supportDialog.entries.riscFeedbackChannel.title"),
31
+ url: "https://kartverketgroup.slack.com/archives/C075KCPTURY",
32
+ icon: /* @__PURE__ */ jsx("i", { className: "ri-slack-fill", style: { fontSize: "x-large" } }),
33
+ description: t(
34
+ "supportDialog.entries.riscFeedbackChannel.description"
35
+ )
36
+ }
37
+ ),
38
+ /* @__PURE__ */ jsx(
39
+ SupportEntry,
40
+ {
41
+ label: t("supportDialog.entries.riscDocumentation.title"),
42
+ url: "https://kartverket.atlassian.net/wiki/spaces/SIK/pages/1645608980/Koden+r+RoS",
43
+ icon: /* @__PURE__ */ jsx(
44
+ "i",
36
45
  {
37
- label: t("supportDialog.entries.riscFeedbackChannel.title"),
38
- url: "https://kartverketgroup.slack.com/archives/C075KCPTURY",
39
- icon: /* @__PURE__ */ jsx("i", { className: "ri-slack-fill", style: { fontSize: "x-large" } }),
40
- description: t(
41
- "supportDialog.entries.riscFeedbackChannel.description"
42
- )
46
+ className: "ri-article-line",
47
+ style: { fontSize: "x-large" }
43
48
  }
44
49
  ),
45
- /* @__PURE__ */ jsx(
46
- SupportEntry,
47
- {
48
- label: t("supportDialog.entries.riscDocumentation.title"),
49
- url: "https://kartverket.atlassian.net/wiki/spaces/SIK/pages/1645608980/Koden+r+RoS",
50
- icon: /* @__PURE__ */ jsx(
51
- "i",
52
- {
53
- className: "ri-article-line",
54
- style: { fontSize: "x-large" }
55
- }
56
- ),
57
- description: t(
58
- "supportDialog.entries.riscDocumentation.description"
59
- )
60
- }
50
+ description: t(
51
+ "supportDialog.entries.riscDocumentation.description"
61
52
  )
62
- ] }),
63
- /* @__PURE__ */ jsx("div", { style: { marginTop: "24px" }, children: /* @__PURE__ */ jsx(FeedbackDialog, { open, setOpen }) })
64
- ] })
65
- ]
66
- }
67
- )
53
+ }
54
+ )
55
+ ] }),
56
+ /* @__PURE__ */ jsx("div", { style: { marginTop: "24px" }, children: /* @__PURE__ */ jsx(FeedbackDialog, { open, setOpen }) })
57
+ ] })
58
+ ] })
68
59
  ] });
69
60
  }
70
61
  function SupportEntry(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"SupportDialog.esm.js","sources":["../../../src/components/riScDialog/SupportDialog.tsx"],"sourcesContent":["import { ReactElement, useState } from 'react';\nimport { Button, Card, CardHeader, Flex, Text } from '@backstage/ui';\nimport { Dialog, DialogContent } from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations.ts';\nimport { Link } from '@mui/material';\nimport { FeedbackDialog } from '../riScPlugin/FeedbackDialog.tsx';\n\nexport function SupportDialog() {\n const [open, setOpen] = useState(false);\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n return (\n <>\n <Button\n onClick={() => setOpen(true)}\n variant=\"secondary\"\n iconStart={<i className=\"ri-question-line\" />}\n >\n {t('supportDialog.title')}\n </Button>\n <Dialog\n open={open}\n onClose={() => setOpen(false)}\n fullWidth\n disablePortal\n >\n <Flex px=\"24px\" pt=\"18px\" pb=\"10px\">\n <Text as=\"h3\" variant=\"title-small\" weight=\"bold\">\n {t('supportDialog.title')}\n </Text>\n </Flex>\n <DialogContent>\n <Flex direction=\"column\" gap=\"8px\">\n <SupportEntry\n label={t('supportDialog.entries.riscFeedbackChannel.title')}\n url=\"https://kartverketgroup.slack.com/archives/C075KCPTURY\"\n icon={\n <i className=\"ri-slack-fill\" style={{ fontSize: 'x-large' }} />\n }\n description={t(\n 'supportDialog.entries.riscFeedbackChannel.description',\n )}\n />\n <SupportEntry\n label={t('supportDialog.entries.riscDocumentation.title')}\n url=\"https://kartverket.atlassian.net/wiki/spaces/SIK/pages/1645608980/Koden+r+RoS\"\n icon={\n <i\n className=\"ri-article-line\"\n style={{ fontSize: 'x-large' }}\n />\n }\n description={t(\n 'supportDialog.entries.riscDocumentation.description',\n )}\n />\n </Flex>\n <div style={{ marginTop: '24px' }}>\n <FeedbackDialog open={open} setOpen={setOpen} />\n </div>\n </DialogContent>\n </Dialog>\n </>\n );\n}\n\ntype SupportEntryProps = {\n label: string;\n url: string;\n description: string;\n icon: ReactElement;\n};\n\nfunction SupportEntry(props: SupportEntryProps) {\n return (\n <Card>\n <CardHeader>\n <Flex align=\"center\">\n {props.icon}\n <Flex direction=\"column\" gap=\"0\">\n <Text weight=\"bold\">{props.label}</Text>\n <Link href={props.url} target=\"_blank\">\n {props.description}\n </Link>\n </Flex>\n </Flex>\n </CardHeader>\n </Card>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SupportDialog.esm.js","sources":["../../../src/components/riScDialog/SupportDialog.tsx"],"sourcesContent":["import { ReactElement, useState } from 'react';\nimport { Button, Card, CardHeader, Flex, Text } from '@backstage/ui';\nimport { Dialog, DialogContent } from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations.ts';\nimport { Link } from '@mui/material';\nimport { FeedbackDialog } from '../riScPlugin/FeedbackDialog.tsx';\n\nexport function SupportDialog() {\n const [open, setOpen] = useState(false);\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n return (\n <>\n <Button\n onClick={() => setOpen(true)}\n variant=\"secondary\"\n iconStart={<i className=\"ri-question-line\" />}\n >\n {t('supportDialog.title')}\n </Button>\n <Dialog open={open} onClose={() => setOpen(false)} fullWidth>\n <Flex px=\"24px\" pt=\"18px\" pb=\"10px\">\n <Text as=\"h3\" variant=\"title-small\" weight=\"bold\">\n {t('supportDialog.title')}\n </Text>\n </Flex>\n <DialogContent>\n <Flex direction=\"column\" gap=\"8px\">\n <SupportEntry\n label={t('supportDialog.entries.riscFeedbackChannel.title')}\n url=\"https://kartverketgroup.slack.com/archives/C075KCPTURY\"\n icon={\n <i className=\"ri-slack-fill\" style={{ fontSize: 'x-large' }} />\n }\n description={t(\n 'supportDialog.entries.riscFeedbackChannel.description',\n )}\n />\n <SupportEntry\n label={t('supportDialog.entries.riscDocumentation.title')}\n url=\"https://kartverket.atlassian.net/wiki/spaces/SIK/pages/1645608980/Koden+r+RoS\"\n icon={\n <i\n className=\"ri-article-line\"\n style={{ fontSize: 'x-large' }}\n />\n }\n description={t(\n 'supportDialog.entries.riscDocumentation.description',\n )}\n />\n </Flex>\n <div style={{ marginTop: '24px' }}>\n <FeedbackDialog open={open} setOpen={setOpen} />\n </div>\n </DialogContent>\n </Dialog>\n </>\n );\n}\n\ntype SupportEntryProps = {\n label: string;\n url: string;\n description: string;\n icon: ReactElement;\n};\n\nfunction SupportEntry(props: SupportEntryProps) {\n return (\n <Card>\n <CardHeader>\n <Flex align=\"center\">\n {props.icon}\n <Flex direction=\"column\" gap=\"0\">\n <Text weight=\"bold\">{props.label}</Text>\n <Link href={props.url} target=\"_blank\">\n {props.description}\n </Link>\n </Flex>\n </Flex>\n </CardHeader>\n </Card>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ const RiScMigrationDialog = ({
26
26
  function handleCheckboxInput(event) {
27
27
  setSaveMigration(event.target.checked);
28
28
  }
29
- return /* @__PURE__ */ jsxs(Dialog, { maxWidth: "md", open: openDialog, disablePortal: true, children: [
29
+ return /* @__PURE__ */ jsxs(Dialog, { maxWidth: "md", open: openDialog, children: [
30
30
  /* @__PURE__ */ jsx(DialogTitle, { children: t("migrationDialog.title") }),
31
31
  /* @__PURE__ */ jsxs(DialogContent, { children: [
32
32
  /* @__PURE__ */ jsx(Box, { sx: { marginBottom: "16px" }, children: /* @__PURE__ */ jsx(Text, { variant: "body-large", children: t("migrationDialog.description") }) }),
@@ -1 +1 @@
1
- {"version":3,"file":"MigrationDialog.esm.js","sources":["../../../src/components/riScInfo/MigrationDialog.tsx"],"sourcesContent":["import { useState } from 'react';\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 Checkbox from '@mui/material/Checkbox';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Box from '@mui/material/Box';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { MigrationStatus } from '../../utils/types';\nimport { dialogActions } from '../common/mixins';\nimport { RiScMigrationChanges } from './migrations/RiScMigrationChanges.tsx';\nimport { Text } from '@backstage/ui';\n\ninterface RiScMigrationDialogProps {\n openDialog: boolean;\n handleCancel: () => void;\n handleUpdate: () => void;\n migrationStatus: MigrationStatus;\n}\n\nexport const RiScMigrationDialog = ({\n openDialog,\n handleCancel,\n handleUpdate,\n migrationStatus,\n}: RiScMigrationDialogProps) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const [saveMigration, setSaveMigration] = useState<boolean>(false);\n\n function handleCheckboxInput(event: React.ChangeEvent<HTMLInputElement>) {\n setSaveMigration(event.target.checked);\n }\n\n return (\n <Dialog maxWidth=\"md\" open={openDialog} disablePortal>\n <DialogTitle>{t('migrationDialog.title')}</DialogTitle>\n <DialogContent>\n <Box sx={{ marginBottom: '16px' }}>\n <Text variant=\"body-large\">{t('migrationDialog.description')}</Text>\n </Box>\n <RiScMigrationChanges migrationStatus={migrationStatus} />\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} style={{ paddingTop: '16px' }}>\n <Button variant=\"outlined\" color=\"primary\" onClick={handleCancel}>\n {t('dictionary.cancel')}\n </Button>\n <Button\n variant=\"contained\"\n onClick={handleUpdate}\n disabled={!saveMigration}\n >\n {t('dictionary.confirm')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAwBO,MAAM,sBAAsB,CAAC;AAAA,EAClC,UAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,KAAgC;AAC9B,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAkB,KAAK,CAAA;AAEjE,EAAA,SAAS,oBAAoB,KAAA,EAA4C;AACvE,IAAA,gBAAA,CAAiB,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA,EACvC;AAEA,EAAA,4BACG,MAAA,EAAA,EAAO,QAAA,EAAS,MAAK,IAAA,EAAM,UAAA,EAAY,eAAa,IAAA,EACnD,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,WAAA,EAAA,EAAa,QAAA,EAAA,CAAA,CAAE,uBAAuB,CAAA,EAAE,CAAA;AAAA,yBACxC,aAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,GAAA,EAAA,EAAI,EAAA,EAAI,EAAE,YAAA,EAAc,MAAA,EAAO,EAC9B,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,YAAA,EAAc,QAAA,EAAA,CAAA,CAAE,6BAA6B,GAAE,CAAA,EAC/D,CAAA;AAAA,sBACA,GAAA,CAAC,wBAAqB,eAAA,EAAkC,CAAA;AAAA,sBACxD,GAAA,CAAC,KAAA,EAAA,EAAM,QAAA,EAAS,MAAA,EAAO,MAAM,KAAA,EAC3B,QAAA,kBAAA,GAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UACC,OAAA,kBACE,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAS,aAAA;AAAA,cACT,QAAA,EAAU;AAAA;AAAA,WACZ;AAAA,UAEF,KAAA,EAAO,EAAE,+BAA+B;AAAA;AAAA,OAC1C,EACF;AAAA,KAAA,EACF,CAAA;AAAA,oBACA,IAAA,CAAC,iBAAc,EAAA,EAAI,aAAA,EAAe,OAAO,EAAE,UAAA,EAAY,QAAO,EAC5D,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,SAAQ,UAAA,EAAW,KAAA,EAAM,WAAU,OAAA,EAAS,YAAA,EACjD,QAAA,EAAA,CAAA,CAAE,mBAAmB,CAAA,EACxB,CAAA;AAAA,sBACA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,WAAA;AAAA,UACR,OAAA,EAAS,YAAA;AAAA,UACT,UAAU,CAAC,aAAA;AAAA,UAEV,YAAE,oBAAoB;AAAA;AAAA;AACzB,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"MigrationDialog.esm.js","sources":["../../../src/components/riScInfo/MigrationDialog.tsx"],"sourcesContent":["import { useState } from 'react';\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 Checkbox from '@mui/material/Checkbox';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Box from '@mui/material/Box';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { MigrationStatus } from '../../utils/types';\nimport { dialogActions } from '../common/mixins';\nimport { RiScMigrationChanges } from './migrations/RiScMigrationChanges.tsx';\nimport { Text } from '@backstage/ui';\n\ninterface RiScMigrationDialogProps {\n openDialog: boolean;\n handleCancel: () => void;\n handleUpdate: () => void;\n migrationStatus: MigrationStatus;\n}\n\nexport const RiScMigrationDialog = ({\n openDialog,\n handleCancel,\n handleUpdate,\n migrationStatus,\n}: RiScMigrationDialogProps) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const [saveMigration, setSaveMigration] = useState<boolean>(false);\n\n function handleCheckboxInput(event: React.ChangeEvent<HTMLInputElement>) {\n setSaveMigration(event.target.checked);\n }\n\n return (\n <Dialog maxWidth=\"md\" open={openDialog}>\n <DialogTitle>{t('migrationDialog.title')}</DialogTitle>\n <DialogContent>\n <Box sx={{ marginBottom: '16px' }}>\n <Text variant=\"body-large\">{t('migrationDialog.description')}</Text>\n </Box>\n <RiScMigrationChanges migrationStatus={migrationStatus} />\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} style={{ paddingTop: '16px' }}>\n <Button variant=\"outlined\" color=\"primary\" onClick={handleCancel}>\n {t('dictionary.cancel')}\n </Button>\n <Button\n variant=\"contained\"\n onClick={handleUpdate}\n disabled={!saveMigration}\n >\n {t('dictionary.confirm')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAwBO,MAAM,sBAAsB,CAAC;AAAA,EAClC,UAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,KAAgC;AAC9B,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAkB,KAAK,CAAA;AAEjE,EAAA,SAAS,oBAAoB,KAAA,EAA4C;AACvE,IAAA,gBAAA,CAAiB,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA,EACvC;AAEA,EAAA,uBACE,IAAA,CAAC,MAAA,EAAA,EAAO,QAAA,EAAS,IAAA,EAAK,MAAM,UAAA,EAC1B,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,WAAA,EAAA,EAAa,QAAA,EAAA,CAAA,CAAE,uBAAuB,CAAA,EAAE,CAAA;AAAA,yBACxC,aAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,GAAA,EAAA,EAAI,EAAA,EAAI,EAAE,YAAA,EAAc,MAAA,EAAO,EAC9B,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,YAAA,EAAc,QAAA,EAAA,CAAA,CAAE,6BAA6B,GAAE,CAAA,EAC/D,CAAA;AAAA,sBACA,GAAA,CAAC,wBAAqB,eAAA,EAAkC,CAAA;AAAA,sBACxD,GAAA,CAAC,KAAA,EAAA,EAAM,QAAA,EAAS,MAAA,EAAO,MAAM,KAAA,EAC3B,QAAA,kBAAA,GAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UACC,OAAA,kBACE,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAS,aAAA;AAAA,cACT,QAAA,EAAU;AAAA;AAAA,WACZ;AAAA,UAEF,KAAA,EAAO,EAAE,+BAA+B;AAAA;AAAA,OAC1C,EACF;AAAA,KAAA,EACF,CAAA;AAAA,oBACA,IAAA,CAAC,iBAAc,EAAA,EAAI,aAAA,EAAe,OAAO,EAAE,UAAA,EAAY,QAAO,EAC5D,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,SAAQ,UAAA,EAAW,KAAA,EAAM,WAAU,OAAA,EAAS,YAAA,EACjD,QAAA,EAAA,CAAA,CAAE,mBAAmB,CAAA,EACxB,CAAA;AAAA,sBACA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,WAAA;AAAA,UACR,OAAA,EAAS,YAAA;AAAA,UACT,UAAU,CAAC,aAAA;AAAA,UAEV,YAAE,oBAAoB;AAAA;AAAA;AACzB,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -25,7 +25,7 @@ const RiScPublishDialog = ({
25
25
  function handleCheckboxInput(event) {
26
26
  setRiskOwnerApproves(event.target.checked);
27
27
  }
28
- return /* @__PURE__ */ jsxs(Dialog, { maxWidth: "md", open: openDialog, disablePortal: true, children: [
28
+ return /* @__PURE__ */ jsxs(Dialog, { maxWidth: "md", open: openDialog, children: [
29
29
  /* @__PURE__ */ jsx(DialogTitle, { children: isDeletion ? t("publishDialog.titleDelete") : t("publishDialog.titleUpdate") }),
30
30
  /* @__PURE__ */ jsx(DialogContent, { sx: { marginBottom: "16px" }, children: /* @__PURE__ */ jsxs(Fragment, { children: [
31
31
  !isDeletion && /* @__PURE__ */ jsx(RiScDifferenceDialog, { differenceFetchState }),
@@ -1 +1 @@
1
- {"version":3,"file":"PublishDialog.esm.js","sources":["../../../src/components/riScInfo/PublishDialog.tsx"],"sourcesContent":["import { ReactComponentElement, useState } from 'react';\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 Checkbox from '@mui/material/Checkbox';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport { DifferenceFetchState } from '../../utils/types';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { RiScDifferenceDialog } from './riScStatus/RiScDifferenceDialog';\nimport { dialogActions } from '../common/mixins';\n\ninterface RiScPublishDialogProps {\n openDialog: boolean;\n isDeletion: boolean;\n handleCancel: () => void;\n handlePublish: () => void;\n differenceFetchState: DifferenceFetchState;\n}\n\nexport const RiScPublishDialog = ({\n openDialog,\n isDeletion,\n handleCancel,\n handlePublish,\n differenceFetchState,\n}: RiScPublishDialogProps): ReactComponentElement<any> => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const [riskOwnerApproves, setRiskOwnerApproves] = useState<boolean>(false);\n\n function handleCheckboxInput(event: React.ChangeEvent<HTMLInputElement>) {\n setRiskOwnerApproves(event.target.checked);\n }\n\n return (\n <Dialog maxWidth=\"md\" open={openDialog} disablePortal>\n <DialogTitle>\n {isDeletion\n ? t('publishDialog.titleDelete')\n : t('publishDialog.titleUpdate')}\n </DialogTitle>\n <DialogContent sx={{ marginBottom: '16px' }}>\n <>\n {!isDeletion && (\n <RiScDifferenceDialog differenceFetchState={differenceFetchState} />\n )}\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={\n isDeletion\n ? t('publishDialog.checkboxLabelDelete')\n : t('publishDialog.checkboxLabelUpdate')\n }\n />\n </Alert>\n </>\n </DialogContent>\n <DialogActions sx={dialogActions}>\n <Button variant=\"outlined\" color=\"primary\" onClick={handleCancel}>\n {t('dictionary.cancel')}\n </Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={handlePublish}\n disabled={!riskOwnerApproves}\n >\n {t('dictionary.confirm')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAuBO,MAAM,oBAAoB,CAAC;AAAA,EAChC,UAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,KAA0D;AACxD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAAkB,KAAK,CAAA;AAEzE,EAAA,SAAS,oBAAoB,KAAA,EAA4C;AACvE,IAAA,oBAAA,CAAqB,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA,EAC3C;AAEA,EAAA,4BACG,MAAA,EAAA,EAAO,QAAA,EAAS,MAAK,IAAA,EAAM,UAAA,EAAY,eAAa,IAAA,EACnD,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,eACE,QAAA,EAAA,UAAA,GACG,CAAA,CAAE,2BAA2B,CAAA,GAC7B,CAAA,CAAE,2BAA2B,CAAA,EACnC,CAAA;AAAA,wBACC,aAAA,EAAA,EAAc,EAAA,EAAI,EAAE,YAAA,EAAc,MAAA,IACjC,QAAA,kBAAA,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,CAAC,UAAA,oBACA,GAAA,CAAC,oBAAA,EAAA,EAAqB,oBAAA,EAA4C,CAAA;AAAA,sBAEpE,GAAA,CAAC,KAAA,EAAA,EAAM,QAAA,EAAS,MAAA,EAAO,MAAM,KAAA,EAC3B,QAAA,kBAAA,GAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UACC,OAAA,kBACE,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAM,SAAA;AAAA,cACN,OAAA,EAAS,iBAAA;AAAA,cACT,QAAA,EAAU;AAAA;AAAA,WACZ;AAAA,UAEF,OACE,UAAA,GACI,CAAA,CAAE,mCAAmC,CAAA,GACrC,EAAE,mCAAmC;AAAA;AAAA,OAE7C,EACF;AAAA,KAAA,EACF,CAAA,EACF,CAAA;AAAA,oBACA,IAAA,CAAC,aAAA,EAAA,EAAc,EAAA,EAAI,aAAA,EACjB,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,SAAQ,UAAA,EAAW,KAAA,EAAM,WAAU,OAAA,EAAS,YAAA,EACjD,QAAA,EAAA,CAAA,CAAE,mBAAmB,CAAA,EACxB,CAAA;AAAA,sBACA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,WAAA;AAAA,UACR,KAAA,EAAM,SAAA;AAAA,UACN,OAAA,EAAS,aAAA;AAAA,UACT,UAAU,CAAC,iBAAA;AAAA,UAEV,YAAE,oBAAoB;AAAA;AAAA;AACzB,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"PublishDialog.esm.js","sources":["../../../src/components/riScInfo/PublishDialog.tsx"],"sourcesContent":["import { ReactComponentElement, useState } from 'react';\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 Checkbox from '@mui/material/Checkbox';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport { DifferenceFetchState } from '../../utils/types';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { RiScDifferenceDialog } from './riScStatus/RiScDifferenceDialog';\nimport { dialogActions } from '../common/mixins';\n\ninterface RiScPublishDialogProps {\n openDialog: boolean;\n isDeletion: boolean;\n handleCancel: () => void;\n handlePublish: () => void;\n differenceFetchState: DifferenceFetchState;\n}\n\nexport const RiScPublishDialog = ({\n openDialog,\n isDeletion,\n handleCancel,\n handlePublish,\n differenceFetchState,\n}: RiScPublishDialogProps): ReactComponentElement<any> => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const [riskOwnerApproves, setRiskOwnerApproves] = useState<boolean>(false);\n\n function handleCheckboxInput(event: React.ChangeEvent<HTMLInputElement>) {\n setRiskOwnerApproves(event.target.checked);\n }\n\n return (\n <Dialog maxWidth=\"md\" open={openDialog}>\n <DialogTitle>\n {isDeletion\n ? t('publishDialog.titleDelete')\n : t('publishDialog.titleUpdate')}\n </DialogTitle>\n <DialogContent sx={{ marginBottom: '16px' }}>\n <>\n {!isDeletion && (\n <RiScDifferenceDialog differenceFetchState={differenceFetchState} />\n )}\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={\n isDeletion\n ? t('publishDialog.checkboxLabelDelete')\n : t('publishDialog.checkboxLabelUpdate')\n }\n />\n </Alert>\n </>\n </DialogContent>\n <DialogActions sx={dialogActions}>\n <Button variant=\"outlined\" color=\"primary\" onClick={handleCancel}>\n {t('dictionary.cancel')}\n </Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={handlePublish}\n disabled={!riskOwnerApproves}\n >\n {t('dictionary.confirm')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAuBO,MAAM,oBAAoB,CAAC;AAAA,EAChC,UAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,KAA0D;AACxD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAAkB,KAAK,CAAA;AAEzE,EAAA,SAAS,oBAAoB,KAAA,EAA4C;AACvE,IAAA,oBAAA,CAAqB,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA,EAC3C;AAEA,EAAA,uBACE,IAAA,CAAC,MAAA,EAAA,EAAO,QAAA,EAAS,IAAA,EAAK,MAAM,UAAA,EAC1B,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,eACE,QAAA,EAAA,UAAA,GACG,CAAA,CAAE,2BAA2B,CAAA,GAC7B,CAAA,CAAE,2BAA2B,CAAA,EACnC,CAAA;AAAA,wBACC,aAAA,EAAA,EAAc,EAAA,EAAI,EAAE,YAAA,EAAc,MAAA,IACjC,QAAA,kBAAA,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,CAAC,UAAA,oBACA,GAAA,CAAC,oBAAA,EAAA,EAAqB,oBAAA,EAA4C,CAAA;AAAA,sBAEpE,GAAA,CAAC,KAAA,EAAA,EAAM,QAAA,EAAS,MAAA,EAAO,MAAM,KAAA,EAC3B,QAAA,kBAAA,GAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UACC,OAAA,kBACE,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAM,SAAA;AAAA,cACN,OAAA,EAAS,iBAAA;AAAA,cACT,QAAA,EAAU;AAAA;AAAA,WACZ;AAAA,UAEF,OACE,UAAA,GACI,CAAA,CAAE,mCAAmC,CAAA,GACrC,EAAE,mCAAmC;AAAA;AAAA,OAE7C,EACF;AAAA,KAAA,EACF,CAAA,EACF,CAAA;AAAA,oBACA,IAAA,CAAC,aAAA,EAAA,EAAc,EAAA,EAAI,aAAA,EACjB,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,SAAQ,UAAA,EAAW,KAAA,EAAM,WAAU,OAAA,EAAS,YAAA,EACjD,QAAA,EAAA,CAAA,CAAE,mBAAmB,CAAA,EACxB,CAAA;AAAA,sBACA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,WAAA;AAAA,UACR,KAAA,EAAM,SAAA;AAAA,UACN,OAAA,EAAS,aAAA;AAAA,UACT,UAAU,CAAC,iBAAA;AAAA,UAEV,YAAE,oBAAoB;AAAA;AAAA;AACzB,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -38,6 +38,13 @@ function RiScActionChange({ action, type }) {
38
38
  title: t("scenarioDrawer.action.lastUpdated"),
39
39
  value: parsedDateTime
40
40
  }
41
+ ),
42
+ /* @__PURE__ */ jsx(
43
+ ChangeSetProperty,
44
+ {
45
+ title: t("migrationDialog.migration51.lastUpdatedBy"),
46
+ value: action.lastUpdatedBy
47
+ }
41
48
  )
42
49
  ] });
43
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RiScActionChange.esm.js","sources":["../../../../src/components/riScInfo/changeset/RiScActionChange.tsx"],"sourcesContent":["import { Action } from '../../../utils/types';\nimport { ChangeSetBox } from './components/ChangeSetBox.tsx';\nimport { ChangeSetTag } from './components/ChangeSetTag.tsx';\nimport { ChangeSetTags } from './components/ChangeSetTags.tsx';\nimport { ChangeSetBoxTitle } from './components/ChangeSetBoxTitle.tsx';\nimport { ChangeSetProperty } from './components/ChangeSetProperty.tsx';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../../utils/translations.ts';\nimport { formatDate } from '../../../utils/utilityfunctions.ts';\n\ninterface RiScWholeActionChangeProps {\n action: Action;\n type: 'ADDED' | 'DELETED';\n}\n\nexport function RiScActionChange({ action, type }: RiScWholeActionChangeProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const parsedDateTime = action.lastUpdated\n ? formatDate(action.lastUpdated)\n : t('scenarioDrawer.action.notUpdated');\n\n return (\n <ChangeSetBox type=\"secondary\">\n <ChangeSetTags>\n {type === 'ADDED' ? (\n <ChangeSetTag text={t('dictionary.added')} type=\"added\" />\n ) : (\n <ChangeSetTag text={t('dictionary.removed')} type=\"delete\" />\n )}\n <ChangeSetTag text={t('dictionary.action')} type=\"primary\" />\n </ChangeSetTags>\n <ChangeSetBoxTitle title={action.title} />\n <ChangeSetProperty\n title={t('dictionary.description')}\n value={action.description}\n />\n {action.url && (\n <ChangeSetProperty title={t('dictionary.url')} value={action.url} />\n )}\n <ChangeSetProperty\n title={t('dictionary.status')}\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n value={t(`actionStatus.${action.status}`)}\n />\n <ChangeSetProperty\n title={t('scenarioDrawer.action.lastUpdated')}\n value={parsedDateTime}\n />\n </ChangeSetBox>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;AAeO,SAAS,gBAAA,CAAiB,EAAE,MAAA,EAAQ,IAAA,EAAK,EAA+B;AAC7E,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM,cAAA,GAAiB,OAAO,WAAA,GAC1B,UAAA,CAAW,OAAO,WAAW,CAAA,GAC7B,EAAE,kCAAkC,CAAA;AAExC,EAAA,uBACE,IAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAK,WAAA,EACjB,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,aAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,IAAA,KAAS,0BACR,GAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAM,CAAA,CAAE,kBAAkB,CAAA,EAAG,IAAA,EAAK,OAAA,EAAQ,CAAA,uBAEvD,YAAA,EAAA,EAAa,IAAA,EAAM,EAAE,oBAAoB,CAAA,EAAG,MAAK,QAAA,EAAS,CAAA;AAAA,0BAE5D,YAAA,EAAA,EAAa,IAAA,EAAM,EAAE,mBAAmB,CAAA,EAAG,MAAK,SAAA,EAAU;AAAA,KAAA,EAC7D,CAAA;AAAA,oBACA,GAAA,CAAC,iBAAA,EAAA,EAAkB,KAAA,EAAO,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,oBACxC,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,wBAAwB,CAAA;AAAA,QACjC,OAAO,MAAA,CAAO;AAAA;AAAA,KAChB;AAAA,IACC,MAAA,CAAO,GAAA,oBACN,GAAA,CAAC,iBAAA,EAAA,EAAkB,KAAA,EAAO,EAAE,gBAAgB,CAAA,EAAG,KAAA,EAAO,MAAA,CAAO,GAAA,EAAK,CAAA;AAAA,oBAEpE,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,mBAAmB,CAAA;AAAA,QAE5B,KAAA,EAAO,CAAA,CAAE,CAAA,aAAA,EAAgB,MAAA,CAAO,MAAM,CAAA,CAAE;AAAA;AAAA,KAC1C;AAAA,oBACA,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,mCAAmC,CAAA;AAAA,QAC5C,KAAA,EAAO;AAAA;AAAA;AACT,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"RiScActionChange.esm.js","sources":["../../../../src/components/riScInfo/changeset/RiScActionChange.tsx"],"sourcesContent":["import { Action } from '../../../utils/types';\nimport { ChangeSetBox } from './components/ChangeSetBox.tsx';\nimport { ChangeSetTag } from './components/ChangeSetTag.tsx';\nimport { ChangeSetTags } from './components/ChangeSetTags.tsx';\nimport { ChangeSetBoxTitle } from './components/ChangeSetBoxTitle.tsx';\nimport { ChangeSetProperty } from './components/ChangeSetProperty.tsx';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../../utils/translations.ts';\nimport { formatDate } from '../../../utils/utilityfunctions.ts';\n\ninterface RiScWholeActionChangeProps {\n action: Action;\n type: 'ADDED' | 'DELETED';\n}\n\nexport function RiScActionChange({ action, type }: RiScWholeActionChangeProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const parsedDateTime = action.lastUpdated\n ? formatDate(action.lastUpdated)\n : t('scenarioDrawer.action.notUpdated');\n\n return (\n <ChangeSetBox type=\"secondary\">\n <ChangeSetTags>\n {type === 'ADDED' ? (\n <ChangeSetTag text={t('dictionary.added')} type=\"added\" />\n ) : (\n <ChangeSetTag text={t('dictionary.removed')} type=\"delete\" />\n )}\n <ChangeSetTag text={t('dictionary.action')} type=\"primary\" />\n </ChangeSetTags>\n <ChangeSetBoxTitle title={action.title} />\n <ChangeSetProperty\n title={t('dictionary.description')}\n value={action.description}\n />\n {action.url && (\n <ChangeSetProperty title={t('dictionary.url')} value={action.url} />\n )}\n <ChangeSetProperty\n title={t('dictionary.status')}\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n value={t(`actionStatus.${action.status}`)}\n />\n <ChangeSetProperty\n title={t('scenarioDrawer.action.lastUpdated')}\n value={parsedDateTime}\n />\n <ChangeSetProperty\n title={t('migrationDialog.migration51.lastUpdatedBy')}\n value={action.lastUpdatedBy}\n />\n </ChangeSetBox>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;AAeO,SAAS,gBAAA,CAAiB,EAAE,MAAA,EAAQ,IAAA,EAAK,EAA+B;AAC7E,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM,cAAA,GAAiB,OAAO,WAAA,GAC1B,UAAA,CAAW,OAAO,WAAW,CAAA,GAC7B,EAAE,kCAAkC,CAAA;AAExC,EAAA,uBACE,IAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAK,WAAA,EACjB,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,aAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,IAAA,KAAS,0BACR,GAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAM,CAAA,CAAE,kBAAkB,CAAA,EAAG,IAAA,EAAK,OAAA,EAAQ,CAAA,uBAEvD,YAAA,EAAA,EAAa,IAAA,EAAM,EAAE,oBAAoB,CAAA,EAAG,MAAK,QAAA,EAAS,CAAA;AAAA,0BAE5D,YAAA,EAAA,EAAa,IAAA,EAAM,EAAE,mBAAmB,CAAA,EAAG,MAAK,SAAA,EAAU;AAAA,KAAA,EAC7D,CAAA;AAAA,oBACA,GAAA,CAAC,iBAAA,EAAA,EAAkB,KAAA,EAAO,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,oBACxC,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,wBAAwB,CAAA;AAAA,QACjC,OAAO,MAAA,CAAO;AAAA;AAAA,KAChB;AAAA,IACC,MAAA,CAAO,GAAA,oBACN,GAAA,CAAC,iBAAA,EAAA,EAAkB,KAAA,EAAO,EAAE,gBAAgB,CAAA,EAAG,KAAA,EAAO,MAAA,CAAO,GAAA,EAAK,CAAA;AAAA,oBAEpE,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,mBAAmB,CAAA;AAAA,QAE5B,KAAA,EAAO,CAAA,CAAE,CAAA,aAAA,EAAgB,MAAA,CAAO,MAAM,CAAA,CAAE;AAAA;AAAA,KAC1C;AAAA,oBACA,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,mCAAmC,CAAA;AAAA,QAC5C,KAAA,EAAO;AAAA;AAAA,KACT;AAAA,oBACA,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,2CAA2C,CAAA;AAAA,QACpD,OAAO,MAAA,CAAO;AAAA;AAAA;AAChB,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -45,6 +45,13 @@ function RiScActionChangeSet({ action }) {
45
45
  property: action.lastUpdated,
46
46
  valueFormatter: (actionValue) => actionValue ? formatDate(actionValue) : t("scenarioDrawer.action.notUpdated")
47
47
  }
48
+ ),
49
+ /* @__PURE__ */ jsx(
50
+ ChangeSetTrackedProperty,
51
+ {
52
+ title: t("migrationDialog.migration51.lastUpdatedBy"),
53
+ property: action.lastUpdatedBy
54
+ }
48
55
  )
49
56
  ] });
50
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RiScActionChangeSet.esm.js","sources":["../../../../src/components/riScInfo/changeset/RiScActionChangeSet.tsx"],"sourcesContent":["import { ActionChange } from '../../../utils/types.ts';\nimport { ChangeSetBox } from './components/ChangeSetBox.tsx';\nimport { ChangeSetTags } from './components/ChangeSetTags.tsx';\nimport { ChangeSetTag } from './components/ChangeSetTag.tsx';\nimport { ChangeSetTrackedProperty } from './components/ChangeSetTrackedProperty.tsx';\nimport { ChangeSetChangedTitle } from './components/ChangeSetChangedTitle.tsx';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../../utils/translations.ts';\nimport { formatDate } from '../../../utils/utilityfunctions.ts';\n\ninterface RiScActionChangeSetProps {\n action: ActionChange;\n}\n\nexport function RiScActionChangeSet({ action }: RiScActionChangeSetProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n return (\n <ChangeSetBox type=\"secondary\">\n <ChangeSetTags>\n <ChangeSetTag text={t('dictionary.action')} type=\"primary\" />\n </ChangeSetTags>\n <ChangeSetChangedTitle title={action.title} />\n <ChangeSetTrackedProperty\n title={t('dictionary.description')}\n property={action.description}\n multiline={true}\n stringOnUndefinedProperty={t('comparisonDialog.noDescription')}\n />\n <ChangeSetTrackedProperty\n title={t('dictionary.url')}\n property={action.url}\n stringOnUndefinedProperty={t('comparisonDialog.noURL')}\n />\n <ChangeSetTrackedProperty\n title={t('dictionary.status')}\n property={action.status}\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n valueFormatter={actionValue => t(`actionStatus.${actionValue}`)}\n />\n <ChangeSetTrackedProperty\n title={t('scenarioDrawer.action.lastUpdated')}\n property={action.lastUpdated}\n valueFormatter={actionValue =>\n actionValue\n ? formatDate(actionValue)\n : t('scenarioDrawer.action.notUpdated')\n }\n />\n </ChangeSetBox>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;AAcO,SAAS,mBAAA,CAAoB,EAAE,MAAA,EAAO,EAA6B;AACxE,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,uBACE,IAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAK,WAAA,EACjB,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,aAAA,EAAA,EACC,8BAAC,YAAA,EAAA,EAAa,IAAA,EAAM,EAAE,mBAAmB,CAAA,EAAG,IAAA,EAAK,SAAA,EAAU,CAAA,EAC7D,CAAA;AAAA,oBACA,GAAA,CAAC,qBAAA,EAAA,EAAsB,KAAA,EAAO,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,oBAC5C,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,wBAAwB,CAAA;AAAA,QACjC,UAAU,MAAA,CAAO,WAAA;AAAA,QACjB,SAAA,EAAW,IAAA;AAAA,QACX,yBAAA,EAA2B,EAAE,gCAAgC;AAAA;AAAA,KAC/D;AAAA,oBACA,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,gBAAgB,CAAA;AAAA,QACzB,UAAU,MAAA,CAAO,GAAA;AAAA,QACjB,yBAAA,EAA2B,EAAE,wBAAwB;AAAA;AAAA,KACvD;AAAA,oBACA,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,mBAAmB,CAAA;AAAA,QAC5B,UAAU,MAAA,CAAO,MAAA;AAAA,QAEjB,cAAA,EAAgB,CAAA,WAAA,KAAe,CAAA,CAAE,CAAA,aAAA,EAAgB,WAAW,CAAA,CAAE;AAAA;AAAA,KAChE;AAAA,oBACA,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,mCAAmC,CAAA;AAAA,QAC5C,UAAU,MAAA,CAAO,WAAA;AAAA,QACjB,gBAAgB,CAAA,WAAA,KACd,WAAA,GACI,WAAW,WAAW,CAAA,GACtB,EAAE,kCAAkC;AAAA;AAAA;AAE5C,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"RiScActionChangeSet.esm.js","sources":["../../../../src/components/riScInfo/changeset/RiScActionChangeSet.tsx"],"sourcesContent":["import { ActionChange } from '../../../utils/types.ts';\nimport { ChangeSetBox } from './components/ChangeSetBox.tsx';\nimport { ChangeSetTags } from './components/ChangeSetTags.tsx';\nimport { ChangeSetTag } from './components/ChangeSetTag.tsx';\nimport { ChangeSetTrackedProperty } from './components/ChangeSetTrackedProperty.tsx';\nimport { ChangeSetChangedTitle } from './components/ChangeSetChangedTitle.tsx';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../../utils/translations.ts';\nimport { formatDate } from '../../../utils/utilityfunctions.ts';\n\ninterface RiScActionChangeSetProps {\n action: ActionChange;\n}\n\nexport function RiScActionChangeSet({ action }: RiScActionChangeSetProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n return (\n <ChangeSetBox type=\"secondary\">\n <ChangeSetTags>\n <ChangeSetTag text={t('dictionary.action')} type=\"primary\" />\n </ChangeSetTags>\n <ChangeSetChangedTitle title={action.title} />\n <ChangeSetTrackedProperty\n title={t('dictionary.description')}\n property={action.description}\n multiline={true}\n stringOnUndefinedProperty={t('comparisonDialog.noDescription')}\n />\n <ChangeSetTrackedProperty\n title={t('dictionary.url')}\n property={action.url}\n stringOnUndefinedProperty={t('comparisonDialog.noURL')}\n />\n <ChangeSetTrackedProperty\n title={t('dictionary.status')}\n property={action.status}\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n valueFormatter={actionValue => t(`actionStatus.${actionValue}`)}\n />\n <ChangeSetTrackedProperty\n title={t('scenarioDrawer.action.lastUpdated')}\n property={action.lastUpdated}\n valueFormatter={actionValue =>\n actionValue\n ? formatDate(actionValue)\n : t('scenarioDrawer.action.notUpdated')\n }\n />\n <ChangeSetTrackedProperty\n title={t('migrationDialog.migration51.lastUpdatedBy')}\n property={action.lastUpdatedBy}\n />\n </ChangeSetBox>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;AAcO,SAAS,mBAAA,CAAoB,EAAE,MAAA,EAAO,EAA6B;AACxE,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,uBACE,IAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAK,WAAA,EACjB,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,aAAA,EAAA,EACC,8BAAC,YAAA,EAAA,EAAa,IAAA,EAAM,EAAE,mBAAmB,CAAA,EAAG,IAAA,EAAK,SAAA,EAAU,CAAA,EAC7D,CAAA;AAAA,oBACA,GAAA,CAAC,qBAAA,EAAA,EAAsB,KAAA,EAAO,MAAA,CAAO,KAAA,EAAO,CAAA;AAAA,oBAC5C,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,wBAAwB,CAAA;AAAA,QACjC,UAAU,MAAA,CAAO,WAAA;AAAA,QACjB,SAAA,EAAW,IAAA;AAAA,QACX,yBAAA,EAA2B,EAAE,gCAAgC;AAAA;AAAA,KAC/D;AAAA,oBACA,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,gBAAgB,CAAA;AAAA,QACzB,UAAU,MAAA,CAAO,GAAA;AAAA,QACjB,yBAAA,EAA2B,EAAE,wBAAwB;AAAA;AAAA,KACvD;AAAA,oBACA,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,mBAAmB,CAAA;AAAA,QAC5B,UAAU,MAAA,CAAO,MAAA;AAAA,QAEjB,cAAA,EAAgB,CAAA,WAAA,KAAe,CAAA,CAAE,CAAA,aAAA,EAAgB,WAAW,CAAA,CAAE;AAAA;AAAA,KAChE;AAAA,oBACA,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,mCAAmC,CAAA;AAAA,QAC5C,UAAU,MAAA,CAAO,WAAA;AAAA,QACjB,gBAAgB,CAAA,WAAA,KACd,WAAA,GACI,WAAW,WAAW,CAAA,GACtB,EAAE,kCAAkC;AAAA;AAAA,KAE5C;AAAA,oBACA,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,2CAA2C,CAAA;AAAA,QACpD,UAAU,MAAA,CAAO;AAAA;AAAA;AACnB,GAAA,EACF,CAAA;AAEJ;;;;"}