@bigbinary/neeto-team-members-frontend 2.5.3 → 2.5.5

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.
package/dist/index.cjs.js CHANGED
@@ -2822,7 +2822,7 @@ var localStorageAvailable = function localStorageAvailable() {
2822
2822
  }
2823
2823
  return hasLocalStorageSupport;
2824
2824
  };
2825
- var localStorage$1 = {
2825
+ var localStorage = {
2826
2826
  name: 'localStorage',
2827
2827
  lookup: function lookup(options) {
2828
2828
  var found;
@@ -2976,7 +2976,7 @@ var Browser = /*#__PURE__*/function () {
2976
2976
  this.i18nOptions = i18nOptions;
2977
2977
  this.addDetector(cookie$1);
2978
2978
  this.addDetector(querystring);
2979
- this.addDetector(localStorage$1);
2979
+ this.addDetector(localStorage);
2980
2980
  this.addDetector(sessionStorage);
2981
2981
  this.addDetector(navigator$1);
2982
2982
  this.addDetector(htmlTag);
@@ -3715,6 +3715,7 @@ var buttons$1 = {
3715
3715
  cancel: "Cancel",
3716
3716
  changeRole: "Change role",
3717
3717
  proceed: "Proceed",
3718
+ reset: "Reset",
3718
3719
  saveChanges: "Save changes"
3719
3720
  };
3720
3721
  var columns$1 = {
@@ -3760,6 +3761,7 @@ var helpers$1 = {
3760
3761
  noRolesFound: "No roles found.",
3761
3762
  searchRoles: "Search roles",
3762
3763
  selectedMembersCount: "{{count}} {{metaName}} selected of",
3764
+ themeSelector: "Theme selector",
3763
3765
  visitToKnowMoreAboutPermissions: "Visit to know more about permissions"
3764
3766
  };
3765
3767
  var metaNames$1 = {
@@ -3813,6 +3815,7 @@ var buttons = {
3813
3815
  cancel: "Annuler",
3814
3816
  changeRole: "Changer de rôle",
3815
3817
  proceed: "Procéder",
3818
+ reset: "Réinitialiser",
3816
3819
  saveChanges: "Sauvegarder les modifications"
3817
3820
  };
3818
3821
  var columns = {
@@ -3859,6 +3862,7 @@ var helpers = {
3859
3862
  searchRoles: "Rechercher des rôles",
3860
3863
  selectedMembersCount_one: "{{count}} {{metaName}} sélectionné sur",
3861
3864
  selectedMembersCount_other: "{{count}} {{metaName}} sélectionnés sur",
3865
+ themeSelector: "Sélecteur de thème",
3862
3866
  visitToKnowMoreAboutPermissions: "Visitez pour en savoir plus sur les autorisations"
3863
3867
  };
3864
3868
  var metaNames = {
@@ -4006,16 +4010,19 @@ const update$1 = (id, payload) => axios__default["default"].patch(`${BASE_URL}/o
4006
4010
  const destroy = (id, payload) => axios__default["default"].delete(`${BASE_URL}/organization_roles/${id}`, {
4007
4011
  data: payload
4008
4012
  });
4013
+ const bulkUpdate$1 = payload => axios__default["default"].patch(`${BASE_URL}/organization_roles/bulk_update`, payload);
4009
4014
  const organizationRolesApi = {
4010
- fetch: fetch$1,
4015
+ bulkUpdate: bulkUpdate$1,
4011
4016
  create: create$1,
4012
- update: update$1,
4013
- destroy
4017
+ destroy,
4018
+ fetch: fetch$1,
4019
+ update: update$1
4014
4020
  };
4015
4021
 
4016
4022
  const _excluded$2 = ["onSuccess"],
4017
4023
  _excluded2$2 = ["onSuccess"],
4018
- _excluded3$1 = ["onSuccess"];
4024
+ _excluded3$1 = ["onSuccess"],
4025
+ _excluded4 = ["onSuccess"];
4019
4026
  function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4020
4027
  function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$7(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4021
4028
  const useFetchRoles = function () {
@@ -4087,6 +4094,19 @@ const useDestroyRole = _ref4 => {
4087
4094
  }
4088
4095
  }, options));
4089
4096
  };
4097
+ const useBulkUpdateRoles = _ref6 => {
4098
+ let onSuccess = _ref6.onSuccess,
4099
+ options = _objectWithoutProperties(_ref6, _excluded4);
4100
+ return reactQuery.useMutation(organizationRolesApi.bulkUpdate, _objectSpread$7({
4101
+ onSuccess: response => {
4102
+ queryClient.invalidateQueries(QUERY_KEYS.TEAMS);
4103
+ queryClient.invalidateQueries(QUERY_KEYS.TEAMS_DEPENDENCIES);
4104
+ queryClient.invalidateQueries(QUERY_KEYS.ROLES);
4105
+ neetoui.Toastr.success(response.ntmNotice || response.data.ntmNotice);
4106
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
4107
+ }
4108
+ }, options));
4109
+ };
4090
4110
 
4091
4111
  var distExports = {};
4092
4112
  var dist = {
@@ -5466,22 +5486,6 @@ var dist = {
5466
5486
 
5467
5487
  } (dist));
5468
5488
 
5469
- const renderSearchProps = (searchString, setSearchString) => ({
5470
- "data-cy": "ntm-search-roles-input",
5471
- onChange: _ref => {
5472
- let value = _ref.target.value;
5473
- return setSearchString(value);
5474
- },
5475
- placeholder: instance.t("common.search_", {
5476
- what: instance.t("common.role", PLURAL).toLocaleLowerCase()
5477
- }),
5478
- value: searchString
5479
- });
5480
- const renderBreadcrumbs = breadcrumbs => breadcrumbs !== null && breadcrumbs !== void 0 ? breadcrumbs : [{
5481
- text: instance.t("metaNames.member", PLURAL),
5482
- link: "/members"
5483
- }];
5484
-
5485
5489
  const AddRoleButton = _ref => {
5486
5490
  var _permissions$create, _permissions$create2;
5487
5491
  let onClick = _ref.onClick,
@@ -5502,9 +5506,28 @@ const AddRoleButton = _ref => {
5502
5506
  })));
5503
5507
  };
5504
5508
 
5509
+ const renderSearchProps = (searchString, setSearchString) => ({
5510
+ "data-cy": "ntm-search-roles-input",
5511
+ onChange: _ref => {
5512
+ let value = _ref.target.value;
5513
+ return setSearchString(value);
5514
+ },
5515
+ placeholder: instance.t("common.search_", {
5516
+ what: instance.t("common.role", PLURAL).toLocaleLowerCase()
5517
+ }),
5518
+ value: searchString
5519
+ });
5520
+ const renderBreadcrumbs = breadcrumbs => breadcrumbs !== null && breadcrumbs !== void 0 ? breadcrumbs : [{
5521
+ text: instance.t("metaNames.member", PLURAL),
5522
+ link: "/members"
5523
+ }];
5524
+
5505
5525
  const Header$1 = _ref => {
5506
5526
  var _config$header;
5507
5527
  let config = _ref.config,
5528
+ handleReset = _ref.handleReset,
5529
+ handleSubmit = _ref.handleSubmit,
5530
+ isDirty = _ref.isDirty,
5508
5531
  searchString = _ref.searchString,
5509
5532
  setSearchString = _ref.setSearchString,
5510
5533
  setIsNewRolePaneOpen = _ref.setIsNewRolePaneOpen;
@@ -5524,7 +5547,18 @@ const Header$1 = _ref => {
5524
5547
  })),
5525
5548
  breadcrumbs: renderBreadcrumbs(config === null || config === void 0 ? void 0 : (_config$header = config.header) === null || _config$header === void 0 ? void 0 : _config$header.breadcrumbs),
5526
5549
  searchProps: renderSearchProps(searchString, setSearchString),
5527
- actionBlock: /*#__PURE__*/e__default["default"].createElement(AddRoleButton, {
5550
+ actionBlock: isDirty ? /*#__PURE__*/e__default["default"].createElement(e__default["default"].Fragment, null, /*#__PURE__*/e__default["default"].createElement(neetoui.Button, {
5551
+ "data-cy": "ntm-role-submission-button",
5552
+ onClick: handleSubmit,
5553
+ label: t("buttons.saveChanges"),
5554
+ type: "submit"
5555
+ }), /*#__PURE__*/e__default["default"].createElement(neetoui.Button, {
5556
+ "data-cy": "ntm-role-reset-button",
5557
+ label: t("buttons.reset"),
5558
+ onClick: handleReset,
5559
+ style: "text",
5560
+ type: "reset"
5561
+ })) : /*#__PURE__*/e__default["default"].createElement(AddRoleButton, {
5528
5562
  onClick: () => setIsNewRolePaneOpen(true),
5529
5563
  permissions: config === null || config === void 0 ? void 0 : config.permissions
5530
5564
  }),
@@ -5532,17 +5566,6 @@ const Header$1 = _ref => {
5532
5566
  });
5533
5567
  };
5534
5568
 
5535
- const getPermissionGroups = function () {
5536
- let permissions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
5537
- const groupedPermissions = ramda.groupBy(permission => permission === null || permission === void 0 ? void 0 : permission.category, permissions);
5538
- const categories = Object.keys(groupedPermissions);
5539
- categories.forEach(category => {
5540
- groupedPermissions[category].permissions = groupedPermissions[category];
5541
- groupedPermissions[category].isPermissionsVisible = true;
5542
- });
5543
- return groupedPermissions;
5544
- };
5545
-
5546
5569
  const transformObjectToDotNotation = function (object) {
5547
5570
  let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
5548
5571
  let result = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
@@ -5673,6 +5696,7 @@ const New = _ref => {
5673
5696
  const _useTranslation = useTranslation(),
5674
5697
  t = _useTranslation.t;
5675
5698
  const formReference = e$1.useRef(null);
5699
+ const inputReference = e$1.useRef(null);
5676
5700
  const _useCreateRole = useCreateRole({
5677
5701
  onSuccess: onClose
5678
5702
  }),
@@ -5687,6 +5711,7 @@ const New = _ref => {
5687
5711
  });
5688
5712
  };
5689
5713
  return /*#__PURE__*/e__default["default"].createElement(neetoui.Pane, {
5714
+ initialFocusRef: inputReference,
5690
5715
  isOpen: isOpen,
5691
5716
  onClose: onClose
5692
5717
  }, /*#__PURE__*/e__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/e__default["default"].createElement(neetoui.Typography, {
@@ -5715,7 +5740,8 @@ const New = _ref => {
5715
5740
  name: "name",
5716
5741
  placeholder: t("placeholders.enter_", {
5717
5742
  what: t("common.name").toLocaleLowerCase()
5718
- })
5743
+ }),
5744
+ ref: inputReference
5719
5745
  }), /*#__PURE__*/e__default["default"].createElement(formik$1.Textarea, {
5720
5746
  "data-cy": "ntm-add-role-description-text-field",
5721
5747
  label: t("common.description"),
@@ -5758,19 +5784,13 @@ const Row = _ref => {
5758
5784
  config = _ref.config,
5759
5785
  _ref$permission = _ref.permission,
5760
5786
  permission = _ref$permission === void 0 ? null : _ref$permission,
5761
- roles = _ref.roles;
5762
- const _useUpdateRole = useUpdateRole({}),
5763
- updateRole = _useUpdateRole.mutate;
5787
+ roles = _ref.roles,
5788
+ setModifiedRoles = _ref.setModifiedRoles;
5764
5789
  const allPermissionIdsOfCategory = ramda.map(ramda.prop("id"), (allPermissionsOfCategory === null || allPermissionsOfCategory === void 0 ? void 0 : allPermissionsOfCategory.permissions) || []);
5765
5790
  const handleSubmit = (role, checked) => {
5766
5791
  const permissionIds = allPermissionIdsOfCategory.length > 0 ? allPermissionIdsOfCategory : [permission.id];
5767
5792
  const modifiedRole = ramda.modify("permissionIds", () => checked ? removeDuplicates([...role.permissionIds, ...permissionIds]) : role.permissionIds.filter(id => !permissionIds.includes(id)), role);
5768
- updateRole({
5769
- id: role.id,
5770
- payload: {
5771
- organizationRole: modifiedRole
5772
- }
5773
- });
5793
+ setModifiedRoles(pure.replaceById(role.id, modifiedRole));
5774
5794
  };
5775
5795
  const isCheckboxChecked = role => !allPermissionsOfCategory ? ramda.includes(permission.id, role.permissionIds) : allPermissionIdsOfCategory.every(id => ramda.includes(id, role.permissionIds));
5776
5796
  return /*#__PURE__*/e__default["default"].createElement("div", {
@@ -5929,6 +5949,7 @@ const Edit = _ref => {
5929
5949
  const _useTranslation = useTranslation(),
5930
5950
  t = _useTranslation.t;
5931
5951
  const formReference = e$1.useRef(null);
5952
+ const inputReference = e$1.useRef(null);
5932
5953
  const _useUpdateRole = useUpdateRole({
5933
5954
  onSuccess: onClose
5934
5955
  }),
@@ -5950,6 +5971,7 @@ const Edit = _ref => {
5950
5971
  });
5951
5972
  };
5952
5973
  return /*#__PURE__*/e__default["default"].createElement(neetoui.Pane, {
5974
+ initialFocusRef: inputReference,
5953
5975
  isOpen: isOpen,
5954
5976
  onClose: onClose
5955
5977
  }, /*#__PURE__*/e__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/e__default["default"].createElement(neetoui.Typography, {
@@ -5975,7 +5997,8 @@ const Edit = _ref => {
5975
5997
  label: t("common.name"),
5976
5998
  maxLength: 40,
5977
5999
  name: "name",
5978
- placeholder: t("placeholders.enterRoleName")
6000
+ placeholder: t("placeholders.enterRoleName"),
6001
+ ref: inputReference
5979
6002
  }), /*#__PURE__*/e__default["default"].createElement(formik$1.Textarea, {
5980
6003
  "data-cy": "ntm-update-role-description-text-field",
5981
6004
  label: t("common.description"),
@@ -5999,11 +6022,12 @@ const Edit = _ref => {
5999
6022
  }));
6000
6023
  };
6001
6024
 
6002
- const Columns$1 = _ref => {
6025
+ const Columns = _ref => {
6003
6026
  let config = _ref.config,
6004
6027
  filteredGroupPermissions = _ref.filteredGroupPermissions,
6005
6028
  filteredRoles = _ref.filteredRoles,
6006
6029
  roles = _ref.roles,
6030
+ setModifiedRoles = _ref.setModifiedRoles,
6007
6031
  setIsScrollPresent = _ref.setIsScrollPresent;
6008
6032
  const _useState = e$1.useState(DEFAULT_MANAGE_ROLE_VALUES),
6009
6033
  _useState2 = _slicedToArray(_useState, 2),
@@ -6030,11 +6054,13 @@ const Columns$1 = _ref => {
6030
6054
  }, /*#__PURE__*/e__default["default"].createElement(Row, {
6031
6055
  allPermissionsOfCategory: groupedPermissions,
6032
6056
  config: config,
6057
+ setModifiedRoles: setModifiedRoles,
6033
6058
  roles: filteredRoles
6034
6059
  }), isPermissionsVisible && groupedPermissions.permissions.map((permission, permissionIndex) => /*#__PURE__*/e__default["default"].createElement(Row, {
6035
6060
  config: config,
6036
6061
  key: permissionIndex,
6037
6062
  permission: permission,
6063
+ setModifiedRoles: setModifiedRoles,
6038
6064
  roles: filteredRoles
6039
6065
  })));
6040
6066
  }))), /*#__PURE__*/e__default["default"].createElement(Edit, {
@@ -6158,6 +6184,7 @@ const Table = _ref => {
6158
6184
  filteredRoles = _ref.filteredRoles,
6159
6185
  permissionGroups = _ref.permissionGroups,
6160
6186
  roles = _ref.roles,
6187
+ setModifiedRoles = _ref.setModifiedRoles,
6161
6188
  setIsNewRolePaneOpen = _ref.setIsNewRolePaneOpen;
6162
6189
  const _useTranslation = useTranslation(),
6163
6190
  t = _useTranslation.t;
@@ -6210,17 +6237,41 @@ const Table = _ref => {
6210
6237
  }),
6211
6238
  onClick: () => setIsNewRolePaneOpen(true)
6212
6239
  }
6213
- })) : /*#__PURE__*/e__default["default"].createElement(Columns$1, {
6240
+ })) : /*#__PURE__*/e__default["default"].createElement(Columns, {
6214
6241
  config: config,
6215
6242
  filteredGroupPermissions: filteredGroupPermissions,
6216
6243
  filteredRoles: filteredRoles,
6217
6244
  roles: roles,
6245
+ setModifiedRoles: setModifiedRoles,
6218
6246
  setIsScrollPresent: setIsScrollPresent
6219
6247
  }));
6220
6248
  };
6221
6249
 
6250
+ const getPermissionGroups = function () {
6251
+ let permissions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
6252
+ const groupedPermissions = ramda.groupBy(permission => permission === null || permission === void 0 ? void 0 : permission.category, permissions);
6253
+ const categories = Object.keys(groupedPermissions);
6254
+ categories.forEach(category => {
6255
+ groupedPermissions[category].permissions = groupedPermissions[category];
6256
+ groupedPermissions[category].isPermissionsVisible = true;
6257
+ });
6258
+ return groupedPermissions;
6259
+ };
6260
+ const getModifiedPermissions = function () {
6261
+ let roles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
6262
+ let modifiedRoles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
6263
+ return modifiedRoles.map(role => {
6264
+ const oldPermissions = pure.findById(role.id, roles).permissionIds;
6265
+ if (ramda.equals(oldPermissions, role.permissionIds)) return false;
6266
+ return {
6267
+ id: role.id,
6268
+ permissionIds: role.permissionIds
6269
+ };
6270
+ }).filter(Boolean);
6271
+ };
6272
+
6222
6273
  const Roles = _ref => {
6223
- var _config$permissions$v, _config$permissions, _config$permissions$v2, _config$permissions2;
6274
+ var _config$permissions$v, _config$permissions, _config$permissions$v2, _config$permissions2, _config$permissions$u, _config$permissions3;
6224
6275
  let config = _ref.config;
6225
6276
  const _useTranslation = useTranslation(),
6226
6277
  t = _useTranslation.t;
@@ -6237,7 +6288,7 @@ const Roles = _ref => {
6237
6288
  isNewRolePaneOpen = _useState6[0],
6238
6289
  setIsNewRolePaneOpen = _useState6[1];
6239
6290
  const _useFetchRoles = useFetchRoles({
6240
- onSuccess: roles => setFilteredRoles(roles),
6291
+ onSuccess: roles => setModifiedRoles(roles),
6241
6292
  enabled: (_config$permissions$v = config === null || config === void 0 ? void 0 : (_config$permissions = config.permissions) === null || _config$permissions === void 0 ? void 0 : _config$permissions.view) !== null && _config$permissions$v !== void 0 ? _config$permissions$v : DEFAULT_PERMISSION
6242
6293
  }),
6243
6294
  roles = _useFetchRoles.data,
@@ -6247,13 +6298,31 @@ const Roles = _ref => {
6247
6298
  }),
6248
6299
  permissions = _useFetchPermissions.data,
6249
6300
  isPermissionsLoading = _useFetchPermissions.isLoading;
6301
+ const _useBulkUpdateRoles = useBulkUpdateRoles({
6302
+ enabled: (_config$permissions$u = config === null || config === void 0 ? void 0 : (_config$permissions3 = config.permissions) === null || _config$permissions3 === void 0 ? void 0 : _config$permissions3.update) !== null && _config$permissions$u !== void 0 ? _config$permissions$u : DEFAULT_PERMISSION
6303
+ }),
6304
+ bulkUpdate = _useBulkUpdateRoles.mutate;
6305
+ const _useState7 = e$1.useState(roles),
6306
+ _useState8 = _slicedToArray(_useState7, 2),
6307
+ modifiedRoles = _useState8[0],
6308
+ setModifiedRoles = _useState8[1];
6309
+ const isDirty = pure.isPresent(getModifiedPermissions(roles, modifiedRoles));
6250
6310
  const permissionGroups = getPermissionGroups(permissions);
6251
6311
  e$1.useEffect(() => {
6252
6312
  setFilteredRoles(ramda.filter(_ref2 => {
6253
6313
  let name = _ref2.name;
6254
6314
  return ramda.includes(searchString.toLowerCase().trim(), name.toLowerCase().trim());
6255
- }, roles || []));
6256
- }, [roles, searchString]);
6315
+ }, modifiedRoles || []));
6316
+ }, [modifiedRoles, searchString]);
6317
+ const handleSubmit = () => {
6318
+ const updatedRoles = getModifiedPermissions(roles, modifiedRoles);
6319
+ bulkUpdate({
6320
+ organizationRoles: {
6321
+ updatedRoles
6322
+ }
6323
+ });
6324
+ };
6325
+ const handleReset = () => setModifiedRoles(roles);
6257
6326
  if (isRolesLoading || isPermissionsLoading) {
6258
6327
  return /*#__PURE__*/e__default["default"].createElement("div", {
6259
6328
  className: "ntm-members-page-loader"
@@ -6263,6 +6332,9 @@ const Roles = _ref => {
6263
6332
  isHeaderFixed: true
6264
6333
  }, /*#__PURE__*/e__default["default"].createElement(Header$1, {
6265
6334
  config: config,
6335
+ handleReset: handleReset,
6336
+ handleSubmit: handleSubmit,
6337
+ isDirty: isDirty,
6266
6338
  searchString: searchString,
6267
6339
  setSearchString: setSearchString,
6268
6340
  setIsNewRolePaneOpen: setIsNewRolePaneOpen
@@ -6271,6 +6343,7 @@ const Roles = _ref => {
6271
6343
  filteredRoles: filteredRoles,
6272
6344
  permissionGroups: permissionGroups,
6273
6345
  roles: roles,
6346
+ setModifiedRoles: setModifiedRoles,
6274
6347
  setIsNewRolePaneOpen: setIsNewRolePaneOpen
6275
6348
  }), (config === null || config === void 0 ? void 0 : config.helpUrl) && /*#__PURE__*/e__default["default"].createElement("div", {
6276
6349
  className: "ntm-roles-help-url-wrapper"
@@ -7024,16 +7097,20 @@ var objectInspect = function inspect_(obj, options, depth, seen) {
7024
7097
  }
7025
7098
  if (isMap(obj)) {
7026
7099
  var mapParts = [];
7027
- mapForEach.call(obj, function (value, key) {
7028
- mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));
7029
- });
7100
+ if (mapForEach) {
7101
+ mapForEach.call(obj, function (value, key) {
7102
+ mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));
7103
+ });
7104
+ }
7030
7105
  return collectionOf('Map', mapSize.call(obj), mapParts, indent);
7031
7106
  }
7032
7107
  if (isSet(obj)) {
7033
7108
  var setParts = [];
7034
- setForEach.call(obj, function (value) {
7035
- setParts.push(inspect(value, obj));
7036
- });
7109
+ if (setForEach) {
7110
+ setForEach.call(obj, function (value) {
7111
+ setParts.push(inspect(value, obj));
7112
+ });
7113
+ }
7037
7114
  return collectionOf('Set', setSize.call(obj), setParts, indent);
7038
7115
  }
7039
7116
  if (isWeakMap(obj)) {
@@ -8470,7 +8547,8 @@ function Re(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Obj
8470
8547
 
8471
8548
  const FIXED_COLUMNS = ["actions"];
8472
8549
  const COLUMNS_DROPDOWN_PROPS = {
8473
- label: instance.t("common.column", PLURAL)
8550
+ label: instance.t("common.column", PLURAL),
8551
+ buttonStyle: "text"
8474
8552
  };
8475
8553
  const COLUMNS_SEARCH_PROPS = {
8476
8554
  placeholder: instance.t("columns.search")
@@ -8508,134 +8586,6 @@ const Header = _ref => {
8508
8586
  }))));
8509
8587
  };
8510
8588
 
8511
- const useDebounce = function (value) {
8512
- let delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 350;
8513
- const _useState = e$1.useState(value),
8514
- _useState2 = _slicedToArray(_useState, 2),
8515
- debouncedValue = _useState2[0],
8516
- setDebouncedValue = _useState2[1];
8517
- e$1.useEffect(() => {
8518
- const handler = setTimeout(() => setDebouncedValue(value), delay);
8519
- return () => clearTimeout(handler);
8520
- }, [value, delay]);
8521
- return debouncedValue;
8522
- };
8523
-
8524
- const getStorageValue = (key, defaultValue) => {
8525
- const saved = localStorage.getItem(key);
8526
- return JSON.parse(saved) || defaultValue;
8527
- };
8528
- const useLocalStorage = (key, defaultValue) => {
8529
- const _useState = e$1.useState(() => getStorageValue(key, defaultValue)),
8530
- _useState2 = _slicedToArray(_useState, 2),
8531
- storedValue = _useState2[0],
8532
- setStoredValue = _useState2[1];
8533
- const setValue = value => {
8534
- if (ramda.isNil(value)) {
8535
- localStorage.removeItem(key);
8536
- } else {
8537
- localStorage.setItem(key, JSON.stringify(value));
8538
- }
8539
- setStoredValue(value);
8540
- };
8541
- return [storedValue, setValue];
8542
- };
8543
-
8544
- const removeFixedColumns = (fixedColumns, columnData) => pure.removeBy({
8545
- dataIndex: ramda.includes(ramda.__, fixedColumns)
8546
- }, columnData);
8547
- const filterBySearchTerm$1 = (searchTerm, columns) => ramda.filter(_ref => {
8548
- let title = _ref.title;
8549
- return ramda.includes(ramda.trim(ramda.toLower(searchTerm)), ramda.trim(ramda.toLower(title)));
8550
- }, columns);
8551
-
8552
- const Columns = _ref => {
8553
- let actionBlock = _ref.actionBlock,
8554
- _ref$checkboxProps = _ref.checkboxProps,
8555
- checkboxProps = _ref$checkboxProps === void 0 ? {} : _ref$checkboxProps,
8556
- _ref$columnData = _ref.columnData,
8557
- columnData = _ref$columnData === void 0 ? [] : _ref$columnData,
8558
- _ref$dropdownProps = _ref.dropdownProps,
8559
- dropdownProps = _ref$dropdownProps === void 0 ? {} : _ref$dropdownProps,
8560
- _ref$fixedColumns = _ref.fixedColumns,
8561
- fixedColumns = _ref$fixedColumns === void 0 ? [] : _ref$fixedColumns,
8562
- _ref$isSearchable = _ref.isSearchable,
8563
- isSearchable = _ref$isSearchable === void 0 ? false : _ref$isSearchable,
8564
- _ref$localStorageKey = _ref.localStorageKey,
8565
- localStorageKey = _ref$localStorageKey === void 0 ? "" : _ref$localStorageKey,
8566
- _ref$noColumnMessage = _ref.noColumnMessage,
8567
- noColumnMessage = _ref$noColumnMessage === void 0 ? "No columns found!" : _ref$noColumnMessage,
8568
- _ref$onChange = _ref.onChange,
8569
- onChange = _ref$onChange === void 0 ? ramda.identity : _ref$onChange,
8570
- _ref$searchProps = _ref.searchProps,
8571
- searchProps = _ref$searchProps === void 0 ? {} : _ref$searchProps;
8572
- // @ts-ignore
8573
- const Divider = neetoui.Dropdown.Divider,
8574
- Menu = neetoui.Dropdown.Menu,
8575
- MenuItem = neetoui.Dropdown.MenuItem;
8576
- const _useLocalStorage = useLocalStorage(localStorageKey, []),
8577
- _useLocalStorage2 = _slicedToArray(_useLocalStorage, 2),
8578
- hiddenColumns = _useLocalStorage2[0],
8579
- setHiddenColumns = _useLocalStorage2[1];
8580
- const _useState = e$1.useState(""),
8581
- _useState2 = _slicedToArray(_useState, 2),
8582
- searchTerm = _useState2[0],
8583
- setSearchTerm = _useState2[1];
8584
- const columns = removeFixedColumns(fixedColumns, columnData);
8585
- const filteredColumns = filterBySearchTerm$1(searchTerm, columns);
8586
- const handleChange = _ref2 => {
8587
- let _ref2$target = _ref2.target,
8588
- dataIndex = _ref2$target.name,
8589
- checked = _ref2$target.checked;
8590
- return checked ? setHiddenColumns(ramda.without([dataIndex], hiddenColumns)) : setHiddenColumns(ramda.append(dataIndex, hiddenColumns));
8591
- };
8592
- const handleSearch = _ref3 => {
8593
- let value = _ref3.target.value;
8594
- return setSearchTerm(value);
8595
- };
8596
- e$1.useEffect(() => {
8597
- onChange(pure.removeBy({
8598
- dataIndex: ramda.includes(ramda.__, hiddenColumns)
8599
- }, columnData));
8600
- }, [columnData, hiddenColumns]); // eslint-disable-line react-hooks/exhaustive-deps
8601
-
8602
- return /*#__PURE__*/e__default["default"].createElement(neetoui.Dropdown, _extends({
8603
- buttonSize: "medium",
8604
- buttonStyle: "secondary",
8605
- closeOnSelect: false,
8606
- label: "Columns",
8607
- onClose: () => setSearchTerm(""),
8608
- position: "bottom-end"
8609
- }, dropdownProps), /*#__PURE__*/e__default["default"].createElement(Menu, null, /*#__PURE__*/e__default["default"].createElement("div", null, isSearchable && /*#__PURE__*/e__default["default"].createElement(neetoui.Input, _extends({
8610
- className: "neeto-ui-px-3 neeto-ui-py-2",
8611
- "data-cy": "neeto-ui-columns-search",
8612
- onChange: handleSearch,
8613
- placeholder: "Search columns",
8614
- prefix: /*#__PURE__*/e__default["default"].createElement(neetoIcons.Search, null),
8615
- type: "search",
8616
- value: searchTerm
8617
- }, searchProps)), pure.isNotEmpty(filteredColumns) ? filteredColumns.map(_ref4 => {
8618
- let dataIndex = _ref4.dataIndex,
8619
- key = _ref4.key,
8620
- title = _ref4.title;
8621
- return /*#__PURE__*/e__default["default"].createElement(MenuItem, {
8622
- key: key
8623
- }, /*#__PURE__*/e__default["default"].createElement(neetoui.Label, {
8624
- className: "neeto-ui-w-full neeto-ui-px-3 neeto-ui-py-2 hover:neeto-ui-bg-gray-200 neeto-ui-cursor-pointer",
8625
- htmlFor: dataIndex
8626
- }, /*#__PURE__*/e__default["default"].createElement(neetoui.Checkbox, _extends({
8627
- id: dataIndex,
8628
- name: dataIndex,
8629
- checked: !hiddenColumns.includes(dataIndex),
8630
- "data-cy": "neeto-ui-columns-checkbox",
8631
- label: title,
8632
- onChange: handleChange
8633
- }, checkboxProps))));
8634
- }) : /*#__PURE__*/e__default["default"].createElement("span", {
8635
- className: "neeto-ui-flex neeto-ui-flex-col neeto-ui-items-center neeto-ui-p-2"
8636
- }, noColumnMessage), !!actionBlock && /*#__PURE__*/e__default["default"].createElement(e__default["default"].Fragment, null, /*#__PURE__*/e__default["default"].createElement(Divider, null), actionBlock))));
8637
- };
8638
-
8639
8589
  const filterBySearchTerm = (searchTerm, roles) => ramda.filter(_ref => {
8640
8590
  let name = _ref.name;
8641
8591
  return ramda.includes(ramda.trim(ramda.toLower(searchTerm)), ramda.trim(ramda.toLower(name)));
@@ -8872,7 +8822,7 @@ const Right = _ref2 => {
8872
8822
  handleNeetoFilterChange = _ref2.handleNeetoFilterChange,
8873
8823
  setIsFiltersPaneOpen = _ref2.setIsFiltersPaneOpen,
8874
8824
  isFiltersPaneOpen = _ref2.isFiltersPaneOpen;
8875
- return /*#__PURE__*/e__default["default"].createElement(e__default["default"].Fragment, null, /*#__PURE__*/e__default["default"].createElement(Columns, {
8825
+ return /*#__PURE__*/e__default["default"].createElement(e__default["default"].Fragment, null, /*#__PURE__*/e__default["default"].createElement(reactUtils.Columns, {
8876
8826
  columnData: columns,
8877
8827
  dropdownProps: COLUMNS_DROPDOWN_PROPS,
8878
8828
  fixedColumns: FIXED_COLUMNS,
@@ -9701,6 +9651,7 @@ const renderPayload = function (_ref) {
9701
9651
  const MultipleEmailInput = _ref => {
9702
9652
  var _head;
9703
9653
  let emails = _ref.emails,
9654
+ innerRef = _ref.innerRef,
9704
9655
  selectedMember = _ref.selectedMember;
9705
9656
  return /*#__PURE__*/e__default["default"].createElement("div", {
9706
9657
  className: "neeto-ui-w-full"
@@ -9718,7 +9669,8 @@ const MultipleEmailInput = _ref => {
9718
9669
  helpText: instance.t("helpers.enterMultipleEmails"),
9719
9670
  label: `${instance.t("common.email", PLURAL)}*`,
9720
9671
  name: "emails",
9721
- placeholder: instance.t("placeholders.email")
9672
+ placeholder: instance.t("placeholders.email"),
9673
+ ref: innerRef
9722
9674
  }));
9723
9675
  };
9724
9676
  MultipleEmailInput.defaultProps = {
@@ -9782,7 +9734,10 @@ const ManageMember = _ref => {
9782
9734
  hasSubmitted = _useState2[0],
9783
9735
  setHasSubmitted = _useState2[1];
9784
9736
  const formReference = e$1.useRef(null);
9785
- const manageMemberComponentConfig = _objectSpread$2(_objectSpread$2({}, DEFAULT_COMPONENT_CONFIG), componentConfig);
9737
+ const emailInputReference = e$1.useRef(null);
9738
+ const manageMemberComponentConfig = _objectSpread$2(_objectSpread$2({}, DEFAULT_COMPONENT_CONFIG), {}, {
9739
+ initialFocusRef: emailInputReference
9740
+ }, componentConfig);
9786
9741
  const Component = MEMBERS_FORM_COMPONENT_MAPPER[manageMemberComponentConfig.type || "pane"];
9787
9742
  const handleClose = () => {
9788
9743
  onComplete();
@@ -9843,7 +9798,8 @@ const ManageMember = _ref => {
9843
9798
  "data-cy": "ntm-manage-members-pane-wrapper",
9844
9799
  isOpen: manageMemberComponentConfig.isOpen,
9845
9800
  onClose: handleClose,
9846
- className: manageMemberComponentConfig.className
9801
+ className: manageMemberComponentConfig.className,
9802
+ initialFocusRef: manageMemberComponentConfig.initialFocusRef
9847
9803
  }, /*#__PURE__*/e__default["default"].createElement(Component.Header, manageMemberComponentConfig.headerProps, /*#__PURE__*/e__default["default"].createElement(neetoui.Typography, {
9848
9804
  className: "ntm-members-form__header",
9849
9805
  "data-cy": "ntm-manage-members-pane-header",
@@ -9869,6 +9825,7 @@ const ManageMember = _ref => {
9869
9825
  className: ie__default["default"](["ntm-members-form__body", (_manageMemberComponen = manageMemberComponentConfig.bodyProps) === null || _manageMemberComponen === void 0 ? void 0 : _manageMemberComponen.className])
9870
9826
  }), /*#__PURE__*/e__default["default"].createElement(MultipleEmailInput, {
9871
9827
  emails: emails,
9828
+ innerRef: emailInputReference,
9872
9829
  selectedMember: selectedMember
9873
9830
  }), /*#__PURE__*/e__default["default"].createElement(RolesRadioGroup, {
9874
9831
  role: role,
@@ -9928,7 +9885,7 @@ const useFilters = _ref => {
9928
9885
  _useState2 = _slicedToArray(_useState, 2),
9929
9886
  filters = _useState2[0],
9930
9887
  setFilters = _useState2[1];
9931
- const debouncedSearch = useDebounce(filters.search, 750);
9888
+ const debouncedSearch = reactUtils.useDebounce(filters.search, 750);
9932
9889
  const shouldFetchFilterOptions = ramda.isNil(config === null || config === void 0 ? void 0 : config.filterColumns);
9933
9890
  const _useFetchFilterOption = useFetchFilterOptions({
9934
9891
  options: {
@@ -10016,7 +9973,11 @@ const TeamMembers = _ref => {
10016
9973
  roles = _useFetchRoles.data,
10017
9974
  isRolesLoading = _useFetchRoles.isLoading;
10018
9975
  const _useUpdateMember = useUpdateMember({
10019
- onSuccess: () => handleAlertClose()
9976
+ onSuccess: () => {
9977
+ var _config$updateMember, _config$updateMember$;
9978
+ handleAlertClose();
9979
+ config === null || config === void 0 ? void 0 : (_config$updateMember = config.updateMember) === null || _config$updateMember === void 0 ? void 0 : (_config$updateMember$ = _config$updateMember.onSuccess) === null || _config$updateMember$ === void 0 ? void 0 : _config$updateMember$.callback();
9980
+ }
10020
9981
  }),
10021
9982
  updateMember = _useUpdateMember.mutate,
10022
9983
  isUpdatingMember = _useUpdateMember.isLoading;
@@ -10225,7 +10186,7 @@ const VALIDATION_SCHEMA = {
10225
10186
 
10226
10187
  var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
10227
10188
 
10228
- var css = ":root {\n --ntm-roles-table-default-scroll: 15px;\n --ntm-roles-table-cell-height: 68px;\n}\n\n.ntm-dropdown__button {\n border-radius: 0 !important;\n font-weight: var(--neeto-ui-font-normal);\n min-height: 34px;\n min-width: 150px;\n text-align: left;\n width: 100%;\n}\n\n.ntm-scrollbar__inner {\n width: 100%;\n height: 200px;\n}\n.ntm-scrollbar__outer {\n position: \"absolute\";\n top: 0px;\n left: 0px;\n width: 200px;\n height: 150px;\n overflow: \"hidden\";\n visibility: \"hidden\";\n}\n\n.ntm-empty-state {\n align-items: center;\n display: flex;\n height: 100%;\n justify-content: center;\n width: 100%;\n}\n.ntm-empty-state__image {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-bottom: 2rem;\n}\n.ntm-empty-state__title--with-action-block {\n margin-bottom: 1rem;\n}\n.ntm-empty-state__action-block {\n display: flex;\n justify-content: center;\n}\n\n.ntm-members {\n overflow: auto;\n width: 100%;\n}\n.ntm-members-wrapper {\n display: flex;\n}\n.ntm-members-page-loader {\n width: 100%;\n height: 100vh;\n}\n.ntm-members__table-wrapper {\n height: calc(100vh - 205px);\n width: 100%;\n}\n.ntm-members-table__column {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.ntm-members-form__header {\n margin-bottom: 0.5rem;\n}\n.ntm-members-form__body {\n width: 100%;\n padding-bottom: 1rem;\n}\n.ntm-members-form__body > * + * {\n margin-top: 1rem;\n}\n.ntm-members-form__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-members-radio-group {\n width: 100%;\n}\n.ntm-members-radio-group .neeto-ui-radio__container--stacked {\n width: 100%;\n}\n.ntm-members-radio-group__label {\n padding-right: 4px;\n}\n.ntm-members-radio-group__icon {\n cursor: pointer;\n}\n\n.ntm-members-form-radio-item__wrapper {\n width: 100%;\n cursor: pointer;\n padding: 8px 0px !important;\n}\n.ntm-members-form-radio-item__wrapper:first-child {\n padding-top: 0px !important;\n}\n.ntm-members-form-radio-item__label {\n margin-bottom: 0 !important;\n}\n.ntm-members-form-radio-item__description {\n color: rgb(var(--neeto-ui-gray-700));\n}\n\n.ntm-roles-header {\n border-bottom: 1px solid rgb(var(--neeto-ui-gray-300));\n}\n\n.ntm-roles-table__wrapper {\n width: 100%;\n height: calc(100vh - var(--neeto-ui-main-header-with-breadcrumbs-height));\n display: flex;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar {\n width: 396px;\n min-width: 396px;\n border-right: thin solid rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__search {\n padding: 24px 24px 16px;\n height: 72px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list {\n height: calc(\n 100vh - var(--neeto-ui-main-header-with-breadcrumbs-height) - 72px -\n var(--ntm-roles-table-default-scroll)\n );\n overflow-y: auto;\n padding-left: 24px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list .ntm-roles-table-sidebar__list-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 8px;\n min-height: var(--ntm-roles-table-cell-height);\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list .ntm-roles-table-sidebar__list-item.ntm-roles-table-sidebar__list-item--highlighted {\n background-color: rgb(var(--neeto-ui-primary-100));\n padding: 12px 8px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list .ntm-roles-table-sidebar__list-item:not(.ntm-roles-table-sidebar__list-item--highlighted) {\n border-bottom: thin solid rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns {\n width: calc(\n 100vw - var(--neeto-ui-sidebar-width) - 396px - 24px\n );\n overflow: hidden;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__cell {\n width: 100%;\n min-width: 200px;\n height: var(--ntm-roles-table-cell-height);\n padding: 12px 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n border-right: thin solid rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table-cell__checkbox-wrapper {\n position: absolute;\n height: 1rem;\n width: 1rem;\n margin: auto;\n z-index: 10;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table-cell__checkbox {\n z-index: 10;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header {\n display: flex;\n align-items: center;\n overflow-x: auto;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table__cell {\n height: 72px;\n padding-left: 24px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table-header-cell__container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n gap: 1rem;\n overflow: hidden;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table-header__dropdown {\n margin: 3px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table-header__role-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows {\n width: 100%;\n height: calc(\n 100vh - var(--neeto-ui-main-header-with-breadcrumbs-height) - 72px -\n var(--ntm-roles-table-default-scroll)\n );\n overflow-y: auto;\n scrollbar-width: none;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar-thumb {\n background: rgb(var(--neeto-ui-gray-300));\n border-radius: 50px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar-thumb:hover {\n border-radius: 50px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar-track {\n background: rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row {\n display: flex;\n align-items: center;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row .ntm-roles-table__cell {\n overflow: hidden;\n position: relative;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row .ntm-roles-table__cell p {\n opacity: 0;\n width: 340px;\n min-width: 340px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row.ntm-roles-table__row--highlighted .ntm-roles-table__cell {\n background-color: rgb(var(--neeto-ui-primary-100));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row:not(.ntm-roles-table__row--highlighted) .ntm-roles-table__cell {\n border-bottom: thin solid rgb(var(--neeto-ui-gray-300));\n}\n\n.ntm-roles-table-sidebar__drop-down-button {\n color: rgb(var(--neeto-ui-gray-600));\n cursor: pointer;\n}\n\n.ntm-roles-modal__body > * + * {\n margin-top: 1rem;\n}\n.ntm-roles-modal__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-roles-pane__body {\n width: 100%;\n margin-bottom: 1.5rem;\n}\n.ntm-roles-pane__body-wrapper > * + * {\n margin-top: 1rem;\n}\n.ntm-roles-pane__body > * + * {\n margin-top: 1.5rem;\n}\n.ntm-roles-pane__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-roles-permission > * + * {\n margin: 0.5rem;\n}\n.ntm-roles-permission__heading {\n color: rgb(var(--neeto-ui-gray-500));\n text-transform: uppercase;\n}\n.ntm-roles-permission__card {\n background-color: rgb(var(--neeto-ui-white));\n align-items: center;\n border-radius: var(--neeto-ui-rounded);\n border-width: 1px;\n border-color: rgb(var(--neeto-ui-gray-300));\n cursor: pointer;\n display: flex;\n gap: 0.75rem;\n padding: 1rem 0.75rem;\n}\n.ntm-roles-permission__card--description {\n flex-grow: 1;\n}\n.ntm-roles-permission__card--checkbox {\n padding: 0 0.5rem;\n}\n\n.ntm-roles-help-url-wrapper {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n padding: 1rem 0;\n}\n\n.neeto-ui-subheader .neeto-ui-subheader__left-wrapper .neeto-ui-subheader__left {\n max-width: none;\n}\n\ntd.ant-table-column-sort {\n background: transparent;\n}";
10189
+ var css = ":root {\n --ntm-roles-table-default-scroll: 15px;\n --ntm-roles-table-cell-height: 68px;\n --ntm-roles-sidebar-width: 396px;\n --ntm-roles-table-header-height: 72px;\n}\n\n.ntm-scrollbar__inner {\n width: 100%;\n height: 200px;\n}\n.ntm-scrollbar__outer {\n position: \"absolute\";\n top: 0px;\n left: 0px;\n width: 200px;\n height: 150px;\n overflow: \"hidden\";\n visibility: \"hidden\";\n}\n\ntd.ant-table-column-sort {\n background: transparent;\n}\n\n.ntm-empty-state {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.ntm-members {\n overflow: auto;\n width: 100%;\n}\n.ntm-members-wrapper {\n display: flex;\n}\n.ntm-members-page-loader {\n width: 100%;\n height: 100vh;\n}\n.ntm-members__table-wrapper {\n height: calc(100vh - 205px);\n width: 100%;\n}\n.ntm-members-table__column {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.ntm-members-form__header {\n margin-bottom: 0.5rem;\n}\n.ntm-members-form__body {\n width: 100%;\n padding-bottom: 1rem;\n}\n.ntm-members-form__body > * + * {\n margin-top: 1rem;\n}\n.ntm-members-form__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-members-radio-group {\n width: 100%;\n}\n.ntm-members-radio-group .neeto-ui-radio__container--stacked {\n width: 100%;\n}\n.ntm-members-radio-group__label {\n padding-right: 4px;\n}\n.ntm-members-radio-group__icon {\n cursor: pointer;\n}\n\n.ntm-members-form-radio-item__wrapper {\n width: 100%;\n cursor: pointer;\n padding: 8px 0px !important;\n}\n.ntm-members-form-radio-item__wrapper:first-child {\n padding-top: 0px !important;\n}\n.ntm-members-form-radio-item__label {\n margin-bottom: 0 !important;\n}\n.ntm-members-form-radio-item__description {\n color: rgb(var(--neeto-ui-gray-700));\n}\n\n.ntm-roles-table__wrapper {\n width: 100%;\n height: calc(100vh - var(--neeto-ui-main-header-with-breadcrumbs-height));\n display: flex;\n padding: 0 1.5rem;\n}\n\n.ntm-roles-table__sidebar {\n width: var(--ntm-roles-sidebar-width);\n min-width: var(--ntm-roles-sidebar-width);\n border-right: thin solid rgb(var(--neeto-ui-gray-300));\n border-left: thin solid rgb(var(--neeto-ui-gray-300));\n border-top: thin solid rgb(var(--neeto-ui-gray-300));\n}\n\n.ntm-roles-table-sidebar__search {\n padding: 20px 24px;\n height: var(--ntm-roles-table-header-height);\n}\n\n.ntm-roles-table-sidebar__list {\n height: calc(\n 100vh - var(--neeto-ui-main-header-with-breadcrumbs-height) - var(\n --ntm-roles-table-header-height\n ) - var(--ntm-roles-table-default-scroll)\n );\n overflow-y: auto;\n}\n\n.ntm-roles-table-sidebar__list-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 24px;\n min-height: var(--ntm-roles-table-cell-height);\n}\n.ntm-roles-table-sidebar__list-item.ntm-roles-table-sidebar__list-item--highlighted {\n background-color: rgb(var(--neeto-ui-primary-100));\n padding: 12px 24px;\n}\n.ntm-roles-table-sidebar__list-item:not(.ntm-roles-table-sidebar__list-item--highlighted) {\n border-bottom: thin solid rgb(var(--neeto-ui-gray-300));\n}\n\n.ntm-roles-table__columns {\n width: calc(\n 100vw - var(--neeto-ui-sidebar-width) - var(--ntm-roles-sidebar-width) - 24px\n );\n overflow: hidden;\n border-top: thin solid rgb(var(--neeto-ui-gray-300));\n border-bottom: thin solid rgb(var(--neeto-ui-gray-300));\n}\n\n.ntm-roles-table__cell {\n width: 100%;\n min-width: 200px;\n height: var(--ntm-roles-table-cell-height);\n padding: 12px 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n border-right: thin solid rgb(var(--neeto-ui-gray-300));\n}\n\n.ntm-roles-table-cell__checkbox-wrapper {\n position: absolute;\n height: 1rem;\n width: 1rem;\n margin: auto;\n z-index: 10;\n}\n\n.ntm-roles-table-cell__checkbox {\n z-index: 10;\n}\n\n.ntm-roles-table__header {\n display: flex;\n align-items: center;\n overflow-x: auto;\n}\n.ntm-roles-table__header .ntm-roles-table__cell {\n height: var(--ntm-roles-table-header-height);\n padding-left: 24px;\n}\n\n.ntm-roles-table-header-cell__container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n gap: 1rem;\n overflow: hidden;\n}\n\n.ntm-roles-table-header__dropdown {\n margin: 3px;\n flex-shrink: 0;\n}\n\n.ntm-roles-table-header__role-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ntm-roles-table__rows {\n width: 100%;\n height: calc(\n 100vh - var(--neeto-ui-main-header-with-breadcrumbs-height) - var(\n --ntm-roles-table-header-height\n ) - var(--ntm-roles-table-default-scroll)\n );\n overflow-y: auto;\n scrollbar-width: none;\n}\n.ntm-roles-table__rows::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n}\n.ntm-roles-table__rows::-webkit-scrollbar-thumb {\n background: rgb(var(--neeto-ui-gray-300));\n border-radius: 50px;\n}\n.ntm-roles-table__rows::-webkit-scrollbar-thumb:hover {\n border-radius: 50px;\n}\n.ntm-roles-table__rows::-webkit-scrollbar-track {\n background: rgb(var(--neeto-ui-gray-300));\n}\n\n.ntm-roles-table__row {\n display: flex;\n align-items: center;\n}\n.ntm-roles-table__row .ntm-roles-table__cell {\n overflow: hidden;\n position: relative;\n}\n.ntm-roles-table__row .ntm-roles-table__cell p {\n opacity: 0;\n width: 340px;\n min-width: 340px;\n}\n.ntm-roles-table__row.ntm-roles-table__row--highlighted .ntm-roles-table__cell {\n background-color: rgb(var(--neeto-ui-primary-100));\n}\n.ntm-roles-table__row:not(.ntm-roles-table__row--highlighted) .ntm-roles-table__cell {\n border-bottom: thin solid rgb(var(--neeto-ui-gray-300));\n}\n\n.ntm-roles-table-sidebar__drop-down-button {\n color: rgb(var(--neeto-ui-gray-600));\n cursor: pointer;\n}\n\n.ntm-roles-modal__body > * + * {\n margin-top: 1rem;\n}\n.ntm-roles-modal__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-roles-pane__body {\n width: 100%;\n margin-bottom: 1.5rem;\n}\n.ntm-roles-pane__body-wrapper > * + * {\n margin-top: 1rem;\n}\n.ntm-roles-pane__body > * + * {\n margin-top: 1.5rem;\n}\n.ntm-roles-pane__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-roles-permission > * + * {\n margin: 0.5rem 0;\n}\n.ntm-roles-permission__heading {\n color: rgb(var(--neeto-ui-gray-500));\n text-transform: uppercase;\n}\n.ntm-roles-permission__card {\n background-color: rgb(var(--neeto-ui-white));\n align-items: center;\n border-radius: var(--neeto-ui-rounded);\n border-width: 1px;\n border-color: rgb(var(--neeto-ui-gray-300));\n cursor: pointer;\n display: flex;\n gap: 0.75rem;\n padding: 1rem 0.75rem;\n}\n.ntm-roles-permission__card--description {\n flex-grow: 1;\n}\n.ntm-roles-permission__card--checkbox {\n padding: 0 0.5rem;\n}\n\n.ntm-roles-help-url-wrapper {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n padding: 1rem 0;\n}";
10229
10190
  n(css,{});
10230
10191
 
10231
10192
  exports.ManageMember = ManageMember;