@kartverket/backstage-plugin-risk-scorecard 3.12.0 → 4.0.2

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 (74) hide show
  1. package/css/theme.css +4 -0
  2. package/dist/@kartverket-backstage-plugin-risk-scorecard-4.0.2.tgz +0 -0
  3. package/dist/components/action/ActionRowList.module.css.esm.js +2 -2
  4. package/dist/components/action/ActionView.esm.js +1 -1
  5. package/dist/components/common/DualButton/DualButton.module.css.esm.js +2 -2
  6. package/dist/components/common/MarkdownInput/MarkdownInput.module.css.esm.js +2 -2
  7. package/dist/components/common/UpdatedStatusBadge.module.css.esm.js +2 -2
  8. package/dist/components/common/alertBar.module.css.esm.js +2 -2
  9. package/dist/components/dialog/DialogComponent.module.css.esm.js +2 -2
  10. package/dist/components/riScDialog/ConfigEncryptionDialog.esm.js +42 -27
  11. package/dist/components/riScDialog/ConfigEncryptionDialog.esm.js.map +1 -1
  12. package/dist/components/riScDialog/ConfigInitialRisc.esm.js +1 -1
  13. package/dist/components/riScDialog/ConfigInitialRisc.esm.js.map +1 -1
  14. package/dist/components/riScDialog/ConfigInitialRisc.module.css.esm.js +2 -2
  15. package/dist/components/riScDialog/ConfigRiscInfo.esm.js.map +1 -1
  16. package/dist/components/riScDialog/EditEncryptionButton.esm.js.map +1 -1
  17. package/dist/components/riScDialog/RiScDialog.module.css.esm.js +2 -2
  18. package/dist/components/riScInfo/ErrorState.esm.js +26 -0
  19. package/dist/components/riScInfo/ErrorState.esm.js.map +1 -0
  20. package/dist/components/riScInfo/MigrationDialog.esm.js +2 -2
  21. package/dist/components/riScInfo/MigrationDialog.esm.js.map +1 -1
  22. package/dist/components/riScInfo/PublishDialog.esm.js +2 -2
  23. package/dist/components/riScInfo/PublishDialog.esm.js.map +1 -1
  24. package/dist/components/riScInfo/RiScSelectionCard.esm.js +2 -2
  25. package/dist/components/riScInfo/RiScSelectionCard.esm.js.map +1 -1
  26. package/dist/components/riScInfo/RiScSelectionCard.module.css.esm.js +3 -3
  27. package/dist/components/riScInfo/migrations/RiScMigrationChanges.esm.js +1 -1
  28. package/dist/components/riScInfo/migrations/RiScMigrationChanges.esm.js.map +1 -1
  29. package/dist/components/riScInfo/migrations/RiScMigrationChanges52.esm.js +11 -43
  30. package/dist/components/riScInfo/migrations/RiScMigrationChanges52.esm.js.map +1 -1
  31. package/dist/components/riScInfo/riScStatus/StatusBanner.module.css.esm.js +2 -2
  32. package/dist/components/riScPlugin/RiScPlugin.esm.js +12 -3
  33. package/dist/components/riScPlugin/RiScPlugin.esm.js.map +1 -1
  34. package/dist/components/riskMatrix/AggregatedCost.module.css.esm.js +2 -2
  35. package/dist/components/riskMatrix/CurrentRisk.module.css.esm.js +2 -2
  36. package/dist/components/riskMatrix/EstimatedRiskInfoDialog.esm.js +29 -28
  37. package/dist/components/riskMatrix/EstimatedRiskInfoDialog.esm.js.map +1 -1
  38. package/dist/components/riskMatrix/RiskMatrix.module.css.esm.js +2 -2
  39. package/dist/components/riskMatrix/RiskMatrixScenarioCount.module.css.esm.js +2 -2
  40. package/dist/components/riskMatrix/RiskMatrixSquare.module.css.esm.js +2 -2
  41. package/dist/components/riskMatrix/Tabs.module.css.esm.js +2 -2
  42. package/dist/components/scenario/ScenarioLastUpdatedLabel.module.css.esm.js +2 -2
  43. package/dist/components/scenarioDrawer/components/ActionsSection.module.css.esm.js +2 -2
  44. package/dist/components/scenarioDrawer/components/ScenarioDrawer.module.css.esm.js +2 -2
  45. package/dist/components/scenarioTable/ActionsCountButton.module.css.esm.js +2 -2
  46. package/dist/components/scenarioTable/ScenarioTableRow.esm.js +2 -1
  47. package/dist/components/scenarioTable/ScenarioTableRow.esm.js.map +1 -1
  48. package/dist/components/scenarioTable/ScenarioTableStyles.esm.js +1 -0
  49. package/dist/components/scenarioTable/ScenarioTableStyles.esm.js.map +1 -1
  50. package/dist/components/scenarioWizard/ScenarioWizard.module.css.esm.js +2 -2
  51. package/dist/components/scenarioWizard/ScenarioWizardTable.module.css.esm.js +2 -2
  52. package/dist/components/sopsConfigDialog/GcpCryptoKeyRadioGroup.esm.js +62 -0
  53. package/dist/components/sopsConfigDialog/GcpCryptoKeyRadioGroup.esm.js.map +1 -0
  54. package/dist/components/sopsConfigDialog/GcpCryptoKeyRadioGroup.module.css.esm.js +8 -0
  55. package/dist/components/sopsConfigDialog/GcpCryptoKeyRadioGroup.module.css.esm.js.map +1 -0
  56. package/dist/contexts/RiScContext.esm.js +80 -17
  57. package/dist/contexts/RiScContext.esm.js.map +1 -1
  58. package/dist/index.d.ts +2 -2
  59. package/dist/utils/DTOs.esm.js +7 -1
  60. package/dist/utils/DTOs.esm.js.map +1 -1
  61. package/dist/utils/actions.esm.js +1 -1
  62. package/dist/utils/translations.esm.js +21 -17
  63. package/dist/utils/translations.esm.js.map +1 -1
  64. package/dist/utils/types.esm.js.map +1 -1
  65. package/dist/utils/utilityfunctions.esm.js +6 -3
  66. package/dist/utils/utilityfunctions.esm.js.map +1 -1
  67. package/package.json +9 -9
  68. package/dist/@kartverket-backstage-plugin-risk-scorecard-3.12.0.tgz +0 -0
  69. package/dist/components/sopsConfigDialog/GcpCryptoKeyMenu.esm.js +0 -119
  70. package/dist/components/sopsConfigDialog/GcpCryptoKeyMenu.esm.js.map +0 -1
  71. package/dist/components/sopsConfigDialog/GcpCryptoKeyMenuItem.esm.js +0 -48
  72. package/dist/components/sopsConfigDialog/GcpCryptoKeyMenuItem.esm.js.map +0 -1
  73. package/dist/components/sopsConfigDialog/SopsConfigDialog.module.css.esm.js +0 -8
  74. package/dist/components/sopsConfigDialog/SopsConfigDialog.module.css.esm.js.map +0 -1
package/css/theme.css CHANGED
@@ -132,4 +132,8 @@ Remember to prefix custom styles with 'ros-' to avoid conflicts with other plugi
132
132
  .bui-SwitchIndicator {
133
133
  background-color: var(--bui-gray-6);
134
134
  }
135
+
136
+ .bui-Card {
137
+ background-color: var(--bui-bg-surface-2);
138
+ }
135
139
  }
@@ -1,7 +1,7 @@
1
1
  import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
2
 
3
- var css_248z = ".ActionRowList-module_noActionsText__2jBWU {\n font-style: italic;\n}\n";
4
- var styles = {"noActionsText":"ActionRowList-module_noActionsText__2jBWU"};
3
+ var css_248z = ".ActionRowList_noActionsText__fadd5c88f3 {\n font-style: italic;\n}\n";
4
+ var styles = {"noActionsText":"ActionRowList_noActionsText__fadd5c88f3"};
5
5
  styleInject(css_248z);
6
6
 
7
7
  export { styles as default };
@@ -2,7 +2,7 @@ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import { Flex, Text } from '@backstage/ui';
3
3
  import IconButton from '@mui/material/IconButton';
4
4
  import { DualButtonWithMenu } from '../common/DualButtonWithMenu.esm.js';
5
- import { getTranslatedActionStatus, actionStatusOptionsToTranslationKeys } from '../../utils/utilityfunctions.esm.js';
5
+ import { actionStatusOptionsToTranslationKeys, getTranslatedActionStatus } from '../../utils/utilityfunctions.esm.js';
6
6
  import { ActionStatusOptions } from '../../utils/constants.esm.js';
7
7
  import { ScenarioLastUpdatedLabel } from '../scenario/ScenarioLastUpdatedLabel.esm.js';
8
8
  import DeleteIcon from '@mui/icons-material/Delete';
@@ -1,7 +1,7 @@
1
1
  import styleInject from '../../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
2
 
3
- var css_248z = ".DualButton-module_DualButton__KpQUp {\n display: flex;\n text-wrap: nowrap;\n gap: 4px;\n\n .DualButton-module_DualButtonLeft__pbMAT {\n border-top-left-radius: 1000px;\n border-bottom-left-radius: 1000px;\n text-transform: none;\n min-width: 110px;\n }\n\n .DualButton-module_DualButtonRight__gS0At {\n border-top-right-radius: 1000px;\n border-bottom-right-radius: 1000px;\n text-transform: none;\n }\n}\n";
4
- var styles = {"DualButton":"DualButton-module_DualButton__KpQUp","DualButtonLeft":"DualButton-module_DualButtonLeft__pbMAT","DualButtonRight":"DualButton-module_DualButtonRight__gS0At"};
3
+ var css_248z = ".DualButton_DualButton__3d4ea232f2 {\n display: flex;\n text-wrap: nowrap;\n gap: 4px;\n\n .DualButton_DualButtonLeft__3d4ea232f2 {\n border-top-left-radius: 1000px;\n border-bottom-left-radius: 1000px;\n text-transform: none;\n min-width: 110px;\n }\n\n .DualButton_DualButtonRight__3d4ea232f2 {\n border-top-right-radius: 1000px;\n border-bottom-right-radius: 1000px;\n text-transform: none;\n }\n}\n";
4
+ var styles = {"DualButton":"DualButton_DualButton__3d4ea232f2","DualButtonLeft":"DualButton_DualButtonLeft__3d4ea232f2","DualButtonRight":"DualButton_DualButtonRight__3d4ea232f2"};
5
5
  styleInject(css_248z);
6
6
 
7
7
  export { styles as default };
@@ -1,7 +1,7 @@
1
1
  import styleInject from '../../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
2
 
3
- var css_248z = ".MarkdownInput-module_MarkDownInput__cJtct {\n color: inherit;\n background-color: inherit;\n border: none;\n box-shadow: none;\n}\n\n.MarkdownInput-module_MarkDownInputFormControl__C-zxH {\n width: 100%;\n gap: 4px;\n}\n\n.MarkdownInput-module_MarkDownInput--disabled__rDXm- {\n color: var(--ros-input-text-color);\n background-color: var(--ros-input-disabledBackground);\n}\n\n.MarkdownInput-module_MarkDownInputWrapper__CarVS {\n border: 1px solid rgba(0, 0, 0, 0.23);\n border-radius: 4px;\n}\n\n[data-theme-mode='dark'] .MarkdownInput-module_MarkDownInputWrapper__CarVS {\n border: 1px solid rgba(255, 255, 255, 0.23);\n}\n";
4
- var styles = {"MarkDownInput":"MarkdownInput-module_MarkDownInput__cJtct","MarkDownInputFormControl":"MarkdownInput-module_MarkDownInputFormControl__C-zxH","MarkDownInput--disabled":"MarkdownInput-module_MarkDownInput--disabled__rDXm-","MarkDownInputWrapper":"MarkdownInput-module_MarkDownInputWrapper__CarVS"};
3
+ var css_248z = ".MarkdownInput_MarkDownInput__dcaa81485c {\n color: inherit;\n background-color: inherit;\n border: none;\n box-shadow: none;\n}\n\n.MarkdownInput_MarkDownInputFormControl__dcaa81485c {\n width: 100%;\n gap: 4px;\n}\n\n.MarkdownInput_MarkDownInput--disabled__dcaa81485c {\n color: var(--ros-input-text-color);\n background-color: var(--ros-input-disabledBackground);\n}\n\n.MarkdownInput_MarkDownInputWrapper__dcaa81485c {\n border: 1px solid rgba(0, 0, 0, 0.23);\n border-radius: 4px;\n}\n\n[data-theme-mode='dark'] .MarkdownInput_MarkDownInputWrapper__dcaa81485c {\n border: 1px solid rgba(255, 255, 255, 0.23);\n}\n";
4
+ var styles = {"MarkDownInput":"MarkdownInput_MarkDownInput__dcaa81485c","MarkDownInputFormControl":"MarkdownInput_MarkDownInputFormControl__dcaa81485c","MarkDownInput--disabled":"MarkdownInput_MarkDownInput--disabled__dcaa81485c","MarkDownInputWrapper":"MarkdownInput_MarkDownInputWrapper__dcaa81485c"};
5
5
  styleInject(css_248z);
6
6
 
7
7
  export { styles as default };
@@ -1,7 +1,7 @@
1
1
  import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
2
 
3
- var css_248z = ".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 width: fit-content;\n}\n\n.UpdatedStatusBadge-module_iconBase__NLDc9 {\n font-size: 32px;\n}\n\n.UpdatedStatusBadge-module_outdatedIcon__MJaov {\n color: var(--ros-outdated);\n}\n\n.UpdatedStatusBadge-module_veryOutdatedIcon__mCB0B {\n color: var(--ros-very-outdated);\n}\n\n.UpdatedStatusBadge-module_updatedIcon__-ymyE {\n color: var(--ros-updated);\n}\n\n.UpdatedStatusBadge-module_emptyIcon__h5zdN {\n color: transparent;\n}\n";
4
- var styles = {"iconBase":"UpdatedStatusBadge-module_iconBase__NLDc9","outdatedIcon":"UpdatedStatusBadge-module_outdatedIcon__MJaov","veryOutdatedIcon":"UpdatedStatusBadge-module_veryOutdatedIcon__mCB0B","updatedIcon":"UpdatedStatusBadge-module_updatedIcon__-ymyE","emptyIcon":"UpdatedStatusBadge-module_emptyIcon__h5zdN"};
3
+ var css_248z = ".UpdatedStatusBadge_badge__9eeb437333 {\n display: flex;\n align-items: center;\n padding: 4px 8px;\n border-radius: 24px;\n text-align: center;\n font-size: 12px;\n width: fit-content;\n}\n\n.UpdatedStatusBadge_iconBase__9eeb437333 {\n font-size: 32px;\n}\n\n.UpdatedStatusBadge_outdatedIcon__9eeb437333 {\n color: var(--ros-outdated);\n}\n\n.UpdatedStatusBadge_veryOutdatedIcon__9eeb437333 {\n color: var(--ros-very-outdated);\n}\n\n.UpdatedStatusBadge_updatedIcon__9eeb437333 {\n color: var(--ros-updated);\n}\n\n.UpdatedStatusBadge_emptyIcon__9eeb437333 {\n color: transparent;\n}\n";
4
+ var styles = {"iconBase":"UpdatedStatusBadge_iconBase__9eeb437333","outdatedIcon":"UpdatedStatusBadge_outdatedIcon__9eeb437333","veryOutdatedIcon":"UpdatedStatusBadge_veryOutdatedIcon__9eeb437333","updatedIcon":"UpdatedStatusBadge_updatedIcon__9eeb437333","emptyIcon":"UpdatedStatusBadge_emptyIcon__9eeb437333"};
5
5
  styleInject(css_248z);
6
6
 
7
7
  export { styles as default };
@@ -1,7 +1,7 @@
1
1
  import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
2
 
3
- var css_248z = ".alertBar-module_alertBarBox__5jRzs {\n position: sticky;\n top: 8px;\n z-index: 100;\n}\n\n.alertBar-module_alertBar__Wh-8i {\n width: 100%;\n}\n\n/* severity variants */\n.alertBar-module_success__mspmj {\n background-color: #e9f8eb;\n border: 1px solid #66b077;\n}\n\n.alertBar-module_warning__U7erq {\n background-color: #fff7ed;\n border: 1px solid #cf914a;\n}\n\n.alertBar-module_error__h7kt6 {\n background-color: #fcf1e8;\n border: 1px solid #a32f00;\n}\n\n.alertBar-module_info__0WuLO {\n background-color: #eaf6ff;\n border: 1px solid #439ccd;\n}\n";
4
- var styles = {"alertBarBox":"alertBar-module_alertBarBox__5jRzs","alertBar":"alertBar-module_alertBar__Wh-8i","success":"alertBar-module_success__mspmj","warning":"alertBar-module_warning__U7erq","error":"alertBar-module_error__h7kt6","info":"alertBar-module_info__0WuLO"};
3
+ var css_248z = ".alertBar_alertBarBox__3257f35270 {\n position: sticky;\n top: 8px;\n z-index: 100;\n}\n\n.alertBar_alertBar__3257f35270 {\n width: 100%;\n}\n\n/* severity variants */\n.alertBar_success__3257f35270 {\n background-color: #e9f8eb;\n border: 1px solid #66b077;\n}\n\n.alertBar_warning__3257f35270 {\n background-color: #fff7ed;\n border: 1px solid #cf914a;\n}\n\n.alertBar_error__3257f35270 {\n background-color: #fcf1e8;\n border: 1px solid #a32f00;\n}\n\n.alertBar_info__3257f35270 {\n background-color: #eaf6ff;\n border: 1px solid #439ccd;\n}\n";
4
+ var styles = {"alertBarBox":"alertBar_alertBarBox__3257f35270","alertBar":"alertBar_alertBar__3257f35270","success":"alertBar_success__3257f35270","warning":"alertBar_warning__3257f35270","error":"alertBar_error__3257f35270","info":"alertBar_info__3257f35270"};
5
5
  styleInject(css_248z);
6
6
 
7
7
  export { styles as default };
@@ -1,7 +1,7 @@
1
1
  import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
2
 
3
- var css_248z = ".DialogComponent-module_DialogHeader__rMscy {\n padding-bottom: 12px;\n}\n";
4
- var styles = {"DialogHeader":"DialogComponent-module_DialogHeader__rMscy"};
3
+ var css_248z = ".DialogComponent_DialogHeader__5be9eff22a {\n padding-bottom: 12px;\n}\n";
4
+ var styles = {"DialogHeader":"DialogComponent_DialogHeader__5be9eff22a"};
5
5
  styleInject(css_248z);
6
6
 
7
7
  export { styles as default };
@@ -1,10 +1,11 @@
1
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { Accordion, AccordionSummary, AccordionDetails, FormLabel, List, ListItem, ListItemText, ListItemSecondaryAction, IconButton, TextField } from '@mui/material';
3
- import { GcpCryptoKeyMenu } from '../sopsConfigDialog/GcpCryptoKeyMenu.esm.js';
3
+ import { GcpCryptoKeyRadioGroup } from '../sopsConfigDialog/GcpCryptoKeyRadioGroup.esm.js';
4
4
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
5
5
  import { pluginRiScTranslationRef } from '../../utils/translations.esm.js';
6
6
  import { ExpandMore, AddCircle } from '@mui/icons-material';
7
7
  import DeleteIcon from '@mui/icons-material/Delete';
8
+ import { CryptoKeyPermission } from '../../utils/DTOs.esm.js';
8
9
  import { useState, useEffect } from 'react';
9
10
  import { RiScDialogStates } from './RiScDialog.esm.js';
10
11
  import { isPublicAgeKeyValid } from '../../utils/utilityfunctions.esm.js';
@@ -31,23 +32,21 @@ function ConfigEncryptionDialog({
31
32
  }
32
33
  return [];
33
34
  });
35
+ const riscCryptoKey = state === RiScDialogStates.EditEncryption && sopsData?.gcp_kms ? gcpCryptoKeys.find(
36
+ (key) => key.resourceId === sopsData.gcp_kms[0].resource_id
37
+ ) ?? buildKeyFromSopsData(sopsData) : void 0;
38
+ const choosableCryptoKeys = riscCryptoKey ? [
39
+ riscCryptoKey,
40
+ ...gcpCryptoKeys.filter(
41
+ (key) => key.resourceId !== riscCryptoKey.resourceId
42
+ )
43
+ ] : gcpCryptoKeys;
34
44
  const [chosenGcpCryptoKey, setChosenGcpCryptoKey] = useState(() => {
35
45
  if (state === RiScDialogStates.EditEncryption && sopsData?.gcp_kms) {
36
46
  const gcpKms = sopsData.gcp_kms[0];
37
- if (gcpKms?.resource_id) {
38
- const resourceParts = gcpKms.resource_id.split("/");
39
- if (resourceParts.length === 8) {
40
- return {
41
- projectId: resourceParts[1],
42
- keyRing: resourceParts[5],
43
- keyName: resourceParts[7],
44
- locations: resourceParts[3],
45
- resourceId: gcpKms.resource_id,
46
- createdAt: gcpKms.created_at,
47
- hasEncryptDecryptAccess: true
48
- };
49
- }
50
- }
47
+ return choosableCryptoKeys.find(
48
+ (key) => key.resourceId === gcpKms?.resource_id
49
+ );
51
50
  }
52
51
  return gcpCryptoKeys[0];
53
52
  });
@@ -95,17 +94,14 @@ function ConfigEncryptionDialog({
95
94
  /* @__PURE__ */ jsx(Text, { children: state === RiScDialogStates.Create ? t("sopsConfigDialog.description.new") : t("sopsConfigDialog.description.edit") }),
96
95
  /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: "0px", children: [
97
96
  /* @__PURE__ */ jsx(Text, { variant: "body-medium", weight: "bold", children: t("sopsConfigDialog.selectKeysTitle") }),
98
- chosenGcpCryptoKey !== void 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
99
- /* @__PURE__ */ jsx(Text, { children: t("sopsConfigDialog.gcpCryptoKeyDescription") }),
100
- /* @__PURE__ */ jsx(
101
- GcpCryptoKeyMenu,
102
- {
103
- chosenGcpCryptoKey,
104
- onChange: handleChangeGcpCryptoKey,
105
- gcpCryptoKeys: gcpCryptoKeys.includes(chosenGcpCryptoKey) ? gcpCryptoKeys : [...gcpCryptoKeys, chosenGcpCryptoKey]
106
- }
107
- )
108
- ] }) : /* @__PURE__ */ jsx(Text, { variant: "body-medium", children: t("sopsConfigDialog.gcpCryptoKeyNoSelectableKey") })
97
+ /* @__PURE__ */ jsx(
98
+ GcpCryptoKeyRadioGroup,
99
+ {
100
+ chosenGcpCryptoKey,
101
+ onChange: handleChangeGcpCryptoKey,
102
+ gcpCryptoKeys: choosableCryptoKeys
103
+ }
104
+ )
109
105
  ] }),
110
106
  errors.sopsConfig !== void 0 && /* @__PURE__ */ jsx(FormHelperText, { error: true, children: t("sopsConfigDialog.gcpCryptoKeyNonSelectedErrorMessage") }),
111
107
  /* @__PURE__ */ jsx(Box, { className: styles.accordionContainer, children: /* @__PURE__ */ jsxs(Accordion, { elevation: 0, defaultExpanded: publicAgeKeys.length > 0, children: [
@@ -219,6 +215,25 @@ function ConfigEncryptionDialog({
219
215
  ] }) })
220
216
  ] });
221
217
  }
218
+ function buildKeyFromSopsData(sopsData) {
219
+ const gcpKms = sopsData?.gcp_kms?.[0];
220
+ if (!gcpKms || !gcpKms.resource_id) {
221
+ return void 0;
222
+ }
223
+ const resourceParts = gcpKms.resource_id.split("/");
224
+ if (resourceParts.length === 8) {
225
+ return {
226
+ projectId: resourceParts[1],
227
+ keyRing: resourceParts[5],
228
+ name: resourceParts[7],
229
+ locations: resourceParts[3],
230
+ resourceId: gcpKms.resource_id,
231
+ createdAt: gcpKms.created_at,
232
+ userPermissions: [CryptoKeyPermission.UNKNOWN]
233
+ };
234
+ }
235
+ return void 0;
236
+ }
222
237
 
223
238
  export { ConfigEncryptionDialog as default };
224
239
  //# sourceMappingURL=ConfigEncryptionDialog.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigEncryptionDialog.esm.js","sources":["../../../src/components/riScDialog/ConfigEncryptionDialog.tsx"],"sourcesContent":["import {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n FormLabel,\n IconButton,\n List,\n ListItem,\n ListItemSecondaryAction,\n ListItemText,\n TextField,\n} from '@mui/material';\nimport { GcpCryptoKeyMenu } from '../sopsConfigDialog/GcpCryptoKeyMenu';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { AddCircle, ExpandMore } from '@mui/icons-material';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport { GcpCryptoKeyObject, SopsConfigDTO } from '../../utils/DTOs';\nimport { useEffect, useState } from 'react';\nimport { RiScWithMetadata } from '../../utils/types';\nimport { UseFormRegister, UseFormSetValue } from 'react-hook-form';\nimport { RiScDialogStates } from './RiScDialog';\nimport { isPublicAgeKeyValid } from '../../utils/utilityfunctions';\nimport { FieldErrors } from 'react-hook-form/dist/types/errors';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport { URLS } from '../../urls';\nimport { Text, Link, Button, Flex, Box } from '@backstage/ui';\nimport styles from '../riScDialog/RiScDialog.module.css';\n\ninterface ConfigEncryptionDialogProps {\n gcpCryptoKeys: GcpCryptoKeyObject[];\n sopsData?: SopsConfigDTO;\n setValue: UseFormSetValue<RiScWithMetadata>;\n register: UseFormRegister<RiScWithMetadata>;\n errors: FieldErrors<RiScWithMetadata>;\n state: RiScDialogStates;\n}\n\nfunction ConfigEncryptionDialog({\n gcpCryptoKeys,\n sopsData,\n setValue,\n register,\n errors,\n state,\n}: ConfigEncryptionDialogProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const [publicAgeKeyHelperText, setPublicKeyTextFieldHelperText] =\n useState('');\n const [publicAgeKeyError, setPublicKeyTextFieldError] = useState(false);\n const [newPublicAgeKey, setNewPublicAgeKey] = useState('');\n const [publicAgeKeys, setPublicAgeKeys] = useState<string[]>(() => {\n if (sopsData?.age) {\n return sopsData.age.map(age => age.recipient);\n }\n return [];\n });\n\n const [chosenGcpCryptoKey, setChosenGcpCryptoKey] =\n useState<GcpCryptoKeyObject>(() => {\n if (state === RiScDialogStates.EditEncryption && sopsData?.gcp_kms) {\n const gcpKms = sopsData.gcp_kms[0];\n if (gcpKms?.resource_id) {\n const resourceParts = gcpKms.resource_id.split('/');\n if (resourceParts.length === 8) {\n return {\n projectId: resourceParts[1],\n keyRing: resourceParts[5],\n keyName: resourceParts[7],\n locations: resourceParts[3],\n resourceId: gcpKms.resource_id,\n createdAt: gcpKms.created_at,\n hasEncryptDecryptAccess: true,\n };\n }\n }\n }\n return gcpCryptoKeys[0];\n });\n\n const [isAddPublicAgeKeyVisible, setIsAddPublicAgeKeyVisible] =\n useState(false);\n\n function showAddPublicAgeKey() {\n setIsAddPublicAgeKeyVisible(true);\n }\n\n useEffect(() => {\n setValue('sopsConfig', {\n shamir_threshold: 2,\n gcp_kms: chosenGcpCryptoKey\n ? [\n {\n resource_id: chosenGcpCryptoKey.resourceId,\n created_at: chosenGcpCryptoKey.createdAt,\n },\n ]\n : [],\n age: publicAgeKeys.map(key => ({ recipient: key })),\n });\n }, [chosenGcpCryptoKey, publicAgeKeys, setValue]);\n\n // Require one key group to contain a GCP key\n register('sopsConfig.gcp_kms', {\n validate: gcpKeys => gcpKeys.length > 0,\n });\n\n function handleChangeGcpCryptoKey(newKey: GcpCryptoKeyObject) {\n setChosenGcpCryptoKey(newKey);\n }\n\n function handleAddPublicAgeKey() {\n if (isPublicAgeKeyValid(newPublicAgeKey)) {\n if (publicAgeKeys.includes(newPublicAgeKey)) {\n setPublicKeyTextFieldHelperText(\n t('sopsConfigDialog.publicKeyHelperTextKeyAlreadyExistInSopsConfig'),\n );\n setPublicKeyTextFieldError(true);\n } else {\n setPublicAgeKeys([...publicAgeKeys, newPublicAgeKey]);\n setNewPublicAgeKey('');\n }\n } else {\n setPublicKeyTextFieldHelperText(\n t('sopsConfigDialog.publicKeyHelperTextKeyNotValid'),\n );\n setPublicKeyTextFieldError(true);\n }\n }\n\n return (\n <Flex direction=\"column\">\n <Text>\n {state === RiScDialogStates.Create\n ? t('sopsConfigDialog.description.new')\n : t('sopsConfigDialog.description.edit')}\n </Text>\n <Flex direction=\"column\" gap=\"0px\">\n <Text variant=\"body-medium\" weight=\"bold\">\n {t('sopsConfigDialog.selectKeysTitle')}\n </Text>\n {chosenGcpCryptoKey !== undefined ? (\n <>\n <Text>{t('sopsConfigDialog.gcpCryptoKeyDescription')}</Text>\n <GcpCryptoKeyMenu\n chosenGcpCryptoKey={chosenGcpCryptoKey}\n onChange={handleChangeGcpCryptoKey}\n gcpCryptoKeys={\n gcpCryptoKeys.includes(chosenGcpCryptoKey)\n ? gcpCryptoKeys\n : [...gcpCryptoKeys, chosenGcpCryptoKey]\n }\n />\n </>\n ) : (\n <Text variant=\"body-medium\">\n {t('sopsConfigDialog.gcpCryptoKeyNoSelectableKey')}\n </Text>\n )}\n </Flex>\n {errors.sopsConfig !== undefined && (\n <FormHelperText error={true}>\n {t('sopsConfigDialog.gcpCryptoKeyNonSelectedErrorMessage')}\n </FormHelperText>\n )}\n <Box className={styles.accordionContainer}>\n <Accordion elevation={0} defaultExpanded={publicAgeKeys.length > 0}>\n <AccordionSummary\n expandIcon={<ExpandMore />}\n aria-controls=\"panel1-content\"\n id=\"panel1-header\"\n >\n {t('sopsConfigDialog.publicAgeKeyQuestion')}\n </AccordionSummary>\n <AccordionDetails>\n <Box>\n {publicAgeKeys.length > 0 && (\n <FormLabel>\n {t('sopsConfigDialog.publicAgeKeysAlreadyPresent')}\n </FormLabel>\n )}\n {publicAgeKeys.length > 0 && (\n <Box\n style={{\n border: '1px solid',\n borderRadius: '4px',\n marginBottom: 2,\n }}\n >\n <List>\n {publicAgeKeys.map(key => (\n <ListItem key={key} dense>\n <ListItemText>{key}</ListItemText>\n <ListItemSecondaryAction>\n <IconButton\n onClick={() => {\n setPublicAgeKeys(\n publicAgeKeys.filter(k => k !== key),\n );\n }}\n >\n <DeleteIcon />\n </IconButton>\n </ListItemSecondaryAction>\n </ListItem>\n ))}\n </List>\n </Box>\n )}\n <Text as=\"p\" variant=\"body-large\">\n {t('dictionary.click')}{' '}\n <Link\n href={\n URLS.external.kartverket_atlassian_net__write_ros_locally\n }\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n color=\"primary\"\n >\n {t('dictionary.here')}\n </Link>{' '}\n {t('sopsConfigDialog.writeLocalRiscSuffix')}\n </Text>\n <Text as=\"p\" variant=\"body-large\">\n {`${t('sopsConfigDialog.publicAgeKeyDescription')} (${t(\n 'dictionary.optional',\n )})`}{' '}\n </Text>\n <Flex direction=\"column\" justify=\"between\" gap=\"2\" mt=\"2\">\n {!isAddPublicAgeKeyVisible && (\n <Button\n iconStart={<AddCircle />}\n type=\"button\"\n variant=\"secondary\"\n onClick={showAddPublicAgeKey}\n style={{\n width: 'fit-content',\n marginTop: '1rem',\n }}\n >\n {t('sopsConfigDialog.addPublicAgeKey')}\n </Button>\n )}\n {isAddPublicAgeKeyVisible && (\n <Flex align=\"center\" gap=\"1\">\n <TextField\n label={t('sopsConfigDialog.publicAgeKey')}\n helperText={publicAgeKeyHelperText}\n error={publicAgeKeyError}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n handleAddPublicAgeKey();\n }\n }}\n onFocus={() => {\n setPublicKeyTextFieldError(false);\n setPublicKeyTextFieldHelperText('');\n }}\n value={newPublicAgeKey}\n onChange={e => setNewPublicAgeKey(e.target.value)}\n sx={{ flex: 1 }}\n />\n <Button\n variant=\"primary\"\n onClick={handleAddPublicAgeKey}\n style={{\n maxWidth: 200,\n }}\n >\n {t('sopsConfigDialog.addPublicAgeKey')}\n </Button>\n </Flex>\n )}\n </Flex>\n </Box>\n </AccordionDetails>\n </Accordion>\n </Box>\n </Flex>\n );\n}\n\nexport default ConfigEncryptionDialog;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigEncryptionDialog.esm.js","sources":["../../../src/components/riScDialog/ConfigEncryptionDialog.tsx"],"sourcesContent":["import {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n FormLabel,\n IconButton,\n List,\n ListItem,\n ListItemSecondaryAction,\n ListItemText,\n TextField,\n} from '@mui/material';\nimport { GcpCryptoKeyRadioGroup } from '../sopsConfigDialog/GcpCryptoKeyRadioGroup';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { AddCircle, ExpandMore } from '@mui/icons-material';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport {\n CryptoKeyPermission,\n GcpCryptoKeyObject,\n SopsConfigDTO,\n} from '../../utils/DTOs';\nimport { useEffect, useState } from 'react';\nimport { RiScWithMetadata } from '../../utils/types';\nimport { UseFormRegister, UseFormSetValue } from 'react-hook-form';\nimport { RiScDialogStates } from './RiScDialog';\nimport { isPublicAgeKeyValid } from '../../utils/utilityfunctions';\nimport { FieldErrors } from 'react-hook-form';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport { URLS } from '../../urls';\nimport { Text, Link, Button, Flex, Box } from '@backstage/ui';\nimport styles from '../riScDialog/RiScDialog.module.css';\n\ninterface ConfigEncryptionDialogProps {\n gcpCryptoKeys: GcpCryptoKeyObject[];\n sopsData?: SopsConfigDTO;\n setValue: UseFormSetValue<RiScWithMetadata>;\n register: UseFormRegister<RiScWithMetadata>;\n errors: FieldErrors<RiScWithMetadata>;\n state: RiScDialogStates;\n}\n\nfunction ConfigEncryptionDialog({\n gcpCryptoKeys,\n sopsData,\n setValue,\n register,\n errors,\n state,\n}: ConfigEncryptionDialogProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const [publicAgeKeyHelperText, setPublicKeyTextFieldHelperText] =\n useState('');\n const [publicAgeKeyError, setPublicKeyTextFieldError] = useState(false);\n const [newPublicAgeKey, setNewPublicAgeKey] = useState('');\n const [publicAgeKeys, setPublicAgeKeys] = useState<string[]>(() => {\n if (sopsData?.age) {\n return sopsData.age.map(age => age.recipient);\n }\n return [];\n });\n\n // The RiSc may have been encrypted with a key that\n // no longer matches the naming convention of keys\n // returned from the backend. But we still want to show\n // that key as an option in the radio group, so we\n // build a key object from the sops data of the RiSc if needed.\n const riscCryptoKey =\n state === RiScDialogStates.EditEncryption && sopsData?.gcp_kms\n ? (gcpCryptoKeys.find(\n key => key.resourceId === sopsData.gcp_kms![0].resource_id,\n ) ?? buildKeyFromSopsData(sopsData))\n : undefined;\n\n const choosableCryptoKeys = riscCryptoKey\n ? [\n riscCryptoKey,\n ...gcpCryptoKeys.filter(\n key => key.resourceId !== riscCryptoKey.resourceId,\n ),\n ]\n : gcpCryptoKeys;\n\n const [chosenGcpCryptoKey, setChosenGcpCryptoKey] = useState<\n GcpCryptoKeyObject | undefined\n >(() => {\n if (state === RiScDialogStates.EditEncryption && sopsData?.gcp_kms) {\n const gcpKms = sopsData.gcp_kms[0];\n return choosableCryptoKeys.find(\n key => key.resourceId === gcpKms?.resource_id,\n );\n }\n return gcpCryptoKeys[0];\n });\n\n const [isAddPublicAgeKeyVisible, setIsAddPublicAgeKeyVisible] =\n useState(false);\n\n function showAddPublicAgeKey() {\n setIsAddPublicAgeKeyVisible(true);\n }\n\n useEffect(() => {\n setValue('sopsConfig', {\n shamir_threshold: 2,\n gcp_kms: chosenGcpCryptoKey\n ? [\n {\n resource_id: chosenGcpCryptoKey.resourceId,\n created_at: chosenGcpCryptoKey.createdAt,\n },\n ]\n : [],\n age: publicAgeKeys.map(key => ({ recipient: key })),\n });\n }, [chosenGcpCryptoKey, publicAgeKeys, setValue]);\n\n // Require one key group to contain a GCP key\n register('sopsConfig.gcp_kms', {\n validate: gcpKeys => gcpKeys.length > 0,\n });\n\n function handleChangeGcpCryptoKey(newKey: GcpCryptoKeyObject) {\n setChosenGcpCryptoKey(newKey);\n }\n\n function handleAddPublicAgeKey() {\n if (isPublicAgeKeyValid(newPublicAgeKey)) {\n if (publicAgeKeys.includes(newPublicAgeKey)) {\n setPublicKeyTextFieldHelperText(\n t('sopsConfigDialog.publicKeyHelperTextKeyAlreadyExistInSopsConfig'),\n );\n setPublicKeyTextFieldError(true);\n } else {\n setPublicAgeKeys([...publicAgeKeys, newPublicAgeKey]);\n setNewPublicAgeKey('');\n }\n } else {\n setPublicKeyTextFieldHelperText(\n t('sopsConfigDialog.publicKeyHelperTextKeyNotValid'),\n );\n setPublicKeyTextFieldError(true);\n }\n }\n\n return (\n <Flex direction=\"column\">\n <Text>\n {state === RiScDialogStates.Create\n ? t('sopsConfigDialog.description.new')\n : t('sopsConfigDialog.description.edit')}\n </Text>\n <Flex direction=\"column\" gap=\"0px\">\n <Text variant=\"body-medium\" weight=\"bold\">\n {t('sopsConfigDialog.selectKeysTitle')}\n </Text>\n <GcpCryptoKeyRadioGroup\n chosenGcpCryptoKey={chosenGcpCryptoKey}\n onChange={handleChangeGcpCryptoKey}\n gcpCryptoKeys={choosableCryptoKeys}\n />\n </Flex>\n {errors.sopsConfig !== undefined && (\n <FormHelperText error={true}>\n {t('sopsConfigDialog.gcpCryptoKeyNonSelectedErrorMessage')}\n </FormHelperText>\n )}\n <Box className={styles.accordionContainer}>\n <Accordion elevation={0} defaultExpanded={publicAgeKeys.length > 0}>\n <AccordionSummary\n expandIcon={<ExpandMore />}\n aria-controls=\"panel1-content\"\n id=\"panel1-header\"\n >\n {t('sopsConfigDialog.publicAgeKeyQuestion')}\n </AccordionSummary>\n <AccordionDetails>\n <Box>\n {publicAgeKeys.length > 0 && (\n <FormLabel>\n {t('sopsConfigDialog.publicAgeKeysAlreadyPresent')}\n </FormLabel>\n )}\n {publicAgeKeys.length > 0 && (\n <Box\n style={{\n border: '1px solid',\n borderRadius: '4px',\n marginBottom: 2,\n }}\n >\n <List>\n {publicAgeKeys.map(key => (\n <ListItem key={key} dense>\n <ListItemText>{key}</ListItemText>\n <ListItemSecondaryAction>\n <IconButton\n onClick={() => {\n setPublicAgeKeys(\n publicAgeKeys.filter(k => k !== key),\n );\n }}\n >\n <DeleteIcon />\n </IconButton>\n </ListItemSecondaryAction>\n </ListItem>\n ))}\n </List>\n </Box>\n )}\n <Text as=\"p\" variant=\"body-large\">\n {t('dictionary.click')}{' '}\n <Link\n href={\n URLS.external.kartverket_atlassian_net__write_ros_locally\n }\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n color=\"primary\"\n >\n {t('dictionary.here')}\n </Link>{' '}\n {t('sopsConfigDialog.writeLocalRiscSuffix')}\n </Text>\n <Text as=\"p\" variant=\"body-large\">\n {`${t('sopsConfigDialog.publicAgeKeyDescription')} (${t(\n 'dictionary.optional',\n )})`}{' '}\n </Text>\n <Flex direction=\"column\" justify=\"between\" gap=\"2\" mt=\"2\">\n {!isAddPublicAgeKeyVisible && (\n <Button\n iconStart={<AddCircle />}\n type=\"button\"\n variant=\"secondary\"\n onClick={showAddPublicAgeKey}\n style={{\n width: 'fit-content',\n marginTop: '1rem',\n }}\n >\n {t('sopsConfigDialog.addPublicAgeKey')}\n </Button>\n )}\n {isAddPublicAgeKeyVisible && (\n <Flex align=\"center\" gap=\"1\">\n <TextField\n label={t('sopsConfigDialog.publicAgeKey')}\n helperText={publicAgeKeyHelperText}\n error={publicAgeKeyError}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n handleAddPublicAgeKey();\n }\n }}\n onFocus={() => {\n setPublicKeyTextFieldError(false);\n setPublicKeyTextFieldHelperText('');\n }}\n value={newPublicAgeKey}\n onChange={e => setNewPublicAgeKey(e.target.value)}\n sx={{ flex: 1 }}\n />\n <Button\n variant=\"primary\"\n onClick={handleAddPublicAgeKey}\n style={{\n maxWidth: 200,\n }}\n >\n {t('sopsConfigDialog.addPublicAgeKey')}\n </Button>\n </Flex>\n )}\n </Flex>\n </Box>\n </AccordionDetails>\n </Accordion>\n </Box>\n </Flex>\n );\n}\n\nexport default ConfigEncryptionDialog;\n\nfunction buildKeyFromSopsData(sopsData: SopsConfigDTO | undefined) {\n const gcpKms = sopsData?.gcp_kms?.[0];\n if (!gcpKms || !gcpKms.resource_id) {\n return undefined;\n }\n const resourceParts = gcpKms.resource_id.split('/');\n if (resourceParts.length === 8) {\n return {\n projectId: resourceParts[1],\n keyRing: resourceParts[5],\n name: resourceParts[7],\n locations: resourceParts[3],\n resourceId: gcpKms.resource_id,\n createdAt: gcpKms.created_at,\n userPermissions: [CryptoKeyPermission.UNKNOWN],\n };\n }\n\n return undefined;\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import { pluginRiScTranslationRef } from '../../utils/translations.esm.js';
3
3
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
4
4
  import { Box, Text, Switch, Flex, RadioGroup, Radio } from '@backstage/ui';
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigInitialRisc.esm.js","sources":["../../../src/components/riScDialog/ConfigInitialRisc.tsx"],"sourcesContent":["import { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { Box, Flex, Radio, RadioGroup, Switch, Text } from '@backstage/ui';\nimport { RiScWithMetadata } from '../../utils/types.ts';\nimport { useDefaultRiScTypeDescriptors } from '../../contexts/DefaultRiScTypesContext.tsx';\nimport { UseFormSetValue } from 'react-hook-form/dist/types/form';\nimport { useTheme } from '@mui/material/styles';\nimport styles from './ConfigInitialRisc.module.css';\n\ntype RadioOptionProps = {\n value: string;\n label: string;\n description?: string;\n active?: boolean;\n numActions: number | null;\n numScenarios: number | null;\n recommendedBackstageComponentType?: string | null;\n};\n\nconst RadioOption = ({\n value,\n label,\n description,\n active = true,\n numActions,\n numScenarios,\n recommendedBackstageComponentType,\n}: RadioOptionProps) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const theme = useTheme();\n const style = {\n fontSize: '12px',\n border: `1px solid ${active ? 'var(--bui-gray-6)' : 'var(--bui-gray-8)'}`,\n borderRadius: '24px',\n padding: '2px 8px',\n };\n\n return (\n <>\n <Flex\n direction=\"column\"\n align=\"start\"\n p=\"12px 16px\"\n gap=\"2\"\n style={{\n backgroundColor:\n theme.palette.mode === 'dark'\n ? 'var(--bui-gray-5)'\n : 'var(--bui-gray-2)',\n borderRadius: '8px',\n }}\n >\n <Radio value={value}>\n <Text\n weight=\"bold\"\n as=\"h5\"\n variant=\"body-large\"\n color={active ? 'secondary' : 'primary'}\n >\n {label}\n </Text>\n <Flex gap=\"8px\">\n <Text color={active ? 'secondary' : 'primary'} style={style}>\n {numActions} {t('dictionary.measuresInitialRiSc')}\n </Text>\n <Text color={active ? 'secondary' : 'primary'} style={style}>\n {numScenarios} {t('dictionary.scenarios')}\n </Text>\n </Flex>\n </Radio>\n {description && (\n <Flex ml=\"6\">\n <Text\n as=\"p\"\n variant=\"body-large\"\n color={active ? 'secondary' : 'primary'}\n >\n {description}\n </Text>\n </Flex>\n )}\n {recommendedBackstageComponentType && (\n <Text\n variant=\"body-large\"\n color={active ? 'secondary' : 'primary'}\n className={styles.recommendedForComponentTypeText}\n >\n {t('rosDialog.recommendedForComponentOfType')}{' '}\n <b>{recommendedBackstageComponentType}</b>.\n </Text>\n )}\n </Flex>\n </>\n );\n};\n\ninterface ConfigInitialRiscProps {\n switchOn: boolean;\n setSwitchOn: (val: boolean) => void;\n setValue: UseFormSetValue<RiScWithMetadata>;\n selectedRiScId: string | undefined;\n setSelectedRiScId: (riScId: string | undefined) => void;\n}\n\nfunction ConfigInitialRisc(props: ConfigInitialRiscProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const {\n defaultRiScTypeDescriptors,\n riScSelectedByDefault,\n getDescriptorOfId,\n } = useDefaultRiScTypeDescriptors();\n\n function onCreateDefaultRiScSwitchChange() {\n if (props.switchOn) {\n props.setValue('content.title', '');\n props.setValue('content.scope', '');\n } else {\n props.setSelectedRiScId(riScSelectedByDefault?.id);\n if (riScSelectedByDefault) {\n props.setValue('content.title', riScSelectedByDefault.defaultTitle);\n props.setValue('content.scope', riScSelectedByDefault.defaultScope);\n }\n }\n props.setSwitchOn(!props.switchOn);\n }\n\n function onSelectRiScType(selectedDefaultRiScId: string) {\n props.setSelectedRiScId(selectedDefaultRiScId);\n const descriptor = getDescriptorOfId(selectedDefaultRiScId);\n if (descriptor) {\n props.setValue('content.title', descriptor.defaultTitle);\n props.setValue('content.scope', descriptor.defaultScope);\n }\n }\n\n return (\n <Box>\n {defaultRiScTypeDescriptors.length > 0 && (\n <>\n <Box pb=\"2\">\n <Text variant=\"body-medium\" as=\"p\">\n {t('rosDialog.initialRiscScopeDescription')}\n </Text>\n <Box pt=\"2\">\n <Switch\n isSelected={props.switchOn}\n onChange={onCreateDefaultRiScSwitchChange}\n label={\n props.switchOn ? t('dictionary.yes') : t('dictionary.no')\n }\n />\n </Box>\n </Box>\n <Flex direction=\"column\" justify=\"between\" mt=\"2\" gap=\"2\">\n <Text\n weight=\"bold\"\n as=\"p\"\n color={!props.switchOn ? 'secondary' : 'primary'}\n >\n {t('rosDialog.applicationType')}\n </Text>\n <Text\n variant=\"body-medium\"\n color={!props.switchOn ? 'secondary' : 'primary'}\n >\n {t('rosDialog.initialRiscApplicationType')}\n </Text>\n\n <RadioGroup\n onChange={onSelectRiScType}\n isDisabled={!props.switchOn}\n aria-label=\"Select application type\"\n value={props.selectedRiScId}\n className={styles.radioGroup}\n >\n {defaultRiScTypeDescriptors.map(descriptor => (\n <RadioOption\n key={descriptor.id}\n value={descriptor.id}\n label={descriptor.listName}\n description={descriptor.listDescription}\n active={!props.switchOn}\n numActions={descriptor.numberOfActions}\n numScenarios={descriptor.numberOfScenarios}\n recommendedBackstageComponentType={\n descriptor.preferredBackstageComponentType\n }\n />\n ))}\n </RadioGroup>\n </Flex>\n </>\n )}\n {defaultRiScTypeDescriptors.length === 0 && (\n <Text>{t('rosDialog.noInitialRiScFound')}</Text>\n )}\n </Box>\n );\n}\n\nexport default ConfigInitialRisc;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigInitialRisc.esm.js","sources":["../../../src/components/riScDialog/ConfigInitialRisc.tsx"],"sourcesContent":["import { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { Box, Flex, Radio, RadioGroup, Switch, Text } from '@backstage/ui';\nimport { RiScWithMetadata } from '../../utils/types.ts';\nimport { useDefaultRiScTypeDescriptors } from '../../contexts/DefaultRiScTypesContext.tsx';\nimport { UseFormSetValue } from 'react-hook-form';\nimport { useTheme } from '@mui/material/styles';\nimport styles from './ConfigInitialRisc.module.css';\n\ntype RadioOptionProps = {\n value: string;\n label: string;\n description?: string;\n active?: boolean;\n numActions: number | null;\n numScenarios: number | null;\n recommendedBackstageComponentType?: string | null;\n};\n\nconst RadioOption = ({\n value,\n label,\n description,\n active = true,\n numActions,\n numScenarios,\n recommendedBackstageComponentType,\n}: RadioOptionProps) => {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const theme = useTheme();\n const style = {\n fontSize: '12px',\n border: `1px solid ${active ? 'var(--bui-gray-6)' : 'var(--bui-gray-8)'}`,\n borderRadius: '24px',\n padding: '2px 8px',\n };\n\n return (\n <>\n <Flex\n direction=\"column\"\n align=\"start\"\n p=\"12px 16px\"\n gap=\"2\"\n style={{\n backgroundColor:\n theme.palette.mode === 'dark'\n ? 'var(--bui-gray-5)'\n : 'var(--bui-gray-2)',\n borderRadius: '8px',\n }}\n >\n <Radio value={value}>\n <Text\n weight=\"bold\"\n as=\"h5\"\n variant=\"body-large\"\n color={active ? 'secondary' : 'primary'}\n >\n {label}\n </Text>\n <Flex gap=\"8px\">\n <Text color={active ? 'secondary' : 'primary'} style={style}>\n {numActions} {t('dictionary.measuresInitialRiSc')}\n </Text>\n <Text color={active ? 'secondary' : 'primary'} style={style}>\n {numScenarios} {t('dictionary.scenarios')}\n </Text>\n </Flex>\n </Radio>\n {description && (\n <Flex ml=\"6\">\n <Text\n as=\"p\"\n variant=\"body-large\"\n color={active ? 'secondary' : 'primary'}\n >\n {description}\n </Text>\n </Flex>\n )}\n {recommendedBackstageComponentType && (\n <Text\n variant=\"body-large\"\n color={active ? 'secondary' : 'primary'}\n className={styles.recommendedForComponentTypeText}\n >\n {t('rosDialog.recommendedForComponentOfType')}{' '}\n <b>{recommendedBackstageComponentType}</b>.\n </Text>\n )}\n </Flex>\n </>\n );\n};\n\ninterface ConfigInitialRiscProps {\n switchOn: boolean;\n setSwitchOn: (val: boolean) => void;\n setValue: UseFormSetValue<RiScWithMetadata>;\n selectedRiScId: string | undefined;\n setSelectedRiScId: (riScId: string | undefined) => void;\n}\n\nfunction ConfigInitialRisc(props: ConfigInitialRiscProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const {\n defaultRiScTypeDescriptors,\n riScSelectedByDefault,\n getDescriptorOfId,\n } = useDefaultRiScTypeDescriptors();\n\n function onCreateDefaultRiScSwitchChange() {\n if (props.switchOn) {\n props.setValue('content.title', '');\n props.setValue('content.scope', '');\n } else {\n props.setSelectedRiScId(riScSelectedByDefault?.id);\n if (riScSelectedByDefault) {\n props.setValue('content.title', riScSelectedByDefault.defaultTitle);\n props.setValue('content.scope', riScSelectedByDefault.defaultScope);\n }\n }\n props.setSwitchOn(!props.switchOn);\n }\n\n function onSelectRiScType(selectedDefaultRiScId: string) {\n props.setSelectedRiScId(selectedDefaultRiScId);\n const descriptor = getDescriptorOfId(selectedDefaultRiScId);\n if (descriptor) {\n props.setValue('content.title', descriptor.defaultTitle);\n props.setValue('content.scope', descriptor.defaultScope);\n }\n }\n\n return (\n <Box>\n {defaultRiScTypeDescriptors.length > 0 && (\n <>\n <Box pb=\"2\">\n <Text variant=\"body-medium\" as=\"p\">\n {t('rosDialog.initialRiscScopeDescription')}\n </Text>\n <Box pt=\"2\">\n <Switch\n isSelected={props.switchOn}\n onChange={onCreateDefaultRiScSwitchChange}\n label={\n props.switchOn ? t('dictionary.yes') : t('dictionary.no')\n }\n />\n </Box>\n </Box>\n <Flex direction=\"column\" justify=\"between\" mt=\"2\" gap=\"2\">\n <Text\n weight=\"bold\"\n as=\"p\"\n color={!props.switchOn ? 'secondary' : 'primary'}\n >\n {t('rosDialog.applicationType')}\n </Text>\n <Text\n variant=\"body-medium\"\n color={!props.switchOn ? 'secondary' : 'primary'}\n >\n {t('rosDialog.initialRiscApplicationType')}\n </Text>\n\n <RadioGroup\n onChange={onSelectRiScType}\n isDisabled={!props.switchOn}\n aria-label=\"Select application type\"\n value={props.selectedRiScId}\n className={styles.radioGroup}\n >\n {defaultRiScTypeDescriptors.map(descriptor => (\n <RadioOption\n key={descriptor.id}\n value={descriptor.id}\n label={descriptor.listName}\n description={descriptor.listDescription}\n active={!props.switchOn}\n numActions={descriptor.numberOfActions}\n numScenarios={descriptor.numberOfScenarios}\n recommendedBackstageComponentType={\n descriptor.preferredBackstageComponentType\n }\n />\n ))}\n </RadioGroup>\n </Flex>\n </>\n )}\n {defaultRiScTypeDescriptors.length === 0 && (\n <Text>{t('rosDialog.noInitialRiScFound')}</Text>\n )}\n </Box>\n );\n}\n\nexport default ConfigInitialRisc;\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
2
 
3
- var css_248z = ".ConfigInitialRisc-module_radioGroup__EPL8I {\n height: 300px;\n overflow-y: auto;\n}\n\n@media (max-height: 770px) {\n .ConfigInitialRisc-module_radioGroup__EPL8I {\n height: 200px;\n }\n}\n\n.ConfigInitialRisc-module_recommendedForComponentTypeText__XCI4D {\n margin-left: var(--bui-space-4);\n font-style: italic;\n}\n";
4
- var styles = {"radioGroup":"ConfigInitialRisc-module_radioGroup__EPL8I","recommendedForComponentTypeText":"ConfigInitialRisc-module_recommendedForComponentTypeText__XCI4D"};
3
+ var css_248z = ".ConfigInitialRisc_radioGroup__857be6e25e {\n height: 300px;\n overflow-y: auto;\n}\n\n@media (max-height: 770px) {\n .ConfigInitialRisc_radioGroup__857be6e25e {\n height: 200px;\n }\n}\n\n.ConfigInitialRisc_recommendedForComponentTypeText__857be6e25e {\n margin-left: var(--bui-space-4);\n font-style: italic;\n}\n";
4
+ var styles = {"radioGroup":"ConfigInitialRisc_radioGroup__857be6e25e","recommendedForComponentTypeText":"ConfigInitialRisc_recommendedForComponentTypeText__857be6e25e"};
5
5
  styleInject(css_248z);
6
6
 
7
7
  export { styles as default };
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigRiscInfo.esm.js","sources":["../../../src/components/riScDialog/ConfigRiscInfo.tsx"],"sourcesContent":["import { MarkdownInput } from '../common/MarkdownInput';\nimport { Input } from '../common/Input';\nimport {\n UseFormRegister,\n UseFormSetValue,\n UseFormWatch,\n} from 'react-hook-form/dist/types/form';\nimport { RiScWithMetadata } from '../../utils/types';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { FieldErrors } from 'react-hook-form/dist/types/errors';\nimport { Flex } from '@backstage/ui';\n\ninterface ConfigRiscInfoProps {\n register: UseFormRegister<RiScWithMetadata>;\n errors: FieldErrors<RiScWithMetadata>;\n setValue: UseFormSetValue<RiScWithMetadata>;\n watch: UseFormWatch<RiScWithMetadata>;\n}\n\nfunction ConfigRiscInfo(props: ConfigRiscInfoProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const currentScope = props.watch('content.scope');\n return (\n <Flex gap=\"16px\" direction=\"column\" px=\"1px\">\n <Input\n required\n {...props.register('content.title', { required: true })}\n error={props.errors?.content?.title !== undefined}\n label={t('dictionary.title')}\n helperText={props.errors?.content?.title && t('rosDialog.titleError')}\n />\n <MarkdownInput\n {...props.register('content.scope')}\n value={currentScope}\n label={t('dictionary.scope')}\n sublabel={t('rosDialog.scopeDescription')}\n error={props.errors?.content?.scope !== undefined}\n minRows={8}\n onMarkdownChange={value => props.setValue('content.scope', value)}\n />\n </Flex>\n );\n}\n\nexport default ConfigRiscInfo;\n"],"names":[],"mappings":";;;;;;;AAoBA,SAAS,eAAe,KAAA,EAA4B;AAClD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM,YAAA,GAAe,KAAA,CAAM,KAAA,CAAM,eAAe,CAAA;AAChD,EAAA,4BACG,IAAA,EAAA,EAAK,GAAA,EAAI,QAAO,SAAA,EAAU,QAAA,EAAS,IAAG,KAAA,EACrC,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAQ,IAAA;AAAA,QACP,GAAG,KAAA,CAAM,QAAA,CAAS,iBAAiB,EAAE,QAAA,EAAU,MAAM,CAAA;AAAA,QACtD,KAAA,EAAO,KAAA,CAAM,MAAA,EAAQ,OAAA,EAAS,KAAA,KAAU,MAAA;AAAA,QACxC,KAAA,EAAO,EAAE,kBAAkB,CAAA;AAAA,QAC3B,YAAY,KAAA,CAAM,MAAA,EAAQ,OAAA,EAAS,KAAA,IAAS,EAAE,sBAAsB;AAAA;AAAA,KACtE;AAAA,oBACA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA,CAAM,QAAA,CAAS,eAAe,CAAA;AAAA,QAClC,KAAA,EAAO,YAAA;AAAA,QACP,KAAA,EAAO,EAAE,kBAAkB,CAAA;AAAA,QAC3B,QAAA,EAAU,EAAE,4BAA4B,CAAA;AAAA,QACxC,KAAA,EAAO,KAAA,CAAM,MAAA,EAAQ,OAAA,EAAS,KAAA,KAAU,MAAA;AAAA,QACxC,OAAA,EAAS,CAAA;AAAA,QACT,gBAAA,EAAkB,CAAA,KAAA,KAAS,KAAA,CAAM,QAAA,CAAS,iBAAiB,KAAK;AAAA;AAAA;AAClE,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"ConfigRiscInfo.esm.js","sources":["../../../src/components/riScDialog/ConfigRiscInfo.tsx"],"sourcesContent":["import { MarkdownInput } from '../common/MarkdownInput';\nimport { Input } from '../common/Input';\nimport {\n UseFormRegister,\n UseFormSetValue,\n UseFormWatch,\n} from 'react-hook-form';\nimport { RiScWithMetadata } from '../../utils/types';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { FieldErrors } from 'react-hook-form';\nimport { Flex } from '@backstage/ui';\n\ninterface ConfigRiscInfoProps {\n register: UseFormRegister<RiScWithMetadata>;\n errors: FieldErrors<RiScWithMetadata>;\n setValue: UseFormSetValue<RiScWithMetadata>;\n watch: UseFormWatch<RiScWithMetadata>;\n}\n\nfunction ConfigRiscInfo(props: ConfigRiscInfoProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const currentScope = props.watch('content.scope');\n return (\n <Flex gap=\"16px\" direction=\"column\" px=\"1px\">\n <Input\n required\n {...props.register('content.title', { required: true })}\n error={props.errors?.content?.title !== undefined}\n label={t('dictionary.title')}\n helperText={props.errors?.content?.title && t('rosDialog.titleError')}\n />\n <MarkdownInput\n {...props.register('content.scope')}\n value={currentScope}\n label={t('dictionary.scope')}\n sublabel={t('rosDialog.scopeDescription')}\n error={props.errors?.content?.scope !== undefined}\n minRows={8}\n onMarkdownChange={value => props.setValue('content.scope', value)}\n />\n </Flex>\n );\n}\n\nexport default ConfigRiscInfo;\n"],"names":[],"mappings":";;;;;;;AAoBA,SAAS,eAAe,KAAA,EAA4B;AAClD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM,YAAA,GAAe,KAAA,CAAM,KAAA,CAAM,eAAe,CAAA;AAChD,EAAA,4BACG,IAAA,EAAA,EAAK,GAAA,EAAI,QAAO,SAAA,EAAU,QAAA,EAAS,IAAG,KAAA,EACrC,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAQ,IAAA;AAAA,QACP,GAAG,KAAA,CAAM,QAAA,CAAS,iBAAiB,EAAE,QAAA,EAAU,MAAM,CAAA;AAAA,QACtD,KAAA,EAAO,KAAA,CAAM,MAAA,EAAQ,OAAA,EAAS,KAAA,KAAU,MAAA;AAAA,QACxC,KAAA,EAAO,EAAE,kBAAkB,CAAA;AAAA,QAC3B,YAAY,KAAA,CAAM,MAAA,EAAQ,OAAA,EAAS,KAAA,IAAS,EAAE,sBAAsB;AAAA;AAAA,KACtE;AAAA,oBACA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA,CAAM,QAAA,CAAS,eAAe,CAAA;AAAA,QAClC,KAAA,EAAO,YAAA;AAAA,QACP,KAAA,EAAO,EAAE,kBAAkB,CAAA;AAAA,QAC3B,QAAA,EAAU,EAAE,4BAA4B,CAAA;AAAA,QACxC,KAAA,EAAO,KAAA,CAAM,MAAA,EAAQ,OAAA,EAAS,KAAA,KAAU,MAAA;AAAA,QACxC,OAAA,EAAS,CAAA;AAAA,QACT,gBAAA,EAAkB,CAAA,KAAA,KAAS,KAAA,CAAM,QAAA,CAAS,iBAAiB,KAAK;AAAA;AAAA;AAClE,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditEncryptionButton.esm.js","sources":["../../../src/components/riScDialog/EditEncryptionButton.tsx"],"sourcesContent":["import { Button } from '@backstage/ui';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useRiScs } from '../../contexts/RiScContext';\n\nexport function EditEncryptionButton({\n onEditEncryption,\n}: {\n onEditEncryption: () => void;\n}) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { selectedRiSc } = useRiScs();\n\n if (!selectedRiSc) {\n return null;\n }\n\n return (\n <Button\n variant=\"secondary\"\n iconStart={<i className=\"ri-settings-2-line\" />}\n onClick={onEditEncryption}\n >\n {t('contentHeader.editEncryption')}\n </Button>\n );\n}\n"],"names":[],"mappings":";;;;;;AAKO,SAAS,oBAAA,CAAqB;AAAA,EACnC;AACF,CAAA,EAEG;AACD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM,EAAE,YAAA,EAAa,GAAI,QAAA,EAAS;AAElC,EAAA,IAAI,CAAC,YAAA,EAAc;AACjB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,WAAA;AAAA,MACR,SAAA,kBAAW,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oBAAA,EAAqB,CAAA;AAAA,MAC7C,OAAA,EAAS,gBAAA;AAAA,MAER,YAAE,8BAA8B;AAAA;AAAA,GACnC;AAEJ;;;;"}
1
+ {"version":3,"file":"EditEncryptionButton.esm.js","sources":["../../../src/components/riScDialog/EditEncryptionButton.tsx"],"sourcesContent":["import { Button } from '@backstage/ui';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useRiScs } from '../../contexts/RiScContext';\n\nexport function EditEncryptionButton({\n onEditEncryption,\n}: {\n onEditEncryption: () => void;\n}) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const { selectedRiSc } = useRiScs();\n\n if (!selectedRiSc) {\n return null;\n }\n\n return (\n <Button\n variant=\"secondary\"\n iconStart={<i className=\"ri-settings-2-line\" />}\n onClick={onEditEncryption}\n >\n {t('contentHeader.editEncryption')}\n </Button>\n );\n}\n"],"names":[],"mappings":";;;;;;AAKO,SAAS,oBAAA,CAAqB;AAAA,EACnC;AACF,CAAA,EAEG;AACD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,MAAM,EAAE,YAAA,EAAa,GAAI,QAAA,EAAS;AAElC,EAAA,IAAI,CAAC,YAAA,EAAc;AACjB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,WAAA;AAAA,MACR,SAAA,kBAAW,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oBAAA,EAAqB,CAAA;AAAA,MAC7C,OAAA,EAAS,gBAAA;AAAA,MAER,YAAE,8BAA8B;AAAA;AAAA,GACnC;AAEJ;;;;"}
@@ -1,7 +1,7 @@
1
1
  import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
2
 
3
- var css_248z = ".RiScDialog-module_subtitle__DD2TU {\n padding-top: 24px;\n padding-bottom: 8px;\n}\n\n.RiScDialog-module_deleteButton__7-Fam {\n color: #d32f2f;\n padding-left: 0;\n}\n\n.RiScDialog-module_deleteButtonIcon__-Biyl {\n font-size: 16px;\n}\n\n.RiScDialog-module_matrixDialog__ttMKf {\n width: 1050px;\n margin: 32px;\n padding: 24px;\n border-radius: 4px;\n}\n\n.RiScDialog-module_matrixDialogBody__pm-CM {\n padding-bottom: 32px;\n}\n\n.RiScDialog-module_createRiscDialog__eOOvy {\n padding: 16px 12px;\n gap: 16px;\n border-radius: 4px;\n width: 600px;\n}\n\n.RiScDialog-module_accordionContainer__bj-Kf {\n border: 1px solid var(--ros-gray-200);\n border-radius: 4px;\n}\n\n[data-theme-mode='dark'] .RiScDialog-module_accordionContainer__bj-Kf {\n border: 1px solid var(--bui-white);\n}\n";
4
- var styles = {"subtitle":"RiScDialog-module_subtitle__DD2TU","deleteButton":"RiScDialog-module_deleteButton__7-Fam","deleteButtonIcon":"RiScDialog-module_deleteButtonIcon__-Biyl","matrixDialog":"RiScDialog-module_matrixDialog__ttMKf","matrixDialogBody":"RiScDialog-module_matrixDialogBody__pm-CM","createRiscDialog":"RiScDialog-module_createRiscDialog__eOOvy","accordionContainer":"RiScDialog-module_accordionContainer__bj-Kf"};
3
+ var css_248z = ".RiScDialog_subtitle__07347c1283 {\n padding-top: 24px;\n padding-bottom: 8px;\n}\n\n.RiScDialog_deleteButton__07347c1283 {\n color: #d32f2f;\n padding-left: 0;\n}\n\n.RiScDialog_deleteButtonIcon__07347c1283 {\n font-size: 16px;\n}\n\n.RiScDialog_matrixDialog__07347c1283 {\n width: 1050px;\n margin: 32px;\n padding: 24px;\n border-radius: 4px;\n}\n\n.RiScDialog_matrixDialogBody__07347c1283 {\n padding-bottom: 32px;\n}\n\n.RiScDialog_createRiscDialog__07347c1283 {\n padding: 16px 12px;\n gap: 16px;\n border-radius: 4px;\n width: 600px;\n}\n\n.RiScDialog_accordionContainer__07347c1283 {\n border: 1px solid var(--ros-gray-200);\n border-radius: 4px;\n}\n\n[data-theme-mode='dark'] .RiScDialog_accordionContainer__07347c1283 {\n border: 1px solid var(--bui-white);\n}\n";
4
+ var styles = {"subtitle":"RiScDialog_subtitle__07347c1283","deleteButton":"RiScDialog_deleteButton__07347c1283","deleteButtonIcon":"RiScDialog_deleteButtonIcon__07347c1283","matrixDialog":"RiScDialog_matrixDialog__07347c1283","matrixDialogBody":"RiScDialog_matrixDialogBody__07347c1283","createRiscDialog":"RiScDialog_createRiscDialog__07347c1283","accordionContainer":"RiScDialog_accordionContainer__07347c1283"};
5
5
  styleInject(css_248z);
6
6
 
7
7
  export { styles as default };
@@ -0,0 +1,26 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { Card, CardBody, Flex, Text, Button } from '@backstage/ui';
3
+ import { pluginRiScTranslationRef } from '../../utils/translations.esm.js';
4
+ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
5
+
6
+ function ErrorState() {
7
+ const { t } = useTranslationRef(pluginRiScTranslationRef);
8
+ const refreshPage = () => {
9
+ window.location.reload();
10
+ };
11
+ return /* @__PURE__ */ jsx(
12
+ Card,
13
+ {
14
+ style: {
15
+ width: "520px"
16
+ },
17
+ children: /* @__PURE__ */ jsx(CardBody, { children: /* @__PURE__ */ jsxs(Flex, { direction: "column", align: "center", children: [
18
+ /* @__PURE__ */ jsx(Text, { variant: "body-large", children: t("errorMessages.FailedToFetchRiScs") }),
19
+ /* @__PURE__ */ jsx(Button, { onClick: refreshPage, children: t("dictionary.refresh") })
20
+ ] }) })
21
+ }
22
+ );
23
+ }
24
+
25
+ export { ErrorState };
26
+ //# sourceMappingURL=ErrorState.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorState.esm.js","sources":["../../../src/components/riScInfo/ErrorState.tsx"],"sourcesContent":["import { Card, CardBody, Flex, Text, Button } from '@backstage/ui';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nexport function ErrorState() {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const refreshPage = () => {\n window.location.reload();\n };\n return (\n <Card\n style={{\n width: '520px',\n }}\n >\n <CardBody>\n <Flex direction=\"column\" align=\"center\">\n <Text variant=\"body-large\">\n {t('errorMessages.FailedToFetchRiScs')}\n </Text>\n <Button onClick={refreshPage}>{t('dictionary.refresh')}</Button>\n </Flex>\n </CardBody>\n </Card>\n );\n}\n"],"names":[],"mappings":";;;;;AAIO,SAAS,UAAA,GAAa;AAC3B,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,MAAA,CAAO,SAAS,MAAA,EAAO;AAAA,EACzB,CAAA;AACA,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO;AAAA,QACL,KAAA,EAAO;AAAA,OACT;AAAA,MAEA,8BAAC,QAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,QAAK,SAAA,EAAU,QAAA,EAAS,OAAM,QAAA,EAC7B,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,YAAA,EACX,QAAA,EAAA,CAAA,CAAE,kCAAkC,CAAA,EACvC,CAAA;AAAA,4BACC,MAAA,EAAA,EAAO,OAAA,EAAS,WAAA,EAAc,QAAA,EAAA,CAAA,CAAE,oBAAoB,CAAA,EAAE;AAAA,OAAA,EACzD,CAAA,EACF;AAAA;AAAA,GACF;AAEJ;;;;"}
@@ -9,7 +9,7 @@ import Box from '@mui/material/Box';
9
9
  import { pluginRiScTranslationRef } from '../../utils/translations.esm.js';
10
10
  import { RiScMigrationChanges } from './migrations/RiScMigrationChanges.esm.js';
11
11
  import { Text, Flex } from '@backstage/ui';
12
- import styles from './RiScSelectionCard.module.css.esm.js';
12
+ import riscStyles from './RiScSelectionCard.module.css.esm.js';
13
13
  import DialogComponent from '../dialog/DialogComponent.esm.js';
14
14
 
15
15
  const RiScMigrationDialog = ({
@@ -29,7 +29,7 @@ const RiScMigrationDialog = ({
29
29
  isOpen: openDialog,
30
30
  onClick: handleCancel,
31
31
  header: t("migrationDialog.title"),
32
- className: styles.riScInfoDialog,
32
+ className: riscStyles.riScInfoDialog,
33
33
  children: [
34
34
  /* @__PURE__ */ jsx(Box, { sx: { marginBottom: "16px" }, children: /* @__PURE__ */ jsx(Text, { variant: "body-large", children: t("migrationDialog.description") }) }),
35
35
  /* @__PURE__ */ jsx(RiScMigrationChanges, { migrationStatus }),
@@ -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 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 { RiScMigrationChanges } from './migrations/RiScMigrationChanges.tsx';\nimport { Flex, Text } from '@backstage/ui';\nimport styles from './RiScSelectionCard.module.css';\nimport DialogComponent from '../dialog/DialogComponent.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 <DialogComponent\n isOpen={openDialog}\n onClick={handleCancel}\n header={t('migrationDialog.title')}\n className={styles.riScInfoDialog}\n >\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 checked={saveMigration} onChange={handleCheckboxInput} />\n }\n label={t('migrationDialog.checkboxLabel')}\n />\n </Alert>\n <Flex justify=\"between\" pt=\"24px\">\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 </Flex>\n </DialogComponent>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAqBO,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;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACC,MAAA,EAAQ,UAAA;AAAA,MACR,OAAA,EAAS,YAAA;AAAA,MACT,MAAA,EAAQ,EAAE,uBAAuB,CAAA;AAAA,MACjC,WAAW,MAAA,CAAO,cAAA;AAAA,MAElB,QAAA,EAAA;AAAA,wBAAA,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,wBACA,GAAA,CAAC,wBAAqB,eAAA,EAAkC,CAAA;AAAA,wBACxD,GAAA,CAAC,KAAA,EAAA,EAAM,QAAA,EAAS,MAAA,EAAO,MAAM,KAAA,EAC3B,QAAA,kBAAA,GAAA;AAAA,UAAC,gBAAA;AAAA,UAAA;AAAA,YACC,yBACE,GAAA,CAAC,QAAA,EAAA,EAAS,OAAA,EAAS,aAAA,EAAe,UAAU,mBAAA,EAAqB,CAAA;AAAA,YAEnE,KAAA,EAAO,EAAE,+BAA+B;AAAA;AAAA,SAC1C,EACF,CAAA;AAAA,wBACA,IAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,SAAA,EAAU,IAAG,MAAA,EACzB,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAO,SAAQ,UAAA,EAAW,KAAA,EAAM,WAAU,OAAA,EAAS,YAAA,EACjD,QAAA,EAAA,CAAA,CAAE,mBAAmB,CAAA,EACxB,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAQ,WAAA;AAAA,cACR,OAAA,EAAS,YAAA;AAAA,cACT,UAAU,CAAC,aAAA;AAAA,cAEV,YAAE,oBAAoB;AAAA;AAAA;AACzB,SAAA,EACF;AAAA;AAAA;AAAA,GACF;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 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 { RiScMigrationChanges } from './migrations/RiScMigrationChanges.tsx';\nimport { Flex, Text } from '@backstage/ui';\nimport styles from './RiScSelectionCard.module.css';\nimport DialogComponent from '../dialog/DialogComponent.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 <DialogComponent\n isOpen={openDialog}\n onClick={handleCancel}\n header={t('migrationDialog.title')}\n className={styles.riScInfoDialog}\n >\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 checked={saveMigration} onChange={handleCheckboxInput} />\n }\n label={t('migrationDialog.checkboxLabel')}\n />\n </Alert>\n <Flex justify=\"between\" pt=\"24px\">\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 </Flex>\n </DialogComponent>\n );\n};\n"],"names":["styles"],"mappings":";;;;;;;;;;;;;;AAqBO,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;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACC,MAAA,EAAQ,UAAA;AAAA,MACR,OAAA,EAAS,YAAA;AAAA,MACT,MAAA,EAAQ,EAAE,uBAAuB,CAAA;AAAA,MACjC,WAAWA,UAAA,CAAO,cAAA;AAAA,MAElB,QAAA,EAAA;AAAA,wBAAA,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,wBACA,GAAA,CAAC,wBAAqB,eAAA,EAAkC,CAAA;AAAA,wBACxD,GAAA,CAAC,KAAA,EAAA,EAAM,QAAA,EAAS,MAAA,EAAO,MAAM,KAAA,EAC3B,QAAA,kBAAA,GAAA;AAAA,UAAC,gBAAA;AAAA,UAAA;AAAA,YACC,yBACE,GAAA,CAAC,QAAA,EAAA,EAAS,OAAA,EAAS,aAAA,EAAe,UAAU,mBAAA,EAAqB,CAAA;AAAA,YAEnE,KAAA,EAAO,EAAE,+BAA+B;AAAA;AAAA,SAC1C,EACF,CAAA;AAAA,wBACA,IAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,SAAA,EAAU,IAAG,MAAA,EACzB,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAO,SAAQ,UAAA,EAAW,KAAA,EAAM,WAAU,OAAA,EAAS,YAAA,EACjD,QAAA,EAAA,CAAA,CAAE,mBAAmB,CAAA,EACxB,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAQ,WAAA;AAAA,cACR,OAAA,EAAS,YAAA;AAAA,cACT,UAAU,CAAC,aAAA;AAAA,cAEV,YAAE,oBAAoB;AAAA;AAAA;AACzB,SAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
@@ -7,7 +7,7 @@ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
7
7
  import FormControlLabel from '@mui/material/FormControlLabel';
8
8
  import { pluginRiScTranslationRef } from '../../utils/translations.esm.js';
9
9
  import { RiScDifferenceDialog } from './riScStatus/RiScDifferenceDialog.esm.js';
10
- import styles from './RiScSelectionCard.module.css.esm.js';
10
+ import riscStyles from './RiScSelectionCard.module.css.esm.js';
11
11
  import DialogComponent from '../dialog/DialogComponent.esm.js';
12
12
 
13
13
  const RiScPublishDialog = ({
@@ -28,7 +28,7 @@ const RiScPublishDialog = ({
28
28
  isOpen: openDialog,
29
29
  onClick: handleCancel,
30
30
  header: isDeletion ? t("publishDialog.titleDelete") : t("publishDialog.titleUpdate"),
31
- className: styles.riScInfoDialog,
31
+ className: riscStyles.riScInfoDialog,
32
32
  children: [
33
33
  /* @__PURE__ */ jsxs(Fragment, { children: [
34
34
  !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 '@backstage/ui';\n\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 { Flex } from '@backstage/ui';\nimport styles from './RiScSelectionCard.module.css';\nimport DialogComponent from '../dialog/DialogComponent';\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 <DialogComponent\n isOpen={openDialog}\n onClick={handleCancel}\n header={\n isDeletion\n ? t('publishDialog.titleDelete')\n : t('publishDialog.titleUpdate')\n }\n className={styles.riScInfoDialog}\n >\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 <Flex justify=\"between\" pt=\"24px\">\n <Button size=\"medium\" variant=\"secondary\" onClick={handleCancel}>\n {t('dictionary.cancel')}\n </Button>\n <Button\n size=\"medium\"\n variant=\"primary\"\n onClick={handlePublish}\n isDisabled={!riskOwnerApproves}\n >\n {t('dictionary.confirm')}\n </Button>\n </Flex>\n </DialogComponent>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAsBO,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;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACC,MAAA,EAAQ,UAAA;AAAA,MACR,OAAA,EAAS,YAAA;AAAA,MACT,QACE,UAAA,GACI,CAAA,CAAE,2BAA2B,CAAA,GAC7B,EAAE,2BAA2B,CAAA;AAAA,MAEnC,WAAW,MAAA,CAAO,cAAA;AAAA,MAElB,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,CAAC,UAAA,oBACA,GAAA,CAAC,oBAAA,EAAA,EAAqB,oBAAA,EAA4C,CAAA;AAAA,0BAEpE,GAAA,CAAC,KAAA,EAAA,EAAM,QAAA,EAAS,MAAA,EAAO,MAAM,KAAA,EAC3B,QAAA,kBAAA,GAAA;AAAA,YAAC,gBAAA;AAAA,YAAA;AAAA,cACC,OAAA,kBACE,GAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAM,SAAA;AAAA,kBACN,OAAA,EAAS,iBAAA;AAAA,kBACT,QAAA,EAAU;AAAA;AAAA,eACZ;AAAA,cAEF,OACE,UAAA,GACI,CAAA,CAAE,mCAAmC,CAAA,GACrC,EAAE,mCAAmC;AAAA;AAAA,WAE7C,EACF;AAAA,SAAA,EACF,CAAA;AAAA,wBACA,IAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,SAAA,EAAU,IAAG,MAAA,EACzB,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAO,MAAK,QAAA,EAAS,OAAA,EAAQ,aAAY,OAAA,EAAS,YAAA,EAChD,QAAA,EAAA,CAAA,CAAE,mBAAmB,CAAA,EACxB,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAQ,SAAA;AAAA,cACR,OAAA,EAAS,aAAA;AAAA,cACT,YAAY,CAAC,iBAAA;AAAA,cAEZ,YAAE,oBAAoB;AAAA;AAAA;AACzB,SAAA,EACF;AAAA;AAAA;AAAA,GACF;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 '@backstage/ui';\n\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 { Flex } from '@backstage/ui';\nimport styles from './RiScSelectionCard.module.css';\nimport DialogComponent from '../dialog/DialogComponent';\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 <DialogComponent\n isOpen={openDialog}\n onClick={handleCancel}\n header={\n isDeletion\n ? t('publishDialog.titleDelete')\n : t('publishDialog.titleUpdate')\n }\n className={styles.riScInfoDialog}\n >\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 <Flex justify=\"between\" pt=\"24px\">\n <Button size=\"medium\" variant=\"secondary\" onClick={handleCancel}>\n {t('dictionary.cancel')}\n </Button>\n <Button\n size=\"medium\"\n variant=\"primary\"\n onClick={handlePublish}\n isDisabled={!riskOwnerApproves}\n >\n {t('dictionary.confirm')}\n </Button>\n </Flex>\n </DialogComponent>\n );\n};\n"],"names":["styles"],"mappings":";;;;;;;;;;;;AAsBO,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;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACC,MAAA,EAAQ,UAAA;AAAA,MACR,OAAA,EAAS,YAAA;AAAA,MACT,QACE,UAAA,GACI,CAAA,CAAE,2BAA2B,CAAA,GAC7B,EAAE,2BAA2B,CAAA;AAAA,MAEnC,WAAWA,UAAA,CAAO,cAAA;AAAA,MAElB,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,CAAC,UAAA,oBACA,GAAA,CAAC,oBAAA,EAAA,EAAqB,oBAAA,EAA4C,CAAA;AAAA,0BAEpE,GAAA,CAAC,KAAA,EAAA,EAAM,QAAA,EAAS,MAAA,EAAO,MAAM,KAAA,EAC3B,QAAA,kBAAA,GAAA;AAAA,YAAC,gBAAA;AAAA,YAAA;AAAA,cACC,OAAA,kBACE,GAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAM,SAAA;AAAA,kBACN,OAAA,EAAS,iBAAA;AAAA,kBACT,QAAA,EAAU;AAAA;AAAA,eACZ;AAAA,cAEF,OACE,UAAA,GACI,CAAA,CAAE,mCAAmC,CAAA,GACrC,EAAE,mCAAmC;AAAA;AAAA,WAE7C,EACF;AAAA,SAAA,EACF,CAAA;AAAA,wBACA,IAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,SAAA,EAAU,IAAG,MAAA,EACzB,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAO,MAAK,QAAA,EAAS,OAAA,EAAQ,aAAY,OAAA,EAAS,YAAA,EAChD,QAAA,EAAA,CAAA,CAAE,mBAAmB,CAAA,EACxB,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAQ,SAAA;AAAA,cACR,OAAA,EAAS,aAAA;AAAA,cACT,YAAY,CAAC,iBAAA;AAAA,cAEZ,YAAE,oBAAoB;AAAA;AAAA;AACzB,SAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
@@ -4,7 +4,7 @@ import { useRiScs } from '../../contexts/RiScContext.esm.js';
4
4
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
5
5
  import { pluginRiScTranslationRef } from '../../utils/translations.esm.js';
6
6
  import { Flex, Select, Card, CardBody, Text, ButtonIcon } from '@backstage/ui';
7
- import styles from './RiScSelectionCard.module.css.esm.js';
7
+ import riscStyles from './RiScSelectionCard.module.css.esm.js';
8
8
 
9
9
  function RiScSelectionCard(props) {
10
10
  const { riScs, selectedRiSc, selectRiSc } = useRiScs();
@@ -14,7 +14,7 @@ function RiScSelectionCard(props) {
14
14
  Select,
15
15
  {
16
16
  value: selectedRiSc?.id,
17
- className: styles.selectTrigger,
17
+ className: riscStyles.selectTrigger,
18
18
  "aria-label": t("contentHeader.multipleRiScs"),
19
19
  options: riScs.map((riSc) => ({
20
20
  value: riSc.id,
@@ -1 +1 @@
1
- {"version":3,"file":"RiScSelectionCard.esm.js","sources":["../../../src/components/riScInfo/RiScSelectionCard.tsx"],"sourcesContent":["import { Markdown } from '../common/Markdown.tsx';\nimport { RiScWithMetadata } from '../../utils/types.ts';\nimport { useRiScs } from '../../contexts/RiScContext.tsx';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations.ts';\nimport { Card, CardBody, Text, Select, ButtonIcon, Flex } from '@backstage/ui';\nimport styles from './RiScSelectionCard.module.css';\n\ninterface Props {\n riScWithMetadata: RiScWithMetadata;\n edit: () => void;\n onCreateNew: () => void;\n}\n\nexport function RiScSelectionCard(props: Props) {\n const { riScs, selectedRiSc, selectRiSc } = useRiScs();\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n return (\n <Flex direction=\"column\" gap=\"24px\">\n <Flex direction=\"column\">\n {riScs !== null && riScs.length !== 0 && (\n <>\n <Select\n value={selectedRiSc?.id}\n className={styles.selectTrigger}\n aria-label={t('contentHeader.multipleRiScs')}\n options={riScs.map(riSc => ({\n value: riSc.id,\n label: riSc.content.title,\n }))}\n onSelectionChange={key => {\n if (key) selectRiSc(key.toString());\n }}\n size=\"medium\"\n />\n </>\n )}\n </Flex>\n <Card>\n <CardBody>\n <Flex\n justify=\"between\"\n align=\"center\"\n style={{\n marginBottom: '16px',\n marginTop: '8px',\n }}\n >\n <Text variant=\"title-small\" as=\"h6\" weight=\"bold\">\n {props.riScWithMetadata.content.title}\n </Text>\n <ButtonIcon\n onClick={props.edit}\n icon={\n <i className=\"ri-edit-line\" style={{ fontSize: 'large' }} />\n }\n variant=\"tertiary\"\n />\n </Flex>\n <Markdown description={props.riScWithMetadata.content.scope} />\n </CardBody>\n </Card>\n </Flex>\n );\n}\n"],"names":[],"mappings":";;;;;;;;AAcO,SAAS,kBAAkB,KAAA,EAAc;AAC9C,EAAA,MAAM,EAAE,KAAA,EAAO,YAAA,EAAc,UAAA,KAAe,QAAA,EAAS;AACrD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,uBACE,IAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAS,KAAI,MAAA,EAC3B,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,WAAU,QAAA,EACb,QAAA,EAAA,KAAA,KAAU,QAAQ,KAAA,CAAM,MAAA,KAAW,qBAClC,GAAA,CAAA,QAAA,EAAA,EACE,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,OAAO,YAAA,EAAc,EAAA;AAAA,QACrB,WAAW,MAAA,CAAO,aAAA;AAAA,QAClB,YAAA,EAAY,EAAE,6BAA6B,CAAA;AAAA,QAC3C,OAAA,EAAS,KAAA,CAAM,GAAA,CAAI,CAAA,IAAA,MAAS;AAAA,UAC1B,OAAO,IAAA,CAAK,EAAA;AAAA,UACZ,KAAA,EAAO,KAAK,OAAA,CAAQ;AAAA,SACtB,CAAE,CAAA;AAAA,QACF,mBAAmB,CAAA,GAAA,KAAO;AACxB,UAAA,IAAI,GAAA,EAAK,UAAA,CAAW,GAAA,CAAI,QAAA,EAAU,CAAA;AAAA,QACpC,CAAA;AAAA,QACA,IAAA,EAAK;AAAA;AAAA,OAET,CAAA,EAEJ,CAAA;AAAA,oBACA,GAAA,CAAC,IAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,QAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,IAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,SAAA;AAAA,UACR,KAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO;AAAA,YACL,YAAA,EAAc,MAAA;AAAA,YACd,SAAA,EAAW;AAAA,WACb;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,aAAA,EAAc,EAAA,EAAG,IAAA,EAAK,QAAO,MAAA,EACxC,QAAA,EAAA,KAAA,CAAM,gBAAA,CAAiB,OAAA,CAAQ,KAAA,EAClC,CAAA;AAAA,4BACA,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,SAAS,KAAA,CAAM,IAAA;AAAA,gBACf,IAAA,sBACG,GAAA,EAAA,EAAE,SAAA,EAAU,gBAAe,KAAA,EAAO,EAAE,QAAA,EAAU,OAAA,EAAQ,EAAG,CAAA;AAAA,gBAE5D,OAAA,EAAQ;AAAA;AAAA;AACV;AAAA;AAAA,OACF;AAAA,0BACC,QAAA,EAAA,EAAS,WAAA,EAAa,KAAA,CAAM,gBAAA,CAAiB,QAAQ,KAAA,EAAO;AAAA,KAAA,EAC/D,CAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"RiScSelectionCard.esm.js","sources":["../../../src/components/riScInfo/RiScSelectionCard.tsx"],"sourcesContent":["import { Markdown } from '../common/Markdown.tsx';\nimport { RiScWithMetadata } from '../../utils/types.ts';\nimport { useRiScs } from '../../contexts/RiScContext.tsx';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations.ts';\nimport { Card, CardBody, Text, Select, ButtonIcon, Flex } from '@backstage/ui';\nimport styles from './RiScSelectionCard.module.css';\n\ninterface Props {\n riScWithMetadata: RiScWithMetadata;\n edit: () => void;\n onCreateNew: () => void;\n}\n\nexport function RiScSelectionCard(props: Props) {\n const { riScs, selectedRiSc, selectRiSc } = useRiScs();\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n return (\n <Flex direction=\"column\" gap=\"24px\">\n <Flex direction=\"column\">\n {riScs !== null && riScs.length !== 0 && (\n <>\n <Select\n value={selectedRiSc?.id}\n className={styles.selectTrigger}\n aria-label={t('contentHeader.multipleRiScs')}\n options={riScs.map(riSc => ({\n value: riSc.id,\n label: riSc.content.title,\n }))}\n onSelectionChange={key => {\n if (key) selectRiSc(key.toString());\n }}\n size=\"medium\"\n />\n </>\n )}\n </Flex>\n <Card>\n <CardBody>\n <Flex\n justify=\"between\"\n align=\"center\"\n style={{\n marginBottom: '16px',\n marginTop: '8px',\n }}\n >\n <Text variant=\"title-small\" as=\"h6\" weight=\"bold\">\n {props.riScWithMetadata.content.title}\n </Text>\n <ButtonIcon\n onClick={props.edit}\n icon={\n <i className=\"ri-edit-line\" style={{ fontSize: 'large' }} />\n }\n variant=\"tertiary\"\n />\n </Flex>\n <Markdown description={props.riScWithMetadata.content.scope} />\n </CardBody>\n </Card>\n </Flex>\n );\n}\n"],"names":["styles"],"mappings":";;;;;;;;AAcO,SAAS,kBAAkB,KAAA,EAAc;AAC9C,EAAA,MAAM,EAAE,KAAA,EAAO,YAAA,EAAc,UAAA,KAAe,QAAA,EAAS;AACrD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,uBACE,IAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAS,KAAI,MAAA,EAC3B,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,WAAU,QAAA,EACb,QAAA,EAAA,KAAA,KAAU,QAAQ,KAAA,CAAM,MAAA,KAAW,qBAClC,GAAA,CAAA,QAAA,EAAA,EACE,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,OAAO,YAAA,EAAc,EAAA;AAAA,QACrB,WAAWA,UAAA,CAAO,aAAA;AAAA,QAClB,YAAA,EAAY,EAAE,6BAA6B,CAAA;AAAA,QAC3C,OAAA,EAAS,KAAA,CAAM,GAAA,CAAI,CAAA,IAAA,MAAS;AAAA,UAC1B,OAAO,IAAA,CAAK,EAAA;AAAA,UACZ,KAAA,EAAO,KAAK,OAAA,CAAQ;AAAA,SACtB,CAAE,CAAA;AAAA,QACF,mBAAmB,CAAA,GAAA,KAAO;AACxB,UAAA,IAAI,GAAA,EAAK,UAAA,CAAW,GAAA,CAAI,QAAA,EAAU,CAAA;AAAA,QACpC,CAAA;AAAA,QACA,IAAA,EAAK;AAAA;AAAA,OAET,CAAA,EAEJ,CAAA;AAAA,oBACA,GAAA,CAAC,IAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,QAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,IAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,SAAA;AAAA,UACR,KAAA,EAAM,QAAA;AAAA,UACN,KAAA,EAAO;AAAA,YACL,YAAA,EAAc,MAAA;AAAA,YACd,SAAA,EAAW;AAAA,WACb;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,aAAA,EAAc,EAAA,EAAG,IAAA,EAAK,QAAO,MAAA,EACxC,QAAA,EAAA,KAAA,CAAM,gBAAA,CAAiB,OAAA,CAAQ,KAAA,EAClC,CAAA;AAAA,4BACA,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,SAAS,KAAA,CAAM,IAAA;AAAA,gBACf,IAAA,sBACG,GAAA,EAAA,EAAE,SAAA,EAAU,gBAAe,KAAA,EAAO,EAAE,QAAA,EAAU,OAAA,EAAQ,EAAG,CAAA;AAAA,gBAE5D,OAAA,EAAQ;AAAA;AAAA;AACV;AAAA;AAAA,OACF;AAAA,0BACC,QAAA,EAAA,EAAS,WAAA,EAAa,KAAA,CAAM,gBAAA,CAAiB,QAAQ,KAAA,EAAO;AAAA,KAAA,EAC/D,CAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -1,8 +1,8 @@
1
1
  import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
2
 
3
- var css_248z = ".RiScSelectionCard-module_selectTrigger__Sfe03 button {\n background-color: transparent;\n}\n\n.RiScSelectionCard-module_riScInfoDialog__ZuSak {\n padding: 24px;\n border-radius: 4px;\n width: 800px;\n}\n\n.RiScSelectionCard-module_riscSelectionDialogHeader__c24oM {\n padding: 0 0 16px 0;\n}\n\n.RiScSelectionCard-module_riscSelectionDialogBody__kjzta {\n gap: 16px;\n padding: 16px 0 0 0;\n}\n";
4
- var styles = {"selectTrigger":"RiScSelectionCard-module_selectTrigger__Sfe03","riScInfoDialog":"RiScSelectionCard-module_riScInfoDialog__ZuSak"};
3
+ var css_248z = ".RiScSelectionCard_selectTrigger__6a6f6fe6c8 button {\n background-color: transparent;\n}\n\n.RiScSelectionCard_riScInfoDialog__6a6f6fe6c8 {\n padding: 24px;\n border-radius: 4px;\n width: 800px;\n}\n\n.RiScSelectionCard_riscSelectionDialogHeader__6a6f6fe6c8 {\n padding: 0 0 16px 0;\n}\n\n.RiScSelectionCard_riscSelectionDialogBody__6a6f6fe6c8 {\n gap: 16px;\n padding: 16px 0 0 0;\n}\n\n.RiScSelectionCard_componentLayout__6a6f6fe6c8 {\n height: 60%;\n}\n";
4
+ var riscStyles = {"selectTrigger":"RiScSelectionCard_selectTrigger__6a6f6fe6c8","riScInfoDialog":"RiScSelectionCard_riScInfoDialog__6a6f6fe6c8","componentLayout":"RiScSelectionCard_componentLayout__6a6f6fe6c8"};
5
5
  styleInject(css_248z);
6
6
 
7
- export { styles as default };
7
+ export { riscStyles as default };
8
8
  //# sourceMappingURL=RiScSelectionCard.module.css.esm.js.map