@bigbinary/neeto-team-members-frontend 2.4.1 → 2.4.2

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/README.md CHANGED
@@ -18,7 +18,7 @@ command:
18
18
  2. Now install the latest **neetoTeamMembers** package using the below command:
19
19
 
20
20
  ```zsh
21
- yarn add @bigbinary/neeto-team-members-frontend@2.4.0
21
+ yarn add @bigbinary/neeto-team-members-frontend@2.4.2
22
22
  ```
23
23
 
24
24
  ## Usage
package/dist/index.cjs.js CHANGED
@@ -4318,6 +4318,12 @@ const getScrollBarWidth = () => {
4318
4318
  return w1 - w2;
4319
4319
  };
4320
4320
  const noop$2 = () => {};
4321
+ const slugify = string => string.toString().toLowerCase().replace(/\s+/g, "-") // Replace spaces with -
4322
+ .replace(/&/g, "-and-") // Replace & with 'and'
4323
+ .replace(/[^\w-]+/g, "") // Remove all non-word characters
4324
+ .replace(/--+/g, "-") // Replace multiple - with single -
4325
+ .replace(/^-+/, "") // Trim - from start of text
4326
+ .replace(/-+$/, ""); // Trim - from end of text
4321
4327
 
4322
4328
  function _extends() {
4323
4329
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -11196,14 +11202,15 @@ var dist = {exports: {}};
11196
11202
  } (dist));
11197
11203
 
11198
11204
  const renderSearchProps = (searchString, setSearchString) => ({
11199
- placeholder: instance.t("common.search_", {
11200
- what: instance.t("common.role", PLURAL).toLocaleLowerCase()
11201
- }),
11202
- value: searchString,
11205
+ "data-cy": "ntm-search-roles-input",
11203
11206
  onChange: _ref => {
11204
11207
  let value = _ref.target.value;
11205
11208
  return setSearchString(value);
11206
- }
11209
+ },
11210
+ placeholder: instance.t("common.search_", {
11211
+ what: instance.t("common.role", PLURAL).toLocaleLowerCase()
11212
+ }),
11213
+ value: searchString
11207
11214
  });
11208
11215
  const renderBreadcrumbs = (breadcrumbs, membersPageUrl) => breadcrumbs !== null && breadcrumbs !== void 0 ? breadcrumbs : [{
11209
11216
  text: instance.t("metaNames.member", PLURAL),
@@ -11221,12 +11228,12 @@ const AddRoleButton = _ref => {
11221
11228
  disabled: (_permissions$create = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create !== void 0 ? _permissions$create : hasPermission(MANAGE_MEMBER_PERMISSIONS),
11222
11229
  position: "bottom"
11223
11230
  }, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
11231
+ "data-cy": "ntm-add-role-button",
11232
+ disabled: !((_permissions$create2 = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create2 !== void 0 ? _permissions$create2 : hasPermission(MANAGE_MEMBER_PERMISSIONS)),
11224
11233
  label: t("common.add_", {
11225
11234
  what: t("common.role", SINGULAR).toLocaleLowerCase()
11226
11235
  }),
11227
- onClick: onClick,
11228
- disabled: !((_permissions$create2 = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create2 !== void 0 ? _permissions$create2 : hasPermission(MANAGE_MEMBER_PERMISSIONS)),
11229
- "data-cy": "new-role-button"
11236
+ onClick: onClick
11230
11237
  })));
11231
11238
  };
11232
11239
 
@@ -11302,10 +11309,11 @@ const Permissions = _ref => {
11302
11309
  className: "ntm-roles-permission",
11303
11310
  key: category
11304
11311
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
11305
- style: "h5",
11306
- weight: "bold",
11312
+ className: "ntm-roles-permission__heading",
11313
+ "data-cy": "ntm-roles-permission-category-title",
11307
11314
  lineHeight: "normal",
11308
- className: "ntm-roles-permission__heading"
11315
+ style: "h5",
11316
+ weight: "bold"
11309
11317
  }, category), groupedPermissions[category].map(_ref2 => {
11310
11318
  let id = _ref2.id,
11311
11319
  description = _ref2.description;
@@ -11314,12 +11322,14 @@ const Permissions = _ref => {
11314
11322
  onClick: () => handleTogglePermission(id),
11315
11323
  className: "ntm-roles-permission__card"
11316
11324
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
11317
- style: "body2",
11325
+ "data-cy": "ntm-roles-permission-name",
11318
11326
  className: "ntm-roles-permission__card--description",
11319
- lineHeight: "normal"
11327
+ lineHeight: "normal",
11328
+ style: "body2"
11320
11329
  }, description), /*#__PURE__*/React__default["default"].createElement("div", {
11321
11330
  className: "ntm-roles-permission__card--checkbox"
11322
11331
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Checkbox, {
11332
+ "data-cy": "ntm-roles-permission-checkbox",
11323
11333
  checked: permissionIds.some(pid => pid === id),
11324
11334
  onChange: () => handleTogglePermission(id)
11325
11335
  })));
@@ -11351,6 +11361,7 @@ const New = _ref => {
11351
11361
  isOpen: isOpen,
11352
11362
  onClose: onClose
11353
11363
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
11364
+ "data-cy": "ntm-add-role-title",
11354
11365
  style: "h2"
11355
11366
  }, t("common.add_", {
11356
11367
  what: t("common.role", SINGULAR).toLocaleLowerCase()
@@ -11370,15 +11381,17 @@ const New = _ref => {
11370
11381
  className: "ntm-roles-pane__body-wrapper"
11371
11382
  }, /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
11372
11383
  required: true,
11384
+ "data-cy": "ntm-add-role-name-text-field",
11385
+ label: t("common.name"),
11373
11386
  maxLength: 40,
11374
11387
  name: "name",
11375
- label: t("common.name"),
11376
11388
  placeholder: t("placeholders.enter_", {
11377
11389
  what: t("common.name").toLocaleLowerCase()
11378
11390
  })
11379
11391
  }), /*#__PURE__*/React__default["default"].createElement(formik$1.Textarea, {
11380
- name: "description",
11392
+ "data-cy": "ntm-add-role-description-text-field",
11381
11393
  label: t("common.description"),
11394
+ name: "description",
11382
11395
  placeholder: t("placeholders.enter_", {
11383
11396
  what: t("common.description").toLocaleLowerCase()
11384
11397
  })
@@ -11387,14 +11400,16 @@ const New = _ref => {
11387
11400
  }))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Footer, null, /*#__PURE__*/React__default["default"].createElement("div", {
11388
11401
  className: "ntm-roles-pane__footer"
11389
11402
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
11390
- label: t("buttons.saveChanges"),
11403
+ "data-cy": "ntm-add-role-submit-button",
11391
11404
  disabled: !dirty || isSubmitting,
11392
- type: "submit",
11393
- loading: isSubmitting
11405
+ label: t("buttons.saveChanges"),
11406
+ loading: isSubmitting,
11407
+ type: "submit"
11394
11408
  }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
11395
- style: "text",
11409
+ "data-cy": "ntm-add-role-cancel-button",
11396
11410
  label: t("buttons.cancel"),
11397
- onClick: onClose
11411
+ onClick: onClose,
11412
+ style: "text"
11398
11413
  }))));
11399
11414
  }));
11400
11415
  };
@@ -11500,16 +11515,17 @@ const EmptyState = _ref => {
11500
11515
  _ref$actionBlock = _ref.actionBlock,
11501
11516
  actionBlock = _ref$actionBlock === void 0 ? null : _ref$actionBlock;
11502
11517
  return /*#__PURE__*/React__default["default"].createElement("div", {
11503
- "data-cy": "empty-state-container",
11504
- className: classnames__default["default"](["ntm-empty-state", className])
11518
+ className: classnames__default["default"](["ntm-empty-state", className]),
11519
+ "data-cy": "ntm-empty-state-container"
11505
11520
  }, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("div", {
11506
- "data-cy": "empty-state-image-container",
11507
- className: "ntm-empty-state__image"
11521
+ className: "ntm-empty-state__image",
11522
+ "data-cy": "ntm-empty-state-image-container"
11508
11523
  }, /*#__PURE__*/React__default["default"].createElement(EmptyStateSVG, null)), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
11524
+ className: classnames__default["default"]([!!actionBlock && "ntm-empty-state__title--with-action-block"]),
11509
11525
  component: "h2",
11526
+ "data-cy": "ntm-empty-state-title",
11510
11527
  style: "h2",
11511
- weight: "semibold",
11512
- className: classnames__default["default"]([!!actionBlock && "ntm-empty-state__title--with-action-block"])
11528
+ weight: "semibold"
11513
11529
  }, title), !!actionBlock && /*#__PURE__*/React__default["default"].createElement("div", {
11514
11530
  className: "ntm-empty-state__action-block"
11515
11531
  }, actionBlock)));
@@ -11561,17 +11577,15 @@ const Row = _ref => {
11561
11577
  }, /*#__PURE__*/React__default["default"].createElement("div", {
11562
11578
  className: "ntm-roles-table-cell__checkbox-wrapper"
11563
11579
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Checkbox, {
11580
+ checked: isCheckboxChecked(role),
11564
11581
  className: "ntm-roles-table-cell__checkbox",
11582
+ "data-cy": "ntm-roles-table-permission-checkbox",
11565
11583
  disabled: ramda.identical(role.name, "Admin") || !((_config$permissions$u2 = config === null || config === void 0 ? void 0 : (_config$permissions2 = config.permissions) === null || _config$permissions2 === void 0 ? void 0 : _config$permissions2.update) !== null && _config$permissions$u2 !== void 0 ? _config$permissions$u2 : DEFAULT_PERMISSION),
11566
- checked: isCheckboxChecked(role),
11567
11584
  onChange: _ref2 => {
11568
11585
  let checked = _ref2.target.checked;
11569
11586
  return handleSubmit(role, checked);
11570
11587
  }
11571
- }))), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
11572
- style: "body2",
11573
- lineHeight: "normal"
11574
- }, permission === null || permission === void 0 ? void 0 : permission.description));
11588
+ }))));
11575
11589
  }));
11576
11590
  };
11577
11591
 
@@ -11607,15 +11621,17 @@ const TableHeader = _ref => {
11607
11621
  }, /*#__PURE__*/React__default["default"].createElement("div", {
11608
11622
  className: "ntm-roles-table-header-cell__container"
11609
11623
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
11610
- style: "h4",
11611
- weight: "semibold",
11624
+ className: "ntm-roles-table-header__role-name",
11625
+ "data-cy": "ntm-roles-table-header-role-title",
11612
11626
  lineHeight: "normal",
11613
- className: "ntm-roles-table-header__role-name"
11627
+ style: "h4",
11628
+ weight: "semibold"
11614
11629
  }, role.name), !hasSystemRole && /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, {
11630
+ autoWidth: true,
11615
11631
  buttonProps: {
11616
- className: "ntm-roles-table-header__dropdown"
11632
+ className: "ntm-roles-table-header__dropdown",
11633
+ "data-cy": "ntm-roles-table-header-role-dropdown-button"
11617
11634
  },
11618
- autoWidth: true,
11619
11635
  buttonStyle: "text",
11620
11636
  icon: neetoIcons.MenuHorizontal
11621
11637
  }, /*#__PURE__*/React__default["default"].createElement(Menu, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
@@ -11623,27 +11639,29 @@ const TableHeader = _ref => {
11623
11639
  disabled: (_config$permissions$u = config === null || config === void 0 ? void 0 : (_config$permissions = config.permissions) === null || _config$permissions === void 0 ? void 0 : _config$permissions.update) !== null && _config$permissions$u !== void 0 ? _config$permissions$u : DEFAULT_PERMISSION,
11624
11640
  position: "left"
11625
11641
  }, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
11626
- size: "small",
11642
+ className: "ntm-dropdown__button",
11643
+ disabled: !((_config$permissions$u2 = config === null || config === void 0 ? void 0 : (_config$permissions2 = config.permissions) === null || _config$permissions2 === void 0 ? void 0 : _config$permissions2.update) !== null && _config$permissions$u2 !== void 0 ? _config$permissions$u2 : DEFAULT_PERMISSION),
11644
+ "data-cy": "ntm-roles-table-edit-role-button",
11627
11645
  onClick: () => setManageRole({
11628
11646
  isEdit: true,
11629
11647
  selectedRole: role
11630
11648
  }),
11631
- disabled: !((_config$permissions$u2 = config === null || config === void 0 ? void 0 : (_config$permissions2 = config.permissions) === null || _config$permissions2 === void 0 ? void 0 : _config$permissions2.update) !== null && _config$permissions$u2 !== void 0 ? _config$permissions$u2 : DEFAULT_PERMISSION),
11632
- style: "text",
11633
- className: "ntm-dropdown__button"
11649
+ size: "small",
11650
+ style: "text"
11634
11651
  }, t("common.edit")))), /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
11635
11652
  content: t("tooltips.noPermissionToRemoveRoles"),
11636
11653
  disabled: (_config$permissions$d = config === null || config === void 0 ? void 0 : (_config$permissions3 = config.permissions) === null || _config$permissions3 === void 0 ? void 0 : _config$permissions3.delete) !== null && _config$permissions$d !== void 0 ? _config$permissions$d : DEFAULT_PERMISSION,
11637
11654
  position: "left"
11638
11655
  }, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
11639
- size: "small",
11656
+ className: "ntm-dropdown__button",
11657
+ "data-cy": "ntm-roles-table-delete-role-button",
11658
+ disabled: !((_config$permissions$d2 = config === null || config === void 0 ? void 0 : (_config$permissions4 = config.permissions) === null || _config$permissions4 === void 0 ? void 0 : _config$permissions4.delete) !== null && _config$permissions$d2 !== void 0 ? _config$permissions$d2 : DEFAULT_PERMISSION),
11640
11659
  onClick: () => setManageRole({
11641
11660
  isDelete: true,
11642
11661
  selectedRole: role
11643
11662
  }),
11644
- disabled: !((_config$permissions$d2 = config === null || config === void 0 ? void 0 : (_config$permissions4 = config.permissions) === null || _config$permissions4 === void 0 ? void 0 : _config$permissions4.delete) !== null && _config$permissions$d2 !== void 0 ? _config$permissions$d2 : DEFAULT_PERMISSION),
11645
- style: "danger",
11646
- className: "ntm-dropdown__button"
11663
+ size: "small",
11664
+ style: "danger"
11647
11665
  }, t("common.delete"))))))));
11648
11666
  })));
11649
11667
  };
@@ -11727,6 +11745,7 @@ const Edit = _ref => {
11727
11745
  return /*#__PURE__*/React__default["default"].createElement(formik.Form, {
11728
11746
  noValidate: true
11729
11747
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
11748
+ "data-cy": "ntm-update-role-title",
11730
11749
  style: "h2"
11731
11750
  }, t("common.update_", {
11732
11751
  what: t("common.role", SINGULAR).toLocaleLowerCase()
@@ -11734,25 +11753,29 @@ const Edit = _ref => {
11734
11753
  className: "ntm-roles-modal__body"
11735
11754
  }, /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
11736
11755
  required: true,
11737
- name: "name",
11756
+ "data-cy": "ntm-update-role-name-text-field",
11738
11757
  label: t("common.name"),
11739
- placeholder: t("placeholders.enterRoleName"),
11740
- maxLength: 40
11758
+ maxLength: 40,
11759
+ name: "name",
11760
+ placeholder: t("placeholders.enterRoleName")
11741
11761
  }), /*#__PURE__*/React__default["default"].createElement(formik$1.Textarea, {
11742
- name: "description",
11762
+ "data-cy": "ntm-update-role-description-text-field",
11743
11763
  label: t("common.description"),
11764
+ name: "description",
11744
11765
  placeholder: t("placeholders.enterDescription")
11745
11766
  }))), /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Footer, null, /*#__PURE__*/React__default["default"].createElement("div", {
11746
11767
  className: "ntm-roles-modal__footer"
11747
11768
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
11748
- type: "submit",
11769
+ "data-cy": "ntm-update-role-submit-button",
11749
11770
  disabled: !dirty || isSubmitting,
11750
11771
  label: t("buttons.saveChanges"),
11751
- loading: isSubmitting
11772
+ loading: isSubmitting,
11773
+ type: "submit"
11752
11774
  }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
11753
- style: "text",
11775
+ "data-cy": "ntm-update-role-cancel-button",
11754
11776
  label: t("buttons.cancel"),
11755
- onClick: onClose
11777
+ onClick: onClose,
11778
+ style: "text"
11756
11779
  }))));
11757
11780
  }));
11758
11781
  };
@@ -11814,6 +11837,7 @@ const renderDescription = permissions => permissions === null || permissions ===
11814
11837
  key: id,
11815
11838
  className: "ntm-roles-table-sidebar__list-item"
11816
11839
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
11840
+ "data-cy": "ntm-permission-category-description",
11817
11841
  style: "body2",
11818
11842
  lineHeight: "normal"
11819
11843
  }, description));
@@ -11830,15 +11854,17 @@ const ToggleDropdown = _ref => {
11830
11854
  let isVisible = _ref.isVisible,
11831
11855
  onClick = _ref.onClick;
11832
11856
  return isVisible ? /*#__PURE__*/React__default["default"].createElement(neetoIcons.Up, {
11833
- size: 16,
11834
- strokeWidth: 2,
11857
+ "data-cy": "ntm-permission-category-hide-button",
11835
11858
  className: "ntm-roles-table-sidebar__drop-down-button",
11836
- onClick: onClick
11837
- }) : /*#__PURE__*/React__default["default"].createElement(neetoIcons.Down, {
11859
+ onClick: onClick,
11838
11860
  size: 16,
11839
- strokeWidth: 2,
11861
+ strokeWidth: 2
11862
+ }) : /*#__PURE__*/React__default["default"].createElement(neetoIcons.Down, {
11863
+ "data-cy": "ntm-permission-category-show-button",
11840
11864
  className: "ntm-roles-table-sidebar__drop-down-button",
11841
- onClick: onClick
11865
+ onClick: onClick,
11866
+ size: 16,
11867
+ strokeWidth: 2
11842
11868
  });
11843
11869
  };
11844
11870
 
@@ -11858,16 +11884,17 @@ const Sidebar = _ref => {
11858
11884
  className: "ntm-roles-table-sidebar__search",
11859
11885
  style: searchWrapperStyle
11860
11886
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
11861
- type: "search",
11862
- placeholder: t("common.search_", {
11863
- what: t("common.permission", PLURAL).toLocaleLowerCase()
11864
- }),
11865
- value: searchTerm,
11887
+ "data-cy": "ntm-search-permissions-input",
11866
11888
  onChange: _ref2 => {
11867
11889
  let value = _ref2.target.value;
11868
11890
  return setSearchTerm(value);
11869
11891
  },
11870
- prefix: /*#__PURE__*/React__default["default"].createElement(neetoIcons.Search, null)
11892
+ placeholder: t("common.search_", {
11893
+ what: t("common.permission", PLURAL).toLocaleLowerCase()
11894
+ }),
11895
+ prefix: /*#__PURE__*/React__default["default"].createElement(neetoIcons.Search, null),
11896
+ type: "search",
11897
+ value: searchTerm
11871
11898
  })), /*#__PURE__*/React__default["default"].createElement(dist.exports.ScrollSyncPane, {
11872
11899
  group: "vertical"
11873
11900
  }, /*#__PURE__*/React__default["default"].createElement("div", {
@@ -11880,9 +11907,10 @@ const Sidebar = _ref => {
11880
11907
  }, /*#__PURE__*/React__default["default"].createElement("div", {
11881
11908
  className: "ntm-roles-table-sidebar__list-item ntm-roles-table-sidebar__list-item--highlighted"
11882
11909
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
11910
+ "data-cy": "ntm-permission-category-title",
11911
+ lineHeight: "normal",
11883
11912
  style: "h4",
11884
- weight: "semibold",
11885
- lineHeight: "normal"
11913
+ weight: "semibold"
11886
11914
  }, category), /*#__PURE__*/React__default["default"].createElement(ToggleDropdown, {
11887
11915
  isVisible: isPermissionsVisible,
11888
11916
  onClick: () => toggleDropdown(category)
@@ -12089,10 +12117,11 @@ const Header = _ref => {
12089
12117
  disabled: (_permissions$create = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create !== void 0 ? _permissions$create : hasPermission(MANAGE_MEMBER_PERMISSIONS),
12090
12118
  position: "bottom"
12091
12119
  }, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
12120
+ "data-cy": "ntm-add-member-button",
12121
+ disabled: !((_permissions$create2 = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create2 !== void 0 ? _permissions$create2 : hasPermission(MANAGE_MEMBER_PERMISSIONS)),
12092
12122
  label: instance.t("common.add_", {
12093
12123
  what: instance.t(metaName, SINGULAR).toLocaleLowerCase()
12094
12124
  }),
12095
- disabled: !((_permissions$create2 = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create2 !== void 0 ? _permissions$create2 : hasPermission(MANAGE_MEMBER_PERMISSIONS)),
12096
12125
  onClick: onClick
12097
12126
  })));
12098
12127
  };
@@ -12101,8 +12130,9 @@ const Left = _ref => {
12101
12130
  let metaName = _ref.metaName,
12102
12131
  count = _ref.count;
12103
12132
  return /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
12104
- style: "h4",
12105
- component: "h4"
12133
+ "data-cy": "ntm-filtered-members-count",
12134
+ component: "h4",
12135
+ style: "h4"
12106
12136
  }, count, " ", instance.t(metaName, {
12107
12137
  count
12108
12138
  }).toLocaleLowerCase());
@@ -12117,11 +12147,12 @@ const Right = _ref2 => {
12117
12147
  const permissions = window.globalProps.permissions;
12118
12148
  const hasRequiredPermissions = permissions && hasPermission(MANAGE_MEMBER_PERMISSIONS);
12119
12149
  return isVisible && hasRequiredPermissions ? /*#__PURE__*/React__default["default"].createElement(neetoui.Button, _extends({
12120
- size: "small",
12121
- style: "secondary",
12150
+ "data-cy": "ntm-manage-roles-button",
12122
12151
  label: instance.t("common.manage_", {
12123
12152
  what: instance.t("common.role", PLURAL).toLocaleLowerCase()
12124
- })
12153
+ }),
12154
+ size: "small",
12155
+ style: "secondary"
12125
12156
  }, rolesButtonProps)) : null;
12126
12157
  };
12127
12158
  const SubHeader = {
@@ -12153,6 +12184,7 @@ const DEFAULT_MEMBER_FILTER = MEMBER_FILTER.ACTIVE.value;
12153
12184
  const DEFAULT_PAGE_NUMBER = 1;
12154
12185
  const DEFAULT_PAGE_SIZE = 10;
12155
12186
  const DROPDOWN_BUTTON_PROPS = {
12187
+ "data-cy": "ntm-members-table-row-dropdown-button",
12156
12188
  size: "medium"
12157
12189
  };
12158
12190
  const DEFAULT_IS_OPEN_VALUES = {
@@ -12184,9 +12216,10 @@ const renderNameColumn = (_ref, diplayStatusTag) => {
12184
12216
  },
12185
12217
  size: "medium"
12186
12218
  }), displayName, diplayStatusTag && /*#__PURE__*/React__default["default"].createElement(neetoui.Tag, {
12187
- type: "outline",
12219
+ "data-cy": "ntm-member-status-tag",
12220
+ label: active ? MEMBER_FILTER.ACTIVE.label : MEMBER_FILTER.DEACTIVATED.label,
12188
12221
  style: active ? "primary" : "secondary",
12189
- label: active ? MEMBER_FILTER.ACTIVE.label : MEMBER_FILTER.DEACTIVATED.label
12222
+ type: "outline"
12190
12223
  }));
12191
12224
  };
12192
12225
  const isDropDownButtonDisabled = permissions => {
@@ -12216,23 +12249,25 @@ const renderDropdownButton = (_ref2, handleUpdateStatus, handleUpdateRole, permi
12216
12249
  disabled: active,
12217
12250
  position: "top"
12218
12251
  }, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
12219
- size: "small",
12220
12252
  className: "ntm-dropdown__button",
12253
+ "data-cy": "ntm-edit-member-button",
12254
+ disabled: !active,
12221
12255
  onClick: () => active && handleUpdateRole({
12222
12256
  id,
12223
12257
  email,
12224
12258
  role
12225
12259
  }),
12226
- disabled: !active,
12260
+ size: "small",
12227
12261
  style: "text"
12228
12262
  }, instance.t("common.edit")))), /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
12229
- size: "small",
12230
12263
  className: "ntm-dropdown__button",
12264
+ "data-cy": "ntm-deactivate-member-button",
12231
12265
  onClick: () => handleUpdateStatus({
12232
12266
  id,
12233
12267
  name: displayName,
12234
12268
  active
12235
12269
  }),
12270
+ size: "small",
12236
12271
  style: active && "danger"
12237
12272
  }, active ? instance.t("common.deactivate") : instance.t("common.activate"))))));
12238
12273
  };
@@ -12401,10 +12436,12 @@ const ManageMember = _ref => {
12401
12436
  };
12402
12437
  const isSubmitting = isCreatingMember || isUpdatingMember;
12403
12438
  return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane, {
12439
+ "data-cy": "ntm-manage-members-pane-wrapper",
12404
12440
  isOpen: isOpen,
12405
12441
  onClose: onPaneClose
12406
12442
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
12407
12443
  className: "ntm-members-pane__header",
12444
+ "data-cy": "ntm-manage-members-pane-header",
12408
12445
  style: "h2",
12409
12446
  weight: "semibold"
12410
12447
  }, selectedMember ? instance.t("common.edit_", {
@@ -12431,29 +12468,26 @@ const ManageMember = _ref => {
12431
12468
  return /*#__PURE__*/React__default["default"].createElement(formik.Form, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
12432
12469
  className: "ntm-members-pane__body"
12433
12470
  }, selectedMember ? /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
12471
+ "data-cy": "ntm-manage-member-email-input",
12472
+ disabled: selectedMember,
12473
+ label: instance.t("common.email", SINGULAR),
12434
12474
  name: "emails",
12435
- "data-cy": "add-member-email-text-field",
12436
12475
  size: "medium",
12437
- label: instance.t("common.email", SINGULAR),
12438
- value: ramda.head(emails).value,
12439
- disabled: selectedMember
12476
+ value: ramda.head(emails).value
12440
12477
  }) : /*#__PURE__*/React__default["default"].createElement(formik$1.EmailInput, {
12441
- name: "emails",
12442
- "data-cy": "add-member-email-input",
12443
12478
  counter: COUNTER_PROPS,
12444
- filterInvalidEmails: FILTER_INVALID_EMAILS,
12479
+ "data-cy": "ntm-manage-member-email-input",
12445
12480
  disabled: selectedMember,
12481
+ filterInvalidEmails: FILTER_INVALID_EMAILS,
12482
+ helpText: instance.t("helpers.enterMultipleEmails"),
12446
12483
  label: `${instance.t("common.email", PLURAL)}*`,
12447
- placeholder: instance.t("placeholders.email"),
12448
- helpText: instance.t("helpers.enterMultipleEmails")
12484
+ name: "emails",
12485
+ placeholder: instance.t("placeholders.email")
12449
12486
  }), /*#__PURE__*/React__default["default"].createElement(formik$1.Select, {
12450
12487
  required: true,
12451
- name: "role",
12452
- "data-cy": "add-member-role-select",
12453
- size: "medium",
12488
+ "data-cy": "ntm-manage-member-role-select",
12454
12489
  label: instance.t("common.role", SINGULAR),
12455
- placeholder: instance.t("placeholders.role"),
12456
- value: roleValue,
12490
+ name: "role",
12457
12491
  onChange: _ref3 => {
12458
12492
  let value = _ref3.value;
12459
12493
  return setFieldValue("role", value);
@@ -12461,22 +12495,25 @@ const ManageMember = _ref => {
12461
12495
  options: roles.map(role => ({
12462
12496
  label: role,
12463
12497
  value: role
12464
- }))
12498
+ })),
12499
+ placeholder: instance.t("placeholders.role"),
12500
+ size: "medium",
12501
+ value: roleValue
12465
12502
  }))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Footer, {
12466
12503
  className: "ntm-members-pane__footer"
12467
12504
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
12468
- type: "submit",
12469
- "data-cy": "add-member-submit-button",
12470
- style: "primary",
12505
+ "data-cy": "ntm-manage-member-submit-button",
12506
+ disabled: !dirty || isSubmitting,
12471
12507
  label: instance.t("buttons.saveChanges"),
12508
+ loading: isSubmitting,
12472
12509
  onClick: () => setHasSubmitted(true),
12473
- disabled: !dirty || isSubmitting,
12474
- loading: isSubmitting
12510
+ style: "primary",
12511
+ type: "submit"
12475
12512
  }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
12476
- "data-cy": "add-member-cancel-button",
12477
- style: "text",
12513
+ "data-cy": "ntm-manage-member-cancel-button",
12478
12514
  label: instance.t("buttons.cancel"),
12479
- onClick: onPaneClose
12515
+ onClick: onPaneClose,
12516
+ style: "text"
12480
12517
  })));
12481
12518
  }));
12482
12519
  };
@@ -12489,13 +12526,15 @@ const Menu = _ref => {
12489
12526
  handleMemberFilterChange = _ref.handleMemberFilterChange;
12490
12527
  const memberFilterKeys = ramda.keys(MEMBER_FILTER);
12491
12528
  return /*#__PURE__*/React__default["default"].createElement(layouts.MenuBar, {
12529
+ "data-cy": "ntm-members-menubar-heading",
12492
12530
  showMenu: isMenuOpen,
12493
12531
  title: instance.t(metaName, PLURAL)
12494
12532
  }, memberFilterKeys.map(filter => /*#__PURE__*/React__default["default"].createElement(layouts.MenuBar.Block, {
12533
+ active: memberFilterKeys.includes(memberFilter) && ramda.identical(filter, memberFilter),
12495
12534
  count: getPerCategoryCount(filterCounts, filter),
12535
+ "data-cy": `ntm-members-menubar-${slugify(filter)}-block`,
12496
12536
  key: filter,
12497
12537
  label: MEMBER_FILTER[filter].label,
12498
- active: memberFilterKeys.includes(memberFilter) && ramda.identical(filter, memberFilter),
12499
12538
  onClick: () => handleMemberFilterChange(filter)
12500
12539
  })));
12501
12540
  };
@@ -12543,17 +12582,18 @@ const TeamMembers = _ref => {
12543
12582
  updateMember = _useUpdateMember.mutate,
12544
12583
  isUpdatingMember = _useUpdateMember.isLoading;
12545
12584
  const searchProps = {
12546
- placeholder: instance.t("common.search_", {
12547
- what: instance.t(metaName, PLURAL).toLocaleLowerCase()
12548
- }),
12549
- value: filters.search,
12585
+ "data-cy": "ntm-search-members-input",
12550
12586
  onChange: _ref2 => {
12551
12587
  let value = _ref2.target.value;
12552
12588
  return setFilters(ramda.mergeLeft({
12553
12589
  search: value,
12554
12590
  page: DEFAULT_PAGE_NUMBER
12555
12591
  }));
12556
- }
12592
+ },
12593
+ placeholder: instance.t("common.search_", {
12594
+ what: instance.t(metaName, PLURAL).toLocaleLowerCase()
12595
+ }),
12596
+ value: filters.search
12557
12597
  };
12558
12598
  const updateMemberAlertProps = {
12559
12599
  member: selectedMember,
@@ -12635,22 +12675,23 @@ const TeamMembers = _ref => {
12635
12675
  className: "ntm-members__table-wrapper"
12636
12676
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Table, {
12637
12677
  fixedHeight: true,
12638
- totalCount: team === null || team === void 0 ? void 0 : team.membersCount,
12639
12678
  allowRowClick: false,
12640
- rowSelection: false,
12641
- loading: isMembersFetching,
12642
- defaultPageSize: parseInt(filters.results, DEFAULT_RADIX),
12643
- rowData: team === null || team === void 0 ? void 0 : team.members,
12644
12679
  columnData: getColumnData({
12645
12680
  memberFilter: filters.category,
12646
12681
  handleUpdateStatus,
12647
12682
  handleUpdateRole,
12648
12683
  permissions: config === null || config === void 0 ? void 0 : config.permissions
12649
12684
  }),
12650
- onChange: (_, __, sorter) => handleTableChange(_, __, sorter),
12651
12685
  currentPageNumber: parseInt(filters.page, DEFAULT_RADIX),
12686
+ "data-cy": "ntm-members-table",
12687
+ defaultPageSize: parseInt(filters.results, DEFAULT_RADIX),
12688
+ handlePageChange: handlePageChange(setFilters, filters.category),
12689
+ loading: isMembersFetching,
12690
+ onChange: (_, __, sorter) => handleTableChange(_, __, sorter),
12652
12691
  paginationProps: renderPaginationProps(filters.results),
12653
- handlePageChange: handlePageChange(setFilters, filters.category)
12692
+ rowData: team === null || team === void 0 ? void 0 : team.members,
12693
+ rowSelection: false,
12694
+ totalCount: team === null || team === void 0 ? void 0 : team.membersCount
12654
12695
  })) : /*#__PURE__*/React__default["default"].createElement(EmptyState, {
12655
12696
  title: instance.t("common.notFound_", {
12656
12697
  what: instance.t(metaName, PLURAL).toLocaleLowerCase()