@kartverket/backstage-plugin-risk-scorecard 6.7.0 → 6.7.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.
@@ -9,10 +9,18 @@ function DialogComponent({
9
9
  children,
10
10
  className
11
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
- ] });
12
+ return /* @__PURE__ */ jsxs(
13
+ Dialog,
14
+ {
15
+ isOpen,
16
+ onOpenChange: onClick,
17
+ className: `${styles.dialog} ${className ?? ""}`,
18
+ children: [
19
+ /* @__PURE__ */ jsx(DialogHeader, { className: styles.DialogHeader, children: /* @__PURE__ */ jsx(Text, { variant: "title-small", weight: "bold", children: header }) }),
20
+ /* @__PURE__ */ jsx(DialogBody, { children })
21
+ ]
22
+ }
23
+ );
16
24
  }
17
25
 
18
26
  export { DialogComponent as default };
@@ -1 +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;;;;"}
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\n isOpen={isOpen}\n onOpenChange={onClick}\n className={`${styles.dialog} ${className ?? ''}`}\n >\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;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,MAAA;AAAA,MACA,YAAA,EAAc,OAAA;AAAA,MACd,WAAW,CAAA,EAAG,MAAA,CAAO,MAAM,CAAA,CAAA,EAAI,aAAa,EAAE,CAAA,CAAA;AAAA,MAE9C,QAAA,EAAA;AAAA,wBAAA,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,wBACA,GAAA,CAAC,cAAY,QAAA,EAAS;AAAA;AAAA;AAAA,GACxB;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 = ".DialogComponent_DialogHeader__5be9eff22a {\n padding-bottom: 12px;\n}\n";
4
- var styles = {"DialogHeader":"DialogComponent_DialogHeader__5be9eff22a"};
3
+ var css_248z = ".DialogComponent_dialog__7317f9d305 {\n --bui-bg-neutral-1: var(--bui-bg-app);\n}\n\n.DialogComponent_DialogHeader__7317f9d305 {\n padding-bottom: 12px;\n}\n";
4
+ var styles = {"dialog":"DialogComponent_dialog__7317f9d305","DialogHeader":"DialogComponent_DialogHeader__7317f9d305"};
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 = ".RiScSelectionCard_selectTrigger__3e2e061704 button {\n background-color: transparent;\n}\n\n[role='listbox'] {\n max-height: 400px;\n overflow-y: auto;\n}\n\n.RiScSelectionCard_riScInfoDialog__3e2e061704 {\n padding: 24px;\n border-radius: 4px;\n width: 800px;\n}\n\n.RiScSelectionCard_riscSelectionDialogHeader__3e2e061704 {\n padding: 0 0 16px 0;\n}\n\n.RiScSelectionCard_riscSelectionDialogBody__3e2e061704 {\n gap: 16px;\n padding: 16px 0 0 0;\n}\n\n.RiScSelectionCard_riscDescriptionComponent__3e2e061704 {\n padding-bottom: 10px;\n}\n.RiScSelectionCard_componentLayout__3e2e061704 {\n height: 60%;\n}\n\n.RiScSelectionCard_riscDescriptionContainer__3e2e061704 {\n margin-bottom: 16px;\n}\n\n.RiScSelectionCard_riScInfoDialog__3e2e061704 {\n background-color: var(--bui-bg-app);\n}\n";
4
- var riscStyles = {"selectTrigger":"RiScSelectionCard_selectTrigger__3e2e061704","riScInfoDialog":"RiScSelectionCard_riScInfoDialog__3e2e061704","riscDescriptionComponent":"RiScSelectionCard_riscDescriptionComponent__3e2e061704","componentLayout":"RiScSelectionCard_componentLayout__3e2e061704","riscDescriptionContainer":"RiScSelectionCard_riscDescriptionContainer__3e2e061704"};
3
+ var css_248z = ".RiScSelectionCard_selectTrigger__29231cdb76 button {\n background-color: transparent;\n border: 1px solid var(--bui-border-2);\n}\n\n[role='listbox'] {\n max-height: 400px;\n overflow-y: auto;\n}\n\n.RiScSelectionCard_riScInfoDialog__29231cdb76 {\n padding: 24px;\n border-radius: 4px;\n width: 800px;\n}\n\n.RiScSelectionCard_riscSelectionDialogHeader__29231cdb76 {\n padding: 0 0 16px 0;\n}\n\n.RiScSelectionCard_riscSelectionDialogBody__29231cdb76 {\n gap: 16px;\n padding: 16px 0 0 0;\n}\n\n.RiScSelectionCard_riscDescriptionComponent__29231cdb76 {\n padding-bottom: 10px;\n}\n.RiScSelectionCard_componentLayout__29231cdb76 {\n height: 60%;\n}\n\n.RiScSelectionCard_riscDescriptionContainer__29231cdb76 {\n margin-bottom: 16px;\n}\n\n.RiScSelectionCard_riScInfoDialog__29231cdb76 {\n background-color: var(--bui-bg-app);\n}\n";
4
+ var riscStyles = {"selectTrigger":"RiScSelectionCard_selectTrigger__29231cdb76","riScInfoDialog":"RiScSelectionCard_riScInfoDialog__29231cdb76","riscDescriptionComponent":"RiScSelectionCard_riscDescriptionComponent__29231cdb76","componentLayout":"RiScSelectionCard_componentLayout__29231cdb76","riscDescriptionContainer":"RiScSelectionCard_riscDescriptionContainer__29231cdb76"};
5
5
  styleInject(css_248z);
6
6
 
7
7
  export { riscStyles as default };
@@ -87,7 +87,8 @@ function CurrentRisk({ risc }) {
87
87
  className: styles.currentRiskBarFill,
88
88
  style: {
89
89
  background: getRiskGradient()
90
- }
90
+ },
91
+ children: null
91
92
  }
92
93
  ),
93
94
  /* @__PURE__ */ jsx(
@@ -96,7 +97,8 @@ function CurrentRisk({ risc }) {
96
97
  className: styles.currentRiskMarker,
97
98
  style: {
98
99
  left: `${clampedPercentage}%`
99
- }
100
+ },
101
+ children: null
100
102
  }
101
103
  )
102
104
  ] }) }),
@@ -1 +1 @@
1
- {"version":3,"file":"CurrentRisk.esm.js","sources":["../../../src/components/riskMatrix/CurrentRisk.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { RiScWithMetadata } from '../../utils/types';\nimport { Box, Button, Text, Flex } from '@backstage/ui';\nimport { ActionStatusOptions } from '../../utils/constants';\nimport { calcRiskCostOfRiSc, getRiskGradient } from '../../utils/risk';\nimport { RiskMatrixTabs } from './utils';\nimport styles from './CurrentRisk.module.css';\nimport { formatNumber } from '../../utils/utilityfunctions';\nimport { useState } from 'react';\nimport DialogComponent from '../dialog/DialogComponent.tsx';\nimport { ScenarioReductionTable } from './ScenarioReductionTable.tsx';\n\ntype CurrentRiskProps = {\n risc: RiScWithMetadata;\n};\n\nexport function CurrentRisk({ risc }: CurrentRiskProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const [isDialogOpen, setIsDialogOpen] = useState<boolean>(false);\n\n const actionsOk = risc.content.scenarios.reduce(\n (total, scenario) =>\n total +\n scenario.actions.filter(\n action => action.status === ActionStatusOptions.OK,\n ).length,\n 0,\n );\n\n const initialRiskCost = calcRiskCostOfRiSc(\n risc.content,\n RiskMatrixTabs.initialRisk,\n );\n const remainingRiskCost = calcRiskCostOfRiSc(\n risc.content,\n RiskMatrixTabs.remainingRisk,\n );\n const estimatedCurrentCost = calcRiskCostOfRiSc(\n risc.content,\n RiskMatrixTabs.currentRisk,\n );\n\n const costReduction = initialRiskCost - remainingRiskCost;\n\n const costReductionPercentage =\n costReduction > 0\n ? ((initialRiskCost - estimatedCurrentCost) / costReduction) * 100\n : 0;\n\n const clampedPercentage = Math.max(\n 0,\n Math.min(100, Number(costReductionPercentage.toFixed(2))),\n );\n\n let labelTransform = 'translateX(-50%)';\n if (clampedPercentage <= 5) {\n labelTransform = 'translateX(0%)';\n } else if (clampedPercentage >= 95) {\n labelTransform = 'translateX(-100%)';\n }\n\n const reduction = formatNumber(initialRiskCost - estimatedCurrentCost, t);\n\n const description = t('riskMatrix.currentRisk.description', {\n actionsOk: String(actionsOk),\n reduction,\n });\n\n return (\n <Flex direction=\"column\" pt=\"30px\">\n <Flex direction=\"column\" pb=\"16px\">\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('riskMatrix.currentRisk.title')}\n </Text>\n <Flex direction=\"column\" gap=\"0\">\n <Flex justify=\"between\" px=\"4px\" align=\"end\" pb=\"4px\">\n <Flex direction=\"column\" align=\"start\" gap=\"0\">\n <Text variant=\"body-small\" weight=\"bold\">\n {formatNumber(initialRiskCost, t)}{' '}\n {t('riskMatrix.estimatedRisk.unit.nokPerYear')}\n </Text>\n <Text variant=\"body-medium\">← {t('dictionary.initialRisk')}</Text>\n </Flex>\n <Flex direction=\"column\" align=\"end\" gap=\"0\">\n <Text variant=\"body-small\" weight=\"bold\">\n {formatNumber(remainingRiskCost, t)}{' '}\n {t('riskMatrix.estimatedRisk.unit.nokPerYear')}\n </Text>\n <Text variant=\"body-medium\">{t('dictionary.restRisk')} →</Text>\n </Flex>\n </Flex>\n <Box className={styles.currentRiskBarWrapper}>\n <Box className={styles.currentRiskBarContainer}>\n {initialRiskCost > 0 && (\n <>\n <Flex\n align=\"center\"\n justify=\"end\"\n className={styles.currentRiskBarFill}\n style={{\n background: getRiskGradient(),\n }}\n />\n <Box\n className={styles.currentRiskMarker}\n style={{\n left: `${clampedPercentage}%`,\n }}\n />\n </>\n )}\n </Box>\n <Flex\n className={styles.currentRiskPercentageLabel}\n style={{\n left: `${clampedPercentage}%`,\n transform: labelTransform,\n }}\n >\n <Text variant=\"body-medium\" weight=\"bold\">\n {t('dictionary.currentRisk')}\n </Text>\n </Flex>\n </Box>\n </Flex>\n </Flex>\n\n <Flex>\n <Text\n variant=\"body-large\"\n dangerouslySetInnerHTML={{ __html: description }}\n />\n </Flex>\n\n <div>\n <Button onClick={() => setIsDialogOpen(true)}>\n {t('riskMatrix.currentRisk.showMoreInfo')}\n </Button>\n </div>\n <DialogComponent\n header={t('riskMatrix.currentRisk.dialogHeader')}\n isOpen={isDialogOpen}\n onClick={() => setIsDialogOpen(false)}\n className={styles.reductionDialog}\n >\n <ScenarioReductionTable\n riScWithMetadata={risc}\n onNavigate={() => setIsDialogOpen(false)}\n />\n </DialogComponent>\n </Flex>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAiBO,SAAS,WAAA,CAAY,EAAE,IAAA,EAAK,EAAqB;AACtD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAkB,KAAK,CAAA;AAE/D,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,OAAA,CAAQ,SAAA,CAAU,MAAA;AAAA,IACvC,CAAC,KAAA,EAAO,QAAA,KACN,KAAA,GACA,SAAS,OAAA,CAAQ,MAAA;AAAA,MACf,CAAA,MAAA,KAAU,MAAA,CAAO,MAAA,KAAW,mBAAA,CAAoB;AAAA,KAClD,CAAE,MAAA;AAAA,IACJ;AAAA,GACF;AAEA,EAAA,MAAM,eAAA,GAAkB,kBAAA;AAAA,IACtB,IAAA,CAAK,OAAA;AAAA,IACL,cAAA,CAAe;AAAA,GACjB;AACA,EAAA,MAAM,iBAAA,GAAoB,kBAAA;AAAA,IACxB,IAAA,CAAK,OAAA;AAAA,IACL,cAAA,CAAe;AAAA,GACjB;AACA,EAAA,MAAM,oBAAA,GAAuB,kBAAA;AAAA,IAC3B,IAAA,CAAK,OAAA;AAAA,IACL,cAAA,CAAe;AAAA,GACjB;AAEA,EAAA,MAAM,gBAAgB,eAAA,GAAkB,iBAAA;AAExC,EAAA,MAAM,0BACJ,aAAA,GAAgB,CAAA,GAAA,CACV,eAAA,GAAkB,oBAAA,IAAwB,gBAAiB,GAAA,GAC7D,CAAA;AAEN,EAAA,MAAM,oBAAoB,IAAA,CAAK,GAAA;AAAA,IAC7B,CAAA;AAAA,IACA,IAAA,CAAK,IAAI,GAAA,EAAK,MAAA,CAAO,wBAAwB,OAAA,CAAQ,CAAC,CAAC,CAAC;AAAA,GAC1D;AAEA,EAAA,IAAI,cAAA,GAAiB,kBAAA;AACrB,EAAA,IAAI,qBAAqB,CAAA,EAAG;AAC1B,IAAA,cAAA,GAAiB,gBAAA;AAAA,EACnB,CAAA,MAAA,IAAW,qBAAqB,EAAA,EAAI;AAClC,IAAA,cAAA,GAAiB,mBAAA;AAAA,EACnB;AAEA,EAAA,MAAM,SAAA,GAAY,YAAA,CAAa,eAAA,GAAkB,oBAAA,EAAsB,CAAC,CAAA;AAExE,EAAA,MAAM,WAAA,GAAc,EAAE,oCAAA,EAAsC;AAAA,IAC1D,SAAA,EAAW,OAAO,SAAS,CAAA;AAAA,IAC3B;AAAA,GACD,CAAA;AAED,EAAA,uBACE,IAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAS,IAAG,MAAA,EAC1B,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAS,EAAA,EAAG,MAAA,EAC1B,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,QAAK,OAAA,EAAQ,eAAA,EAAgB,QAAO,MAAA,EAClC,QAAA,EAAA,CAAA,CAAE,8BAA8B,CAAA,EACnC,CAAA;AAAA,sBACA,IAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAS,KAAI,GAAA,EAC3B,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,IAAA,EAAA,EAAK,SAAQ,SAAA,EAAU,EAAA,EAAG,OAAM,KAAA,EAAM,KAAA,EAAM,IAAG,KAAA,EAC9C,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,QAAK,SAAA,EAAU,QAAA,EAAS,KAAA,EAAM,OAAA,EAAQ,KAAI,GAAA,EACzC,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,YAAA,EAAa,MAAA,EAAO,MAAA,EAC/B,QAAA,EAAA;AAAA,cAAA,YAAA,CAAa,iBAAiB,CAAC,CAAA;AAAA,cAAG,GAAA;AAAA,cAClC,EAAE,0CAA0C;AAAA,aAAA,EAC/C,CAAA;AAAA,4BACA,IAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,aAAA,EAAc,QAAA,EAAA;AAAA,cAAA,SAAA;AAAA,cAAG,EAAE,wBAAwB;AAAA,aAAA,EAAE;AAAA,WAAA,EAC7D,CAAA;AAAA,+BACC,IAAA,EAAA,EAAK,SAAA,EAAU,UAAS,KAAA,EAAM,KAAA,EAAM,KAAI,GAAA,EACvC,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,YAAA,EAAa,MAAA,EAAO,MAAA,EAC/B,QAAA,EAAA;AAAA,cAAA,YAAA,CAAa,mBAAmB,CAAC,CAAA;AAAA,cAAG,GAAA;AAAA,cACpC,EAAE,0CAA0C;AAAA,aAAA,EAC/C,CAAA;AAAA,4BACA,IAAA,CAAC,IAAA,EAAA,EAAK,OAAA,EAAQ,aAAA,EAAe,QAAA,EAAA;AAAA,cAAA,CAAA,CAAE,qBAAqB,CAAA;AAAA,cAAE;AAAA,aAAA,EAAE;AAAA,WAAA,EAC1D;AAAA,SAAA,EACF,CAAA;AAAA,wBACA,IAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,qBAAA,EACrB,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,OAAI,SAAA,EAAW,MAAA,CAAO,uBAAA,EACpB,QAAA,EAAA,eAAA,GAAkB,qBACjB,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBACC,KAAA,EAAM,QAAA;AAAA,gBACN,OAAA,EAAQ,KAAA;AAAA,gBACR,WAAW,MAAA,CAAO,kBAAA;AAAA,gBAClB,KAAA,EAAO;AAAA,kBACL,YAAY,eAAA;AAAgB;AAC9B;AAAA,aACF;AAAA,4BACA,GAAA;AAAA,cAAC,GAAA;AAAA,cAAA;AAAA,gBACC,WAAW,MAAA,CAAO,iBAAA;AAAA,gBAClB,KAAA,EAAO;AAAA,kBACL,IAAA,EAAM,GAAG,iBAAiB,CAAA,CAAA;AAAA;AAC5B;AAAA;AACF,WAAA,EACF,CAAA,EAEJ,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,WAAW,MAAA,CAAO,0BAAA;AAAA,cAClB,KAAA,EAAO;AAAA,gBACL,IAAA,EAAM,GAAG,iBAAiB,CAAA,CAAA,CAAA;AAAA,gBAC1B,SAAA,EAAW;AAAA,eACb;AAAA,cAEA,QAAA,kBAAA,GAAA,CAAC,QAAK,OAAA,EAAQ,aAAA,EAAc,QAAO,MAAA,EAChC,QAAA,EAAA,CAAA,CAAE,wBAAwB,CAAA,EAC7B;AAAA;AAAA;AACF,SAAA,EACF;AAAA,OAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,wBAEC,IAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,YAAA;AAAA,QACR,uBAAA,EAAyB,EAAE,MAAA,EAAQ,WAAA;AAAY;AAAA,KACjD,EACF,CAAA;AAAA,oBAEA,GAAA,CAAC,KAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,OAAA,EAAS,MAAM,eAAA,CAAgB,IAAI,CAAA,EACxC,QAAA,EAAA,CAAA,CAAE,qCAAqC,CAAA,EAC1C,CAAA,EACF,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACC,MAAA,EAAQ,EAAE,qCAAqC,CAAA;AAAA,QAC/C,MAAA,EAAQ,YAAA;AAAA,QACR,OAAA,EAAS,MAAM,eAAA,CAAgB,KAAK,CAAA;AAAA,QACpC,WAAW,MAAA,CAAO,eAAA;AAAA,QAElB,QAAA,kBAAA,GAAA;AAAA,UAAC,sBAAA;AAAA,UAAA;AAAA,YACC,gBAAA,EAAkB,IAAA;AAAA,YAClB,UAAA,EAAY,MAAM,eAAA,CAAgB,KAAK;AAAA;AAAA;AACzC;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"CurrentRisk.esm.js","sources":["../../../src/components/riskMatrix/CurrentRisk.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { RiScWithMetadata } from '../../utils/types';\nimport { Box, Button, Text, Flex } from '@backstage/ui';\nimport { ActionStatusOptions } from '../../utils/constants';\nimport { calcRiskCostOfRiSc, getRiskGradient } from '../../utils/risk';\nimport { RiskMatrixTabs } from './utils';\nimport styles from './CurrentRisk.module.css';\nimport { formatNumber } from '../../utils/utilityfunctions';\nimport { useState } from 'react';\nimport DialogComponent from '../dialog/DialogComponent.tsx';\nimport { ScenarioReductionTable } from './ScenarioReductionTable.tsx';\n\ntype CurrentRiskProps = {\n risc: RiScWithMetadata;\n};\n\nexport function CurrentRisk({ risc }: CurrentRiskProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const [isDialogOpen, setIsDialogOpen] = useState<boolean>(false);\n\n const actionsOk = risc.content.scenarios.reduce(\n (total, scenario) =>\n total +\n scenario.actions.filter(\n action => action.status === ActionStatusOptions.OK,\n ).length,\n 0,\n );\n\n const initialRiskCost = calcRiskCostOfRiSc(\n risc.content,\n RiskMatrixTabs.initialRisk,\n );\n const remainingRiskCost = calcRiskCostOfRiSc(\n risc.content,\n RiskMatrixTabs.remainingRisk,\n );\n const estimatedCurrentCost = calcRiskCostOfRiSc(\n risc.content,\n RiskMatrixTabs.currentRisk,\n );\n\n const costReduction = initialRiskCost - remainingRiskCost;\n\n const costReductionPercentage =\n costReduction > 0\n ? ((initialRiskCost - estimatedCurrentCost) / costReduction) * 100\n : 0;\n\n const clampedPercentage = Math.max(\n 0,\n Math.min(100, Number(costReductionPercentage.toFixed(2))),\n );\n\n let labelTransform = 'translateX(-50%)';\n if (clampedPercentage <= 5) {\n labelTransform = 'translateX(0%)';\n } else if (clampedPercentage >= 95) {\n labelTransform = 'translateX(-100%)';\n }\n\n const reduction = formatNumber(initialRiskCost - estimatedCurrentCost, t);\n\n const description = t('riskMatrix.currentRisk.description', {\n actionsOk: String(actionsOk),\n reduction,\n });\n\n return (\n <Flex direction=\"column\" pt=\"30px\">\n <Flex direction=\"column\" pb=\"16px\">\n <Text variant=\"title-x-small\" weight=\"bold\">\n {t('riskMatrix.currentRisk.title')}\n </Text>\n <Flex direction=\"column\" gap=\"0\">\n <Flex justify=\"between\" px=\"4px\" align=\"end\" pb=\"4px\">\n <Flex direction=\"column\" align=\"start\" gap=\"0\">\n <Text variant=\"body-small\" weight=\"bold\">\n {formatNumber(initialRiskCost, t)}{' '}\n {t('riskMatrix.estimatedRisk.unit.nokPerYear')}\n </Text>\n <Text variant=\"body-medium\">← {t('dictionary.initialRisk')}</Text>\n </Flex>\n <Flex direction=\"column\" align=\"end\" gap=\"0\">\n <Text variant=\"body-small\" weight=\"bold\">\n {formatNumber(remainingRiskCost, t)}{' '}\n {t('riskMatrix.estimatedRisk.unit.nokPerYear')}\n </Text>\n <Text variant=\"body-medium\">{t('dictionary.restRisk')} →</Text>\n </Flex>\n </Flex>\n <Box className={styles.currentRiskBarWrapper}>\n <Box className={styles.currentRiskBarContainer}>\n {initialRiskCost > 0 && (\n <>\n <Flex\n align=\"center\"\n justify=\"end\"\n className={styles.currentRiskBarFill}\n style={{\n background: getRiskGradient(),\n }}\n >\n {null}\n </Flex>\n <Box\n className={styles.currentRiskMarker}\n style={{\n left: `${clampedPercentage}%`,\n }}\n >\n {null}\n </Box>\n </>\n )}\n </Box>\n <Flex\n className={styles.currentRiskPercentageLabel}\n style={{\n left: `${clampedPercentage}%`,\n transform: labelTransform,\n }}\n >\n <Text variant=\"body-medium\" weight=\"bold\">\n {t('dictionary.currentRisk')}\n </Text>\n </Flex>\n </Box>\n </Flex>\n </Flex>\n\n <Flex>\n <Text\n variant=\"body-large\"\n dangerouslySetInnerHTML={{ __html: description }}\n />\n </Flex>\n\n <div>\n <Button onClick={() => setIsDialogOpen(true)}>\n {t('riskMatrix.currentRisk.showMoreInfo')}\n </Button>\n </div>\n <DialogComponent\n header={t('riskMatrix.currentRisk.dialogHeader')}\n isOpen={isDialogOpen}\n onClick={() => setIsDialogOpen(false)}\n className={styles.reductionDialog}\n >\n <ScenarioReductionTable\n riScWithMetadata={risc}\n onNavigate={() => setIsDialogOpen(false)}\n />\n </DialogComponent>\n </Flex>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -55,8 +55,8 @@ function RiskMatrix({
55
55
  `S:${colIndex} K:${4 - rowIndex}`
56
56
  ))
57
57
  ] }, rowIndex)),
58
- /* @__PURE__ */ jsx(Box, { className: styles.centered }),
59
- /* @__PURE__ */ jsx(Box, { className: styles.centered }),
58
+ /* @__PURE__ */ jsx(Box, { className: styles.centered, children: null }),
59
+ /* @__PURE__ */ jsx(Box, { className: styles.centered, children: null }),
60
60
  riskMatrix.map((_, col) => /* @__PURE__ */ jsx(Box, { className: styles.centered, children: /* @__PURE__ */ jsx(Text, { variant: "title-x-small", weight: "bold", children: col + 1 }) }, col)),
61
61
  /* @__PURE__ */ jsx(Box, { className: styles.sannsynlighet, children: /* @__PURE__ */ jsx(
62
62
  Text,
@@ -1 +1 @@
1
- {"version":3,"file":"RiskMatrix.esm.js","sources":["../../../src/components/riskMatrix/RiskMatrix.tsx"],"sourcesContent":["import { Fragment, useState } from 'react';\nimport { AggregatedCost } from './AggregatedCost';\nimport { RiScWithMetadata } from '../../utils/types';\nimport { MatrixTabs } from './Tabs';\nimport { riskMatrix } from '../../utils/constants';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { RiskMatrixTabs } from './utils';\nimport { Card, CardBody, CardHeader, Text, Box } from '@backstage/ui';\nimport { RiskMatrixSquare } from './RiskMatrixSquare.tsx';\nimport { CurrentRisk } from './CurrentRisk.tsx';\n\nimport styles from './RiskMatrix.module.css';\nexport function RiskMatrix({\n riScWithMetadata,\n}: {\n riScWithMetadata: RiScWithMetadata;\n}) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const [tab, setTab] = useState<RiskMatrixTabs>(RiskMatrixTabs.initialRisk);\n\n return (\n <Card className={styles.card}>\n <CardHeader>\n <Text variant=\"title-small\" weight=\"bold\">\n {t('riskMatrix.title')}\n </Text>\n </CardHeader>\n <CardBody>\n <MatrixTabs setTab={setTab} currentTab={tab} />\n {riScWithMetadata.content.scenarios.length > 0 && (\n <Box\n style={{\n marginTop: '18px',\n }}\n >\n <AggregatedCost riSc={riScWithMetadata.content} riskType={tab} />\n </Box>\n )}\n\n {tab === RiskMatrixTabs.currentRisk ? (\n <Box>\n <CurrentRisk risc={riScWithMetadata} />\n </Box>\n ) : (\n <Box className={styles.gridWrapper}>\n <Box className={styles.grid}>\n <Box className={styles.konsekvens}>\n <Text\n variant=\"title-x-small\"\n weight=\"bold\"\n className={styles.centered}\n >\n {t('dictionary.consequence')}\n </Text>\n </Box>\n {riskMatrix.map((row, rowIndex) => (\n <Fragment key={rowIndex}>\n <Box className={styles.centered}>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {5 - rowIndex}\n </Text>\n </Box>\n {row.map((_, colIndex) => (\n <RiskMatrixSquare\n key={`S:${colIndex} K:${4 - rowIndex}`}\n size=\"grid\"\n consequence={4 - rowIndex}\n probability={colIndex}\n riScCountObject={{\n isInitialRisk: tab === RiskMatrixTabs.initialRisk,\n riSc: riScWithMetadata,\n }}\n />\n ))}\n </Fragment>\n ))}\n <Box className={styles.centered} />\n <Box className={styles.centered} />\n {riskMatrix.map((_, col) => (\n <Box className={styles.centered} key={col}>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {col + 1}\n </Text>\n </Box>\n ))}\n <Box className={styles.sannsynlighet}>\n <Text\n weight=\"bold\"\n variant=\"title-x-small\"\n className={styles.centered}\n >\n {t('dictionary.probability')}\n </Text>\n </Box>\n </Box>\n </Box>\n )}\n </CardBody>\n </Card>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RiskMatrix.esm.js","sources":["../../../src/components/riskMatrix/RiskMatrix.tsx"],"sourcesContent":["import { Fragment, useState } from 'react';\nimport { AggregatedCost } from './AggregatedCost';\nimport { RiScWithMetadata } from '../../utils/types';\nimport { MatrixTabs } from './Tabs';\nimport { riskMatrix } from '../../utils/constants';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { RiskMatrixTabs } from './utils';\nimport { Card, CardBody, CardHeader, Text, Box } from '@backstage/ui';\nimport { RiskMatrixSquare } from './RiskMatrixSquare.tsx';\nimport { CurrentRisk } from './CurrentRisk.tsx';\n\nimport styles from './RiskMatrix.module.css';\nexport function RiskMatrix({\n riScWithMetadata,\n}: {\n riScWithMetadata: RiScWithMetadata;\n}) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const [tab, setTab] = useState<RiskMatrixTabs>(RiskMatrixTabs.initialRisk);\n\n return (\n <Card className={styles.card}>\n <CardHeader>\n <Text variant=\"title-small\" weight=\"bold\">\n {t('riskMatrix.title')}\n </Text>\n </CardHeader>\n <CardBody>\n <MatrixTabs setTab={setTab} currentTab={tab} />\n {riScWithMetadata.content.scenarios.length > 0 && (\n <Box\n style={{\n marginTop: '18px',\n }}\n >\n <AggregatedCost riSc={riScWithMetadata.content} riskType={tab} />\n </Box>\n )}\n\n {tab === RiskMatrixTabs.currentRisk ? (\n <Box>\n <CurrentRisk risc={riScWithMetadata} />\n </Box>\n ) : (\n <Box className={styles.gridWrapper}>\n <Box className={styles.grid}>\n <Box className={styles.konsekvens}>\n <Text\n variant=\"title-x-small\"\n weight=\"bold\"\n className={styles.centered}\n >\n {t('dictionary.consequence')}\n </Text>\n </Box>\n {riskMatrix.map((row, rowIndex) => (\n <Fragment key={rowIndex}>\n <Box className={styles.centered}>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {5 - rowIndex}\n </Text>\n </Box>\n {row.map((_, colIndex) => (\n <RiskMatrixSquare\n key={`S:${colIndex} K:${4 - rowIndex}`}\n size=\"grid\"\n consequence={4 - rowIndex}\n probability={colIndex}\n riScCountObject={{\n isInitialRisk: tab === RiskMatrixTabs.initialRisk,\n riSc: riScWithMetadata,\n }}\n />\n ))}\n </Fragment>\n ))}\n <Box className={styles.centered}>{null}</Box>\n <Box className={styles.centered}>{null}</Box>\n {riskMatrix.map((_, col) => (\n <Box className={styles.centered} key={col}>\n <Text variant=\"title-x-small\" weight=\"bold\">\n {col + 1}\n </Text>\n </Box>\n ))}\n <Box className={styles.sannsynlighet}>\n <Text\n weight=\"bold\"\n variant=\"title-x-small\"\n className={styles.centered}\n >\n {t('dictionary.probability')}\n </Text>\n </Box>\n </Box>\n </Box>\n )}\n </CardBody>\n </Card>\n );\n}\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 = ".RiskMatrixScenarioCount_circle__6001a941b9.RiskMatrixScenarioCount_circle__6001a941b9 {\n height: 60%;\n aspect-ratio: 1 / 1;\n border-radius: 50%;\n cursor: pointer;\n min-height: 20px;\n}\n\n.RiskMatrixScenarioCount_circleHovered__6001a941b9.RiskMatrixScenarioCount_circleHovered__6001a941b9 {\n background-color: var(--ros-gray-300);\n}\n\n.RiskMatrixScenarioCount_tooltip__6001a941b9.RiskMatrixScenarioCount_tooltip__6001a941b9 {\n background-color: var(--bui-white);\n padding: 16px;\n max-width: 500px;\n}\n[data-theme-mode='dark'] .RiskMatrixScenarioCount_tooltip__6001a941b9.RiskMatrixScenarioCount_tooltip__6001a941b9 {\n background-color: var(--bui-bg-popover);\n}\n\n.RiskMatrixScenarioCount_tooltipArrow__6001a941b9.RiskMatrixScenarioCount_tooltipArrow__6001a941b9 {\n color: var(--bui-white);\n}\n[data-theme-mode='dark'] .RiskMatrixScenarioCount_tooltipArrow__6001a941b9.RiskMatrixScenarioCount_tooltipArrow__6001a941b9 {\n color: var(--bui-bg-popover);\n}\n\n.RiskMatrixScenarioCount_tooltipList__6001a941b9 {\n padding-left: 16px;\n font-size: 16px;\n color: var(--bui-black);\n}\n[data-theme-mode='dark'] .RiskMatrixScenarioCount_tooltipList__6001a941b9 {\n color: var(--bui-white);\n}\n\n.RiskMatrixScenarioCount_tooltipListItem__6001a941b9 {\n margin-bottom: 16px;\n\n &:hover {\n cursor: pointer;\n background-color: var(--ros-gray-50);\n }\n}\n[data-theme-mode='dark'] .RiskMatrixScenarioCount_tooltipListItem__6001a941b9 {\n &:hover {\n background-color: var(--ros-gray-600);\n }\n}\n\n.RiskMatrixScenarioCount_centered__6001a941b9 {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n";
4
- var styles = {"circle":"RiskMatrixScenarioCount_circle__6001a941b9","circleHovered":"RiskMatrixScenarioCount_circleHovered__6001a941b9","tooltip":"RiskMatrixScenarioCount_tooltip__6001a941b9","tooltipArrow":"RiskMatrixScenarioCount_tooltipArrow__6001a941b9","tooltipList":"RiskMatrixScenarioCount_tooltipList__6001a941b9","tooltipListItem":"RiskMatrixScenarioCount_tooltipListItem__6001a941b9","centered":"RiskMatrixScenarioCount_centered__6001a941b9"};
3
+ var css_248z = ".RiskMatrixScenarioCount_circle__060e331171.RiskMatrixScenarioCount_circle__060e331171 {\n height: 60%;\n aspect-ratio: 1 / 1;\n border-radius: 50%;\n cursor: pointer;\n min-height: 20px;\n}\n\n.RiskMatrixScenarioCount_circleHovered__060e331171.RiskMatrixScenarioCount_circleHovered__060e331171 {\n background-color: var(--ros-gray-300);\n}\n\n.RiskMatrixScenarioCount_tooltip__060e331171.RiskMatrixScenarioCount_tooltip__060e331171 {\n background-color: var(--bui-white);\n padding: 16px;\n max-width: 500px;\n}\n[data-theme-mode='dark'] .RiskMatrixScenarioCount_tooltip__060e331171.RiskMatrixScenarioCount_tooltip__060e331171 {\n background-color: var(--bui-bg-app);\n}\n\n.RiskMatrixScenarioCount_tooltipArrow__060e331171.RiskMatrixScenarioCount_tooltipArrow__060e331171 {\n color: var(--bui-white);\n}\n[data-theme-mode='dark'] .RiskMatrixScenarioCount_tooltipArrow__060e331171.RiskMatrixScenarioCount_tooltipArrow__060e331171 {\n color: var(--bui-bg-app);\n}\n\n.RiskMatrixScenarioCount_tooltipList__060e331171 {\n padding-left: 16px;\n font-size: 16px;\n color: var(--bui-black);\n}\n[data-theme-mode='dark'] .RiskMatrixScenarioCount_tooltipList__060e331171 {\n color: var(--bui-white);\n}\n\n.RiskMatrixScenarioCount_tooltipListItem__060e331171 {\n margin-bottom: 16px;\n\n &:hover {\n cursor: pointer;\n background-color: var(--ros-gray-50);\n }\n}\n[data-theme-mode='dark'] .RiskMatrixScenarioCount_tooltipListItem__060e331171 {\n &:hover {\n background-color: var(--ros-gray-600);\n }\n}\n\n.RiskMatrixScenarioCount_centered__060e331171 {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n";
4
+ var styles = {"circle":"RiskMatrixScenarioCount_circle__060e331171","circleHovered":"RiskMatrixScenarioCount_circleHovered__060e331171","tooltip":"RiskMatrixScenarioCount_tooltip__060e331171","tooltipArrow":"RiskMatrixScenarioCount_tooltipArrow__060e331171","tooltipList":"RiskMatrixScenarioCount_tooltipList__060e331171","tooltipListItem":"RiskMatrixScenarioCount_tooltipListItem__060e331171","centered":"RiskMatrixScenarioCount_centered__060e331171"};
5
5
  styleInject(css_248z);
6
6
 
7
7
  export { styles as default };
@@ -1,4 +1,4 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
3
3
  import Collapse from '@mui/material/Collapse';
4
4
  import IconButton from '@mui/material/IconButton';
@@ -66,20 +66,11 @@ function ScenarioTableRow({
66
66
  const cardBgColor = "var(--ros-scenario-card-bg)";
67
67
  const isTextColorBlack = theme.palette.mode === "dark" ? isScenarioHoveredFromRiskMatrix : true;
68
68
  const textColorAsBuiVariable = isTextColorBlack ? "var(--bui-black)" : "var(--bui-white)";
69
- return /* @__PURE__ */ jsxs(
70
- Card,
69
+ return /* @__PURE__ */ jsx(
70
+ "div",
71
71
  {
72
- onMouseEnter: () => {
73
- if (isExpanded) return;
74
- setHoveredScenarios(
75
- (prev) => prev.some((s) => s.ID === scenario.ID) ? prev : [...prev, scenario]
76
- );
77
- },
78
- onMouseLeave: () => {
79
- if (isExpanded) return;
80
- setHoveredScenarios((prev) => prev.filter((s) => s.ID !== scenario.ID));
81
- },
82
- ref,
72
+ role: "button",
73
+ tabIndex: 0,
83
74
  onClick: (e) => {
84
75
  const target = e.target;
85
76
  if (target && (target.closest("[data-action-root]") || target.closest("[data-action-collapse]") || target.closest("[data-no-row-toggle]"))) {
@@ -87,143 +78,171 @@ function ScenarioTableRow({
87
78
  }
88
79
  viewRow(scenario.ID);
89
80
  },
90
- className: classNames(styles.tableCard, {
91
- [styles.tableCardNoHover]: isExpanded
92
- }),
93
- style: {
94
- opacity: isDragging ? 0.3 : 1,
95
- transition: isDragging ? "none" : void 0,
96
- backgroundColor: isScenarioHoveredFromRiskMatrix ? highlightColor : cardBgColor
81
+ onKeyDown: (e) => {
82
+ if (e.key === "Enter" || e.key === " ") {
83
+ viewRow(scenario.ID);
84
+ }
97
85
  },
98
- children: [
99
- /* @__PURE__ */ jsxs(Flex, { align: "center", children: [
100
- isEditing && isDnDAllowed && /* @__PURE__ */ jsx(IconButton, { size: "small", ref: drag, children: /* @__PURE__ */ jsx(
101
- DragIndicatorIcon,
102
- {
103
- sx: { cursor: isDragging ? "grabbing" : "grab" }
104
- }
105
- ) }),
106
- /* @__PURE__ */ jsx(
107
- IconButton,
108
- {
109
- size: "medium",
110
- "data-action-root": true,
111
- onClick: (e) => {
112
- e.stopPropagation();
113
- setIsExpanded((prev) => !prev);
114
- },
115
- style: { padding: 0 },
116
- children: isExpanded ? /* @__PURE__ */ jsx("i", { className: "ri-arrow-down-s-line" }) : /* @__PURE__ */ jsx("i", { className: "ri-arrow-right-s-line" })
117
- }
118
- ),
119
- /* @__PURE__ */ jsx(
120
- Text,
121
- {
122
- as: "p",
123
- variant: "body-large",
124
- weight: "bold",
125
- style: { width: "35%", color: textColorAsBuiVariable },
126
- children: scenario.title
127
- }
128
- ),
129
- /* @__PURE__ */ jsxs(Flex, { align: "center", justify: "start", style: { width: "15%" }, children: [
130
- /* @__PURE__ */ jsx(
131
- RiskMatrixSquare,
132
- {
133
- size: "small",
134
- probability: findProbabilityIndex(scenario.risk.probability),
135
- consequence: findConsequenceIndex(scenario.risk.consequence)
136
- }
137
- ),
138
- /* @__PURE__ */ jsxs(Text, { variant: "body-medium", style: { color: textColorAsBuiVariable }, children: [
139
- t("scenarioTable.columns.probabilityChar"),
140
- ":",
141
- `${getProbabilityLevel(
142
- scenario.risk
143
- )} ${t("scenarioTable.columns.consequenceChar")}:${getConsequenceLevel(scenario.risk)}`
144
- ] })
145
- ] }),
146
- /* @__PURE__ */ jsx(
147
- Flex,
148
- {
149
- align: "center",
150
- justify: "start",
151
- style: { width: isEditing ? "30%" : "35%" },
152
- children: (() => {
153
- if (scenario.actions.length > 0) {
154
- return /* @__PURE__ */ jsx(
155
- ScenarioTableProgressBar,
156
- {
157
- completedCount: scenario.actions.filter(
158
- (a) => a.status === ActionStatusOptions.OK
159
- ).length,
160
- totalCount: scenario.actions.filter(
161
- (a) => a.status !== ActionStatusOptions.NotRelevant
162
- ).length,
163
- textColor: textColorAsBuiVariable
86
+ children: /* @__PURE__ */ jsxs(
87
+ Card,
88
+ {
89
+ onMouseEnter: () => {
90
+ if (isExpanded) return;
91
+ setHoveredScenarios(
92
+ (prev) => prev.some((s) => s.ID === scenario.ID) ? prev : [...prev, scenario]
93
+ );
94
+ },
95
+ onMouseLeave: () => {
96
+ if (isExpanded) return;
97
+ setHoveredScenarios((prev) => prev.filter((s) => s.ID !== scenario.ID));
98
+ },
99
+ ref,
100
+ className: classNames(styles.tableCard, {
101
+ [styles.tableCardNoHover]: isExpanded
102
+ }),
103
+ style: {
104
+ opacity: isDragging ? 0.3 : 1,
105
+ transition: isDragging ? "none" : void 0,
106
+ backgroundColor: isScenarioHoveredFromRiskMatrix ? highlightColor : cardBgColor
107
+ },
108
+ children: [
109
+ /* @__PURE__ */ jsxs(Flex, { align: "center", children: [
110
+ isEditing && isDnDAllowed && /* @__PURE__ */ jsx(IconButton, { size: "small", ref: drag, children: /* @__PURE__ */ jsx(
111
+ DragIndicatorIcon,
112
+ {
113
+ sx: { cursor: isDragging ? "grabbing" : "grab" }
114
+ }
115
+ ) }),
116
+ /* @__PURE__ */ jsx(
117
+ IconButton,
118
+ {
119
+ size: "medium",
120
+ "data-action-root": true,
121
+ onClick: (e) => {
122
+ e.stopPropagation();
123
+ setIsExpanded((prev) => !prev);
124
+ },
125
+ style: { padding: 0 },
126
+ children: isExpanded ? /* @__PURE__ */ jsx("i", { className: "ri-arrow-down-s-line" }) : /* @__PURE__ */ jsx("i", { className: "ri-arrow-right-s-line" })
127
+ }
128
+ ),
129
+ /* @__PURE__ */ jsx(
130
+ Text,
131
+ {
132
+ as: "p",
133
+ variant: "body-large",
134
+ weight: "bold",
135
+ style: { width: "35%", color: textColorAsBuiVariable },
136
+ children: scenario.title
137
+ }
138
+ ),
139
+ /* @__PURE__ */ jsxs(Flex, { align: "center", justify: "start", style: { width: "15%" }, children: [
140
+ /* @__PURE__ */ jsx(
141
+ RiskMatrixSquare,
142
+ {
143
+ size: "small",
144
+ probability: findProbabilityIndex(scenario.risk.probability),
145
+ consequence: findConsequenceIndex(scenario.risk.consequence)
146
+ }
147
+ ),
148
+ /* @__PURE__ */ jsxs(
149
+ Text,
150
+ {
151
+ variant: "body-medium",
152
+ style: { color: textColorAsBuiVariable },
153
+ children: [
154
+ t("scenarioTable.columns.probabilityChar"),
155
+ ":",
156
+ `${getProbabilityLevel(
157
+ scenario.risk
158
+ )} ${t("scenarioTable.columns.consequenceChar")}:${getConsequenceLevel(scenario.risk)}`
159
+ ]
160
+ }
161
+ )
162
+ ] }),
163
+ /* @__PURE__ */ jsx(
164
+ Flex,
165
+ {
166
+ align: "center",
167
+ justify: "start",
168
+ style: { width: isEditing ? "30%" : "35%" },
169
+ children: (() => {
170
+ if (scenario.actions.length > 0) {
171
+ return /* @__PURE__ */ jsx(
172
+ ScenarioTableProgressBar,
173
+ {
174
+ completedCount: scenario.actions.filter(
175
+ (a) => a.status === ActionStatusOptions.OK
176
+ ).length,
177
+ totalCount: scenario.actions.filter(
178
+ (a) => a.status !== ActionStatusOptions.NotRelevant
179
+ ).length,
180
+ textColor: textColorAsBuiVariable
181
+ }
182
+ );
164
183
  }
165
- );
184
+ return /* @__PURE__ */ jsx(Text, { style: { color: textColorAsBuiVariable }, children: t("scenarioTable.noActions") });
185
+ })()
166
186
  }
167
- return /* @__PURE__ */ jsx(Text, { style: { color: textColorAsBuiVariable }, children: t("scenarioTable.noActions") });
168
- })()
169
- }
170
- ),
171
- /* @__PURE__ */ jsxs(Flex, { align: "center", style: { width: "15%" }, children: [
172
- /* @__PURE__ */ jsx(
173
- RiskMatrixSquare,
174
- {
175
- size: "small",
176
- probability: findProbabilityIndex(
177
- scenario.remainingRisk.probability
187
+ ),
188
+ /* @__PURE__ */ jsxs(Flex, { align: "center", style: { width: "15%" }, children: [
189
+ /* @__PURE__ */ jsx(
190
+ RiskMatrixSquare,
191
+ {
192
+ size: "small",
193
+ probability: findProbabilityIndex(
194
+ scenario.remainingRisk.probability
195
+ ),
196
+ consequence: findConsequenceIndex(
197
+ scenario.remainingRisk.consequence
198
+ )
199
+ }
178
200
  ),
179
- consequence: findConsequenceIndex(
180
- scenario.remainingRisk.consequence
201
+ /* @__PURE__ */ jsx(
202
+ Text,
203
+ {
204
+ variant: "body-medium",
205
+ style: { color: textColorAsBuiVariable },
206
+ children: `${t("scenarioTable.columns.probabilityChar")}:${getProbabilityLevel(
207
+ scenario.remainingRisk
208
+ )} ${t("scenarioTable.columns.consequenceChar")}:${getConsequenceLevel(scenario.remainingRisk)}`
209
+ }
181
210
  )
182
- }
183
- ),
184
- /* @__PURE__ */ jsx(
185
- Text,
186
- {
187
- variant: "body-medium",
188
- style: { color: textColorAsBuiVariable },
189
- children: `${t("scenarioTable.columns.probabilityChar")}:${getProbabilityLevel(
190
- scenario.remainingRisk
191
- )} ${t("scenarioTable.columns.consequenceChar")}:${getConsequenceLevel(scenario.remainingRisk)}`
192
- }
193
- )
194
- ] }),
195
- isEditing && /* @__PURE__ */ jsxs(Flex, { align: "center", justify: "end", children: [
196
- /* @__PURE__ */ jsx(
197
- IconButton,
198
- {
199
- size: "small",
200
- onClick: (event) => {
201
- event.stopPropagation();
202
- setScenarioDeletionDialogOpen(true);
203
- },
204
- children: /* @__PURE__ */ jsx(DeleteIcon, {})
205
- }
206
- ),
207
- /* @__PURE__ */ jsx(
208
- DeleteScenarioConfirmation,
211
+ ] }),
212
+ isEditing && /* @__PURE__ */ jsxs(Flex, { align: "center", justify: "end", children: [
213
+ /* @__PURE__ */ jsx(
214
+ IconButton,
215
+ {
216
+ size: "small",
217
+ onClick: (event) => {
218
+ event.stopPropagation();
219
+ setScenarioDeletionDialogOpen(true);
220
+ },
221
+ children: /* @__PURE__ */ jsx(DeleteIcon, {})
222
+ }
223
+ ),
224
+ /* @__PURE__ */ jsx(
225
+ DeleteScenarioConfirmation,
226
+ {
227
+ isOpen: isScenarioDeletionDialogOpen,
228
+ setIsOpen: setScenarioDeletionDialogOpen,
229
+ onConfirm: () => deleteScenario(riSc, updateRiSc, scenario)
230
+ }
231
+ )
232
+ ] })
233
+ ] }),
234
+ isExpanded && /* @__PURE__ */ jsx(Collapse, { in: isExpanded, timeout: "auto", unmountOnExit: true, children: /* @__PURE__ */ jsx("div", { "data-action-root": true, children: /* @__PURE__ */ jsx(
235
+ ActionRowList,
209
236
  {
210
- isOpen: isScenarioDeletionDialogOpen,
211
- setIsOpen: setScenarioDeletionDialogOpen,
212
- onConfirm: () => deleteScenario(riSc, updateRiSc, scenario)
237
+ scenarioId: scenario.ID,
238
+ displayedActions: scenario.actions.filter(
239
+ (action) => isAnyFilterEnabled && filteredActionIds ? filteredActionIds.includes(action.ID) : true
240
+ )
213
241
  }
214
- )
215
- ] })
216
- ] }),
217
- isExpanded && /* @__PURE__ */ jsx(Collapse, { in: isExpanded, timeout: "auto", unmountOnExit: true, children: /* @__PURE__ */ jsx("div", { "data-action-root": true, children: /* @__PURE__ */ jsx(
218
- ActionRowList,
219
- {
220
- scenarioId: scenario.ID,
221
- displayedActions: scenario.actions.filter(
222
- (action) => isAnyFilterEnabled && filteredActionIds ? filteredActionIds.includes(action.ID) : true
223
- )
224
- }
225
- ) }) })
226
- ]
242
+ ) }) })
243
+ ]
244
+ }
245
+ )
227
246
  }
228
247
  );
229
248
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ScenarioTableRow.esm.js","sources":["../../../src/components/scenarioTable/ScenarioTableRow.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Collapse from '@mui/material/Collapse';\nimport IconButton from '@mui/material/IconButton';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport DragIndicatorIcon from '@mui/icons-material/DragIndicator';\nimport {\n useState,\n useRef,\n useEffect,\n MouseEvent,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { RiScWithMetadata, Scenario } from '../../utils/types';\nimport { useRiScs } from '../../contexts/RiScContext';\nimport {\n deleteScenario,\n findConsequenceIndex,\n findProbabilityIndex,\n getConsequenceLevel,\n getProbabilityLevel,\n} from '../../utils/utilityfunctions';\nimport { ScenarioTableProgressBar } from './ScenarioTableProgressBar';\nimport classnames from 'classnames';\nimport styles from './ScenarioTable.module.css';\nimport { Text, Flex, Card } from '@backstage/ui';\nimport { DeleteScenarioConfirmation } from '../scenarioDrawer/components/DeleteConfirmation.tsx';\nimport { ActionStatusOptions } from '../../utils/constants';\nimport { useScenario } from '../../contexts/ScenarioContext.tsx';\nimport { useTheme } from '@mui/material/styles';\nimport { ActionRowList } from '../action/ActionRowList.tsx';\nimport { RiskMatrixSquare } from '../riskMatrix/RiskMatrixSquare.tsx';\nimport {\n useScenarioTableDrag,\n useScenarioTableDrop,\n} from '../../hooks/UseScenarioTableDnD.ts';\n\ninterface ScenarioTableRowProps {\n scenario: Scenario;\n filteredActionIds?: string[];\n isAnyFilterEnabled: boolean;\n isDnDAllowed?: boolean;\n viewRow: (id: string) => void;\n listIndex: number;\n isEditing: boolean;\n setTempScenarios: Dispatch<SetStateAction<Scenario[]>>;\n riScWithMetadata: RiScWithMetadata;\n}\n\nexport function ScenarioTableRow({\n scenario,\n filteredActionIds,\n isAnyFilterEnabled,\n isDnDAllowed,\n viewRow,\n listIndex,\n isEditing,\n setTempScenarios,\n riScWithMetadata,\n}: ScenarioTableRowProps) {\n // Getting global state\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { selectedRiSc: riSc, updateRiSc } = useRiScs();\n const { hoveredScenarios, setHoveredScenarios } = useScenario();\n\n // Initializing local state\n const [isScenarioDeletionDialogOpen, setScenarioDeletionDialogOpen] =\n useState(false);\n const [isExpanded, setIsExpanded] = useState(false);\n\n // Drag n Drop functionality definitions\n const ref = useRef<HTMLDivElement>(null);\n\n const [, drop] = useScenarioTableDrop(\n listIndex,\n scenario.ID,\n setTempScenarios,\n ref,\n );\n\n useEffect(() => {\n setIsExpanded(!!filteredActionIds);\n }, [filteredActionIds]);\n\n const [{ isDragging }, drag, preview] = useScenarioTableDrag(\n listIndex,\n scenario.ID,\n setTempScenarios,\n riScWithMetadata,\n );\n\n preview(drop(ref));\n\n // Styling\n useEffect(() => {\n if (isExpanded) {\n setHoveredScenarios(prev => prev.filter(s => s.ID !== scenario.ID));\n }\n // Only run when visibleType or expansion changes for this scenario\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isExpanded]);\n\n const theme = useTheme();\n const isScenarioHoveredFromRiskMatrix = hoveredScenarios.some(\n s => s.ID === scenario.ID,\n );\n\n const highlightColor = 'var(--ros-scenario-highlight)';\n\n const cardBgColor = 'var(--ros-scenario-card-bg)';\n\n const isTextColorBlack =\n theme.palette.mode === 'dark' ? isScenarioHoveredFromRiskMatrix : true;\n const textColorAsBuiVariable = isTextColorBlack\n ? 'var(--bui-black)'\n : 'var(--bui-white)';\n\n return (\n <Card\n onMouseEnter={() => {\n if (isExpanded) return;\n setHoveredScenarios(prev =>\n prev.some(s => s.ID === scenario.ID) ? prev : [...prev, scenario],\n );\n }}\n onMouseLeave={() => {\n if (isExpanded) return;\n setHoveredScenarios(prev => prev.filter(s => s.ID !== scenario.ID));\n }}\n ref={ref}\n onClick={(e: MouseEvent<HTMLDivElement>) => {\n const target = e.target as HTMLElement | null;\n if (\n target &&\n (target.closest('[data-action-root]') ||\n target.closest('[data-action-collapse]') ||\n target.closest('[data-no-row-toggle]'))\n ) {\n return;\n }\n viewRow(scenario.ID);\n }}\n className={classnames(styles.tableCard, {\n [styles.tableCardNoHover]: isExpanded,\n })}\n style={{\n opacity: isDragging ? 0.3 : 1,\n transition: isDragging ? 'none' : undefined,\n backgroundColor: isScenarioHoveredFromRiskMatrix\n ? highlightColor\n : cardBgColor,\n }}\n >\n <Flex align=\"center\">\n {isEditing && isDnDAllowed && (\n <IconButton size=\"small\" ref={drag}>\n <DragIndicatorIcon\n sx={{ cursor: isDragging ? 'grabbing' : 'grab' }}\n />\n </IconButton>\n )}\n <IconButton\n size=\"medium\"\n data-action-root\n onClick={e => {\n e.stopPropagation();\n setIsExpanded(prev => !prev);\n }}\n style={{ padding: 0 }}\n >\n {isExpanded ? (\n <i className=\"ri-arrow-down-s-line\" />\n ) : (\n <i className=\"ri-arrow-right-s-line\" />\n )}\n </IconButton>\n <Text\n as=\"p\"\n variant=\"body-large\"\n weight=\"bold\"\n style={{ width: '35%', color: textColorAsBuiVariable }}\n >\n {scenario.title}\n </Text>\n <Flex align=\"center\" justify=\"start\" style={{ width: '15%' }}>\n <RiskMatrixSquare\n size=\"small\"\n probability={findProbabilityIndex(scenario.risk.probability)}\n consequence={findConsequenceIndex(scenario.risk.consequence)}\n />\n <Text variant=\"body-medium\" style={{ color: textColorAsBuiVariable }}>\n {t('scenarioTable.columns.probabilityChar')}:\n {`${getProbabilityLevel(\n scenario.risk,\n )} ${t('scenarioTable.columns.consequenceChar')}:${getConsequenceLevel(scenario.risk)}`}\n </Text>\n </Flex>\n\n <Flex\n align=\"center\"\n justify=\"start\"\n style={{ width: isEditing ? '30%' : '35%' }}\n >\n {(() => {\n if (scenario.actions.length > 0) {\n return (\n <ScenarioTableProgressBar\n completedCount={\n scenario.actions.filter(\n a => a.status === ActionStatusOptions.OK,\n ).length\n }\n totalCount={\n scenario.actions.filter(\n a => a.status !== ActionStatusOptions.NotRelevant,\n ).length\n }\n textColor={textColorAsBuiVariable}\n />\n );\n }\n return (\n <Text style={{ color: textColorAsBuiVariable }}>\n {t('scenarioTable.noActions')}\n </Text>\n );\n })()}\n </Flex>\n <Flex align=\"center\" style={{ width: '15%' }}>\n <RiskMatrixSquare\n size=\"small\"\n probability={findProbabilityIndex(\n scenario.remainingRisk.probability,\n )}\n consequence={findConsequenceIndex(\n scenario.remainingRisk.consequence,\n )}\n />\n <Text\n variant=\"body-medium\"\n style={{ color: textColorAsBuiVariable }}\n >{`${t('scenarioTable.columns.probabilityChar')}:${getProbabilityLevel(\n scenario.remainingRisk,\n )} ${t('scenarioTable.columns.consequenceChar')}:${getConsequenceLevel(scenario.remainingRisk)}`}</Text>\n </Flex>\n\n {isEditing && (\n <Flex align=\"center\" justify=\"end\">\n <IconButton\n size=\"small\"\n onClick={event => {\n event.stopPropagation();\n setScenarioDeletionDialogOpen(true);\n }}\n >\n <DeleteIcon />\n </IconButton>\n <DeleteScenarioConfirmation\n isOpen={isScenarioDeletionDialogOpen}\n setIsOpen={setScenarioDeletionDialogOpen}\n onConfirm={() => deleteScenario(riSc, updateRiSc, scenario)}\n />\n </Flex>\n )}\n </Flex>\n {isExpanded && (\n <Collapse in={isExpanded} timeout=\"auto\" unmountOnExit>\n <div data-action-root>\n <ActionRowList\n scenarioId={scenario.ID}\n displayedActions={scenario.actions.filter(action =>\n isAnyFilterEnabled && filteredActionIds\n ? filteredActionIds.includes(action.ID)\n : true,\n )}\n />\n </div>\n </Collapse>\n )}\n </Card>\n );\n}\n"],"names":["classnames"],"mappings":"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"}
1
+ {"version":3,"file":"ScenarioTableRow.esm.js","sources":["../../../src/components/scenarioTable/ScenarioTableRow.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Collapse from '@mui/material/Collapse';\nimport IconButton from '@mui/material/IconButton';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport DragIndicatorIcon from '@mui/icons-material/DragIndicator';\nimport {\n useState,\n useRef,\n useEffect,\n MouseEvent,\n KeyboardEvent,\n SetStateAction,\n Dispatch,\n} from 'react';\nimport { pluginRiScTranslationRef } from '../../utils/translations';\nimport { RiScWithMetadata, Scenario } from '../../utils/types';\nimport { useRiScs } from '../../contexts/RiScContext';\nimport {\n deleteScenario,\n findConsequenceIndex,\n findProbabilityIndex,\n getConsequenceLevel,\n getProbabilityLevel,\n} from '../../utils/utilityfunctions';\nimport { ScenarioTableProgressBar } from './ScenarioTableProgressBar';\nimport classnames from 'classnames';\nimport styles from './ScenarioTable.module.css';\nimport { Text, Flex, Card } from '@backstage/ui';\nimport { DeleteScenarioConfirmation } from '../scenarioDrawer/components/DeleteConfirmation.tsx';\nimport { ActionStatusOptions } from '../../utils/constants';\nimport { useScenario } from '../../contexts/ScenarioContext.tsx';\nimport { useTheme } from '@mui/material/styles';\nimport { ActionRowList } from '../action/ActionRowList.tsx';\nimport { RiskMatrixSquare } from '../riskMatrix/RiskMatrixSquare.tsx';\nimport {\n useScenarioTableDrag,\n useScenarioTableDrop,\n} from '../../hooks/UseScenarioTableDnD.ts';\n\ninterface ScenarioTableRowProps {\n scenario: Scenario;\n filteredActionIds?: string[];\n isAnyFilterEnabled: boolean;\n isDnDAllowed?: boolean;\n viewRow: (id: string) => void;\n listIndex: number;\n isEditing: boolean;\n setTempScenarios: Dispatch<SetStateAction<Scenario[]>>;\n riScWithMetadata: RiScWithMetadata;\n}\n\nexport function ScenarioTableRow({\n scenario,\n filteredActionIds,\n isAnyFilterEnabled,\n isDnDAllowed,\n viewRow,\n listIndex,\n isEditing,\n setTempScenarios,\n riScWithMetadata,\n}: ScenarioTableRowProps) {\n // Getting global state\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { selectedRiSc: riSc, updateRiSc } = useRiScs();\n const { hoveredScenarios, setHoveredScenarios } = useScenario();\n\n // Initializing local state\n const [isScenarioDeletionDialogOpen, setScenarioDeletionDialogOpen] =\n useState(false);\n const [isExpanded, setIsExpanded] = useState(false);\n\n // Drag n Drop functionality definitions\n const ref = useRef<HTMLDivElement>(null);\n\n const [, drop] = useScenarioTableDrop(\n listIndex,\n scenario.ID,\n setTempScenarios,\n ref,\n );\n\n useEffect(() => {\n setIsExpanded(!!filteredActionIds);\n }, [filteredActionIds]);\n\n const [{ isDragging }, drag, preview] = useScenarioTableDrag(\n listIndex,\n scenario.ID,\n setTempScenarios,\n riScWithMetadata,\n );\n\n preview(drop(ref));\n\n // Styling\n useEffect(() => {\n if (isExpanded) {\n setHoveredScenarios(prev => prev.filter(s => s.ID !== scenario.ID));\n }\n // Only run when visibleType or expansion changes for this scenario\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isExpanded]);\n\n const theme = useTheme();\n const isScenarioHoveredFromRiskMatrix = hoveredScenarios.some(\n s => s.ID === scenario.ID,\n );\n\n const highlightColor = 'var(--ros-scenario-highlight)';\n\n const cardBgColor = 'var(--ros-scenario-card-bg)';\n\n const isTextColorBlack =\n theme.palette.mode === 'dark' ? isScenarioHoveredFromRiskMatrix : true;\n const textColorAsBuiVariable = isTextColorBlack\n ? 'var(--bui-black)'\n : 'var(--bui-white)';\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onClick={(e: MouseEvent<HTMLDivElement>) => {\n const target = e.target as HTMLElement | null;\n if (\n target &&\n (target.closest('[data-action-root]') ||\n target.closest('[data-action-collapse]') ||\n target.closest('[data-no-row-toggle]'))\n ) {\n return;\n }\n viewRow(scenario.ID);\n }}\n onKeyDown={(e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n viewRow(scenario.ID);\n }\n }}\n >\n <Card\n onMouseEnter={() => {\n if (isExpanded) return;\n setHoveredScenarios(prev =>\n prev.some(s => s.ID === scenario.ID) ? prev : [...prev, scenario],\n );\n }}\n onMouseLeave={() => {\n if (isExpanded) return;\n setHoveredScenarios(prev => prev.filter(s => s.ID !== scenario.ID));\n }}\n ref={ref}\n className={classnames(styles.tableCard, {\n [styles.tableCardNoHover]: isExpanded,\n })}\n style={{\n opacity: isDragging ? 0.3 : 1,\n transition: isDragging ? 'none' : undefined,\n backgroundColor: isScenarioHoveredFromRiskMatrix\n ? highlightColor\n : cardBgColor,\n }}\n >\n <Flex align=\"center\">\n {isEditing && isDnDAllowed && (\n <IconButton size=\"small\" ref={drag}>\n <DragIndicatorIcon\n sx={{ cursor: isDragging ? 'grabbing' : 'grab' }}\n />\n </IconButton>\n )}\n <IconButton\n size=\"medium\"\n data-action-root\n onClick={e => {\n e.stopPropagation();\n setIsExpanded(prev => !prev);\n }}\n style={{ padding: 0 }}\n >\n {isExpanded ? (\n <i className=\"ri-arrow-down-s-line\" />\n ) : (\n <i className=\"ri-arrow-right-s-line\" />\n )}\n </IconButton>\n <Text\n as=\"p\"\n variant=\"body-large\"\n weight=\"bold\"\n style={{ width: '35%', color: textColorAsBuiVariable }}\n >\n {scenario.title}\n </Text>\n <Flex align=\"center\" justify=\"start\" style={{ width: '15%' }}>\n <RiskMatrixSquare\n size=\"small\"\n probability={findProbabilityIndex(scenario.risk.probability)}\n consequence={findConsequenceIndex(scenario.risk.consequence)}\n />\n <Text\n variant=\"body-medium\"\n style={{ color: textColorAsBuiVariable }}\n >\n {t('scenarioTable.columns.probabilityChar')}:\n {`${getProbabilityLevel(\n scenario.risk,\n )} ${t('scenarioTable.columns.consequenceChar')}:${getConsequenceLevel(scenario.risk)}`}\n </Text>\n </Flex>\n\n <Flex\n align=\"center\"\n justify=\"start\"\n style={{ width: isEditing ? '30%' : '35%' }}\n >\n {(() => {\n if (scenario.actions.length > 0) {\n return (\n <ScenarioTableProgressBar\n completedCount={\n scenario.actions.filter(\n a => a.status === ActionStatusOptions.OK,\n ).length\n }\n totalCount={\n scenario.actions.filter(\n a => a.status !== ActionStatusOptions.NotRelevant,\n ).length\n }\n textColor={textColorAsBuiVariable}\n />\n );\n }\n return (\n <Text style={{ color: textColorAsBuiVariable }}>\n {t('scenarioTable.noActions')}\n </Text>\n );\n })()}\n </Flex>\n <Flex align=\"center\" style={{ width: '15%' }}>\n <RiskMatrixSquare\n size=\"small\"\n probability={findProbabilityIndex(\n scenario.remainingRisk.probability,\n )}\n consequence={findConsequenceIndex(\n scenario.remainingRisk.consequence,\n )}\n />\n <Text\n variant=\"body-medium\"\n style={{ color: textColorAsBuiVariable }}\n >{`${t('scenarioTable.columns.probabilityChar')}:${getProbabilityLevel(\n scenario.remainingRisk,\n )} ${t('scenarioTable.columns.consequenceChar')}:${getConsequenceLevel(scenario.remainingRisk)}`}</Text>\n </Flex>\n\n {isEditing && (\n <Flex align=\"center\" justify=\"end\">\n <IconButton\n size=\"small\"\n onClick={event => {\n event.stopPropagation();\n setScenarioDeletionDialogOpen(true);\n }}\n >\n <DeleteIcon />\n </IconButton>\n <DeleteScenarioConfirmation\n isOpen={isScenarioDeletionDialogOpen}\n setIsOpen={setScenarioDeletionDialogOpen}\n onConfirm={() => deleteScenario(riSc, updateRiSc, scenario)}\n />\n </Flex>\n )}\n </Flex>\n {isExpanded && (\n <Collapse in={isExpanded} timeout=\"auto\" unmountOnExit>\n <div data-action-root>\n <ActionRowList\n scenarioId={scenario.ID}\n displayedActions={scenario.actions.filter(action =>\n isAnyFilterEnabled && filteredActionIds\n ? filteredActionIds.includes(action.ID)\n : true,\n )}\n />\n </div>\n </Collapse>\n )}\n </Card>\n </div>\n );\n}\n"],"names":["classnames"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmDO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,QAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAA,EAA0B;AAExB,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM,EAAE,YAAA,EAAc,IAAA,EAAM,UAAA,KAAe,QAAA,EAAS;AACpD,EAAA,MAAM,EAAE,gBAAA,EAAkB,mBAAA,EAAoB,GAAI,WAAA,EAAY;AAG9D,EAAA,MAAM,CAAC,4BAAA,EAA8B,6BAA6B,CAAA,GAChE,SAAS,KAAK,CAAA;AAChB,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,KAAK,CAAA;AAGlD,EAAA,MAAM,GAAA,GAAM,OAAuB,IAAI,CAAA;AAEvC,EAAA,MAAM,GAAG,IAAI,CAAA,GAAI,oBAAA;AAAA,IACf,SAAA;AAAA,IACA,QAAA,CAAS,EAAA;AAAA,IACT,gBAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,aAAA,CAAc,CAAC,CAAC,iBAAiB,CAAA;AAAA,EACnC,CAAA,EAAG,CAAC,iBAAiB,CAAC,CAAA;AAEtB,EAAA,MAAM,CAAC,EAAE,UAAA,EAAW,EAAG,IAAA,EAAM,OAAO,CAAA,GAAI,oBAAA;AAAA,IACtC,SAAA;AAAA,IACA,QAAA,CAAS,EAAA;AAAA,IACT,gBAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA;AAGjB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,UAAA,EAAY;AACd,MAAA,mBAAA,CAAoB,CAAA,IAAA,KAAQ,KAAK,MAAA,CAAO,CAAA,CAAA,KAAK,EAAE,EAAA,KAAO,QAAA,CAAS,EAAE,CAAC,CAAA;AAAA,IACpE;AAAA,EAGF,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,kCAAkC,gBAAA,CAAiB,IAAA;AAAA,IACvD,CAAA,CAAA,KAAK,CAAA,CAAE,EAAA,KAAO,QAAA,CAAS;AAAA,GACzB;AAEA,EAAA,MAAM,cAAA,GAAiB,+BAAA;AAEvB,EAAA,MAAM,WAAA,GAAc,6BAAA;AAEpB,EAAA,MAAM,gBAAA,GACJ,KAAA,CAAM,OAAA,CAAQ,IAAA,KAAS,SAAS,+BAAA,GAAkC,IAAA;AACpE,EAAA,MAAM,sBAAA,GAAyB,mBAC3B,kBAAA,GACA,kBAAA;AAEJ,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,QAAA,EAAU,CAAA;AAAA,MACV,OAAA,EAAS,CAAC,CAAA,KAAkC;AAC1C,QAAA,MAAM,SAAS,CAAA,CAAE,MAAA;AACjB,QAAA,IACE,MAAA,KACC,MAAA,CAAO,OAAA,CAAQ,oBAAoB,CAAA,IAClC,MAAA,CAAO,OAAA,CAAQ,wBAAwB,CAAA,IACvC,MAAA,CAAO,OAAA,CAAQ,sBAAsB,CAAA,CAAA,EACvC;AACA,UAAA;AAAA,QACF;AACA,QAAA,OAAA,CAAQ,SAAS,EAAE,CAAA;AAAA,MACrB,CAAA;AAAA,MACA,SAAA,EAAW,CAAC,CAAA,KAAqC;AAC/C,QAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AACtC,UAAA,OAAA,CAAQ,SAAS,EAAE,CAAA;AAAA,QACrB;AAAA,MACF,CAAA;AAAA,MAEA,QAAA,kBAAA,IAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,cAAc,MAAM;AAClB,YAAA,IAAI,UAAA,EAAY;AAChB,YAAA,mBAAA;AAAA,cAAoB,CAAA,IAAA,KAClB,IAAA,CAAK,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,EAAA,KAAO,QAAA,CAAS,EAAE,CAAA,GAAI,IAAA,GAAO,CAAC,GAAG,MAAM,QAAQ;AAAA,aAClE;AAAA,UACF,CAAA;AAAA,UACA,cAAc,MAAM;AAClB,YAAA,IAAI,UAAA,EAAY;AAChB,YAAA,mBAAA,CAAoB,CAAA,IAAA,KAAQ,KAAK,MAAA,CAAO,CAAA,CAAA,KAAK,EAAE,EAAA,KAAO,QAAA,CAAS,EAAE,CAAC,CAAA;AAAA,UACpE,CAAA;AAAA,UACA,GAAA;AAAA,UACA,SAAA,EAAWA,UAAA,CAAW,MAAA,CAAO,SAAA,EAAW;AAAA,YACtC,CAAC,MAAA,CAAO,gBAAgB,GAAG;AAAA,WAC5B,CAAA;AAAA,UACD,KAAA,EAAO;AAAA,YACL,OAAA,EAAS,aAAa,GAAA,GAAM,CAAA;AAAA,YAC5B,UAAA,EAAY,aAAa,MAAA,GAAS,MAAA;AAAA,YAClC,eAAA,EAAiB,kCACb,cAAA,GACA;AAAA,WACN;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,IAAA,EAAA,EAAK,OAAM,QAAA,EACT,QAAA,EAAA;AAAA,cAAA,SAAA,IAAa,gCACZ,GAAA,CAAC,UAAA,EAAA,EAAW,IAAA,EAAK,OAAA,EAAQ,KAAK,IAAA,EAC5B,QAAA,kBAAA,GAAA;AAAA,gBAAC,iBAAA;AAAA,gBAAA;AAAA,kBACC,EAAA,EAAI,EAAE,MAAA,EAAQ,UAAA,GAAa,aAAa,MAAA;AAAO;AAAA,eACjD,EACF,CAAA;AAAA,8BAEF,GAAA;AAAA,gBAAC,UAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,EAAK,QAAA;AAAA,kBACL,kBAAA,EAAgB,IAAA;AAAA,kBAChB,SAAS,CAAA,CAAA,KAAK;AACZ,oBAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,oBAAA,aAAA,CAAc,CAAA,IAAA,KAAQ,CAAC,IAAI,CAAA;AAAA,kBAC7B,CAAA;AAAA,kBACA,KAAA,EAAO,EAAE,OAAA,EAAS,CAAA,EAAE;AAAA,kBAEnB,QAAA,EAAA,UAAA,uBACE,GAAA,EAAA,EAAE,SAAA,EAAU,wBAAuB,CAAA,mBAEpC,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,uBAAA,EAAwB;AAAA;AAAA,eAEzC;AAAA,8BACA,GAAA;AAAA,gBAAC,IAAA;AAAA,gBAAA;AAAA,kBACC,EAAA,EAAG,GAAA;AAAA,kBACH,OAAA,EAAQ,YAAA;AAAA,kBACR,MAAA,EAAO,MAAA;AAAA,kBACP,KAAA,EAAO,EAAE,KAAA,EAAO,KAAA,EAAO,OAAO,sBAAA,EAAuB;AAAA,kBAEpD,QAAA,EAAA,QAAA,CAAS;AAAA;AAAA,eACZ;AAAA,8BACA,IAAA,CAAC,IAAA,EAAA,EAAK,KAAA,EAAM,QAAA,EAAS,OAAA,EAAQ,SAAQ,KAAA,EAAO,EAAE,KAAA,EAAO,KAAA,EAAM,EACzD,QAAA,EAAA;AAAA,gCAAA,GAAA;AAAA,kBAAC,gBAAA;AAAA,kBAAA;AAAA,oBACC,IAAA,EAAK,OAAA;AAAA,oBACL,WAAA,EAAa,oBAAA,CAAqB,QAAA,CAAS,IAAA,CAAK,WAAW,CAAA;AAAA,oBAC3D,WAAA,EAAa,oBAAA,CAAqB,QAAA,CAAS,IAAA,CAAK,WAAW;AAAA;AAAA,iBAC7D;AAAA,gCACA,IAAA;AAAA,kBAAC,IAAA;AAAA,kBAAA;AAAA,oBACC,OAAA,EAAQ,aAAA;AAAA,oBACR,KAAA,EAAO,EAAE,KAAA,EAAO,sBAAA,EAAuB;AAAA,oBAEtC,QAAA,EAAA;AAAA,sBAAA,CAAA,CAAE,uCAAuC,CAAA;AAAA,sBAAE,GAAA;AAAA,sBAC3C,CAAA,EAAG,mBAAA;AAAA,wBACF,QAAA,CAAS;AAAA,uBACV,IAAI,CAAA,CAAE,uCAAuC,CAAC,CAAA,CAAA,EAAI,mBAAA,CAAoB,QAAA,CAAS,IAAI,CAAC,CAAA;AAAA;AAAA;AAAA;AACvF,eAAA,EACF,CAAA;AAAA,8BAEA,GAAA;AAAA,gBAAC,IAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAM,QAAA;AAAA,kBACN,OAAA,EAAQ,OAAA;AAAA,kBACR,KAAA,EAAO,EAAE,KAAA,EAAO,SAAA,GAAY,QAAQ,KAAA,EAAM;AAAA,kBAExC,QAAA,EAAA,CAAA,MAAM;AACN,oBAAA,IAAI,QAAA,CAAS,OAAA,CAAQ,MAAA,GAAS,CAAA,EAAG;AAC/B,sBAAA,uBACE,GAAA;AAAA,wBAAC,wBAAA;AAAA,wBAAA;AAAA,0BACC,cAAA,EACE,SAAS,OAAA,CAAQ,MAAA;AAAA,4BACf,CAAA,CAAA,KAAK,CAAA,CAAE,MAAA,KAAW,mBAAA,CAAoB;AAAA,2BACxC,CAAE,MAAA;AAAA,0BAEJ,UAAA,EACE,SAAS,OAAA,CAAQ,MAAA;AAAA,4BACf,CAAA,CAAA,KAAK,CAAA,CAAE,MAAA,KAAW,mBAAA,CAAoB;AAAA,2BACxC,CAAE,MAAA;AAAA,0BAEJ,SAAA,EAAW;AAAA;AAAA,uBACb;AAAA,oBAEJ;AACA,oBAAA,uBACE,GAAA,CAAC,QAAK,KAAA,EAAO,EAAE,OAAO,sBAAA,EAAuB,EAC1C,QAAA,EAAA,CAAA,CAAE,yBAAyB,CAAA,EAC9B,CAAA;AAAA,kBAEJ,CAAA;AAAG;AAAA,eACL;AAAA,8BACA,IAAA,CAAC,QAAK,KAAA,EAAM,QAAA,EAAS,OAAO,EAAE,KAAA,EAAO,OAAM,EACzC,QAAA,EAAA;AAAA,gCAAA,GAAA;AAAA,kBAAC,gBAAA;AAAA,kBAAA;AAAA,oBACC,IAAA,EAAK,OAAA;AAAA,oBACL,WAAA,EAAa,oBAAA;AAAA,sBACX,SAAS,aAAA,CAAc;AAAA,qBACzB;AAAA,oBACA,WAAA,EAAa,oBAAA;AAAA,sBACX,SAAS,aAAA,CAAc;AAAA;AACzB;AAAA,iBACF;AAAA,gCACA,GAAA;AAAA,kBAAC,IAAA;AAAA,kBAAA;AAAA,oBACC,OAAA,EAAQ,aAAA;AAAA,oBACR,KAAA,EAAO,EAAE,KAAA,EAAO,sBAAA,EAAuB;AAAA,oBACvC,QAAA,EAAA,CAAA,EAAG,CAAA,CAAE,uCAAuC,CAAC,CAAA,CAAA,EAAI,mBAAA;AAAA,sBACjD,QAAA,CAAS;AAAA,qBACV,IAAI,CAAA,CAAE,uCAAuC,CAAC,CAAA,CAAA,EAAI,mBAAA,CAAoB,QAAA,CAAS,aAAa,CAAC,CAAA;AAAA;AAAA;AAAG,eAAA,EACnG,CAAA;AAAA,cAEC,6BACC,IAAA,CAAC,IAAA,EAAA,EAAK,KAAA,EAAM,QAAA,EAAS,SAAQ,KAAA,EAC3B,QAAA,EAAA;AAAA,gCAAA,GAAA;AAAA,kBAAC,UAAA;AAAA,kBAAA;AAAA,oBACC,IAAA,EAAK,OAAA;AAAA,oBACL,SAAS,CAAA,KAAA,KAAS;AAChB,sBAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,sBAAA,6BAAA,CAA8B,IAAI,CAAA;AAAA,oBACpC,CAAA;AAAA,oBAEA,8BAAC,UAAA,EAAA,EAAW;AAAA;AAAA,iBACd;AAAA,gCACA,GAAA;AAAA,kBAAC,0BAAA;AAAA,kBAAA;AAAA,oBACC,MAAA,EAAQ,4BAAA;AAAA,oBACR,SAAA,EAAW,6BAAA;AAAA,oBACX,SAAA,EAAW,MAAM,cAAA,CAAe,IAAA,EAAM,YAAY,QAAQ;AAAA;AAAA;AAC5D,eAAA,EACF;AAAA,aAAA,EAEJ,CAAA;AAAA,YACC,UAAA,oBACC,GAAA,CAAC,QAAA,EAAA,EAAS,EAAA,EAAI,UAAA,EAAY,OAAA,EAAQ,MAAA,EAAO,aAAA,EAAa,IAAA,EACpD,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,kBAAA,EAAgB,IAAA,EACnB,QAAA,kBAAA,GAAA;AAAA,cAAC,aAAA;AAAA,cAAA;AAAA,gBACC,YAAY,QAAA,CAAS,EAAA;AAAA,gBACrB,gBAAA,EAAkB,SAAS,OAAA,CAAQ,MAAA;AAAA,kBAAO,YACxC,kBAAA,IAAsB,iBAAA,GAClB,kBAAkB,QAAA,CAAS,MAAA,CAAO,EAAE,CAAA,GACpC;AAAA;AACN;AAAA,eAEJ,CAAA,EACF;AAAA;AAAA;AAAA;AAEJ;AAAA,GACF;AAEJ;;;;"}
@@ -37,7 +37,7 @@ function RiskTableBase({
37
37
  const radioGroupClassName = additionalClassName ? `${styles.riskRow} ${additionalClassName}` : styles.riskRow;
38
38
  return /* @__PURE__ */ jsxs(Box, { className: styles.riskTable, children: [
39
39
  /* @__PURE__ */ jsxs(RadioGroup, { ...field, className: radioGroupClassName, children: [
40
- fieldName === "consequence" && /* @__PURE__ */ jsx(Box, { className: styles.riskLabelCell }),
40
+ fieldName === "consequence" && /* @__PURE__ */ jsx(Box, { className: styles.riskLabelCell, children: null }),
41
41
  Array.from({ length: 5 }, (_, i) => getRadioCell(i))
42
42
  ] }),
43
43
  /* @__PURE__ */ jsx(InfoComponent, {})
@@ -51,7 +51,7 @@ function createInfoWithHeadersComponent(translationPrefix, InfoComponent, includ
51
51
  }
52
52
  return /* @__PURE__ */ jsxs(Box, { className: styles.riskTable, children: [
53
53
  /* @__PURE__ */ jsxs(Box, { className: includeLabel ? styles.consequenceGrid : styles.riskRow, children: [
54
- includeLabel && /* @__PURE__ */ jsx(Box, { className: styles.riskLabelCell }),
54
+ includeLabel && /* @__PURE__ */ jsx(Box, { className: styles.riskLabelCell, children: null }),
55
55
  Array.from({ length: 5 }, (_, i) => getRadioLabel(i + 1))
56
56
  ] }),
57
57
  /* @__PURE__ */ jsx(InfoComponent, {})
@@ -1 +1 @@
1
- {"version":3,"file":"RiskTableBase.esm.js","sources":["../../../../src/components/scenarioWizard/components/RiskTableBase.tsx"],"sourcesContent":["import { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { useController, UseFormReturn } from 'react-hook-form';\nimport { FormScenario } from '../../../utils/types';\nimport { RiskRadioButton } from './RiskRadioButton';\nimport RadioGroup from '@mui/material/RadioGroup';\nimport { Text, Box } from '@backstage/ui';\nimport styles from '../ScenarioWizardTable.module.css';\nimport React from 'react';\n\ntype RiskTableBaseProps = {\n formMethods: UseFormReturn<FormScenario>;\n riskType: keyof Pick<FormScenario, 'risk' | 'remainingRisk'>;\n fieldName: 'probability' | 'consequence';\n translationPrefix: 'probabilityTable' | 'consequenceTable';\n options: readonly number[];\n additionalClassName?: string;\n InfoComponent: React.ComponentType;\n};\n\nexport function RiskTableBase({\n formMethods,\n riskType,\n fieldName,\n options,\n additionalClassName = '',\n translationPrefix,\n InfoComponent,\n}: RiskTableBaseProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const { field } = useController({\n name: `${riskType}.${fieldName}`,\n control: formMethods.control,\n });\n\n function getRadioLabel(row: number) {\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n return `${row}: ${t(`${translationPrefix}.rows.${row}`)}`;\n }\n\n function getRadioCell(row: number) {\n return (\n <RiskRadioButton\n value={options[row]}\n ref={field.ref}\n label={getRadioLabel(row + 1)}\n />\n );\n }\n\n const radioGroupClassName = additionalClassName\n ? `${styles.riskRow} ${additionalClassName}`\n : styles.riskRow;\n\n return (\n <Box className={styles.riskTable}>\n <RadioGroup {...field} className={radioGroupClassName}>\n {fieldName === 'consequence' && (\n <Box className={styles.riskLabelCell} />\n )}\n {Array.from({ length: 5 }, (_, i) => getRadioCell(i))}\n </RadioGroup>\n <InfoComponent />\n </Box>\n );\n}\n\nexport function createInfoWithHeadersComponent(\n translationPrefix: 'probabilityTable' | 'consequenceTable',\n InfoComponent: React.ComponentType,\n includeLabel: boolean = false,\n) {\n return function InfoWithHeaders() {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n function getRadioLabel(row: number) {\n return (\n <Text as=\"p\" variant=\"body-large\">\n {/* @ts-ignore Because ts can't typecheck strings against our keys */}\n {`${row}: ${t(`${translationPrefix}.rows.${row}`)}`}\n </Text>\n );\n }\n return (\n <Box className={styles.riskTable}>\n <Box className={includeLabel ? styles.consequenceGrid : styles.riskRow}>\n {includeLabel && <Box className={styles.riskLabelCell} />}\n {Array.from({ length: 5 }, (_, i) => getRadioLabel(i + 1))}\n </Box>\n <InfoComponent />\n </Box>\n );\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RiskTableBase.esm.js","sources":["../../../../src/components/scenarioWizard/components/RiskTableBase.tsx"],"sourcesContent":["import { pluginRiScTranslationRef } from '../../../utils/translations';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { useController, UseFormReturn } from 'react-hook-form';\nimport { FormScenario } from '../../../utils/types';\nimport { RiskRadioButton } from './RiskRadioButton';\nimport RadioGroup from '@mui/material/RadioGroup';\nimport { Text, Box } from '@backstage/ui';\nimport styles from '../ScenarioWizardTable.module.css';\nimport React from 'react';\n\ntype RiskTableBaseProps = {\n formMethods: UseFormReturn<FormScenario>;\n riskType: keyof Pick<FormScenario, 'risk' | 'remainingRisk'>;\n fieldName: 'probability' | 'consequence';\n translationPrefix: 'probabilityTable' | 'consequenceTable';\n options: readonly number[];\n additionalClassName?: string;\n InfoComponent: React.ComponentType;\n};\n\nexport function RiskTableBase({\n formMethods,\n riskType,\n fieldName,\n options,\n additionalClassName = '',\n translationPrefix,\n InfoComponent,\n}: RiskTableBaseProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n const { field } = useController({\n name: `${riskType}.${fieldName}`,\n control: formMethods.control,\n });\n\n function getRadioLabel(row: number) {\n /* @ts-ignore Because ts can't typecheck strings against our keys */\n return `${row}: ${t(`${translationPrefix}.rows.${row}`)}`;\n }\n\n function getRadioCell(row: number) {\n return (\n <RiskRadioButton\n value={options[row]}\n ref={field.ref}\n label={getRadioLabel(row + 1)}\n />\n );\n }\n\n const radioGroupClassName = additionalClassName\n ? `${styles.riskRow} ${additionalClassName}`\n : styles.riskRow;\n\n return (\n <Box className={styles.riskTable}>\n <RadioGroup {...field} className={radioGroupClassName}>\n {fieldName === 'consequence' && (\n <Box className={styles.riskLabelCell}>{null}</Box>\n )}\n {Array.from({ length: 5 }, (_, i) => getRadioCell(i))}\n </RadioGroup>\n <InfoComponent />\n </Box>\n );\n}\n\nexport function createInfoWithHeadersComponent(\n translationPrefix: 'probabilityTable' | 'consequenceTable',\n InfoComponent: React.ComponentType,\n includeLabel: boolean = false,\n) {\n return function InfoWithHeaders() {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n\n function getRadioLabel(row: number) {\n return (\n <Text as=\"p\" variant=\"body-large\">\n {/* @ts-ignore Because ts can't typecheck strings against our keys */}\n {`${row}: ${t(`${translationPrefix}.rows.${row}`)}`}\n </Text>\n );\n }\n return (\n <Box className={styles.riskTable}>\n <Box className={includeLabel ? styles.consequenceGrid : styles.riskRow}>\n {includeLabel && <Box className={styles.riskLabelCell}>{null}</Box>}\n {Array.from({ length: 5 }, (_, i) => getRadioLabel(i + 1))}\n </Box>\n <InfoComponent />\n </Box>\n );\n };\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kartverket/backstage-plugin-risk-scorecard",
3
- "version": "6.7.0",
3
+ "version": "6.7.2",
4
4
  "main": "dist/index.esm.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "MIT",