@bigbinary/neeto-commons-frontend 2.0.31 → 2.0.33

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
@@ -65,6 +65,7 @@ Category
65
65
  (register browser subscription for push notifications)
66
66
  - [destroyBrowserSubscription](./docs/react/utils.md#destroybrowsersubscription)
67
67
  (destroy browser subscription for push notifications)
68
+ - [handleMetaClick](./docs/react/utils.md#handlemetaclick) (handle clicks to redirect to newtab)
68
69
 
69
70
  </td>
70
71
  <td style="vertical-align: top;">
@@ -185,6 +186,7 @@ them to read more:
185
186
  3. [Pure utility functions](./docs/pure/README.md)
186
187
  4. [Web utility functions](./docs/utils/README.md)
187
188
  5. [Default configurations](./docs/configs/README.md)
189
+ 5. [Cypress Utils](./docs/cypress/README.md)
188
190
 
189
191
  ## Other references
190
192
 
@@ -11,6 +11,7 @@ declare namespace Cypress {
11
11
  | string
12
12
  | {
13
13
  title: string;
14
+ description: string;
14
15
  alias: string;
15
16
  requestCount: number;
16
17
  toastMessage: string;
@@ -2,7 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var common = require('Support/utils/common');
6
5
  var dayjs = require('dayjs');
7
6
 
8
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -111,15 +110,21 @@ var getTestTitle = function getTestTitle() {
111
110
  var ctx = Cypress.mocha.getRunner().suite.ctx;
112
111
  return ctx.currentTest.parent.title;
113
112
  };
113
+ var joinHyphenCase = function joinHyphenCase() {
114
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
115
+ args[_key] = arguments[_key];
116
+ }
117
+ return args.join(" ").replace(/\s+/g, "-").toLowerCase();
118
+ };
114
119
  var initializeCredentials = function initializeCredentials(stagingData) {
115
120
  cy.task("getGlobalState").then(function (state) {
116
121
  var newState = {
117
122
  businessName: state.businessName || stagingData.businessName,
118
- currentUserName: state.fullName || stagingData.fullName,
123
+ currentUserName: state.currentUserName || stagingData.currentUserName,
119
124
  email: state.email || stagingData.email,
120
125
  firstName: state.firstName || stagingData.firstName,
121
126
  lastName: state.lastName || stagingData.lastName,
122
- subdomainName: state.subdomain || stagingData.subdomainName,
127
+ subdomainName: state.subdomainName || stagingData.subdomainName,
123
128
  skipSetup: state.skipSetup
124
129
  };
125
130
  if (isStagingEnv) {
@@ -134,9 +139,9 @@ var allPath = function allPath() {
134
139
  return "".concat(Cypress.config("baseUrl")).concat(getUrl("**"));
135
140
  };
136
141
  var requestApis = {
137
- countries: "/api/v1/countries",
138
- signUp: "api/v1/signups/**",
139
- subdomainAvailablity: "/api/v1/subdomain_availability/**",
142
+ countries: getUrl("countries"),
143
+ signUp: getUrl("signups/**"),
144
+ subdomainAvailablity: getUrl("subdomain_availability/**"),
140
145
  teamMembers: {
141
146
  all: "/team_members*/**",
142
147
  bulkUpdate: "/team_members/teams/bulk_update",
@@ -144,7 +149,7 @@ var requestApis = {
144
149
  }
145
150
  };
146
151
  var urlPaths = {
147
- members: "/desk/members"
152
+ members: "/members"
148
153
  };
149
154
  Object.defineProperty(requestApis, "allPath", {
150
155
  get: allPath
@@ -177,6 +182,7 @@ var tableSelectors = {
177
182
  spinner: ".ant-spin"
178
183
  };
179
184
  var profileSelectors = {
185
+ tab: dataCy("profile-section"),
180
186
  logoutLink: dataCy("profile-logout-button"),
181
187
  profileOptionsContainer: '[class="tippy-box sidebar-featured-tooltip__content"]'
182
188
  };
@@ -217,11 +223,13 @@ Cypress.Commands.add("continueOnAlert", function (args) {
217
223
  };
218
224
  var alias = props.alias,
219
225
  title = props.title,
226
+ description = props.description,
220
227
  _props$requestCount = props.requestCount,
221
228
  requestCount = _props$requestCount === void 0 ? 1 : _props$requestCount,
222
229
  toastMessage = props.toastMessage;
223
230
  var hasMoreThanOneRequest = requestCount > 1;
224
231
  title && cy.get(commonSelectors.alertTitle).should("have.text", title);
232
+ description && cy.get(commonSelectors.alertModalMessage).should("have.text", description);
225
233
  cy.interceptApi(alias, requestCount);
226
234
  cy.get(commonSelectors.alertModalSubmitButton).click();
227
235
  cy.wait("@".concat(alias));
@@ -306,20 +314,21 @@ var loginSelectors = {
306
314
  };
307
315
 
308
316
  var memberSelectors = {
309
- membersTab: common.dataCy("agent-nav-tab"),
310
- newButton: common.dataCy("ntm-add-member-button"),
311
- continueButton: common.dataCy("ntm-manage-member-continue-button"),
312
- submitButton: common.dataCy("ntm-manage-member-submit-button"),
313
- searchTextField: common.dataCy("ntm-search-members-input"),
317
+ membersTab: dataCy("members-nav-tab"),
318
+ newButton: dataCy("ntm-add-member-button"),
319
+ continueButton: dataCy("ntm-manage-member-continue-button"),
320
+ submitButton: dataCy("ntm-manage-member-submit-button"),
321
+ searchTextField: dataCy("ntm-search-members-input"),
314
322
  email: "td:nth-child(3)",
315
323
  role: "td:nth-child(4)",
316
- deactivatedAgentsButton: common.dataCy("ntm-members-menubar-deactivated-block"),
317
- activatedMembersButton: common.dataCy("ntm-members-menubar-active-block"),
318
- columnCheckBox: common.dataCy("neeto-ui-columns-checkbox"),
319
- adminRoleLabel: common.dataCy("admin-radio-label"),
320
- agentRoleLabel: common.dataCy("agent-radio-label"),
321
- dropDownIcon: common.dataCy("ntm-members-table-row-dropdown-button"),
322
- menuBarHeading: common.dataCy("ntm-members-menubar-heading")
324
+ deactivatedAgentsButton: dataCy("ntm-members-menubar-deactivated-block"),
325
+ activatedMembersButton: dataCy("ntm-members-menubar-active-block"),
326
+ columnCheckBox: dataCy("neeto-ui-columns-checkbox"),
327
+ roleLabel: function roleLabel(role) {
328
+ return dataCy("".concat(joinHyphenCase(role), "-radio-label"));
329
+ },
330
+ dropDownIcon: dataCy("ntm-members-table-row-dropdown-button"),
331
+ menuBarHeading: dataCy("ntm-members-menubar-heading")
323
332
  };
324
333
  var memberFormSelectors = {
325
334
  emailTextField: "input.neeto-ui-react-select__input:eq(0)"
@@ -344,8 +353,7 @@ var commonTexts = {
344
353
  copiedToClipboard: "Copied to clipboard!",
345
354
  crossSiteScript: "<script>alert('XSS')</script>",
346
355
  deactivate: "Deactivate",
347
- "delete": "Delete ",
348
- delete1: "Delete",
356
+ "delete": "Delete",
349
357
  edit: "Edit",
350
358
  invalidEmailMessage: "Please enter a valid email.",
351
359
  invalidSearchInput: "Invalid search input",
@@ -393,8 +401,6 @@ var memberTexts = {
393
401
  }
394
402
  };
395
403
  var memberTableTexts = {
396
- assignedTickets: "Assigned Tickets",
397
- availabilityForDesk: "Availability for Desk",
398
404
  created: "Created",
399
405
  email: "Email",
400
406
  name: "Name",
@@ -426,7 +432,7 @@ var verifySSOLoginPage = function verifySSOLoginPage() {
426
432
  cy.get(commonSelectors.emailInputError).should("have.text", commonTexts.invalidEmailMessage);
427
433
  };
428
434
  var logout = function logout(homeUrl) {
429
- cy.get(profileSelectors.profileSidebar).click();
435
+ cy.get(profileSelectors.tab).click();
430
436
  cy.get(profileSelectors.logoutLink).should("have.text", commonTexts.logout).invoke("click");
431
437
  cy.url({
432
438
  timeout: 15000
@@ -442,14 +448,12 @@ var currentDate = function currentDate() {
442
448
  };
443
449
  var futureDate = function futureDate() {
444
450
  var numberOfDays = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
445
- var now = dayjs__default["default"]().format("YYYY-MM-DD");
446
- var date = now.add(numberOfDays, "day").format("YYYY-MM-DD");
451
+ var date = dayjs__default["default"]().add(numberOfDays, "day").format("YYYY-MM-DD");
447
452
  return date;
448
453
  };
449
454
  var pastDate = function pastDate() {
450
455
  var numberOfDays = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
451
- var now = dayjs__default["default"]().format("YYYY-MM-DD");
452
- var date = now.subtract(numberOfDays, "day").format("YYYY-MM-DD");
456
+ var date = dayjs__default["default"]().subtract(numberOfDays, "day").format("YYYY-MM-DD");
453
457
  return date;
454
458
  };
455
459
  var dateUtils = {
@@ -473,20 +477,13 @@ var navigateToMembersPage = function navigateToMembersPage() {
473
477
  waitForRequest && cy.waitForMultipleRequest("@fetchMembers", 2);
474
478
  cy.get(commonSelectors.heading).should("have.text", memberTexts.activeMembersHeading);
475
479
  };
476
- var navigateToNewMemberPanel = function navigateToNewMemberPanel() {
477
- var waitForRequest = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
478
- navigateToMembersPage(waitForRequest);
479
- cy.get(commonSelectors.heading).should("have.text", memberTexts.activeMembersHeading);
480
- cy.get(memberSelectors.newButton).should("have.text", memberTexts.addMember).click();
481
- cy.get(commonSelectors.paneHeader).should("have.text", memberTexts.newHeading);
482
- };
483
480
  var addMemberViaUI = function addMemberViaUI(email) {
484
481
  var role = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : memberTexts.agent;
485
- cy.get(memberSelectors.newButton).should("be.visible").click();
482
+ cy.get(memberSelectors.newButton).should("have.text", memberTexts.addMember).click();
486
483
  cy.get(commonSelectors.paneHeader).should("have.text", memberTexts.newHeading);
487
484
  cy.get(memberFormSelectors.emailTextField).should("be.focused");
488
485
  cy.typeAndEnter(memberFormSelectors.emailTextField, email);
489
- role === memberTexts.agent ? cy.get(memberSelectors.agentRoleLabel).click() : cy.get(memberSelectors.adminRoleLabel).click();
486
+ cy.get(memberSelectors.roleLabel(role)).click();
490
487
  cy.get(memberSelectors.continueButton).click();
491
488
  if (isStagingEnv) {
492
489
  cy.get(commonSelectors.checkboxLabel).should("have.text", memberTexts.addMemberToProducts(email));
@@ -511,18 +508,31 @@ var addMemberViaUI = function addMemberViaUI(email) {
511
508
  cy.wait("@searchRequest");
512
509
  cy.contains(tableSelectors.tableRow, email).should("be.visible");
513
510
  };
514
- var editMember = function editMember(_ref) {
511
+ var verifyMemberDetails = function verifyMemberDetails(_ref) {
515
512
  var email = _ref.email,
516
513
  role = _ref.role,
517
- skipSearchRequest = _ref.skipSearchRequest;
514
+ _ref$skipSearchReques = _ref.skipSearchRequest,
515
+ skipSearchRequest = _ref$skipSearchReques === void 0 ? true : _ref$skipSearchReques;
516
+ !skipSearchRequest && interceptMemberApi("searchRequest");
517
+ cy.clearAndTypeFast(memberSelectors.searchTextField, email);
518
+ !skipSearchRequest && cy.wait("@searchRequest");
519
+ return cy.contains(commonSelectors.tableRow, email).within(function () {
520
+ cy.get(memberSelectors.email).should("have.text", email);
521
+ role && cy.get(memberSelectors.role).should("have.text", role);
522
+ });
523
+ };
524
+ var updateMemberRole = function updateMemberRole(_ref2) {
525
+ var email = _ref2.email,
526
+ role = _ref2.role,
527
+ skipSearchRequest = _ref2.skipSearchRequest;
518
528
  verifyMemberDetails({
519
529
  email: email,
520
530
  skipSearchRequest: skipSearchRequest
521
531
  }).within(function () {
522
532
  return cy.clickDropdownOption(commonTexts.edit);
523
533
  });
524
- cy.get(commonSelectors.paneHeader).should("have.text", memberTexts.editMember);
525
- role === memberTexts.admin ? cy.get(memberSelectors.adminRoleLabel).click() : cy.get(memberSelectors.agentRoleLabel).click();
534
+ cy.get(commonSelectors.paneHeader).should("have.text", memberTexts.updateMemberRole);
535
+ cy.get(memberSelectors.roleLabel(role)).click();
526
536
  interceptMemberApi("updateAndFetchMember", 2);
527
537
  cy.get(memberSelectors.submitButton).click();
528
538
  cy.wait("@updateAndFetchMember");
@@ -530,20 +540,7 @@ var editMember = function editMember(_ref) {
530
540
  cy.wait("@updateAndFetchMember");
531
541
  verifyMemberDetails({
532
542
  email: email,
533
- role: memberTexts.admin
534
- });
535
- };
536
- var verifyMemberDetails = function verifyMemberDetails(_ref2) {
537
- var email = _ref2.email,
538
- role = _ref2.role,
539
- _ref2$skipSearchReque = _ref2.skipSearchRequest,
540
- skipSearchRequest = _ref2$skipSearchReque === void 0 ? true : _ref2$skipSearchReque;
541
- !skipSearchRequest && interceptMemberApi("searchRequest");
542
- cy.clearAndTypeFast(memberSelectors.searchTextField, email);
543
- !skipSearchRequest && cy.wait("@searchRequest");
544
- return cy.contains(commonSelectors.tableRow, email).within(function () {
545
- cy.get(memberSelectors.email).should("have.text", email);
546
- role && cy.get(memberSelectors.role).should("have.text", role);
543
+ role: role
547
544
  });
548
545
  };
549
546
  var verifyActivatedMember = function verifyActivatedMember(_ref3) {
@@ -679,14 +676,10 @@ var memberUtils = {
679
676
  checkColumnCheckBox: checkColumnCheckBox,
680
677
  deactivateMember: deactivateMember,
681
678
  deactivateMemberViaRequest: deactivateMemberViaRequest,
682
- editMember: editMember,
679
+ updateMemberRole: updateMemberRole,
683
680
  interceptMemberApi: interceptMemberApi,
684
681
  navigateToMembersPage: navigateToMembersPage,
685
- navigateToNewMemberPanel: navigateToNewMemberPanel,
686
682
  unCheckColumnCheckBox: unCheckColumnCheckBox,
687
- verifyActivatedMember: verifyActivatedMember,
688
- verifyActivateAlert: verifyActivateAlert,
689
- verifyDeactivatedMember: verifyDeactivatedMember,
690
683
  verifyMemberDetails: verifyMemberDetails
691
684
  };
692
685
 
@@ -762,6 +755,7 @@ exports.getTestTitle = getTestTitle;
762
755
  exports.getUrl = getUrl;
763
756
  exports.initializeCredentials = initializeCredentials;
764
757
  exports.isStagingEnv = isStagingEnv;
758
+ exports.joinHyphenCase = joinHyphenCase;
765
759
  exports.loginSelectors = loginSelectors;
766
760
  exports.memberFormSelectors = memberFormSelectors;
767
761
  exports.memberSelectors = memberSelectors;
@@ -17,22 +17,19 @@ type CommonSelectors = {
17
17
  };
18
18
 
19
19
  type MemberSelectors = {
20
- addMember: string;
21
- admin: string;
22
- agent: string;
23
- agents: string;
24
- activeMembersHeading: string;
25
- accountActivatedToastMessage: string;
26
- activateMember: string;
27
- activateMemberAlertMessage: string;
28
- deactivateAccountToastMessage: string;
29
- deactivateMember: string;
30
- deactivateMemberAlertMessage: string;
31
- editMember: string;
32
- memberAddedMessage: string;
33
- members: string;
34
- newHeading: string;
35
- updatedMemberRole: string;
20
+ activatedMembersButton: string;
21
+ columnCheckBox: string;
22
+ continueButton: string;
23
+ deactivatedAgentsButton: string;
24
+ dropDownIcon: string;
25
+ email: string;
26
+ menuBarHeading: string;
27
+ membersTab: string;
28
+ newButton: string;
29
+ role: string;
30
+ roleLabel: (role: string) => string;
31
+ searchTextField: string;
32
+ submitButton: string;
36
33
  };
37
34
 
38
35
  type LoginSelectors = {
@@ -49,6 +46,7 @@ type LoginSelectors = {
49
46
  };
50
47
 
51
48
  type ProfileSelectors = {
49
+ tab: string;
52
50
  logoutLink: string;
53
51
  profileOptionsContainer: string;
54
52
  };
@@ -105,6 +103,14 @@ type MemberText = {
105
103
  updatedMemberRole: string;
106
104
  };
107
105
 
106
+ type MemberTableTexts = {
107
+ created: string;
108
+ email: string;
109
+ name: string;
110
+ role: string;
111
+ teams: string;
112
+ };
113
+
108
114
  type SignUpTexts = {
109
115
  email: string;
110
116
  profile: string;
@@ -135,14 +141,10 @@ function pastDate(numberOfDays: number = 1): String;
135
141
  // Utils: common
136
142
  export function dataCy(dataCyId: string): String;
137
143
 
138
- export function setListCount(countSelector: string, alias: string): Void;
139
-
140
- export function verifyListCount(countSelector: string, count: number): String;
144
+ export function getTestTitle(): String;
141
145
 
142
146
  export function getUrl(path: string): String;
143
147
 
144
- export function getTestTitle(): String;
145
-
146
148
  export function initializeCredentials(props: {
147
149
  businessName: string;
148
150
  currentUserName: string;
@@ -154,8 +156,13 @@ export function initializeCredentials(props: {
154
156
  skipSetup: boolean;
155
157
  }): String;
156
158
 
157
- // Utils: organization
159
+ export function joinHyphenCase(string: string | string[]): String;
158
160
 
161
+ export function setListCount(countSelector: string, alias: string): Void;
162
+
163
+ export function verifyListCount(countSelector: string, count: number): String;
164
+
165
+ // Utils: organization
159
166
  export function createOrganization(props: {
160
167
  baseUrl: string;
161
168
  businessName: string;
@@ -167,7 +174,7 @@ export function createOrganization(props: {
167
174
 
168
175
  // Utils: validation
169
176
 
170
- function verifyCrossSiteScript(
177
+ export function verifyCrossSiteScript(
171
178
  inputSelector: string,
172
179
  submitSelector: string
173
180
  ): Void;
@@ -199,7 +206,7 @@ function deactivateMember(props: {
199
206
 
200
207
  function deactivateMemberViaRequest(email: string, requestCount: number): Void;
201
208
 
202
- function editMember(props: {
209
+ function updateMemberRole(props: {
203
210
  email: string;
204
211
  role: string;
205
212
  skipSearchRequest: boolean;
@@ -209,27 +216,8 @@ function interceptMemberApi(alias: string, times: number = 1): Void;
209
216
 
210
217
  function navigateToMembersPage(waitForRequest: boolean = true): Void;
211
218
 
212
- function navigateToNewMemberPanel(waitForRequest: boolean = true): Void;
213
-
214
219
  function unCheckColumnCheckBox(fieldSelector: string): Void;
215
220
 
216
- function verifyActivatedMember(props: {
217
- email: string;
218
- skipFetchRequest: boolean;
219
- skipSearchRequest: boolean;
220
- }): Void;
221
-
222
- function verifyActivateAlert(props: {
223
- email: string;
224
- skipSearchRequest: boolean;
225
- }): Void;
226
-
227
- function verifyDeactivatedMember(props: {
228
- email: string;
229
- skipFetchRequest: boolean;
230
- skipSearchRequest: boolean;
231
- }): Void;
232
-
233
221
  function verifyMemberDetails(props: {
234
222
  email: string;
235
223
  role: string;
@@ -247,14 +235,10 @@ export const memberUtils = {
247
235
  checkColumnCheckBox,
248
236
  deactivateMember,
249
237
  deactivateMemberViaRequest,
250
- editMember,
238
+ updateMemberRole,
251
239
  interceptMemberApi,
252
240
  navigateToMembersPage,
253
- navigateToNewMemberPanel,
254
241
  unCheckColumnCheckBox,
255
- verifyActivatedMember,
256
- verifyActivateAlert,
257
- verifyDeactivatedMember,
258
242
  verifyMemberDetails,
259
243
  };
260
244
 
@@ -270,6 +254,7 @@ export declare const signUpSelectors: SignUpSelectors;
270
254
 
271
255
  export declare const commonTexts: CommonTexts;
272
256
  export declare const memberTexts: MemberText;
257
+ export declare const memberTableTexts: MemberTableTexts;
273
258
  export declare const signUpTexts: SignUpTexts;
274
259
  export declare const environment: Environment;
275
260
  export declare const isStagingEnv: Boolean;
package/cypress-utils.js CHANGED
@@ -1,4 +1,3 @@
1
- import { dataCy as dataCy$1 } from 'Support/utils/common';
2
1
  import dayjs from 'dayjs';
3
2
 
4
3
  function _typeof(obj) {
@@ -103,15 +102,21 @@ var getTestTitle = function getTestTitle() {
103
102
  var ctx = Cypress.mocha.getRunner().suite.ctx;
104
103
  return ctx.currentTest.parent.title;
105
104
  };
105
+ var joinHyphenCase = function joinHyphenCase() {
106
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
107
+ args[_key] = arguments[_key];
108
+ }
109
+ return args.join(" ").replace(/\s+/g, "-").toLowerCase();
110
+ };
106
111
  var initializeCredentials = function initializeCredentials(stagingData) {
107
112
  cy.task("getGlobalState").then(function (state) {
108
113
  var newState = {
109
114
  businessName: state.businessName || stagingData.businessName,
110
- currentUserName: state.fullName || stagingData.fullName,
115
+ currentUserName: state.currentUserName || stagingData.currentUserName,
111
116
  email: state.email || stagingData.email,
112
117
  firstName: state.firstName || stagingData.firstName,
113
118
  lastName: state.lastName || stagingData.lastName,
114
- subdomainName: state.subdomain || stagingData.subdomainName,
119
+ subdomainName: state.subdomainName || stagingData.subdomainName,
115
120
  skipSetup: state.skipSetup
116
121
  };
117
122
  if (isStagingEnv) {
@@ -126,9 +131,9 @@ var allPath = function allPath() {
126
131
  return "".concat(Cypress.config("baseUrl")).concat(getUrl("**"));
127
132
  };
128
133
  var requestApis = {
129
- countries: "/api/v1/countries",
130
- signUp: "api/v1/signups/**",
131
- subdomainAvailablity: "/api/v1/subdomain_availability/**",
134
+ countries: getUrl("countries"),
135
+ signUp: getUrl("signups/**"),
136
+ subdomainAvailablity: getUrl("subdomain_availability/**"),
132
137
  teamMembers: {
133
138
  all: "/team_members*/**",
134
139
  bulkUpdate: "/team_members/teams/bulk_update",
@@ -136,7 +141,7 @@ var requestApis = {
136
141
  }
137
142
  };
138
143
  var urlPaths = {
139
- members: "/desk/members"
144
+ members: "/members"
140
145
  };
141
146
  Object.defineProperty(requestApis, "allPath", {
142
147
  get: allPath
@@ -169,6 +174,7 @@ var tableSelectors = {
169
174
  spinner: ".ant-spin"
170
175
  };
171
176
  var profileSelectors = {
177
+ tab: dataCy("profile-section"),
172
178
  logoutLink: dataCy("profile-logout-button"),
173
179
  profileOptionsContainer: '[class="tippy-box sidebar-featured-tooltip__content"]'
174
180
  };
@@ -209,11 +215,13 @@ Cypress.Commands.add("continueOnAlert", function (args) {
209
215
  };
210
216
  var alias = props.alias,
211
217
  title = props.title,
218
+ description = props.description,
212
219
  _props$requestCount = props.requestCount,
213
220
  requestCount = _props$requestCount === void 0 ? 1 : _props$requestCount,
214
221
  toastMessage = props.toastMessage;
215
222
  var hasMoreThanOneRequest = requestCount > 1;
216
223
  title && cy.get(commonSelectors.alertTitle).should("have.text", title);
224
+ description && cy.get(commonSelectors.alertModalMessage).should("have.text", description);
217
225
  cy.interceptApi(alias, requestCount);
218
226
  cy.get(commonSelectors.alertModalSubmitButton).click();
219
227
  cy.wait("@".concat(alias));
@@ -298,20 +306,21 @@ var loginSelectors = {
298
306
  };
299
307
 
300
308
  var memberSelectors = {
301
- membersTab: dataCy$1("agent-nav-tab"),
302
- newButton: dataCy$1("ntm-add-member-button"),
303
- continueButton: dataCy$1("ntm-manage-member-continue-button"),
304
- submitButton: dataCy$1("ntm-manage-member-submit-button"),
305
- searchTextField: dataCy$1("ntm-search-members-input"),
309
+ membersTab: dataCy("members-nav-tab"),
310
+ newButton: dataCy("ntm-add-member-button"),
311
+ continueButton: dataCy("ntm-manage-member-continue-button"),
312
+ submitButton: dataCy("ntm-manage-member-submit-button"),
313
+ searchTextField: dataCy("ntm-search-members-input"),
306
314
  email: "td:nth-child(3)",
307
315
  role: "td:nth-child(4)",
308
- deactivatedAgentsButton: dataCy$1("ntm-members-menubar-deactivated-block"),
309
- activatedMembersButton: dataCy$1("ntm-members-menubar-active-block"),
310
- columnCheckBox: dataCy$1("neeto-ui-columns-checkbox"),
311
- adminRoleLabel: dataCy$1("admin-radio-label"),
312
- agentRoleLabel: dataCy$1("agent-radio-label"),
313
- dropDownIcon: dataCy$1("ntm-members-table-row-dropdown-button"),
314
- menuBarHeading: dataCy$1("ntm-members-menubar-heading")
316
+ deactivatedAgentsButton: dataCy("ntm-members-menubar-deactivated-block"),
317
+ activatedMembersButton: dataCy("ntm-members-menubar-active-block"),
318
+ columnCheckBox: dataCy("neeto-ui-columns-checkbox"),
319
+ roleLabel: function roleLabel(role) {
320
+ return dataCy("".concat(joinHyphenCase(role), "-radio-label"));
321
+ },
322
+ dropDownIcon: dataCy("ntm-members-table-row-dropdown-button"),
323
+ menuBarHeading: dataCy("ntm-members-menubar-heading")
315
324
  };
316
325
  var memberFormSelectors = {
317
326
  emailTextField: "input.neeto-ui-react-select__input:eq(0)"
@@ -336,8 +345,7 @@ var commonTexts = {
336
345
  copiedToClipboard: "Copied to clipboard!",
337
346
  crossSiteScript: "<script>alert('XSS')</script>",
338
347
  deactivate: "Deactivate",
339
- "delete": "Delete ",
340
- delete1: "Delete",
348
+ "delete": "Delete",
341
349
  edit: "Edit",
342
350
  invalidEmailMessage: "Please enter a valid email.",
343
351
  invalidSearchInput: "Invalid search input",
@@ -385,8 +393,6 @@ var memberTexts = {
385
393
  }
386
394
  };
387
395
  var memberTableTexts = {
388
- assignedTickets: "Assigned Tickets",
389
- availabilityForDesk: "Availability for Desk",
390
396
  created: "Created",
391
397
  email: "Email",
392
398
  name: "Name",
@@ -418,7 +424,7 @@ var verifySSOLoginPage = function verifySSOLoginPage() {
418
424
  cy.get(commonSelectors.emailInputError).should("have.text", commonTexts.invalidEmailMessage);
419
425
  };
420
426
  var logout = function logout(homeUrl) {
421
- cy.get(profileSelectors.profileSidebar).click();
427
+ cy.get(profileSelectors.tab).click();
422
428
  cy.get(profileSelectors.logoutLink).should("have.text", commonTexts.logout).invoke("click");
423
429
  cy.url({
424
430
  timeout: 15000
@@ -434,14 +440,12 @@ var currentDate = function currentDate() {
434
440
  };
435
441
  var futureDate = function futureDate() {
436
442
  var numberOfDays = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
437
- var now = dayjs().format("YYYY-MM-DD");
438
- var date = now.add(numberOfDays, "day").format("YYYY-MM-DD");
443
+ var date = dayjs().add(numberOfDays, "day").format("YYYY-MM-DD");
439
444
  return date;
440
445
  };
441
446
  var pastDate = function pastDate() {
442
447
  var numberOfDays = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
443
- var now = dayjs().format("YYYY-MM-DD");
444
- var date = now.subtract(numberOfDays, "day").format("YYYY-MM-DD");
448
+ var date = dayjs().subtract(numberOfDays, "day").format("YYYY-MM-DD");
445
449
  return date;
446
450
  };
447
451
  var dateUtils = {
@@ -465,20 +469,13 @@ var navigateToMembersPage = function navigateToMembersPage() {
465
469
  waitForRequest && cy.waitForMultipleRequest("@fetchMembers", 2);
466
470
  cy.get(commonSelectors.heading).should("have.text", memberTexts.activeMembersHeading);
467
471
  };
468
- var navigateToNewMemberPanel = function navigateToNewMemberPanel() {
469
- var waitForRequest = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
470
- navigateToMembersPage(waitForRequest);
471
- cy.get(commonSelectors.heading).should("have.text", memberTexts.activeMembersHeading);
472
- cy.get(memberSelectors.newButton).should("have.text", memberTexts.addMember).click();
473
- cy.get(commonSelectors.paneHeader).should("have.text", memberTexts.newHeading);
474
- };
475
472
  var addMemberViaUI = function addMemberViaUI(email) {
476
473
  var role = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : memberTexts.agent;
477
- cy.get(memberSelectors.newButton).should("be.visible").click();
474
+ cy.get(memberSelectors.newButton).should("have.text", memberTexts.addMember).click();
478
475
  cy.get(commonSelectors.paneHeader).should("have.text", memberTexts.newHeading);
479
476
  cy.get(memberFormSelectors.emailTextField).should("be.focused");
480
477
  cy.typeAndEnter(memberFormSelectors.emailTextField, email);
481
- role === memberTexts.agent ? cy.get(memberSelectors.agentRoleLabel).click() : cy.get(memberSelectors.adminRoleLabel).click();
478
+ cy.get(memberSelectors.roleLabel(role)).click();
482
479
  cy.get(memberSelectors.continueButton).click();
483
480
  if (isStagingEnv) {
484
481
  cy.get(commonSelectors.checkboxLabel).should("have.text", memberTexts.addMemberToProducts(email));
@@ -503,18 +500,31 @@ var addMemberViaUI = function addMemberViaUI(email) {
503
500
  cy.wait("@searchRequest");
504
501
  cy.contains(tableSelectors.tableRow, email).should("be.visible");
505
502
  };
506
- var editMember = function editMember(_ref) {
503
+ var verifyMemberDetails = function verifyMemberDetails(_ref) {
507
504
  var email = _ref.email,
508
505
  role = _ref.role,
509
- skipSearchRequest = _ref.skipSearchRequest;
506
+ _ref$skipSearchReques = _ref.skipSearchRequest,
507
+ skipSearchRequest = _ref$skipSearchReques === void 0 ? true : _ref$skipSearchReques;
508
+ !skipSearchRequest && interceptMemberApi("searchRequest");
509
+ cy.clearAndTypeFast(memberSelectors.searchTextField, email);
510
+ !skipSearchRequest && cy.wait("@searchRequest");
511
+ return cy.contains(commonSelectors.tableRow, email).within(function () {
512
+ cy.get(memberSelectors.email).should("have.text", email);
513
+ role && cy.get(memberSelectors.role).should("have.text", role);
514
+ });
515
+ };
516
+ var updateMemberRole = function updateMemberRole(_ref2) {
517
+ var email = _ref2.email,
518
+ role = _ref2.role,
519
+ skipSearchRequest = _ref2.skipSearchRequest;
510
520
  verifyMemberDetails({
511
521
  email: email,
512
522
  skipSearchRequest: skipSearchRequest
513
523
  }).within(function () {
514
524
  return cy.clickDropdownOption(commonTexts.edit);
515
525
  });
516
- cy.get(commonSelectors.paneHeader).should("have.text", memberTexts.editMember);
517
- role === memberTexts.admin ? cy.get(memberSelectors.adminRoleLabel).click() : cy.get(memberSelectors.agentRoleLabel).click();
526
+ cy.get(commonSelectors.paneHeader).should("have.text", memberTexts.updateMemberRole);
527
+ cy.get(memberSelectors.roleLabel(role)).click();
518
528
  interceptMemberApi("updateAndFetchMember", 2);
519
529
  cy.get(memberSelectors.submitButton).click();
520
530
  cy.wait("@updateAndFetchMember");
@@ -522,20 +532,7 @@ var editMember = function editMember(_ref) {
522
532
  cy.wait("@updateAndFetchMember");
523
533
  verifyMemberDetails({
524
534
  email: email,
525
- role: memberTexts.admin
526
- });
527
- };
528
- var verifyMemberDetails = function verifyMemberDetails(_ref2) {
529
- var email = _ref2.email,
530
- role = _ref2.role,
531
- _ref2$skipSearchReque = _ref2.skipSearchRequest,
532
- skipSearchRequest = _ref2$skipSearchReque === void 0 ? true : _ref2$skipSearchReque;
533
- !skipSearchRequest && interceptMemberApi("searchRequest");
534
- cy.clearAndTypeFast(memberSelectors.searchTextField, email);
535
- !skipSearchRequest && cy.wait("@searchRequest");
536
- return cy.contains(commonSelectors.tableRow, email).within(function () {
537
- cy.get(memberSelectors.email).should("have.text", email);
538
- role && cy.get(memberSelectors.role).should("have.text", role);
535
+ role: role
539
536
  });
540
537
  };
541
538
  var verifyActivatedMember = function verifyActivatedMember(_ref3) {
@@ -671,14 +668,10 @@ var memberUtils = {
671
668
  checkColumnCheckBox: checkColumnCheckBox,
672
669
  deactivateMember: deactivateMember,
673
670
  deactivateMemberViaRequest: deactivateMemberViaRequest,
674
- editMember: editMember,
671
+ updateMemberRole: updateMemberRole,
675
672
  interceptMemberApi: interceptMemberApi,
676
673
  navigateToMembersPage: navigateToMembersPage,
677
- navigateToNewMemberPanel: navigateToNewMemberPanel,
678
674
  unCheckColumnCheckBox: unCheckColumnCheckBox,
679
- verifyActivatedMember: verifyActivatedMember,
680
- verifyActivateAlert: verifyActivateAlert,
681
- verifyDeactivatedMember: verifyDeactivatedMember,
682
675
  verifyMemberDetails: verifyMemberDetails
683
676
  };
684
677
 
@@ -743,4 +736,4 @@ var verifyCrossSiteScript = function verifyCrossSiteScript(inputSelector, submit
743
736
  cy.get(commonSelectors.windowAlert).should("not.exist");
744
737
  };
745
738
 
746
- export { authUtils, commonSelectors, commonTexts, createOrganization, dataCy, dateUtils, environment, getTestTitle, getUrl, initializeCredentials, isStagingEnv, loginSelectors, memberFormSelectors, memberSelectors, memberTableTexts, memberTexts, memberUtils, profileSelectors, setListCount, signUpSelectors, signUpTexts, tableSelectors, verifyCrossSiteScript, verifyListCount };
739
+ export { authUtils, commonSelectors, commonTexts, createOrganization, dataCy, dateUtils, environment, getTestTitle, getUrl, initializeCredentials, isStagingEnv, joinHyphenCase, loginSelectors, memberFormSelectors, memberSelectors, memberTableTexts, memberTexts, memberUtils, profileSelectors, setListCount, signUpSelectors, signUpTexts, tableSelectors, verifyCrossSiteScript, verifyListCount };
@@ -164,6 +164,19 @@ nullSafe(snakeToCamelCase);
164
164
  nullSafe(camelToSnakeCase);
165
165
  nullSafe(capitalize);
166
166
 
167
+ var matchesImpl = function matchesImpl(pattern, object) {
168
+ var __parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : object;
169
+ if (object === pattern) return true;
170
+ if (typeof pattern === "function" && pattern(object, __parent)) return true;
171
+ if (ramda.isNil(pattern) || ramda.isNil(object)) return false;
172
+ if (_typeof(pattern) !== "object") return false;
173
+ return Object.entries(pattern).every(function (_ref) {
174
+ var _ref2 = _slicedToArray(_ref, 2),
175
+ key = _ref2[0],
176
+ value = _ref2[1];
177
+ return matchesImpl(value, object[key], __parent);
178
+ });
179
+ };
167
180
  var transformObjectDeep = function transformObjectDeep(object, keyValueTransformer) {
168
181
  var objectPreProcessor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
169
182
  if (objectPreProcessor && typeof objectPreProcessor === "function") {
@@ -204,6 +217,9 @@ var deepFreezeObject = function deepFreezeObject(object) {
204
217
  }
205
218
  return object;
206
219
  };
220
+ var matches = /*#__PURE__*/ramda.curry(function (pattern, object) {
221
+ return matchesImpl(pattern, object);
222
+ });
207
223
  var filterNonNull = function filterNonNull(object) {
208
224
  return Object.fromEntries(Object.entries(object).filter(function (_ref5) {
209
225
  var _ref6 = _slicedToArray(_ref5, 2),
@@ -810,6 +826,7 @@ var shouldShowToastr = function shouldShowToastr(response) {
810
826
  };
811
827
  var setAuthHeaders = function setAuthHeaders() {
812
828
  var _document$querySelect, _axios$defaults$heade, _globalProps$user, _globalProps$user2;
829
+ // @ts-ignore
813
830
  axios__default["default"].defaults.headers = (_axios$defaults$heade = {}, _defineProperty(_axios$defaults$heade, HEADERS_KEYS.accept, "application/json"), _defineProperty(_axios$defaults$heade, HEADERS_KEYS.contentType, "application/json"), _defineProperty(_axios$defaults$heade, HEADERS_KEYS.xCsrfToken, (_document$querySelect = document.querySelector('[name="csrf-token"]')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.getAttribute("content")), _axios$defaults$heade);
814
831
  var token = (_globalProps$user = globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.authenticationToken;
815
832
  var email = (_globalProps$user2 = globalProps.user) === null || _globalProps$user2 === void 0 ? void 0 : _globalProps$user2.email;
@@ -849,7 +866,16 @@ var transformErrorKeysToCamelCase = function transformErrorKeysToCamelCase(error
849
866
  var showSuccessToastr = function showSuccessToastr(response) {
850
867
  var _response$config$show = response.config.showToastr,
851
868
  showToastr = _response$config$show === void 0 ? true : _response$config$show;
852
- if (showToastr && shouldShowToastr(response.data)) {
869
+ if (!showToastr) return response;
870
+ if (matches({
871
+ showThumbsUpToastr: true
872
+ }, response.data)) {
873
+ // @ts-ignore
874
+ neetoui.Toastr.success("", {
875
+ icon: "👍",
876
+ className: "w-20"
877
+ });
878
+ } else if (shouldShowToastr(response.data)) {
853
879
  neetoui.Toastr.success(response.data);
854
880
  }
855
881
  return response;
@@ -888,8 +914,10 @@ var showErrorToastr = function showErrorToastr(error) {
888
914
  showToastr = _ref3$showToastr === void 0 ? true : _ref3$showToastr;
889
915
  if (!showToastr) return error;
890
916
  if (axios__default["default"].isCancel(error)) {
917
+ // @ts-ignore
891
918
  neetoui.Toastr.error(i18next__default["default"].t("neetoCommons.toastr.error.requestCanceled"));
892
919
  } else if (error.message === "Network Error") {
920
+ // @ts-ignore
893
921
  neetoui.Toastr.error(i18next__default["default"].t("neetoCommons.toastr.error.networkError"));
894
922
  } else {
895
923
  neetoui.Toastr.error(error);
@@ -977,14 +1005,20 @@ var resource = {
977
1005
  add_one: "{{entity}} has been added successfully.",
978
1006
  add_other: "{{entity}} have been added successfully.",
979
1007
  save: "{{entity}} has been saved successfully.",
1008
+ save_one: "{{entity}} has been saved successfully.",
1009
+ save_other: "{{entity}} have been saved successfully.",
980
1010
  update: "{{entity}} has been updated successfully.",
1011
+ update_one: "{{entity}} has been updated successfully.",
1012
+ update_other: "{{entity}} have been updated successfully.",
981
1013
  delete_one: "{{entity}} has been deleted successfully.",
982
1014
  delete_other: "{{entity}} have been deleted successfully.",
983
1015
  clone: "{{entity}} has been cloned successfully.",
984
1016
  notFound: "{{entity}} does not exist.",
985
- remove_one: "{{entity}} successfully removed",
986
- remove_other: "{{entity}}s successfully removed",
987
- sent: "{{entity}} sent successfully."
1017
+ remove_one: "{{entity}} has been removed successfully.",
1018
+ remove_other: "{{entity}} have been removed successfully.",
1019
+ sent: "{{entity}} sent successfully.",
1020
+ merged: "{{entity}} have been successfully merged.",
1021
+ disconnected: "{{entity}} has been successfully disconnected."
988
1022
  };
989
1023
  var otp = {
990
1024
  sent: "OTP has been sent successfully.",
@@ -992,7 +1026,7 @@ var otp = {
992
1026
  verified: "OTP has been verified successfully."
993
1027
  };
994
1028
  var upload = {
995
- error: "An error occured while uploading the file"
1029
+ error: "An error occurred while uploading the file"
996
1030
  };
997
1031
  var image = {
998
1032
  profile: {
package/initializers.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Toastr } from '@bigbinary/neetoui';
2
2
  import axios from 'axios';
3
3
  import i18next from 'i18next';
4
- import { curryN, isNil, values, prop, evolve, omit, mergeDeepLeft, either, isEmpty } from 'ramda';
4
+ import { curryN, isNil, curry, values, prop, evolve, omit, mergeDeepLeft, either, isEmpty } from 'ramda';
5
5
  import require$$0, { useDebugValue } from 'react';
6
6
  import { initReactI18next } from 'react-i18next';
7
7
  import Logger from 'js-logger';
@@ -152,6 +152,19 @@ nullSafe(snakeToCamelCase);
152
152
  nullSafe(camelToSnakeCase);
153
153
  nullSafe(capitalize);
154
154
 
155
+ var matchesImpl = function matchesImpl(pattern, object) {
156
+ var __parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : object;
157
+ if (object === pattern) return true;
158
+ if (typeof pattern === "function" && pattern(object, __parent)) return true;
159
+ if (isNil(pattern) || isNil(object)) return false;
160
+ if (_typeof(pattern) !== "object") return false;
161
+ return Object.entries(pattern).every(function (_ref) {
162
+ var _ref2 = _slicedToArray(_ref, 2),
163
+ key = _ref2[0],
164
+ value = _ref2[1];
165
+ return matchesImpl(value, object[key], __parent);
166
+ });
167
+ };
155
168
  var transformObjectDeep = function transformObjectDeep(object, keyValueTransformer) {
156
169
  var objectPreProcessor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
157
170
  if (objectPreProcessor && typeof objectPreProcessor === "function") {
@@ -192,6 +205,9 @@ var deepFreezeObject = function deepFreezeObject(object) {
192
205
  }
193
206
  return object;
194
207
  };
208
+ var matches = /*#__PURE__*/curry(function (pattern, object) {
209
+ return matchesImpl(pattern, object);
210
+ });
195
211
  var filterNonNull = function filterNonNull(object) {
196
212
  return Object.fromEntries(Object.entries(object).filter(function (_ref5) {
197
213
  var _ref6 = _slicedToArray(_ref5, 2),
@@ -798,6 +814,7 @@ var shouldShowToastr = function shouldShowToastr(response) {
798
814
  };
799
815
  var setAuthHeaders = function setAuthHeaders() {
800
816
  var _document$querySelect, _axios$defaults$heade, _globalProps$user, _globalProps$user2;
817
+ // @ts-ignore
801
818
  axios.defaults.headers = (_axios$defaults$heade = {}, _defineProperty(_axios$defaults$heade, HEADERS_KEYS.accept, "application/json"), _defineProperty(_axios$defaults$heade, HEADERS_KEYS.contentType, "application/json"), _defineProperty(_axios$defaults$heade, HEADERS_KEYS.xCsrfToken, (_document$querySelect = document.querySelector('[name="csrf-token"]')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.getAttribute("content")), _axios$defaults$heade);
802
819
  var token = (_globalProps$user = globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.authenticationToken;
803
820
  var email = (_globalProps$user2 = globalProps.user) === null || _globalProps$user2 === void 0 ? void 0 : _globalProps$user2.email;
@@ -837,7 +854,16 @@ var transformErrorKeysToCamelCase = function transformErrorKeysToCamelCase(error
837
854
  var showSuccessToastr = function showSuccessToastr(response) {
838
855
  var _response$config$show = response.config.showToastr,
839
856
  showToastr = _response$config$show === void 0 ? true : _response$config$show;
840
- if (showToastr && shouldShowToastr(response.data)) {
857
+ if (!showToastr) return response;
858
+ if (matches({
859
+ showThumbsUpToastr: true
860
+ }, response.data)) {
861
+ // @ts-ignore
862
+ Toastr.success("", {
863
+ icon: "👍",
864
+ className: "w-20"
865
+ });
866
+ } else if (shouldShowToastr(response.data)) {
841
867
  Toastr.success(response.data);
842
868
  }
843
869
  return response;
@@ -876,8 +902,10 @@ var showErrorToastr = function showErrorToastr(error) {
876
902
  showToastr = _ref3$showToastr === void 0 ? true : _ref3$showToastr;
877
903
  if (!showToastr) return error;
878
904
  if (axios.isCancel(error)) {
905
+ // @ts-ignore
879
906
  Toastr.error(i18next.t("neetoCommons.toastr.error.requestCanceled"));
880
907
  } else if (error.message === "Network Error") {
908
+ // @ts-ignore
881
909
  Toastr.error(i18next.t("neetoCommons.toastr.error.networkError"));
882
910
  } else {
883
911
  Toastr.error(error);
@@ -965,14 +993,20 @@ var resource = {
965
993
  add_one: "{{entity}} has been added successfully.",
966
994
  add_other: "{{entity}} have been added successfully.",
967
995
  save: "{{entity}} has been saved successfully.",
996
+ save_one: "{{entity}} has been saved successfully.",
997
+ save_other: "{{entity}} have been saved successfully.",
968
998
  update: "{{entity}} has been updated successfully.",
999
+ update_one: "{{entity}} has been updated successfully.",
1000
+ update_other: "{{entity}} have been updated successfully.",
969
1001
  delete_one: "{{entity}} has been deleted successfully.",
970
1002
  delete_other: "{{entity}} have been deleted successfully.",
971
1003
  clone: "{{entity}} has been cloned successfully.",
972
1004
  notFound: "{{entity}} does not exist.",
973
- remove_one: "{{entity}} successfully removed",
974
- remove_other: "{{entity}}s successfully removed",
975
- sent: "{{entity}} sent successfully."
1005
+ remove_one: "{{entity}} has been removed successfully.",
1006
+ remove_other: "{{entity}} have been removed successfully.",
1007
+ sent: "{{entity}} sent successfully.",
1008
+ merged: "{{entity}} have been successfully merged.",
1009
+ disconnected: "{{entity}} has been successfully disconnected."
976
1010
  };
977
1011
  var otp = {
978
1012
  sent: "OTP has been sent successfully.",
@@ -980,7 +1014,7 @@ var otp = {
980
1014
  verified: "OTP has been verified successfully."
981
1015
  };
982
1016
  var upload = {
983
- error: "An error occured while uploading the file"
1017
+ error: "An error occurred while uploading the file"
984
1018
  };
985
1019
  var image = {
986
1020
  profile: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-commons-frontend",
3
- "version": "2.0.31",
3
+ "version": "2.0.33",
4
4
  "description": "A package encapsulating common code across neeto projects including initializers, utility functions, common components and hooks and so on.",
5
5
  "repository": "git@github.com:bigbinary/neeto-commons-frontend.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
@@ -4185,7 +4185,7 @@ var FallbackComponent = function FallbackComponent() {
4185
4185
  }
4186
4186
  }))));
4187
4187
  };
4188
- var ignorableErrorsRegex = /(window\.requestAnimationFrame|ResizeObserver)/;
4188
+ var ignorableErrorsRegex = /(window\.requestAnimationFrame|ResizeObserver|ChunkLoadError)/;
4189
4189
  var HoneybadgerErrorBoundary = function HoneybadgerErrorBoundary(_ref) {
4190
4190
  var children = _ref.children,
4191
4191
  _ref$ErrorComponent = _ref.ErrorComponent,
@@ -91897,6 +91897,10 @@ var registerBrowserNotifications = /*#__PURE__*/function () {
91897
91897
  };
91898
91898
  }();
91899
91899
 
91900
+ var handleMetaClick = ramda.curry(function (history, params, event) {
91901
+ return event.ctrlKey || event.metaKey ? window.open(params.pathname || params, "_blank") : history.push(params);
91902
+ });
91903
+
91900
91904
  var withTitle = function withTitle(Component) {
91901
91905
  var title = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
91902
91906
  return function PageTitle(props) {
@@ -95412,6 +95416,7 @@ exports.Schedule = Schedule;
95412
95416
  exports.Sidebar = Sidebar;
95413
95417
  exports.TimeFormat = TimeFormat;
95414
95418
  exports.destroyBrowserSubscription = destroyBrowserSubscription;
95419
+ exports.handleMetaClick = handleMetaClick;
95415
95420
  exports.registerBrowserNotifications = registerBrowserNotifications;
95416
95421
  exports.useDebounce = useDebounce;
95417
95422
  exports.useDisplayErrorPage = useDisplayErrorPage;
package/react-utils.d.ts CHANGED
@@ -13,6 +13,7 @@ import { RouteProps } from "react-router-dom";
13
13
  import { Notice } from "@honeybadger-io/js/dist/server/types/core/types";
14
14
  import { ObjectAndPrimitives } from "./pure";
15
15
  import { DateTimeType, timeFormat } from "./utils";
16
+ import { History } from "history";
16
17
 
17
18
  export const HoneybadgerErrorBoundary: React.FC<{
18
19
  ErrorComponent?: React.ReactNode | React.ComponentType<any>;
@@ -187,3 +188,7 @@ export function withTitle(
187
188
  export async function registerBrowserNotifications(): Promise<void>;
188
189
 
189
190
  export async function destroyBrowserSubscription(): Promise<void>;
191
+
192
+ export function handleMetaClick(history: History, params: string | object, event: React.MouseEvent<HTMLElement, MouseEvent>): void;
193
+ export function handleMetaClick(history: History, params: string | object): (event: React.MouseEvent<HTMLElement, MouseEvent> ) => void;
194
+ export function handleMetaClick(history: History): (params: string | object, event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
package/react-utils.js CHANGED
@@ -4148,7 +4148,7 @@ var FallbackComponent = function FallbackComponent() {
4148
4148
  }
4149
4149
  }))));
4150
4150
  };
4151
- var ignorableErrorsRegex = /(window\.requestAnimationFrame|ResizeObserver)/;
4151
+ var ignorableErrorsRegex = /(window\.requestAnimationFrame|ResizeObserver|ChunkLoadError)/;
4152
4152
  var HoneybadgerErrorBoundary = function HoneybadgerErrorBoundary(_ref) {
4153
4153
  var children = _ref.children,
4154
4154
  _ref$ErrorComponent = _ref.ErrorComponent,
@@ -91860,6 +91860,10 @@ var registerBrowserNotifications = /*#__PURE__*/function () {
91860
91860
  };
91861
91861
  }();
91862
91862
 
91863
+ var handleMetaClick = curry(function (history, params, event) {
91864
+ return event.ctrlKey || event.metaKey ? window.open(params.pathname || params, "_blank") : history.push(params);
91865
+ });
91866
+
91863
91867
  var withTitle = function withTitle(Component) {
91864
91868
  var title = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
91865
91869
  return function PageTitle(props) {
@@ -95361,4 +95365,4 @@ var zig = /*#__PURE__*/_mergeNamespaces({
95361
95365
  'default': zigExports
95362
95366
  }, [zigExports]);
95363
95367
 
95364
- export { BrowserSupport, Columns, CustomDomain, DateFormat, ErrorPage, HoneybadgerErrorBoundary, IpRestriction, SignIn as LoginPage, NeetoWidget, PrivateRoute, Schedule, Sidebar, TimeFormat, destroyBrowserSubscription, registerBrowserNotifications, useDebounce, useDisplayErrorPage, useFuncDebounce, useIsElementVisibleInDom, useLocalStorage, useOnClickOutside, usePrevious, useUpdateEffect, withImmutableActions, withTitle };
95368
+ export { BrowserSupport, Columns, CustomDomain, DateFormat, ErrorPage, HoneybadgerErrorBoundary, IpRestriction, SignIn as LoginPage, NeetoWidget, PrivateRoute, Schedule, Sidebar, TimeFormat, destroyBrowserSubscription, handleMetaClick, registerBrowserNotifications, useDebounce, useDisplayErrorPage, useFuncDebounce, useIsElementVisibleInDom, useLocalStorage, useOnClickOutside, usePrevious, useUpdateEffect, withImmutableActions, withTitle };