@kartverket/backstage-plugin-risk-scorecard 6.1.6 → 6.1.7

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.
@@ -1,5 +1,5 @@
1
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
- import { useTableStyles } from './ScenarioTableStyles.esm.js';
2
+ import styles from './ScenarioTable.module.css.esm.js';
3
3
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
4
4
  import { pluginRiScTranslationRef } from '../../utils/translations.esm.js';
5
5
  import { useState, useEffect, useMemo } from 'react';
@@ -12,7 +12,6 @@ import { useDebouncedValue } from '../../utils/hooks.esm.js';
12
12
 
13
13
  function ScenarioTable(props) {
14
14
  const { t } = useTranslationRef(pluginRiScTranslationRef);
15
- const { tableCellDragIcon, tableCard } = useTableStyles();
16
15
  const riSc = props.riScWithMetadata.content;
17
16
  const [tempScenarios, setTempScenarios] = useState(riSc.scenarios);
18
17
  const debouncedSearchQuery = useDebouncedValue(props.actionSearchQuery);
@@ -50,7 +49,7 @@ function ScenarioTable(props) {
50
49
  );
51
50
  return /* @__PURE__ */ jsxs(Fragment, { children: [
52
51
  /* @__PURE__ */ jsxs(Flex, { p: "24px 24px 18px 24px", children: [
53
- props.isEditing && isDndAllowed && /* @__PURE__ */ jsx("div", { className: tableCellDragIcon }),
52
+ props.isEditing && isDndAllowed && /* @__PURE__ */ jsx("div", { className: styles.tableCellDragIcon }),
54
53
  /* @__PURE__ */ jsx(
55
54
  Box,
56
55
  {
@@ -80,7 +79,7 @@ function ScenarioTable(props) {
80
79
  },
81
80
  scenario.ID
82
81
  )),
83
- debouncedSearchQuery && filteredActionsForScenarios.size === 0 && /* @__PURE__ */ jsx(Card, { className: tableCard, children: /* @__PURE__ */ jsxs(Flex, { align: "center", justify: "center", children: [
82
+ debouncedSearchQuery && filteredActionsForScenarios.size === 0 && /* @__PURE__ */ jsx(Card, { className: styles.tableCard, children: /* @__PURE__ */ jsxs(Flex, { align: "center", justify: "center", children: [
84
83
  t("dictionary.searchQuery"),
85
84
  ' "',
86
85
  debouncedSearchQuery,
@@ -1 +1 @@
1
- {"version":3,"file":"ScenarioTable.esm.js","sources":["../../../src/components/scenarioTable/ScenarioTable.tsx"],"sourcesContent":["import { useTableStyles } from './ScenarioTableStyles.ts';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations.ts';\nimport { RiSc, RiScWithMetadata } from '../../utils/types.ts';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useRiScs } from '../../contexts/RiScContext.tsx';\nimport { useScenario } from '../../contexts/ScenarioContext.tsx';\nimport { Text, Flex, Box, Card } from '@backstage/ui';\nimport { ScenarioTableRow } from './ScenarioTableRow.tsx';\nimport { UpdatedStatusEnumType } from '../../utils/utilityfunctions.ts';\nimport {\n toScenarioSortingOption,\n getFilteredActionsForScenarios,\n getSortedScenarios,\n} from '../../utils/scenario.ts';\nimport { useDebouncedValue } from '../../utils/hooks.ts';\n\ntype ScenarioTableProps = {\n scenarioSortOrder?: string | null;\n isEditing: boolean;\n isEditingAllowed: boolean;\n riScWithMetadata: RiScWithMetadata;\n visibleType: UpdatedStatusEnumType | null;\n actionSearchQuery: string;\n};\n\nexport function ScenarioTable(props: ScenarioTableProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const { tableCellDragIcon, tableCard } = useTableStyles();\n const riSc = props.riScWithMetadata.content;\n const [tempScenarios, setTempScenarios] = useState(riSc.scenarios);\n const debouncedSearchQuery = useDebouncedValue(props.actionSearchQuery);\n const { updateStatus } = useRiScs();\n\n const { openScenarioDrawer } = useScenario();\n\n const isAnyFilterEnabled = !!debouncedSearchQuery || !!props.visibleType;\n const isDndAllowed =\n !isAnyFilterEnabled &&\n toScenarioSortingOption(props.scenarioSortOrder) === 'NoSorting';\n\n useEffect(() => {\n if (!updateStatus.isSuccess) {\n return;\n }\n const updatedScenarios = tempScenarios\n .map(scenario => {\n const ordered = riSc.scenarios.find(s => s.ID === scenario.ID);\n return ordered ? ordered : null;\n })\n .filter(scenario => scenario !== null) as RiSc['scenarios'];\n\n const scenariosNotInTemp = riSc.scenarios.filter(\n scenario => !updatedScenarios.find(s => s.ID === scenario.ID),\n );\n\n setTempScenarios([...updatedScenarios, ...scenariosNotInTemp]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [riSc.scenarios, updateStatus.isSuccess]);\n\n /*\n The following function are wrapped in useMemo to prevent recalculation\n when hovering rows in the scenario table.\n */\n const filteredActionsForScenarios = useMemo(\n () =>\n getFilteredActionsForScenarios(\n tempScenarios,\n props.visibleType,\n debouncedSearchQuery,\n ),\n [props.visibleType, debouncedSearchQuery, tempScenarios],\n );\n\n const scenariosWithAnyAction = tempScenarios.filter(scenario =>\n filteredActionsForScenarios.has(scenario.ID),\n );\n\n const scenariosToDisplaySorted = getSortedScenarios(\n isAnyFilterEnabled ? scenariosWithAnyAction : tempScenarios,\n toScenarioSortingOption(props.scenarioSortOrder),\n );\n\n return (\n <>\n <Flex p=\"24px 24px 18px 24px\">\n {props.isEditing && isDndAllowed && (\n <div className={tableCellDragIcon} />\n )}\n <Box\n style={{\n width: props.isEditing && isDndAllowed ? '33%' : '40%',\n paddingLeft: '5%',\n }}\n >\n <Text weight=\"bold\" variant=\"body-large\">\n {t('dictionary.title')}\n </Text>\n </Box>\n <Box style={{ width: '15%' }}>\n <Text weight=\"bold\" variant=\"body-large\">\n {t('dictionary.initialRisk')}\n </Text>\n </Box>\n <Box style={{ width: props.isEditing ? '25%' : '35%' }}>\n <Text weight=\"bold\" variant=\"body-large\">\n {t('dictionary.actionsWithStatus')}\n </Text>\n </Box>\n <Box style={{ width: '15%' }}>\n <Text weight=\"bold\" variant=\"body-large\">\n {t('dictionary.restRisk')}\n </Text>\n </Box>\n </Flex>\n {scenariosToDisplaySorted.map((scenario, idx) => (\n <ScenarioTableRow\n key={scenario.ID}\n scenario={scenario}\n filteredActionIds={\n isAnyFilterEnabled\n ? filteredActionsForScenarios.get(scenario.ID)\n : undefined\n }\n isAnyFilterEnabled={isAnyFilterEnabled}\n isDnDAllowed={isDndAllowed}\n listIndex={idx}\n viewRow={(id: string) =>\n openScenarioDrawer(id, props.isEditingAllowed)\n }\n isEditing={props.isEditing}\n setTempScenarios={setTempScenarios}\n riScWithMetadata={props.riScWithMetadata}\n />\n ))}\n {debouncedSearchQuery && filteredActionsForScenarios.size === 0 && (\n <Card className={tableCard}>\n <Flex align=\"center\" justify=\"center\">\n {t('dictionary.searchQuery')} \"{debouncedSearchQuery}\"\n </Flex>\n </Card>\n )}\n </>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScenarioTable.esm.js","sources":["../../../src/components/scenarioTable/ScenarioTable.tsx"],"sourcesContent":["import styles from './ScenarioTable.module.css';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { pluginRiScTranslationRef } from '../../utils/translations.ts';\nimport { RiSc, RiScWithMetadata } from '../../utils/types.ts';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useRiScs } from '../../contexts/RiScContext.tsx';\nimport { useScenario } from '../../contexts/ScenarioContext.tsx';\nimport { Text, Flex, Box, Card } from '@backstage/ui';\nimport { ScenarioTableRow } from './ScenarioTableRow.tsx';\nimport { UpdatedStatusEnumType } from '../../utils/utilityfunctions.ts';\nimport {\n toScenarioSortingOption,\n getFilteredActionsForScenarios,\n getSortedScenarios,\n} from '../../utils/scenario.ts';\nimport { useDebouncedValue } from '../../utils/hooks.ts';\n\ntype ScenarioTableProps = {\n scenarioSortOrder?: string | null;\n isEditing: boolean;\n isEditingAllowed: boolean;\n riScWithMetadata: RiScWithMetadata;\n visibleType: UpdatedStatusEnumType | null;\n actionSearchQuery: string;\n};\n\nexport function ScenarioTable(props: ScenarioTableProps) {\n const { t } = useTranslationRef(pluginRiScTranslationRef);\n const riSc = props.riScWithMetadata.content;\n const [tempScenarios, setTempScenarios] = useState(riSc.scenarios);\n const debouncedSearchQuery = useDebouncedValue(props.actionSearchQuery);\n const { updateStatus } = useRiScs();\n\n const { openScenarioDrawer } = useScenario();\n\n const isAnyFilterEnabled = !!debouncedSearchQuery || !!props.visibleType;\n const isDndAllowed =\n !isAnyFilterEnabled &&\n toScenarioSortingOption(props.scenarioSortOrder) === 'NoSorting';\n\n useEffect(() => {\n if (!updateStatus.isSuccess) {\n return;\n }\n const updatedScenarios = tempScenarios\n .map(scenario => {\n const ordered = riSc.scenarios.find(s => s.ID === scenario.ID);\n return ordered ? ordered : null;\n })\n .filter(scenario => scenario !== null) as RiSc['scenarios'];\n\n const scenariosNotInTemp = riSc.scenarios.filter(\n scenario => !updatedScenarios.find(s => s.ID === scenario.ID),\n );\n\n setTempScenarios([...updatedScenarios, ...scenariosNotInTemp]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [riSc.scenarios, updateStatus.isSuccess]);\n\n /*\n The following function are wrapped in useMemo to prevent recalculation\n when hovering rows in the scenario table.\n */\n const filteredActionsForScenarios = useMemo(\n () =>\n getFilteredActionsForScenarios(\n tempScenarios,\n props.visibleType,\n debouncedSearchQuery,\n ),\n [props.visibleType, debouncedSearchQuery, tempScenarios],\n );\n\n const scenariosWithAnyAction = tempScenarios.filter(scenario =>\n filteredActionsForScenarios.has(scenario.ID),\n );\n\n const scenariosToDisplaySorted = getSortedScenarios(\n isAnyFilterEnabled ? scenariosWithAnyAction : tempScenarios,\n toScenarioSortingOption(props.scenarioSortOrder),\n );\n\n return (\n <>\n <Flex p=\"24px 24px 18px 24px\">\n {props.isEditing && isDndAllowed && (\n <div className={styles.tableCellDragIcon} />\n )}\n <Box\n style={{\n width: props.isEditing && isDndAllowed ? '33%' : '40%',\n paddingLeft: '5%',\n }}\n >\n <Text weight=\"bold\" variant=\"body-large\">\n {t('dictionary.title')}\n </Text>\n </Box>\n <Box style={{ width: '15%' }}>\n <Text weight=\"bold\" variant=\"body-large\">\n {t('dictionary.initialRisk')}\n </Text>\n </Box>\n <Box style={{ width: props.isEditing ? '25%' : '35%' }}>\n <Text weight=\"bold\" variant=\"body-large\">\n {t('dictionary.actionsWithStatus')}\n </Text>\n </Box>\n <Box style={{ width: '15%' }}>\n <Text weight=\"bold\" variant=\"body-large\">\n {t('dictionary.restRisk')}\n </Text>\n </Box>\n </Flex>\n {scenariosToDisplaySorted.map((scenario, idx) => (\n <ScenarioTableRow\n key={scenario.ID}\n scenario={scenario}\n filteredActionIds={\n isAnyFilterEnabled\n ? filteredActionsForScenarios.get(scenario.ID)\n : undefined\n }\n isAnyFilterEnabled={isAnyFilterEnabled}\n isDnDAllowed={isDndAllowed}\n listIndex={idx}\n viewRow={(id: string) =>\n openScenarioDrawer(id, props.isEditingAllowed)\n }\n isEditing={props.isEditing}\n setTempScenarios={setTempScenarios}\n riScWithMetadata={props.riScWithMetadata}\n />\n ))}\n {debouncedSearchQuery && filteredActionsForScenarios.size === 0 && (\n <Card className={styles.tableCard}>\n <Flex align=\"center\" justify=\"center\">\n {t('dictionary.searchQuery')} \"{debouncedSearchQuery}\"\n </Flex>\n </Card>\n )}\n </>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
+
3
+ var css_248z = ".ScenarioTable_tableCellDragIcon__d028139fb6 {\n min-width: 10px;\n width: 4%;\n}\n\n.ScenarioTable_tableCard__d028139fb6 {\n cursor: pointer;\n border: none;\n margin-bottom: 8px;\n padding: 28px 24px;\n background-color: #f8f8f8;\n}\n\n.ScenarioTable_tableCard__d028139fb6:hover {\n background-color: #e0e0e0;\n cursor: pointer;\n}\n\n.ScenarioTable_tableCard__d028139fb6.ScenarioTable_tableCardNoHover__d028139fb6:hover {\n background-color: #f8f8f8;\n cursor: pointer;\n}\n\n[data-theme-mode='dark'] .ScenarioTable_tableCard__d028139fb6 {\n background-color: #424242;\n}\n\n[data-theme-mode='dark'] .ScenarioTable_tableCard__d028139fb6:hover {\n background-color: #616161;\n}\n\n[data-theme-mode='dark'] .ScenarioTable_tableCard__d028139fb6.ScenarioTable_tableCardNoHover__d028139fb6:hover {\n background-color: #424242;\n}\n\n.ScenarioTable_tableCardNoHover__d028139fb6 {\n cursor: default;\n}\n";
4
+ var styles = {"tableCellDragIcon":"ScenarioTable_tableCellDragIcon__d028139fb6","tableCard":"ScenarioTable_tableCard__d028139fb6","tableCardNoHover":"ScenarioTable_tableCardNoHover__d028139fb6"};
5
+ styleInject(css_248z);
6
+
7
+ export { styles as default };
8
+ //# sourceMappingURL=ScenarioTable.module.css.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScenarioTable.module.css.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -8,7 +8,8 @@ import { pluginRiScTranslationRef } from '../../utils/translations.esm.js';
8
8
  import { useRiScs } from '../../contexts/RiScContext.esm.js';
9
9
  import { findConsequenceIndex, findProbabilityIndex, getProbabilityLevel, getConsequenceLevel, deleteScenario } from '../../utils/utilityfunctions.esm.js';
10
10
  import { ScenarioTableProgressBar } from './ScenarioTableProgressBar.esm.js';
11
- import { useTableStyles } from './ScenarioTableStyles.esm.js';
11
+ import classNames from 'classnames';
12
+ import styles from './ScenarioTable.module.css.esm.js';
12
13
  import { Card, Flex, Text } from '@backstage/ui';
13
14
  import { DeleteScenarioConfirmation } from '../scenarioDrawer/components/DeleteConfirmation.esm.js';
14
15
  import { ActionStatusOptions } from '../../utils/constants.esm.js';
@@ -57,7 +58,6 @@ function ScenarioTableRow({
57
58
  }
58
59
  }, [isExpanded]);
59
60
  const theme = useTheme();
60
- const { tableCard, tableCardNoHover } = useTableStyles();
61
61
  const isScenarioHoveredFromRiskMatrix = hoveredScenarios.some(
62
62
  (s) => s.ID === scenario.ID
63
63
  );
@@ -86,7 +86,9 @@ function ScenarioTableRow({
86
86
  }
87
87
  viewRow(scenario.ID);
88
88
  },
89
- className: `${tableCard} ${isExpanded ? tableCardNoHover : ""}`,
89
+ className: classNames(styles.tableCard, {
90
+ [styles.tableCardNoHover]: isExpanded
91
+ }),
90
92
  style: {
91
93
  opacity: isDragging ? 0.3 : 1,
92
94
  transition: isDragging ? "none" : void 0,
@@ -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, IconButton } from '@material-ui/core';\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 { useTableStyles } from './ScenarioTableStyles';\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 { tableCard, tableCardNoHover } = useTableStyles();\n const isScenarioHoveredFromRiskMatrix = hoveredScenarios.some(\n s => s.ID === scenario.ID,\n );\n\n const highlightColor =\n theme.palette.mode === 'dark'\n ? 'var(--ros-gray-300)'\n : 'var(--ros-gray-100)';\n\n // Necessary because the darkmode card color in theme.css overwrites the color defined in ScenarioTableStyles.ts\n const cardBgColor =\n theme.palette.mode === 'dark' ? 'var(--ros-gray-500)' : undefined;\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={`${tableCard} ${isExpanded ? tableCardNoHover : ''}`}\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":[],"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, IconButton } from '@material-ui/core';\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 =\n theme.palette.mode === 'dark'\n ? 'var(--ros-gray-300)'\n : 'var(--ros-gray-100)';\n\n // Necessary because the darkmode card color in theme.css overwrites the color defined in ScenarioTableStyles.ts\n const cardBgColor =\n theme.palette.mode === 'dark' ? 'var(--ros-gray-500)' : undefined;\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kartverket/backstage-plugin-risk-scorecard",
3
- "version": "6.1.6",
3
+ "version": "6.1.7",
4
4
  "main": "dist/index.esm.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "MIT",
@@ -1,145 +0,0 @@
1
- import { makeStyles } from '@material-ui/core';
2
-
3
- const useTableStyles = makeStyles((theme) => ({
4
- riskColor: {
5
- display: "flex",
6
- alignItems: "center",
7
- justifyContent: "center",
8
- padding: theme.spacing(1),
9
- width: theme.spacing(1),
10
- height: theme.spacing(1)
11
- },
12
- rowBackground: {
13
- display: "flex",
14
- alignItems: "center",
15
- width: "100%",
16
- border: "none",
17
- padding: 0,
18
- "&.MuiTableRow-root": {
19
- backgroundColor: theme.palette.type === "dark" ? "#424242" : "white",
20
- border: "none"
21
- },
22
- transition: "background-color 0.3s",
23
- "&:hover": {
24
- backgroundColor: theme.palette.type === "dark" ? "#616161" : "#f5f5f5",
25
- cursor: "pointer"
26
- }
27
- },
28
- titleBox: {
29
- display: "flex",
30
- justifyContent: "space-between"
31
- },
32
- rowBorder: {
33
- display: "flex",
34
- alignItems: "center",
35
- "&.MuiTableRow-root": {
36
- borderBottom: theme.palette.type === "dark" ? "1px solid #616161" : "1px solid #0000001f"
37
- }
38
- },
39
- tableCellDragIcon: {
40
- minWidth: "1px0px",
41
- padding: "",
42
- width: "4%",
43
- "&.MuiTableCell-root": {
44
- color: theme.palette.type === "dark" ? "#F8F8F8" : "rgba(0, 0, 0, 0.87)",
45
- border: "none"
46
- }
47
- },
48
- tableCell: {
49
- minWidth: "120px",
50
- padding: "20px 10px 20px 16px",
51
- width: "15%",
52
- gap: "0.4rem",
53
- "&.MuiTableCell-root": {
54
- fontSize: theme.spacing(2),
55
- color: theme.palette.type === "dark" ? "#F8F8F8" : "rgba(0, 0, 0, 0.87)",
56
- border: "none"
57
- }
58
- },
59
- tableCellTitle: {
60
- display: "flex",
61
- minWidth: "120px",
62
- padding: "20px 10px 20px 16px",
63
- gap: "0.4rem",
64
- width: "55%",
65
- "&.MuiTableCell-root": {
66
- fontSize: theme.spacing(2),
67
- color: theme.palette.type === "dark" ? "#F8F8F8" : "rgba(0, 0, 0, 0.87)",
68
- border: "none"
69
- }
70
- },
71
- tableCellContainer: {
72
- display: "flex",
73
- gap: theme.spacing(1),
74
- alignItems: "center",
75
- justifyContent: "center"
76
- },
77
- filterContainer: {
78
- fontFamily: "helvetica Neue",
79
- width: "100%",
80
- height: "40px",
81
- display: "flex",
82
- alignItems: "center",
83
- "@media (max-width: 1280px)": {
84
- height: "80px",
85
- flexDirection: "column",
86
- alignItems: "flex-start"
87
- },
88
- gap: "16px",
89
- paddingLeft: "24px",
90
- paddingRight: "24px",
91
- opacity: 1,
92
- transform: "rotate(0deg)",
93
- marginTop: "8px",
94
- marginBottom: "8px"
95
- },
96
- filterBox: {
97
- fontSize: "15px",
98
- fontWeight: 500,
99
- height: "40px",
100
- display: "flex",
101
- alignItems: "center",
102
- gap: "8px",
103
- paddingTop: "8px",
104
- paddingLeft: "20px",
105
- paddingBottom: "8px",
106
- paddingRight: "20px",
107
- borderRadius: "24px",
108
- opacity: 1,
109
- transform: "rotate(0deg)",
110
- width: "auto"
111
- },
112
- filterSpan: {
113
- fontSize: "15px",
114
- width: "26px",
115
- height: "26px",
116
- borderRadius: "8px",
117
- display: "flex",
118
- justifyContent: "center",
119
- alignItems: "center",
120
- opacity: 1,
121
- transform: "rotate(0deg)",
122
- color: "white"
123
- },
124
- tableCard: {
125
- cursor: "pointer",
126
- border: "none",
127
- marginBottom: "8px",
128
- padding: "28px 24px",
129
- backgroundColor: theme.palette.type === "dark" ? "#424242" : "#F8F8F8",
130
- "&:hover": {
131
- backgroundColor: theme.palette.type === "dark" ? "#616161" : "#E0E0E0",
132
- cursor: "pointer"
133
- },
134
- "&$tableCardNoHover:hover": {
135
- backgroundColor: theme.palette.type === "dark" ? "#424242" : "#F8F8F8",
136
- cursor: "pointer"
137
- }
138
- },
139
- tableCardNoHover: {
140
- cursor: "default"
141
- }
142
- }));
143
-
144
- export { useTableStyles };
145
- //# sourceMappingURL=ScenarioTableStyles.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScenarioTableStyles.esm.js","sources":["../../../src/components/scenarioTable/ScenarioTableStyles.ts"],"sourcesContent":["import { Theme, makeStyles } from '@material-ui/core';\n\nexport const useTableStyles = makeStyles((theme: Theme) => ({\n riskColor: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: theme.spacing(1),\n width: theme.spacing(1),\n height: theme.spacing(1),\n },\n rowBackground: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n border: 'none',\n padding: 0,\n '&.MuiTableRow-root': {\n backgroundColor: theme.palette.type === 'dark' ? '#424242' : 'white',\n border: 'none',\n },\n transition: 'background-color 0.3s',\n '&:hover': {\n backgroundColor: theme.palette.type === 'dark' ? '#616161' : '#f5f5f5',\n cursor: 'pointer',\n },\n },\n titleBox: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n rowBorder: {\n display: 'flex',\n alignItems: 'center',\n '&.MuiTableRow-root': {\n borderBottom:\n theme.palette.type === 'dark'\n ? '1px solid #616161'\n : '1px solid #0000001f',\n },\n },\n\n tableCellDragIcon: {\n minWidth: '1px0px',\n padding: '',\n width: '4%',\n '&.MuiTableCell-root': {\n color: theme.palette.type === 'dark' ? '#F8F8F8' : 'rgba(0, 0, 0, 0.87)',\n border: 'none',\n },\n },\n\n tableCell: {\n minWidth: '120px',\n padding: '20px 10px 20px 16px',\n width: '15%',\n gap: '0.4rem',\n '&.MuiTableCell-root': {\n fontSize: theme.spacing(2),\n color: theme.palette.type === 'dark' ? '#F8F8F8' : 'rgba(0, 0, 0, 0.87)',\n border: 'none',\n },\n },\n tableCellTitle: {\n display: 'flex',\n minWidth: '120px',\n padding: '20px 10px 20px 16px',\n gap: '0.4rem',\n width: '55%',\n '&.MuiTableCell-root': {\n fontSize: theme.spacing(2),\n color: theme.palette.type === 'dark' ? '#F8F8F8' : 'rgba(0, 0, 0, 0.87)',\n border: 'none',\n },\n },\n tableCellContainer: {\n display: 'flex',\n gap: theme.spacing(1),\n alignItems: 'center',\n justifyContent: 'center',\n },\n filterContainer: {\n fontFamily: 'helvetica Neue',\n width: '100%',\n height: '40px',\n display: 'flex',\n alignItems: 'center',\n '@media (max-width: 1280px)': {\n height: '80px',\n flexDirection: 'column',\n alignItems: 'flex-start',\n },\n gap: '16px',\n paddingLeft: '24px',\n paddingRight: '24px',\n opacity: 1,\n transform: 'rotate(0deg)',\n marginTop: '8px',\n marginBottom: '8px',\n },\n\n filterBox: {\n fontSize: '15px',\n fontWeight: 500,\n height: '40px',\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n paddingTop: '8px',\n paddingLeft: '20px',\n paddingBottom: '8px',\n paddingRight: '20px',\n borderRadius: '24px',\n opacity: 1,\n transform: 'rotate(0deg)',\n width: 'auto',\n },\n filterSpan: {\n fontSize: '15px',\n width: '26px',\n height: '26px',\n borderRadius: '8px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n opacity: 1,\n transform: 'rotate(0deg)',\n color: 'white',\n },\n tableCard: {\n cursor: 'pointer',\n border: 'none',\n marginBottom: '8px',\n padding: '28px 24px',\n backgroundColor: theme.palette.type === 'dark' ? '#424242' : '#F8F8F8',\n '&:hover': {\n backgroundColor: theme.palette.type === 'dark' ? '#616161' : '#E0E0E0',\n cursor: 'pointer',\n },\n '&$tableCardNoHover:hover': {\n backgroundColor: theme.palette.type === 'dark' ? '#424242' : '#F8F8F8',\n cursor: 'pointer',\n },\n },\n tableCardNoHover: {\n cursor: 'default',\n },\n}));\n"],"names":[],"mappings":"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"}