@backstage-community/plugin-rbac 1.34.0 → 1.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/components/Administration.esm.js +2 -2
  3. package/dist/components/Administration.esm.js.map +1 -1
  4. package/dist/components/ConditionalAccess/AddNestedConditionButton.esm.js +5 -5
  5. package/dist/components/ConditionalAccess/AddNestedConditionButton.esm.js.map +1 -1
  6. package/dist/components/ConditionalAccess/ComplexConditionRow.esm.js +14 -14
  7. package/dist/components/ConditionalAccess/ComplexConditionRow.esm.js.map +1 -1
  8. package/dist/components/ConditionalAccess/ComplexConditionRowButtons.esm.js +7 -7
  9. package/dist/components/ConditionalAccess/ComplexConditionRowButtons.esm.js.map +1 -1
  10. package/dist/components/ConditionalAccess/ConditionRule.esm.js +3 -3
  11. package/dist/components/ConditionalAccess/ConditionRule.esm.js.map +1 -1
  12. package/dist/components/ConditionalAccess/ConditionalAccessSidebar.esm.js +9 -9
  13. package/dist/components/ConditionalAccess/ConditionalAccessSidebar.esm.js.map +1 -1
  14. package/dist/components/ConditionalAccess/ConditionsForm.esm.js +15 -15
  15. package/dist/components/ConditionalAccess/ConditionsForm.esm.js.map +1 -1
  16. package/dist/components/ConditionalAccess/ConditionsFormRow.esm.js +32 -32
  17. package/dist/components/ConditionalAccess/ConditionsFormRow.esm.js.map +1 -1
  18. package/dist/components/ConditionalAccess/ConditionsFormRowFields.esm.js +11 -11
  19. package/dist/components/ConditionalAccess/ConditionsFormRowFields.esm.js.map +1 -1
  20. package/dist/components/ConditionalAccess/CriteriaToggleButton.esm.js +2 -2
  21. package/dist/components/ConditionalAccess/CriteriaToggleButton.esm.js.map +1 -1
  22. package/dist/components/ConditionalAccess/CustomArrayField.esm.js +5 -5
  23. package/dist/components/ConditionalAccess/CustomArrayField.esm.js.map +1 -1
  24. package/dist/components/ConditionalAccess/RulesDropdownOption.esm.js +4 -4
  25. package/dist/components/ConditionalAccess/RulesDropdownOption.esm.js.map +1 -1
  26. package/dist/components/CreateRole/AddMembersForm.esm.js +14 -14
  27. package/dist/components/CreateRole/AddMembersForm.esm.js.map +1 -1
  28. package/dist/components/CreateRole/AddedMembersTable.esm.js +3 -3
  29. package/dist/components/CreateRole/AddedMembersTable.esm.js.map +1 -1
  30. package/dist/components/CreateRole/AddedMembersTableColumn.esm.js +4 -4
  31. package/dist/components/CreateRole/AddedMembersTableColumn.esm.js.map +1 -1
  32. package/dist/components/CreateRole/CreateRolePage.esm.js +6 -6
  33. package/dist/components/CreateRole/CreateRolePage.esm.js.map +1 -1
  34. package/dist/components/CreateRole/EditRolePage.esm.js +9 -5
  35. package/dist/components/CreateRole/EditRolePage.esm.js.map +1 -1
  36. package/dist/components/CreateRole/MembersDropdownOption.esm.js +4 -4
  37. package/dist/components/CreateRole/MembersDropdownOption.esm.js.map +1 -1
  38. package/dist/components/CreateRole/PermissionPoliciesForm.esm.js +100 -106
  39. package/dist/components/CreateRole/PermissionPoliciesForm.esm.js.map +1 -1
  40. package/dist/components/CreateRole/PermissionPoliciesFormNestedRow.esm.js +125 -0
  41. package/dist/components/CreateRole/PermissionPoliciesFormNestedRow.esm.js.map +1 -0
  42. package/dist/components/CreateRole/PermissionPoliciesFormRow.esm.js +104 -153
  43. package/dist/components/CreateRole/PermissionPoliciesFormRow.esm.js.map +1 -1
  44. package/dist/components/CreateRole/PermissionPoliciesFormTable.esm.js +174 -0
  45. package/dist/components/CreateRole/PermissionPoliciesFormTable.esm.js.map +1 -0
  46. package/dist/components/CreateRole/PluginsDropdown.esm.js +66 -0
  47. package/dist/components/CreateRole/PluginsDropdown.esm.js.map +1 -0
  48. package/dist/components/CreateRole/PluginsDropdownOption.esm.js +52 -0
  49. package/dist/components/CreateRole/PluginsDropdownOption.esm.js.map +1 -0
  50. package/dist/components/CreateRole/ReviewStep.esm.js +5 -5
  51. package/dist/components/CreateRole/ReviewStep.esm.js.map +1 -1
  52. package/dist/components/CreateRole/ReviewStepTable.esm.js +4 -4
  53. package/dist/components/CreateRole/ReviewStepTable.esm.js.map +1 -1
  54. package/dist/components/CreateRole/RoleDetailsForm.esm.js +4 -4
  55. package/dist/components/CreateRole/RoleDetailsForm.esm.js.map +1 -1
  56. package/dist/components/CreateRole/RoleForm.esm.js +18 -17
  57. package/dist/components/CreateRole/RoleForm.esm.js.map +1 -1
  58. package/dist/components/DownloadUserStatistics.esm.js +2 -2
  59. package/dist/components/DownloadUserStatistics.esm.js.map +1 -1
  60. package/dist/components/EditRole.esm.js +3 -3
  61. package/dist/components/EditRole.esm.js.map +1 -1
  62. package/dist/components/RbacPage.esm.js +3 -3
  63. package/dist/components/RbacPage.esm.js.map +1 -1
  64. package/dist/components/RoleOverview/AboutCard.esm.js +9 -9
  65. package/dist/components/RoleOverview/AboutCard.esm.js.map +1 -1
  66. package/dist/components/RoleOverview/MembersCard.esm.js +8 -8
  67. package/dist/components/RoleOverview/MembersCard.esm.js.map +1 -1
  68. package/dist/components/RoleOverview/MembersListColumns.esm.js +2 -2
  69. package/dist/components/RoleOverview/MembersListColumns.esm.js.map +1 -1
  70. package/dist/components/RoleOverview/PermissionsCard.esm.js +8 -8
  71. package/dist/components/RoleOverview/PermissionsCard.esm.js.map +1 -1
  72. package/dist/components/RoleOverview/PermissionsListColumns.esm.js.map +1 -1
  73. package/dist/components/RoleOverview/RoleOverviewPage.esm.js +5 -5
  74. package/dist/components/RoleOverview/RoleOverviewPage.esm.js.map +1 -1
  75. package/dist/components/RolesList/DeleteRole.esm.js +3 -3
  76. package/dist/components/RolesList/DeleteRole.esm.js.map +1 -1
  77. package/dist/components/RolesList/DeleteRoleDialog.esm.js +15 -15
  78. package/dist/components/RolesList/DeleteRoleDialog.esm.js.map +1 -1
  79. package/dist/components/RolesList/RolesList.esm.js +9 -9
  80. package/dist/components/RolesList/RolesList.esm.js.map +1 -1
  81. package/dist/components/RolesList/RolesListColumns.esm.js +5 -5
  82. package/dist/components/RolesList/RolesListColumns.esm.js.map +1 -1
  83. package/dist/components/RolesList/RolesListToolbar.esm.js +5 -5
  84. package/dist/components/RolesList/RolesListToolbar.esm.js.map +1 -1
  85. package/dist/components/Router.esm.js +8 -8
  86. package/dist/components/Router.esm.js.map +1 -1
  87. package/dist/components/SnackbarAlert.esm.js +3 -3
  88. package/dist/components/SnackbarAlert.esm.js.map +1 -1
  89. package/dist/components/ToastContext.esm.js +4 -4
  90. package/dist/components/ToastContext.esm.js.map +1 -1
  91. package/dist/hooks/useConditionRules.esm.js +1 -1
  92. package/dist/hooks/useConditionRules.esm.js.map +1 -1
  93. package/dist/hooks/useMembers.esm.js +4 -4
  94. package/dist/hooks/useMembers.esm.js.map +1 -1
  95. package/dist/hooks/usePermissionPolicies.esm.js +11 -7
  96. package/dist/hooks/usePermissionPolicies.esm.js.map +1 -1
  97. package/dist/hooks/useRole.esm.js +1 -1
  98. package/dist/hooks/useRole.esm.js.map +1 -1
  99. package/dist/hooks/useRoles.esm.js +7 -9
  100. package/dist/hooks/useRoles.esm.js.map +1 -1
  101. package/dist/hooks/useSelectedMembers.esm.js +1 -1
  102. package/dist/hooks/useSelectedMembers.esm.js.map +1 -1
  103. package/dist/utils/conditional-access-utils.esm.js +2 -2
  104. package/dist/utils/conditional-access-utils.esm.js.map +1 -1
  105. package/dist/utils/create-role-utils.esm.js +17 -12
  106. package/dist/utils/create-role-utils.esm.js.map +1 -1
  107. package/dist/utils/rbac-utils.esm.js +22 -11
  108. package/dist/utils/rbac-utils.esm.js.map +1 -1
  109. package/package.json +21 -14
  110. package/dist/components/CreateRole/PoliciesCheckboxGroup.esm.js +0 -76
  111. package/dist/components/CreateRole/PoliciesCheckboxGroup.esm.js.map +0 -1
  112. package/dist/components/CreateRole/const.esm.js +0 -14
  113. package/dist/components/CreateRole/const.esm.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionsForm.esm.js","sources":["../../../src/components/ConditionalAccess/ConditionsForm.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport React from 'react';\n\nimport { PermissionCondition } from '@backstage/plugin-permission-common';\n\nimport WarningIcon from '@mui/icons-material/Warning';\nimport Alert from '@mui/material/Alert';\nimport AlertTitle from '@mui/material/AlertTitle';\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\n\nimport {\n hasAllOfOrAnyOfErrors,\n hasNestedNotErrors,\n hasSimpleConditionOrNotErrors,\n initializeErrors,\n isSimpleRule,\n resetErrors,\n} from '../../utils/conditional-access-utils';\nimport { ConditionsFormRow } from './ConditionsFormRow';\nimport { criterias } from './const';\nimport {\n AccessConditionsErrors,\n Condition,\n ConditionsData,\n RulesData,\n} from './types';\n\ntype ConditionFormProps = {\n conditionRulesData?: RulesData;\n conditionsFormVal?: ConditionsData;\n selPluginResourceType: string;\n onClose: () => void;\n onSave: (conditions?: ConditionsData) => void;\n};\n\nexport const ConditionsForm = ({\n conditionRulesData,\n selPluginResourceType,\n conditionsFormVal,\n onClose,\n onSave,\n}: ConditionFormProps) => {\n const [conditions, setConditions] = React.useState<ConditionsData>(\n conditionsFormVal ?? {\n condition: {\n rule: '',\n resourceType: selPluginResourceType,\n params: {},\n },\n },\n );\n const [criteria, setCriteria] = React.useState<keyof ConditionsData>(\n (Object.keys(conditions)[0] as keyof ConditionsData) ?? criterias.condition,\n );\n const [errors, setErrors] = React.useState<\n AccessConditionsErrors | undefined\n >(initializeErrors(criteria, conditions));\n\n const [removeAllClicked, setRemoveAllClicked] =\n React.useState<boolean>(false);\n\n const flattenConditions = (\n conditionData: Condition[],\n ): PermissionCondition[] => {\n const flatConditions: PermissionCondition[] = [];\n\n const processCondition = (condition: Condition) => {\n if ('rule' in condition) {\n flatConditions.push(condition);\n } else {\n if (condition.allOf) {\n condition.allOf.forEach(processCondition);\n }\n if (condition.anyOf) {\n condition.anyOf.forEach(processCondition);\n }\n if (condition.not) {\n if ('rule' in condition.not) {\n flatConditions.push(condition.not);\n } else {\n processCondition(condition.not);\n }\n }\n }\n };\n conditionData.forEach(processCondition);\n return flatConditions;\n };\n\n const isNoRuleSelected = () => {\n switch (criteria) {\n case criterias.condition:\n return !conditions.condition?.rule;\n case criterias.not: {\n const flatConditions = flattenConditions([\n conditions.not as PermissionCondition,\n ]);\n return flatConditions.some(c => !c.rule);\n }\n case criterias.allOf: {\n const flatConditions = flattenConditions(conditions.allOf || []);\n return flatConditions.some(c => !c.rule);\n }\n case criterias.anyOf: {\n const flatConditions = flattenConditions(conditions.anyOf || []);\n return flatConditions.some(c => !c.rule);\n }\n default:\n return true;\n }\n };\n\n const hasAnyErrors = (): boolean => {\n if (!errors) return false;\n\n if (\n criteria === criterias.condition ||\n (criteria === criterias.not &&\n isSimpleRule(conditions[criteria] as Condition))\n ) {\n return hasSimpleConditionOrNotErrors(errors, criteria);\n }\n\n if (\n criteria === criterias.not &&\n !isSimpleRule(conditions[criteria] as Condition)\n ) {\n return hasNestedNotErrors(errors, conditions, criteria);\n }\n\n if (criteria === criterias.allOf || criteria === criterias.anyOf) {\n return hasAllOfOrAnyOfErrors(errors, criteria);\n }\n\n return false;\n };\n\n const isSaveDisabled = () => {\n if (removeAllClicked) return false;\n\n return (\n hasAnyErrors() ||\n isNoRuleSelected() ||\n Object.is(conditionsFormVal, conditions)\n );\n };\n\n const hasMultiLevelNestedConditions = (): boolean => {\n if (!Array.isArray(conditions[criteria])) {\n return false;\n }\n\n return (conditions[criteria] as Condition[])\n .filter(condition => !('rule' in condition))\n .some((firstLevelNestedCondition: Condition) => {\n const nestedConditionCriteria = Object.keys(\n firstLevelNestedCondition,\n )[0];\n if (\n Array.isArray(\n firstLevelNestedCondition[\n nestedConditionCriteria as keyof Condition\n ],\n )\n ) {\n return (\n firstLevelNestedCondition[\n nestedConditionCriteria as keyof Condition\n ] as Condition[]\n ).some((con: Condition) => !('rule' in con));\n }\n\n return !Object.keys(\n firstLevelNestedCondition[\n nestedConditionCriteria as keyof Condition\n ] as Condition[],\n ).includes('rule');\n });\n };\n\n return (\n <>\n <Box\n sx={{\n padding: theme => theme.spacing(2.5),\n paddingTop: 0,\n flexGrow: 1,\n overflow: 'auto',\n }}\n >\n <ConditionsFormRow\n conditionRulesData={conditionRulesData}\n conditionRow={conditions}\n criteria={criteria}\n selPluginResourceType={selPluginResourceType}\n onRuleChange={newCondition => setConditions(newCondition)}\n setCriteria={setCriteria}\n setErrors={setErrors}\n setRemoveAllClicked={setRemoveAllClicked}\n />\n {hasMultiLevelNestedConditions() && (\n <Alert\n icon={<WarningIcon />}\n style={{ margin: '1.5rem 0 1rem 0' }}\n severity=\"warning\"\n data-testid=\"multi-level-nested-conditions-warning\"\n >\n <AlertTitle data-testid=\"multi-level-nested-conditions-warning-title\">\n Multiple levels of nested conditions are not supported\n </AlertTitle>\n Only one level is displayed. Please use the CLI to view all nested\n conditions.\n </Alert>\n )}\n </Box>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n gap: '15px',\n alignItems: 'baseline',\n borderTop: theme => `2px solid ${theme.palette.border}`,\n padding: theme => theme.spacing(2.5),\n '& button': {\n textTransform: 'none',\n },\n }}\n >\n <Button\n variant=\"contained\"\n color=\"primary\"\n data-testid=\"save-conditions\"\n disabled={isSaveDisabled()}\n onClick={() => {\n if (removeAllClicked) {\n onSave(undefined);\n } else onSave(conditions);\n }}\n >\n Save\n </Button>\n <Button\n variant=\"outlined\"\n color=\"primary\"\n onClick={onClose}\n data-testid=\"cancel-conditions\"\n >\n Cancel\n </Button>\n <Button\n variant=\"text\"\n color=\"primary\"\n disabled={removeAllClicked || isNoRuleSelected()}\n onClick={() => {\n setRemoveAllClicked(true);\n setCriteria(criterias.condition);\n setConditions({\n condition: {\n rule: '',\n resourceType: selPluginResourceType,\n params: {},\n },\n });\n setErrors(resetErrors(criterias.condition));\n }}\n data-testid=\"remove-conditions\"\n >\n Remove all\n </Button>\n </Box>\n </>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConditionsForm.esm.js","sources":["../../../src/components/ConditionalAccess/ConditionsForm.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport React from 'react';\n\nimport { PermissionCondition } from '@backstage/plugin-permission-common';\n\nimport WarningIcon from '@mui/icons-material/Warning';\nimport Alert from '@mui/material/Alert';\nimport AlertTitle from '@mui/material/AlertTitle';\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\n\nimport {\n hasAllOfOrAnyOfErrors,\n hasNestedNotErrors,\n hasSimpleConditionOrNotErrors,\n initializeErrors,\n isSimpleRule,\n resetErrors,\n} from '../../utils/conditional-access-utils';\nimport { ConditionsFormRow } from './ConditionsFormRow';\nimport { criterias } from './const';\nimport {\n AccessConditionsErrors,\n Condition,\n ConditionsData,\n RulesData,\n} from './types';\n\ntype ConditionFormProps = {\n conditionRulesData?: RulesData;\n conditionsFormVal?: ConditionsData;\n selPluginResourceType: string;\n onClose: () => void;\n onSave: (conditions?: ConditionsData) => void;\n};\n\nexport const ConditionsForm = ({\n conditionRulesData,\n selPluginResourceType,\n conditionsFormVal,\n onClose,\n onSave,\n}: ConditionFormProps) => {\n const [conditions, setConditions] = React.useState<ConditionsData>(\n conditionsFormVal ?? {\n condition: {\n rule: '',\n resourceType: selPluginResourceType,\n params: {},\n },\n },\n );\n const [criteria, setCriteria] = React.useState<keyof ConditionsData>(\n (Object.keys(conditions)[0] as keyof ConditionsData) ?? criterias.condition,\n );\n const [errors, setErrors] = React.useState<\n AccessConditionsErrors | undefined\n >(initializeErrors(criteria, conditions));\n\n const [removeAllClicked, setRemoveAllClicked] =\n React.useState<boolean>(false);\n\n const flattenConditions = (\n conditionData: Condition[],\n ): PermissionCondition[] => {\n const flatConditions: PermissionCondition[] = [];\n\n const processCondition = (condition: Condition) => {\n if ('rule' in condition) {\n flatConditions.push(condition);\n } else {\n if (condition.allOf) {\n condition.allOf.forEach(processCondition);\n }\n if (condition.anyOf) {\n condition.anyOf.forEach(processCondition);\n }\n if (condition.not) {\n if ('rule' in condition.not) {\n flatConditions.push(condition.not);\n } else {\n processCondition(condition.not);\n }\n }\n }\n };\n conditionData.forEach(processCondition);\n return flatConditions;\n };\n\n const isNoRuleSelected = () => {\n switch (criteria) {\n case criterias.condition:\n return !conditions.condition?.rule;\n case criterias.not: {\n const flatConditions = flattenConditions([\n conditions.not as PermissionCondition,\n ]);\n return flatConditions.some(c => !c.rule);\n }\n case criterias.allOf: {\n const flatConditions = flattenConditions(conditions.allOf || []);\n return flatConditions.some(c => !c.rule);\n }\n case criterias.anyOf: {\n const flatConditions = flattenConditions(conditions.anyOf || []);\n return flatConditions.some(c => !c.rule);\n }\n default:\n return true;\n }\n };\n\n const hasAnyErrors = (): boolean => {\n if (!errors) return false;\n\n if (\n criteria === criterias.condition ||\n (criteria === criterias.not &&\n isSimpleRule(conditions[criteria] as Condition))\n ) {\n return hasSimpleConditionOrNotErrors(errors, criteria);\n }\n\n if (\n criteria === criterias.not &&\n !isSimpleRule(conditions[criteria] as Condition)\n ) {\n return hasNestedNotErrors(errors, conditions, criteria);\n }\n\n if (criteria === criterias.allOf || criteria === criterias.anyOf) {\n return hasAllOfOrAnyOfErrors(errors, criteria);\n }\n\n return false;\n };\n\n const isSaveDisabled = () => {\n if (removeAllClicked) return false;\n\n return (\n hasAnyErrors() ||\n isNoRuleSelected() ||\n Object.is(conditionsFormVal, conditions)\n );\n };\n\n const hasMultiLevelNestedConditions = (): boolean => {\n if (!Array.isArray(conditions[criteria])) {\n return false;\n }\n\n return (conditions[criteria] as Condition[])\n .filter(condition => !('rule' in condition))\n .some((firstLevelNestedCondition: Condition) => {\n const nestedConditionCriteria = Object.keys(\n firstLevelNestedCondition,\n )[0];\n if (\n Array.isArray(\n firstLevelNestedCondition[\n nestedConditionCriteria as keyof Condition\n ],\n )\n ) {\n return (\n firstLevelNestedCondition[\n nestedConditionCriteria as keyof Condition\n ] as Condition[]\n ).some((con: Condition) => !('rule' in con));\n }\n\n return !Object.keys(\n firstLevelNestedCondition[\n nestedConditionCriteria as keyof Condition\n ] as Condition[],\n ).includes('rule');\n });\n };\n\n return (\n <>\n <Box\n sx={{\n padding: theme => theme.spacing(2.5),\n paddingTop: 0,\n flexGrow: 1,\n overflow: 'auto',\n }}\n >\n <ConditionsFormRow\n conditionRulesData={conditionRulesData}\n conditionRow={conditions}\n criteria={criteria}\n selPluginResourceType={selPluginResourceType}\n onRuleChange={newCondition => setConditions(newCondition)}\n setCriteria={setCriteria}\n setErrors={setErrors}\n setRemoveAllClicked={setRemoveAllClicked}\n />\n {hasMultiLevelNestedConditions() && (\n <Alert\n icon={<WarningIcon />}\n style={{ margin: '1.5rem 0 1rem 0' }}\n severity=\"warning\"\n data-testid=\"multi-level-nested-conditions-warning\"\n >\n <AlertTitle data-testid=\"multi-level-nested-conditions-warning-title\">\n Multiple levels of nested conditions are not supported\n </AlertTitle>\n Only one level is displayed. Please use the CLI to view all nested\n conditions.\n </Alert>\n )}\n </Box>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n gap: '15px',\n alignItems: 'baseline',\n borderTop: theme => `2px solid ${theme.palette.border}`,\n padding: theme => theme.spacing(2.5),\n '& button': {\n textTransform: 'none',\n },\n }}\n >\n <Button\n variant=\"contained\"\n color=\"primary\"\n data-testid=\"save-conditions\"\n disabled={isSaveDisabled()}\n onClick={() => {\n if (removeAllClicked) {\n onSave(undefined);\n } else onSave(conditions);\n }}\n >\n Save\n </Button>\n <Button\n variant=\"outlined\"\n color=\"primary\"\n onClick={onClose}\n data-testid=\"cancel-conditions\"\n >\n Cancel\n </Button>\n <Button\n variant=\"text\"\n color=\"primary\"\n disabled={removeAllClicked || isNoRuleSelected()}\n onClick={() => {\n setRemoveAllClicked(true);\n setCriteria(criterias.condition);\n setConditions({\n condition: {\n rule: '',\n resourceType: selPluginResourceType,\n params: {},\n },\n });\n setErrors(resetErrors(criterias.condition));\n }}\n data-testid=\"remove-conditions\"\n >\n Remove all\n </Button>\n </Box>\n </>\n );\n};\n"],"names":["React"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import AddIcon from '@mui/icons-material/Add';
3
3
  import RemoveIcon from '@mui/icons-material/Remove';
4
4
  import Box from '@mui/material/Box';
@@ -30,9 +30,9 @@ const ConditionsFormRow = ({
30
30
  setRemoveAllClicked
31
31
  }) => {
32
32
  const theme = useTheme();
33
- const [nestedConditionRow, setNestedConditionRow] = React.useState([]);
34
- const [notConditionType, setNotConditionType] = React.useState(NotConditionType.SimpleCondition);
35
- React.useEffect(() => {
33
+ const [nestedConditionRow, setNestedConditionRow] = React__default.useState([]);
34
+ const [notConditionType, setNotConditionType] = React__default.useState(NotConditionType.SimpleCondition);
35
+ React__default.useEffect(() => {
36
36
  const nestedConditions = [];
37
37
  const criteriaTypes = [criterias.allOf, criterias.anyOf, criterias.not];
38
38
  switch (criteria) {
@@ -105,7 +105,7 @@ const ConditionsFormRow = ({
105
105
  const newCondition = nestedConditionMap[val] || { [val]: [defaultRule] };
106
106
  setErrors((prevErrors) => {
107
107
  const updatedErrors = { ...prevErrors };
108
- if (updatedErrors[criteria] !== void 0) {
108
+ if (updatedErrors[criteria] !== undefined) {
109
109
  if (criteria === criterias.not) {
110
110
  updatedErrors[criteria] = val !== criterias.not ? { [val]: [""] } : { [val]: "" };
111
111
  return updatedErrors;
@@ -191,7 +191,7 @@ const ConditionsFormRow = ({
191
191
  );
192
192
  setErrors((prevErrors) => {
193
193
  const updatedErrors = { ...prevErrors };
194
- if (updatedErrors[criteria] !== void 0) {
194
+ if (updatedErrors[criteria] !== undefined) {
195
195
  const criteriaErrors = updatedErrors[criteria];
196
196
  if (criteria === criterias.not && notConditionType === "nested-condition") {
197
197
  criteriaErrors[nestedConditionCriteria].push("");
@@ -217,7 +217,7 @@ const ConditionsFormRow = ({
217
217
  updateRules(updatedNestedConditionRow);
218
218
  setErrors((prevErrors) => {
219
219
  const updatedErrors = { ...prevErrors };
220
- if (updatedErrors[criteria] !== void 0) {
220
+ if (updatedErrors[criteria] !== undefined) {
221
221
  const criteriaErrors = updatedErrors[criteria];
222
222
  const simpleRuleErrors = criteriaErrors.filter(
223
223
  (err) => typeof err === "string"
@@ -259,7 +259,7 @@ const ConditionsFormRow = ({
259
259
  nc,
260
260
  selectedNestedConditionCriteria
261
261
  );
262
- return nestedConditionSimpleRulesCount > 0 && /* @__PURE__ */ React.createElement(
262
+ return nestedConditionSimpleRulesCount > 0 && /* @__PURE__ */ React__default.createElement(
263
263
  Box,
264
264
  {
265
265
  mt: 2,
@@ -275,7 +275,7 @@ const ConditionsFormRow = ({
275
275
  }
276
276
  }
277
277
  },
278
- /* @__PURE__ */ React.createElement("div", { style: { display: "flex", justifyContent: "space-between" } }, /* @__PURE__ */ React.createElement(
278
+ /* @__PURE__ */ React__default.createElement("div", { style: { display: "flex", justifyContent: "space-between" } }, /* @__PURE__ */ React__default.createElement(
279
279
  ToggleButtonGroup,
280
280
  {
281
281
  exclusive: true,
@@ -290,7 +290,7 @@ const ConditionsFormRow = ({
290
290
  height: "100%"
291
291
  }
292
292
  },
293
- nestedConditionButtons.map(({ val, label }) => /* @__PURE__ */ React.createElement(
293
+ nestedConditionButtons.map(({ val, label }) => /* @__PURE__ */ React__default.createElement(
294
294
  CriteriaToggleButton,
295
295
  {
296
296
  key: `nested-criteria-${val}`,
@@ -300,7 +300,7 @@ const ConditionsFormRow = ({
300
300
  theme
301
301
  }
302
302
  ))
303
- ), criteria !== criterias.not && /* @__PURE__ */ React.createElement(
303
+ ), criteria !== criterias.not && /* @__PURE__ */ React__default.createElement(
304
304
  IconButton,
305
305
  {
306
306
  title: "Remove nested condition",
@@ -312,9 +312,9 @@ const ConditionsFormRow = ({
312
312
  disabled: simpleRulesCount === 0 && nestedConditionsCount === 1,
313
313
  onClick: () => handleRemoveNestedCondition(nestedConditionIndex)
314
314
  },
315
- /* @__PURE__ */ React.createElement(RemoveIcon, { "data-testid": "remove-nested-condition" })
315
+ /* @__PURE__ */ React__default.createElement(RemoveIcon, { "data-testid": "remove-nested-condition" })
316
316
  )),
317
- /* @__PURE__ */ React.createElement(Box, null, selectedNestedConditionCriteria !== criterias.not && nc[selectedNestedConditionCriteria].map((c, ncrIndex) => /* @__PURE__ */ React.createElement(
317
+ /* @__PURE__ */ React__default.createElement(Box, null, selectedNestedConditionCriteria !== criterias.not && nc[selectedNestedConditionCriteria].map((c, ncrIndex) => /* @__PURE__ */ React__default.createElement(
318
318
  ComplexConditionRow,
319
319
  {
320
320
  key: `nested-condition-${nestedConditionIndex}-${ncrIndex}`,
@@ -333,7 +333,7 @@ const ConditionsFormRow = ({
333
333
  nestedConditionIndex,
334
334
  activeNestedCriteria: selectedNestedConditionCriteria
335
335
  }
336
- )), selectedNestedConditionCriteria === criterias.not && nc.not.resourceType && /* @__PURE__ */ React.createElement(
336
+ )), selectedNestedConditionCriteria === criterias.not && nc.not.resourceType && /* @__PURE__ */ React__default.createElement(
337
337
  ConditionsFormRowFields,
338
338
  {
339
339
  oldCondition: nc.not ?? getDefaultRule(selPluginResourceType),
@@ -344,7 +344,7 @@ const ConditionsFormRow = ({
344
344
  setErrors,
345
345
  optionDisabled: (ruleOption) => ruleOptionDisabled(
346
346
  ruleOption,
347
- nc.not ? [nc.not] : void 0
347
+ nc.not ? [nc.not] : undefined
348
348
  ),
349
349
  setRemoveAllClicked,
350
350
  nestedConditionRow,
@@ -352,7 +352,7 @@ const ConditionsFormRow = ({
352
352
  nestedConditionIndex,
353
353
  updateRules
354
354
  }
355
- ), selectedNestedConditionCriteria !== criterias.not && /* @__PURE__ */ React.createElement(
355
+ ), selectedNestedConditionCriteria !== criterias.not && /* @__PURE__ */ React__default.createElement(
356
356
  Button,
357
357
  {
358
358
  sx: {
@@ -364,13 +364,13 @@ const ConditionsFormRow = ({
364
364
  selectedNestedConditionCriteria,
365
365
  nestedConditionIndex
366
366
  ),
367
- startIcon: /* @__PURE__ */ React.createElement(AddIcon, { fontSize: "small" })
367
+ startIcon: /* @__PURE__ */ React__default.createElement(AddIcon, { fontSize: "small" })
368
368
  },
369
369
  "Add rule"
370
370
  ))
371
371
  );
372
372
  };
373
- return /* @__PURE__ */ React.createElement(
373
+ return /* @__PURE__ */ React__default.createElement(
374
374
  Box,
375
375
  {
376
376
  sx: {
@@ -392,7 +392,7 @@ const ConditionsFormRow = ({
392
392
  },
393
393
  "data-testid": "conditions-row"
394
394
  },
395
- /* @__PURE__ */ React.createElement(
395
+ /* @__PURE__ */ React__default.createElement(
396
396
  ToggleButtonGroup,
397
397
  {
398
398
  exclusive: true,
@@ -403,7 +403,7 @@ const ConditionsFormRow = ({
403
403
  width: "80%"
404
404
  }
405
405
  },
406
- conditionButtons.map(({ val, label }) => /* @__PURE__ */ React.createElement(
406
+ conditionButtons.map(({ val, label }) => /* @__PURE__ */ React__default.createElement(
407
407
  CriteriaToggleButton,
408
408
  {
409
409
  key: `criteria-${val}`,
@@ -414,7 +414,7 @@ const ConditionsFormRow = ({
414
414
  }
415
415
  ))
416
416
  ),
417
- /* @__PURE__ */ React.createElement(
417
+ /* @__PURE__ */ React__default.createElement(
418
418
  ConditionRule,
419
419
  {
420
420
  conditionRow,
@@ -426,8 +426,8 @@ const ConditionsFormRow = ({
426
426
  setRemoveAllClicked
427
427
  }
428
428
  ),
429
- criteria !== criterias.condition && /* @__PURE__ */ React.createElement(Box, null, criteria !== criterias.not && conditionRow[criteria]?.map(
430
- (c, srIndex) => /* @__PURE__ */ React.createElement(
429
+ criteria !== criterias.condition && /* @__PURE__ */ React__default.createElement(Box, null, criteria !== criterias.not && conditionRow[criteria]?.map(
430
+ (c, srIndex) => /* @__PURE__ */ React__default.createElement(
431
431
  ComplexConditionRow,
432
432
  {
433
433
  key: `${criteria}-simple-condition-${srIndex}`,
@@ -445,7 +445,7 @@ const ConditionsFormRow = ({
445
445
  activeCriteria: criteria
446
446
  }
447
447
  )
448
- ), criteria === criterias.not && /* @__PURE__ */ React.createElement(
448
+ ), criteria === criterias.not && /* @__PURE__ */ React__default.createElement(
449
449
  RadioGroup,
450
450
  {
451
451
  sx: {
@@ -454,18 +454,18 @@ const ConditionsFormRow = ({
454
454
  value: notConditionType,
455
455
  onChange: (_event, value) => handleNotConditionTypeChange(value)
456
456
  },
457
- /* @__PURE__ */ React.createElement(
457
+ /* @__PURE__ */ React__default.createElement(
458
458
  FormControlLabel,
459
459
  {
460
460
  value: NotConditionType.SimpleCondition,
461
- control: /* @__PURE__ */ React.createElement(Radio, { color: "primary" }),
461
+ control: /* @__PURE__ */ React__default.createElement(Radio, { color: "primary" }),
462
462
  label: "Add rule",
463
463
  sx: {
464
464
  marginTop: theme.spacing(1)
465
465
  }
466
466
  }
467
467
  ),
468
- notConditionType === NotConditionType.SimpleCondition && /* @__PURE__ */ React.createElement(
468
+ notConditionType === NotConditionType.SimpleCondition && /* @__PURE__ */ React__default.createElement(
469
469
  ConditionsFormRowFields,
470
470
  {
471
471
  oldCondition: conditionRow.not ?? getDefaultRule(selPluginResourceType),
@@ -476,23 +476,23 @@ const ConditionsFormRow = ({
476
476
  setErrors,
477
477
  optionDisabled: (ruleOption) => ruleOptionDisabled(
478
478
  ruleOption,
479
- conditionRow.not ? [conditionRow.not] : void 0
479
+ conditionRow.not ? [conditionRow.not] : undefined
480
480
  ),
481
481
  setRemoveAllClicked
482
482
  }
483
483
  ),
484
- /* @__PURE__ */ React.createElement(
484
+ /* @__PURE__ */ React__default.createElement(
485
485
  FormControlLabel,
486
486
  {
487
487
  value: NotConditionType.NestedCondition,
488
- control: /* @__PURE__ */ React.createElement(Radio, { color: "primary" }),
489
- label: /* @__PURE__ */ React.createElement(AddNestedConditionButton, null),
488
+ control: /* @__PURE__ */ React__default.createElement(Radio, { color: "primary" }),
489
+ label: /* @__PURE__ */ React__default.createElement(AddNestedConditionButton, null),
490
490
  sx: {
491
491
  marginTop: theme.spacing(1)
492
492
  }
493
493
  }
494
494
  )
495
- ), /* @__PURE__ */ React.createElement(
495
+ ), /* @__PURE__ */ React__default.createElement(
496
496
  ComplexConditionRowButtons,
497
497
  {
498
498
  conditionRow,
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionsFormRow.esm.js","sources":["../../../src/components/ConditionalAccess/ConditionsFormRow.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport React from 'react';\n\nimport { PermissionCondition } from '@backstage/plugin-permission-common';\n\nimport AddIcon from '@mui/icons-material/Add';\nimport RemoveIcon from '@mui/icons-material/Remove';\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport IconButton from '@mui/material/IconButton';\nimport Radio from '@mui/material/Radio';\nimport RadioGroup from '@mui/material/RadioGroup';\nimport { useTheme } from '@mui/material/styles';\nimport ToggleButtonGroup from '@mui/material/ToggleButtonGroup';\n\nimport {\n extractNestedConditions,\n getDefaultRule,\n getNestedConditionSimpleRulesCount,\n getSimpleRulesCount,\n isNestedConditionRule,\n isSimpleRule,\n nestedConditionButtons,\n resetErrors,\n ruleOptionDisabled,\n} from '../../utils/conditional-access-utils';\nimport { AddNestedConditionButton } from './AddNestedConditionButton';\nimport { ComplexConditionRow } from './ComplexConditionRow';\nimport { ComplexConditionRowButtons } from './ComplexConditionRowButtons';\nimport { ConditionRule } from './ConditionRule';\nimport { ConditionsFormRowFields } from './ConditionsFormRowFields';\nimport { conditionButtons, criterias } from './const';\nimport { CriteriaToggleButton } from './CriteriaToggleButton';\nimport {\n ComplexErrors,\n Condition,\n ConditionFormRowProps,\n ConditionsData,\n NestedCriteriaErrors,\n NotConditionType,\n} from './types';\n\nexport const ConditionsFormRow = ({\n conditionRulesData,\n conditionRow,\n selPluginResourceType,\n criteria,\n onRuleChange,\n setCriteria,\n setErrors,\n setRemoveAllClicked,\n}: ConditionFormRowProps) => {\n const theme = useTheme();\n const [nestedConditionRow, setNestedConditionRow] = React.useState<\n Condition[]\n >([]);\n const [notConditionType, setNotConditionType] =\n React.useState<NotConditionType>(NotConditionType.SimpleCondition);\n\n React.useEffect(() => {\n const nestedConditions: Condition[] = [];\n const criteriaTypes = [criterias.allOf, criterias.anyOf, criterias.not];\n switch (criteria) {\n case criterias.allOf:\n extractNestedConditions(\n conditionRow.allOf || [],\n criteriaTypes,\n nestedConditions,\n );\n break;\n case criterias.anyOf:\n extractNestedConditions(\n conditionRow.anyOf || [],\n criteriaTypes,\n nestedConditions,\n );\n break;\n case criterias.not:\n if (\n conditionRow.not &&\n criteriaTypes.includes(\n Object.keys(conditionRow.not)[0] as keyof ConditionsData,\n )\n ) {\n nestedConditions.push(conditionRow.not);\n setNotConditionType(NotConditionType.NestedCondition);\n }\n break;\n default:\n break;\n }\n\n setNestedConditionRow(nestedConditions);\n }, [conditionRow, criteria]);\n\n const handleCriteriaChange = (val: keyof ConditionsData) => {\n setCriteria(val);\n setErrors(resetErrors(val));\n\n const defaultRule = getDefaultRule(selPluginResourceType);\n\n const ruleMap = {\n [criterias.condition]: { condition: defaultRule },\n [criterias.allOf]: { allOf: [defaultRule] },\n [criterias.anyOf]: { anyOf: [defaultRule] },\n [criterias.not]: { not: defaultRule },\n };\n\n if (val === criterias.not) {\n setNotConditionType(NotConditionType.SimpleCondition);\n }\n\n const ruleChange = ruleMap[val];\n if (ruleChange) {\n onRuleChange(ruleChange);\n }\n };\n\n const updateRules = (updatedNestedConditionRow: Condition[] | Condition) => {\n const existingSimpleCondition =\n criteria !== criterias.not\n ? (conditionRow[criteria as keyof Condition] as Condition[])?.filter(\n con => isSimpleRule(con),\n ) || []\n : [];\n\n const newCondition: Condition[] = Array.isArray(updatedNestedConditionRow)\n ? [...existingSimpleCondition, ...updatedNestedConditionRow]\n : [...existingSimpleCondition, updatedNestedConditionRow];\n\n if (criteria === criterias.anyOf || criteria === criterias.allOf) {\n onRuleChange({\n [criteria]: newCondition,\n });\n } else if (\n criteria === criterias.not &&\n !Array.isArray(updatedNestedConditionRow)\n ) {\n onRuleChange({\n not: updatedNestedConditionRow,\n });\n }\n };\n\n const handleNestedConditionCriteriaChange = (\n val: string,\n nestedConditionIndex: number,\n ) => {\n const defaultRule = getDefaultRule(selPluginResourceType);\n\n const nestedConditionMap = {\n [criterias.not]: { [val]: defaultRule },\n [criterias.allOf]: { [val]: [defaultRule] },\n [criterias.anyOf]: { [val]: [defaultRule] },\n [criterias.condition]: { [val]: [defaultRule] },\n };\n\n const newCondition = nestedConditionMap[val] || { [val]: [defaultRule] };\n\n setErrors(prevErrors => {\n const updatedErrors = { ...prevErrors };\n\n if (updatedErrors[criteria] !== undefined) {\n if (criteria === criterias.not) {\n (updatedErrors[criteria] as ComplexErrors) =\n val !== criterias.not ? { [val]: [''] } : { [val]: '' };\n return updatedErrors;\n }\n const criteriaErrors = updatedErrors[criteria];\n const simpleRuleErrors = (criteriaErrors as ComplexErrors[]).filter(\n (err: ComplexErrors) => typeof err === 'string',\n );\n const nestedConditionErrors = (\n criteriaErrors as ComplexErrors[]\n ).filter((err: ComplexErrors) => typeof err !== 'string');\n nestedConditionErrors[nestedConditionIndex] =\n val !== criterias.not ? { [val]: [''] } : { [val]: '' };\n updatedErrors[criteria] = [\n ...simpleRuleErrors,\n ...nestedConditionErrors,\n ];\n }\n\n return updatedErrors;\n });\n\n if (criteria === criterias.not) {\n updateRules(newCondition);\n } else {\n const updatedNestedConditionRow = nestedConditionRow.map((c, index) => {\n if (index === nestedConditionIndex) {\n return newCondition;\n }\n return c;\n });\n updateRules(updatedNestedConditionRow);\n }\n };\n\n const handleAddNestedCondition = (currentCriteria: string) => {\n const newNestedCondition = {\n [criterias.allOf]: [getDefaultRule(selPluginResourceType)],\n };\n const updatedNestedConditionRow = [\n ...nestedConditionRow,\n newNestedCondition,\n ];\n updateRules(\n currentCriteria === criterias.not\n ? newNestedCondition\n : updatedNestedConditionRow,\n );\n\n setErrors(prevErrors => {\n const updatedErrors = { ...prevErrors };\n if (updatedErrors[currentCriteria]) {\n const criteriaErrors = updatedErrors[\n currentCriteria\n ] as ComplexErrors[];\n if (Array.isArray(criteriaErrors)) {\n criteriaErrors.push({ [criterias.allOf]: [''] });\n } else {\n (updatedErrors[currentCriteria] as ComplexErrors) = {\n [criterias.allOf]: [''],\n };\n }\n }\n return updatedErrors;\n });\n };\n\n const handleNotConditionTypeChange = (val: NotConditionType) => {\n setNotConditionType(val);\n setErrors(resetErrors(criteria, val));\n if (val === 'nested-condition') {\n handleAddNestedCondition(criterias.not);\n } else {\n onRuleChange({\n not: getDefaultRule(selPluginResourceType),\n });\n }\n };\n\n const handleAddRuleInNestedCondition = (\n nestedConditionCriteria: string,\n nestedConditionIndex: number,\n ) => {\n const updatedNestedConditionRow: Condition[] = [];\n\n nestedConditionRow.forEach((c, index) => {\n if (index === nestedConditionIndex) {\n updatedNestedConditionRow.push({\n [nestedConditionCriteria as keyof Condition]: [\n ...((c[\n nestedConditionCriteria as keyof Condition\n ] as PermissionCondition[]) || []),\n getDefaultRule(selPluginResourceType),\n ],\n });\n } else {\n updatedNestedConditionRow.push(c);\n }\n });\n updateRules(\n criteria === criterias.not\n ? updatedNestedConditionRow[0]\n : updatedNestedConditionRow,\n );\n\n setErrors(prevErrors => {\n const updatedErrors = { ...prevErrors };\n if (updatedErrors[criteria] !== undefined) {\n const criteriaErrors = updatedErrors[criteria];\n if (\n criteria === criterias.not &&\n notConditionType === 'nested-condition'\n ) {\n (\n (criteriaErrors as NestedCriteriaErrors)[\n nestedConditionCriteria\n ] as string[]\n ).push('');\n return updatedErrors;\n }\n const simpleRuleErrors = (criteriaErrors as ComplexErrors[]).filter(\n (err: ComplexErrors) => typeof err === 'string',\n );\n const nestedConditionErrors = (\n criteriaErrors as ComplexErrors[]\n ).filter((err: ComplexErrors) => typeof err !== 'string');\n\n (\n ((\n nestedConditionErrors[nestedConditionIndex] as NestedCriteriaErrors\n )[nestedConditionCriteria] as string[]) || []\n ).push('');\n updatedErrors[criteria] = [\n ...simpleRuleErrors,\n ...nestedConditionErrors,\n ];\n }\n return updatedErrors;\n });\n };\n\n const handleRemoveNestedCondition = (nestedConditionIndex: number) => {\n const updatedNestedConditionRow = nestedConditionRow.filter(\n (_, index) => index !== nestedConditionIndex,\n );\n\n updateRules(updatedNestedConditionRow);\n setErrors(prevErrors => {\n const updatedErrors = { ...prevErrors };\n\n if (updatedErrors[criteria] !== undefined) {\n const criteriaErrors = updatedErrors[criteria] as ComplexErrors[];\n const simpleRuleErrors = criteriaErrors.filter(\n (err: ComplexErrors) => typeof err === 'string',\n );\n const nestedConditionErrors = criteriaErrors.filter(\n (err: ComplexErrors) => typeof err !== 'string',\n );\n nestedConditionErrors.splice(nestedConditionIndex, 1);\n\n updatedErrors[criteria] = [\n ...simpleRuleErrors,\n ...nestedConditionErrors,\n ];\n }\n\n return updatedErrors;\n });\n };\n\n const updateErrors = (_index: number) => {\n setErrors(prevErrors => {\n const updatedErrors = { ...prevErrors };\n\n if (!Array.isArray(updatedErrors[criteria])) {\n updatedErrors[criteria] = [];\n }\n\n const firstNestedConditionErrorIndex =\n (updatedErrors[criteria] as ComplexErrors[]).findIndex(\n e => typeof e !== 'string',\n ) || 0;\n\n (updatedErrors[criteria] as ComplexErrors[]).splice(\n firstNestedConditionErrorIndex,\n 0,\n '',\n );\n\n return updatedErrors;\n });\n };\n\n const renderNestedConditionRow = (\n nc: Condition,\n nestedConditionIndex: number,\n ) => {\n const selectedNestedConditionCriteria = Object.keys(nc)[0];\n const simpleRulesCount = getSimpleRulesCount(conditionRow, criteria);\n const nestedConditionsCount = nestedConditionRow.length;\n const nestedConditionSimpleRulesCount = getNestedConditionSimpleRulesCount(\n nc,\n selectedNestedConditionCriteria,\n );\n return (\n nestedConditionSimpleRulesCount > 0 && (\n <Box\n mt={2}\n key={`nestedCondition-${nestedConditionIndex}`}\n sx={{\n padding: '20px',\n marginLeft: theme.spacing(3),\n border: `1px solid ${theme.palette.border}`,\n borderRadius: '4px',\n backgroundColor: theme.palette.background.default,\n '& input': {\n backgroundColor: `${theme.palette.background.paper}!important`,\n },\n }}\n >\n <div style={{ display: 'flex', justifyContent: 'space-between' }}>\n <ToggleButtonGroup\n exclusive\n value={selectedNestedConditionCriteria}\n onChange={(_event, newNestedCriteria) =>\n handleNestedConditionCriteriaChange(\n newNestedCriteria,\n nestedConditionIndex,\n )\n }\n sx={{\n backgroundColor: theme.palette.background.paper,\n width: '60%',\n height: '100%',\n }}\n >\n {nestedConditionButtons.map(({ val, label }) => (\n <CriteriaToggleButton\n key={`nested-criteria-${val}`}\n val={val}\n label={label}\n selectedCriteria={selectedNestedConditionCriteria}\n theme={theme}\n />\n ))}\n </ToggleButtonGroup>\n {criteria !== criterias.not && (\n <IconButton\n title=\"Remove nested condition\"\n sx={{\n color: theme.palette.grey[500],\n flexGrow: 0,\n alignSelf: 'baseline',\n }}\n disabled={simpleRulesCount === 0 && nestedConditionsCount === 1} // 0 simple rules and this is the only 1 nested condition\n onClick={() =>\n handleRemoveNestedCondition(nestedConditionIndex)\n }\n >\n <RemoveIcon data-testid=\"remove-nested-condition\" />\n </IconButton>\n )}\n </div>\n <Box>\n {selectedNestedConditionCriteria !== criterias.not &&\n (\n nc[\n selectedNestedConditionCriteria as keyof Condition\n ] as PermissionCondition[]\n ).map((c, ncrIndex) => (\n <ComplexConditionRow\n key={`nested-condition-${nestedConditionIndex}-${ncrIndex}`}\n conditionRow={conditionRow}\n nestedConditionRow={nestedConditionRow}\n criteria={criteria}\n onRuleChange={onRuleChange}\n updateRules={updateRules}\n setErrors={setErrors}\n setRemoveAllClicked={setRemoveAllClicked}\n conditionRulesData={conditionRulesData}\n notConditionType={notConditionType}\n currentCondition={c}\n ruleIndex={ncrIndex}\n isNestedCondition\n nestedConditionIndex={nestedConditionIndex}\n activeNestedCriteria={\n selectedNestedConditionCriteria as 'allOf' | 'anyOf'\n }\n />\n ))}\n {selectedNestedConditionCriteria === criterias.not &&\n ((nc as ConditionsData).not as PermissionCondition)\n .resourceType && (\n <ConditionsFormRowFields\n oldCondition={\n (nc as ConditionsData).not ??\n getDefaultRule(selPluginResourceType)\n }\n onRuleChange={onRuleChange}\n conditionRow={conditionRow}\n criteria={criteria}\n conditionRulesData={conditionRulesData}\n setErrors={setErrors}\n optionDisabled={ruleOption =>\n ruleOptionDisabled(\n ruleOption,\n (nc as ConditionsData).not\n ? [(nc as ConditionsData).not as PermissionCondition]\n : undefined,\n )\n }\n setRemoveAllClicked={setRemoveAllClicked}\n nestedConditionRow={nestedConditionRow}\n nestedConditionCriteria={selectedNestedConditionCriteria}\n nestedConditionIndex={nestedConditionIndex}\n updateRules={updateRules}\n />\n )}\n {selectedNestedConditionCriteria !== criterias.not && (\n <Button\n sx={{\n mt: 1,\n color: theme.palette.primary.light,\n }}\n size=\"small\"\n onClick={() =>\n handleAddRuleInNestedCondition(\n selectedNestedConditionCriteria,\n nestedConditionIndex,\n )\n }\n startIcon={<AddIcon fontSize=\"small\" />}\n >\n Add rule\n </Button>\n )}\n </Box>\n </Box>\n )\n );\n };\n\n return (\n <Box\n sx={{\n padding: '20px',\n border: `1px solid ${theme.palette.border}`,\n borderRadius: '4px',\n backgroundColor: theme.palette.background.default,\n '& input': {\n color: `${theme.palette.textContrast}!important`,\n '&:-internal-autofill-selected, &:-webkit-autofill, &:-webkit-autofill:hover, &:-webkit-autofill:focus, &:-webkit-autofill:active':\n {\n WebkitBoxShadow: `0 0 0px 1000px ${theme.palette.background.paper} inset`,\n WebkitTextFillColor: `${theme.palette.textContrast}!important`,\n caretColor: `${theme.palette.textContrast}!important`,\n },\n },\n '& button': {\n textTransform: 'none',\n },\n }}\n data-testid=\"conditions-row\"\n >\n <ToggleButtonGroup\n exclusive\n value={criteria}\n onChange={(_event, newCriteria) => handleCriteriaChange(newCriteria)}\n sx={{\n backgroundColor: theme.palette.background.paper,\n width: '80%',\n }}\n >\n {conditionButtons.map(({ val, label }) => (\n <CriteriaToggleButton\n key={`criteria-${val}`}\n val={val}\n label={label}\n selectedCriteria={criteria}\n theme={theme}\n />\n ))}\n </ToggleButtonGroup>\n <ConditionRule\n conditionRow={conditionRow}\n selPluginResourceType={selPluginResourceType}\n onRuleChange={onRuleChange}\n criteria={criteria}\n conditionRulesData={conditionRulesData}\n setErrors={setErrors}\n setRemoveAllClicked={setRemoveAllClicked}\n />\n {criteria !== criterias.condition && (\n <Box>\n {criteria !== criterias.not &&\n (conditionRow[criteria] as PermissionCondition[])?.map(\n (c, srIndex) => (\n <ComplexConditionRow\n key={`${criteria}-simple-condition-${srIndex}`}\n conditionRow={conditionRow}\n nestedConditionRow={nestedConditionRow}\n criteria={criteria}\n onRuleChange={onRuleChange}\n updateRules={updateRules}\n setErrors={setErrors}\n setRemoveAllClicked={setRemoveAllClicked}\n conditionRulesData={conditionRulesData}\n notConditionType={notConditionType}\n currentCondition={c}\n ruleIndex={srIndex}\n activeCriteria={criteria as 'allOf' | 'anyOf'}\n />\n ),\n )}\n {criteria === criterias.not && (\n <RadioGroup\n sx={{\n margin: theme.spacing(1),\n }}\n value={notConditionType}\n onChange={(_event, value) =>\n handleNotConditionTypeChange(value as NotConditionType)\n }\n >\n <FormControlLabel\n value={NotConditionType.SimpleCondition}\n control={<Radio color=\"primary\" />}\n label=\"Add rule\"\n sx={{\n marginTop: theme.spacing(1),\n }}\n />\n {notConditionType === NotConditionType.SimpleCondition && (\n <ConditionsFormRowFields\n oldCondition={\n conditionRow.not ?? getDefaultRule(selPluginResourceType)\n }\n onRuleChange={onRuleChange}\n conditionRow={conditionRow}\n criteria={criteria}\n conditionRulesData={conditionRulesData}\n setErrors={setErrors}\n optionDisabled={ruleOption =>\n ruleOptionDisabled(\n ruleOption,\n conditionRow.not\n ? [conditionRow.not as PermissionCondition]\n : undefined,\n )\n }\n setRemoveAllClicked={setRemoveAllClicked}\n />\n )}\n <FormControlLabel\n value={NotConditionType.NestedCondition}\n control={<Radio color=\"primary\" />}\n label={<AddNestedConditionButton />}\n sx={{\n marginTop: theme.spacing(1),\n }}\n />\n </RadioGroup>\n )}\n <ComplexConditionRowButtons\n conditionRow={conditionRow}\n onRuleChange={onRuleChange}\n criteria={criteria}\n selPluginResourceType={selPluginResourceType}\n updateErrors={updateErrors}\n isNestedConditionRule={isNestedConditionRule}\n handleAddNestedCondition={handleAddNestedCondition}\n />\n {nestedConditionRow?.length > 0 &&\n nestedConditionRow.map((nc, nestedConditionIndex) =>\n renderNestedConditionRow(nc, nestedConditionIndex),\n )}\n </Box>\n )}\n </Box>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConditionsFormRow.esm.js","sources":["../../../src/components/ConditionalAccess/ConditionsFormRow.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport React from 'react';\n\nimport { PermissionCondition } from '@backstage/plugin-permission-common';\n\nimport AddIcon from '@mui/icons-material/Add';\nimport RemoveIcon from '@mui/icons-material/Remove';\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport IconButton from '@mui/material/IconButton';\nimport Radio from '@mui/material/Radio';\nimport RadioGroup from '@mui/material/RadioGroup';\nimport { useTheme } from '@mui/material/styles';\nimport ToggleButtonGroup from '@mui/material/ToggleButtonGroup';\n\nimport {\n extractNestedConditions,\n getDefaultRule,\n getNestedConditionSimpleRulesCount,\n getSimpleRulesCount,\n isNestedConditionRule,\n isSimpleRule,\n nestedConditionButtons,\n resetErrors,\n ruleOptionDisabled,\n} from '../../utils/conditional-access-utils';\nimport { AddNestedConditionButton } from './AddNestedConditionButton';\nimport { ComplexConditionRow } from './ComplexConditionRow';\nimport { ComplexConditionRowButtons } from './ComplexConditionRowButtons';\nimport { ConditionRule } from './ConditionRule';\nimport { ConditionsFormRowFields } from './ConditionsFormRowFields';\nimport { conditionButtons, criterias } from './const';\nimport { CriteriaToggleButton } from './CriteriaToggleButton';\nimport {\n ComplexErrors,\n Condition,\n ConditionFormRowProps,\n ConditionsData,\n NestedCriteriaErrors,\n NotConditionType,\n} from './types';\n\nexport const ConditionsFormRow = ({\n conditionRulesData,\n conditionRow,\n selPluginResourceType,\n criteria,\n onRuleChange,\n setCriteria,\n setErrors,\n setRemoveAllClicked,\n}: ConditionFormRowProps) => {\n const theme = useTheme();\n const [nestedConditionRow, setNestedConditionRow] = React.useState<\n Condition[]\n >([]);\n const [notConditionType, setNotConditionType] =\n React.useState<NotConditionType>(NotConditionType.SimpleCondition);\n\n React.useEffect(() => {\n const nestedConditions: Condition[] = [];\n const criteriaTypes = [criterias.allOf, criterias.anyOf, criterias.not];\n switch (criteria) {\n case criterias.allOf:\n extractNestedConditions(\n conditionRow.allOf || [],\n criteriaTypes,\n nestedConditions,\n );\n break;\n case criterias.anyOf:\n extractNestedConditions(\n conditionRow.anyOf || [],\n criteriaTypes,\n nestedConditions,\n );\n break;\n case criterias.not:\n if (\n conditionRow.not &&\n criteriaTypes.includes(\n Object.keys(conditionRow.not)[0] as keyof ConditionsData,\n )\n ) {\n nestedConditions.push(conditionRow.not);\n setNotConditionType(NotConditionType.NestedCondition);\n }\n break;\n default:\n break;\n }\n\n setNestedConditionRow(nestedConditions);\n }, [conditionRow, criteria]);\n\n const handleCriteriaChange = (val: keyof ConditionsData) => {\n setCriteria(val);\n setErrors(resetErrors(val));\n\n const defaultRule = getDefaultRule(selPluginResourceType);\n\n const ruleMap = {\n [criterias.condition]: { condition: defaultRule },\n [criterias.allOf]: { allOf: [defaultRule] },\n [criterias.anyOf]: { anyOf: [defaultRule] },\n [criterias.not]: { not: defaultRule },\n };\n\n if (val === criterias.not) {\n setNotConditionType(NotConditionType.SimpleCondition);\n }\n\n const ruleChange = ruleMap[val];\n if (ruleChange) {\n onRuleChange(ruleChange);\n }\n };\n\n const updateRules = (updatedNestedConditionRow: Condition[] | Condition) => {\n const existingSimpleCondition =\n criteria !== criterias.not\n ? (conditionRow[criteria as keyof Condition] as Condition[])?.filter(\n con => isSimpleRule(con),\n ) || []\n : [];\n\n const newCondition: Condition[] = Array.isArray(updatedNestedConditionRow)\n ? [...existingSimpleCondition, ...updatedNestedConditionRow]\n : [...existingSimpleCondition, updatedNestedConditionRow];\n\n if (criteria === criterias.anyOf || criteria === criterias.allOf) {\n onRuleChange({\n [criteria]: newCondition,\n });\n } else if (\n criteria === criterias.not &&\n !Array.isArray(updatedNestedConditionRow)\n ) {\n onRuleChange({\n not: updatedNestedConditionRow,\n });\n }\n };\n\n const handleNestedConditionCriteriaChange = (\n val: string,\n nestedConditionIndex: number,\n ) => {\n const defaultRule = getDefaultRule(selPluginResourceType);\n\n const nestedConditionMap = {\n [criterias.not]: { [val]: defaultRule },\n [criterias.allOf]: { [val]: [defaultRule] },\n [criterias.anyOf]: { [val]: [defaultRule] },\n [criterias.condition]: { [val]: [defaultRule] },\n };\n\n const newCondition = nestedConditionMap[val] || { [val]: [defaultRule] };\n\n setErrors(prevErrors => {\n const updatedErrors = { ...prevErrors };\n\n if (updatedErrors[criteria] !== undefined) {\n if (criteria === criterias.not) {\n (updatedErrors[criteria] as ComplexErrors) =\n val !== criterias.not ? { [val]: [''] } : { [val]: '' };\n return updatedErrors;\n }\n const criteriaErrors = updatedErrors[criteria];\n const simpleRuleErrors = (criteriaErrors as ComplexErrors[]).filter(\n (err: ComplexErrors) => typeof err === 'string',\n );\n const nestedConditionErrors = (\n criteriaErrors as ComplexErrors[]\n ).filter((err: ComplexErrors) => typeof err !== 'string');\n nestedConditionErrors[nestedConditionIndex] =\n val !== criterias.not ? { [val]: [''] } : { [val]: '' };\n updatedErrors[criteria] = [\n ...simpleRuleErrors,\n ...nestedConditionErrors,\n ];\n }\n\n return updatedErrors;\n });\n\n if (criteria === criterias.not) {\n updateRules(newCondition);\n } else {\n const updatedNestedConditionRow = nestedConditionRow.map((c, index) => {\n if (index === nestedConditionIndex) {\n return newCondition;\n }\n return c;\n });\n updateRules(updatedNestedConditionRow);\n }\n };\n\n const handleAddNestedCondition = (currentCriteria: string) => {\n const newNestedCondition = {\n [criterias.allOf]: [getDefaultRule(selPluginResourceType)],\n };\n const updatedNestedConditionRow = [\n ...nestedConditionRow,\n newNestedCondition,\n ];\n updateRules(\n currentCriteria === criterias.not\n ? newNestedCondition\n : updatedNestedConditionRow,\n );\n\n setErrors(prevErrors => {\n const updatedErrors = { ...prevErrors };\n if (updatedErrors[currentCriteria]) {\n const criteriaErrors = updatedErrors[\n currentCriteria\n ] as ComplexErrors[];\n if (Array.isArray(criteriaErrors)) {\n criteriaErrors.push({ [criterias.allOf]: [''] });\n } else {\n (updatedErrors[currentCriteria] as ComplexErrors) = {\n [criterias.allOf]: [''],\n };\n }\n }\n return updatedErrors;\n });\n };\n\n const handleNotConditionTypeChange = (val: NotConditionType) => {\n setNotConditionType(val);\n setErrors(resetErrors(criteria, val));\n if (val === 'nested-condition') {\n handleAddNestedCondition(criterias.not);\n } else {\n onRuleChange({\n not: getDefaultRule(selPluginResourceType),\n });\n }\n };\n\n const handleAddRuleInNestedCondition = (\n nestedConditionCriteria: string,\n nestedConditionIndex: number,\n ) => {\n const updatedNestedConditionRow: Condition[] = [];\n\n nestedConditionRow.forEach((c, index) => {\n if (index === nestedConditionIndex) {\n updatedNestedConditionRow.push({\n [nestedConditionCriteria as keyof Condition]: [\n ...((c[\n nestedConditionCriteria as keyof Condition\n ] as PermissionCondition[]) || []),\n getDefaultRule(selPluginResourceType),\n ],\n });\n } else {\n updatedNestedConditionRow.push(c);\n }\n });\n updateRules(\n criteria === criterias.not\n ? updatedNestedConditionRow[0]\n : updatedNestedConditionRow,\n );\n\n setErrors(prevErrors => {\n const updatedErrors = { ...prevErrors };\n if (updatedErrors[criteria] !== undefined) {\n const criteriaErrors = updatedErrors[criteria];\n if (\n criteria === criterias.not &&\n notConditionType === 'nested-condition'\n ) {\n (\n (criteriaErrors as NestedCriteriaErrors)[\n nestedConditionCriteria\n ] as string[]\n ).push('');\n return updatedErrors;\n }\n const simpleRuleErrors = (criteriaErrors as ComplexErrors[]).filter(\n (err: ComplexErrors) => typeof err === 'string',\n );\n const nestedConditionErrors = (\n criteriaErrors as ComplexErrors[]\n ).filter((err: ComplexErrors) => typeof err !== 'string');\n\n (\n ((\n nestedConditionErrors[nestedConditionIndex] as NestedCriteriaErrors\n )[nestedConditionCriteria] as string[]) || []\n ).push('');\n updatedErrors[criteria] = [\n ...simpleRuleErrors,\n ...nestedConditionErrors,\n ];\n }\n return updatedErrors;\n });\n };\n\n const handleRemoveNestedCondition = (nestedConditionIndex: number) => {\n const updatedNestedConditionRow = nestedConditionRow.filter(\n (_, index) => index !== nestedConditionIndex,\n );\n\n updateRules(updatedNestedConditionRow);\n setErrors(prevErrors => {\n const updatedErrors = { ...prevErrors };\n\n if (updatedErrors[criteria] !== undefined) {\n const criteriaErrors = updatedErrors[criteria] as ComplexErrors[];\n const simpleRuleErrors = criteriaErrors.filter(\n (err: ComplexErrors) => typeof err === 'string',\n );\n const nestedConditionErrors = criteriaErrors.filter(\n (err: ComplexErrors) => typeof err !== 'string',\n );\n nestedConditionErrors.splice(nestedConditionIndex, 1);\n\n updatedErrors[criteria] = [\n ...simpleRuleErrors,\n ...nestedConditionErrors,\n ];\n }\n\n return updatedErrors;\n });\n };\n\n const updateErrors = (_index: number) => {\n setErrors(prevErrors => {\n const updatedErrors = { ...prevErrors };\n\n if (!Array.isArray(updatedErrors[criteria])) {\n updatedErrors[criteria] = [];\n }\n\n const firstNestedConditionErrorIndex =\n (updatedErrors[criteria] as ComplexErrors[]).findIndex(\n e => typeof e !== 'string',\n ) || 0;\n\n (updatedErrors[criteria] as ComplexErrors[]).splice(\n firstNestedConditionErrorIndex,\n 0,\n '',\n );\n\n return updatedErrors;\n });\n };\n\n const renderNestedConditionRow = (\n nc: Condition,\n nestedConditionIndex: number,\n ) => {\n const selectedNestedConditionCriteria = Object.keys(nc)[0];\n const simpleRulesCount = getSimpleRulesCount(conditionRow, criteria);\n const nestedConditionsCount = nestedConditionRow.length;\n const nestedConditionSimpleRulesCount = getNestedConditionSimpleRulesCount(\n nc,\n selectedNestedConditionCriteria,\n );\n return (\n nestedConditionSimpleRulesCount > 0 && (\n <Box\n mt={2}\n key={`nestedCondition-${nestedConditionIndex}`}\n sx={{\n padding: '20px',\n marginLeft: theme.spacing(3),\n border: `1px solid ${theme.palette.border}`,\n borderRadius: '4px',\n backgroundColor: theme.palette.background.default,\n '& input': {\n backgroundColor: `${theme.palette.background.paper}!important`,\n },\n }}\n >\n <div style={{ display: 'flex', justifyContent: 'space-between' }}>\n <ToggleButtonGroup\n exclusive\n value={selectedNestedConditionCriteria}\n onChange={(_event, newNestedCriteria) =>\n handleNestedConditionCriteriaChange(\n newNestedCriteria,\n nestedConditionIndex,\n )\n }\n sx={{\n backgroundColor: theme.palette.background.paper,\n width: '60%',\n height: '100%',\n }}\n >\n {nestedConditionButtons.map(({ val, label }) => (\n <CriteriaToggleButton\n key={`nested-criteria-${val}`}\n val={val}\n label={label}\n selectedCriteria={selectedNestedConditionCriteria}\n theme={theme}\n />\n ))}\n </ToggleButtonGroup>\n {criteria !== criterias.not && (\n <IconButton\n title=\"Remove nested condition\"\n sx={{\n color: theme.palette.grey[500],\n flexGrow: 0,\n alignSelf: 'baseline',\n }}\n disabled={simpleRulesCount === 0 && nestedConditionsCount === 1} // 0 simple rules and this is the only 1 nested condition\n onClick={() =>\n handleRemoveNestedCondition(nestedConditionIndex)\n }\n >\n <RemoveIcon data-testid=\"remove-nested-condition\" />\n </IconButton>\n )}\n </div>\n <Box>\n {selectedNestedConditionCriteria !== criterias.not &&\n (\n nc[\n selectedNestedConditionCriteria as keyof Condition\n ] as PermissionCondition[]\n ).map((c, ncrIndex) => (\n <ComplexConditionRow\n key={`nested-condition-${nestedConditionIndex}-${ncrIndex}`}\n conditionRow={conditionRow}\n nestedConditionRow={nestedConditionRow}\n criteria={criteria}\n onRuleChange={onRuleChange}\n updateRules={updateRules}\n setErrors={setErrors}\n setRemoveAllClicked={setRemoveAllClicked}\n conditionRulesData={conditionRulesData}\n notConditionType={notConditionType}\n currentCondition={c}\n ruleIndex={ncrIndex}\n isNestedCondition\n nestedConditionIndex={nestedConditionIndex}\n activeNestedCriteria={\n selectedNestedConditionCriteria as 'allOf' | 'anyOf'\n }\n />\n ))}\n {selectedNestedConditionCriteria === criterias.not &&\n ((nc as ConditionsData).not as PermissionCondition)\n .resourceType && (\n <ConditionsFormRowFields\n oldCondition={\n (nc as ConditionsData).not ??\n getDefaultRule(selPluginResourceType)\n }\n onRuleChange={onRuleChange}\n conditionRow={conditionRow}\n criteria={criteria}\n conditionRulesData={conditionRulesData}\n setErrors={setErrors}\n optionDisabled={ruleOption =>\n ruleOptionDisabled(\n ruleOption,\n (nc as ConditionsData).not\n ? [(nc as ConditionsData).not as PermissionCondition]\n : undefined,\n )\n }\n setRemoveAllClicked={setRemoveAllClicked}\n nestedConditionRow={nestedConditionRow}\n nestedConditionCriteria={selectedNestedConditionCriteria}\n nestedConditionIndex={nestedConditionIndex}\n updateRules={updateRules}\n />\n )}\n {selectedNestedConditionCriteria !== criterias.not && (\n <Button\n sx={{\n mt: 1,\n color: theme.palette.primary.light,\n }}\n size=\"small\"\n onClick={() =>\n handleAddRuleInNestedCondition(\n selectedNestedConditionCriteria,\n nestedConditionIndex,\n )\n }\n startIcon={<AddIcon fontSize=\"small\" />}\n >\n Add rule\n </Button>\n )}\n </Box>\n </Box>\n )\n );\n };\n\n return (\n <Box\n sx={{\n padding: '20px',\n border: `1px solid ${theme.palette.border}`,\n borderRadius: '4px',\n backgroundColor: theme.palette.background.default,\n '& input': {\n color: `${theme.palette.textContrast}!important`,\n '&:-internal-autofill-selected, &:-webkit-autofill, &:-webkit-autofill:hover, &:-webkit-autofill:focus, &:-webkit-autofill:active':\n {\n WebkitBoxShadow: `0 0 0px 1000px ${theme.palette.background.paper} inset`,\n WebkitTextFillColor: `${theme.palette.textContrast}!important`,\n caretColor: `${theme.palette.textContrast}!important`,\n },\n },\n '& button': {\n textTransform: 'none',\n },\n }}\n data-testid=\"conditions-row\"\n >\n <ToggleButtonGroup\n exclusive\n value={criteria}\n onChange={(_event, newCriteria) => handleCriteriaChange(newCriteria)}\n sx={{\n backgroundColor: theme.palette.background.paper,\n width: '80%',\n }}\n >\n {conditionButtons.map(({ val, label }) => (\n <CriteriaToggleButton\n key={`criteria-${val}`}\n val={val}\n label={label}\n selectedCriteria={criteria}\n theme={theme}\n />\n ))}\n </ToggleButtonGroup>\n <ConditionRule\n conditionRow={conditionRow}\n selPluginResourceType={selPluginResourceType}\n onRuleChange={onRuleChange}\n criteria={criteria}\n conditionRulesData={conditionRulesData}\n setErrors={setErrors}\n setRemoveAllClicked={setRemoveAllClicked}\n />\n {criteria !== criterias.condition && (\n <Box>\n {criteria !== criterias.not &&\n (conditionRow[criteria] as PermissionCondition[])?.map(\n (c, srIndex) => (\n <ComplexConditionRow\n key={`${criteria}-simple-condition-${srIndex}`}\n conditionRow={conditionRow}\n nestedConditionRow={nestedConditionRow}\n criteria={criteria}\n onRuleChange={onRuleChange}\n updateRules={updateRules}\n setErrors={setErrors}\n setRemoveAllClicked={setRemoveAllClicked}\n conditionRulesData={conditionRulesData}\n notConditionType={notConditionType}\n currentCondition={c}\n ruleIndex={srIndex}\n activeCriteria={criteria as 'allOf' | 'anyOf'}\n />\n ),\n )}\n {criteria === criterias.not && (\n <RadioGroup\n sx={{\n margin: theme.spacing(1),\n }}\n value={notConditionType}\n onChange={(_event, value) =>\n handleNotConditionTypeChange(value as NotConditionType)\n }\n >\n <FormControlLabel\n value={NotConditionType.SimpleCondition}\n control={<Radio color=\"primary\" />}\n label=\"Add rule\"\n sx={{\n marginTop: theme.spacing(1),\n }}\n />\n {notConditionType === NotConditionType.SimpleCondition && (\n <ConditionsFormRowFields\n oldCondition={\n conditionRow.not ?? getDefaultRule(selPluginResourceType)\n }\n onRuleChange={onRuleChange}\n conditionRow={conditionRow}\n criteria={criteria}\n conditionRulesData={conditionRulesData}\n setErrors={setErrors}\n optionDisabled={ruleOption =>\n ruleOptionDisabled(\n ruleOption,\n conditionRow.not\n ? [conditionRow.not as PermissionCondition]\n : undefined,\n )\n }\n setRemoveAllClicked={setRemoveAllClicked}\n />\n )}\n <FormControlLabel\n value={NotConditionType.NestedCondition}\n control={<Radio color=\"primary\" />}\n label={<AddNestedConditionButton />}\n sx={{\n marginTop: theme.spacing(1),\n }}\n />\n </RadioGroup>\n )}\n <ComplexConditionRowButtons\n conditionRow={conditionRow}\n onRuleChange={onRuleChange}\n criteria={criteria}\n selPluginResourceType={selPluginResourceType}\n updateErrors={updateErrors}\n isNestedConditionRule={isNestedConditionRule}\n handleAddNestedCondition={handleAddNestedCondition}\n />\n {nestedConditionRow?.length > 0 &&\n nestedConditionRow.map((nc, nestedConditionIndex) =>\n renderNestedConditionRow(nc, nestedConditionIndex),\n )}\n </Box>\n )}\n </Box>\n );\n};\n"],"names":["React"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import Autocomplete from '@mui/material/Autocomplete';
3
3
  import Box from '@mui/material/Box';
4
4
  import { useTheme } from '@mui/material/styles';
@@ -152,7 +152,7 @@ const ConditionsFormRowFields = ({
152
152
  }
153
153
  };
154
154
  const handleNestedConditionChange = (newCondition) => {
155
- if (!nestedConditionRow || !nestedConditionCriteria || nestedConditionIndex === void 0 || !updateRules) {
155
+ if (!nestedConditionRow || !nestedConditionCriteria || nestedConditionIndex === undefined || !updateRules) {
156
156
  return;
157
157
  }
158
158
  const updatedNestedConditionRow = nestedConditionRow.map(
@@ -189,7 +189,7 @@ const ConditionsFormRowFields = ({
189
189
  setErrors((prevErrors) => {
190
190
  const updatedErrors = { ...prevErrors };
191
191
  const nestedErrors = updatedErrors[criteria][nestedConditionCriteria];
192
- if (Array.isArray(nestedErrors) && nestedConditionRuleIndex !== void 0) {
192
+ if (Array.isArray(nestedErrors) && nestedConditionRuleIndex !== undefined) {
193
193
  nestedErrors[nestedConditionRuleIndex] = setErrorMessage(errors);
194
194
  } else {
195
195
  updatedErrors[criteria] = {
@@ -205,19 +205,19 @@ const ConditionsFormRowFields = ({
205
205
  const simpleRuleErrors = getSimpleRuleErrors(
206
206
  updatedErrors[criteria]
207
207
  );
208
- if (Array.isArray(simpleRuleErrors) && simpleRuleErrors.length > 0 && index !== void 0) {
208
+ if (Array.isArray(simpleRuleErrors) && simpleRuleErrors.length > 0 && index !== undefined) {
209
209
  simpleRuleErrors[index] = setErrorMessage(errors);
210
210
  }
211
211
  const nestedRuleErrors = getNestedRuleErrors(
212
212
  updatedErrors[criteria]
213
213
  );
214
- if (nestedConditionCriteria && nestedConditionIndex !== void 0 && nestedConditionRuleIndex !== void 0) {
214
+ if (nestedConditionCriteria && nestedConditionIndex !== undefined && nestedConditionRuleIndex !== undefined) {
215
215
  const nestedConditionRuleList = nestedRuleErrors[nestedConditionIndex][nestedConditionCriteria];
216
216
  if (Array.isArray(nestedConditionRuleList)) {
217
217
  nestedConditionRuleList[nestedConditionRuleIndex] = setErrorMessage(errors);
218
218
  }
219
219
  }
220
- if (Array.isArray(nestedRuleErrors) && nestedRuleErrors.length > 0 && nestedConditionCriteria === criterias.not && nestedConditionIndex !== void 0) {
220
+ if (Array.isArray(nestedRuleErrors) && nestedRuleErrors.length > 0 && nestedConditionCriteria === criterias.not && nestedConditionIndex !== undefined) {
221
221
  nestedRuleErrors[nestedConditionIndex][nestedConditionCriteria] = setErrorMessage(errors);
222
222
  }
223
223
  updatedErrors[criteria] = [...simpleRuleErrors, ...nestedRuleErrors];
@@ -233,7 +233,7 @@ const ConditionsFormRowFields = ({
233
233
  handleConditionChange(newCondition);
234
234
  }
235
235
  };
236
- return /* @__PURE__ */ React.createElement(Box, { className: classes.inputFieldContainer }, /* @__PURE__ */ React.createElement(
236
+ return /* @__PURE__ */ React__default.createElement(Box, { className: classes.inputFieldContainer }, /* @__PURE__ */ React__default.createElement(
237
237
  Autocomplete,
238
238
  {
239
239
  style: { width: "50%", marginTop: "26px" },
@@ -246,7 +246,7 @@ const ConditionsFormRowFields = ({
246
246
  rule: ruleVal ?? "",
247
247
  params: {}
248
248
  }),
249
- renderOption: (props, option) => /* @__PURE__ */ React.createElement(
249
+ renderOption: (props, option) => /* @__PURE__ */ React__default.createElement(
250
250
  RulesDropdownOption,
251
251
  {
252
252
  props,
@@ -254,7 +254,7 @@ const ConditionsFormRowFields = ({
254
254
  rulesData: conditionRulesData
255
255
  }
256
256
  ),
257
- renderInput: (params) => /* @__PURE__ */ React.createElement(
257
+ renderInput: (params) => /* @__PURE__ */ React__default.createElement(
258
258
  TextField,
259
259
  {
260
260
  ...params,
@@ -265,7 +265,7 @@ const ConditionsFormRowFields = ({
265
265
  }
266
266
  )
267
267
  }
268
- ), /* @__PURE__ */ React.createElement(Box, { style: { width: "50%" } }, schema ? /* @__PURE__ */ React.createElement(
268
+ ), /* @__PURE__ */ React__default.createElement(Box, { style: { width: "50%" } }, schema ? /* @__PURE__ */ React__default.createElement(
269
269
  Form,
270
270
  {
271
271
  schema: paramsSchema,
@@ -281,7 +281,7 @@ const ConditionsFormRowFields = ({
281
281
  showErrorList: false,
282
282
  liveValidate: true
283
283
  }
284
- ) : /* @__PURE__ */ React.createElement(
284
+ ) : /* @__PURE__ */ React__default.createElement(
285
285
  TextField,
286
286
  {
287
287
  style: { width: "100%", marginTop: "26px" },