@bigbinary/neeto-team-members-frontend 5.0.28 → 5.0.30

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 (194) hide show
  1. package/app/javascript/src/translations/ar.json +6 -4
  2. package/app/javascript/src/translations/bg.json +6 -4
  3. package/app/javascript/src/translations/ca.json +8 -6
  4. package/app/javascript/src/translations/cs.json +4 -2
  5. package/app/javascript/src/translations/da.json +4 -2
  6. package/app/javascript/src/translations/de.json +4 -2
  7. package/app/javascript/src/translations/en.json +8 -6
  8. package/app/javascript/src/translations/es-MX.json +8 -6
  9. package/app/javascript/src/translations/es.json +8 -6
  10. package/app/javascript/src/translations/et.json +6 -4
  11. package/app/javascript/src/translations/fi.json +4 -2
  12. package/app/javascript/src/translations/fil.json +9 -7
  13. package/app/javascript/src/translations/fr.json +5 -3
  14. package/app/javascript/src/translations/he.json +5 -3
  15. package/app/javascript/src/translations/hi.json +7 -5
  16. package/app/javascript/src/translations/hr.json +4 -2
  17. package/app/javascript/src/translations/hu.json +4 -2
  18. package/app/javascript/src/translations/id.json +10 -8
  19. package/app/javascript/src/translations/it.json +8 -6
  20. package/app/javascript/src/translations/ja.json +6 -4
  21. package/app/javascript/src/translations/ko.json +4 -2
  22. package/app/javascript/src/translations/nl.json +7 -5
  23. package/app/javascript/src/translations/pl.json +5 -3
  24. package/app/javascript/src/translations/pt-BR.json +10 -8
  25. package/app/javascript/src/translations/pt.json +10 -8
  26. package/app/javascript/src/translations/ro.json +9 -7
  27. package/app/javascript/src/translations/ru.json +5 -3
  28. package/app/javascript/src/translations/sk.json +6 -4
  29. package/app/javascript/src/translations/sl.json +7 -5
  30. package/app/javascript/src/translations/sv.json +4 -2
  31. package/app/javascript/src/translations/th.json +5 -3
  32. package/app/javascript/src/translations/tr.json +10 -8
  33. package/app/javascript/src/translations/uk.json +7 -5
  34. package/app/javascript/src/translations/vi.json +7 -5
  35. package/app/javascript/src/translations/zh-CN.json +6 -4
  36. package/app/javascript/src/translations/zh-TW.json +5 -3
  37. package/dist/.ready +1 -1
  38. package/dist/ActionBlock-C9Iy0jGZ.js +53 -0
  39. package/dist/ActionBlock-C9Iy0jGZ.js.map +1 -0
  40. package/dist/ActionBlock-jgw1N-As.js +46 -0
  41. package/dist/ActionBlock-jgw1N-As.js.map +1 -0
  42. package/dist/Groups.js +1 -0
  43. package/dist/Groups.js.map +1 -1
  44. package/dist/InviteLinkError-AphtWLhe.js +63 -0
  45. package/dist/InviteLinkError-AphtWLhe.js.map +1 -0
  46. package/dist/InviteLinkError-C6OLGrD0.js +41 -0
  47. package/dist/InviteLinkError-C6OLGrD0.js.map +1 -0
  48. package/dist/ManageMember.js +3 -2
  49. package/dist/ManageMember.js.map +1 -1
  50. package/dist/MembersInvite.js +1 -38
  51. package/dist/MembersInvite.js.map +1 -1
  52. package/dist/Permissions-Bd6kLoPt.js +233 -0
  53. package/dist/Permissions-Bd6kLoPt.js.map +1 -0
  54. package/dist/Permissions-Bn862irP.js +244 -0
  55. package/dist/Permissions-Bn862irP.js.map +1 -0
  56. package/dist/Profile.js +125 -106
  57. package/dist/Profile.js.map +1 -1
  58. package/dist/{ProfileImage-Cpprgo-V.js → ProfileImage-QeSzsfzl.js} +1 -7
  59. package/dist/{ProfileImage-B_gfcE6b.js.map → ProfileImage-QeSzsfzl.js.map} +1 -1
  60. package/dist/{ProfileImage-B_gfcE6b.js → ProfileImage-Ypf3HreX.js} +2 -7
  61. package/dist/{ProfileImage-Cpprgo-V.js.map → ProfileImage-Ypf3HreX.js.map} +1 -1
  62. package/dist/Roles.js +3 -1398
  63. package/dist/Roles.js.map +1 -1
  64. package/dist/RolesRadioGroup-fBmS68cW.js +393 -0
  65. package/dist/RolesRadioGroup-fBmS68cW.js.map +1 -0
  66. package/dist/RolesRadioGroup-tSNC-Wtu.js +352 -0
  67. package/dist/RolesRadioGroup-tSNC-Wtu.js.map +1 -0
  68. package/dist/Select-CshPoN2b.js +119 -0
  69. package/dist/Select-CshPoN2b.js.map +1 -0
  70. package/dist/Select-DZ56UG-l.js +109 -0
  71. package/dist/Select-DZ56UG-l.js.map +1 -0
  72. package/dist/TeamMembers.js +3 -2
  73. package/dist/TeamMembers.js.map +1 -1
  74. package/dist/cjs/Groups.js +1 -0
  75. package/dist/cjs/Groups.js.map +1 -1
  76. package/dist/cjs/ManageMember.js +3 -2
  77. package/dist/cjs/ManageMember.js.map +1 -1
  78. package/dist/cjs/MembersInvite.js +2 -39
  79. package/dist/cjs/MembersInvite.js.map +1 -1
  80. package/dist/cjs/Profile.js +125 -104
  81. package/dist/cjs/Profile.js.map +1 -1
  82. package/dist/cjs/Roles.js +6 -1402
  83. package/dist/cjs/Roles.js.map +1 -1
  84. package/dist/cjs/TeamMembers.js +3 -2
  85. package/dist/cjs/TeamMembers.js.map +1 -1
  86. package/dist/cjs/index.js +6 -2
  87. package/dist/cjs/index.js.map +1 -1
  88. package/dist/cjs/utils.js +3 -512
  89. package/dist/cjs/utils.js.map +1 -1
  90. package/dist/cjs/v2/Groups.js +781 -0
  91. package/dist/cjs/v2/Groups.js.map +1 -0
  92. package/dist/cjs/v2/ManageMember.js +49 -0
  93. package/dist/cjs/v2/ManageMember.js.map +1 -0
  94. package/dist/cjs/v2/MembersDropdown.js +200 -0
  95. package/dist/cjs/v2/MembersDropdown.js.map +1 -0
  96. package/dist/cjs/v2/MembersInvite.js +270 -0
  97. package/dist/cjs/v2/MembersInvite.js.map +1 -0
  98. package/dist/cjs/v2/Permissions.js +19 -0
  99. package/dist/cjs/v2/Permissions.js.map +1 -0
  100. package/dist/cjs/v2/Profile.js +686 -0
  101. package/dist/cjs/v2/Profile.js.map +1 -0
  102. package/dist/cjs/v2/Roles.js +1258 -0
  103. package/dist/cjs/v2/Roles.js.map +1 -0
  104. package/dist/cjs/v2/RolesRadioGroup.js +26 -0
  105. package/dist/cjs/v2/RolesRadioGroup.js.map +1 -0
  106. package/dist/cjs/v2/TeamMembers.js +949 -0
  107. package/dist/cjs/v2/TeamMembers.js.map +1 -0
  108. package/dist/cjs/v2/TeamsAndMembersDropdown.js +438 -0
  109. package/dist/cjs/v2/TeamsAndMembersDropdown.js.map +1 -0
  110. package/dist/cjs/v2/TeamsDropdown.js +112 -0
  111. package/dist/cjs/v2/TeamsDropdown.js.map +1 -0
  112. package/dist/cjs/v2/constants.js +28 -0
  113. package/dist/cjs/v2/constants.js.map +1 -0
  114. package/dist/cjs/v2/hooks.js +33 -0
  115. package/dist/cjs/v2/hooks.js.map +1 -0
  116. package/dist/cjs/v2/utils.js +34 -0
  117. package/dist/cjs/v2/utils.js.map +1 -0
  118. package/dist/constants-B1L6arSR.js +49 -0
  119. package/dist/constants-B1L6arSR.js.map +1 -0
  120. package/dist/constants-CMNbKvoF.js +61 -0
  121. package/dist/constants-CMNbKvoF.js.map +1 -0
  122. package/dist/index-BkEJugj1.js +184 -0
  123. package/dist/index-BkEJugj1.js.map +1 -0
  124. package/dist/index-C6ph58Vg.js +169 -0
  125. package/dist/index-C6ph58Vg.js.map +1 -0
  126. package/dist/{index-C26Vdbk5.js → index-DFFRcH_S.js} +2 -2
  127. package/dist/{index-C26Vdbk5.js.map → index-DFFRcH_S.js.map} +1 -1
  128. package/dist/{index-CeAVMlhg.js → index-DTONHIze.js} +2 -2
  129. package/dist/{index-CeAVMlhg.js.map → index-DTONHIze.js.map} +1 -1
  130. package/dist/index-DeYRFiJy.js +119 -0
  131. package/dist/index-DeYRFiJy.js.map +1 -0
  132. package/dist/index-DgxgaCRt.js +1317 -0
  133. package/dist/index-DgxgaCRt.js.map +1 -0
  134. package/dist/index-DqqXniGT.js +126 -0
  135. package/dist/index-DqqXniGT.js.map +1 -0
  136. package/dist/index-Dus0cbgo.js +1407 -0
  137. package/dist/index-Dus0cbgo.js.map +1 -0
  138. package/dist/index-aJIUa1Bd.js +1342 -0
  139. package/dist/index-aJIUa1Bd.js.map +1 -0
  140. package/dist/index-ureO6U2w.js +1401 -0
  141. package/dist/index-ureO6U2w.js.map +1 -0
  142. package/dist/index.js +6 -2
  143. package/dist/index.js.map +1 -1
  144. package/dist/pluralize-BoSEafiC.js +514 -0
  145. package/dist/pluralize-BoSEafiC.js.map +1 -0
  146. package/dist/pluralize-CFlSRsRn.js +516 -0
  147. package/dist/pluralize-CFlSRsRn.js.map +1 -0
  148. package/dist/queryClient-B-JFya8X.js +16 -0
  149. package/dist/queryClient-B-JFya8X.js.map +1 -0
  150. package/dist/queryClient-BncpekSV.js +14 -0
  151. package/dist/queryClient-BncpekSV.js.map +1 -0
  152. package/dist/useCountries-CQdvJz0R.js +249 -0
  153. package/dist/useCountries-CQdvJz0R.js.map +1 -0
  154. package/dist/useCountries-DePOPtue.js +235 -0
  155. package/dist/useCountries-DePOPtue.js.map +1 -0
  156. package/dist/useTeamsApi-CWp4G7JZ.js +179 -0
  157. package/dist/useTeamsApi-CWp4G7JZ.js.map +1 -0
  158. package/dist/useTeamsApi-Ch5sHR2_.js +197 -0
  159. package/dist/useTeamsApi-Ch5sHR2_.js.map +1 -0
  160. package/dist/utils.js +2 -511
  161. package/dist/utils.js.map +1 -1
  162. package/dist/v2/Groups.js +749 -0
  163. package/dist/v2/Groups.js.map +1 -0
  164. package/dist/v2/ManageMember.js +43 -0
  165. package/dist/v2/ManageMember.js.map +1 -0
  166. package/dist/v2/MembersDropdown.js +193 -0
  167. package/dist/v2/MembersDropdown.js.map +1 -0
  168. package/dist/v2/MembersInvite.js +242 -0
  169. package/dist/v2/MembersInvite.js.map +1 -0
  170. package/dist/v2/Permissions.js +13 -0
  171. package/dist/v2/Permissions.js.map +1 -0
  172. package/dist/v2/Profile.js +656 -0
  173. package/dist/v2/Profile.js.map +1 -0
  174. package/dist/v2/Roles.js +1242 -0
  175. package/dist/v2/Roles.js.map +1 -0
  176. package/dist/v2/RolesRadioGroup.js +20 -0
  177. package/dist/v2/RolesRadioGroup.js.map +1 -0
  178. package/dist/v2/TeamMembers.js +937 -0
  179. package/dist/v2/TeamMembers.js.map +1 -0
  180. package/dist/v2/TeamsAndMembersDropdown.js +430 -0
  181. package/dist/v2/TeamsAndMembersDropdown.js.map +1 -0
  182. package/dist/v2/TeamsDropdown.js +106 -0
  183. package/dist/v2/TeamsDropdown.js.map +1 -0
  184. package/dist/v2/constants.js +21 -0
  185. package/dist/v2/constants.js.map +1 -0
  186. package/dist/v2/hooks.js +29 -0
  187. package/dist/v2/hooks.js.map +1 -0
  188. package/dist/v2/utils.js +30 -0
  189. package/dist/v2/utils.js.map +1 -0
  190. package/dist/withReactQuery-CSuiy5RK.js +20 -0
  191. package/dist/withReactQuery-CSuiy5RK.js.map +1 -0
  192. package/dist/withReactQuery-DvSkXhEx.js +26 -0
  193. package/dist/withReactQuery-DvSkXhEx.js.map +1 -0
  194. package/package.json +31 -17
@@ -0,0 +1,233 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
3
+ import { useMemo, Fragment } from 'react';
4
+ import { Typography, Tooltip, Checkbox, Label, cn } from '@bigbinary/neeto-atoms';
5
+ import { useFormikContext } from 'formik';
6
+ import { findById, hyphenate, isNotEmpty } from '@bigbinary/neeto-cist';
7
+ import { SINGULAR } from '@bigbinary/neeto-commons-frontend/constants';
8
+ import { prop, append, concat, equals, groupBy, pluck } from 'ramda';
9
+ import { useTranslation } from 'react-i18next';
10
+ import { n } from './inject-css-C2dztUxs.js';
11
+ import { jsxs, jsx } from 'react/jsx-runtime';
12
+
13
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ var sortPermissionsBySequence = function sortPermissionsBySequence() {
16
+ var _permissions$;
17
+ var permissions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
18
+ return permissions !== null && permissions !== void 0 && (_permissions$ = permissions[0]) !== null && _permissions$ !== void 0 && _permissions$.sequence ? permissions.sort(function (first, second) {
19
+ return first.sequence - second.sequence;
20
+ }) : permissions;
21
+ };
22
+ var getPermissionGroups = function getPermissionGroups() {
23
+ var permissions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
24
+ var sortBySequence = sortPermissionsBySequence(permissions);
25
+ var groupedPermissions = new Map();
26
+ sortBySequence.forEach(function (permission) {
27
+ if (groupedPermissions.has(permission === null || permission === void 0 ? void 0 : permission.category)) {
28
+ var category = groupedPermissions.get(permission.category);
29
+ var currentPermissions = category.get("permissions");
30
+ var _permissions = append(permission, currentPermissions);
31
+ category.set("permissions", _permissions);
32
+ } else {
33
+ var value = new Map();
34
+ value.set("permissions", append(permission, []));
35
+ value.set("isPermissionVisible", true);
36
+ groupedPermissions.set(permission === null || permission === void 0 ? void 0 : permission.category, value);
37
+ }
38
+ });
39
+ return groupedPermissions;
40
+ };
41
+ var getModifiedPermissions = function getModifiedPermissions() {
42
+ var roles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
43
+ var modifiedRoles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
44
+ return modifiedRoles.map(function (role) {
45
+ var oldPermissions = findById(role.id, roles).permissionIds;
46
+ if (equals(oldPermissions, role.permissionIds)) return false;
47
+ return {
48
+ id: role.id,
49
+ permissionIds: role.permissionIds
50
+ };
51
+ }).filter(Boolean);
52
+ };
53
+ var _attachChildrenRecursively = function attachChildrenRecursively(permission, permissionsNameMap, permissionRelationConfig) {
54
+ var _ref = permissionRelationConfig[permission.name] || {},
55
+ children = _ref.children;
56
+ return children ? _objectSpread$1(_objectSpread$1({}, permission), {}, {
57
+ children: children.flatMap(function (childName) {
58
+ var _permissionsNameMap$c;
59
+ var childPermission = (_permissionsNameMap$c = permissionsNameMap[childName]) === null || _permissionsNameMap$c === void 0 ? void 0 : _permissionsNameMap$c[0];
60
+ if (!childPermission) return [];
61
+ return _attachChildrenRecursively(childPermission, permissionsNameMap, permissionRelationConfig);
62
+ })
63
+ }) : permission;
64
+ };
65
+ var _findChildIdsRecursively = function findChildIdsRecursively(permission, permissionsNameMap, permissionRelationConfig) {
66
+ var _ref2 = permissionRelationConfig[permission.name] || {},
67
+ children = _ref2.children;
68
+ return children ? concat(children.flatMap(function (childName) {
69
+ var _permissionsNameMap$c2;
70
+ var childPermission = (_permissionsNameMap$c2 = permissionsNameMap[childName]) === null || _permissionsNameMap$c2 === void 0 ? void 0 : _permissionsNameMap$c2[0];
71
+ if (!childPermission) return [];
72
+ return _findChildIdsRecursively(childPermission, permissionsNameMap, permissionRelationConfig);
73
+ }), [permission.id]) : [permission.id];
74
+ };
75
+ var getChildrenRemovedFromRoot = function getChildrenRemovedFromRoot(_ref3) {
76
+ var permissions = _ref3.permissions,
77
+ permissionsNameMap = _ref3.permissionsNameMap,
78
+ permissionRelationConfig = _ref3.permissionRelationConfig;
79
+ var permissionsWithChildren = permissions.map(function (permission) {
80
+ return _attachChildrenRecursively(permission, permissionsNameMap, permissionRelationConfig);
81
+ });
82
+ var childPermissions = Object.values(permissionRelationConfig).flatMap(prop("children"));
83
+ return permissionsWithChildren.filter(function (permission) {
84
+ return !childPermissions.includes(permission.name);
85
+ });
86
+ };
87
+
88
+ var css = ".ntm-roles-pane__body{margin-bottom:1.5rem;width:100%}.ntm-roles-pane__body-wrapper>*+*{margin-top:1rem}.ntm-roles-pane__body>*+*{margin-top:1.5rem}.ntm-roles-pane__footer{display:flex;gap:.5rem}.ntm-roles-permission__heading{padding-top:.5rem}.ntm-roles-permission__card{background-color:var(--background);display:flex;flex-direction:column;gap:.75rem;padding:.4rem 0;position:relative}.ntm-roles-permission__card:after{background-color:var(--border);content:\"\";height:1px;inset-inline-start:-.9375rem;position:absolute;top:.875rem;width:.625rem}.ntm-roles-permission__card--description{flex-grow:1}.ntm-roles-permission__card--checkbox{padding:0 .5rem}.ntm-roles-permission__sub-blocks{position:relative}.ntm-roles-permission__sub-blocks:before{background-color:var(--border);content:\"\";height:calc(100% - .875rem);inset-inline-start:.5rem;position:absolute;top:0;width:.0625rem}.ntm-roles-permission__sub-blocks:empty{display:none}.ntm-roles-permission-category-card{border:1px solid var(--border);border-radius:.375rem;border-radius:var(--radius,.375rem);padding:.625rem 1.25rem;transition:all .3s}.ntm-roles-permission-category-card--active{background-color:color-mix(in oklch,var(--primary) 10%,transparent);border-color:var(--primary);outline:1px solid var(--primary)}.ntm-roles-permission-category-card--active .ntm-roles-permission__card{background-color:transparent}.ntm-roles-permission-category-card>.ntm-roles-permission__card:after{display:none}@keyframes ntm-roles-permission-blink{0%,to{color:inherit}50%{color:var(--primary);font-weight:700}}.ntm-roles-permission__card--blink label{animation:ntm-roles-permission-blink .6s ease-in-out 0s 3}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3NyYy9jb21wb25lbnRzL3YyL3N0eWxlcy9yb2xlcy1wZXJtaXNzaW9ucy5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0JBRUUsb0JBQXFCLENBRHJCLFVBRUYsQ0FFQSxrQ0FDRSxlQUNGLENBRUEsMEJBQ0UsaUJBQ0YsQ0FFQSx3QkFDRSxZQUFhLENBQ2IsU0FDRixDQUVBLCtCQUNFLGlCQUNGLENBRUEsNEJBQ0Usa0NBQW1DLENBRW5DLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsVUFBWSxDQUNaLGVBQWlCLENBSmpCLGlCQUtGLENBRUEsa0NBQ0UsOEJBQStCLENBQy9CLFVBQVcsQ0FDWCxVQUFXLENBQ1gsNEJBQThCLENBQzlCLGlCQUFrQixDQUNsQixXQUFhLENBQ2IsYUFDRixDQUVBLHlDQUNFLFdBQ0YsQ0FFQSxzQ0FDRSxlQUNGLENBRUEsa0NBQ0UsaUJBQ0YsQ0FFQSx5Q0FDRSw4QkFBK0IsQ0FFL0IsVUFBVyxDQUNYLDJCQUE2QixDQUM3Qix3QkFBMEIsQ0FDMUIsaUJBQWtCLENBSmxCLEtBQU0sQ0FLTixjQUNGLENBRUEsd0NBQ0UsWUFDRixDQUVBLG9DQUdFLDhCQUErQixDQUQvQixxQkFBc0MsQ0FBdEMsbUNBQXNDLENBRHRDLHVCQUF5QixDQUd6QixrQkFDRixDQUVBLDRDQUdFLG1FQUFzRSxDQUZ0RSwyQkFBNEIsQ0FDNUIsZ0NBRUYsQ0FFQSx3RUFDRSw0QkFDRixDQUVBLHNFQUNFLFlBQ0YsQ0FFQSxzQ0FFRSxNQUVFLGFBQ0YsQ0FFQSxJQUNFLG9CQUFxQixDQUNyQixlQUNGLENBQ0YsQ0FFQSx5Q0FDRSx5REFDRiIsInNvdXJjZXNDb250ZW50IjpbIi5udG0tcm9sZXMtcGFuZV9fYm9keSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbi5udG0tcm9sZXMtcGFuZV9fYm9keS13cmFwcGVyPiorKiB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5udG0tcm9sZXMtcGFuZV9fYm9keT4qKyoge1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG59XG5cbi5udG0tcm9sZXMtcGFuZV9fZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjVyZW07XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9faGVhZGluZyB7XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC43NXJlbTtcbiAgcGFkZGluZzogMC40cmVtIDA7XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib3JkZXIpO1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6IDFweDtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAtMC45Mzc1cmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC44NzVyZW07XG4gIHdpZHRoOiAwLjYyNXJlbTtcbn1cblxuLm50bS1yb2xlcy1wZXJtaXNzaW9uX19jYXJkLS1kZXNjcmlwdGlvbiB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cblxuLm50bS1yb2xlcy1wZXJtaXNzaW9uX19jYXJkLS1jaGVja2JveCB7XG4gIHBhZGRpbmc6IDAgMC41cmVtO1xufVxuXG4ubnRtLXJvbGVzLXBlcm1pc3Npb25fX3N1Yi1ibG9ja3Mge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fc3ViLWJsb2Nrczo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9yZGVyKTtcbiAgdG9wOiAwO1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDAuODc1cmVtKTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAwLjVyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDAuMDYyNXJlbTtcbn1cblxuLm50bS1yb2xlcy1wZXJtaXNzaW9uX19zdWItYmxvY2tzOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm50bS1yb2xlcy1wZXJtaXNzaW9uLWNhdGVnb3J5LWNhcmQge1xuICBwYWRkaW5nOiAwLjYyNXJlbSAxLjI1cmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMsIDAuMzc1cmVtKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbi1jYXRlZ29yeS1jYXJkLS1hY3RpdmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xuICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tcHJpbWFyeSk7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tcHJpbWFyeSkgMTAlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbi1jYXRlZ29yeS1jYXJkLS1hY3RpdmUgLm50bS1yb2xlcy1wZXJtaXNzaW9uX19jYXJkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbi1jYXRlZ29yeS1jYXJkPi5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5Aa2V5ZnJhbWVzIG50bS1yb2xlcy1wZXJtaXNzaW9uLWJsaW5rIHtcblxuICAwJSxcbiAgMTAwJSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cblxuICA1MCUge1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxufVxuXG4ubnRtLXJvbGVzLXBlcm1pc3Npb25fX2NhcmQtLWJsaW5rIGxhYmVsIHtcbiAgYW5pbWF0aW9uOiBudG0tcm9sZXMtcGVybWlzc2lvbi1ibGluayA2MDBtcyBlYXNlLWluLW91dCAwcyAzO1xufVxuIl19 */";
89
+ n(css,{});
90
+
91
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
92
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
93
+ var Permissions = function Permissions(_ref) {
94
+ var _ref$permissions = _ref.permissions,
95
+ permissions = _ref$permissions === void 0 ? [] : _ref$permissions,
96
+ _ref$isDisabled = _ref.isDisabled,
97
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
98
+ _ref$permissionRelati = _ref.permissionRelationConfig,
99
+ permissionRelationConfig = _ref$permissionRelati === void 0 ? {} : _ref$permissionRelati;
100
+ var _useTranslation = useTranslation(),
101
+ t = _useTranslation.t;
102
+ var _useFormikContext = useFormikContext(),
103
+ setFieldValue = _useFormikContext.setFieldValue,
104
+ values = _useFormikContext.values;
105
+ var _values$permissionIds = values.permissionIds,
106
+ permissionIds = _values$permissionIds === void 0 ? [] : _values$permissionIds;
107
+ var permissionsNameMap = groupBy(prop("name"))(permissions);
108
+ var handleTogglePermission = function handleTogglePermission(permissionId) {
109
+ var permission = findById(permissionId, permissions);
110
+ var nextPermissionIds = [];
111
+ if (permissionIds.includes(permissionId)) {
112
+ var childIds = [];
113
+ if (permissionRelationConfig[permission.name]) {
114
+ childIds = _findChildIdsRecursively(permission, permissionsNameMap, permissionRelationConfig);
115
+ }
116
+ var permissionIdsToBeUnchecked = [permissionId].concat(_toConsumableArray(childIds));
117
+ nextPermissionIds = permissionIds.filter(function (id) {
118
+ return !permissionIdsToBeUnchecked.includes(id);
119
+ });
120
+ } else {
121
+ var _uncheckOnSelect$flat;
122
+ var _ref2 = permissionRelationConfig[permission.name] || {},
123
+ uncheckOnSelect = _ref2.uncheckOnSelect;
124
+ var uncheckOnSelectPermissions = (_uncheckOnSelect$flat = uncheckOnSelect === null || uncheckOnSelect === void 0 ? void 0 : uncheckOnSelect.flatMap(function (name) {
125
+ return permissionsNameMap[name];
126
+ })) !== null && _uncheckOnSelect$flat !== void 0 ? _uncheckOnSelect$flat : [];
127
+ var _childIds = uncheckOnSelectPermissions.flatMap(function (permission) {
128
+ return _findChildIdsRecursively(permission, permissionsNameMap, permissionRelationConfig);
129
+ });
130
+ var uncheckedPermissionIds = pluck("id", uncheckOnSelectPermissions);
131
+ var _permissionIdsToBeUnchecked = [].concat(_toConsumableArray(uncheckedPermissionIds), _toConsumableArray(_childIds));
132
+ nextPermissionIds = uncheckOnSelect ? [].concat(_toConsumableArray(permissionIds.filter(function (id) {
133
+ return !_permissionIdsToBeUnchecked.includes(id);
134
+ })), [permissionId]) : [].concat(_toConsumableArray(permissionIds), [permissionId]);
135
+ }
136
+ setFieldValue("permissionIds", nextPermissionIds.sort());
137
+ };
138
+ var groupedPermissions = useMemo(function () {
139
+ var childrenRemovedFromRoot = getChildrenRemovedFromRoot({
140
+ permissions: permissions,
141
+ permissionsNameMap: permissionsNameMap,
142
+ permissionRelationConfig: permissionRelationConfig
143
+ });
144
+ return groupBy(prop("category"))(childrenRemovedFromRoot);
145
+ }, [permissions]); // eslint-disable-line react-hooks/exhaustive-deps
146
+
147
+ var _renderPermission = function renderPermission(_ref3) {
148
+ var _permissionRelationCo;
149
+ var id = _ref3.id,
150
+ name = _ref3.name,
151
+ description = _ref3.description,
152
+ children = _ref3.children,
153
+ _ref3$isParentChecked = _ref3.isParentChecked,
154
+ isParentChecked = _ref3$isParentChecked === void 0 ? true : _ref3$isParentChecked,
155
+ _ref3$index = _ref3.index,
156
+ index = _ref3$index === void 0 ? 1 : _ref3$index;
157
+ var sortedChildren = children && sortPermissionsBySequence(children);
158
+ var isCheckingDisabled = !isParentChecked || isDisabled;
159
+ var isChecked = permissionIds.includes(id);
160
+ var permissionsToBeUnchecked = (_permissionRelationCo = permissionRelationConfig[name]) === null || _permissionRelationCo === void 0 ? void 0 : _permissionRelationCo.uncheckOnSelect;
161
+ var hasUnCheckOnSelect = permissionsToBeUnchecked && isNotEmpty(permissionsToBeUnchecked);
162
+ var tooltipMessage = hasUnCheckOnSelect && t("neetoTeamMembers.tooltips.uncheckOnSelectPermissions", {
163
+ permissions: permissionsToBeUnchecked.flatMap(function (name) {
164
+ return pluck("description", permissionsNameMap[name]);
165
+ }).join(", ")
166
+ });
167
+ return /*#__PURE__*/jsx(Fragment, {
168
+ children: /*#__PURE__*/jsx(Tooltip, {
169
+ content: tooltipMessage && !isChecked ? tooltipMessage : null,
170
+ position: "left",
171
+ children: /*#__PURE__*/jsxs("div", {
172
+ className: "ntm-roles-permission__card relative flex flex-col gap-3 neeto-ui-bg-white py-1.5",
173
+ "data-testid": "ntm-roles-permission-sub-category-card-".concat(index),
174
+ id: "ntm-role-permission-".concat(id),
175
+ children: [/*#__PURE__*/jsxs("div", {
176
+ className: "flex items-start gap-2",
177
+ children: [/*#__PURE__*/jsx(Checkbox, {
178
+ checked: isChecked,
179
+ className: "mt-0.5 shrink-0",
180
+ "data-testid": "ntm-roles-permission-checkbox",
181
+ disabled: isCheckingDisabled,
182
+ id: "permission-".concat(id),
183
+ onCheckedChange: function onCheckedChange() {
184
+ return handleTogglePermission(id);
185
+ }
186
+ }), /*#__PURE__*/jsx(Label, {
187
+ htmlFor: "permission-".concat(id),
188
+ className: cn("font-normal leading-relaxed", isCheckingDisabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"),
189
+ children: description
190
+ })]
191
+ }), /*#__PURE__*/jsx("div", {
192
+ className: "ntm-roles-permission__sub-blocks relative pl-6",
193
+ children: sortedChildren === null || sortedChildren === void 0 ? void 0 : sortedChildren.map(function (childPermission) {
194
+ return _renderPermission(_objectSpread(_objectSpread({}, childPermission), {}, {
195
+ isParentChecked: isChecked,
196
+ index: index + 1
197
+ }));
198
+ })
199
+ })]
200
+ })
201
+ })
202
+ }, id);
203
+ };
204
+ return /*#__PURE__*/jsxs("div", {
205
+ className: "space-y-4",
206
+ children: [/*#__PURE__*/jsxs("div", {
207
+ children: [/*#__PURE__*/jsx(Typography, {
208
+ className: "text-base font-semibold leading-normal",
209
+ children: t("neetoTeamMembers.common.permission", SINGULAR)
210
+ }), /*#__PURE__*/jsx(Typography, {
211
+ className: "text-sm leading-normal text-muted-foreground",
212
+ children: t("neetoTeamMembers.helpers.configPermissions")
213
+ })]
214
+ }), Object.keys(groupedPermissions).map(function (category) {
215
+ return /*#__PURE__*/jsxs("div", {
216
+ className: "ntm-roles-permission",
217
+ "data-testid": "ntm-roles-permission-card",
218
+ id: "ntm-role-permission-category-".concat(hyphenate(category)),
219
+ children: [/*#__PURE__*/jsx(Typography, {
220
+ className: "mb-2 pt-2 text-sm font-semibold leading-normal",
221
+ "data-testid": "ntm-roles-permission-category-title",
222
+ children: category
223
+ }), /*#__PURE__*/jsx("div", {
224
+ className: "ntm-roles-permission-category-card neeto-ui-rounded-md border border-border p-2.5 px-5 transition-all duration-300",
225
+ children: groupedPermissions[category].map(_renderPermission)
226
+ })]
227
+ }, category);
228
+ })]
229
+ });
230
+ };
231
+
232
+ export { Permissions as P, getPermissionGroups as a, getModifiedPermissions as b, getChildrenRemovedFromRoot as g, sortPermissionsBySequence as s };
233
+ //# sourceMappingURL=Permissions-Bd6kLoPt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Permissions-Bd6kLoPt.js","sources":["../app/javascript/src/components/v2/Roles/utils.js","../app/javascript/src/components/v2/Roles/Permissions.jsx"],"sourcesContent":["import { findById } from \"neetocist\";\nimport { append, concat, equals, prop } from \"ramda\";\n\nexport const sortPermissionsBySequence = (permissions = []) =>\n permissions?.[0]?.sequence\n ? permissions.sort((first, second) => first.sequence - second.sequence)\n : permissions;\n\nexport const getPermissionGroups = (permissions = []) => {\n const sortBySequence = sortPermissionsBySequence(permissions);\n\n const groupedPermissions = new Map();\n (\"\");\n sortBySequence.forEach(permission => {\n if (groupedPermissions.has(permission?.category)) {\n const category = groupedPermissions.get(permission.category);\n const currentPermissions = category.get(\"permissions\");\n const permissions = append(permission, currentPermissions);\n category.set(\"permissions\", permissions);\n } else {\n const value = new Map();\n value.set(\"permissions\", append(permission, []));\n value.set(\"isPermissionVisible\", true);\n groupedPermissions.set(permission?.category, value);\n }\n });\n\n return groupedPermissions;\n};\n\nexport const getModifiedPermissions = (roles = [], modifiedRoles = []) =>\n modifiedRoles\n .map(role => {\n const oldPermissions = findById(role.id, roles).permissionIds;\n if (equals(oldPermissions, role.permissionIds)) return false;\n\n return { id: role.id, permissionIds: role.permissionIds };\n })\n .filter(Boolean);\n\nexport const attachChildrenRecursively = (\n permission,\n permissionsNameMap,\n permissionRelationConfig\n) => {\n const { children } = permissionRelationConfig[permission.name] || {};\n\n return children\n ? {\n ...permission,\n children: children.flatMap(childName => {\n const childPermission = permissionsNameMap[childName]?.[0];\n if (!childPermission) return [];\n\n return attachChildrenRecursively(\n childPermission,\n permissionsNameMap,\n permissionRelationConfig\n );\n }),\n }\n : permission;\n};\n\nexport const findChildIdsRecursively = (\n permission,\n permissionsNameMap,\n permissionRelationConfig\n) => {\n const { children } = permissionRelationConfig[permission.name] || {};\n\n return children\n ? concat(\n children.flatMap(childName => {\n const childPermission = permissionsNameMap[childName]?.[0];\n if (!childPermission) return [];\n\n return findChildIdsRecursively(\n childPermission,\n permissionsNameMap,\n permissionRelationConfig\n );\n }),\n [permission.id]\n )\n : [permission.id];\n};\n\nexport const getChildrenRemovedFromRoot = ({\n permissions,\n permissionsNameMap,\n permissionRelationConfig,\n}) => {\n const permissionsWithChildren = permissions.map(permission =>\n attachChildrenRecursively(\n permission,\n permissionsNameMap,\n permissionRelationConfig\n )\n );\n\n const childPermissions = Object.values(permissionRelationConfig).flatMap(\n prop(\"children\")\n );\n\n return permissionsWithChildren.filter(\n permission => !childPermissions.includes(permission.name)\n );\n};\n","import { Fragment, useMemo } from \"react\";\n\nimport {\n Checkbox,\n Label,\n Tooltip,\n Typography,\n cn,\n} from \"@bigbinary/neeto-atoms\";\nimport { useFormikContext } from \"formik\";\nimport { findById, hyphenate, isNotEmpty } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { groupBy, pluck, prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n findChildIdsRecursively,\n getChildrenRemovedFromRoot,\n sortPermissionsBySequence,\n} from \"./utils\";\n\nimport \"../styles/roles-permissions.css\";\n\nconst Permissions = ({\n permissions = [],\n isDisabled = false,\n permissionRelationConfig = {},\n}) => {\n const { t } = useTranslation();\n\n const { setFieldValue, values } = useFormikContext();\n const { permissionIds = [] } = values;\n const permissionsNameMap = groupBy(prop(\"name\"))(permissions);\n\n const handleTogglePermission = permissionId => {\n const permission = findById(permissionId, permissions);\n let nextPermissionIds = [];\n if (permissionIds.includes(permissionId)) {\n let childIds = [];\n if (permissionRelationConfig[permission.name]) {\n childIds = findChildIdsRecursively(\n permission,\n permissionsNameMap,\n permissionRelationConfig\n );\n }\n\n const permissionIdsToBeUnchecked = [permissionId, ...childIds];\n\n nextPermissionIds = permissionIds.filter(\n id => !permissionIdsToBeUnchecked.includes(id)\n );\n } else {\n const { uncheckOnSelect } =\n permissionRelationConfig[permission.name] || {};\n\n const uncheckOnSelectPermissions =\n uncheckOnSelect?.flatMap(name => permissionsNameMap[name]) ?? [];\n\n const childIds = uncheckOnSelectPermissions.flatMap(permission =>\n findChildIdsRecursively(\n permission,\n permissionsNameMap,\n permissionRelationConfig\n )\n );\n\n const uncheckedPermissionIds = pluck(\"id\", uncheckOnSelectPermissions);\n const permissionIdsToBeUnchecked = [\n ...uncheckedPermissionIds,\n ...childIds,\n ];\n\n nextPermissionIds = uncheckOnSelect\n ? [\n ...permissionIds.filter(\n id => !permissionIdsToBeUnchecked.includes(id)\n ),\n permissionId,\n ]\n : [...permissionIds, permissionId];\n }\n\n setFieldValue(\"permissionIds\", nextPermissionIds.sort());\n };\n\n const groupedPermissions = useMemo(() => {\n const childrenRemovedFromRoot = getChildrenRemovedFromRoot({\n permissions,\n permissionsNameMap,\n permissionRelationConfig,\n });\n\n return groupBy(prop(\"category\"))(childrenRemovedFromRoot);\n }, [permissions]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const renderPermission = ({\n id,\n name,\n description,\n children,\n isParentChecked = true,\n index = 1,\n }) => {\n const sortedChildren = children && sortPermissionsBySequence(children);\n\n const isCheckingDisabled = !isParentChecked || isDisabled;\n const isChecked = permissionIds.includes(id);\n\n const permissionsToBeUnchecked =\n permissionRelationConfig[name]?.uncheckOnSelect;\n\n const hasUnCheckOnSelect =\n permissionsToBeUnchecked && isNotEmpty(permissionsToBeUnchecked);\n\n const tooltipMessage =\n hasUnCheckOnSelect &&\n t(\"neetoTeamMembers.tooltips.uncheckOnSelectPermissions\", {\n permissions: permissionsToBeUnchecked\n .flatMap(name => pluck(\"description\", permissionsNameMap[name]))\n .join(\", \"),\n });\n\n return (\n <Fragment key={id}>\n <Tooltip\n content={tooltipMessage && !isChecked ? tooltipMessage : null}\n position=\"left\"\n >\n <div\n className=\"ntm-roles-permission__card relative flex flex-col gap-3 neeto-ui-bg-white py-1.5\"\n data-testid={`ntm-roles-permission-sub-category-card-${index}`}\n id={`ntm-role-permission-${id}`}\n >\n <div className=\"flex items-start gap-2\">\n <Checkbox\n checked={isChecked}\n className=\"mt-0.5 shrink-0\"\n data-testid=\"ntm-roles-permission-checkbox\"\n disabled={isCheckingDisabled}\n id={`permission-${id}`}\n onCheckedChange={() => handleTogglePermission(id)}\n />\n <Label\n htmlFor={`permission-${id}`}\n className={cn(\n \"font-normal leading-relaxed\",\n isCheckingDisabled\n ? \"cursor-not-allowed opacity-50\"\n : \"cursor-pointer\"\n )}\n >\n {description}\n </Label>\n </div>\n <div className=\"ntm-roles-permission__sub-blocks relative pl-6\">\n {sortedChildren?.map(childPermission =>\n renderPermission({\n ...childPermission,\n isParentChecked: isChecked,\n index: index + 1,\n })\n )}\n </div>\n </div>\n </Tooltip>\n </Fragment>\n );\n };\n\n return (\n <div className=\"space-y-4\">\n <div>\n <Typography className=\"text-base font-semibold leading-normal\">\n {t(\"neetoTeamMembers.common.permission\", SINGULAR)}\n </Typography>\n <Typography className=\"text-sm leading-normal text-muted-foreground\">\n {t(\"neetoTeamMembers.helpers.configPermissions\")}\n </Typography>\n </div>\n {Object.keys(groupedPermissions).map(category => (\n <div\n className=\"ntm-roles-permission\"\n data-testid=\"ntm-roles-permission-card\"\n id={`ntm-role-permission-category-${hyphenate(category)}`}\n key={category}\n >\n <Typography\n className=\"mb-2 pt-2 text-sm font-semibold leading-normal\"\n data-testid=\"ntm-roles-permission-category-title\"\n >\n {category}\n </Typography>\n <div className=\"ntm-roles-permission-category-card neeto-ui-rounded-md border border-border p-2.5 px-5 transition-all duration-300\">\n {groupedPermissions[category].map(renderPermission)}\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nexport default Permissions;\n"],"names":["sortPermissionsBySequence","_permissions$","permissions","arguments","length","undefined","sequence","sort","first","second","getPermissionGroups","sortBySequence","groupedPermissions","Map","forEach","permission","has","category","get","currentPermissions","append","set","value","getModifiedPermissions","roles","modifiedRoles","map","role","oldPermissions","findById","id","permissionIds","equals","filter","Boolean","attachChildrenRecursively","permissionsNameMap","permissionRelationConfig","_ref","name","children","_objectSpread","flatMap","childName","_permissionsNameMap$c","childPermission","findChildIdsRecursively","_ref2","concat","_permissionsNameMap$c2","getChildrenRemovedFromRoot","_ref3","permissionsWithChildren","childPermissions","Object","values","prop","includes","Permissions","_ref$permissions","_ref$isDisabled","isDisabled","_ref$permissionRelati","_useTranslation","useTranslation","t","_useFormikContext","useFormikContext","setFieldValue","_values$permissionIds","groupBy","handleTogglePermission","permissionId","nextPermissionIds","childIds","permissionIdsToBeUnchecked","_toConsumableArray","_uncheckOnSelect$flat","uncheckOnSelect","uncheckOnSelectPermissions","uncheckedPermissionIds","pluck","useMemo","childrenRemovedFromRoot","renderPermission","_permissionRelationCo","description","_ref3$isParentChecked","isParentChecked","_ref3$index","index","sortedChildren","isCheckingDisabled","isChecked","permissionsToBeUnchecked","hasUnCheckOnSelect","isNotEmpty","tooltipMessage","join","_jsx","Fragment","Tooltip","content","position","_jsxs","className","Checkbox","checked","disabled","onCheckedChange","Label","htmlFor","cn","Typography","SINGULAR","keys","hyphenate"],"mappings":"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"}
@@ -0,0 +1,244 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
5
+ var React = require('react');
6
+ var neetoAtoms = require('@bigbinary/neeto-atoms');
7
+ var formik = require('formik');
8
+ var neetoCist = require('@bigbinary/neeto-cist');
9
+ var constants = require('@bigbinary/neeto-commons-frontend/constants');
10
+ var ramda = require('ramda');
11
+ var reactI18next = require('react-i18next');
12
+ var injectCss = require('./inject-css-B6qYtOJe.js');
13
+ var jsxRuntime = require('react/jsx-runtime');
14
+
15
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
16
+
17
+ var _defineProperty__default = /*#__PURE__*/_interopDefault(_defineProperty);
18
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefault(_toConsumableArray);
19
+
20
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
+ var sortPermissionsBySequence = function sortPermissionsBySequence() {
23
+ var _permissions$;
24
+ var permissions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
25
+ return permissions !== null && permissions !== void 0 && (_permissions$ = permissions[0]) !== null && _permissions$ !== void 0 && _permissions$.sequence ? permissions.sort(function (first, second) {
26
+ return first.sequence - second.sequence;
27
+ }) : permissions;
28
+ };
29
+ var getPermissionGroups = function getPermissionGroups() {
30
+ var permissions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
31
+ var sortBySequence = sortPermissionsBySequence(permissions);
32
+ var groupedPermissions = new Map();
33
+ sortBySequence.forEach(function (permission) {
34
+ if (groupedPermissions.has(permission === null || permission === void 0 ? void 0 : permission.category)) {
35
+ var category = groupedPermissions.get(permission.category);
36
+ var currentPermissions = category.get("permissions");
37
+ var _permissions = ramda.append(permission, currentPermissions);
38
+ category.set("permissions", _permissions);
39
+ } else {
40
+ var value = new Map();
41
+ value.set("permissions", ramda.append(permission, []));
42
+ value.set("isPermissionVisible", true);
43
+ groupedPermissions.set(permission === null || permission === void 0 ? void 0 : permission.category, value);
44
+ }
45
+ });
46
+ return groupedPermissions;
47
+ };
48
+ var getModifiedPermissions = function getModifiedPermissions() {
49
+ var roles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
50
+ var modifiedRoles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
51
+ return modifiedRoles.map(function (role) {
52
+ var oldPermissions = neetoCist.findById(role.id, roles).permissionIds;
53
+ if (ramda.equals(oldPermissions, role.permissionIds)) return false;
54
+ return {
55
+ id: role.id,
56
+ permissionIds: role.permissionIds
57
+ };
58
+ }).filter(Boolean);
59
+ };
60
+ var _attachChildrenRecursively = function attachChildrenRecursively(permission, permissionsNameMap, permissionRelationConfig) {
61
+ var _ref = permissionRelationConfig[permission.name] || {},
62
+ children = _ref.children;
63
+ return children ? _objectSpread$1(_objectSpread$1({}, permission), {}, {
64
+ children: children.flatMap(function (childName) {
65
+ var _permissionsNameMap$c;
66
+ var childPermission = (_permissionsNameMap$c = permissionsNameMap[childName]) === null || _permissionsNameMap$c === void 0 ? void 0 : _permissionsNameMap$c[0];
67
+ if (!childPermission) return [];
68
+ return _attachChildrenRecursively(childPermission, permissionsNameMap, permissionRelationConfig);
69
+ })
70
+ }) : permission;
71
+ };
72
+ var _findChildIdsRecursively = function findChildIdsRecursively(permission, permissionsNameMap, permissionRelationConfig) {
73
+ var _ref2 = permissionRelationConfig[permission.name] || {},
74
+ children = _ref2.children;
75
+ return children ? ramda.concat(children.flatMap(function (childName) {
76
+ var _permissionsNameMap$c2;
77
+ var childPermission = (_permissionsNameMap$c2 = permissionsNameMap[childName]) === null || _permissionsNameMap$c2 === void 0 ? void 0 : _permissionsNameMap$c2[0];
78
+ if (!childPermission) return [];
79
+ return _findChildIdsRecursively(childPermission, permissionsNameMap, permissionRelationConfig);
80
+ }), [permission.id]) : [permission.id];
81
+ };
82
+ var getChildrenRemovedFromRoot = function getChildrenRemovedFromRoot(_ref3) {
83
+ var permissions = _ref3.permissions,
84
+ permissionsNameMap = _ref3.permissionsNameMap,
85
+ permissionRelationConfig = _ref3.permissionRelationConfig;
86
+ var permissionsWithChildren = permissions.map(function (permission) {
87
+ return _attachChildrenRecursively(permission, permissionsNameMap, permissionRelationConfig);
88
+ });
89
+ var childPermissions = Object.values(permissionRelationConfig).flatMap(ramda.prop("children"));
90
+ return permissionsWithChildren.filter(function (permission) {
91
+ return !childPermissions.includes(permission.name);
92
+ });
93
+ };
94
+
95
+ var css = ".ntm-roles-pane__body{margin-bottom:1.5rem;width:100%}.ntm-roles-pane__body-wrapper>*+*{margin-top:1rem}.ntm-roles-pane__body>*+*{margin-top:1.5rem}.ntm-roles-pane__footer{display:flex;gap:.5rem}.ntm-roles-permission__heading{padding-top:.5rem}.ntm-roles-permission__card{background-color:var(--background);display:flex;flex-direction:column;gap:.75rem;padding:.4rem 0;position:relative}.ntm-roles-permission__card:after{background-color:var(--border);content:\"\";height:1px;inset-inline-start:-.9375rem;position:absolute;top:.875rem;width:.625rem}.ntm-roles-permission__card--description{flex-grow:1}.ntm-roles-permission__card--checkbox{padding:0 .5rem}.ntm-roles-permission__sub-blocks{position:relative}.ntm-roles-permission__sub-blocks:before{background-color:var(--border);content:\"\";height:calc(100% - .875rem);inset-inline-start:.5rem;position:absolute;top:0;width:.0625rem}.ntm-roles-permission__sub-blocks:empty{display:none}.ntm-roles-permission-category-card{border:1px solid var(--border);border-radius:.375rem;border-radius:var(--radius,.375rem);padding:.625rem 1.25rem;transition:all .3s}.ntm-roles-permission-category-card--active{background-color:color-mix(in oklch,var(--primary) 10%,transparent);border-color:var(--primary);outline:1px solid var(--primary)}.ntm-roles-permission-category-card--active .ntm-roles-permission__card{background-color:transparent}.ntm-roles-permission-category-card>.ntm-roles-permission__card:after{display:none}@keyframes ntm-roles-permission-blink{0%,to{color:inherit}50%{color:var(--primary);font-weight:700}}.ntm-roles-permission__card--blink label{animation:ntm-roles-permission-blink .6s ease-in-out 0s 3}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3NyYy9jb21wb25lbnRzL3YyL3N0eWxlcy9yb2xlcy1wZXJtaXNzaW9ucy5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0JBRUUsb0JBQXFCLENBRHJCLFVBRUYsQ0FFQSxrQ0FDRSxlQUNGLENBRUEsMEJBQ0UsaUJBQ0YsQ0FFQSx3QkFDRSxZQUFhLENBQ2IsU0FDRixDQUVBLCtCQUNFLGlCQUNGLENBRUEsNEJBQ0Usa0NBQW1DLENBRW5DLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsVUFBWSxDQUNaLGVBQWlCLENBSmpCLGlCQUtGLENBRUEsa0NBQ0UsOEJBQStCLENBQy9CLFVBQVcsQ0FDWCxVQUFXLENBQ1gsNEJBQThCLENBQzlCLGlCQUFrQixDQUNsQixXQUFhLENBQ2IsYUFDRixDQUVBLHlDQUNFLFdBQ0YsQ0FFQSxzQ0FDRSxlQUNGLENBRUEsa0NBQ0UsaUJBQ0YsQ0FFQSx5Q0FDRSw4QkFBK0IsQ0FFL0IsVUFBVyxDQUNYLDJCQUE2QixDQUM3Qix3QkFBMEIsQ0FDMUIsaUJBQWtCLENBSmxCLEtBQU0sQ0FLTixjQUNGLENBRUEsd0NBQ0UsWUFDRixDQUVBLG9DQUdFLDhCQUErQixDQUQvQixxQkFBc0MsQ0FBdEMsbUNBQXNDLENBRHRDLHVCQUF5QixDQUd6QixrQkFDRixDQUVBLDRDQUdFLG1FQUFzRSxDQUZ0RSwyQkFBNEIsQ0FDNUIsZ0NBRUYsQ0FFQSx3RUFDRSw0QkFDRixDQUVBLHNFQUNFLFlBQ0YsQ0FFQSxzQ0FFRSxNQUVFLGFBQ0YsQ0FFQSxJQUNFLG9CQUFxQixDQUNyQixlQUNGLENBQ0YsQ0FFQSx5Q0FDRSx5REFDRiIsInNvdXJjZXNDb250ZW50IjpbIi5udG0tcm9sZXMtcGFuZV9fYm9keSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbi5udG0tcm9sZXMtcGFuZV9fYm9keS13cmFwcGVyPiorKiB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5udG0tcm9sZXMtcGFuZV9fYm9keT4qKyoge1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG59XG5cbi5udG0tcm9sZXMtcGFuZV9fZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjVyZW07XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9faGVhZGluZyB7XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC43NXJlbTtcbiAgcGFkZGluZzogMC40cmVtIDA7XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib3JkZXIpO1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6IDFweDtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAtMC45Mzc1cmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC44NzVyZW07XG4gIHdpZHRoOiAwLjYyNXJlbTtcbn1cblxuLm50bS1yb2xlcy1wZXJtaXNzaW9uX19jYXJkLS1kZXNjcmlwdGlvbiB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cblxuLm50bS1yb2xlcy1wZXJtaXNzaW9uX19jYXJkLS1jaGVja2JveCB7XG4gIHBhZGRpbmc6IDAgMC41cmVtO1xufVxuXG4ubnRtLXJvbGVzLXBlcm1pc3Npb25fX3N1Yi1ibG9ja3Mge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fc3ViLWJsb2Nrczo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9yZGVyKTtcbiAgdG9wOiAwO1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDAuODc1cmVtKTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAwLjVyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDAuMDYyNXJlbTtcbn1cblxuLm50bS1yb2xlcy1wZXJtaXNzaW9uX19zdWItYmxvY2tzOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm50bS1yb2xlcy1wZXJtaXNzaW9uLWNhdGVnb3J5LWNhcmQge1xuICBwYWRkaW5nOiAwLjYyNXJlbSAxLjI1cmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMsIDAuMzc1cmVtKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbi1jYXRlZ29yeS1jYXJkLS1hY3RpdmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xuICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tcHJpbWFyeSk7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tcHJpbWFyeSkgMTAlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbi1jYXRlZ29yeS1jYXJkLS1hY3RpdmUgLm50bS1yb2xlcy1wZXJtaXNzaW9uX19jYXJkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbi1jYXRlZ29yeS1jYXJkPi5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5Aa2V5ZnJhbWVzIG50bS1yb2xlcy1wZXJtaXNzaW9uLWJsaW5rIHtcblxuICAwJSxcbiAgMTAwJSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cblxuICA1MCUge1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxufVxuXG4ubnRtLXJvbGVzLXBlcm1pc3Npb25fX2NhcmQtLWJsaW5rIGxhYmVsIHtcbiAgYW5pbWF0aW9uOiBudG0tcm9sZXMtcGVybWlzc2lvbi1ibGluayA2MDBtcyBlYXNlLWluLW91dCAwcyAzO1xufVxuIl19 */";
96
+ injectCss.n(css,{});
97
+
98
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
99
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
100
+ var Permissions = function Permissions(_ref) {
101
+ var _ref$permissions = _ref.permissions,
102
+ permissions = _ref$permissions === void 0 ? [] : _ref$permissions,
103
+ _ref$isDisabled = _ref.isDisabled,
104
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
105
+ _ref$permissionRelati = _ref.permissionRelationConfig,
106
+ permissionRelationConfig = _ref$permissionRelati === void 0 ? {} : _ref$permissionRelati;
107
+ var _useTranslation = reactI18next.useTranslation(),
108
+ t = _useTranslation.t;
109
+ var _useFormikContext = formik.useFormikContext(),
110
+ setFieldValue = _useFormikContext.setFieldValue,
111
+ values = _useFormikContext.values;
112
+ var _values$permissionIds = values.permissionIds,
113
+ permissionIds = _values$permissionIds === void 0 ? [] : _values$permissionIds;
114
+ var permissionsNameMap = ramda.groupBy(ramda.prop("name"))(permissions);
115
+ var handleTogglePermission = function handleTogglePermission(permissionId) {
116
+ var permission = neetoCist.findById(permissionId, permissions);
117
+ var nextPermissionIds = [];
118
+ if (permissionIds.includes(permissionId)) {
119
+ var childIds = [];
120
+ if (permissionRelationConfig[permission.name]) {
121
+ childIds = _findChildIdsRecursively(permission, permissionsNameMap, permissionRelationConfig);
122
+ }
123
+ var permissionIdsToBeUnchecked = [permissionId].concat(_toConsumableArray__default.default(childIds));
124
+ nextPermissionIds = permissionIds.filter(function (id) {
125
+ return !permissionIdsToBeUnchecked.includes(id);
126
+ });
127
+ } else {
128
+ var _uncheckOnSelect$flat;
129
+ var _ref2 = permissionRelationConfig[permission.name] || {},
130
+ uncheckOnSelect = _ref2.uncheckOnSelect;
131
+ var uncheckOnSelectPermissions = (_uncheckOnSelect$flat = uncheckOnSelect === null || uncheckOnSelect === void 0 ? void 0 : uncheckOnSelect.flatMap(function (name) {
132
+ return permissionsNameMap[name];
133
+ })) !== null && _uncheckOnSelect$flat !== void 0 ? _uncheckOnSelect$flat : [];
134
+ var _childIds = uncheckOnSelectPermissions.flatMap(function (permission) {
135
+ return _findChildIdsRecursively(permission, permissionsNameMap, permissionRelationConfig);
136
+ });
137
+ var uncheckedPermissionIds = ramda.pluck("id", uncheckOnSelectPermissions);
138
+ var _permissionIdsToBeUnchecked = [].concat(_toConsumableArray__default.default(uncheckedPermissionIds), _toConsumableArray__default.default(_childIds));
139
+ nextPermissionIds = uncheckOnSelect ? [].concat(_toConsumableArray__default.default(permissionIds.filter(function (id) {
140
+ return !_permissionIdsToBeUnchecked.includes(id);
141
+ })), [permissionId]) : [].concat(_toConsumableArray__default.default(permissionIds), [permissionId]);
142
+ }
143
+ setFieldValue("permissionIds", nextPermissionIds.sort());
144
+ };
145
+ var groupedPermissions = React.useMemo(function () {
146
+ var childrenRemovedFromRoot = getChildrenRemovedFromRoot({
147
+ permissions: permissions,
148
+ permissionsNameMap: permissionsNameMap,
149
+ permissionRelationConfig: permissionRelationConfig
150
+ });
151
+ return ramda.groupBy(ramda.prop("category"))(childrenRemovedFromRoot);
152
+ }, [permissions]); // eslint-disable-line react-hooks/exhaustive-deps
153
+
154
+ var _renderPermission = function renderPermission(_ref3) {
155
+ var _permissionRelationCo;
156
+ var id = _ref3.id,
157
+ name = _ref3.name,
158
+ description = _ref3.description,
159
+ children = _ref3.children,
160
+ _ref3$isParentChecked = _ref3.isParentChecked,
161
+ isParentChecked = _ref3$isParentChecked === void 0 ? true : _ref3$isParentChecked,
162
+ _ref3$index = _ref3.index,
163
+ index = _ref3$index === void 0 ? 1 : _ref3$index;
164
+ var sortedChildren = children && sortPermissionsBySequence(children);
165
+ var isCheckingDisabled = !isParentChecked || isDisabled;
166
+ var isChecked = permissionIds.includes(id);
167
+ var permissionsToBeUnchecked = (_permissionRelationCo = permissionRelationConfig[name]) === null || _permissionRelationCo === void 0 ? void 0 : _permissionRelationCo.uncheckOnSelect;
168
+ var hasUnCheckOnSelect = permissionsToBeUnchecked && neetoCist.isNotEmpty(permissionsToBeUnchecked);
169
+ var tooltipMessage = hasUnCheckOnSelect && t("neetoTeamMembers.tooltips.uncheckOnSelectPermissions", {
170
+ permissions: permissionsToBeUnchecked.flatMap(function (name) {
171
+ return ramda.pluck("description", permissionsNameMap[name]);
172
+ }).join(", ")
173
+ });
174
+ return /*#__PURE__*/jsxRuntime.jsx(React.Fragment, {
175
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tooltip, {
176
+ content: tooltipMessage && !isChecked ? tooltipMessage : null,
177
+ position: "left",
178
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
179
+ className: "ntm-roles-permission__card relative flex flex-col gap-3 neeto-ui-bg-white py-1.5",
180
+ "data-testid": "ntm-roles-permission-sub-category-card-".concat(index),
181
+ id: "ntm-role-permission-".concat(id),
182
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
183
+ className: "flex items-start gap-2",
184
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Checkbox, {
185
+ checked: isChecked,
186
+ className: "mt-0.5 shrink-0",
187
+ "data-testid": "ntm-roles-permission-checkbox",
188
+ disabled: isCheckingDisabled,
189
+ id: "permission-".concat(id),
190
+ onCheckedChange: function onCheckedChange() {
191
+ return handleTogglePermission(id);
192
+ }
193
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Label, {
194
+ htmlFor: "permission-".concat(id),
195
+ className: neetoAtoms.cn("font-normal leading-relaxed", isCheckingDisabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"),
196
+ children: description
197
+ })]
198
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
199
+ className: "ntm-roles-permission__sub-blocks relative pl-6",
200
+ children: sortedChildren === null || sortedChildren === void 0 ? void 0 : sortedChildren.map(function (childPermission) {
201
+ return _renderPermission(_objectSpread(_objectSpread({}, childPermission), {}, {
202
+ isParentChecked: isChecked,
203
+ index: index + 1
204
+ }));
205
+ })
206
+ })]
207
+ })
208
+ })
209
+ }, id);
210
+ };
211
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
212
+ className: "space-y-4",
213
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
214
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
215
+ className: "text-base font-semibold leading-normal",
216
+ children: t("neetoTeamMembers.common.permission", constants.SINGULAR)
217
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
218
+ className: "text-sm leading-normal text-muted-foreground",
219
+ children: t("neetoTeamMembers.helpers.configPermissions")
220
+ })]
221
+ }), Object.keys(groupedPermissions).map(function (category) {
222
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
223
+ className: "ntm-roles-permission",
224
+ "data-testid": "ntm-roles-permission-card",
225
+ id: "ntm-role-permission-category-".concat(neetoCist.hyphenate(category)),
226
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
227
+ className: "mb-2 pt-2 text-sm font-semibold leading-normal",
228
+ "data-testid": "ntm-roles-permission-category-title",
229
+ children: category
230
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
231
+ className: "ntm-roles-permission-category-card neeto-ui-rounded-md border border-border p-2.5 px-5 transition-all duration-300",
232
+ children: groupedPermissions[category].map(_renderPermission)
233
+ })]
234
+ }, category);
235
+ })]
236
+ });
237
+ };
238
+
239
+ exports.Permissions = Permissions;
240
+ exports.getChildrenRemovedFromRoot = getChildrenRemovedFromRoot;
241
+ exports.getModifiedPermissions = getModifiedPermissions;
242
+ exports.getPermissionGroups = getPermissionGroups;
243
+ exports.sortPermissionsBySequence = sortPermissionsBySequence;
244
+ //# sourceMappingURL=Permissions-Bn862irP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Permissions-Bn862irP.js","sources":["../app/javascript/src/components/v2/Roles/utils.js","../app/javascript/src/components/v2/Roles/Permissions.jsx"],"sourcesContent":["import { findById } from \"neetocist\";\nimport { append, concat, equals, prop } from \"ramda\";\n\nexport const sortPermissionsBySequence = (permissions = []) =>\n permissions?.[0]?.sequence\n ? permissions.sort((first, second) => first.sequence - second.sequence)\n : permissions;\n\nexport const getPermissionGroups = (permissions = []) => {\n const sortBySequence = sortPermissionsBySequence(permissions);\n\n const groupedPermissions = new Map();\n (\"\");\n sortBySequence.forEach(permission => {\n if (groupedPermissions.has(permission?.category)) {\n const category = groupedPermissions.get(permission.category);\n const currentPermissions = category.get(\"permissions\");\n const permissions = append(permission, currentPermissions);\n category.set(\"permissions\", permissions);\n } else {\n const value = new Map();\n value.set(\"permissions\", append(permission, []));\n value.set(\"isPermissionVisible\", true);\n groupedPermissions.set(permission?.category, value);\n }\n });\n\n return groupedPermissions;\n};\n\nexport const getModifiedPermissions = (roles = [], modifiedRoles = []) =>\n modifiedRoles\n .map(role => {\n const oldPermissions = findById(role.id, roles).permissionIds;\n if (equals(oldPermissions, role.permissionIds)) return false;\n\n return { id: role.id, permissionIds: role.permissionIds };\n })\n .filter(Boolean);\n\nexport const attachChildrenRecursively = (\n permission,\n permissionsNameMap,\n permissionRelationConfig\n) => {\n const { children } = permissionRelationConfig[permission.name] || {};\n\n return children\n ? {\n ...permission,\n children: children.flatMap(childName => {\n const childPermission = permissionsNameMap[childName]?.[0];\n if (!childPermission) return [];\n\n return attachChildrenRecursively(\n childPermission,\n permissionsNameMap,\n permissionRelationConfig\n );\n }),\n }\n : permission;\n};\n\nexport const findChildIdsRecursively = (\n permission,\n permissionsNameMap,\n permissionRelationConfig\n) => {\n const { children } = permissionRelationConfig[permission.name] || {};\n\n return children\n ? concat(\n children.flatMap(childName => {\n const childPermission = permissionsNameMap[childName]?.[0];\n if (!childPermission) return [];\n\n return findChildIdsRecursively(\n childPermission,\n permissionsNameMap,\n permissionRelationConfig\n );\n }),\n [permission.id]\n )\n : [permission.id];\n};\n\nexport const getChildrenRemovedFromRoot = ({\n permissions,\n permissionsNameMap,\n permissionRelationConfig,\n}) => {\n const permissionsWithChildren = permissions.map(permission =>\n attachChildrenRecursively(\n permission,\n permissionsNameMap,\n permissionRelationConfig\n )\n );\n\n const childPermissions = Object.values(permissionRelationConfig).flatMap(\n prop(\"children\")\n );\n\n return permissionsWithChildren.filter(\n permission => !childPermissions.includes(permission.name)\n );\n};\n","import { Fragment, useMemo } from \"react\";\n\nimport {\n Checkbox,\n Label,\n Tooltip,\n Typography,\n cn,\n} from \"@bigbinary/neeto-atoms\";\nimport { useFormikContext } from \"formik\";\nimport { findById, hyphenate, isNotEmpty } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { groupBy, pluck, prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n findChildIdsRecursively,\n getChildrenRemovedFromRoot,\n sortPermissionsBySequence,\n} from \"./utils\";\n\nimport \"../styles/roles-permissions.css\";\n\nconst Permissions = ({\n permissions = [],\n isDisabled = false,\n permissionRelationConfig = {},\n}) => {\n const { t } = useTranslation();\n\n const { setFieldValue, values } = useFormikContext();\n const { permissionIds = [] } = values;\n const permissionsNameMap = groupBy(prop(\"name\"))(permissions);\n\n const handleTogglePermission = permissionId => {\n const permission = findById(permissionId, permissions);\n let nextPermissionIds = [];\n if (permissionIds.includes(permissionId)) {\n let childIds = [];\n if (permissionRelationConfig[permission.name]) {\n childIds = findChildIdsRecursively(\n permission,\n permissionsNameMap,\n permissionRelationConfig\n );\n }\n\n const permissionIdsToBeUnchecked = [permissionId, ...childIds];\n\n nextPermissionIds = permissionIds.filter(\n id => !permissionIdsToBeUnchecked.includes(id)\n );\n } else {\n const { uncheckOnSelect } =\n permissionRelationConfig[permission.name] || {};\n\n const uncheckOnSelectPermissions =\n uncheckOnSelect?.flatMap(name => permissionsNameMap[name]) ?? [];\n\n const childIds = uncheckOnSelectPermissions.flatMap(permission =>\n findChildIdsRecursively(\n permission,\n permissionsNameMap,\n permissionRelationConfig\n )\n );\n\n const uncheckedPermissionIds = pluck(\"id\", uncheckOnSelectPermissions);\n const permissionIdsToBeUnchecked = [\n ...uncheckedPermissionIds,\n ...childIds,\n ];\n\n nextPermissionIds = uncheckOnSelect\n ? [\n ...permissionIds.filter(\n id => !permissionIdsToBeUnchecked.includes(id)\n ),\n permissionId,\n ]\n : [...permissionIds, permissionId];\n }\n\n setFieldValue(\"permissionIds\", nextPermissionIds.sort());\n };\n\n const groupedPermissions = useMemo(() => {\n const childrenRemovedFromRoot = getChildrenRemovedFromRoot({\n permissions,\n permissionsNameMap,\n permissionRelationConfig,\n });\n\n return groupBy(prop(\"category\"))(childrenRemovedFromRoot);\n }, [permissions]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const renderPermission = ({\n id,\n name,\n description,\n children,\n isParentChecked = true,\n index = 1,\n }) => {\n const sortedChildren = children && sortPermissionsBySequence(children);\n\n const isCheckingDisabled = !isParentChecked || isDisabled;\n const isChecked = permissionIds.includes(id);\n\n const permissionsToBeUnchecked =\n permissionRelationConfig[name]?.uncheckOnSelect;\n\n const hasUnCheckOnSelect =\n permissionsToBeUnchecked && isNotEmpty(permissionsToBeUnchecked);\n\n const tooltipMessage =\n hasUnCheckOnSelect &&\n t(\"neetoTeamMembers.tooltips.uncheckOnSelectPermissions\", {\n permissions: permissionsToBeUnchecked\n .flatMap(name => pluck(\"description\", permissionsNameMap[name]))\n .join(\", \"),\n });\n\n return (\n <Fragment key={id}>\n <Tooltip\n content={tooltipMessage && !isChecked ? tooltipMessage : null}\n position=\"left\"\n >\n <div\n className=\"ntm-roles-permission__card relative flex flex-col gap-3 neeto-ui-bg-white py-1.5\"\n data-testid={`ntm-roles-permission-sub-category-card-${index}`}\n id={`ntm-role-permission-${id}`}\n >\n <div className=\"flex items-start gap-2\">\n <Checkbox\n checked={isChecked}\n className=\"mt-0.5 shrink-0\"\n data-testid=\"ntm-roles-permission-checkbox\"\n disabled={isCheckingDisabled}\n id={`permission-${id}`}\n onCheckedChange={() => handleTogglePermission(id)}\n />\n <Label\n htmlFor={`permission-${id}`}\n className={cn(\n \"font-normal leading-relaxed\",\n isCheckingDisabled\n ? \"cursor-not-allowed opacity-50\"\n : \"cursor-pointer\"\n )}\n >\n {description}\n </Label>\n </div>\n <div className=\"ntm-roles-permission__sub-blocks relative pl-6\">\n {sortedChildren?.map(childPermission =>\n renderPermission({\n ...childPermission,\n isParentChecked: isChecked,\n index: index + 1,\n })\n )}\n </div>\n </div>\n </Tooltip>\n </Fragment>\n );\n };\n\n return (\n <div className=\"space-y-4\">\n <div>\n <Typography className=\"text-base font-semibold leading-normal\">\n {t(\"neetoTeamMembers.common.permission\", SINGULAR)}\n </Typography>\n <Typography className=\"text-sm leading-normal text-muted-foreground\">\n {t(\"neetoTeamMembers.helpers.configPermissions\")}\n </Typography>\n </div>\n {Object.keys(groupedPermissions).map(category => (\n <div\n className=\"ntm-roles-permission\"\n data-testid=\"ntm-roles-permission-card\"\n id={`ntm-role-permission-category-${hyphenate(category)}`}\n key={category}\n >\n <Typography\n className=\"mb-2 pt-2 text-sm font-semibold leading-normal\"\n data-testid=\"ntm-roles-permission-category-title\"\n >\n {category}\n </Typography>\n <div className=\"ntm-roles-permission-category-card neeto-ui-rounded-md border border-border p-2.5 px-5 transition-all duration-300\">\n {groupedPermissions[category].map(renderPermission)}\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nexport default Permissions;\n"],"names":["sortPermissionsBySequence","_permissions$","permissions","arguments","length","undefined","sequence","sort","first","second","getPermissionGroups","sortBySequence","groupedPermissions","Map","forEach","permission","has","category","get","currentPermissions","append","set","value","getModifiedPermissions","roles","modifiedRoles","map","role","oldPermissions","findById","id","permissionIds","equals","filter","Boolean","attachChildrenRecursively","permissionsNameMap","permissionRelationConfig","_ref","name","children","_objectSpread","flatMap","childName","_permissionsNameMap$c","childPermission","findChildIdsRecursively","_ref2","concat","_permissionsNameMap$c2","getChildrenRemovedFromRoot","_ref3","permissionsWithChildren","childPermissions","Object","values","prop","includes","Permissions","_ref$permissions","_ref$isDisabled","isDisabled","_ref$permissionRelati","_useTranslation","useTranslation","t","_useFormikContext","useFormikContext","setFieldValue","_values$permissionIds","groupBy","handleTogglePermission","permissionId","nextPermissionIds","childIds","permissionIdsToBeUnchecked","_toConsumableArray","_uncheckOnSelect$flat","uncheckOnSelect","uncheckOnSelectPermissions","uncheckedPermissionIds","pluck","useMemo","childrenRemovedFromRoot","renderPermission","_permissionRelationCo","description","_ref3$isParentChecked","isParentChecked","_ref3$index","index","sortedChildren","isCheckingDisabled","isChecked","permissionsToBeUnchecked","hasUnCheckOnSelect","isNotEmpty","tooltipMessage","join","_jsx","Fragment","Tooltip","content","position","_jsxs","className","Checkbox","checked","disabled","onCheckedChange","Label","htmlFor","cn","Typography","SINGULAR","keys","hyphenate"],"mappings":"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"}