@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 +2 -0
- package/cypress-commands.d.ts +1 -0
- package/cypress-utils.cjs.js +54 -60
- package/cypress-utils.d.ts +33 -48
- package/cypress-utils.js +54 -61
- package/initializers.cjs.js +39 -5
- package/initializers.js +40 -6
- package/package.json +1 -1
- package/react-utils.cjs.js +6 -1
- package/react-utils.d.ts +5 -0
- package/react-utils.js +6 -2
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
|
|
package/cypress-commands.d.ts
CHANGED
package/cypress-utils.cjs.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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: "
|
|
138
|
-
signUp: "
|
|
139
|
-
subdomainAvailablity: "
|
|
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: "/
|
|
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:
|
|
310
|
-
newButton:
|
|
311
|
-
continueButton:
|
|
312
|
-
submitButton:
|
|
313
|
-
searchTextField:
|
|
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:
|
|
317
|
-
activatedMembersButton:
|
|
318
|
-
columnCheckBox:
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
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.
|
|
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
|
|
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
|
|
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("
|
|
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
|
-
|
|
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
|
|
511
|
+
var verifyMemberDetails = function verifyMemberDetails(_ref) {
|
|
515
512
|
var email = _ref.email,
|
|
516
513
|
role = _ref.role,
|
|
517
|
-
|
|
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.
|
|
525
|
-
|
|
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:
|
|
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
|
-
|
|
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;
|
package/cypress-utils.d.ts
CHANGED
|
@@ -17,22 +17,19 @@ type CommonSelectors = {
|
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
type MemberSelectors = {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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: "
|
|
130
|
-
signUp: "
|
|
131
|
-
subdomainAvailablity: "
|
|
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: "/
|
|
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
|
|
302
|
-
newButton: dataCy
|
|
303
|
-
continueButton: dataCy
|
|
304
|
-
submitButton: dataCy
|
|
305
|
-
searchTextField: dataCy
|
|
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
|
|
309
|
-
activatedMembersButton: dataCy
|
|
310
|
-
columnCheckBox: dataCy
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
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.
|
|
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
|
|
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
|
|
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("
|
|
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
|
-
|
|
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
|
|
503
|
+
var verifyMemberDetails = function verifyMemberDetails(_ref) {
|
|
507
504
|
var email = _ref.email,
|
|
508
505
|
role = _ref.role,
|
|
509
|
-
|
|
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.
|
|
517
|
-
|
|
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:
|
|
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
|
-
|
|
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 };
|
package/initializers.cjs.js
CHANGED
|
@@ -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
|
|
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}}
|
|
986
|
-
remove_other: "{{entity}}
|
|
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
|
|
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
|
|
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}}
|
|
974
|
-
remove_other: "{{entity}}
|
|
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
|
|
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.
|
|
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>",
|
package/react-utils.cjs.js
CHANGED
|
@@ -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 };
|