@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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  ### Dependencies
2
2
 
3
+ ## 1.36.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 838db28: Redesigned RBAC form permissions section.
8
+ User will be able to select multiple plugins at once.
9
+
10
+ ## 1.35.0
11
+
12
+ ### Minor Changes
13
+
14
+ - 5d5c02a: Backstage version bump to v1.35.0
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies [5d5c02a]
19
+ - @backstage-community/plugin-rbac-common@1.13.0
20
+
3
21
  ## 1.34.0
4
22
 
5
23
  ### Minor Changes
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { useAsync } from 'react-use';
3
3
  import { SidebarItem } from '@backstage/core-components';
4
4
  import { useApi, configApiRef } from '@backstage/core-plugin-api';
@@ -14,7 +14,7 @@ const Administration = () => {
14
14
  const config = useApi(configApiRef);
15
15
  const isRBACPluginEnabled = config.getOptionalBoolean("permission.enabled");
16
16
  if (!isUserLoading && isRBACPluginEnabled) {
17
- return result?.status === "Authorized" ? /* @__PURE__ */ React.createElement(SidebarItem, { text: "RBAC", to: "rbac", icon: RbacIcon }) : null;
17
+ return result?.status === "Authorized" ? /* @__PURE__ */ React__default.createElement(SidebarItem, { text: "RBAC", to: "rbac", icon: RbacIcon }) : null;
18
18
  }
19
19
  return null;
20
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Administration.esm.js","sources":["../../src/components/Administration.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';\nimport { useAsync } from 'react-use';\n\nimport { SidebarItem } from '@backstage/core-components';\nimport {\n configApiRef,\n IconComponent,\n useApi,\n} from '@backstage/core-plugin-api';\n\nimport { default as RbacIcon } from '@mui/icons-material/VpnKeyOutlined';\n\nimport { rbacApiRef } from '../api/RBACBackendClient';\n\nexport const Administration = () => {\n const rbacApi = useApi(rbacApiRef);\n const { loading: isUserLoading, value: result } = useAsync(\n async () => await rbacApi.getUserAuthorization(),\n [],\n );\n\n const config = useApi(configApiRef);\n const isRBACPluginEnabled = config.getOptionalBoolean('permission.enabled');\n\n if (!isUserLoading && isRBACPluginEnabled) {\n return result?.status === 'Authorized' ? (\n <SidebarItem text=\"RBAC\" to=\"rbac\" icon={RbacIcon as IconComponent} />\n ) : null;\n }\n return null;\n};\n"],"names":[],"mappings":";;;;;;;AA6BO,MAAM,iBAAiB,MAAM;AAClC,EAAM,MAAA,OAAA,GAAU,OAAO,UAAU,CAAA;AACjC,EAAA,MAAM,EAAE,OAAA,EAAS,aAAe,EAAA,KAAA,EAAO,QAAW,GAAA,QAAA;AAAA,IAChD,YAAY,MAAM,OAAA,CAAQ,oBAAqB,EAAA;AAAA,IAC/C;AAAC,GACH;AAEA,EAAM,MAAA,MAAA,GAAS,OAAO,YAAY,CAAA;AAClC,EAAM,MAAA,mBAAA,GAAsB,MAAO,CAAA,kBAAA,CAAmB,oBAAoB,CAAA;AAE1E,EAAI,IAAA,CAAC,iBAAiB,mBAAqB,EAAA;AACzC,IAAO,OAAA,MAAA,EAAQ,MAAW,KAAA,YAAA,mBACvB,KAAA,CAAA,aAAA,CAAA,WAAA,EAAA,EAAY,IAAK,EAAA,MAAA,EAAO,EAAG,EAAA,MAAA,EAAO,IAAM,EAAA,QAAA,EAA2B,CAClE,GAAA,IAAA;AAAA;AAEN,EAAO,OAAA,IAAA;AACT;;;;"}
1
+ {"version":3,"file":"Administration.esm.js","sources":["../../src/components/Administration.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';\nimport { useAsync } from 'react-use';\n\nimport { SidebarItem } from '@backstage/core-components';\nimport {\n configApiRef,\n IconComponent,\n useApi,\n} from '@backstage/core-plugin-api';\n\nimport { default as RbacIcon } from '@mui/icons-material/VpnKeyOutlined';\n\nimport { rbacApiRef } from '../api/RBACBackendClient';\n\nexport const Administration = () => {\n const rbacApi = useApi(rbacApiRef);\n const { loading: isUserLoading, value: result } = useAsync(\n async () => await rbacApi.getUserAuthorization(),\n [],\n );\n\n const config = useApi(configApiRef);\n const isRBACPluginEnabled = config.getOptionalBoolean('permission.enabled');\n\n if (!isUserLoading && isRBACPluginEnabled) {\n return result?.status === 'Authorized' ? (\n <SidebarItem text=\"RBAC\" to=\"rbac\" icon={RbacIcon as IconComponent} />\n ) : null;\n }\n return null;\n};\n"],"names":["React"],"mappings":";;;;;;;AA6BO,MAAM,iBAAiB,MAAM;AAClC,EAAM,MAAA,OAAA,GAAU,OAAO,UAAU,CAAA;AACjC,EAAA,MAAM,EAAE,OAAA,EAAS,aAAe,EAAA,KAAA,EAAO,QAAW,GAAA,QAAA;AAAA,IAChD,YAAY,MAAM,OAAA,CAAQ,oBAAqB,EAAA;AAAA,IAC/C;AAAC,GACH;AAEA,EAAM,MAAA,MAAA,GAAS,OAAO,YAAY,CAAA;AAClC,EAAM,MAAA,mBAAA,GAAsB,MAAO,CAAA,kBAAA,CAAmB,oBAAoB,CAAA;AAE1E,EAAI,IAAA,CAAC,iBAAiB,mBAAqB,EAAA;AACzC,IAAO,OAAA,MAAA,EAAQ,MAAW,KAAA,YAAA,mBACvBA,cAAA,CAAA,aAAA,CAAA,WAAA,EAAA,EAAY,IAAK,EAAA,MAAA,EAAO,EAAG,EAAA,MAAA,EAAO,IAAM,EAAA,QAAA,EAA2B,CAClE,GAAA,IAAA;AAAA;AAEN,EAAO,OAAA,IAAA;AACT;;;;"}
@@ -1,12 +1,12 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import HelpOutlineIcon from '@mui/icons-material/HelpOutline';
3
3
  import Box from '@mui/material/Box';
4
4
  import Tooltip from '@mui/material/Tooltip';
5
5
  import Typography from '@mui/material/Typography';
6
6
 
7
- const tooltipTitle = () => /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(Typography, { variant: "body1", component: "p", align: "center" }, "Nested conditions are ", /* @__PURE__ */ React.createElement("b", null, "1 layer rules within a main condition"), ". It lets you allow appropriate access by using detailed permissions based on various conditions. You can add multiple nested conditions."), /* @__PURE__ */ React.createElement(Typography, { variant: "body1", component: "p", align: "center" }, "For example, you can allow access to all entity types in the main condition and use a nested condition to limit the access to entities owned by the user."));
7
+ const tooltipTitle = () => /* @__PURE__ */ React__default.createElement("div", null, /* @__PURE__ */ React__default.createElement(Typography, { variant: "body1", component: "p", align: "center" }, "Nested conditions are ", /* @__PURE__ */ React__default.createElement("b", null, "1 layer rules within a main condition"), ". It lets you allow appropriate access by using detailed permissions based on various conditions. You can add multiple nested conditions."), /* @__PURE__ */ React__default.createElement(Typography, { variant: "body1", component: "p", align: "center" }, "For example, you can allow access to all entity types in the main condition and use a nested condition to limit the access to entities owned by the user."));
8
8
  const AddNestedConditionButton = () => {
9
- return /* @__PURE__ */ React.createElement(
9
+ return /* @__PURE__ */ React__default.createElement(
10
10
  Box,
11
11
  {
12
12
  sx: {
@@ -15,8 +15,8 @@ const AddNestedConditionButton = () => {
15
15
  alignItems: "center"
16
16
  }
17
17
  },
18
- /* @__PURE__ */ React.createElement(Typography, { variant: "body1", component: "span" }, "Add Nested Condition"),
19
- /* @__PURE__ */ React.createElement(Tooltip, { title: tooltipTitle(), placement: "top" }, /* @__PURE__ */ React.createElement(HelpOutlineIcon, { fontSize: "inherit", style: { marginLeft: "0.25rem" } }))
18
+ /* @__PURE__ */ React__default.createElement(Typography, { variant: "body1", component: "span" }, "Add Nested Condition"),
19
+ /* @__PURE__ */ React__default.createElement(Tooltip, { title: tooltipTitle(), placement: "top" }, /* @__PURE__ */ React__default.createElement(HelpOutlineIcon, { fontSize: "inherit", style: { marginLeft: "0.25rem" } }))
20
20
  );
21
21
  };
22
22
 
@@ -1 +1 @@
1
- {"version":3,"file":"AddNestedConditionButton.esm.js","sources":["../../../src/components/ConditionalAccess/AddNestedConditionButton.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 HelpOutlineIcon from '@mui/icons-material/HelpOutline';\nimport Box from '@mui/material/Box';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\n\nexport const tooltipTitle = () => (\n <div>\n <Typography variant=\"body1\" component=\"p\" align=\"center\">\n Nested conditions are <b>1 layer rules within a main condition</b>. It\n lets you allow appropriate access by using detailed permissions based on\n various conditions. You can add multiple nested conditions.\n </Typography>\n <Typography variant=\"body1\" component=\"p\" align=\"center\">\n For example, you can allow access to all entity types in the main\n condition and use a nested condition to limit the access to entities owned\n by the user.\n </Typography>\n </div>\n);\n\nexport const AddNestedConditionButton = () => {\n return (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Typography variant=\"body1\" component=\"span\">\n Add Nested Condition\n </Typography>\n <Tooltip title={tooltipTitle()} placement=\"top\">\n <HelpOutlineIcon fontSize=\"inherit\" style={{ marginLeft: '0.25rem' }} />\n </Tooltip>\n </Box>\n );\n};\n"],"names":[],"mappings":";;;;;;AAsBO,MAAM,YAAe,GAAA,sBACzB,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,kBACE,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,OAAQ,EAAA,OAAA,EAAQ,SAAU,EAAA,GAAA,EAAI,KAAM,EAAA,QAAA,EAAA,EAAS,wBACjC,kBAAA,KAAA,CAAA,aAAA,CAAC,GAAE,EAAA,IAAA,EAAA,uCAAqC,CAAI,EAAA,2IAGpE,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,OAAA,EAAQ,OAAQ,EAAA,SAAA,EAAU,GAAI,EAAA,KAAA,EAAM,QAAS,EAAA,EAAA,2JAIzD,CACF;AAGK,MAAM,2BAA2B,MAAM;AAC5C,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,EAAI,EAAA;AAAA,QACF,OAAS,EAAA,MAAA;AAAA,QACT,cAAgB,EAAA,QAAA;AAAA,QAChB,UAAY,EAAA;AAAA;AACd,KAAA;AAAA,wCAEC,UAAW,EAAA,EAAA,OAAA,EAAQ,OAAQ,EAAA,SAAA,EAAU,UAAO,sBAE7C,CAAA;AAAA,wCACC,OAAQ,EAAA,EAAA,KAAA,EAAO,YAAa,EAAA,EAAG,WAAU,KACxC,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,eAAgB,EAAA,EAAA,QAAA,EAAS,WAAU,KAAO,EAAA,EAAE,UAAY,EAAA,SAAA,IAAa,CACxE;AAAA,GACF;AAEJ;;;;"}
1
+ {"version":3,"file":"AddNestedConditionButton.esm.js","sources":["../../../src/components/ConditionalAccess/AddNestedConditionButton.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 HelpOutlineIcon from '@mui/icons-material/HelpOutline';\nimport Box from '@mui/material/Box';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\n\nexport const tooltipTitle = () => (\n <div>\n <Typography variant=\"body1\" component=\"p\" align=\"center\">\n Nested conditions are <b>1 layer rules within a main condition</b>. It\n lets you allow appropriate access by using detailed permissions based on\n various conditions. You can add multiple nested conditions.\n </Typography>\n <Typography variant=\"body1\" component=\"p\" align=\"center\">\n For example, you can allow access to all entity types in the main\n condition and use a nested condition to limit the access to entities owned\n by the user.\n </Typography>\n </div>\n);\n\nexport const AddNestedConditionButton = () => {\n return (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <Typography variant=\"body1\" component=\"span\">\n Add Nested Condition\n </Typography>\n <Tooltip title={tooltipTitle()} placement=\"top\">\n <HelpOutlineIcon fontSize=\"inherit\" style={{ marginLeft: '0.25rem' }} />\n </Tooltip>\n </Box>\n );\n};\n"],"names":["React"],"mappings":";;;;;;AAsBO,MAAM,YAAe,GAAA,sBACzBA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,kBACEA,cAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,OAAQ,EAAA,OAAA,EAAQ,SAAU,EAAA,GAAA,EAAI,KAAM,EAAA,QAAA,EAAA,EAAS,wBACjC,kBAAAA,cAAA,CAAA,aAAA,CAAC,GAAE,EAAA,IAAA,EAAA,uCAAqC,CAAI,EAAA,2IAGpE,CACA,kBAAAA,cAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,OAAA,EAAQ,OAAQ,EAAA,SAAA,EAAU,GAAI,EAAA,KAAA,EAAM,QAAS,EAAA,EAAA,2JAIzD,CACF;AAGK,MAAM,2BAA2B,MAAM;AAC5C,EACE,uBAAAA,cAAA,CAAA,aAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,EAAI,EAAA;AAAA,QACF,OAAS,EAAA,MAAA;AAAA,QACT,cAAgB,EAAA,QAAA;AAAA,QAChB,UAAY,EAAA;AAAA;AACd,KAAA;AAAA,iDAEC,UAAW,EAAA,EAAA,OAAA,EAAQ,OAAQ,EAAA,SAAA,EAAU,UAAO,sBAE7C,CAAA;AAAA,iDACC,OAAQ,EAAA,EAAA,KAAA,EAAO,YAAa,EAAA,EAAG,WAAU,KACxC,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,eAAgB,EAAA,EAAA,QAAA,EAAS,WAAU,KAAO,EAAA,EAAE,UAAY,EAAA,SAAA,IAAa,CACxE;AAAA,GACF;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import RemoveIcon from '@mui/icons-material/Remove';
3
3
  import IconButton from '@mui/material/IconButton';
4
4
  import { isSimpleRule, getRowStyle, getRowKey, getSimpleRuleErrors, getNestedRuleErrors } from '../../utils/conditional-access-utils.esm.js';
@@ -73,14 +73,14 @@ const ComplexConditionRow = ({
73
73
  );
74
74
  setErrors((prevErrors) => {
75
75
  const updatedErrors = { ...prevErrors };
76
- if (updatedErrors[criteria] !== void 0) {
76
+ if (updatedErrors[criteria] !== undefined) {
77
77
  const criteriaErrors = updatedErrors[criteria];
78
78
  if (criteria === criterias.not && notConditionType === "nested-condition") {
79
79
  updatedErrors[criteria][nestedConditionCriteria].splice(ruleIndex, 1);
80
80
  return updatedErrors;
81
81
  }
82
82
  const nestedConditionErrors = getNestedRuleErrors(criteriaErrors);
83
- if (Array.isArray(nestedConditionErrors) && nestedConditionIndex !== void 0) {
83
+ if (Array.isArray(nestedConditionErrors) && nestedConditionIndex !== undefined) {
84
84
  const nestedErrors = nestedConditionErrors[nestedConditionIndex];
85
85
  if (nestedErrors[nestedConditionCriteria]) {
86
86
  const updatedNestedErrors = nestedErrors[nestedConditionCriteria].filter((_error, index) => index !== ruleIndex);
@@ -105,31 +105,31 @@ const ComplexConditionRow = ({
105
105
  );
106
106
  const disabled = !isNestedCondition && conditionRow[criteria].length === 1 && nestedConditionRow.length === 0 && ruleIndex === 0;
107
107
  const nestedDisabled = isNestedCondition && nestedConditionRow[nestedConditionIndex ?? 0][activeNestedCriteria].length === 1 && ruleIndex === 0;
108
- return currentCondition.resourceType && /* @__PURE__ */ React.createElement(
108
+ return currentCondition.resourceType && /* @__PURE__ */ React__default.createElement(
109
109
  "div",
110
110
  {
111
111
  style: getRowStyle(currentCondition, isNestedCondition),
112
112
  key: getRowKey(isNestedCondition, ruleIndex)
113
113
  },
114
- /* @__PURE__ */ React.createElement(
114
+ /* @__PURE__ */ React__default.createElement(
115
115
  ConditionsFormRowFields,
116
116
  {
117
117
  oldCondition: currentCondition,
118
- index: isNestedCondition ? void 0 : ruleIndex,
118
+ index: isNestedCondition ? undefined : ruleIndex,
119
119
  onRuleChange,
120
120
  conditionRow,
121
121
  criteria,
122
122
  conditionRulesData,
123
123
  setErrors,
124
124
  setRemoveAllClicked,
125
- nestedConditionRow: isNestedCondition ? nestedConditionRow : void 0,
126
- nestedConditionCriteria: isNestedCondition ? activeNestedCriteria : void 0,
127
- nestedConditionIndex: isNestedCondition ? nestedConditionIndex : void 0,
128
- nestedConditionRuleIndex: isNestedCondition ? ruleIndex : void 0,
129
- updateRules: isNestedCondition ? updateRules : void 0
125
+ nestedConditionRow: isNestedCondition ? nestedConditionRow : undefined,
126
+ nestedConditionCriteria: isNestedCondition ? activeNestedCriteria : undefined,
127
+ nestedConditionIndex: isNestedCondition ? nestedConditionIndex : undefined,
128
+ nestedConditionRuleIndex: isNestedCondition ? ruleIndex : undefined,
129
+ updateRules: isNestedCondition ? updateRules : undefined
130
130
  }
131
131
  ),
132
- /* @__PURE__ */ React.createElement(
132
+ /* @__PURE__ */ React__default.createElement(
133
133
  IconButton,
134
134
  {
135
135
  title: "Remove",
@@ -140,11 +140,11 @@ const ComplexConditionRow = ({
140
140
  marginTop: (theme) => theme.spacing(3.3)
141
141
  },
142
142
  disabled: isNestedCondition ? nestedDisabled : disabled,
143
- onClick: isNestedCondition && activeNestedCriteria && nestedConditionIndex !== void 0 ? () => handleRemoveNestedConditionRule(activeNestedCriteria) : () => {
143
+ onClick: isNestedCondition && activeNestedCriteria && nestedConditionIndex !== undefined ? () => handleRemoveNestedConditionRule(activeNestedCriteria) : () => {
144
144
  handleRemoveSimpleConditionRule(ruleIndex, ruleList);
145
145
  }
146
146
  },
147
- /* @__PURE__ */ React.createElement(RemoveIcon, null)
147
+ /* @__PURE__ */ React__default.createElement(RemoveIcon, null)
148
148
  )
149
149
  );
150
150
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ComplexConditionRow.esm.js","sources":["../../../src/components/ConditionalAccess/ComplexConditionRow.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 RemoveIcon from '@mui/icons-material/Remove';\nimport IconButton from '@mui/material/IconButton';\n\nimport {\n getNestedRuleErrors,\n getRowKey,\n getRowStyle,\n getSimpleRuleErrors,\n isSimpleRule,\n} from '../../utils/conditional-access-utils';\nimport { ConditionsFormRowFields } from './ConditionsFormRowFields';\nimport { criterias } from './const';\nimport {\n AccessConditionsErrors,\n ComplexErrors,\n Condition,\n ConditionsData,\n NestedCriteriaErrors,\n NotConditionType,\n RulesData,\n} from './types';\n\ntype ComplexConditionRowProps = {\n conditionRow: ConditionsData;\n nestedConditionRow: Condition[];\n criteria: keyof ConditionsData;\n onRuleChange: (newCondition: ConditionsData) => void;\n updateRules: (updatedNestedConditionRow: Condition[] | Condition) => void;\n setErrors: React.Dispatch<\n React.SetStateAction<AccessConditionsErrors | undefined>\n >;\n setRemoveAllClicked: React.Dispatch<React.SetStateAction<boolean>>;\n conditionRulesData?: RulesData;\n notConditionType?: NotConditionType;\n currentCondition: Condition;\n ruleIndex: number;\n activeCriteria?: 'allOf' | 'anyOf';\n isNestedCondition?: boolean;\n nestedConditionIndex?: number;\n activeNestedCriteria?: 'allOf' | 'anyOf';\n};\n\nexport const ComplexConditionRow = ({\n conditionRow,\n nestedConditionRow,\n criteria,\n onRuleChange,\n updateRules,\n setErrors,\n setRemoveAllClicked,\n conditionRulesData,\n notConditionType,\n currentCondition,\n ruleIndex,\n activeCriteria,\n isNestedCondition = false,\n nestedConditionIndex,\n activeNestedCriteria,\n}: ComplexConditionRowProps) => {\n const handleRemoveSimpleConditionRule = (\n index: number,\n ruleList: PermissionCondition[],\n ) => {\n if (!activeCriteria) {\n return;\n }\n const updatedSimpleRules = ruleList.filter(\n (_r, rindex) => index !== rindex,\n );\n const nestedConditions =\n (conditionRow[criteria] as PermissionCondition[])?.filter(\n (con: PermissionCondition) =>\n criterias.allOf in con ||\n criterias.anyOf in con ||\n criterias.not in con,\n ) || [];\n\n onRuleChange({\n [activeCriteria as keyof ConditionsData]: [\n ...updatedSimpleRules,\n ...nestedConditions,\n ],\n });\n\n setErrors(prevErrors => {\n const updatedErrors = { ...prevErrors };\n\n if (updatedErrors[activeCriteria]) {\n const criteriaErrors = updatedErrors[activeCriteria] as ComplexErrors[];\n const simpleRuleErrors = getSimpleRuleErrors(criteriaErrors);\n\n if (Array.isArray(simpleRuleErrors) && simpleRuleErrors.length > 0) {\n const updatedCriteriaErrors = [\n ...simpleRuleErrors.filter((_, rindex) => rindex !== index),\n ...getNestedRuleErrors(criteriaErrors),\n ];\n\n updatedErrors[activeCriteria] =\n updatedCriteriaErrors.length > 0 ? updatedCriteriaErrors : [];\n } else {\n delete updatedErrors[activeCriteria];\n }\n }\n\n return updatedErrors;\n });\n };\n\n const handleRemoveNestedConditionRule = (nestedConditionCriteria: string) => {\n const updatedNestedConditionRow: Condition[] = [];\n\n nestedConditionRow.forEach((c, index) => {\n if (index === nestedConditionIndex) {\n const updatedRules = (\n (c[\n nestedConditionCriteria as keyof Condition\n ] as PermissionCondition[]) || []\n ).filter((_r, rindex) => rindex !== ruleIndex);\n updatedNestedConditionRow.push({\n [nestedConditionCriteria as keyof Condition]: updatedRules,\n });\n } else {\n updatedNestedConditionRow.push(c);\n }\n });\n\n updateRules(\n criteria === criterias.not\n ? updatedNestedConditionRow[0]\n : updatedNestedConditionRow,\n );\n\n setErrors(prevErrors => {\n const updatedErrors = { ...prevErrors };\n\n if (updatedErrors[criteria] !== undefined) {\n const criteriaErrors = updatedErrors[criteria] as ComplexErrors[];\n\n if (\n criteria === criterias.not &&\n notConditionType === 'nested-condition'\n ) {\n (\n (updatedErrors[criteria] as NestedCriteriaErrors)[\n nestedConditionCriteria\n ] as string[]\n ).splice(ruleIndex, 1);\n return updatedErrors;\n }\n\n const nestedConditionErrors = getNestedRuleErrors(criteriaErrors);\n\n if (\n Array.isArray(nestedConditionErrors) &&\n nestedConditionIndex !== undefined\n ) {\n const nestedErrors = nestedConditionErrors[nestedConditionIndex];\n if (nestedErrors[nestedConditionCriteria]) {\n const updatedNestedErrors = (\n nestedErrors[nestedConditionCriteria] as string[]\n ).filter((_error, index) => index !== ruleIndex);\n\n if (updatedNestedErrors.length > 0) {\n nestedErrors[nestedConditionCriteria] = updatedNestedErrors;\n } else {\n delete nestedErrors[nestedConditionCriteria];\n }\n\n nestedConditionErrors[nestedConditionIndex] = nestedErrors;\n }\n\n updatedErrors[criteria] = [\n ...getSimpleRuleErrors(criteriaErrors),\n ...nestedConditionErrors,\n ];\n }\n }\n\n return updatedErrors;\n });\n };\n\n const ruleList = isNestedCondition\n ? (currentCondition[\n activeCriteria as keyof Condition\n ] as PermissionCondition[])\n : ((conditionRow[activeCriteria as keyof Condition] as Condition[]).filter(\n r => isSimpleRule(r),\n ) as PermissionCondition[]);\n\n const disabled =\n !isNestedCondition &&\n (conditionRow[criteria as keyof Condition] as Condition[]).length === 1 &&\n nestedConditionRow.length === 0 &&\n ruleIndex === 0;\n const nestedDisabled =\n isNestedCondition &&\n (\n nestedConditionRow[nestedConditionIndex ?? 0][\n activeNestedCriteria as keyof Condition\n ] as Condition[]\n ).length === 1 &&\n ruleIndex === 0;\n\n return (\n (currentCondition as PermissionCondition).resourceType && (\n <div\n style={getRowStyle(currentCondition, isNestedCondition)}\n key={getRowKey(isNestedCondition, ruleIndex)}\n >\n <ConditionsFormRowFields\n oldCondition={currentCondition}\n index={isNestedCondition ? undefined : ruleIndex}\n onRuleChange={onRuleChange}\n conditionRow={conditionRow}\n criteria={criteria}\n conditionRulesData={conditionRulesData}\n setErrors={setErrors}\n setRemoveAllClicked={setRemoveAllClicked}\n nestedConditionRow={\n isNestedCondition ? nestedConditionRow : undefined\n }\n nestedConditionCriteria={\n isNestedCondition ? activeNestedCriteria : undefined\n }\n nestedConditionIndex={\n isNestedCondition ? nestedConditionIndex : undefined\n }\n nestedConditionRuleIndex={isNestedCondition ? ruleIndex : undefined}\n updateRules={isNestedCondition ? updateRules : undefined}\n />\n <IconButton\n title=\"Remove\"\n sx={{\n color: theme => theme.palette.grey[500],\n flexGrow: 0,\n alignSelf: 'baseline',\n marginTop: theme => theme.spacing(3.3),\n }}\n disabled={isNestedCondition ? nestedDisabled : disabled}\n onClick={\n isNestedCondition &&\n activeNestedCriteria &&\n nestedConditionIndex !== undefined\n ? () => handleRemoveNestedConditionRule(activeNestedCriteria)\n : () => {\n handleRemoveSimpleConditionRule(ruleIndex, ruleList);\n }\n }\n >\n <RemoveIcon />\n </IconButton>\n </div>\n )\n );\n};\n"],"names":["ruleList"],"mappings":"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"}
1
+ {"version":3,"file":"ComplexConditionRow.esm.js","sources":["../../../src/components/ConditionalAccess/ComplexConditionRow.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 RemoveIcon from '@mui/icons-material/Remove';\nimport IconButton from '@mui/material/IconButton';\n\nimport {\n getNestedRuleErrors,\n getRowKey,\n getRowStyle,\n getSimpleRuleErrors,\n isSimpleRule,\n} from '../../utils/conditional-access-utils';\nimport { ConditionsFormRowFields } from './ConditionsFormRowFields';\nimport { criterias } from './const';\nimport {\n AccessConditionsErrors,\n ComplexErrors,\n Condition,\n ConditionsData,\n NestedCriteriaErrors,\n NotConditionType,\n RulesData,\n} from './types';\n\ntype ComplexConditionRowProps = {\n conditionRow: ConditionsData;\n nestedConditionRow: Condition[];\n criteria: keyof ConditionsData;\n onRuleChange: (newCondition: ConditionsData) => void;\n updateRules: (updatedNestedConditionRow: Condition[] | Condition) => void;\n setErrors: React.Dispatch<\n React.SetStateAction<AccessConditionsErrors | undefined>\n >;\n setRemoveAllClicked: React.Dispatch<React.SetStateAction<boolean>>;\n conditionRulesData?: RulesData;\n notConditionType?: NotConditionType;\n currentCondition: Condition;\n ruleIndex: number;\n activeCriteria?: 'allOf' | 'anyOf';\n isNestedCondition?: boolean;\n nestedConditionIndex?: number;\n activeNestedCriteria?: 'allOf' | 'anyOf';\n};\n\nexport const ComplexConditionRow = ({\n conditionRow,\n nestedConditionRow,\n criteria,\n onRuleChange,\n updateRules,\n setErrors,\n setRemoveAllClicked,\n conditionRulesData,\n notConditionType,\n currentCondition,\n ruleIndex,\n activeCriteria,\n isNestedCondition = false,\n nestedConditionIndex,\n activeNestedCriteria,\n}: ComplexConditionRowProps) => {\n const handleRemoveSimpleConditionRule = (\n index: number,\n ruleList: PermissionCondition[],\n ) => {\n if (!activeCriteria) {\n return;\n }\n const updatedSimpleRules = ruleList.filter(\n (_r, rindex) => index !== rindex,\n );\n const nestedConditions =\n (conditionRow[criteria] as PermissionCondition[])?.filter(\n (con: PermissionCondition) =>\n criterias.allOf in con ||\n criterias.anyOf in con ||\n criterias.not in con,\n ) || [];\n\n onRuleChange({\n [activeCriteria as keyof ConditionsData]: [\n ...updatedSimpleRules,\n ...nestedConditions,\n ],\n });\n\n setErrors(prevErrors => {\n const updatedErrors = { ...prevErrors };\n\n if (updatedErrors[activeCriteria]) {\n const criteriaErrors = updatedErrors[activeCriteria] as ComplexErrors[];\n const simpleRuleErrors = getSimpleRuleErrors(criteriaErrors);\n\n if (Array.isArray(simpleRuleErrors) && simpleRuleErrors.length > 0) {\n const updatedCriteriaErrors = [\n ...simpleRuleErrors.filter((_, rindex) => rindex !== index),\n ...getNestedRuleErrors(criteriaErrors),\n ];\n\n updatedErrors[activeCriteria] =\n updatedCriteriaErrors.length > 0 ? updatedCriteriaErrors : [];\n } else {\n delete updatedErrors[activeCriteria];\n }\n }\n\n return updatedErrors;\n });\n };\n\n const handleRemoveNestedConditionRule = (nestedConditionCriteria: string) => {\n const updatedNestedConditionRow: Condition[] = [];\n\n nestedConditionRow.forEach((c, index) => {\n if (index === nestedConditionIndex) {\n const updatedRules = (\n (c[\n nestedConditionCriteria as keyof Condition\n ] as PermissionCondition[]) || []\n ).filter((_r, rindex) => rindex !== ruleIndex);\n updatedNestedConditionRow.push({\n [nestedConditionCriteria as keyof Condition]: updatedRules,\n });\n } else {\n updatedNestedConditionRow.push(c);\n }\n });\n\n updateRules(\n criteria === criterias.not\n ? updatedNestedConditionRow[0]\n : updatedNestedConditionRow,\n );\n\n setErrors(prevErrors => {\n const updatedErrors = { ...prevErrors };\n\n if (updatedErrors[criteria] !== undefined) {\n const criteriaErrors = updatedErrors[criteria] as ComplexErrors[];\n\n if (\n criteria === criterias.not &&\n notConditionType === 'nested-condition'\n ) {\n (\n (updatedErrors[criteria] as NestedCriteriaErrors)[\n nestedConditionCriteria\n ] as string[]\n ).splice(ruleIndex, 1);\n return updatedErrors;\n }\n\n const nestedConditionErrors = getNestedRuleErrors(criteriaErrors);\n\n if (\n Array.isArray(nestedConditionErrors) &&\n nestedConditionIndex !== undefined\n ) {\n const nestedErrors = nestedConditionErrors[nestedConditionIndex];\n if (nestedErrors[nestedConditionCriteria]) {\n const updatedNestedErrors = (\n nestedErrors[nestedConditionCriteria] as string[]\n ).filter((_error, index) => index !== ruleIndex);\n\n if (updatedNestedErrors.length > 0) {\n nestedErrors[nestedConditionCriteria] = updatedNestedErrors;\n } else {\n delete nestedErrors[nestedConditionCriteria];\n }\n\n nestedConditionErrors[nestedConditionIndex] = nestedErrors;\n }\n\n updatedErrors[criteria] = [\n ...getSimpleRuleErrors(criteriaErrors),\n ...nestedConditionErrors,\n ];\n }\n }\n\n return updatedErrors;\n });\n };\n\n const ruleList = isNestedCondition\n ? (currentCondition[\n activeCriteria as keyof Condition\n ] as PermissionCondition[])\n : ((conditionRow[activeCriteria as keyof Condition] as Condition[]).filter(\n r => isSimpleRule(r),\n ) as PermissionCondition[]);\n\n const disabled =\n !isNestedCondition &&\n (conditionRow[criteria as keyof Condition] as Condition[]).length === 1 &&\n nestedConditionRow.length === 0 &&\n ruleIndex === 0;\n const nestedDisabled =\n isNestedCondition &&\n (\n nestedConditionRow[nestedConditionIndex ?? 0][\n activeNestedCriteria as keyof Condition\n ] as Condition[]\n ).length === 1 &&\n ruleIndex === 0;\n\n return (\n (currentCondition as PermissionCondition).resourceType && (\n <div\n style={getRowStyle(currentCondition, isNestedCondition)}\n key={getRowKey(isNestedCondition, ruleIndex)}\n >\n <ConditionsFormRowFields\n oldCondition={currentCondition}\n index={isNestedCondition ? undefined : ruleIndex}\n onRuleChange={onRuleChange}\n conditionRow={conditionRow}\n criteria={criteria}\n conditionRulesData={conditionRulesData}\n setErrors={setErrors}\n setRemoveAllClicked={setRemoveAllClicked}\n nestedConditionRow={\n isNestedCondition ? nestedConditionRow : undefined\n }\n nestedConditionCriteria={\n isNestedCondition ? activeNestedCriteria : undefined\n }\n nestedConditionIndex={\n isNestedCondition ? nestedConditionIndex : undefined\n }\n nestedConditionRuleIndex={isNestedCondition ? ruleIndex : undefined}\n updateRules={isNestedCondition ? updateRules : undefined}\n />\n <IconButton\n title=\"Remove\"\n sx={{\n color: theme => theme.palette.grey[500],\n flexGrow: 0,\n alignSelf: 'baseline',\n marginTop: theme => theme.spacing(3.3),\n }}\n disabled={isNestedCondition ? nestedDisabled : disabled}\n onClick={\n isNestedCondition &&\n activeNestedCriteria &&\n nestedConditionIndex !== undefined\n ? () => handleRemoveNestedConditionRule(activeNestedCriteria)\n : () => {\n handleRemoveSimpleConditionRule(ruleIndex, ruleList);\n }\n }\n >\n <RemoveIcon />\n </IconButton>\n </div>\n )\n );\n};\n"],"names":["ruleList","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 HelpOutlineIcon from '@mui/icons-material/HelpOutline';
4
4
  import Box from '@mui/material/Box';
@@ -38,7 +38,7 @@ const ComplexConditionRowButtons = ({
38
38
  onRuleChange({ [criteria]: [...updatedRules] });
39
39
  updateErrors(firstNestedConditionIndex);
40
40
  };
41
- return (criteria === criterias.allOf || criteria === criterias.anyOf) && /* @__PURE__ */ React.createElement(
41
+ return (criteria === criterias.allOf || criteria === criterias.anyOf) && /* @__PURE__ */ React__default.createElement(
42
42
  Box,
43
43
  {
44
44
  mt: 1,
@@ -49,7 +49,7 @@ const ComplexConditionRowButtons = ({
49
49
  alignItems: "flex-start"
50
50
  }
51
51
  },
52
- /* @__PURE__ */ React.createElement(
52
+ /* @__PURE__ */ React__default.createElement(
53
53
  Button,
54
54
  {
55
55
  sx: {
@@ -57,11 +57,11 @@ const ComplexConditionRowButtons = ({
57
57
  },
58
58
  size: "small",
59
59
  onClick: handleAddRule,
60
- startIcon: /* @__PURE__ */ React.createElement(AddIcon, { fontSize: "small" })
60
+ startIcon: /* @__PURE__ */ React__default.createElement(AddIcon, { fontSize: "small" })
61
61
  },
62
62
  "Add rule"
63
63
  ),
64
- /* @__PURE__ */ React.createElement(
64
+ /* @__PURE__ */ React__default.createElement(
65
65
  Button,
66
66
  {
67
67
  sx: {
@@ -69,8 +69,8 @@ const ComplexConditionRowButtons = ({
69
69
  },
70
70
  size: "small",
71
71
  onClick: () => handleAddNestedCondition(criteria),
72
- startIcon: /* @__PURE__ */ React.createElement(AddIcon, { fontSize: "small" }),
73
- endIcon: /* @__PURE__ */ React.createElement(Tooltip, { title: tooltipTitle(), placement: "top" }, /* @__PURE__ */ React.createElement(
72
+ startIcon: /* @__PURE__ */ React__default.createElement(AddIcon, { fontSize: "small" }),
73
+ endIcon: /* @__PURE__ */ React__default.createElement(Tooltip, { title: tooltipTitle(), placement: "top" }, /* @__PURE__ */ React__default.createElement(
74
74
  HelpOutlineIcon,
75
75
  {
76
76
  fontSize: "small",
@@ -1 +1 @@
1
- {"version":3,"file":"ComplexConditionRowButtons.esm.js","sources":["../../../src/components/ConditionalAccess/ComplexConditionRowButtons.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 AddIcon from '@mui/icons-material/Add';\nimport HelpOutlineIcon from '@mui/icons-material/HelpOutline';\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport Tooltip from '@mui/material/Tooltip';\n\nimport { getDefaultRule } from '../../utils/conditional-access-utils';\nimport { tooltipTitle } from './AddNestedConditionButton';\nimport { criterias } from './const';\nimport { Condition, ConditionsData } from './types';\n\ntype ComplexConditionRowButtonsProps = {\n conditionRow: ConditionsData;\n onRuleChange: (newCondition: ConditionsData) => void;\n criteria: string;\n selPluginResourceType: string;\n updateErrors: (_index: number) => void;\n isNestedConditionRule: (condition: Condition) => boolean;\n handleAddNestedCondition: (criteria: string) => void;\n};\n\nexport const ComplexConditionRowButtons = ({\n conditionRow,\n onRuleChange,\n criteria,\n selPluginResourceType,\n updateErrors,\n isNestedConditionRule,\n handleAddNestedCondition,\n}: ComplexConditionRowButtonsProps) => {\n const findFirstNestedConditionIndex = (rules: Condition[]): number => {\n return rules.findIndex(e => isNestedConditionRule(e)) || 0;\n };\n const handleAddRule = () => {\n const updatedRules = [\n ...(conditionRow.allOf ?? []),\n ...(conditionRow.anyOf ?? []),\n ];\n\n const firstNestedConditionIndex =\n findFirstNestedConditionIndex(updatedRules);\n if (firstNestedConditionIndex !== -1) {\n updatedRules.splice(\n firstNestedConditionIndex,\n 0,\n getDefaultRule(selPluginResourceType),\n );\n } else {\n updatedRules.push(getDefaultRule(selPluginResourceType));\n }\n\n onRuleChange({ [criteria]: [...updatedRules] });\n updateErrors(firstNestedConditionIndex);\n };\n\n return (\n (criteria === criterias.allOf || criteria === criterias.anyOf) && (\n <Box\n mt={1}\n mb={1}\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n }}\n >\n <Button\n sx={{\n color: theme => theme.palette.primary.light,\n }}\n size=\"small\"\n onClick={handleAddRule}\n startIcon={<AddIcon fontSize=\"small\" />}\n >\n Add rule\n </Button>\n <Button\n sx={{\n color: theme => theme.palette.primary.light,\n }}\n size=\"small\"\n onClick={() => handleAddNestedCondition(criteria)}\n startIcon={<AddIcon fontSize=\"small\" />}\n endIcon={\n <Tooltip title={tooltipTitle()} placement=\"top\">\n <HelpOutlineIcon\n fontSize=\"small\"\n style={{ marginLeft: '0.25rem' }}\n />\n </Tooltip>\n }\n >\n Add Nested Condition\n </Button>\n </Box>\n )\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;AAsCO,MAAM,6BAA6B,CAAC;AAAA,EACzC,YAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,qBAAA;AAAA,EACA,YAAA;AAAA,EACA,qBAAA;AAAA,EACA;AACF,CAAuC,KAAA;AACrC,EAAM,MAAA,6BAAA,GAAgC,CAAC,KAA+B,KAAA;AACpE,IAAA,OAAO,MAAM,SAAU,CAAA,CAAA,CAAA,KAAK,qBAAsB,CAAA,CAAC,CAAC,CAAK,IAAA,CAAA;AAAA,GAC3D;AACA,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,MAAM,YAAe,GAAA;AAAA,MACnB,GAAI,YAAa,CAAA,KAAA,IAAS,EAAC;AAAA,MAC3B,GAAI,YAAa,CAAA,KAAA,IAAS;AAAC,KAC7B;AAEA,IAAM,MAAA,yBAAA,GACJ,8BAA8B,YAAY,CAAA;AAC5C,IAAA,IAAI,8BAA8B,CAAI,CAAA,EAAA;AACpC,MAAa,YAAA,CAAA,MAAA;AAAA,QACX,yBAAA;AAAA,QACA,CAAA;AAAA,QACA,eAAe,qBAAqB;AAAA,OACtC;AAAA,KACK,MAAA;AACL,MAAa,YAAA,CAAA,IAAA,CAAK,cAAe,CAAA,qBAAqB,CAAC,CAAA;AAAA;AAGzD,IAAa,YAAA,CAAA,EAAE,CAAC,QAAQ,GAAG,CAAC,GAAG,YAAY,GAAG,CAAA;AAC9C,IAAA,YAAA,CAAa,yBAAyB,CAAA;AAAA,GACxC;AAEA,EAAA,OAAA,CACG,QAAa,KAAA,SAAA,CAAU,KAAS,IAAA,QAAA,KAAa,UAAU,KACtD,qBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,EAAI,EAAA,CAAA;AAAA,MACJ,EAAI,EAAA,CAAA;AAAA,MACJ,EAAI,EAAA;AAAA,QACF,OAAS,EAAA,MAAA;AAAA,QACT,aAAe,EAAA,QAAA;AAAA,QACf,UAAY,EAAA;AAAA;AACd,KAAA;AAAA,oBAEA,KAAA,CAAA,aAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,EAAI,EAAA;AAAA,UACF,KAAO,EAAA,CAAA,KAAA,KAAS,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA;AAAA,SACxC;AAAA,QACA,IAAK,EAAA,OAAA;AAAA,QACL,OAAS,EAAA,aAAA;AAAA,QACT,SAAW,kBAAA,KAAA,CAAA,aAAA,CAAC,OAAQ,EAAA,EAAA,QAAA,EAAS,OAAQ,EAAA;AAAA,OAAA;AAAA,MACtC;AAAA,KAED;AAAA,oBACA,KAAA,CAAA,aAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,EAAI,EAAA;AAAA,UACF,KAAO,EAAA,CAAA,KAAA,KAAS,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA;AAAA,SACxC;AAAA,QACA,IAAK,EAAA,OAAA;AAAA,QACL,OAAA,EAAS,MAAM,wBAAA,CAAyB,QAAQ,CAAA;AAAA,QAChD,SAAW,kBAAA,KAAA,CAAA,aAAA,CAAC,OAAQ,EAAA,EAAA,QAAA,EAAS,OAAQ,EAAA,CAAA;AAAA,QACrC,yBACG,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAQ,OAAO,YAAa,EAAA,EAAG,WAAU,KACxC,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,UAAC,eAAA;AAAA,UAAA;AAAA,YACC,QAAS,EAAA,OAAA;AAAA,YACT,KAAA,EAAO,EAAE,UAAA,EAAY,SAAU;AAAA;AAAA,SAEnC;AAAA,OAAA;AAAA,MAEH;AAAA;AAED,GACF;AAGN;;;;"}
1
+ {"version":3,"file":"ComplexConditionRowButtons.esm.js","sources":["../../../src/components/ConditionalAccess/ComplexConditionRowButtons.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 AddIcon from '@mui/icons-material/Add';\nimport HelpOutlineIcon from '@mui/icons-material/HelpOutline';\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport Tooltip from '@mui/material/Tooltip';\n\nimport { getDefaultRule } from '../../utils/conditional-access-utils';\nimport { tooltipTitle } from './AddNestedConditionButton';\nimport { criterias } from './const';\nimport { Condition, ConditionsData } from './types';\n\ntype ComplexConditionRowButtonsProps = {\n conditionRow: ConditionsData;\n onRuleChange: (newCondition: ConditionsData) => void;\n criteria: string;\n selPluginResourceType: string;\n updateErrors: (_index: number) => void;\n isNestedConditionRule: (condition: Condition) => boolean;\n handleAddNestedCondition: (criteria: string) => void;\n};\n\nexport const ComplexConditionRowButtons = ({\n conditionRow,\n onRuleChange,\n criteria,\n selPluginResourceType,\n updateErrors,\n isNestedConditionRule,\n handleAddNestedCondition,\n}: ComplexConditionRowButtonsProps) => {\n const findFirstNestedConditionIndex = (rules: Condition[]): number => {\n return rules.findIndex(e => isNestedConditionRule(e)) || 0;\n };\n const handleAddRule = () => {\n const updatedRules = [\n ...(conditionRow.allOf ?? []),\n ...(conditionRow.anyOf ?? []),\n ];\n\n const firstNestedConditionIndex =\n findFirstNestedConditionIndex(updatedRules);\n if (firstNestedConditionIndex !== -1) {\n updatedRules.splice(\n firstNestedConditionIndex,\n 0,\n getDefaultRule(selPluginResourceType),\n );\n } else {\n updatedRules.push(getDefaultRule(selPluginResourceType));\n }\n\n onRuleChange({ [criteria]: [...updatedRules] });\n updateErrors(firstNestedConditionIndex);\n };\n\n return (\n (criteria === criterias.allOf || criteria === criterias.anyOf) && (\n <Box\n mt={1}\n mb={1}\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n }}\n >\n <Button\n sx={{\n color: theme => theme.palette.primary.light,\n }}\n size=\"small\"\n onClick={handleAddRule}\n startIcon={<AddIcon fontSize=\"small\" />}\n >\n Add rule\n </Button>\n <Button\n sx={{\n color: theme => theme.palette.primary.light,\n }}\n size=\"small\"\n onClick={() => handleAddNestedCondition(criteria)}\n startIcon={<AddIcon fontSize=\"small\" />}\n endIcon={\n <Tooltip title={tooltipTitle()} placement=\"top\">\n <HelpOutlineIcon\n fontSize=\"small\"\n style={{ marginLeft: '0.25rem' }}\n />\n </Tooltip>\n }\n >\n Add Nested Condition\n </Button>\n </Box>\n )\n );\n};\n"],"names":["React"],"mappings":";;;;;;;;;;AAsCO,MAAM,6BAA6B,CAAC;AAAA,EACzC,YAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,qBAAA;AAAA,EACA,YAAA;AAAA,EACA,qBAAA;AAAA,EACA;AACF,CAAuC,KAAA;AACrC,EAAM,MAAA,6BAAA,GAAgC,CAAC,KAA+B,KAAA;AACpE,IAAA,OAAO,MAAM,SAAU,CAAA,CAAA,CAAA,KAAK,qBAAsB,CAAA,CAAC,CAAC,CAAK,IAAA,CAAA;AAAA,GAC3D;AACA,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,MAAM,YAAe,GAAA;AAAA,MACnB,GAAI,YAAa,CAAA,KAAA,IAAS,EAAC;AAAA,MAC3B,GAAI,YAAa,CAAA,KAAA,IAAS;AAAC,KAC7B;AAEA,IAAM,MAAA,yBAAA,GACJ,8BAA8B,YAAY,CAAA;AAC5C,IAAA,IAAI,8BAA8B,EAAI,EAAA;AACpC,MAAa,YAAA,CAAA,MAAA;AAAA,QACX,yBAAA;AAAA,QACA,CAAA;AAAA,QACA,eAAe,qBAAqB;AAAA,OACtC;AAAA,KACK,MAAA;AACL,MAAa,YAAA,CAAA,IAAA,CAAK,cAAe,CAAA,qBAAqB,CAAC,CAAA;AAAA;AAGzD,IAAa,YAAA,CAAA,EAAE,CAAC,QAAQ,GAAG,CAAC,GAAG,YAAY,GAAG,CAAA;AAC9C,IAAA,YAAA,CAAa,yBAAyB,CAAA;AAAA,GACxC;AAEA,EAAA,OAAA,CACG,QAAa,KAAA,SAAA,CAAU,KAAS,IAAA,QAAA,KAAa,UAAU,KACtD,qBAAAA,cAAA,CAAA,aAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,EAAI,EAAA,CAAA;AAAA,MACJ,EAAI,EAAA,CAAA;AAAA,MACJ,EAAI,EAAA;AAAA,QACF,OAAS,EAAA,MAAA;AAAA,QACT,aAAe,EAAA,QAAA;AAAA,QACf,UAAY,EAAA;AAAA;AACd,KAAA;AAAA,oBAEAA,cAAA,CAAA,aAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,EAAI,EAAA;AAAA,UACF,KAAO,EAAA,CAAA,KAAA,KAAS,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA;AAAA,SACxC;AAAA,QACA,IAAK,EAAA,OAAA;AAAA,QACL,OAAS,EAAA,aAAA;AAAA,QACT,SAAW,kBAAAA,cAAA,CAAA,aAAA,CAAC,OAAQ,EAAA,EAAA,QAAA,EAAS,OAAQ,EAAA;AAAA,OAAA;AAAA,MACtC;AAAA,KAED;AAAA,oBACAA,cAAA,CAAA,aAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,EAAI,EAAA;AAAA,UACF,KAAO,EAAA,CAAA,KAAA,KAAS,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA;AAAA,SACxC;AAAA,QACA,IAAK,EAAA,OAAA;AAAA,QACL,OAAA,EAAS,MAAM,wBAAA,CAAyB,QAAQ,CAAA;AAAA,QAChD,SAAW,kBAAAA,cAAA,CAAA,aAAA,CAAC,OAAQ,EAAA,EAAA,QAAA,EAAS,OAAQ,EAAA,CAAA;AAAA,QACrC,yBACGA,cAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAQ,OAAO,YAAa,EAAA,EAAG,WAAU,KACxC,EAAA,kBAAAA,cAAA,CAAA,aAAA;AAAA,UAAC,eAAA;AAAA,UAAA;AAAA,YACC,QAAS,EAAA,OAAA;AAAA,YACT,KAAA,EAAO,EAAE,UAAA,EAAY,SAAU;AAAA;AAAA,SAEnC;AAAA,OAAA;AAAA,MAEH;AAAA;AAED,GACF;AAGN;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import { getDefaultRule, ruleOptionDisabled } from '../../utils/conditional-access-utils.esm.js';
3
3
  import { ConditionsFormRowFields } from './ConditionsFormRowFields.esm.js';
4
4
  import { criterias } from './const.esm.js';
@@ -12,7 +12,7 @@ const ConditionRule = ({
12
12
  setErrors,
13
13
  setRemoveAllClicked
14
14
  }) => {
15
- return criteria === criterias.condition && /* @__PURE__ */ React.createElement(
15
+ return criteria === criterias.condition && /* @__PURE__ */ React__default.createElement(
16
16
  ConditionsFormRowFields,
17
17
  {
18
18
  oldCondition: conditionRow.condition ?? getDefaultRule(selPluginResourceType),
@@ -23,7 +23,7 @@ const ConditionRule = ({
23
23
  setErrors,
24
24
  optionDisabled: (ruleOption) => ruleOptionDisabled(
25
25
  ruleOption,
26
- conditionRow.condition ? [conditionRow.condition] : void 0
26
+ conditionRow.condition ? [conditionRow.condition] : undefined
27
27
  ),
28
28
  setRemoveAllClicked
29
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionRule.esm.js","sources":["../../../src/components/ConditionalAccess/ConditionRule.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 {\n getDefaultRule,\n ruleOptionDisabled,\n} from '../../utils/conditional-access-utils';\nimport { ConditionsFormRowFields } from './ConditionsFormRowFields';\nimport { criterias } from './const';\nimport { AccessConditionsErrors, ConditionsData, RulesData } from './types';\n\ntype ConditionRuleProps = {\n conditionRow: ConditionsData;\n selPluginResourceType: string;\n onRuleChange: (newCondition: ConditionsData) => void;\n criteria: string;\n conditionRulesData?: RulesData;\n setErrors: React.Dispatch<\n React.SetStateAction<AccessConditionsErrors | undefined>\n >;\n setRemoveAllClicked: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nexport const ConditionRule = ({\n conditionRow,\n selPluginResourceType,\n onRuleChange,\n criteria,\n conditionRulesData,\n setErrors,\n setRemoveAllClicked,\n}: ConditionRuleProps) => {\n return (\n criteria === criterias.condition && (\n <ConditionsFormRowFields\n oldCondition={\n conditionRow.condition ?? 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.condition ? [conditionRow.condition] : undefined,\n )\n }\n setRemoveAllClicked={setRemoveAllClicked}\n />\n )\n );\n};\n"],"names":[],"mappings":";;;;;AAqCO,MAAM,gBAAgB,CAAC;AAAA,EAC5B,YAAA;AAAA,EACA,qBAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,kBAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAA0B,KAAA;AACxB,EACE,OAAA,QAAA,KAAa,UAAU,SACrB,oBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACC,YACE,EAAA,YAAA,CAAa,SAAa,IAAA,cAAA,CAAe,qBAAqB,CAAA;AAAA,MAEhE,YAAA;AAAA,MACA,YAAA;AAAA,MACA,QAAA;AAAA,MACA,kBAAA;AAAA,MACA,SAAA;AAAA,MACA,gBAAgB,CACd,UAAA,KAAA,kBAAA;AAAA,QACE,UAAA;AAAA,QACA,YAAa,CAAA,SAAA,GAAY,CAAC,YAAA,CAAa,SAAS,CAAI,GAAA,KAAA;AAAA,OACtD;AAAA,MAEF;AAAA;AAAA,GACF;AAGN;;;;"}
1
+ {"version":3,"file":"ConditionRule.esm.js","sources":["../../../src/components/ConditionalAccess/ConditionRule.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 {\n getDefaultRule,\n ruleOptionDisabled,\n} from '../../utils/conditional-access-utils';\nimport { ConditionsFormRowFields } from './ConditionsFormRowFields';\nimport { criterias } from './const';\nimport { AccessConditionsErrors, ConditionsData, RulesData } from './types';\n\ntype ConditionRuleProps = {\n conditionRow: ConditionsData;\n selPluginResourceType: string;\n onRuleChange: (newCondition: ConditionsData) => void;\n criteria: string;\n conditionRulesData?: RulesData;\n setErrors: React.Dispatch<\n React.SetStateAction<AccessConditionsErrors | undefined>\n >;\n setRemoveAllClicked: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nexport const ConditionRule = ({\n conditionRow,\n selPluginResourceType,\n onRuleChange,\n criteria,\n conditionRulesData,\n setErrors,\n setRemoveAllClicked,\n}: ConditionRuleProps) => {\n return (\n criteria === criterias.condition && (\n <ConditionsFormRowFields\n oldCondition={\n conditionRow.condition ?? 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.condition ? [conditionRow.condition] : undefined,\n )\n }\n setRemoveAllClicked={setRemoveAllClicked}\n />\n )\n );\n};\n"],"names":["React"],"mappings":";;;;;AAqCO,MAAM,gBAAgB,CAAC;AAAA,EAC5B,YAAA;AAAA,EACA,qBAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,kBAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAA0B,KAAA;AACxB,EACE,OAAA,QAAA,KAAa,UAAU,SACrB,oBAAAA,cAAA,CAAA,aAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACC,YACE,EAAA,YAAA,CAAa,SAAa,IAAA,cAAA,CAAe,qBAAqB,CAAA;AAAA,MAEhE,YAAA;AAAA,MACA,YAAA;AAAA,MACA,QAAA;AAAA,MACA,kBAAA;AAAA,MACA,SAAA;AAAA,MACA,gBAAgB,CACd,UAAA,KAAA,kBAAA;AAAA,QACE,UAAA;AAAA,QACA,YAAa,CAAA,SAAA,GAAY,CAAC,YAAA,CAAa,SAAS,CAAI,GAAA;AAAA,OACtD;AAAA,MAEF;AAAA;AAAA,GACF;AAGN;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
  import CloseIcon from '@mui/icons-material/Close';
3
3
  import Box from '@mui/material/Box';
4
4
  import Drawer from '@mui/material/Drawer';
@@ -14,7 +14,7 @@ const ConditionalAccessSidebar = ({
14
14
  conditionRulesData,
15
15
  conditionsFormVal
16
16
  }) => {
17
- return /* @__PURE__ */ React.createElement(
17
+ return /* @__PURE__ */ React__default.createElement(
18
18
  Drawer,
19
19
  {
20
20
  anchor: "right",
@@ -30,7 +30,7 @@ const ConditionalAccessSidebar = ({
30
30
  }
31
31
  }
32
32
  },
33
- /* @__PURE__ */ React.createElement(
33
+ /* @__PURE__ */ React__default.createElement(
34
34
  Box,
35
35
  {
36
36
  sx: {
@@ -41,7 +41,7 @@ const ConditionalAccessSidebar = ({
41
41
  backgroundColor: (theme) => `${theme.palette.background.paper}`
42
42
  }
43
43
  },
44
- /* @__PURE__ */ React.createElement(
44
+ /* @__PURE__ */ React__default.createElement(
45
45
  Box,
46
46
  {
47
47
  sx: {
@@ -53,7 +53,7 @@ const ConditionalAccessSidebar = ({
53
53
  fontFamily: (theme) => theme.typography.fontFamily
54
54
  }
55
55
  },
56
- /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Box, { sx: { display: "flex", gap: "5px" } }, /* @__PURE__ */ React.createElement(Typography, { sx: { fontWeight: 500 }, variant: "h5" }, "Configure access for the"), /* @__PURE__ */ React.createElement(Typography, { style: { fontWeight: 600 }, variant: "h5" }, selPluginResourceType)), /* @__PURE__ */ React.createElement(
56
+ /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(Box, { sx: { display: "flex", gap: "5px" } }, /* @__PURE__ */ React__default.createElement(Typography, { sx: { fontWeight: 500 }, variant: "h5" }, "Configure access for the"), /* @__PURE__ */ React__default.createElement(Typography, { style: { fontWeight: 600 }, variant: "h5" }, selPluginResourceType)), /* @__PURE__ */ React__default.createElement(
57
57
  Typography,
58
58
  {
59
59
  variant: "body2",
@@ -64,9 +64,9 @@ const ConditionalAccessSidebar = ({
64
64
  },
65
65
  align: "left"
66
66
  },
67
- "By default, the selected resource type will be visible to the chosen users in step two. If you want to restrict or grant permission to specific plugin resource type rule, select it and add the required parameters."
67
+ "By default, the selected resource type is visible to all added users. If you want to restrict or grant permission to specific plugin rules, select them and add the parameters."
68
68
  )),
69
- /* @__PURE__ */ React.createElement(
69
+ /* @__PURE__ */ React__default.createElement(
70
70
  IconButton,
71
71
  {
72
72
  key: "dismiss",
@@ -74,10 +74,10 @@ const ConditionalAccessSidebar = ({
74
74
  onClick: onClose,
75
75
  color: "inherit"
76
76
  },
77
- /* @__PURE__ */ React.createElement(CloseIcon, { fontSize: "small" })
77
+ /* @__PURE__ */ React__default.createElement(CloseIcon, { fontSize: "small" })
78
78
  )
79
79
  ),
80
- /* @__PURE__ */ React.createElement(
80
+ /* @__PURE__ */ React__default.createElement(
81
81
  ConditionsForm,
82
82
  {
83
83
  conditionRulesData,
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionalAccessSidebar.esm.js","sources":["../../../src/components/ConditionalAccess/ConditionalAccessSidebar.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 CloseIcon from '@mui/icons-material/Close';\nimport Box from '@mui/material/Box';\nimport Drawer from '@mui/material/Drawer';\nimport IconButton from '@mui/material/IconButton';\nimport Typography from '@mui/material/Typography';\n\nimport { ConditionsForm } from './ConditionsForm';\nimport { ConditionsData, RulesData } from './types';\n\ntype ConditionalAccessSidebarProps = {\n open: boolean;\n onClose: () => void;\n onSave: (conditions?: ConditionsData) => void;\n selPluginResourceType: string;\n conditionRulesData?: RulesData;\n conditionsFormVal?: ConditionsData;\n};\n\nexport const ConditionalAccessSidebar = ({\n open,\n onClose,\n onSave,\n selPluginResourceType,\n conditionRulesData,\n conditionsFormVal,\n}: ConditionalAccessSidebarProps) => {\n return (\n <Drawer\n anchor=\"right\"\n open={open}\n data-testid=\"rules-sidebar\"\n PaperProps={{\n sx: {\n ['@media (max-width: 960px)']: {\n width: '100%',\n },\n width: '50%',\n height: '100%',\n },\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexFlow: 'column',\n justifyContent: 'space-between',\n height: '100%',\n backgroundColor: theme => `${theme.palette.background.paper}`,\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'baseline',\n padding: theme => theme.spacing(2.5),\n fontFamily: theme => theme.typography.fontFamily,\n }}\n >\n <Box>\n <Box sx={{ display: 'flex', gap: '5px' }}>\n <Typography sx={{ fontWeight: 500 }} variant=\"h5\">\n Configure access for the\n </Typography>\n <Typography style={{ fontWeight: 600 }} variant=\"h5\">\n {selPluginResourceType}\n </Typography>\n </Box>\n <Typography\n variant=\"body2\"\n sx={{\n fontWeight: 400,\n fontFamily: theme => theme.typography.fontFamily,\n paddingTop: theme => theme.spacing(1),\n }}\n align=\"left\"\n >\n By default, the selected resource type will be visible to the\n chosen users in step two. If you want to restrict or grant\n permission to specific plugin resource type rule, select it and\n add the required parameters.\n </Typography>\n </Box>\n <IconButton\n key=\"dismiss\"\n title=\"Close the drawer\"\n onClick={onClose}\n color=\"inherit\"\n >\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n <ConditionsForm\n conditionRulesData={conditionRulesData}\n selPluginResourceType={selPluginResourceType}\n conditionsFormVal={conditionsFormVal}\n onClose={onClose}\n onSave={onSave}\n />\n </Box>\n </Drawer>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConditionalAccessSidebar.esm.js","sources":["../../../src/components/ConditionalAccess/ConditionalAccessSidebar.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 CloseIcon from '@mui/icons-material/Close';\nimport Box from '@mui/material/Box';\nimport Drawer from '@mui/material/Drawer';\nimport IconButton from '@mui/material/IconButton';\nimport Typography from '@mui/material/Typography';\n\nimport { ConditionsForm } from './ConditionsForm';\nimport { ConditionsData, RulesData } from './types';\n\ntype ConditionalAccessSidebarProps = {\n open: boolean;\n onClose: () => void;\n onSave: (conditions?: ConditionsData) => void;\n selPluginResourceType: string;\n conditionRulesData?: RulesData;\n conditionsFormVal?: ConditionsData;\n};\n\nexport const ConditionalAccessSidebar = ({\n open,\n onClose,\n onSave,\n selPluginResourceType,\n conditionRulesData,\n conditionsFormVal,\n}: ConditionalAccessSidebarProps) => {\n return (\n <Drawer\n anchor=\"right\"\n open={open}\n data-testid=\"rules-sidebar\"\n PaperProps={{\n sx: {\n ['@media (max-width: 960px)']: {\n width: '100%',\n },\n width: '50%',\n height: '100%',\n },\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexFlow: 'column',\n justifyContent: 'space-between',\n height: '100%',\n backgroundColor: theme => `${theme.palette.background.paper}`,\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'baseline',\n padding: theme => theme.spacing(2.5),\n fontFamily: theme => theme.typography.fontFamily,\n }}\n >\n <Box>\n <Box sx={{ display: 'flex', gap: '5px' }}>\n <Typography sx={{ fontWeight: 500 }} variant=\"h5\">\n Configure access for the\n </Typography>\n <Typography style={{ fontWeight: 600 }} variant=\"h5\">\n {selPluginResourceType}\n </Typography>\n </Box>\n <Typography\n variant=\"body2\"\n sx={{\n fontWeight: 400,\n fontFamily: theme => theme.typography.fontFamily,\n paddingTop: theme => theme.spacing(1),\n }}\n align=\"left\"\n >\n By default, the selected resource type is visible to all added\n users. If you want to restrict or grant permission to specific\n plugin rules, select them and add the parameters.\n </Typography>\n </Box>\n <IconButton\n key=\"dismiss\"\n title=\"Close the drawer\"\n onClick={onClose}\n color=\"inherit\"\n >\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n <ConditionsForm\n conditionRulesData={conditionRulesData}\n selPluginResourceType={selPluginResourceType}\n conditionsFormVal={conditionsFormVal}\n onClose={onClose}\n onSave={onSave}\n />\n </Box>\n </Drawer>\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 WarningIcon from '@mui/icons-material/Warning';
3
3
  import Alert from '@mui/material/Alert';
4
4
  import AlertTitle from '@mui/material/AlertTitle';
@@ -15,7 +15,7 @@ const ConditionsForm = ({
15
15
  onClose,
16
16
  onSave
17
17
  }) => {
18
- const [conditions, setConditions] = React.useState(
18
+ const [conditions, setConditions] = React__default.useState(
19
19
  conditionsFormVal ?? {
20
20
  condition: {
21
21
  rule: "",
@@ -24,11 +24,11 @@ const ConditionsForm = ({
24
24
  }
25
25
  }
26
26
  );
27
- const [criteria, setCriteria] = React.useState(
27
+ const [criteria, setCriteria] = React__default.useState(
28
28
  Object.keys(conditions)[0] ?? criterias.condition
29
29
  );
30
- const [errors, setErrors] = React.useState(initializeErrors(criteria, conditions));
31
- const [removeAllClicked, setRemoveAllClicked] = React.useState(false);
30
+ const [errors, setErrors] = React__default.useState(initializeErrors(criteria, conditions));
31
+ const [removeAllClicked, setRemoveAllClicked] = React__default.useState(false);
32
32
  const flattenConditions = (conditionData) => {
33
33
  const flatConditions = [];
34
34
  const processCondition = (condition) => {
@@ -110,7 +110,7 @@ const ConditionsForm = ({
110
110
  ).includes("rule");
111
111
  });
112
112
  };
113
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
113
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(
114
114
  Box,
115
115
  {
116
116
  sx: {
@@ -120,7 +120,7 @@ const ConditionsForm = ({
120
120
  overflow: "auto"
121
121
  }
122
122
  },
123
- /* @__PURE__ */ React.createElement(
123
+ /* @__PURE__ */ React__default.createElement(
124
124
  ConditionsFormRow,
125
125
  {
126
126
  conditionRulesData,
@@ -133,18 +133,18 @@ const ConditionsForm = ({
133
133
  setRemoveAllClicked
134
134
  }
135
135
  ),
136
- hasMultiLevelNestedConditions() && /* @__PURE__ */ React.createElement(
136
+ hasMultiLevelNestedConditions() && /* @__PURE__ */ React__default.createElement(
137
137
  Alert,
138
138
  {
139
- icon: /* @__PURE__ */ React.createElement(WarningIcon, null),
139
+ icon: /* @__PURE__ */ React__default.createElement(WarningIcon, null),
140
140
  style: { margin: "1.5rem 0 1rem 0" },
141
141
  severity: "warning",
142
142
  "data-testid": "multi-level-nested-conditions-warning"
143
143
  },
144
- /* @__PURE__ */ React.createElement(AlertTitle, { "data-testid": "multi-level-nested-conditions-warning-title" }, "Multiple levels of nested conditions are not supported"),
144
+ /* @__PURE__ */ React__default.createElement(AlertTitle, { "data-testid": "multi-level-nested-conditions-warning-title" }, "Multiple levels of nested conditions are not supported"),
145
145
  "Only one level is displayed. Please use the CLI to view all nested conditions."
146
146
  )
147
- ), /* @__PURE__ */ React.createElement(
147
+ ), /* @__PURE__ */ React__default.createElement(
148
148
  Box,
149
149
  {
150
150
  sx: {
@@ -159,7 +159,7 @@ const ConditionsForm = ({
159
159
  }
160
160
  }
161
161
  },
162
- /* @__PURE__ */ React.createElement(
162
+ /* @__PURE__ */ React__default.createElement(
163
163
  Button,
164
164
  {
165
165
  variant: "contained",
@@ -168,13 +168,13 @@ const ConditionsForm = ({
168
168
  disabled: isSaveDisabled(),
169
169
  onClick: () => {
170
170
  if (removeAllClicked) {
171
- onSave(void 0);
171
+ onSave(undefined);
172
172
  } else onSave(conditions);
173
173
  }
174
174
  },
175
175
  "Save"
176
176
  ),
177
- /* @__PURE__ */ React.createElement(
177
+ /* @__PURE__ */ React__default.createElement(
178
178
  Button,
179
179
  {
180
180
  variant: "outlined",
@@ -184,7 +184,7 @@ const ConditionsForm = ({
184
184
  },
185
185
  "Cancel"
186
186
  ),
187
- /* @__PURE__ */ React.createElement(
187
+ /* @__PURE__ */ React__default.createElement(
188
188
  Button,
189
189
  {
190
190
  variant: "text",