@kartverket/backstage-plugin-risk-scorecard 3.10.7 → 3.10.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/components/action/ActionView.esm.js +1 -6
  2. package/dist/components/action/ActionView.esm.js.map +1 -1
  3. package/dist/components/dialog/DialogComponent.esm.js +19 -0
  4. package/dist/components/dialog/DialogComponent.esm.js.map +1 -0
  5. package/dist/components/dialog/DialogComponent.module.css.esm.js +8 -0
  6. package/dist/components/dialog/DialogComponent.module.css.esm.js.map +1 -0
  7. package/dist/components/riScDialog/MatrixDialog.esm.js +13 -15
  8. package/dist/components/riScDialog/MatrixDialog.esm.js.map +1 -1
  9. package/dist/components/riScDialog/RiScDialog.esm.js +105 -118
  10. package/dist/components/riScDialog/RiScDialog.esm.js.map +1 -1
  11. package/dist/components/riScDialog/RiScDialog.module.css.esm.js +2 -2
  12. package/dist/components/riScDialog/SupportDialog.esm.js +32 -45
  13. package/dist/components/riScDialog/SupportDialog.esm.js.map +1 -1
  14. package/dist/components/riScInfo/MigrationDialog.esm.js +26 -33
  15. package/dist/components/riScInfo/MigrationDialog.esm.js.map +1 -1
  16. package/dist/components/riScInfo/PublishDialog.esm.js +37 -43
  17. package/dist/components/riScInfo/PublishDialog.esm.js.map +1 -1
  18. package/dist/components/riScInfo/RiScSelectionCard.module.css.esm.js +1 -1
  19. package/dist/components/riScInfo/riScStatus/StatusBanner.esm.js +1 -4
  20. package/dist/components/riScInfo/riScStatus/StatusBanner.esm.js.map +1 -1
  21. package/dist/components/riScPlugin/FeedbackDialog.esm.js +11 -2
  22. package/dist/components/riScPlugin/FeedbackDialog.esm.js.map +1 -1
  23. package/dist/components/riskMatrix/EstimatedRiskInfoDialog.esm.js +77 -111
  24. package/dist/components/riskMatrix/EstimatedRiskInfoDialog.esm.js.map +1 -1
  25. package/dist/components/scenarioDrawer/components/DeleteConfirmation.esm.js +30 -31
  26. package/dist/components/scenarioDrawer/components/DeleteConfirmation.esm.js.map +1 -1
  27. package/dist/components/scenarioDrawer/components/ScenarioDrawer.module.css.esm.js +1 -1
  28. package/dist/components/scenarioTable/ScenarioTable.esm.js +0 -2
  29. package/dist/components/scenarioTable/ScenarioTable.esm.js.map +1 -1
  30. package/dist/components/scenarioTable/ScenarioTableRow.esm.js +2 -5
  31. package/dist/components/scenarioTable/ScenarioTableRow.esm.js.map +1 -1
  32. package/dist/components/scenarioWizard/ScenarioWizard.module.css.esm.js +1 -1
  33. package/dist/components/scenarioWizard/components/CloseConfirmation.esm.js +11 -12
  34. package/dist/components/scenarioWizard/components/CloseConfirmation.esm.js.map +1 -1
  35. package/dist/components/scenarioWizard/components/ConsequenceTable.esm.js +1 -5
  36. package/dist/components/scenarioWizard/components/ConsequenceTable.esm.js.map +1 -1
  37. package/dist/utils/actions.esm.js +7 -8
  38. package/dist/utils/actions.esm.js.map +1 -1
  39. package/dist/utils/hooks.esm.js +4 -7
  40. package/dist/utils/hooks.esm.js.map +1 -1
  41. package/dist/utils/utilityfunctions.esm.js +2 -32
  42. package/dist/utils/utilityfunctions.esm.js.map +1 -1
  43. package/package.json +1 -1
@@ -13,7 +13,6 @@ import { Edit } from '@mui/icons-material';
13
13
  import { Markdown } from '../common/Markdown.esm.js';
14
14
  import { ActionURL } from './ActionURL.esm.js';
15
15
  import { useScenario } from '../../contexts/ScenarioContext.esm.js';
16
- import { useRiScs } from '../../contexts/RiScContext.esm.js';
17
16
  import { getUpdatedStatus } from '../../utils/actions.esm.js';
18
17
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
19
18
  import { pluginRiScTranslationRef } from '../../utils/translations.esm.js';
@@ -32,11 +31,7 @@ function ActionView(props) {
32
31
  const { t } = useTranslationRef(pluginRiScTranslationRef);
33
32
  const { isActionExpanded, toggleActionExpanded } = useScenario();
34
33
  const isExpanded = isActionExpanded(props.action.ID);
35
- const { selectedRiSc } = useRiScs();
36
- const updatedStatus = getUpdatedStatus(
37
- props.action,
38
- selectedRiSc?.lastPublished?.numberOfCommits ?? null
39
- );
34
+ const updatedStatus = getUpdatedStatus(props.action);
40
35
  return /* @__PURE__ */ jsxs(Fragment, { children: [
41
36
  /* @__PURE__ */ jsx(
42
37
  "div",
@@ -1 +1 @@
1
- {"version":3,"file":"ActionView.esm.js","sources":["../../../src/components/action/ActionView.tsx"],"sourcesContent":["import { Flex, Text } from '@backstage/ui';\nimport IconButton from '@mui/material/IconButton';\nimport UpdatedStatusBadge from '../common/UpdatedStatusBadge.tsx';\nimport { DualButtonWithMenu } from '../common/DualButtonWithMenu.tsx';\nimport {\n actionStatusOptionsToTranslationKeys,\n getTranslatedActionStatus,\n UpdatedStatusEnumType,\n} from '../../utils/utilityfunctions.ts';\nimport { ActionStatusOptions } from '../../utils/constants.ts';\nimport { ScenarioLastUpdatedLabel } from '../scenario/ScenarioLastUpdatedLabel.tsx';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport Collapse from '@mui/material/Collapse';\nimport Box from '@mui/material/Box';\nimport { Edit } from '@mui/icons-material';\nimport { Markdown } from '../common/Markdown.tsx';\nimport { ActionURL } from './ActionURL.tsx';\nimport { useScenario } from '../../contexts/ScenarioContext.tsx';\nimport { Action } from '../../utils/types.ts';\nimport { useRiScs } from '../../contexts/RiScContext.tsx';\nimport { getUpdatedStatus } from '../../utils/actions.ts';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations.ts';\n\ntype ActionViewProps = {\n action: Action;\n onRefreshActionStatus: (action: Action) => void;\n onNewActionStatus: (actionId: string, newStatus: ActionStatusOptions) => void;\n toggleEditMode: () => void;\n openDeleteDialog: () => void;\n allowDeletion?: boolean;\n allowEdit?: boolean;\n optimisticStatus?: ActionStatusOptions;\n optimisticUpdatedStatus?: UpdatedStatusEnumType;\n index?: number;\n};\n\nconst getActionStatusButtonClass = (status: string): string => {\n switch (status) {\n case ActionStatusOptions.OK:\n return 'ros-button-green';\n case ActionStatusOptions.NotOK:\n return 'ros-button-red';\n default:\n return 'ros-button-gray';\n }\n};\n\nexport function ActionView(props: ActionViewProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { isActionExpanded, toggleActionExpanded } = useScenario();\n const isExpanded = isActionExpanded(props.action.ID);\n\n const { selectedRiSc } = useRiScs();\n const updatedStatus = getUpdatedStatus(\n props.action,\n selectedRiSc?.lastPublished?.numberOfCommits ?? null,\n );\n\n return (\n <>\n <div\n role=\"button\"\n tabIndex={0}\n onClick={e => {\n e.stopPropagation();\n\n const target = e.target as HTMLElement | null;\n if (target && target.closest('[data-no-row-toggle]')) return;\n\n toggleActionExpanded(props.action.ID);\n }}\n onKeyDown={e => {\n // Prevent keyboard event from bubbling up to parent(s)\n e.stopPropagation();\n\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n toggleActionExpanded(props.action.ID);\n }\n }}\n style={{ cursor: 'pointer' }}\n >\n <Flex align=\"center\" gap=\"1\" justify=\"between\">\n <Flex align=\"center\" justify=\"start\" style={{ width: '40%' }}>\n <IconButton\n onClick={e => {\n e.stopPropagation();\n toggleActionExpanded(props.action.ID);\n }}\n >\n <i\n className={`ri-arrow-${isExpanded ? 'down' : 'right'}-s-line`}\n />\n </IconButton>\n <Flex direction=\"column\" gap=\"1\">\n <UpdatedStatusBadge\n status={props.optimisticUpdatedStatus ?? updatedStatus}\n isPending={!!props.optimisticUpdatedStatus}\n />\n <Text variant=\"body-large\">\n {props.action.title ??\n `${t('dictionary.measure')} ${props.index ?? ''}`}\n </Text>\n </Flex>\n </Flex>\n <Flex align=\"center\" justify=\"end\">\n <DualButtonWithMenu\n propsCommon={{\n className: getActionStatusButtonClass(\n props.optimisticStatus ?? props.action.status,\n ),\n }}\n propsLeft={{\n children: getTranslatedActionStatus(\n props.optimisticStatus ?? props.action.status,\n t,\n ),\n }}\n propsRight={{\n iconEnd: <i className=\"ri-loop-left-line\" />,\n onClick: () => {\n props.onRefreshActionStatus(props.action);\n },\n }}\n menuItems={Object.values(ActionStatusOptions).map(value => ({\n key: value,\n // @ts-ignore\n label: t(\n actionStatusOptionsToTranslationKeys[\n value as ActionStatusOptions\n ],\n ),\n onClick: () => props.onNewActionStatus(props.action.ID, value),\n selected: props.optimisticStatus\n ? value === props.optimisticStatus\n : value === props.action.status,\n }))}\n />\n <ScenarioLastUpdatedLabel\n lastUpdated={\n !!props.optimisticStatus ? new Date() : props.action.lastUpdated\n }\n lastUpdatedBy={props.action.lastUpdatedBy}\n />\n {props.allowDeletion && (\n <IconButton\n onClick={e => {\n e.stopPropagation();\n props.openDeleteDialog();\n }}\n >\n <DeleteIcon />\n </IconButton>\n )}\n </Flex>\n </Flex>\n </div>\n <Collapse\n in={isExpanded}\n sx={{ marginTop: 1 }}\n timeout=\"auto\"\n unmountOnExit\n >\n <Box ml=\"56px\" mt=\"4\" mb=\"2\">\n <Flex justify=\"between\" mt=\"8px\" align=\"end\">\n <Text as=\"p\" variant=\"body-large\" weight=\"bold\">\n {t('dictionary.description')}\n </Text>\n {props.allowEdit && (\n <IconButton\n sx={{\n marginLeft: 'auto',\n transition: 'opacity 300ms ease-in',\n }}\n onClick={e => {\n e.stopPropagation();\n props.toggleEditMode();\n }}\n >\n <Edit />\n </IconButton>\n )}\n </Flex>\n <Markdown description={props.action.description} />\n <ActionURL url={props.action.url} />\n </Box>\n </Collapse>\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAqCA,MAAM,0BAAA,GAA6B,CAAC,MAAA,KAA2B;AAC7D,EAAA,QAAQ,MAAA;AAAQ,IACd,KAAK,mBAAA,CAAoB,EAAA;AACvB,MAAA,OAAO,kBAAA;AAAA,IACT,KAAK,mBAAA,CAAoB,KAAA;AACvB,MAAA,OAAO,gBAAA;AAAA,IACT;AACE,MAAA,OAAO,iBAAA;AAAA;AAEb,CAAA;AAEO,SAAS,WAAW,KAAA,EAAwB;AACjD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM,EAAE,gBAAA,EAAkB,oBAAA,EAAqB,GAAI,WAAA,EAAY;AAC/D,EAAA,MAAM,UAAA,GAAa,gBAAA,CAAiB,KAAA,CAAM,MAAA,CAAO,EAAE,CAAA;AAEnD,EAAA,MAAM,EAAE,YAAA,EAAa,GAAI,QAAA,EAAS;AAClC,EAAA,MAAM,aAAA,GAAgB,gBAAA;AAAA,IACpB,KAAA,CAAM,MAAA;AAAA,IACN,YAAA,EAAc,eAAe,eAAA,IAAmB;AAAA,GAClD;AAEA,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,QAAA,EAAU,CAAA;AAAA,QACV,SAAS,CAAA,CAAA,KAAK;AACZ,UAAA,CAAA,CAAE,eAAA,EAAgB;AAElB,UAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,UAAA,IAAI,MAAA,IAAU,MAAA,CAAO,OAAA,CAAQ,sBAAsB,CAAA,EAAG;AAEtD,UAAA,oBAAA,CAAqB,KAAA,CAAM,OAAO,EAAE,CAAA;AAAA,QACtC,CAAA;AAAA,QACA,WAAW,CAAA,CAAA,KAAK;AAEd,UAAA,CAAA,CAAE,eAAA,EAAgB;AAElB,UAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AACtC,YAAA,CAAA,CAAE,cAAA,EAAe;AACjB,YAAA,oBAAA,CAAqB,KAAA,CAAM,OAAO,EAAE,CAAA;AAAA,UACtC;AAAA,QACF,CAAA;AAAA,QACA,KAAA,EAAO,EAAE,MAAA,EAAQ,SAAA,EAAU;AAAA,QAE3B,+BAAC,IAAA,EAAA,EAAK,KAAA,EAAM,UAAS,GAAA,EAAI,GAAA,EAAI,SAAQ,SAAA,EACnC,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,IAAA,EAAA,EAAK,OAAM,QAAA,EAAS,OAAA,EAAQ,SAAQ,KAAA,EAAO,EAAE,KAAA,EAAO,KAAA,EAAM,EACzD,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,SAAS,CAAA,CAAA,KAAK;AACZ,kBAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,kBAAA,oBAAA,CAAqB,KAAA,CAAM,OAAO,EAAE,CAAA;AAAA,gBACtC,CAAA;AAAA,gBAEA,QAAA,kBAAA,GAAA;AAAA,kBAAC,GAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,CAAA,SAAA,EAAY,UAAA,GAAa,MAAA,GAAS,OAAO,CAAA,OAAA;AAAA;AAAA;AACtD;AAAA,aACF;AAAA,4BACA,IAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAS,KAAI,GAAA,EAC3B,QAAA,EAAA;AAAA,8BAAA,GAAA;AAAA,gBAAC,kBAAA;AAAA,gBAAA;AAAA,kBACC,MAAA,EAAQ,MAAM,uBAAA,IAA2B,aAAA;AAAA,kBACzC,SAAA,EAAW,CAAC,CAAC,KAAA,CAAM;AAAA;AAAA,eACrB;AAAA,8BACA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,YAAA,EACX,gBAAM,MAAA,CAAO,KAAA,IACZ,CAAA,EAAG,CAAA,CAAE,oBAAoB,CAAC,CAAA,CAAA,EAAI,KAAA,CAAM,KAAA,IAAS,EAAE,CAAA,CAAA,EACnD;AAAA,aAAA,EACF;AAAA,WAAA,EACF,CAAA;AAAA,0BACA,IAAA,CAAC,IAAA,EAAA,EAAK,KAAA,EAAM,QAAA,EAAS,SAAQ,KAAA,EAC3B,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,kBAAA;AAAA,cAAA;AAAA,gBACC,WAAA,EAAa;AAAA,kBACX,SAAA,EAAW,0BAAA;AAAA,oBACT,KAAA,CAAM,gBAAA,IAAoB,KAAA,CAAM,MAAA,CAAO;AAAA;AACzC,iBACF;AAAA,gBACA,SAAA,EAAW;AAAA,kBACT,QAAA,EAAU,yBAAA;AAAA,oBACR,KAAA,CAAM,gBAAA,IAAoB,KAAA,CAAM,MAAA,CAAO,MAAA;AAAA,oBACvC;AAAA;AACF,iBACF;AAAA,gBACA,UAAA,EAAY;AAAA,kBACV,OAAA,kBAAS,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,mBAAA,EAAoB,CAAA;AAAA,kBAC1C,SAAS,MAAM;AACb,oBAAA,KAAA,CAAM,qBAAA,CAAsB,MAAM,MAAM,CAAA;AAAA,kBAC1C;AAAA,iBACF;AAAA,gBACA,WAAW,MAAA,CAAO,MAAA,CAAO,mBAAmB,CAAA,CAAE,IAAI,CAAA,KAAA,MAAU;AAAA,kBAC1D,GAAA,EAAK,KAAA;AAAA;AAAA,kBAEL,KAAA,EAAO,CAAA;AAAA,oBACL,qCACE,KACF;AAAA,mBACF;AAAA,kBACA,SAAS,MAAM,KAAA,CAAM,kBAAkB,KAAA,CAAM,MAAA,CAAO,IAAI,KAAK,CAAA;AAAA,kBAC7D,QAAA,EAAU,MAAM,gBAAA,GACZ,KAAA,KAAU,MAAM,gBAAA,GAChB,KAAA,KAAU,MAAM,MAAA,CAAO;AAAA,iBAC7B,CAAE;AAAA;AAAA,aACJ;AAAA,4BACA,GAAA;AAAA,cAAC,wBAAA;AAAA,cAAA;AAAA,gBACC,WAAA,EACE,CAAC,CAAC,KAAA,CAAM,mCAAmB,IAAI,IAAA,EAAK,GAAI,KAAA,CAAM,MAAA,CAAO,WAAA;AAAA,gBAEvD,aAAA,EAAe,MAAM,MAAA,CAAO;AAAA;AAAA,aAC9B;AAAA,YACC,MAAM,aAAA,oBACL,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,SAAS,CAAA,CAAA,KAAK;AACZ,kBAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,kBAAA,KAAA,CAAM,gBAAA,EAAiB;AAAA,gBACzB,CAAA;AAAA,gBAEA,8BAAC,UAAA,EAAA,EAAW;AAAA;AAAA;AACd,WAAA,EAEJ;AAAA,SAAA,EACF;AAAA;AAAA,KACF;AAAA,oBACA,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,UAAA;AAAA,QACJ,EAAA,EAAI,EAAE,SAAA,EAAW,CAAA,EAAE;AAAA,QACnB,OAAA,EAAQ,MAAA;AAAA,QACR,aAAA,EAAa,IAAA;AAAA,QAEb,+BAAC,GAAA,EAAA,EAAI,EAAA,EAAG,QAAO,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EACvB,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,QAAK,OAAA,EAAQ,SAAA,EAAU,EAAA,EAAG,KAAA,EAAM,OAAM,KAAA,EACrC,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAG,GAAA,EAAI,OAAA,EAAQ,cAAa,MAAA,EAAO,MAAA,EACtC,QAAA,EAAA,CAAA,CAAE,wBAAwB,CAAA,EAC7B,CAAA;AAAA,YACC,MAAM,SAAA,oBACL,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,EAAA,EAAI;AAAA,kBACF,UAAA,EAAY,MAAA;AAAA,kBACZ,UAAA,EAAY;AAAA,iBACd;AAAA,gBACA,SAAS,CAAA,CAAA,KAAK;AACZ,kBAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,kBAAA,KAAA,CAAM,cAAA,EAAe;AAAA,gBACvB,CAAA;AAAA,gBAEA,8BAAC,IAAA,EAAA,EAAK;AAAA;AAAA;AACR,WAAA,EAEJ,CAAA;AAAA,0BACA,GAAA,CAAC,QAAA,EAAA,EAAS,WAAA,EAAa,KAAA,CAAM,OAAO,WAAA,EAAa,CAAA;AAAA,0BACjD,GAAA,CAAC,SAAA,EAAA,EAAU,GAAA,EAAK,KAAA,CAAM,OAAO,GAAA,EAAK;AAAA,SAAA,EACpC;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"ActionView.esm.js","sources":["../../../src/components/action/ActionView.tsx"],"sourcesContent":["import { Flex, Text } from '@backstage/ui';\nimport IconButton from '@mui/material/IconButton';\nimport UpdatedStatusBadge from '../common/UpdatedStatusBadge.tsx';\nimport { DualButtonWithMenu } from '../common/DualButtonWithMenu.tsx';\nimport {\n actionStatusOptionsToTranslationKeys,\n getTranslatedActionStatus,\n UpdatedStatusEnumType,\n} from '../../utils/utilityfunctions.ts';\nimport { ActionStatusOptions } from '../../utils/constants.ts';\nimport { ScenarioLastUpdatedLabel } from '../scenario/ScenarioLastUpdatedLabel.tsx';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport Collapse from '@mui/material/Collapse';\nimport Box from '@mui/material/Box';\nimport { Edit } from '@mui/icons-material';\nimport { Markdown } from '../common/Markdown.tsx';\nimport { ActionURL } from './ActionURL.tsx';\nimport { useScenario } from '../../contexts/ScenarioContext.tsx';\nimport { Action } from '../../utils/types.ts';\nimport { getUpdatedStatus } from '../../utils/actions.ts';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations.ts';\n\ntype ActionViewProps = {\n action: Action;\n onRefreshActionStatus: (action: Action) => void;\n onNewActionStatus: (actionId: string, newStatus: ActionStatusOptions) => void;\n toggleEditMode: () => void;\n openDeleteDialog: () => void;\n allowDeletion?: boolean;\n allowEdit?: boolean;\n optimisticStatus?: ActionStatusOptions;\n optimisticUpdatedStatus?: UpdatedStatusEnumType;\n index?: number;\n};\n\nconst getActionStatusButtonClass = (status: string): string => {\n switch (status) {\n case ActionStatusOptions.OK:\n return 'ros-button-green';\n case ActionStatusOptions.NotOK:\n return 'ros-button-red';\n default:\n return 'ros-button-gray';\n }\n};\n\nexport function ActionView(props: ActionViewProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { isActionExpanded, toggleActionExpanded } = useScenario();\n const isExpanded = isActionExpanded(props.action.ID);\n\n const updatedStatus = getUpdatedStatus(props.action);\n\n return (\n <>\n <div\n role=\"button\"\n tabIndex={0}\n onClick={e => {\n e.stopPropagation();\n\n const target = e.target as HTMLElement | null;\n if (target && target.closest('[data-no-row-toggle]')) return;\n\n toggleActionExpanded(props.action.ID);\n }}\n onKeyDown={e => {\n // Prevent keyboard event from bubbling up to parent(s)\n e.stopPropagation();\n\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n toggleActionExpanded(props.action.ID);\n }\n }}\n style={{ cursor: 'pointer' }}\n >\n <Flex align=\"center\" gap=\"1\" justify=\"between\">\n <Flex align=\"center\" justify=\"start\" style={{ width: '40%' }}>\n <IconButton\n onClick={e => {\n e.stopPropagation();\n toggleActionExpanded(props.action.ID);\n }}\n >\n <i\n className={`ri-arrow-${isExpanded ? 'down' : 'right'}-s-line`}\n />\n </IconButton>\n <Flex direction=\"column\" gap=\"1\">\n <UpdatedStatusBadge\n status={props.optimisticUpdatedStatus ?? updatedStatus}\n isPending={!!props.optimisticUpdatedStatus}\n />\n <Text variant=\"body-large\">\n {props.action.title ??\n `${t('dictionary.measure')} ${props.index ?? ''}`}\n </Text>\n </Flex>\n </Flex>\n <Flex align=\"center\" justify=\"end\">\n <DualButtonWithMenu\n propsCommon={{\n className: getActionStatusButtonClass(\n props.optimisticStatus ?? props.action.status,\n ),\n }}\n propsLeft={{\n children: getTranslatedActionStatus(\n props.optimisticStatus ?? props.action.status,\n t,\n ),\n }}\n propsRight={{\n iconEnd: <i className=\"ri-loop-left-line\" />,\n onClick: () => {\n props.onRefreshActionStatus(props.action);\n },\n }}\n menuItems={Object.values(ActionStatusOptions).map(value => ({\n key: value,\n // @ts-ignore\n label: t(\n actionStatusOptionsToTranslationKeys[\n value as ActionStatusOptions\n ],\n ),\n onClick: () => props.onNewActionStatus(props.action.ID, value),\n selected: props.optimisticStatus\n ? value === props.optimisticStatus\n : value === props.action.status,\n }))}\n />\n <ScenarioLastUpdatedLabel\n lastUpdated={\n !!props.optimisticStatus ? new Date() : props.action.lastUpdated\n }\n lastUpdatedBy={props.action.lastUpdatedBy}\n />\n {props.allowDeletion && (\n <IconButton\n onClick={e => {\n e.stopPropagation();\n props.openDeleteDialog();\n }}\n >\n <DeleteIcon />\n </IconButton>\n )}\n </Flex>\n </Flex>\n </div>\n <Collapse\n in={isExpanded}\n sx={{ marginTop: 1 }}\n timeout=\"auto\"\n unmountOnExit\n >\n <Box ml=\"56px\" mt=\"4\" mb=\"2\">\n <Flex justify=\"between\" mt=\"8px\" align=\"end\">\n <Text as=\"p\" variant=\"body-large\" weight=\"bold\">\n {t('dictionary.description')}\n </Text>\n {props.allowEdit && (\n <IconButton\n sx={{\n marginLeft: 'auto',\n transition: 'opacity 300ms ease-in',\n }}\n onClick={e => {\n e.stopPropagation();\n props.toggleEditMode();\n }}\n >\n <Edit />\n </IconButton>\n )}\n </Flex>\n <Markdown description={props.action.description} />\n <ActionURL url={props.action.url} />\n </Box>\n </Collapse>\n </>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { Dialog, DialogHeader, Text, DialogBody } from '@backstage/ui';
3
+ import styles from './DialogComponent.module.css.esm.js';
4
+
5
+ function DialogComponent({
6
+ isOpen,
7
+ onClick,
8
+ header,
9
+ children,
10
+ className
11
+ }) {
12
+ return /* @__PURE__ */ jsxs(Dialog, { isOpen, onOpenChange: onClick, className, children: [
13
+ /* @__PURE__ */ jsx(DialogHeader, { className: styles.DialogHeader, children: /* @__PURE__ */ jsx(Text, { variant: "title-small", weight: "bold", children: header }) }),
14
+ /* @__PURE__ */ jsx(DialogBody, { children })
15
+ ] });
16
+ }
17
+
18
+ export { DialogComponent as default };
19
+ //# sourceMappingURL=DialogComponent.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogComponent.esm.js","sources":["../../../src/components/dialog/DialogComponent.tsx"],"sourcesContent":["import { Dialog, DialogHeader, DialogBody, Text } from '@backstage/ui';\nimport styles from './DialogComponent.module.css';\n\ntype DialogComponentProps = {\n isOpen: boolean;\n onClick: () => void;\n header?: string;\n footer?: React.ReactNode;\n children: React.ReactNode;\n className?: string;\n};\n\nfunction DialogComponent({\n isOpen,\n onClick,\n header,\n children,\n className,\n}: DialogComponentProps) {\n return (\n <Dialog isOpen={isOpen} onOpenChange={onClick} className={className}>\n <DialogHeader className={styles.DialogHeader}>\n <Text variant=\"title-small\" weight=\"bold\">\n {header}\n </Text>\n </DialogHeader>\n <DialogBody>{children}</DialogBody>\n </Dialog>\n );\n}\n\nexport default DialogComponent;\n"],"names":[],"mappings":";;;;AAYA,SAAS,eAAA,CAAgB;AAAA,EACvB,MAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAAyB;AACvB,EAAA,uBACE,IAAA,CAAC,MAAA,EAAA,EAAO,MAAA,EAAgB,YAAA,EAAc,SAAS,SAAA,EAC7C,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAW,MAAA,CAAO,YAAA,EAC9B,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,aAAA,EAAc,MAAA,EAAO,MAAA,EAChC,QAAA,EAAA,MAAA,EACH,CAAA,EACF,CAAA;AAAA,oBACA,GAAA,CAAC,cAAY,QAAA,EAAS;AAAA,GAAA,EACxB,CAAA;AAEJ;;;;"}
@@ -0,0 +1,8 @@
1
+ import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
+
3
+ var css_248z = ".DialogComponent-module_DialogHeader__rMscy {\n padding-bottom: 12px;\n}\n";
4
+ var styles = {"DialogHeader":"DialogComponent-module_DialogHeader__rMscy"};
5
+ styleInject(css_248z);
6
+
7
+ export { styles as default };
8
+ //# sourceMappingURL=DialogComponent.module.css.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogComponent.module.css.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1,36 +1,34 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { ConsequenceTableInfoWithHeaders } from '../scenarioWizard/components/ConsequenceTable.esm.js';
3
3
  import { ProbabilityTableInfoWithHeaders } from '../scenarioWizard/components/ProbabilityTable.esm.js';
4
4
  import { pluginRiScTranslationRef } from '../../utils/translations.esm.js';
5
5
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
6
6
  import Box from '@mui/material/Box';
7
- import { DialogTrigger, Dialog, DialogHeader, Text, DialogBody, DialogFooter, Button } from '@backstage/ui';
7
+ import { Text } from '@backstage/ui';
8
8
  import styles from './RiScDialog.module.css.esm.js';
9
+ import DialogComponent from '../dialog/DialogComponent.esm.js';
9
10
 
10
11
  function MatrixDialog({
11
12
  open,
12
13
  close
13
14
  }) {
14
15
  const { t } = useTranslationRef(pluginRiScTranslationRef);
15
- return /* @__PURE__ */ jsx(DialogTrigger, { children: /* @__PURE__ */ jsxs(
16
- Dialog,
16
+ return /* @__PURE__ */ jsxs(
17
+ DialogComponent,
17
18
  {
18
19
  isOpen: open,
19
- onOpenChange: close,
20
+ onClick: close,
21
+ header: t("scenarioDrawer.riskMatrixModal.title"),
20
22
  className: styles.matrixDialog,
21
23
  children: [
22
- /* @__PURE__ */ jsx(DialogHeader, { children: /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: t("scenarioDrawer.riskMatrixModal.title") }) }),
23
- /* @__PURE__ */ jsxs(DialogBody, { children: [
24
- /* @__PURE__ */ jsx(Text, { as: "p", variant: "body-large", className: styles.matrixDialogBody, children: t("scenarioStepper.initialRiskStep.subtitle") }),
25
- /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: t("dictionary.probability") }) }),
26
- /* @__PURE__ */ jsx(ProbabilityTableInfoWithHeaders, {}),
27
- /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: t("dictionary.consequence") }) }),
28
- /* @__PURE__ */ jsx(ConsequenceTableInfoWithHeaders, {})
29
- ] }),
30
- /* @__PURE__ */ jsx(DialogFooter, { className: styles.matrixDialogFooter, children: /* @__PURE__ */ jsx(Button, { onClick: close, children: t("dictionary.close") }) })
24
+ /* @__PURE__ */ jsx(Text, { as: "p", variant: "body-large", className: styles.matrixDialogBody, children: t("scenarioStepper.initialRiskStep.subtitle") }),
25
+ /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: t("dictionary.probability") }) }),
26
+ /* @__PURE__ */ jsx(ProbabilityTableInfoWithHeaders, {}),
27
+ /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: t("dictionary.consequence") }) }),
28
+ /* @__PURE__ */ jsx(ConsequenceTableInfoWithHeaders, {})
31
29
  ]
32
30
  }
33
- ) });
31
+ );
34
32
  }
35
33
 
36
34
  export { MatrixDialog };
@@ -1 +1 @@
1
- {"version":3,"file":"MatrixDialog.esm.js","sources":["../../../src/components/riScDialog/MatrixDialog.tsx"],"sourcesContent":["import { ConsequenceTableInfoWithHeaders } from '../scenarioWizard/components/ConsequenceTable';\nimport { ProbabilityTableInfoWithHeaders } from '../scenarioWizard/components/ProbabilityTable';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Box from '@mui/material/Box';\nimport {\n Button,\n Text,\n Dialog,\n DialogHeader,\n DialogBody,\n DialogFooter,\n DialogTrigger,\n} from '@backstage/ui';\nimport styles from './RiScDialog.module.css';\n\nexport function MatrixDialog({\n open,\n close,\n}: {\n open: boolean;\n close: () => void;\n}) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n return (\n <DialogTrigger>\n <Dialog\n isOpen={open}\n onOpenChange={close}\n className={styles.matrixDialog}\n >\n <DialogHeader>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('scenarioDrawer.riskMatrixModal.title')}\n </Text>\n </DialogHeader>\n <DialogBody>\n <Text as=\"p\" variant=\"body-large\" className={styles.matrixDialogBody}>\n {t('scenarioStepper.initialRiskStep.subtitle')}\n </Text>\n <Box>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('dictionary.probability')}\n </Text>\n </Box>\n <ProbabilityTableInfoWithHeaders />\n <Box>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('dictionary.consequence')}\n </Text>\n </Box>\n <ConsequenceTableInfoWithHeaders />\n </DialogBody>\n <DialogFooter className={styles.matrixDialogFooter}>\n <Button onClick={close}>{t('dictionary.close')}</Button>\n </DialogFooter>\n </Dialog>\n </DialogTrigger>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;AAgBO,SAAS,YAAA,CAAa;AAAA,EAC3B,IAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,2BACG,aAAA,EAAA,EACC,QAAA,kBAAA,IAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,MAAA,EAAQ,IAAA;AAAA,MACR,YAAA,EAAc,KAAA;AAAA,MACd,WAAW,MAAA,CAAO,YAAA;AAAA,MAElB,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,YAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,eAAA,EAAgB,QAAO,MAAA,EAClC,QAAA,EAAA,CAAA,CAAE,sCAAsC,CAAA,EAC3C,CAAA,EACF,CAAA;AAAA,6BACC,UAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,IAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,OAAA,EAAQ,YAAA,EAAa,WAAW,MAAA,CAAO,gBAAA,EACjD,QAAA,EAAA,CAAA,CAAE,0CAA0C,CAAA,EAC/C,CAAA;AAAA,0BACA,GAAA,CAAC,GAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,eAAA,EAAgB,MAAA,EAAO,MAAA,EAClC,QAAA,EAAA,CAAA,CAAE,wBAAwB,CAAA,EAC7B,CAAA,EACF,CAAA;AAAA,8BACC,+BAAA,EAAA,EAAgC,CAAA;AAAA,0BACjC,GAAA,CAAC,GAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,eAAA,EAAgB,MAAA,EAAO,MAAA,EAClC,QAAA,EAAA,CAAA,CAAE,wBAAwB,CAAA,EAC7B,CAAA,EACF,CAAA;AAAA,8BACC,+BAAA,EAAA,EAAgC;AAAA,SAAA,EACnC,CAAA;AAAA,wBACA,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAW,MAAA,CAAO,kBAAA,EAC9B,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,OAAA,EAAS,KAAA,EAAQ,QAAA,EAAA,CAAA,CAAE,kBAAkB,CAAA,EAAE,CAAA,EACjD;AAAA;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"MatrixDialog.esm.js","sources":["../../../src/components/riScDialog/MatrixDialog.tsx"],"sourcesContent":["import { ConsequenceTableInfoWithHeaders } from '../scenarioWizard/components/ConsequenceTable';\nimport { ProbabilityTableInfoWithHeaders } from '../scenarioWizard/components/ProbabilityTable';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Box from '@mui/material/Box';\nimport { Text } from '@backstage/ui';\nimport styles from './RiScDialog.module.css';\nimport DialogComponent from '../dialog/DialogComponent';\n\nexport function MatrixDialog({\n open,\n close,\n}: {\n open: boolean;\n close: () => void;\n}) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n return (\n <DialogComponent\n isOpen={open}\n onClick={close}\n header={t('scenarioDrawer.riskMatrixModal.title')}\n className={styles.matrixDialog}\n >\n <Text as=\"p\" variant=\"body-large\" className={styles.matrixDialogBody}>\n {t('scenarioStepper.initialRiskStep.subtitle')}\n </Text>\n <Box>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('dictionary.probability')}\n </Text>\n </Box>\n <ProbabilityTableInfoWithHeaders />\n <Box>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('dictionary.consequence')}\n </Text>\n </Box>\n <ConsequenceTableInfoWithHeaders />\n </DialogComponent>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;AASO,SAAS,YAAA,CAAa;AAAA,EAC3B,IAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AAExD,EAAA,uBACE,IAAA;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACC,MAAA,EAAQ,IAAA;AAAA,MACR,OAAA,EAAS,KAAA;AAAA,MACT,MAAA,EAAQ,EAAE,sCAAsC,CAAA;AAAA,MAChD,WAAW,MAAA,CAAO,YAAA;AAAA,MAElB,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,OAAA,EAAQ,YAAA,EAAa,WAAW,MAAA,CAAO,gBAAA,EACjD,QAAA,EAAA,CAAA,CAAE,0CAA0C,CAAA,EAC/C,CAAA;AAAA,wBACA,GAAA,CAAC,GAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,eAAA,EAAgB,MAAA,EAAO,MAAA,EAClC,QAAA,EAAA,CAAA,CAAE,wBAAwB,CAAA,EAC7B,CAAA,EACF,CAAA;AAAA,4BACC,+BAAA,EAAA,EAAgC,CAAA;AAAA,wBACjC,GAAA,CAAC,GAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,eAAA,EAAgB,MAAA,EAAO,MAAA,EAClC,QAAA,EAAA,CAAA,CAAE,wBAAwB,CAAA,EAC7B,CAAA,EACF,CAAA;AAAA,4BACC,+BAAA,EAAA,EAAgC;AAAA;AAAA;AAAA,GACnC;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useState, useEffect } from 'react';
3
3
  import { emptyRiSc, isDeeplyEqual } from '../../utils/utilityfunctions.esm.js';
4
4
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
@@ -9,9 +9,10 @@ import { Stepper, Step, StepLabel } from '@mui/material';
9
9
  import ConfigEncryptionDialog from './ConfigEncryptionDialog.esm.js';
10
10
  import ConfigRiscInfo from './ConfigRiscInfo.esm.js';
11
11
  import ConfigInitialRisc from './ConfigInitialRisc.esm.js';
12
- import { DialogTrigger, Dialog, DialogHeader, Text, DialogBody, Flex, Button, DialogFooter } from '@backstage/ui';
12
+ import { Text, Flex, Button } from '@backstage/ui';
13
13
  import styles from './RiScDialog.module.css.esm.js';
14
14
  import { useDefaultRiScTypeDescriptors } from '../../contexts/DefaultRiScTypesContext.esm.js';
15
+ import DialogComponent from '../dialog/DialogComponent.esm.js';
15
16
 
16
17
  var RiScDialogStates = /* @__PURE__ */ ((RiScDialogStates2) => {
17
18
  RiScDialogStates2[RiScDialogStates2["Closed"] = 0] = "Closed";
@@ -127,118 +128,106 @@ function RiScDialog({
127
128
  onClose();
128
129
  });
129
130
  if (dialogState === 1 /* Create */) {
130
- return /* @__PURE__ */ jsx(DialogTrigger, { children: /* @__PURE__ */ jsxs(
131
- Dialog,
131
+ return /* @__PURE__ */ jsxs(
132
+ DialogComponent,
132
133
  {
133
134
  isOpen: true,
134
- onOpenChange: onClose,
135
+ onClick: onClose,
136
+ header: t("rosDialog.titleNew"),
135
137
  className: styles.createRiscDialog,
136
138
  children: [
137
- /* @__PURE__ */ jsx(DialogHeader, { className: styles.initRiscDialogTitle, children: /* @__PURE__ */ jsx(Text, { variant: "title-small", weight: "bold", children: t("rosDialog.titleNew") }) }),
138
- /* @__PURE__ */ jsxs(DialogBody, { className: styles.riscDialogBody, children: [
139
- /* @__PURE__ */ jsx(RiScStepper, { activeStep }),
140
- /* @__PURE__ */ jsxs(
141
- Text,
142
- {
143
- as: "h2",
144
- variant: "title-x-small",
145
- weight: "bold",
146
- className: styles.subtitle,
147
- children: [
148
- activeStep === 0 && t("rosDialog.initialRiscTitle"),
149
- activeStep === 1 && t("rosDialog.titleAndScope"),
150
- activeStep === 2 && t("rosDialog.stepEncryption")
151
- ]
152
- }
153
- ),
154
- activeStep === 0 && /* @__PURE__ */ jsx(
155
- ConfigInitialRisc,
156
- {
157
- switchOn,
158
- setSwitchOn,
159
- setValue,
160
- selectedRiScId,
161
- setSelectedRiScId
162
- }
163
- ),
164
- activeStep === 1 && /* @__PURE__ */ jsx(
165
- ConfigRiscInfo,
166
- {
167
- register,
168
- errors,
169
- setValue,
170
- watch
171
- }
172
- ),
173
- activeStep === 2 && /* @__PURE__ */ jsx(
174
- ConfigEncryptionDialog,
175
- {
176
- gcpCryptoKeys,
177
- setValue,
178
- state: dialogState,
179
- register,
180
- errors
181
- }
182
- ),
183
- /* @__PURE__ */ jsxs(Flex, { pt: "16px", justify: "between", children: [
184
- /* @__PURE__ */ jsx(Button, { size: "medium", variant: "secondary", onClick: onClose, children: t("dictionary.cancel") }),
185
- /* @__PURE__ */ jsxs(Flex, { children: [
186
- /* @__PURE__ */ jsx(
187
- Button,
188
- {
189
- size: "medium",
190
- variant: "secondary",
191
- isDisabled: activeStep === 0,
192
- onClick: handleBack,
193
- children: t("dictionary.previous")
194
- }
195
- ),
196
- activeStep < 2 ? /* @__PURE__ */ jsx(Button, { size: "medium", variant: "primary", onClick: handleNext, children: t("dictionary.next") }) : /* @__PURE__ */ jsx(
197
- Button,
198
- {
199
- size: "medium",
200
- variant: "primary",
201
- onClick: handleFinish,
202
- children: t("dictionary.save")
203
- }
204
- )
205
- ] })
139
+ /* @__PURE__ */ jsx(RiScStepper, { activeStep }),
140
+ /* @__PURE__ */ jsxs(
141
+ Text,
142
+ {
143
+ as: "h2",
144
+ variant: "title-x-small",
145
+ weight: "bold",
146
+ className: styles.subtitle,
147
+ children: [
148
+ activeStep === 0 && t("rosDialog.initialRiscTitle"),
149
+ activeStep === 1 && t("rosDialog.titleAndScope"),
150
+ activeStep === 2 && t("rosDialog.stepEncryption")
151
+ ]
152
+ }
153
+ ),
154
+ activeStep === 0 && /* @__PURE__ */ jsx(
155
+ ConfigInitialRisc,
156
+ {
157
+ switchOn,
158
+ setSwitchOn,
159
+ setValue,
160
+ selectedRiScId,
161
+ setSelectedRiScId
162
+ }
163
+ ),
164
+ activeStep === 1 && /* @__PURE__ */ jsx(
165
+ ConfigRiscInfo,
166
+ {
167
+ register,
168
+ errors,
169
+ setValue,
170
+ watch
171
+ }
172
+ ),
173
+ activeStep === 2 && /* @__PURE__ */ jsx(
174
+ ConfigEncryptionDialog,
175
+ {
176
+ gcpCryptoKeys,
177
+ setValue,
178
+ state: dialogState,
179
+ register,
180
+ errors
181
+ }
182
+ ),
183
+ /* @__PURE__ */ jsxs(Flex, { pt: "16px", justify: "between", children: [
184
+ /* @__PURE__ */ jsx(Button, { size: "medium", variant: "secondary", onClick: onClose, children: t("dictionary.cancel") }),
185
+ /* @__PURE__ */ jsxs(Flex, { children: [
186
+ /* @__PURE__ */ jsx(
187
+ Button,
188
+ {
189
+ size: "medium",
190
+ variant: "secondary",
191
+ isDisabled: activeStep === 0,
192
+ onClick: handleBack,
193
+ children: t("dictionary.previous")
194
+ }
195
+ ),
196
+ activeStep < 2 ? /* @__PURE__ */ jsx(Button, { size: "medium", variant: "primary", onClick: handleNext, children: t("dictionary.next") }) : /* @__PURE__ */ jsx(Button, { size: "medium", variant: "primary", onClick: handleFinish, children: t("dictionary.save") })
206
197
  ] })
207
198
  ] })
208
199
  ]
209
200
  }
210
- ) });
201
+ );
211
202
  }
212
203
  if (dialogState === 5 /* Delete */) {
213
- return /* @__PURE__ */ jsx(DialogTrigger, { children: /* @__PURE__ */ jsxs(
214
- Dialog,
204
+ return /* @__PURE__ */ jsx(
205
+ DialogComponent,
215
206
  {
216
207
  isOpen: true,
217
- onOpenChange: onClose,
208
+ onClick: onClose,
209
+ header: t("deleteDialog.title"),
218
210
  className: styles.createRiscDialog,
219
- children: [
220
- /* @__PURE__ */ jsx(DialogHeader, { className: styles.riscDialogTitle, children: /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: t("deleteDialog.title") }) }),
221
- /* @__PURE__ */ jsx(DialogBody, { className: styles.riscDialogBody, children: /* @__PURE__ */ jsxs(Flex, { direction: "column", children: [
222
- t("deleteDialog.confirmationMessage"),
223
- /* @__PURE__ */ jsxs(Flex, { justify: "between", pt: "16px", children: [
224
- /* @__PURE__ */ jsx(Button, { size: "medium", variant: "secondary", onClick: onClose, children: t("dictionary.cancel") }),
225
- /* @__PURE__ */ jsx(Button, { size: "medium", variant: "primary", onClick: handleFinish, children: t("dictionary.delete") })
226
- ] })
227
- ] }) })
228
- ]
211
+ children: /* @__PURE__ */ jsxs(Flex, { direction: "column", children: [
212
+ t("deleteDialog.confirmationMessage"),
213
+ /* @__PURE__ */ jsxs(Flex, { justify: "between", pt: "16px", children: [
214
+ /* @__PURE__ */ jsx(Button, { size: "medium", variant: "secondary", onClick: onClose, children: t("dictionary.cancel") }),
215
+ /* @__PURE__ */ jsx(Button, { size: "medium", variant: "primary", onClick: handleFinish, children: t("dictionary.delete") })
216
+ ] })
217
+ ] })
229
218
  }
230
- ) });
219
+ );
231
220
  }
232
221
  if (dialogState === 2 /* EditRiscInfo */) {
233
- return /* @__PURE__ */ jsx(DialogTrigger, { children: /* @__PURE__ */ jsxs(
234
- Dialog,
222
+ return /* @__PURE__ */ jsxs(
223
+ DialogComponent,
235
224
  {
236
225
  isOpen: true,
237
- onOpenChange: onClose,
226
+ onClick: onClose,
227
+ header: t("rosDialog.titleEdit"),
238
228
  className: styles.createRiscDialog,
239
229
  children: [
240
- /* @__PURE__ */ jsx(DialogHeader, { className: styles.riscDialogTitle, children: /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: t("rosDialog.titleEdit") }) }),
241
- /* @__PURE__ */ jsx(DialogBody, { className: styles.riscDialogBody, children: /* @__PURE__ */ jsx(
230
+ /* @__PURE__ */ jsx(
242
231
  ConfigRiscInfo,
243
232
  {
244
233
  register,
@@ -246,8 +235,8 @@ function RiScDialog({
246
235
  setValue,
247
236
  watch
248
237
  }
249
- ) }),
250
- /* @__PURE__ */ jsxs(DialogFooter, { className: styles.riscDialogFooter, children: [
238
+ ),
239
+ /* @__PURE__ */ jsxs(Flex, { justify: "between", pt: "16px", children: [
251
240
  /* @__PURE__ */ jsxs(
252
241
  Button,
253
242
  {
@@ -268,37 +257,35 @@ function RiScDialog({
268
257
  ] })
269
258
  ]
270
259
  }
271
- ) });
260
+ );
272
261
  }
273
262
  if (dialogState === 4 /* EditEncryption */) {
274
- return /* @__PURE__ */ jsx(DialogTrigger, { children: /* @__PURE__ */ jsxs(
275
- Dialog,
263
+ return /* @__PURE__ */ jsxs(
264
+ DialogComponent,
276
265
  {
277
266
  isOpen: true,
278
- onOpenChange: onClose,
267
+ onClick: onClose,
268
+ header: t("rosDialog.editEncryption"),
279
269
  className: styles.createRiscDialog,
280
270
  children: [
281
- /* @__PURE__ */ jsx(DialogHeader, { className: styles.riscDialogTitle, children: /* @__PURE__ */ jsx(Text, { variant: "title-small", weight: "bold", children: t("rosDialog.editEncryption") }) }),
282
- /* @__PURE__ */ jsxs(DialogBody, { className: styles.riscDialogBody, children: [
283
- /* @__PURE__ */ jsx(
284
- ConfigEncryptionDialog,
285
- {
286
- gcpCryptoKeys,
287
- sopsData: selectedRiSc?.sopsConfig,
288
- setValue,
289
- state: dialogState,
290
- register,
291
- errors
292
- }
293
- ),
294
- /* @__PURE__ */ jsxs(Flex, { justify: "between", className: styles.riscDialogFooter, children: [
295
- /* @__PURE__ */ jsx(Button, { size: "medium", variant: "secondary", onClick: onClose, children: t("dictionary.cancel") }),
296
- /* @__PURE__ */ jsx(Button, { size: "medium", variant: "primary", onClick: handleFinish, children: t("dictionary.save") })
297
- ] })
271
+ /* @__PURE__ */ jsx(
272
+ ConfigEncryptionDialog,
273
+ {
274
+ gcpCryptoKeys,
275
+ sopsData: selectedRiSc?.sopsConfig,
276
+ setValue,
277
+ state: dialogState,
278
+ register,
279
+ errors
280
+ }
281
+ ),
282
+ /* @__PURE__ */ jsxs(Flex, { justify: "between", pt: "16px", children: [
283
+ /* @__PURE__ */ jsx(Button, { size: "medium", variant: "secondary", onClick: onClose, children: t("dictionary.cancel") }),
284
+ /* @__PURE__ */ jsx(Button, { size: "medium", variant: "primary", onClick: handleFinish, children: t("dictionary.save") })
298
285
  ] })
299
286
  ]
300
287
  }
301
- ) });
288
+ );
302
289
  }
303
290
  return null;
304
291
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RiScDialog.esm.js","sources":["../../../src/components/riScDialog/RiScDialog.tsx"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { RiScWithMetadata } from '../../utils/types';\nimport { emptyRiSc, isDeeplyEqual } from '../../utils/utilityfunctions';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useRiScs } from '../../contexts/RiScContext';\nimport { useForm } from 'react-hook-form';\nimport { Step, StepLabel, Stepper } from '@mui/material';\nimport ConfigEncryptionDialog from './ConfigEncryptionDialog';\nimport ConfigRiscInfo from './ConfigRiscInfo';\nimport ConfigInitialRisc from './ConfigInitialRisc';\nimport {\n Flex,\n Button,\n Text,\n Dialog,\n DialogTrigger,\n DialogHeader,\n DialogBody,\n DialogFooter,\n} from '@backstage/ui';\nimport styles from './RiScDialog.module.css';\nimport { useDefaultRiScTypeDescriptors } from '../../contexts/DefaultRiScTypesContext.tsx';\n\nexport enum RiScDialogStates {\n Closed = 0,\n Create = 1,\n EditRiscInfo = 2,\n SelectInitialRisc = 3,\n EditEncryption = 4,\n Delete = 5,\n}\n\ninterface RiScDialogProps {\n onClose: () => void;\n dialogState: RiScDialogStates;\n onDelete: () => void;\n}\n\nfunction RiScStepper({ activeStep }: { activeStep: number }) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const steps = [\n t('rosDialog.initialRiscTitle'),\n t('rosDialog.stepRiscDetails'),\n t('rosDialog.stepEncryption'),\n ];\n return (\n <Stepper activeStep={activeStep} alternativeLabel>\n {steps.map(label => (\n <Step key={label}>\n <StepLabel>{label}</StepLabel>\n </Step>\n ))}\n </Stepper>\n );\n}\n\nexport function RiScDialog({\n onClose,\n dialogState,\n onDelete,\n}: RiScDialogProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const {\n selectedRiSc,\n riScs,\n selectRiSc,\n createNewRiSc,\n deleteRiSc,\n updateRiSc,\n gcpCryptoKeys,\n } = useRiScs();\n const {\n register,\n handleSubmit,\n watch,\n formState: { errors },\n setValue,\n } = useForm<RiScWithMetadata>({\n defaultValues:\n dialogState === RiScDialogStates.EditRiscInfo ||\n dialogState === RiScDialogStates.EditEncryption\n ? selectedRiSc!\n : {\n content: emptyRiSc(),\n sopsConfig: {\n shamir_threshold: 2,\n },\n },\n mode: 'onBlur',\n });\n\n const [activeStep, setActiveStep] = useState(0);\n\n const [switchOn, setSwitchOn] = useState(false);\n\n const { riScSelectedByDefault } = useDefaultRiScTypeDescriptors();\n const [selectedRiScId, setSelectedRiScId] = useState<string | undefined>(\n riScSelectedByDefault?.id,\n );\n useEffect(() => {\n setSelectedRiScId(riScSelectedByDefault?.id);\n }, [riScSelectedByDefault]);\n\n const handleNext = handleSubmit(\n () => {\n if (activeStep === 0) {\n setActiveStep(1);\n }\n if (activeStep === 1) {\n setActiveStep(2);\n }\n },\n // Continue to step 1 even if there are errors, as long as there are no errors in step 0 (the content)\n validationErrors => {\n if (activeStep === 0 && validationErrors.content === undefined) {\n setActiveStep(1);\n }\n },\n );\n\n function handleBack() {\n if (activeStep === 1) {\n setActiveStep(0);\n }\n if (activeStep === 2) {\n setActiveStep(1);\n }\n }\n\n const handleFinish = handleSubmit((data: RiScWithMetadata) => {\n if (dialogState === RiScDialogStates.Create) {\n createNewRiSc(data, switchOn, selectedRiScId);\n } else if (dialogState === RiScDialogStates.Delete) {\n deleteRiSc(() =>\n selectRiSc(riScs && riScs.length > 0 ? riScs[0].id : ''),\n );\n } else {\n // Do manual comparison of contents, as the sopsConfig field contains many values from the backend that are not\n // used or set by the frontend.\n // Check if the additional Age keys are equal, using the single important field, `recipient`\n const areAgeKeysEqual = isDeeplyEqual(\n data.sopsConfig.age?.map(age => age.recipient).sort(),\n selectedRiSc?.sopsConfig.age?.map(age => age.recipient).sort(),\n );\n\n // Check if the GCP keys are equal, using the two important fields, `resource_id` and `created_at`.\n // Comparison uses dictionaries, where resource ids are keys and created at dates are values\n const areGCPKeysEqual = isDeeplyEqual(\n Object.fromEntries(\n data.sopsConfig.gcp_kms?.map(key => [\n key.resource_id,\n key.created_at,\n ]) ?? [],\n ),\n Object.fromEntries(\n selectedRiSc?.sopsConfig.gcp_kms?.map(key => [\n key.resource_id,\n key.created_at,\n ]) ?? [],\n ),\n );\n\n // Only update the risc if it has changed\n if (\n !isDeeplyEqual(data, selectedRiSc, ['sopsConfig']) ||\n !areGCPKeysEqual ||\n !areAgeKeysEqual\n ) {\n updateRiSc(data);\n }\n }\n onClose();\n });\n\n if (dialogState === RiScDialogStates.Create) {\n return (\n <DialogTrigger>\n <Dialog\n isOpen={true}\n onOpenChange={onClose}\n className={styles.createRiscDialog}\n >\n <DialogHeader className={styles.initRiscDialogTitle}>\n <Text variant=\"title-small\" weight=\"bold\">\n {t('rosDialog.titleNew')}\n </Text>\n </DialogHeader>\n <DialogBody className={styles.riscDialogBody}>\n <RiScStepper activeStep={activeStep} />\n <Text\n as=\"h2\"\n variant=\"title-x-small\"\n weight=\"bold\"\n className={styles.subtitle}\n >\n {activeStep === 0 && t('rosDialog.initialRiscTitle')}\n {activeStep === 1 && t('rosDialog.titleAndScope')}\n {activeStep === 2 && t('rosDialog.stepEncryption')}\n </Text>\n {activeStep === 0 && (\n <ConfigInitialRisc\n switchOn={switchOn}\n setSwitchOn={setSwitchOn}\n setValue={setValue}\n selectedRiScId={selectedRiScId}\n setSelectedRiScId={setSelectedRiScId}\n />\n )}\n {activeStep === 1 && (\n <ConfigRiscInfo\n register={register}\n errors={errors}\n setValue={setValue}\n watch={watch}\n />\n )}\n {activeStep === 2 && (\n <ConfigEncryptionDialog\n gcpCryptoKeys={gcpCryptoKeys}\n setValue={setValue}\n state={dialogState}\n register={register}\n errors={errors}\n />\n )}\n <Flex pt=\"16px\" justify=\"between\">\n <Button size=\"medium\" variant=\"secondary\" onClick={onClose}>\n {t('dictionary.cancel')}\n </Button>\n <Flex>\n <Button\n size=\"medium\"\n variant=\"secondary\"\n isDisabled={activeStep === 0}\n onClick={handleBack}\n >\n {t('dictionary.previous')}\n </Button>\n {activeStep < 2 ? (\n <Button size=\"medium\" variant=\"primary\" onClick={handleNext}>\n {t('dictionary.next')}\n </Button>\n ) : (\n <Button\n size=\"medium\"\n variant=\"primary\"\n onClick={handleFinish}\n >\n {t('dictionary.save')}\n </Button>\n )}\n </Flex>\n </Flex>\n </DialogBody>\n </Dialog>\n </DialogTrigger>\n );\n }\n\n if (dialogState === RiScDialogStates.Delete) {\n return (\n <DialogTrigger>\n <Dialog\n isOpen={true}\n onOpenChange={onClose}\n className={styles.createRiscDialog}\n >\n <DialogHeader className={styles.riscDialogTitle}>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('deleteDialog.title')}\n </Text>\n </DialogHeader>\n <DialogBody className={styles.riscDialogBody}>\n <Flex direction=\"column\">\n {t('deleteDialog.confirmationMessage')}\n <Flex justify=\"between\" pt=\"16px\">\n <Button size=\"medium\" variant=\"secondary\" onClick={onClose}>\n {t('dictionary.cancel')}\n </Button>\n <Button size=\"medium\" variant=\"primary\" onClick={handleFinish}>\n {t('dictionary.delete')}\n </Button>\n </Flex>\n </Flex>\n </DialogBody>\n </Dialog>\n </DialogTrigger>\n );\n }\n\n if (dialogState === RiScDialogStates.EditRiscInfo) {\n return (\n <DialogTrigger>\n <Dialog\n isOpen={true}\n onOpenChange={onClose}\n className={styles.createRiscDialog}\n >\n <DialogHeader className={styles.riscDialogTitle}>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('rosDialog.titleEdit')}\n </Text>\n </DialogHeader>\n <DialogBody className={styles.riscDialogBody}>\n <ConfigRiscInfo\n register={register}\n errors={errors}\n setValue={setValue}\n watch={watch}\n />\n </DialogBody>\n <DialogFooter className={styles.riscDialogFooter}>\n <Button\n size=\"medium\"\n variant=\"tertiary\"\n onClick={onDelete}\n className={styles.deleteButton}\n >\n <i className={`ri-delete-bin-line ${styles.deleteButtonIcon}`} />\n {t('contentHeader.deleteButton')}\n </Button>\n <Flex>\n <Button size=\"medium\" variant=\"secondary\" onClick={onClose}>\n {t('dictionary.cancel')}\n </Button>\n <Button size=\"medium\" variant=\"primary\" onClick={handleFinish}>\n {t('dictionary.save')}\n </Button>\n </Flex>\n </DialogFooter>\n </Dialog>\n </DialogTrigger>\n );\n }\n\n if (dialogState === RiScDialogStates.EditEncryption) {\n return (\n <DialogTrigger>\n <Dialog\n isOpen={true}\n onOpenChange={onClose}\n className={styles.createRiscDialog}\n >\n <DialogHeader className={styles.riscDialogTitle}>\n <Text variant=\"title-small\" weight=\"bold\">\n {t('rosDialog.editEncryption')}\n </Text>\n </DialogHeader>\n <DialogBody className={styles.riscDialogBody}>\n <ConfigEncryptionDialog\n gcpCryptoKeys={gcpCryptoKeys}\n sopsData={selectedRiSc?.sopsConfig}\n setValue={setValue}\n state={dialogState}\n register={register}\n errors={errors}\n />\n <Flex justify=\"between\" className={styles.riscDialogFooter}>\n <Button size=\"medium\" variant=\"secondary\" onClick={onClose}>\n {t('dictionary.cancel')}\n </Button>\n <Button size=\"medium\" variant=\"primary\" onClick={handleFinish}>\n {t('dictionary.save')}\n </Button>\n </Flex>\n </DialogBody>\n </Dialog>\n </DialogTrigger>\n );\n }\n\n return null;\n}\n"],"names":["RiScDialogStates"],"mappings":"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"}
1
+ {"version":3,"file":"RiScDialog.esm.js","sources":["../../../src/components/riScDialog/RiScDialog.tsx"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { RiScWithMetadata } from '../../utils/types';\nimport { emptyRiSc, isDeeplyEqual } from '../../utils/utilityfunctions';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { useRiScs } from '../../contexts/RiScContext';\nimport { useForm } from 'react-hook-form';\nimport { Step, StepLabel, Stepper } from '@mui/material';\nimport ConfigEncryptionDialog from './ConfigEncryptionDialog';\nimport ConfigRiscInfo from './ConfigRiscInfo';\nimport ConfigInitialRisc from './ConfigInitialRisc';\nimport { Flex, Button, Text } from '@backstage/ui';\nimport styles from './RiScDialog.module.css';\nimport { useDefaultRiScTypeDescriptors } from '../../contexts/DefaultRiScTypesContext.tsx';\nimport DialogComponent from '../dialog/DialogComponent.tsx';\n\nexport enum RiScDialogStates {\n Closed = 0,\n Create = 1,\n EditRiscInfo = 2,\n SelectInitialRisc = 3,\n EditEncryption = 4,\n Delete = 5,\n}\n\ninterface RiScDialogProps {\n onClose: () => void;\n dialogState: RiScDialogStates;\n onDelete: () => void;\n}\n\nfunction RiScStepper({ activeStep }: { activeStep: number }) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const steps = [\n t('rosDialog.initialRiscTitle'),\n t('rosDialog.stepRiscDetails'),\n t('rosDialog.stepEncryption'),\n ];\n return (\n <Stepper activeStep={activeStep} alternativeLabel>\n {steps.map(label => (\n <Step key={label}>\n <StepLabel>{label}</StepLabel>\n </Step>\n ))}\n </Stepper>\n );\n}\n\nexport function RiScDialog({\n onClose,\n dialogState,\n onDelete,\n}: RiScDialogProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const {\n selectedRiSc,\n riScs,\n selectRiSc,\n createNewRiSc,\n deleteRiSc,\n updateRiSc,\n gcpCryptoKeys,\n } = useRiScs();\n const {\n register,\n handleSubmit,\n watch,\n formState: { errors },\n setValue,\n } = useForm<RiScWithMetadata>({\n defaultValues:\n dialogState === RiScDialogStates.EditRiscInfo ||\n dialogState === RiScDialogStates.EditEncryption\n ? selectedRiSc!\n : {\n content: emptyRiSc(),\n sopsConfig: {\n shamir_threshold: 2,\n },\n },\n mode: 'onBlur',\n });\n\n const [activeStep, setActiveStep] = useState(0);\n\n const [switchOn, setSwitchOn] = useState(false);\n\n const { riScSelectedByDefault } = useDefaultRiScTypeDescriptors();\n const [selectedRiScId, setSelectedRiScId] = useState<string | undefined>(\n riScSelectedByDefault?.id,\n );\n useEffect(() => {\n setSelectedRiScId(riScSelectedByDefault?.id);\n }, [riScSelectedByDefault]);\n\n const handleNext = handleSubmit(\n () => {\n if (activeStep === 0) {\n setActiveStep(1);\n }\n if (activeStep === 1) {\n setActiveStep(2);\n }\n },\n // Continue to step 1 even if there are errors, as long as there are no errors in step 0 (the content)\n validationErrors => {\n if (activeStep === 0 && validationErrors.content === undefined) {\n setActiveStep(1);\n }\n },\n );\n\n function handleBack() {\n if (activeStep === 1) {\n setActiveStep(0);\n }\n if (activeStep === 2) {\n setActiveStep(1);\n }\n }\n\n const handleFinish = handleSubmit((data: RiScWithMetadata) => {\n if (dialogState === RiScDialogStates.Create) {\n createNewRiSc(data, switchOn, selectedRiScId);\n } else if (dialogState === RiScDialogStates.Delete) {\n deleteRiSc(() =>\n selectRiSc(riScs && riScs.length > 0 ? riScs[0].id : ''),\n );\n } else {\n // Do manual comparison of contents, as the sopsConfig field contains many values from the backend that are not\n // used or set by the frontend.\n // Check if the additional Age keys are equal, using the single important field, `recipient`\n const areAgeKeysEqual = isDeeplyEqual(\n data.sopsConfig.age?.map(age => age.recipient).sort(),\n selectedRiSc?.sopsConfig.age?.map(age => age.recipient).sort(),\n );\n\n // Check if the GCP keys are equal, using the two important fields, `resource_id` and `created_at`.\n // Comparison uses dictionaries, where resource ids are keys and created at dates are values\n const areGCPKeysEqual = isDeeplyEqual(\n Object.fromEntries(\n data.sopsConfig.gcp_kms?.map(key => [\n key.resource_id,\n key.created_at,\n ]) ?? [],\n ),\n Object.fromEntries(\n selectedRiSc?.sopsConfig.gcp_kms?.map(key => [\n key.resource_id,\n key.created_at,\n ]) ?? [],\n ),\n );\n\n // Only update the risc if it has changed\n if (\n !isDeeplyEqual(data, selectedRiSc, ['sopsConfig']) ||\n !areGCPKeysEqual ||\n !areAgeKeysEqual\n ) {\n updateRiSc(data);\n }\n }\n onClose();\n });\n\n if (dialogState === RiScDialogStates.Create) {\n return (\n <DialogComponent\n isOpen={true}\n onClick={onClose}\n header={t('rosDialog.titleNew')}\n className={styles.createRiscDialog}\n >\n <RiScStepper activeStep={activeStep} />\n <Text\n as=\"h2\"\n variant=\"title-x-small\"\n weight=\"bold\"\n className={styles.subtitle}\n >\n {activeStep === 0 && t('rosDialog.initialRiscTitle')}\n {activeStep === 1 && t('rosDialog.titleAndScope')}\n {activeStep === 2 && t('rosDialog.stepEncryption')}\n </Text>\n {activeStep === 0 && (\n <ConfigInitialRisc\n switchOn={switchOn}\n setSwitchOn={setSwitchOn}\n setValue={setValue}\n selectedRiScId={selectedRiScId}\n setSelectedRiScId={setSelectedRiScId}\n />\n )}\n {activeStep === 1 && (\n <ConfigRiscInfo\n register={register}\n errors={errors}\n setValue={setValue}\n watch={watch}\n />\n )}\n {activeStep === 2 && (\n <ConfigEncryptionDialog\n gcpCryptoKeys={gcpCryptoKeys}\n setValue={setValue}\n state={dialogState}\n register={register}\n errors={errors}\n />\n )}\n <Flex pt=\"16px\" justify=\"between\">\n <Button size=\"medium\" variant=\"secondary\" onClick={onClose}>\n {t('dictionary.cancel')}\n </Button>\n <Flex>\n <Button\n size=\"medium\"\n variant=\"secondary\"\n isDisabled={activeStep === 0}\n onClick={handleBack}\n >\n {t('dictionary.previous')}\n </Button>\n {activeStep < 2 ? (\n <Button size=\"medium\" variant=\"primary\" onClick={handleNext}>\n {t('dictionary.next')}\n </Button>\n ) : (\n <Button size=\"medium\" variant=\"primary\" onClick={handleFinish}>\n {t('dictionary.save')}\n </Button>\n )}\n </Flex>\n </Flex>\n </DialogComponent>\n );\n }\n\n if (dialogState === RiScDialogStates.Delete) {\n return (\n <DialogComponent\n isOpen={true}\n onClick={onClose}\n header={t('deleteDialog.title')}\n className={styles.createRiscDialog}\n >\n <Flex direction=\"column\">\n {t('deleteDialog.confirmationMessage')}\n <Flex justify=\"between\" pt=\"16px\">\n <Button size=\"medium\" variant=\"secondary\" onClick={onClose}>\n {t('dictionary.cancel')}\n </Button>\n <Button size=\"medium\" variant=\"primary\" onClick={handleFinish}>\n {t('dictionary.delete')}\n </Button>\n </Flex>\n </Flex>\n </DialogComponent>\n );\n }\n\n if (dialogState === RiScDialogStates.EditRiscInfo) {\n return (\n <DialogComponent\n isOpen={true}\n onClick={onClose}\n header={t('rosDialog.titleEdit')}\n className={styles.createRiscDialog}\n >\n <ConfigRiscInfo\n register={register}\n errors={errors}\n setValue={setValue}\n watch={watch}\n />\n <Flex justify=\"between\" pt=\"16px\">\n <Button\n size=\"medium\"\n variant=\"tertiary\"\n onClick={onDelete}\n className={styles.deleteButton}\n >\n <i className={`ri-delete-bin-line ${styles.deleteButtonIcon}`} />\n {t('contentHeader.deleteButton')}\n </Button>\n <Flex>\n <Button size=\"medium\" variant=\"secondary\" onClick={onClose}>\n {t('dictionary.cancel')}\n </Button>\n <Button size=\"medium\" variant=\"primary\" onClick={handleFinish}>\n {t('dictionary.save')}\n </Button>\n </Flex>\n </Flex>\n </DialogComponent>\n );\n }\n\n if (dialogState === RiScDialogStates.EditEncryption) {\n return (\n <DialogComponent\n isOpen={true}\n onClick={onClose}\n header={t('rosDialog.editEncryption')}\n className={styles.createRiscDialog}\n >\n <ConfigEncryptionDialog\n gcpCryptoKeys={gcpCryptoKeys}\n sopsData={selectedRiSc?.sopsConfig}\n setValue={setValue}\n state={dialogState}\n register={register}\n errors={errors}\n />\n <Flex justify=\"between\" pt=\"16px\">\n <Button size=\"medium\" variant=\"secondary\" onClick={onClose}>\n {t('dictionary.cancel')}\n </Button>\n <Button size=\"medium\" variant=\"primary\" onClick={handleFinish}>\n {t('dictionary.save')}\n </Button>\n </Flex>\n </DialogComponent>\n );\n }\n\n return null;\n}\n"],"names":["RiScDialogStates"],"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 = ".RiScDialog-module_subtitle__DD2TU {\n padding-top: 24px;\n padding-bottom: 8px;\n}\n\n.RiScDialog-module_subtitleDivider__s1MRG {\n padding-top: 16px;\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_matrixDialogFooter__50J-Q {\n padding: 16px 0;\n}\n\n.RiScDialog-module_riscDialogTitle__LQYHp {\n padding: 0 0 16px 0;\n}\n\n.RiScDialog-module_createRiscDialog__eOOvy {\n padding: 24px;\n border-radius: 4px;\n width: 600px;\n}\n\n.RiScDialog-module_riscDialogBody__Vvxia {\n padding: 24px 0 0 0;\n}\n\n.RiScDialog-module_riscDialogFooter__0Cryc {\n display: flex;\n justify-content: space-between;\n padding: 16px 0 0 0;\n}\n\n.RiScDialog-module_riscDialogBodyNoFooter__44BnN {\n padding: 24px 0 0 0;\n}\n\n.RiScDialog-module_initRiscDialogTitle__ALt2p {\n padding: 0 0 16px 0;\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","matrixDialogFooter":"RiScDialog-module_matrixDialogFooter__50J-Q","riscDialogTitle":"RiScDialog-module_riscDialogTitle__LQYHp","createRiscDialog":"RiScDialog-module_createRiscDialog__eOOvy","riscDialogBody":"RiScDialog-module_riscDialogBody__Vvxia","riscDialogFooter":"RiScDialog-module_riscDialogFooter__0Cryc","riscDialogBodyNoFooter":"RiScDialog-module_riscDialogBodyNoFooter__44BnN","initRiscDialogTitle":"RiScDialog-module_initRiscDialogTitle__ALt2p","accordionContainer":"RiScDialog-module_accordionContainer__bj-Kf"};
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"};
5
5
  styleInject(css_248z);
6
6
 
7
7
  export { styles as default };