@kartverket/backstage-plugin-risk-scorecard 3.1.6 → 3.2.0

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 (116) hide show
  1. package/dist/components/common/DualButton.esm.js +58 -0
  2. package/dist/components/common/DualButton.esm.js.map +1 -0
  3. package/dist/components/riScInfo/MigrationDialog.esm.js +2 -28
  4. package/dist/components/riScInfo/MigrationDialog.esm.js.map +1 -1
  5. package/dist/components/riScInfo/PublishDialog.esm.js +2 -2
  6. package/dist/components/riScInfo/PublishDialog.esm.js.map +1 -1
  7. package/dist/components/riScInfo/changeset/RiScActionChange.esm.js +46 -0
  8. package/dist/components/riScInfo/changeset/RiScActionChange.esm.js.map +1 -0
  9. package/dist/components/riScInfo/changeset/RiScActionChangeSet.esm.js +53 -0
  10. package/dist/components/riScInfo/changeset/RiScActionChangeSet.esm.js.map +1 -0
  11. package/dist/components/riScInfo/changeset/RiScChangeSet.esm.js +57 -0
  12. package/dist/components/riScInfo/changeset/RiScChangeSet.esm.js.map +1 -0
  13. package/dist/components/riScInfo/changeset/RiScRiskChange.esm.js +46 -0
  14. package/dist/components/riScInfo/changeset/RiScRiskChange.esm.js.map +1 -0
  15. package/dist/components/riScInfo/changeset/RiScRiskChangeSet.esm.js +49 -0
  16. package/dist/components/riScInfo/changeset/RiScRiskChangeSet.esm.js.map +1 -0
  17. package/dist/components/riScInfo/changeset/RiScScenarioChange.esm.js +86 -0
  18. package/dist/components/riScInfo/changeset/RiScScenarioChange.esm.js.map +1 -0
  19. package/dist/components/riScInfo/changeset/RiScScenarioChangeSet.esm.js +130 -0
  20. package/dist/components/riScInfo/changeset/RiScScenarioChangeSet.esm.js.map +1 -0
  21. package/dist/components/riScInfo/changeset/RiScValuationChange.esm.js +57 -0
  22. package/dist/components/riScInfo/changeset/RiScValuationChange.esm.js.map +1 -0
  23. package/dist/components/riScInfo/changeset/components/ChangeSetAddedProperty.esm.js +14 -0
  24. package/dist/components/riScInfo/changeset/components/ChangeSetAddedProperty.esm.js.map +1 -0
  25. package/dist/components/riScInfo/changeset/components/ChangeSetAddedValue.esm.js +10 -0
  26. package/dist/components/riScInfo/changeset/components/ChangeSetAddedValue.esm.js.map +1 -0
  27. package/dist/components/riScInfo/changeset/components/ChangeSetBox.esm.js.map +1 -0
  28. package/dist/components/riScInfo/changeset/components/ChangeSetBoxTitle.esm.js.map +1 -0
  29. package/dist/components/riScInfo/changeset/components/ChangeSetChangedProperty.esm.js +25 -0
  30. package/dist/components/riScInfo/changeset/components/ChangeSetChangedProperty.esm.js.map +1 -0
  31. package/dist/components/riScInfo/changeset/components/ChangeSetChangedTitle.esm.js +22 -0
  32. package/dist/components/riScInfo/changeset/components/ChangeSetChangedTitle.esm.js.map +1 -0
  33. package/dist/components/riScInfo/changeset/components/ChangeSetChangedValue.esm.js +21 -0
  34. package/dist/components/riScInfo/changeset/components/ChangeSetChangedValue.esm.js.map +1 -0
  35. package/dist/components/riScInfo/changeset/components/ChangeSetColumn.esm.js +19 -0
  36. package/dist/components/riScInfo/changeset/components/ChangeSetColumn.esm.js.map +1 -0
  37. package/dist/components/riScInfo/changeset/components/ChangeSetProperty.esm.js +16 -0
  38. package/dist/components/riScInfo/changeset/components/ChangeSetProperty.esm.js.map +1 -0
  39. package/dist/components/riScInfo/changeset/components/ChangeSetPropertyBase.esm.js +26 -0
  40. package/dist/components/riScInfo/changeset/components/ChangeSetPropertyBase.esm.js.map +1 -0
  41. package/dist/components/riScInfo/{migrations → changeset}/components/ChangeSetRemovedProperty.esm.js +2 -1
  42. package/dist/components/riScInfo/changeset/components/ChangeSetRemovedProperty.esm.js.map +1 -0
  43. package/dist/components/riScInfo/changeset/components/ChangeSetRemovedValue.esm.js +12 -0
  44. package/dist/components/riScInfo/changeset/components/ChangeSetRemovedValue.esm.js.map +1 -0
  45. package/dist/components/riScInfo/changeset/components/ChangeSetSimpleBox.esm.js +20 -0
  46. package/dist/components/riScInfo/changeset/components/ChangeSetSimpleBox.esm.js.map +1 -0
  47. package/dist/components/riScInfo/{migrations → changeset}/components/ChangeSetTag.esm.js +6 -7
  48. package/dist/components/riScInfo/changeset/components/ChangeSetTag.esm.js.map +1 -0
  49. package/dist/components/riScInfo/changeset/components/ChangeSetTags.esm.js.map +1 -0
  50. package/dist/components/riScInfo/changeset/components/ChangeSetText.esm.js.map +1 -0
  51. package/dist/components/riScInfo/changeset/components/ChangeSetTitle.esm.js.map +1 -0
  52. package/dist/components/riScInfo/changeset/components/ChangeSetTrackedProperty.esm.js +43 -0
  53. package/dist/components/riScInfo/changeset/components/ChangeSetTrackedProperty.esm.js.map +1 -0
  54. package/dist/components/riScInfo/changeset/components/ChangeSetTwoColumnSplit.esm.js +12 -0
  55. package/dist/components/riScInfo/changeset/components/ChangeSetTwoColumnSplit.esm.js.map +1 -0
  56. package/dist/components/riScInfo/changeset/components/ChangeSetValue.esm.js +18 -0
  57. package/dist/components/riScInfo/changeset/components/ChangeSetValue.esm.js.map +1 -0
  58. package/dist/components/riScInfo/{migrations → changeset}/components/changeSetStyles.esm.js +39 -10
  59. package/dist/components/riScInfo/changeset/components/changeSetStyles.esm.js.map +1 -0
  60. package/dist/components/riScInfo/migrations/RiScMigrationChanges.esm.js +33 -0
  61. package/dist/components/riScInfo/migrations/RiScMigrationChanges.esm.js.map +1 -0
  62. package/dist/components/riScInfo/migrations/RiScMigrationChanges40.esm.js +12 -30
  63. package/dist/components/riScInfo/migrations/RiScMigrationChanges40.esm.js.map +1 -1
  64. package/dist/components/riScInfo/migrations/RiScMigrationChanges41.esm.js +62 -80
  65. package/dist/components/riScInfo/migrations/RiScMigrationChanges41.esm.js.map +1 -1
  66. package/dist/components/riScInfo/migrations/RiScMigrationChanges42.esm.js +47 -0
  67. package/dist/components/riScInfo/migrations/RiScMigrationChanges42.esm.js.map +1 -0
  68. package/dist/components/riScInfo/migrations/components/MigrationTitle.esm.js +3 -3
  69. package/dist/components/riScInfo/migrations/components/MigrationTitle.esm.js.map +1 -1
  70. package/dist/components/riScInfo/migrations/components/migrationStyles.esm.js +19 -0
  71. package/dist/components/riScInfo/migrations/components/migrationStyles.esm.js.map +1 -0
  72. package/dist/components/riScInfo/riScStatus/RiScDifferenceDialog.esm.js +55 -71
  73. package/dist/components/riScInfo/riScStatus/RiScDifferenceDialog.esm.js.map +1 -1
  74. package/dist/components/riScInfo/riScStatus/RiScStatusComponent.esm.js +10 -3
  75. package/dist/components/riScInfo/riScStatus/RiScStatusComponent.esm.js.map +1 -1
  76. package/dist/components/riScPlugin/FeedbackDialog.esm.js +78 -0
  77. package/dist/components/riScPlugin/FeedbackDialog.esm.js.map +1 -0
  78. package/dist/components/riScPlugin/RiScPlugin.esm.js +6 -2
  79. package/dist/components/riScPlugin/RiScPlugin.esm.js.map +1 -1
  80. package/dist/components/scenarioDrawer/components/ActionBox.esm.js +175 -70
  81. package/dist/components/scenarioDrawer/components/ActionBox.esm.js.map +1 -1
  82. package/dist/components/scenarioDrawer/components/ActionFormItem.esm.js +8 -0
  83. package/dist/components/scenarioDrawer/components/ActionFormItem.esm.js.map +1 -1
  84. package/dist/components/scenarioWizard/steps/ActionsStep.esm.js +8 -0
  85. package/dist/components/scenarioWizard/steps/ActionsStep.esm.js.map +1 -1
  86. package/dist/contexts/ScenarioContext.esm.js +5 -4
  87. package/dist/contexts/ScenarioContext.esm.js.map +1 -1
  88. package/dist/utils/DTOs.esm.js +3 -2
  89. package/dist/utils/DTOs.esm.js.map +1 -1
  90. package/dist/utils/constants.esm.js +1 -1
  91. package/dist/utils/constants.esm.js.map +1 -1
  92. package/dist/utils/hooks.esm.js +13 -1
  93. package/dist/utils/hooks.esm.js.map +1 -1
  94. package/dist/utils/translations.esm.js +93 -9
  95. package/dist/utils/translations.esm.js.map +1 -1
  96. package/dist/utils/types.esm.js.map +1 -1
  97. package/dist/utils/utilityfunctions.esm.js +4 -1
  98. package/dist/utils/utilityfunctions.esm.js.map +1 -1
  99. package/package.json +2 -2
  100. package/dist/components/riScInfo/migrations/components/ChangeSetBox.esm.js.map +0 -1
  101. package/dist/components/riScInfo/migrations/components/ChangeSetBoxTitle.esm.js.map +0 -1
  102. package/dist/components/riScInfo/migrations/components/ChangeSetChangedValue.esm.js +0 -30
  103. package/dist/components/riScInfo/migrations/components/ChangeSetChangedValue.esm.js.map +0 -1
  104. package/dist/components/riScInfo/migrations/components/ChangeSetRemovedProperty.esm.js.map +0 -1
  105. package/dist/components/riScInfo/migrations/components/ChangeSetTag.esm.js.map +0 -1
  106. package/dist/components/riScInfo/migrations/components/ChangeSetTags.esm.js.map +0 -1
  107. package/dist/components/riScInfo/migrations/components/ChangeSetText.esm.js.map +0 -1
  108. package/dist/components/riScInfo/migrations/components/ChangeSetTitle.esm.js.map +0 -1
  109. package/dist/components/riScInfo/migrations/components/changeSetStyles.esm.js.map +0 -1
  110. package/dist/components/riScInfo/riScStatus/DifferenceText.esm.js +0 -102
  111. package/dist/components/riScInfo/riScStatus/DifferenceText.esm.js.map +0 -1
  112. /package/dist/components/riScInfo/{migrations → changeset}/components/ChangeSetBox.esm.js +0 -0
  113. /package/dist/components/riScInfo/{migrations → changeset}/components/ChangeSetBoxTitle.esm.js +0 -0
  114. /package/dist/components/riScInfo/{migrations → changeset}/components/ChangeSetTags.esm.js +0 -0
  115. /package/dist/components/riScInfo/{migrations → changeset}/components/ChangeSetText.esm.js +0 -0
  116. /package/dist/components/riScInfo/{migrations → changeset}/components/ChangeSetTitle.esm.js +0 -0
@@ -0,0 +1,58 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { Button } from '@mui/material';
3
+
4
+ function DualButton({
5
+ propsLeft,
6
+ propsRight,
7
+ className,
8
+ propsCommon,
9
+ ...props
10
+ }) {
11
+ return /* @__PURE__ */ jsxs(
12
+ "div",
13
+ {
14
+ ...props,
15
+ style: {
16
+ display: "flex",
17
+ textWrap: "nowrap",
18
+ gap: "4px",
19
+ ...props.style
20
+ },
21
+ children: [
22
+ /* @__PURE__ */ jsx(
23
+ Button,
24
+ {
25
+ variant: "contained",
26
+ disableElevation: true,
27
+ ...propsCommon,
28
+ ...propsLeft,
29
+ sx: {
30
+ borderTopLeftRadius: "1000px",
31
+ borderBottomLeftRadius: "1000px",
32
+ ...propsLeft?.sx,
33
+ textTransform: "none"
34
+ }
35
+ }
36
+ ),
37
+ /* @__PURE__ */ jsx(
38
+ Button,
39
+ {
40
+ variant: "contained",
41
+ disableElevation: true,
42
+ ...propsCommon,
43
+ ...propsRight,
44
+ sx: {
45
+ borderTopRightRadius: "1000px",
46
+ borderBottomRightRadius: "1000px",
47
+ ...propsRight?.sx,
48
+ textTransform: "none"
49
+ }
50
+ }
51
+ )
52
+ ]
53
+ }
54
+ );
55
+ }
56
+
57
+ export { DualButton };
58
+ //# sourceMappingURL=DualButton.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DualButton.esm.js","sources":["../../../src/components/common/DualButton.tsx"],"sourcesContent":["import { Button, ButtonProps } from '@mui/material';\n\ntype DualButtonProps = {\n propsLeft?: ButtonProps;\n propsRight?: ButtonProps;\n propsCommon?: ButtonProps;\n} & React.HTMLAttributes<HTMLDivElement>;\n\n/** Base component for dual sided button component.\n * props provided serves as configuration for the left and right button.\n * propsCommon applies to both sides.\n * Specificity takes precedence.\n */\nexport function DualButton({\n propsLeft,\n propsRight,\n className,\n propsCommon,\n ...props\n}: DualButtonProps) {\n return (\n <div\n {...props}\n style={{\n display: 'flex',\n textWrap: 'nowrap',\n gap: '4px',\n ...props.style,\n }}\n >\n <Button\n variant=\"contained\"\n disableElevation\n {...propsCommon}\n {...propsLeft}\n sx={{\n borderTopLeftRadius: '1000px',\n borderBottomLeftRadius: '1000px',\n ...propsLeft?.sx,\n textTransform: 'none',\n }}\n />\n <Button\n variant=\"contained\"\n disableElevation\n {...propsCommon}\n {...propsRight}\n sx={{\n borderTopRightRadius: '1000px',\n borderBottomRightRadius: '1000px',\n ...propsRight?.sx,\n textTransform: 'none',\n }}\n />\n </div>\n );\n}\n"],"names":[],"mappings":";;;AAaO,SAAS,UAAW,CAAA;AAAA,EACzB,SAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,GAAG;AACL,CAAoB,EAAA;AAClB,EACE,uBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,KAAO,EAAA;AAAA,QACL,OAAS,EAAA,MAAA;AAAA,QACT,QAAU,EAAA,QAAA;AAAA,QACV,GAAK,EAAA,KAAA;AAAA,QACL,GAAG,KAAM,CAAA;AAAA,OACX;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,OAAQ,EAAA,WAAA;AAAA,YACR,gBAAgB,EAAA,IAAA;AAAA,YACf,GAAG,WAAA;AAAA,YACH,GAAG,SAAA;AAAA,YACJ,EAAI,EAAA;AAAA,cACF,mBAAqB,EAAA,QAAA;AAAA,cACrB,sBAAwB,EAAA,QAAA;AAAA,cACxB,GAAG,SAAW,EAAA,EAAA;AAAA,cACd,aAAe,EAAA;AAAA;AACjB;AAAA,SACF;AAAA,wBACA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,OAAQ,EAAA,WAAA;AAAA,YACR,gBAAgB,EAAA,IAAA;AAAA,YACf,GAAG,WAAA;AAAA,YACH,GAAG,UAAA;AAAA,YACJ,EAAI,EAAA;AAAA,cACF,oBAAsB,EAAA,QAAA;AAAA,cACtB,uBAAyB,EAAA,QAAA;AAAA,cACzB,GAAG,UAAY,EAAA,EAAA;AAAA,cACf,aAAe,EAAA;AAAA;AACjB;AAAA;AACF;AAAA;AAAA,GACF;AAEJ;;;;"}
@@ -13,11 +13,7 @@ import FormControlLabel from '@mui/material/FormControlLabel';
13
13
  import Box from '@mui/material/Box';
14
14
  import { pluginRiScTranslationRef } from '../../utils/translations.esm.js';
15
15
  import { dialogActions } from '../common/mixins.esm.js';
16
- import { RiScMigrationChanges41 } from './migrations/RiScMigrationChanges41.esm.js';
17
- import { ChangeSetBox } from './migrations/components/ChangeSetBox.esm.js';
18
- import { ChangeSetTitle } from './migrations/components/ChangeSetTitle.esm.js';
19
- import { ChangeSetChangedValue } from './migrations/components/ChangeSetChangedValue.esm.js';
20
- import { RiScMigrationChanges40 } from './migrations/RiScMigrationChanges40.esm.js';
16
+ import { RiScMigrationChanges } from './migrations/RiScMigrationChanges.esm.js';
21
17
 
22
18
  const RiScMigrationDialog = ({
23
19
  openDialog,
@@ -34,29 +30,7 @@ const RiScMigrationDialog = ({
34
30
  /* @__PURE__ */ jsx(DialogTitle, { children: t("migrationDialog.title") }),
35
31
  /* @__PURE__ */ jsxs(DialogContent, { children: [
36
32
  /* @__PURE__ */ jsx(Box, { sx: { marginBottom: "16px" }, children: /* @__PURE__ */ jsx(Typography, { children: t("migrationDialog.description") }) }),
37
- /* @__PURE__ */ jsxs("div", { children: [
38
- /* @__PURE__ */ jsx(ChangeSetTitle, { text: t("migrationDialog.schemaVersion") }),
39
- /* @__PURE__ */ jsx(ChangeSetBox, { type: "primary", children: /* @__PURE__ */ jsx(
40
- ChangeSetChangedValue,
41
- {
42
- propertyName: t("migrationDialog.schemaVersion"),
43
- oldValue: migrationStatus.migrationVersions?.fromVersion || "",
44
- newValue: migrationStatus.migrationVersions?.toVersion || ""
45
- }
46
- ) }),
47
- migrationStatus.migrationChanges40 && /* @__PURE__ */ jsx(
48
- RiScMigrationChanges40,
49
- {
50
- changes: migrationStatus.migrationChanges40
51
- }
52
- ),
53
- migrationStatus.migrationChanges41 && /* @__PURE__ */ jsx(
54
- RiScMigrationChanges41,
55
- {
56
- changes: migrationStatus.migrationChanges41
57
- }
58
- )
59
- ] }),
33
+ /* @__PURE__ */ jsx(RiScMigrationChanges, { migrationStatus }),
60
34
  /* @__PURE__ */ jsx(Alert, { severity: "info", icon: false, children: /* @__PURE__ */ jsx(
61
35
  FormControlLabel,
62
36
  {
@@ -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 Typography from '@mui/material/Typography';\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 { RiScMigrationChanges41 } from './migrations/RiScMigrationChanges41.tsx';\nimport { ChangeSetBox } from './migrations/components/ChangeSetBox.tsx';\nimport { ChangeSetTitle } from './migrations/components/ChangeSetTitle.tsx';\nimport { ChangeSetChangedValue } from './migrations/components/ChangeSetChangedValue.tsx';\nimport { RiScMigrationChanges40 } from './migrations/RiScMigrationChanges40.tsx';\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 <Typography>{t('migrationDialog.description')}</Typography>\n </Box>\n <div>\n <ChangeSetTitle text={t('migrationDialog.schemaVersion')} />\n <ChangeSetBox type=\"primary\">\n <ChangeSetChangedValue\n propertyName={t('migrationDialog.schemaVersion')}\n oldValue={migrationStatus.migrationVersions?.fromVersion || ''}\n newValue={migrationStatus.migrationVersions?.toVersion || ''}\n />\n </ChangeSetBox>\n {migrationStatus.migrationChanges40 && (\n <RiScMigrationChanges40\n changes={migrationStatus.migrationChanges40}\n />\n )}\n {migrationStatus.migrationChanges41 && (\n <RiScMigrationChanges41\n changes={migrationStatus.migrationChanges41}\n />\n )}\n </div>\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":"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"}
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 Typography from '@mui/material/Typography';\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';\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 <Typography>{t('migrationDialog.description')}</Typography>\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,CAAgC,KAAA;AAC9B,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAkB,KAAK,CAAA;AAEjE,EAAA,SAAS,oBAAoB,KAA4C,EAAA;AACvE,IAAiB,gBAAA,CAAA,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA;AAGvC,EAAA,uBACG,IAAA,CAAA,MAAA,EAAA,EAAO,QAAS,EAAA,IAAA,EAAK,MAAM,UAC1B,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,WAAA,EAAA,EAAa,QAAE,EAAA,CAAA,CAAA,uBAAuB,CAAE,EAAA,CAAA;AAAA,yBACxC,aACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,GAAA,EAAA,EAAI,EAAI,EAAA,EAAE,YAAc,EAAA,MAAA,EACvB,EAAA,QAAA,kBAAA,GAAA,CAAC,UAAY,EAAA,EAAA,QAAA,EAAA,CAAA,CAAE,6BAA6B,CAAA,EAAE,CAChD,EAAA,CAAA;AAAA,sBACA,GAAA,CAAC,wBAAqB,eAAkC,EAAA,CAAA;AAAA,sBACvD,GAAA,CAAA,KAAA,EAAA,EAAM,QAAS,EAAA,MAAA,EAAO,MAAM,KAC3B,EAAA,QAAA,kBAAA,GAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UACC,OACE,kBAAA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,OAAS,EAAA,aAAA;AAAA,cACT,QAAU,EAAA;AAAA;AAAA,WACZ;AAAA,UAEF,KAAA,EAAO,EAAE,+BAA+B;AAAA;AAAA,OAE5C,EAAA;AAAA,KACF,EAAA,CAAA;AAAA,oBACA,IAAA,CAAC,iBAAc,EAAI,EAAA,aAAA,EAAe,OAAO,EAAE,UAAA,EAAY,QACrD,EAAA,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,MAAA,EAAA,EAAO,SAAQ,UAAW,EAAA,KAAA,EAAM,WAAU,OAAS,EAAA,YAAA,EACjD,QAAE,EAAA,CAAA,CAAA,mBAAmB,CACxB,EAAA,CAAA;AAAA,sBACA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAQ,EAAA,WAAA;AAAA,UACR,OAAS,EAAA,YAAA;AAAA,UACT,UAAU,CAAC,aAAA;AAAA,UAEV,YAAE,oBAAoB;AAAA;AAAA;AACzB,KACF,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -25,9 +25,9 @@ const RiScPublishDialog = ({
25
25
  function handleCheckboxInput(event) {
26
26
  setRiskOwnerApproves(event.target.checked);
27
27
  }
28
- return /* @__PURE__ */ jsxs(Dialog, { open: openDialog, 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
- /* @__PURE__ */ jsx(DialogContent, { children: /* @__PURE__ */ jsxs(Fragment, { children: [
30
+ /* @__PURE__ */ jsx(DialogContent, { sx: { marginBottom: "16px" }, children: /* @__PURE__ */ jsxs(Fragment, { children: [
31
31
  !isDeletion && /* @__PURE__ */ jsx(RiScDifferenceDialog, { differenceFetchState }),
32
32
  /* @__PURE__ */ jsx(Alert, { severity: "info", icon: false, children: /* @__PURE__ */ jsx(
33
33
  FormControlLabel,
@@ -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 open={openDialog}>\n <DialogTitle>\n {isDeletion\n ? t('publishDialog.titleDelete')\n : t('publishDialog.titleUpdate')}\n </DialogTitle>\n <DialogContent>\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,CAA0D,KAAA;AACxD,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAAkB,KAAK,CAAA;AAEzE,EAAA,SAAS,oBAAoB,KAA4C,EAAA;AACvE,IAAqB,oBAAA,CAAA,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA;AAG3C,EACE,uBAAA,IAAA,CAAC,MAAO,EAAA,EAAA,IAAA,EAAM,UACZ,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,eACE,QACG,EAAA,UAAA,GAAA,CAAA,CAAE,2BAA2B,CAC7B,GAAA,CAAA,CAAE,2BAA2B,CACnC,EAAA,CAAA;AAAA,oBACA,GAAA,CAAC,iBACC,QACG,kBAAA,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,MAAC,CAAA,UAAA,oBACC,GAAA,CAAA,oBAAA,EAAA,EAAqB,oBAA4C,EAAA,CAAA;AAAA,sBAEnE,GAAA,CAAA,KAAA,EAAA,EAAM,QAAS,EAAA,MAAA,EAAO,MAAM,KAC3B,EAAA,QAAA,kBAAA,GAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UACC,OACE,kBAAA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,KAAM,EAAA,SAAA;AAAA,cACN,OAAS,EAAA,iBAAA;AAAA,cACT,QAAU,EAAA;AAAA;AAAA,WACZ;AAAA,UAEF,OACE,UACI,GAAA,CAAA,CAAE,mCAAmC,CAAA,GACrC,EAAE,mCAAmC;AAAA;AAAA,OAG/C,EAAA;AAAA,KAAA,EACF,CACF,EAAA,CAAA;AAAA,oBACA,IAAA,CAAC,aAAc,EAAA,EAAA,EAAA,EAAI,aACjB,EAAA,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,MAAA,EAAA,EAAO,SAAQ,UAAW,EAAA,KAAA,EAAM,WAAU,OAAS,EAAA,YAAA,EACjD,QAAE,EAAA,CAAA,CAAA,mBAAmB,CACxB,EAAA,CAAA;AAAA,sBACA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAQ,EAAA,WAAA;AAAA,UACR,KAAM,EAAA,SAAA;AAAA,UACN,OAAS,EAAA,aAAA;AAAA,UACT,UAAU,CAAC,iBAAA;AAAA,UAEV,YAAE,oBAAoB;AAAA;AAAA;AACzB,KACF,EAAA;AAAA,GACF,EAAA,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,CAA0D,KAAA;AACxD,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAAkB,KAAK,CAAA;AAEzE,EAAA,SAAS,oBAAoB,KAA4C,EAAA;AACvE,IAAqB,oBAAA,CAAA,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA;AAG3C,EAAA,uBACG,IAAA,CAAA,MAAA,EAAA,EAAO,QAAS,EAAA,IAAA,EAAK,MAAM,UAC1B,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,eACE,QACG,EAAA,UAAA,GAAA,CAAA,CAAE,2BAA2B,CAC7B,GAAA,CAAA,CAAE,2BAA2B,CACnC,EAAA,CAAA;AAAA,wBACC,aAAc,EAAA,EAAA,EAAA,EAAI,EAAE,YAAc,EAAA,MAAA,IACjC,QACG,kBAAA,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,MAAC,CAAA,UAAA,oBACC,GAAA,CAAA,oBAAA,EAAA,EAAqB,oBAA4C,EAAA,CAAA;AAAA,sBAEnE,GAAA,CAAA,KAAA,EAAA,EAAM,QAAS,EAAA,MAAA,EAAO,MAAM,KAC3B,EAAA,QAAA,kBAAA,GAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UACC,OACE,kBAAA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,KAAM,EAAA,SAAA;AAAA,cACN,OAAS,EAAA,iBAAA;AAAA,cACT,QAAU,EAAA;AAAA;AAAA,WACZ;AAAA,UAEF,OACE,UACI,GAAA,CAAA,CAAE,mCAAmC,CAAA,GACrC,EAAE,mCAAmC;AAAA;AAAA,OAG/C,EAAA;AAAA,KAAA,EACF,CACF,EAAA,CAAA;AAAA,oBACA,IAAA,CAAC,aAAc,EAAA,EAAA,EAAA,EAAI,aACjB,EAAA,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,MAAA,EAAA,EAAO,SAAQ,UAAW,EAAA,KAAA,EAAM,WAAU,OAAS,EAAA,YAAA,EACjD,QAAE,EAAA,CAAA,CAAA,mBAAmB,CACxB,EAAA,CAAA;AAAA,sBACA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAQ,EAAA,WAAA;AAAA,UACR,KAAM,EAAA,SAAA;AAAA,UACN,OAAS,EAAA,aAAA;AAAA,UACT,UAAU,CAAC,iBAAA;AAAA,UAEV,YAAE,oBAAoB;AAAA;AAAA;AACzB,KACF,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,46 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { ChangeSetBox } from './components/ChangeSetBox.esm.js';
3
+ import { ChangeSetTag } from './components/ChangeSetTag.esm.js';
4
+ import { ChangeSetTags } from './components/ChangeSetTags.esm.js';
5
+ import { ChangeSetBoxTitle } from './components/ChangeSetBoxTitle.esm.js';
6
+ import { ChangeSetProperty } from './components/ChangeSetProperty.esm.js';
7
+ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
8
+ import { pluginRiScTranslationRef } from '../../../utils/translations.esm.js';
9
+ import { formatDate } from '../../../utils/utilityfunctions.esm.js';
10
+
11
+ function RiScActionChange({ action, type }) {
12
+ const { t } = useTranslationRef(pluginRiScTranslationRef);
13
+ const parsedDateTime = action.lastUpdated ? formatDate(action.lastUpdated) : t("scenarioDrawer.action.notUpdated");
14
+ return /* @__PURE__ */ jsxs(ChangeSetBox, { type: "secondary", children: [
15
+ /* @__PURE__ */ jsxs(ChangeSetTags, { children: [
16
+ type === "ADDED" ? /* @__PURE__ */ jsx(ChangeSetTag, { text: t("dictionary.added"), type: "added" }) : /* @__PURE__ */ jsx(ChangeSetTag, { text: t("dictionary.removed"), type: "delete" }),
17
+ /* @__PURE__ */ jsx(ChangeSetTag, { text: t("dictionary.action"), type: "primary" })
18
+ ] }),
19
+ /* @__PURE__ */ jsx(ChangeSetBoxTitle, { title: action.title }),
20
+ /* @__PURE__ */ jsx(
21
+ ChangeSetProperty,
22
+ {
23
+ title: t("dictionary.description"),
24
+ value: action.description
25
+ }
26
+ ),
27
+ action.url && /* @__PURE__ */ jsx(ChangeSetProperty, { title: t("dictionary.url"), value: action.url }),
28
+ /* @__PURE__ */ jsx(
29
+ ChangeSetProperty,
30
+ {
31
+ title: t("dictionary.status"),
32
+ value: t(`actionStatus.${action.status}`)
33
+ }
34
+ ),
35
+ /* @__PURE__ */ jsx(
36
+ ChangeSetProperty,
37
+ {
38
+ title: t("scenarioDrawer.action.lastUpdated"),
39
+ value: parsedDateTime
40
+ }
41
+ )
42
+ ] });
43
+ }
44
+
45
+ export { RiScActionChange };
46
+ //# sourceMappingURL=RiScActionChange.esm.js.map
@@ -0,0 +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,gBAAiB,CAAA,EAAE,MAAQ,EAAA,IAAA,EAAoC,EAAA;AAC7E,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAM,MAAA,cAAA,GAAiB,OAAO,WAC1B,GAAA,UAAA,CAAW,OAAO,WAAW,CAAA,GAC7B,EAAE,kCAAkC,CAAA;AAExC,EACE,uBAAA,IAAA,CAAC,YAAa,EAAA,EAAA,IAAA,EAAK,WACjB,EAAA,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,aACE,EAAA,EAAA,QAAA,EAAA;AAAA,MAAA,IAAA,KAAS,0BACP,GAAA,CAAA,YAAA,EAAA,EAAa,IAAM,EAAA,CAAA,CAAE,kBAAkB,CAAG,EAAA,IAAA,EAAK,OAAQ,EAAA,CAAA,uBAEvD,YAAa,EAAA,EAAA,IAAA,EAAM,EAAE,oBAAoB,CAAA,EAAG,MAAK,QAAS,EAAA,CAAA;AAAA,0BAE5D,YAAa,EAAA,EAAA,IAAA,EAAM,EAAE,mBAAmB,CAAA,EAAG,MAAK,SAAU,EAAA;AAAA,KAC7D,EAAA,CAAA;AAAA,oBACC,GAAA,CAAA,iBAAA,EAAA,EAAkB,KAAO,EAAA,MAAA,CAAO,KAAO,EAAA,CAAA;AAAA,oBACxC,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,wBAAwB,CAAA;AAAA,QACjC,OAAO,MAAO,CAAA;AAAA;AAAA,KAChB;AAAA,IACC,MAAA,CAAO,GACN,oBAAA,GAAA,CAAC,iBAAkB,EAAA,EAAA,KAAA,EAAO,EAAE,gBAAgB,CAAA,EAAG,KAAO,EAAA,MAAA,CAAO,GAAK,EAAA,CAAA;AAAA,oBAEpE,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,mBAAmB,CAAA;AAAA,QAE5B,KAAO,EAAA,CAAA,CAAE,CAAgB,aAAA,EAAA,MAAA,CAAO,MAAM,CAAE,CAAA;AAAA;AAAA,KAC1C;AAAA,oBACA,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,mCAAmC,CAAA;AAAA,QAC5C,KAAO,EAAA;AAAA;AAAA;AACT,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,53 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { ChangeSetBox } from './components/ChangeSetBox.esm.js';
3
+ import { ChangeSetTags } from './components/ChangeSetTags.esm.js';
4
+ import { ChangeSetTag } from './components/ChangeSetTag.esm.js';
5
+ import { ChangeSetTrackedProperty } from './components/ChangeSetTrackedProperty.esm.js';
6
+ import { ChangeSetChangedTitle } from './components/ChangeSetChangedTitle.esm.js';
7
+ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
8
+ import { pluginRiScTranslationRef } from '../../../utils/translations.esm.js';
9
+ import { formatDate } from '../../../utils/utilityfunctions.esm.js';
10
+
11
+ function RiScActionChangeSet({ action }) {
12
+ const { t } = useTranslationRef(pluginRiScTranslationRef);
13
+ return /* @__PURE__ */ jsxs(ChangeSetBox, { type: "secondary", children: [
14
+ /* @__PURE__ */ jsx(ChangeSetTags, { children: /* @__PURE__ */ jsx(ChangeSetTag, { text: t("dictionary.action"), type: "primary" }) }),
15
+ /* @__PURE__ */ jsx(ChangeSetChangedTitle, { title: action.title }),
16
+ /* @__PURE__ */ jsx(
17
+ ChangeSetTrackedProperty,
18
+ {
19
+ title: t("dictionary.description"),
20
+ property: action.description,
21
+ multiline: true,
22
+ stringOnUndefinedProperty: t("comparisonDialog.noDescription")
23
+ }
24
+ ),
25
+ /* @__PURE__ */ jsx(
26
+ ChangeSetTrackedProperty,
27
+ {
28
+ title: t("dictionary.url"),
29
+ property: action.url,
30
+ stringOnUndefinedProperty: t("comparisonDialog.noURL")
31
+ }
32
+ ),
33
+ /* @__PURE__ */ jsx(
34
+ ChangeSetTrackedProperty,
35
+ {
36
+ title: t("dictionary.status"),
37
+ property: action.status,
38
+ valueFormatter: (actionValue) => t(`actionStatus.${actionValue}`)
39
+ }
40
+ ),
41
+ /* @__PURE__ */ jsx(
42
+ ChangeSetTrackedProperty,
43
+ {
44
+ title: t("scenarioDrawer.action.lastUpdated"),
45
+ property: action.lastUpdated,
46
+ valueFormatter: (actionValue) => actionValue ? formatDate(actionValue) : t("scenarioDrawer.action.notUpdated")
47
+ }
48
+ )
49
+ ] });
50
+ }
51
+
52
+ export { RiScActionChangeSet };
53
+ //# sourceMappingURL=RiScActionChangeSet.esm.js.map
@@ -0,0 +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":";;;;;;;;;;AAcgB,SAAA,mBAAA,CAAoB,EAAE,MAAA,EAAoC,EAAA;AACxE,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EACE,uBAAA,IAAA,CAAC,YAAa,EAAA,EAAA,IAAA,EAAK,WACjB,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,aAAA,EAAA,EACC,8BAAC,YAAa,EAAA,EAAA,IAAA,EAAM,EAAE,mBAAmB,CAAA,EAAG,IAAK,EAAA,SAAA,EAAU,CAC7D,EAAA,CAAA;AAAA,oBACC,GAAA,CAAA,qBAAA,EAAA,EAAsB,KAAO,EAAA,MAAA,CAAO,KAAO,EAAA,CAAA;AAAA,oBAC5C,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,wBAAwB,CAAA;AAAA,QACjC,UAAU,MAAO,CAAA,WAAA;AAAA,QACjB,SAAW,EAAA,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,MAAO,CAAA,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,MAAO,CAAA,MAAA;AAAA,QAEjB,cAAgB,EAAA,CAAA,WAAA,KAAe,CAAE,CAAA,CAAA,aAAA,EAAgB,WAAW,CAAE,CAAA;AAAA;AAAA,KAChE;AAAA,oBACA,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,mCAAmC,CAAA;AAAA,QAC5C,UAAU,MAAO,CAAA,WAAA;AAAA,QACjB,gBAAgB,CACd,WAAA,KAAA,WAAA,GACI,WAAW,WAAW,CAAA,GACtB,EAAE,kCAAkC;AAAA;AAAA;AAE5C,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,57 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { RiScMigrationChanges } from '../migrations/RiScMigrationChanges.esm.js';
3
+ import { ChangeSetTitle } from './components/ChangeSetTitle.esm.js';
4
+ import { RiScScenarioChangeSet } from './RiScScenarioChangeSet.esm.js';
5
+ import { RiScScenarioChange } from './RiScScenarioChange.esm.js';
6
+ import { dtoToScenario } from '../../../utils/DTOs.esm.js';
7
+ import { ChangeSetSimpleBox } from './components/ChangeSetSimpleBox.esm.js';
8
+ import { RiScValuationChange } from './RiScValuationChange.esm.js';
9
+ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
10
+ import { pluginRiScTranslationRef } from '../../../utils/translations.esm.js';
11
+
12
+ function RiScChangeSet({ changeset }) {
13
+ const { t } = useTranslationRef(pluginRiScTranslationRef);
14
+ const migrationChanges = changeset.differenceState.migrationChanges;
15
+ const changes = changeset.differenceState;
16
+ const hasChanges = changes.scenarios.length > 0 || changes.valuations.length > 0 || changes.title || changes.scope;
17
+ const hasAnyChanges = changes.migrationChanges.migrationChanges || hasChanges;
18
+ if (!hasAnyChanges) {
19
+ return /* @__PURE__ */ jsx("i", { children: t("comparisonDialog.noChanges") });
20
+ }
21
+ return /* @__PURE__ */ jsxs("div", { children: [
22
+ migrationChanges.migrationVersions?.fromVersion !== migrationChanges.migrationVersions?.toVersion && /* @__PURE__ */ jsx(RiScMigrationChanges, { migrationStatus: migrationChanges }),
23
+ hasChanges && /* @__PURE__ */ jsxs(Fragment, { children: [
24
+ /* @__PURE__ */ jsx(ChangeSetTitle, { text: t("comparisonDialog.changes") }),
25
+ /* @__PURE__ */ jsx(
26
+ ChangeSetSimpleBox,
27
+ {
28
+ prop: changes.title,
29
+ title: t("dictionary.title")
30
+ }
31
+ ),
32
+ /* @__PURE__ */ jsx(
33
+ ChangeSetSimpleBox,
34
+ {
35
+ prop: changes.scope,
36
+ title: t("dictionary.scope")
37
+ }
38
+ ),
39
+ changes.valuations.map((valuation) => /* @__PURE__ */ jsx(RiScValuationChange, { valuation })),
40
+ changes.scenarios.map((scenario) => /* @__PURE__ */ jsxs(Fragment, { children: [
41
+ (scenario.type === "ADDED" || scenario.type === "DELETED") && /* @__PURE__ */ jsx(
42
+ RiScScenarioChange,
43
+ {
44
+ scenario: dtoToScenario(
45
+ scenario.type === "ADDED" ? scenario.newValue : scenario.oldValue
46
+ ),
47
+ type: scenario.type
48
+ }
49
+ ),
50
+ scenario.type === "CONTENT_CHANGED" && /* @__PURE__ */ jsx(RiScScenarioChangeSet, { scenario: scenario.value })
51
+ ] }))
52
+ ] })
53
+ ] });
54
+ }
55
+
56
+ export { RiScChangeSet };
57
+ //# sourceMappingURL=RiScChangeSet.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RiScChangeSet.esm.js","sources":["../../../../src/components/riScInfo/changeset/RiScChangeSet.tsx"],"sourcesContent":["import { DifferenceFetchState } from '../../../utils/types.ts';\nimport { RiScMigrationChanges } from '../migrations/RiScMigrationChanges.tsx';\nimport { ChangeSetTitle } from './components/ChangeSetTitle.tsx';\nimport { RiScScenarioChangeSet } from './RiScScenarioChangeSet.tsx';\nimport { RiScScenarioChange } from './RiScScenarioChange.tsx';\nimport { dtoToScenario } from '../../../utils/DTOs.ts';\nimport { ChangeSetSimpleBox } from './components/ChangeSetSimpleBox.tsx';\nimport { RiScValuationChange } from './RiScValuationChange.tsx';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../../utils/translations.ts';\n\ntype RiScChangeSetProps = {\n changeset: DifferenceFetchState;\n};\n\nexport function RiScChangeSet({ changeset }: RiScChangeSetProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const migrationChanges = changeset.differenceState.migrationChanges;\n const changes = changeset.differenceState;\n\n const hasChanges =\n changes.scenarios.length > 0 ||\n changes.valuations.length > 0 ||\n changes.title ||\n changes.scope;\n\n const hasAnyChanges = changes.migrationChanges.migrationChanges || hasChanges;\n\n if (!hasAnyChanges) {\n return <i>{t('comparisonDialog.noChanges')}</i>;\n }\n\n return (\n <div>\n {migrationChanges.migrationVersions?.fromVersion !==\n migrationChanges.migrationVersions?.toVersion && (\n <RiScMigrationChanges migrationStatus={migrationChanges} />\n )}\n {hasChanges && (\n <>\n <ChangeSetTitle text={t('comparisonDialog.changes')} />\n <ChangeSetSimpleBox\n prop={changes.title}\n title={t('dictionary.title')}\n />\n <ChangeSetSimpleBox\n prop={changes.scope}\n title={t('dictionary.scope')}\n />\n {changes.valuations.map(valuation => (\n <RiScValuationChange valuation={valuation} />\n ))}\n {changes.scenarios.map(scenario => (\n <>\n {(scenario.type === 'ADDED' || scenario.type === 'DELETED') && (\n <RiScScenarioChange\n scenario={dtoToScenario(\n scenario.type === 'ADDED'\n ? scenario.newValue\n : scenario.oldValue,\n )}\n type={scenario.type}\n />\n )}\n {scenario.type === 'CONTENT_CHANGED' && (\n <RiScScenarioChangeSet scenario={scenario.value} />\n )}\n </>\n ))}\n </>\n )}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAegB,SAAA,aAAA,CAAc,EAAE,SAAA,EAAiC,EAAA;AAC/D,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAM,MAAA,gBAAA,GAAmB,UAAU,eAAgB,CAAA,gBAAA;AACnD,EAAA,MAAM,UAAU,SAAU,CAAA,eAAA;AAE1B,EAAM,MAAA,UAAA,GACJ,OAAQ,CAAA,SAAA,CAAU,MAAS,GAAA,CAAA,IAC3B,OAAQ,CAAA,UAAA,CAAW,MAAS,GAAA,CAAA,IAC5B,OAAQ,CAAA,KAAA,IACR,OAAQ,CAAA,KAAA;AAEV,EAAM,MAAA,aAAA,GAAgB,OAAQ,CAAA,gBAAA,CAAiB,gBAAoB,IAAA,UAAA;AAEnE,EAAA,IAAI,CAAC,aAAe,EAAA;AAClB,IAAA,uBAAQ,GAAA,CAAA,GAAA,EAAA,EAAG,QAAE,EAAA,CAAA,CAAA,4BAA4B,CAAE,EAAA,CAAA;AAAA;AAG7C,EAAA,4BACG,KACE,EAAA,EAAA,QAAA,EAAA;AAAA,IAAiB,gBAAA,CAAA,iBAAA,EAAmB,gBACnC,gBAAiB,CAAA,iBAAA,EAAmB,6BACnC,GAAA,CAAA,oBAAA,EAAA,EAAqB,iBAAiB,gBAAkB,EAAA,CAAA;AAAA,IAE1D,8BAEG,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,cAAe,EAAA,EAAA,IAAA,EAAM,CAAE,CAAA,0BAA0B,CAAG,EAAA,CAAA;AAAA,sBACrD,GAAA;AAAA,QAAC,kBAAA;AAAA,QAAA;AAAA,UACC,MAAM,OAAQ,CAAA,KAAA;AAAA,UACd,KAAA,EAAO,EAAE,kBAAkB;AAAA;AAAA,OAC7B;AAAA,sBACA,GAAA;AAAA,QAAC,kBAAA;AAAA,QAAA;AAAA,UACC,MAAM,OAAQ,CAAA,KAAA;AAAA,UACd,KAAA,EAAO,EAAE,kBAAkB;AAAA;AAAA,OAC7B;AAAA,MACC,QAAQ,UAAW,CAAA,GAAA,CAAI,+BACrB,GAAA,CAAA,mBAAA,EAAA,EAAoB,WAAsB,CAC5C,CAAA;AAAA,MACA,OAAQ,CAAA,SAAA,CAAU,GAAI,CAAA,CAAA,QAAA,qBAEjB,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,QAAA,CAAA,QAAA,CAAS,IAAS,KAAA,OAAA,IAAW,QAAS,CAAA,IAAA,KAAS,SAC/C,qBAAA,GAAA;AAAA,UAAC,kBAAA;AAAA,UAAA;AAAA,YACC,QAAU,EAAA,aAAA;AAAA,cACR,QAAS,CAAA,IAAA,KAAS,OACd,GAAA,QAAA,CAAS,WACT,QAAS,CAAA;AAAA,aACf;AAAA,YACA,MAAM,QAAS,CAAA;AAAA;AAAA,SACjB;AAAA,QAED,SAAS,IAAS,KAAA,iBAAA,wBAChB,qBAAsB,EAAA,EAAA,QAAA,EAAU,SAAS,KAAO,EAAA;AAAA,OAAA,EAErD,CACD;AAAA,KACH,EAAA;AAAA,GAEJ,EAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,46 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { ChangeSetBox } from './components/ChangeSetBox.esm.js';
3
+ import { ChangeSetProperty } from './components/ChangeSetProperty.esm.js';
4
+ import { ChangeSetBoxTitle } from './components/ChangeSetBoxTitle.esm.js';
5
+ import { formatNOK } from '../../../utils/utilityfunctions.esm.js';
6
+ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
7
+ import { pluginRiScTranslationRef } from '../../../utils/translations.esm.js';
8
+
9
+ function RiScRiskChange({ title, risk }) {
10
+ const { t } = useTranslationRef(pluginRiScTranslationRef);
11
+ return /* @__PURE__ */ jsxs(ChangeSetBox, { type: "secondary", children: [
12
+ /* @__PURE__ */ jsx(ChangeSetBoxTitle, { title }),
13
+ risk.summary && /* @__PURE__ */ jsx(
14
+ ChangeSetProperty,
15
+ {
16
+ title: t("dictionary.summary"),
17
+ value: risk.summary,
18
+ compact: true,
19
+ emphasised: true
20
+ }
21
+ ),
22
+ /* @__PURE__ */ jsx(
23
+ ChangeSetProperty,
24
+ {
25
+ title: t("dictionary.probability"),
26
+ value: risk.probability,
27
+ compact: true,
28
+ unit: t("comparisonDialog.risk.probabilityUnit"),
29
+ emphasised: true
30
+ }
31
+ ),
32
+ /* @__PURE__ */ jsx(
33
+ ChangeSetProperty,
34
+ {
35
+ title: t("dictionary.consequence"),
36
+ value: formatNOK(risk.consequence),
37
+ compact: true,
38
+ unit: t("comparisonDialog.risk.consequenceUnit"),
39
+ emphasised: true
40
+ }
41
+ )
42
+ ] });
43
+ }
44
+
45
+ export { RiScRiskChange };
46
+ //# sourceMappingURL=RiScRiskChange.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RiScRiskChange.esm.js","sources":["../../../../src/components/riScInfo/changeset/RiScRiskChange.tsx"],"sourcesContent":["import { Risk } from '../../../utils/types.ts';\nimport { ChangeSetBox } from './components/ChangeSetBox.tsx';\nimport { ChangeSetProperty } from './components/ChangeSetProperty.tsx';\nimport { ChangeSetBoxTitle } from './components/ChangeSetBoxTitle.tsx';\nimport { formatNOK } from '../../../utils/utilityfunctions.ts';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../../utils/translations.ts';\n\ninterface RiScWholeRiskChangeProps {\n title: string;\n risk: Risk;\n}\n\nexport function RiScRiskChange({ title, risk }: RiScWholeRiskChangeProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n return (\n <ChangeSetBox type=\"secondary\">\n <ChangeSetBoxTitle title={title} />\n {risk.summary && (\n <ChangeSetProperty\n title={t('dictionary.summary')}\n value={risk.summary}\n compact={true}\n emphasised={true}\n />\n )}\n <ChangeSetProperty\n title={t('dictionary.probability')}\n value={risk.probability}\n compact={true}\n unit={t('comparisonDialog.risk.probabilityUnit')}\n emphasised={true}\n />\n <ChangeSetProperty\n title={t('dictionary.consequence')}\n value={formatNOK(risk.consequence)}\n compact={true}\n unit={t('comparisonDialog.risk.consequenceUnit')}\n emphasised={true}\n />\n </ChangeSetBox>\n );\n}\n"],"names":[],"mappings":";;;;;;;;AAaO,SAAS,cAAe,CAAA,EAAE,KAAO,EAAA,IAAA,EAAkC,EAAA;AACxE,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EACE,uBAAA,IAAA,CAAC,YAAa,EAAA,EAAA,IAAA,EAAK,WACjB,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,qBAAkB,KAAc,EAAA,CAAA;AAAA,IAChC,KAAK,OACJ,oBAAA,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,oBAAoB,CAAA;AAAA,QAC7B,OAAO,IAAK,CAAA,OAAA;AAAA,QACZ,OAAS,EAAA,IAAA;AAAA,QACT,UAAY,EAAA;AAAA;AAAA,KACd;AAAA,oBAEF,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,wBAAwB,CAAA;AAAA,QACjC,OAAO,IAAK,CAAA,WAAA;AAAA,QACZ,OAAS,EAAA,IAAA;AAAA,QACT,IAAA,EAAM,EAAE,uCAAuC,CAAA;AAAA,QAC/C,UAAY,EAAA;AAAA;AAAA,KACd;AAAA,oBACA,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,wBAAwB,CAAA;AAAA,QACjC,KAAA,EAAO,SAAU,CAAA,IAAA,CAAK,WAAW,CAAA;AAAA,QACjC,OAAS,EAAA,IAAA;AAAA,QACT,IAAA,EAAM,EAAE,uCAAuC,CAAA;AAAA,QAC/C,UAAY,EAAA;AAAA;AAAA;AACd,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,49 @@
1
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
+ import { ChangeSetBox } from './components/ChangeSetBox.esm.js';
3
+ import { ChangeSetTrackedProperty } from './components/ChangeSetTrackedProperty.esm.js';
4
+ import { ChangeSetBoxTitle } from './components/ChangeSetBoxTitle.esm.js';
5
+ import { formatNOK } from '../../../utils/utilityfunctions.esm.js';
6
+ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
7
+ import { pluginRiScTranslationRef } from '../../../utils/translations.esm.js';
8
+
9
+ function RiScRiskChangeSet({ title, risk }) {
10
+ const { t } = useTranslationRef(pluginRiScTranslationRef);
11
+ if (risk.type !== "CONTENT_CHANGED" && risk.type !== "UNCHANGED")
12
+ return /* @__PURE__ */ jsx(Fragment, {});
13
+ return /* @__PURE__ */ jsxs(ChangeSetBox, { type: "secondary", children: [
14
+ /* @__PURE__ */ jsx(ChangeSetBoxTitle, { title }),
15
+ /* @__PURE__ */ jsx(
16
+ ChangeSetTrackedProperty,
17
+ {
18
+ title: t("dictionary.summary"),
19
+ property: risk.value.summary,
20
+ compact: true,
21
+ emphasised: true
22
+ }
23
+ ),
24
+ /* @__PURE__ */ jsx(
25
+ ChangeSetTrackedProperty,
26
+ {
27
+ title: t("dictionary.probability"),
28
+ property: risk.value.probability,
29
+ compact: true,
30
+ unit: t("comparisonDialog.risk.probabilityUnit"),
31
+ emphasised: true
32
+ }
33
+ ),
34
+ /* @__PURE__ */ jsx(
35
+ ChangeSetTrackedProperty,
36
+ {
37
+ title: t("dictionary.consequence"),
38
+ property: risk.value.consequence,
39
+ compact: true,
40
+ unit: t("comparisonDialog.risk.consequenceUnit"),
41
+ emphasised: true,
42
+ valueFormatter: formatNOK
43
+ }
44
+ )
45
+ ] });
46
+ }
47
+
48
+ export { RiScRiskChangeSet };
49
+ //# sourceMappingURL=RiScRiskChangeSet.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RiScRiskChangeSet.esm.js","sources":["../../../../src/components/riScInfo/changeset/RiScRiskChangeSet.tsx"],"sourcesContent":["import {\n ScenarioRiskChange,\n SimpleTrackedProperty,\n} from '../../../utils/types.ts';\nimport { ChangeSetBox } from './components/ChangeSetBox.tsx';\nimport { ChangeSetTrackedProperty } from './components/ChangeSetTrackedProperty.tsx';\nimport { ChangeSetBoxTitle } from './components/ChangeSetBoxTitle.tsx';\nimport { formatNOK } from '../../../utils/utilityfunctions.ts';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../../utils/translations.ts';\n\ninterface RiScRiskChangeSetProps {\n title: string;\n risk: SimpleTrackedProperty<ScenarioRiskChange>;\n}\n\nexport function RiScRiskChangeSet({ title, risk }: RiScRiskChangeSetProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n if (risk.type !== 'CONTENT_CHANGED' && risk.type !== 'UNCHANGED')\n return <></>;\n return (\n <ChangeSetBox type=\"secondary\">\n <ChangeSetBoxTitle title={title} />\n <ChangeSetTrackedProperty\n title={t('dictionary.summary')}\n property={risk.value.summary}\n compact={true}\n emphasised={true}\n />\n <ChangeSetTrackedProperty\n title={t('dictionary.probability')}\n property={risk.value.probability}\n compact={true}\n unit={t('comparisonDialog.risk.probabilityUnit')}\n emphasised={true}\n />\n <ChangeSetTrackedProperty\n title={t('dictionary.consequence')}\n property={risk.value.consequence}\n compact={true}\n unit={t('comparisonDialog.risk.consequenceUnit')}\n emphasised={true}\n valueFormatter={formatNOK}\n />\n </ChangeSetBox>\n );\n}\n"],"names":[],"mappings":";;;;;;;;AAgBO,SAAS,iBAAkB,CAAA,EAAE,KAAO,EAAA,IAAA,EAAgC,EAAA;AACzE,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,IAAI,IAAK,CAAA,IAAA,KAAS,iBAAqB,IAAA,IAAA,CAAK,IAAS,KAAA,WAAA;AACnD,IAAA,uBAAS,GAAA,CAAA,QAAA,EAAA,EAAA,CAAA;AACX,EACE,uBAAA,IAAA,CAAC,YAAa,EAAA,EAAA,IAAA,EAAK,WACjB,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,qBAAkB,KAAc,EAAA,CAAA;AAAA,oBACjC,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,oBAAoB,CAAA;AAAA,QAC7B,QAAA,EAAU,KAAK,KAAM,CAAA,OAAA;AAAA,QACrB,OAAS,EAAA,IAAA;AAAA,QACT,UAAY,EAAA;AAAA;AAAA,KACd;AAAA,oBACA,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,wBAAwB,CAAA;AAAA,QACjC,QAAA,EAAU,KAAK,KAAM,CAAA,WAAA;AAAA,QACrB,OAAS,EAAA,IAAA;AAAA,QACT,IAAA,EAAM,EAAE,uCAAuC,CAAA;AAAA,QAC/C,UAAY,EAAA;AAAA;AAAA,KACd;AAAA,oBACA,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,wBAAwB,CAAA;AAAA,QACjC,QAAA,EAAU,KAAK,KAAM,CAAA,WAAA;AAAA,QACrB,OAAS,EAAA,IAAA;AAAA,QACT,IAAA,EAAM,EAAE,uCAAuC,CAAA;AAAA,QAC/C,UAAY,EAAA,IAAA;AAAA,QACZ,cAAgB,EAAA;AAAA;AAAA;AAClB,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,86 @@
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import { ChangeSetBox } from './components/ChangeSetBox.esm.js';
3
+ import { ChangeSetTags } from './components/ChangeSetTags.esm.js';
4
+ import { ChangeSetTag } from './components/ChangeSetTag.esm.js';
5
+ import { ChangeSetBoxTitle } from './components/ChangeSetBoxTitle.esm.js';
6
+ import { RiScActionChange } from './RiScActionChange.esm.js';
7
+ import { ChangeSetTwoColumnSplit } from './components/ChangeSetTwoColumnSplit.esm.js';
8
+ import { ChangeSetColumn } from './components/ChangeSetColumn.esm.js';
9
+ import { ChangeSetProperty } from './components/ChangeSetProperty.esm.js';
10
+ import { RiScRiskChange } from './RiScRiskChange.esm.js';
11
+ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
12
+ import { pluginRiScTranslationRef } from '../../../utils/translations.esm.js';
13
+
14
+ function RiScScenarioChange({
15
+ scenario,
16
+ type
17
+ }) {
18
+ const { t } = useTranslationRef(pluginRiScTranslationRef);
19
+ return /* @__PURE__ */ jsxs(ChangeSetBox, { type: "primary", children: [
20
+ /* @__PURE__ */ jsxs(ChangeSetTags, { children: [
21
+ type === "ADDED" ? /* @__PURE__ */ jsx(ChangeSetTag, { text: t("dictionary.added"), type: "added" }) : /* @__PURE__ */ jsx(ChangeSetTag, { text: t("dictionary.removed"), type: "delete" }),
22
+ /* @__PURE__ */ jsx(ChangeSetTag, { text: t("dictionary.scenario"), type: "primary" })
23
+ ] }),
24
+ /* @__PURE__ */ jsx(ChangeSetBoxTitle, { title: scenario.title }),
25
+ /* @__PURE__ */ jsx(
26
+ ChangeSetProperty,
27
+ {
28
+ title: t("dictionary.description"),
29
+ value: scenario.description ? scenario.description : /* @__PURE__ */ jsx("i", { children: t("comparisonDialog.noDescription") }),
30
+ emphasised: true
31
+ }
32
+ ),
33
+ scenario.url && /* @__PURE__ */ jsx(
34
+ ChangeSetProperty,
35
+ {
36
+ title: t("dictionary.url"),
37
+ value: scenario.url,
38
+ emphasised: true
39
+ }
40
+ ),
41
+ (scenario.threatActors.length > 0 || scenario.vulnerabilities.length > 0) && /* @__PURE__ */ jsxs(ChangeSetTwoColumnSplit, { children: [
42
+ scenario.threatActors.length > 0 && /* @__PURE__ */ jsx(ChangeSetColumn, { children: /* @__PURE__ */ jsx(
43
+ ChangeSetProperty,
44
+ {
45
+ title: t("dictionary.threatActors"),
46
+ value: /* @__PURE__ */ jsx(Fragment, { children: scenario.threatActors.map((actor) => (
47
+ /* @ts-ignore Because ts can't typecheck strings against our keys */
48
+ /* @__PURE__ */ jsx("div", { children: t(`threatActors.${actor}`) })
49
+ )) }),
50
+ emphasised: true
51
+ }
52
+ ) }),
53
+ scenario.vulnerabilities.length > 0 && /* @__PURE__ */ jsx(ChangeSetColumn, { children: /* @__PURE__ */ jsx(
54
+ ChangeSetProperty,
55
+ {
56
+ title: t("dictionary.vulnerabilities"),
57
+ value: /* @__PURE__ */ jsx(Fragment, { children: scenario.vulnerabilities.map((vulnerability) => (
58
+ /* @ts-ignore Because ts can't typecheck strings against our keys */
59
+ /* @__PURE__ */ jsx("div", { children: t(`vulnerabilities.${vulnerability}`) })
60
+ )) }),
61
+ emphasised: true
62
+ }
63
+ ) })
64
+ ] }),
65
+ /* @__PURE__ */ jsxs(ChangeSetTwoColumnSplit, { children: [
66
+ /* @__PURE__ */ jsx(ChangeSetColumn, { column: "1", children: /* @__PURE__ */ jsx(
67
+ RiScRiskChange,
68
+ {
69
+ title: t("dictionary.initialRisk"),
70
+ risk: scenario.risk
71
+ }
72
+ ) }),
73
+ /* @__PURE__ */ jsx(ChangeSetColumn, { column: "2", children: /* @__PURE__ */ jsx(
74
+ RiScRiskChange,
75
+ {
76
+ title: t("dictionary.restRisk"),
77
+ risk: scenario.remainingRisk
78
+ }
79
+ ) })
80
+ ] }),
81
+ scenario.actions && scenario.actions.map((action) => /* @__PURE__ */ jsx(RiScActionChange, { action, type }))
82
+ ] });
83
+ }
84
+
85
+ export { RiScScenarioChange };
86
+ //# sourceMappingURL=RiScScenarioChange.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RiScScenarioChange.esm.js","sources":["../../../../src/components/riScInfo/changeset/RiScScenarioChange.tsx"],"sourcesContent":["import { Scenario } from '../../../utils/types.ts';\nimport { ChangeSetBox } from './components/ChangeSetBox.tsx';\nimport { ChangeSetTags } from './components/ChangeSetTags.tsx';\nimport { ChangeSetTag } from './components/ChangeSetTag.tsx';\nimport { ChangeSetBoxTitle } from './components/ChangeSetBoxTitle.tsx';\nimport { RiScActionChange } from './RiScActionChange.tsx';\nimport { ChangeSetTwoColumnSplit } from './components/ChangeSetTwoColumnSplit.tsx';\nimport { ChangeSetColumn } from './components/ChangeSetColumn.tsx';\nimport { ChangeSetProperty } from './components/ChangeSetProperty.tsx';\nimport { RiScRiskChange } from './RiScRiskChange.tsx';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../../utils/translations.ts';\n\ninterface RiScWholeScenarioChangeProps {\n scenario: Scenario;\n type: 'ADDED' | 'DELETED';\n}\n\nexport function RiScScenarioChange({\n scenario,\n type,\n}: RiScWholeScenarioChangeProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n return (\n <ChangeSetBox type=\"primary\">\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.scenario')} type=\"primary\" />\n </ChangeSetTags>\n <ChangeSetBoxTitle title={scenario.title} />\n <ChangeSetProperty\n title={t('dictionary.description')}\n value={\n scenario.description ? (\n scenario.description\n ) : (\n <i>{t('comparisonDialog.noDescription')}</i>\n )\n }\n emphasised={true}\n />\n {scenario.url && (\n <ChangeSetProperty\n title={t('dictionary.url')}\n value={scenario.url}\n emphasised={true}\n />\n )}\n {(scenario.threatActors.length > 0 ||\n scenario.vulnerabilities.length > 0) && (\n <ChangeSetTwoColumnSplit>\n {scenario.threatActors.length > 0 && (\n <ChangeSetColumn>\n <ChangeSetProperty\n title={t('dictionary.threatActors')}\n value={\n <>\n {scenario.threatActors.map(actor => (\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n <div>{t(`threatActors.${actor}`)}</div>\n ))}\n </>\n }\n emphasised={true}\n />\n </ChangeSetColumn>\n )}\n {scenario.vulnerabilities.length > 0 && (\n <ChangeSetColumn>\n <ChangeSetProperty\n title={t('dictionary.vulnerabilities')}\n value={\n <>\n {scenario.vulnerabilities.map(vulnerability => (\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n <div>{t(`vulnerabilities.${vulnerability}`)}</div>\n ))}\n </>\n }\n emphasised={true}\n />\n </ChangeSetColumn>\n )}\n </ChangeSetTwoColumnSplit>\n )}\n\n <ChangeSetTwoColumnSplit>\n <ChangeSetColumn column=\"1\">\n <RiScRiskChange\n title={t('dictionary.initialRisk')}\n risk={scenario.risk}\n />\n </ChangeSetColumn>\n <ChangeSetColumn column=\"2\">\n <RiScRiskChange\n title={t('dictionary.restRisk')}\n risk={scenario.remainingRisk}\n />\n </ChangeSetColumn>\n </ChangeSetTwoColumnSplit>\n\n {scenario.actions &&\n scenario.actions.map(action => (\n <RiScActionChange action={action} type={type} />\n ))}\n </ChangeSetBox>\n );\n}\n"],"names":[],"mappings":"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"}