@bigbinary/neeto-commons-frontend 2.0.47 → 2.0.49
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/cypress-commands.d.ts +19 -6
- package/cypress-utils.cjs.js +105 -4
- package/cypress-utils.d.ts +25 -0
- package/cypress-utils.js +105 -4
- package/initializers.cjs.js +3 -0
- package/initializers.js +3 -0
- package/package.json +1 -1
- package/react-utils.cjs.js +80 -50
- package/react-utils.d.ts +5 -3
- package/react-utils.js +80 -50
package/cypress-commands.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
declare namespace Cypress {
|
|
2
2
|
interface Chainable {
|
|
3
|
-
clearAndType(selector:
|
|
4
|
-
clearAndTypeFast(selector:
|
|
5
|
-
clearByClickAndTypeFast(selector:
|
|
6
|
-
typeFast(selector:
|
|
7
|
-
typeAndEnter(selector:
|
|
8
|
-
verifyToastMessage(message:
|
|
3
|
+
clearAndType(selector: string, text: string): Void;
|
|
4
|
+
clearAndTypeFast(selector: string, text: string): Void;
|
|
5
|
+
clearByClickAndTypeFast(selector: string, text: string): Void;
|
|
6
|
+
typeFast(selector: string, text: string): Void;
|
|
7
|
+
typeAndEnter(selector: string, text: string): Void;
|
|
8
|
+
verifyToastMessage(message: string): Void;
|
|
9
9
|
continueOnAlert(
|
|
10
10
|
alias:
|
|
11
11
|
| string
|
|
@@ -53,5 +53,18 @@ declare namespace Cypress {
|
|
|
53
53
|
globalState(key: string): Void;
|
|
54
54
|
ifExist(selector: string, callback: Function): Void;
|
|
55
55
|
ifNotExist(selector: string, callback: Function): Void;
|
|
56
|
+
dragAndDrop(props: {
|
|
57
|
+
subject: string;
|
|
58
|
+
target: string;
|
|
59
|
+
dragIndex: number;
|
|
60
|
+
dropIndex: number
|
|
61
|
+
});
|
|
62
|
+
verifyPlaceholder(textInputSelector: string, value: string): Void;
|
|
63
|
+
enableOrDisableSwitch(switchButton: string, value: string): Void;
|
|
64
|
+
interceptNonVersionedApi(props: {
|
|
65
|
+
url: string;
|
|
66
|
+
alias: string;
|
|
67
|
+
times?: number; // maximum number of times to match
|
|
68
|
+
}): Cypress.Chainable<Cypress.InterceptionOptions>;
|
|
56
69
|
}
|
|
57
70
|
}
|
package/cypress-utils.cjs.js
CHANGED
|
@@ -172,7 +172,29 @@ var commonSelectors = {
|
|
|
172
172
|
toastCloseButton: ".neeto-ui-toastr__close-button",
|
|
173
173
|
windowAlert: "#alert-box",
|
|
174
174
|
body: "body",
|
|
175
|
-
toastIcon: ".Toastify__toast-icon"
|
|
175
|
+
toastIcon: ".Toastify__toast-icon",
|
|
176
|
+
paneModalCrossIcon: ".neeto-ui-pane__close",
|
|
177
|
+
inputField: dataCy("input-field"),
|
|
178
|
+
alertConfirmationText: dataCy("alert-confirmation-text"),
|
|
179
|
+
alertCancelButton: dataCy("alert-cancel-button"),
|
|
180
|
+
alertModalCrossIcon: ".neeto-ui-modal__close",
|
|
181
|
+
saveChangesButton: dataCy("save-changes-button"),
|
|
182
|
+
cancelButton: dataCy("cancel-button"),
|
|
183
|
+
inputFieldError: dataCy("nui-input-error"),
|
|
184
|
+
selectDropDownError: dataCy("nui-select-error"),
|
|
185
|
+
subTitleHeading: function subTitleHeading(index) {
|
|
186
|
+
return dataCy("menubar-subtitle-heading", ":eq(".concat(index, ")"));
|
|
187
|
+
},
|
|
188
|
+
noDataTitle: dataCy("no-data-title"),
|
|
189
|
+
noDataDescription: dataCy("no-data-description"),
|
|
190
|
+
backDrop: "[data-testid='backdrop']",
|
|
191
|
+
menuBarHeading: dataCy("menubar-heading"),
|
|
192
|
+
tabItem: function tabItem(index) {
|
|
193
|
+
return dataCy("tab-item", ":eq(".concat(index, ")"));
|
|
194
|
+
},
|
|
195
|
+
dropdownWrapper: function dropdownWrapper(index) {
|
|
196
|
+
return dataCy("nui-select-container-wrapper", ":eq(".concat(index, ")"));
|
|
197
|
+
}
|
|
176
198
|
};
|
|
177
199
|
var tableSelectors = {
|
|
178
200
|
nthColumn: function nthColumn(n) {
|
|
@@ -181,7 +203,10 @@ var tableSelectors = {
|
|
|
181
203
|
tableBody: ".ant-table-body",
|
|
182
204
|
tableHeader: ".ant-table-thead th",
|
|
183
205
|
tableRow: ".ant-table-tbody tr",
|
|
184
|
-
spinner: ".ant-spin"
|
|
206
|
+
spinner: ".ant-spin",
|
|
207
|
+
nthHeading: function nthHeading(n) {
|
|
208
|
+
return "tr > th:nth-child(".concat(n, ")");
|
|
209
|
+
}
|
|
185
210
|
};
|
|
186
211
|
var profileSelectors = {
|
|
187
212
|
tab: dataCy("profile-section"),
|
|
@@ -203,7 +228,15 @@ var commonTexts = {
|
|
|
203
228
|
"new": "New",
|
|
204
229
|
takeAction: "Take action",
|
|
205
230
|
unblock: "Unblock",
|
|
206
|
-
toastIcon: "👍"
|
|
231
|
+
toastIcon: "👍",
|
|
232
|
+
emailRequiredError: "Email is required.",
|
|
233
|
+
emailTakenMessage: "Email is already taken",
|
|
234
|
+
nameTakenMessage: "Name has already been taken",
|
|
235
|
+
all: "All",
|
|
236
|
+
proceed: "Proceed",
|
|
237
|
+
settings: "Settings",
|
|
238
|
+
unsavedChangesAlertTitle: "You have unsaved changes!",
|
|
239
|
+
unsavedChangesAlertMessage: "Are you sure you want to continue? All of your unsaved changes will be lost."
|
|
207
240
|
};
|
|
208
241
|
|
|
209
242
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -277,7 +310,9 @@ var initCustomCommands = function initCustomCommands() {
|
|
|
277
310
|
Cypress.Commands.add("apiRequest", function (options) {
|
|
278
311
|
return cy.get("@requestHeaders").then(function (requestHeaders) {
|
|
279
312
|
return requestHeaders ? cy.request(_objectSpread(_objectSpread({}, options), {}, {
|
|
280
|
-
headers: requestHeaders
|
|
313
|
+
headers: _objectSpread(_objectSpread({}, requestHeaders), {}, {
|
|
314
|
+
"accept-encoding": "gzip"
|
|
315
|
+
})
|
|
281
316
|
})) : cy.log("No request headers found");
|
|
282
317
|
});
|
|
283
318
|
});
|
|
@@ -333,6 +368,72 @@ var initCustomCommands = function initCustomCommands() {
|
|
|
333
368
|
if (!$body.find(selector).length) callback();
|
|
334
369
|
});
|
|
335
370
|
});
|
|
371
|
+
Cypress.Commands.add("dragAndDrop", function (_ref2) {
|
|
372
|
+
var subject = _ref2.subject,
|
|
373
|
+
target = _ref2.target,
|
|
374
|
+
_ref2$dragIndex = _ref2.dragIndex,
|
|
375
|
+
dragIndex = _ref2$dragIndex === void 0 ? 0 : _ref2$dragIndex,
|
|
376
|
+
_ref2$dropIndex = _ref2.dropIndex,
|
|
377
|
+
dropIndex = _ref2$dropIndex === void 0 ? 0 : _ref2$dropIndex;
|
|
378
|
+
cy.get(subject).should("be.visible", {
|
|
379
|
+
timeout: 20000
|
|
380
|
+
});
|
|
381
|
+
Cypress.log({
|
|
382
|
+
name: "DRAGNDROP",
|
|
383
|
+
message: "Dragging element ".concat(subject, " to ").concat(target),
|
|
384
|
+
consoleProps: function consoleProps() {
|
|
385
|
+
return {
|
|
386
|
+
subject: subject,
|
|
387
|
+
target: target
|
|
388
|
+
};
|
|
389
|
+
}
|
|
390
|
+
});
|
|
391
|
+
cy.get(target).eq(dropIndex).then(function ($target) {
|
|
392
|
+
var coordsDrop = $target[0].getBoundingClientRect();
|
|
393
|
+
cy.get(subject).eq(dragIndex).then(function (subject) {
|
|
394
|
+
var coordsDrag = subject[0].getBoundingClientRect();
|
|
395
|
+
cy.wrap(subject).trigger("mousedown", {
|
|
396
|
+
button: 0,
|
|
397
|
+
// BUTTON_INDEX
|
|
398
|
+
clientX: coordsDrag.x,
|
|
399
|
+
clientY: coordsDrag.y,
|
|
400
|
+
force: true
|
|
401
|
+
}).trigger("mousemove", {
|
|
402
|
+
button: 0,
|
|
403
|
+
// BUTTON_INDEX
|
|
404
|
+
clientX: coordsDrag.x + 10,
|
|
405
|
+
// SLOPPY_CLICK_THRESHOLD
|
|
406
|
+
clientY: coordsDrag.y,
|
|
407
|
+
force: true
|
|
408
|
+
});
|
|
409
|
+
cy.get("body").trigger("mousemove", {
|
|
410
|
+
button: 0,
|
|
411
|
+
// BUTTON_INDEX
|
|
412
|
+
clientX: coordsDrop.x,
|
|
413
|
+
clientY: coordsDrop.y,
|
|
414
|
+
force: true
|
|
415
|
+
}).trigger("mouseup");
|
|
416
|
+
});
|
|
417
|
+
});
|
|
418
|
+
});
|
|
419
|
+
Cypress.Commands.add("verifyPlaceholder", function (textInputSelector, value) {
|
|
420
|
+
cy.get(textInputSelector).should("have.attr", "placeholder").and("eq", value);
|
|
421
|
+
});
|
|
422
|
+
Cypress.Commands.add("enableOrDisableSwitch", function (switchButton, value) {
|
|
423
|
+
cy.get(switchButton).invoke("click");
|
|
424
|
+
cy.get(switchButton).should("have.prop", "value").and("eq", value);
|
|
425
|
+
});
|
|
426
|
+
Cypress.Commands.add("interceptNonVersionedApi", function (_ref3) {
|
|
427
|
+
var _ref3$url = _ref3.url,
|
|
428
|
+
url = _ref3$url === void 0 ? "*" : _ref3$url,
|
|
429
|
+
alias = _ref3.alias,
|
|
430
|
+
_ref3$times = _ref3.times,
|
|
431
|
+
times = _ref3$times === void 0 ? 1 : _ref3$times;
|
|
432
|
+
cy.intercept({
|
|
433
|
+
url: url,
|
|
434
|
+
times: times
|
|
435
|
+
}).as(alias);
|
|
436
|
+
});
|
|
336
437
|
};
|
|
337
438
|
|
|
338
439
|
var loginSelectors = {
|
package/cypress-utils.d.ts
CHANGED
|
@@ -15,6 +15,22 @@ type CommonSelectors = {
|
|
|
15
15
|
toastCloseButton: string;
|
|
16
16
|
windowAlert: string;
|
|
17
17
|
body: string;
|
|
18
|
+
paneModalCrossIcon: string;
|
|
19
|
+
inputField: string;
|
|
20
|
+
alertConfirmationText: string;
|
|
21
|
+
alertCancelButton: string;
|
|
22
|
+
alertModalCrossIcon: string;
|
|
23
|
+
saveChangesButton: string;
|
|
24
|
+
cancelButton: string;
|
|
25
|
+
inputFieldError: string;
|
|
26
|
+
selectDropDownError: string;
|
|
27
|
+
subTitleHeading: (index: string) => string;
|
|
28
|
+
noDataTitle: string;
|
|
29
|
+
noDataDescription: string;
|
|
30
|
+
backDrop: string;
|
|
31
|
+
menuBarHeading: string;
|
|
32
|
+
tabItem: (index: string) => string;
|
|
33
|
+
dropdownWrapper: (index: string) => string;
|
|
18
34
|
};
|
|
19
35
|
|
|
20
36
|
type MemberSelectors = {
|
|
@@ -82,6 +98,15 @@ type CommonTexts = {
|
|
|
82
98
|
new: string;
|
|
83
99
|
takeAction: string;
|
|
84
100
|
unblock: string;
|
|
101
|
+
emailRequiredError: string;
|
|
102
|
+
emailTakenMessage: string;
|
|
103
|
+
nameTakenMessage: string;
|
|
104
|
+
all: string;
|
|
105
|
+
proceed: string;
|
|
106
|
+
settings: string;
|
|
107
|
+
unsavedChangesAlertTitle: string;
|
|
108
|
+
unsavedChangesAlertMessage: string;
|
|
109
|
+
unsavedChangesAlertTitle: string;
|
|
85
110
|
};
|
|
86
111
|
|
|
87
112
|
type MemberText = {
|
package/cypress-utils.js
CHANGED
|
@@ -164,7 +164,29 @@ var commonSelectors = {
|
|
|
164
164
|
toastCloseButton: ".neeto-ui-toastr__close-button",
|
|
165
165
|
windowAlert: "#alert-box",
|
|
166
166
|
body: "body",
|
|
167
|
-
toastIcon: ".Toastify__toast-icon"
|
|
167
|
+
toastIcon: ".Toastify__toast-icon",
|
|
168
|
+
paneModalCrossIcon: ".neeto-ui-pane__close",
|
|
169
|
+
inputField: dataCy("input-field"),
|
|
170
|
+
alertConfirmationText: dataCy("alert-confirmation-text"),
|
|
171
|
+
alertCancelButton: dataCy("alert-cancel-button"),
|
|
172
|
+
alertModalCrossIcon: ".neeto-ui-modal__close",
|
|
173
|
+
saveChangesButton: dataCy("save-changes-button"),
|
|
174
|
+
cancelButton: dataCy("cancel-button"),
|
|
175
|
+
inputFieldError: dataCy("nui-input-error"),
|
|
176
|
+
selectDropDownError: dataCy("nui-select-error"),
|
|
177
|
+
subTitleHeading: function subTitleHeading(index) {
|
|
178
|
+
return dataCy("menubar-subtitle-heading", ":eq(".concat(index, ")"));
|
|
179
|
+
},
|
|
180
|
+
noDataTitle: dataCy("no-data-title"),
|
|
181
|
+
noDataDescription: dataCy("no-data-description"),
|
|
182
|
+
backDrop: "[data-testid='backdrop']",
|
|
183
|
+
menuBarHeading: dataCy("menubar-heading"),
|
|
184
|
+
tabItem: function tabItem(index) {
|
|
185
|
+
return dataCy("tab-item", ":eq(".concat(index, ")"));
|
|
186
|
+
},
|
|
187
|
+
dropdownWrapper: function dropdownWrapper(index) {
|
|
188
|
+
return dataCy("nui-select-container-wrapper", ":eq(".concat(index, ")"));
|
|
189
|
+
}
|
|
168
190
|
};
|
|
169
191
|
var tableSelectors = {
|
|
170
192
|
nthColumn: function nthColumn(n) {
|
|
@@ -173,7 +195,10 @@ var tableSelectors = {
|
|
|
173
195
|
tableBody: ".ant-table-body",
|
|
174
196
|
tableHeader: ".ant-table-thead th",
|
|
175
197
|
tableRow: ".ant-table-tbody tr",
|
|
176
|
-
spinner: ".ant-spin"
|
|
198
|
+
spinner: ".ant-spin",
|
|
199
|
+
nthHeading: function nthHeading(n) {
|
|
200
|
+
return "tr > th:nth-child(".concat(n, ")");
|
|
201
|
+
}
|
|
177
202
|
};
|
|
178
203
|
var profileSelectors = {
|
|
179
204
|
tab: dataCy("profile-section"),
|
|
@@ -195,7 +220,15 @@ var commonTexts = {
|
|
|
195
220
|
"new": "New",
|
|
196
221
|
takeAction: "Take action",
|
|
197
222
|
unblock: "Unblock",
|
|
198
|
-
toastIcon: "👍"
|
|
223
|
+
toastIcon: "👍",
|
|
224
|
+
emailRequiredError: "Email is required.",
|
|
225
|
+
emailTakenMessage: "Email is already taken",
|
|
226
|
+
nameTakenMessage: "Name has already been taken",
|
|
227
|
+
all: "All",
|
|
228
|
+
proceed: "Proceed",
|
|
229
|
+
settings: "Settings",
|
|
230
|
+
unsavedChangesAlertTitle: "You have unsaved changes!",
|
|
231
|
+
unsavedChangesAlertMessage: "Are you sure you want to continue? All of your unsaved changes will be lost."
|
|
199
232
|
};
|
|
200
233
|
|
|
201
234
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -269,7 +302,9 @@ var initCustomCommands = function initCustomCommands() {
|
|
|
269
302
|
Cypress.Commands.add("apiRequest", function (options) {
|
|
270
303
|
return cy.get("@requestHeaders").then(function (requestHeaders) {
|
|
271
304
|
return requestHeaders ? cy.request(_objectSpread(_objectSpread({}, options), {}, {
|
|
272
|
-
headers: requestHeaders
|
|
305
|
+
headers: _objectSpread(_objectSpread({}, requestHeaders), {}, {
|
|
306
|
+
"accept-encoding": "gzip"
|
|
307
|
+
})
|
|
273
308
|
})) : cy.log("No request headers found");
|
|
274
309
|
});
|
|
275
310
|
});
|
|
@@ -325,6 +360,72 @@ var initCustomCommands = function initCustomCommands() {
|
|
|
325
360
|
if (!$body.find(selector).length) callback();
|
|
326
361
|
});
|
|
327
362
|
});
|
|
363
|
+
Cypress.Commands.add("dragAndDrop", function (_ref2) {
|
|
364
|
+
var subject = _ref2.subject,
|
|
365
|
+
target = _ref2.target,
|
|
366
|
+
_ref2$dragIndex = _ref2.dragIndex,
|
|
367
|
+
dragIndex = _ref2$dragIndex === void 0 ? 0 : _ref2$dragIndex,
|
|
368
|
+
_ref2$dropIndex = _ref2.dropIndex,
|
|
369
|
+
dropIndex = _ref2$dropIndex === void 0 ? 0 : _ref2$dropIndex;
|
|
370
|
+
cy.get(subject).should("be.visible", {
|
|
371
|
+
timeout: 20000
|
|
372
|
+
});
|
|
373
|
+
Cypress.log({
|
|
374
|
+
name: "DRAGNDROP",
|
|
375
|
+
message: "Dragging element ".concat(subject, " to ").concat(target),
|
|
376
|
+
consoleProps: function consoleProps() {
|
|
377
|
+
return {
|
|
378
|
+
subject: subject,
|
|
379
|
+
target: target
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
});
|
|
383
|
+
cy.get(target).eq(dropIndex).then(function ($target) {
|
|
384
|
+
var coordsDrop = $target[0].getBoundingClientRect();
|
|
385
|
+
cy.get(subject).eq(dragIndex).then(function (subject) {
|
|
386
|
+
var coordsDrag = subject[0].getBoundingClientRect();
|
|
387
|
+
cy.wrap(subject).trigger("mousedown", {
|
|
388
|
+
button: 0,
|
|
389
|
+
// BUTTON_INDEX
|
|
390
|
+
clientX: coordsDrag.x,
|
|
391
|
+
clientY: coordsDrag.y,
|
|
392
|
+
force: true
|
|
393
|
+
}).trigger("mousemove", {
|
|
394
|
+
button: 0,
|
|
395
|
+
// BUTTON_INDEX
|
|
396
|
+
clientX: coordsDrag.x + 10,
|
|
397
|
+
// SLOPPY_CLICK_THRESHOLD
|
|
398
|
+
clientY: coordsDrag.y,
|
|
399
|
+
force: true
|
|
400
|
+
});
|
|
401
|
+
cy.get("body").trigger("mousemove", {
|
|
402
|
+
button: 0,
|
|
403
|
+
// BUTTON_INDEX
|
|
404
|
+
clientX: coordsDrop.x,
|
|
405
|
+
clientY: coordsDrop.y,
|
|
406
|
+
force: true
|
|
407
|
+
}).trigger("mouseup");
|
|
408
|
+
});
|
|
409
|
+
});
|
|
410
|
+
});
|
|
411
|
+
Cypress.Commands.add("verifyPlaceholder", function (textInputSelector, value) {
|
|
412
|
+
cy.get(textInputSelector).should("have.attr", "placeholder").and("eq", value);
|
|
413
|
+
});
|
|
414
|
+
Cypress.Commands.add("enableOrDisableSwitch", function (switchButton, value) {
|
|
415
|
+
cy.get(switchButton).invoke("click");
|
|
416
|
+
cy.get(switchButton).should("have.prop", "value").and("eq", value);
|
|
417
|
+
});
|
|
418
|
+
Cypress.Commands.add("interceptNonVersionedApi", function (_ref3) {
|
|
419
|
+
var _ref3$url = _ref3.url,
|
|
420
|
+
url = _ref3$url === void 0 ? "*" : _ref3$url,
|
|
421
|
+
alias = _ref3.alias,
|
|
422
|
+
_ref3$times = _ref3.times,
|
|
423
|
+
times = _ref3$times === void 0 ? 1 : _ref3$times;
|
|
424
|
+
cy.intercept({
|
|
425
|
+
url: url,
|
|
426
|
+
times: times
|
|
427
|
+
}).as(alias);
|
|
428
|
+
});
|
|
328
429
|
};
|
|
329
430
|
|
|
330
431
|
var loginSelectors = {
|
package/initializers.cjs.js
CHANGED
|
@@ -516,6 +516,8 @@ var neetoCommons = {
|
|
|
516
516
|
last24Hours: "Last 24 hours",
|
|
517
517
|
thisMonth: "This month",
|
|
518
518
|
lastMonth: "Last month",
|
|
519
|
+
thisYear: "This year",
|
|
520
|
+
lastYear: "Last year",
|
|
519
521
|
thisQuarter: "This quarter",
|
|
520
522
|
lastQuarter: "Last quarter",
|
|
521
523
|
thisWeek: "This week",
|
|
@@ -579,6 +581,7 @@ var neetoCommons = {
|
|
|
579
581
|
},
|
|
580
582
|
keyboardShortcuts: {
|
|
581
583
|
title: "Keyboard shortcuts",
|
|
584
|
+
viewFullListOfShortcuts: "View full list of shortcuts",
|
|
582
585
|
global: {
|
|
583
586
|
categoryName: "GLOBAL",
|
|
584
587
|
openKeyboardShortcutsPane: "Open the keyboard shortcuts pane",
|
package/initializers.js
CHANGED
|
@@ -506,6 +506,8 @@ var neetoCommons = {
|
|
|
506
506
|
last24Hours: "Last 24 hours",
|
|
507
507
|
thisMonth: "This month",
|
|
508
508
|
lastMonth: "Last month",
|
|
509
|
+
thisYear: "This year",
|
|
510
|
+
lastYear: "Last year",
|
|
509
511
|
thisQuarter: "This quarter",
|
|
510
512
|
lastQuarter: "Last quarter",
|
|
511
513
|
thisWeek: "This week",
|
|
@@ -569,6 +571,7 @@ var neetoCommons = {
|
|
|
569
571
|
},
|
|
570
572
|
keyboardShortcuts: {
|
|
571
573
|
title: "Keyboard shortcuts",
|
|
574
|
+
viewFullListOfShortcuts: "View full list of shortcuts",
|
|
572
575
|
global: {
|
|
573
576
|
categoryName: "GLOBAL",
|
|
574
577
|
openKeyboardShortcutsPane: "Open the keyboard shortcuts pane",
|
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.49",
|
|
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
|
@@ -4354,6 +4354,10 @@ var defaultTimePeriodOptions = function defaultTimePeriodOptions() {
|
|
|
4354
4354
|
var thisQuarterEnd = dayjs__default["default"]().endOf("quarter");
|
|
4355
4355
|
var lastQuarterStart = dayjs__default["default"]().subtract(1, "quarter").startOf("quarter");
|
|
4356
4356
|
var lastQuarterEnd = dayjs__default["default"]().subtract(1, "quarter").endOf("quarter");
|
|
4357
|
+
var startOfLastYear = dayjs__default["default"]().subtract(1, "year").startOf("year");
|
|
4358
|
+
var endOfLastYear = dayjs__default["default"]().subtract(1, "year").endOf("year");
|
|
4359
|
+
var startOfYear = dayjs__default["default"]().startOf("year");
|
|
4360
|
+
var endOfYear = dayjs__default["default"]().endOf("year");
|
|
4357
4361
|
var startOf24Hours = dayjs__default["default"]().subtract(24, "hour");
|
|
4358
4362
|
var now = dayjs__default["default"]();
|
|
4359
4363
|
var startOfLast7Days = dayjs__default["default"]().subtract(7, "day");
|
|
@@ -4416,6 +4420,20 @@ var defaultTimePeriodOptions = function defaultTimePeriodOptions() {
|
|
|
4416
4420
|
endDate: lastMonthEnd,
|
|
4417
4421
|
rangeType: "month"
|
|
4418
4422
|
}
|
|
4423
|
+
}, {
|
|
4424
|
+
label: i18next.t("neetoCommons.dateRangeFilter.timePeriodOptions.thisYear"),
|
|
4425
|
+
value: {
|
|
4426
|
+
startDate: startOfYear,
|
|
4427
|
+
endDate: endOfYear,
|
|
4428
|
+
rangeType: "year"
|
|
4429
|
+
}
|
|
4430
|
+
}, {
|
|
4431
|
+
label: i18next.t("neetoCommons.dateRangeFilter.timePeriodOptions.lastYear"),
|
|
4432
|
+
value: {
|
|
4433
|
+
startDate: startOfLastYear,
|
|
4434
|
+
endDate: endOfLastYear,
|
|
4435
|
+
rangeType: "year"
|
|
4436
|
+
}
|
|
4419
4437
|
}, {
|
|
4420
4438
|
label: i18next.t("neetoCommons.dateRangeFilter.timePeriodOptions.thisQuarter"),
|
|
4421
4439
|
value: {
|
|
@@ -4437,7 +4455,7 @@ var defaultTimePeriodOptions = function defaultTimePeriodOptions() {
|
|
|
4437
4455
|
};
|
|
4438
4456
|
|
|
4439
4457
|
var DateRangeFilter = function DateRangeFilter(_ref) {
|
|
4440
|
-
var _globalProps$user;
|
|
4458
|
+
var _timePeriod$value, _timePeriod$value2, _globalProps$user;
|
|
4441
4459
|
var timePeriodOptions = _ref.timePeriodOptions,
|
|
4442
4460
|
timePeriod = _ref.timePeriod,
|
|
4443
4461
|
setTimePeriod = _ref.setTimePeriod;
|
|
@@ -4445,6 +4463,8 @@ var DateRangeFilter = function DateRangeFilter(_ref) {
|
|
|
4445
4463
|
t = _useTranslation.t;
|
|
4446
4464
|
var customDurationLabel = t("neetoCommons.dateRangeFilter.timePeriodOptions.customDuration");
|
|
4447
4465
|
var isCustom = timePeriod.label === customDurationLabel;
|
|
4466
|
+
var startDate = (_timePeriod$value = timePeriod.value) === null || _timePeriod$value === void 0 ? void 0 : _timePeriod$value.startDate;
|
|
4467
|
+
var endDate = (_timePeriod$value2 = timePeriod.value) === null || _timePeriod$value2 === void 0 ? void 0 : _timePeriod$value2.endDate;
|
|
4448
4468
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
4449
4469
|
className: "flex pr-2",
|
|
4450
4470
|
"data-testid": "date-range-filter"
|
|
@@ -4452,10 +4472,7 @@ var DateRangeFilter = function DateRangeFilter(_ref) {
|
|
|
4452
4472
|
className: "w-40"
|
|
4453
4473
|
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Select, {
|
|
4454
4474
|
required: true,
|
|
4455
|
-
getOptionValue:
|
|
4456
|
-
var label = _ref2.label;
|
|
4457
|
-
return label;
|
|
4458
|
-
},
|
|
4475
|
+
getOptionValue: ramda.prop("label"),
|
|
4459
4476
|
options: timePeriodOptions || defaultTimePeriodOptions(),
|
|
4460
4477
|
value: timePeriod,
|
|
4461
4478
|
onChange: function onChange(option) {
|
|
@@ -4468,12 +4485,13 @@ var DateRangeFilter = function DateRangeFilter(_ref) {
|
|
|
4468
4485
|
autoFocus: true,
|
|
4469
4486
|
className: "ml-3 w-full",
|
|
4470
4487
|
dateFormat: initializers.globalProps === null || initializers.globalProps === void 0 ? void 0 : (_globalProps$user = initializers.globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.dateFormat,
|
|
4488
|
+
defaultValue: [dayjs__default["default"](startDate), dayjs__default["default"](endDate)],
|
|
4471
4489
|
picker: "date",
|
|
4472
4490
|
type: "range",
|
|
4473
|
-
onChange: function onChange(_,
|
|
4474
|
-
var
|
|
4475
|
-
startDate =
|
|
4476
|
-
endDate =
|
|
4491
|
+
onChange: function onChange(_, _ref2) {
|
|
4492
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
4493
|
+
startDate = _ref3[0],
|
|
4494
|
+
endDate = _ref3[1];
|
|
4477
4495
|
setTimePeriod({
|
|
4478
4496
|
label: customDurationLabel,
|
|
4479
4497
|
value: {
|
|
@@ -40449,37 +40467,13 @@ var IpRestriction = function IpRestriction() {
|
|
|
40449
40467
|
}, /*#__PURE__*/React__default["default"].createElement(CurrentIp, null), /*#__PURE__*/React__default["default"].createElement(AllowedIpRanges, null)));
|
|
40450
40468
|
};
|
|
40451
40469
|
|
|
40452
|
-
var DisplayHotKey = function DisplayHotKey(_ref) {
|
|
40453
|
-
var hotkey = _ref.hotkey;
|
|
40454
|
-
var isSequentialHotkey = hotkey.includes(" ");
|
|
40455
|
-
var isSimultaneousHotkey = hotkey.includes("+");
|
|
40456
|
-
var isSingleKeyHotkey = !isSequentialHotkey && !isSimultaneousHotkey;
|
|
40457
|
-
var sequences = [];
|
|
40458
|
-
if (isSingleKeyHotkey) return /*#__PURE__*/React__default["default"].createElement(neetoui.Kbd, {
|
|
40459
|
-
keyName: hotkey
|
|
40460
|
-
});
|
|
40461
|
-
if (isSequentialHotkey) {
|
|
40462
|
-
sequences = hotkey.split(" ");
|
|
40463
|
-
} else if (isSimultaneousHotkey) {
|
|
40464
|
-
sequences = hotkey.split("+");
|
|
40465
|
-
}
|
|
40466
|
-
return sequences.map(function (keyName, idx) {
|
|
40467
|
-
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
|
|
40468
|
-
key: idx
|
|
40469
|
-
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Kbd, {
|
|
40470
|
-
keyName: keyName
|
|
40471
|
-
}), isSequentialHotkey && idx + 1 !== sequences.length && /*#__PURE__*/React__default["default"].createElement(neetoui.Kbd, {
|
|
40472
|
-
keyName: "then"
|
|
40473
|
-
}));
|
|
40474
|
-
});
|
|
40475
|
-
};
|
|
40476
|
-
|
|
40477
40470
|
var KEY_SHORTFORM_MAP = {
|
|
40478
40471
|
command: "cmd",
|
|
40479
40472
|
escape: "esc",
|
|
40480
40473
|
control: "ctrl",
|
|
40481
40474
|
option: "opt"
|
|
40482
40475
|
};
|
|
40476
|
+
var FULL_SHORTCUTS_LINK_PROP_NAME = "fullShortcutsLink";
|
|
40483
40477
|
|
|
40484
40478
|
var shortenHotKey = function shortenHotKey(hotkey) {
|
|
40485
40479
|
var result = hotkey;
|
|
@@ -40504,35 +40498,71 @@ var getGlobalShortcuts = function getGlobalShortcuts() {
|
|
|
40504
40498
|
});
|
|
40505
40499
|
};
|
|
40506
40500
|
|
|
40501
|
+
var HotKey = function HotKey(_ref) {
|
|
40502
|
+
var description = _ref.description,
|
|
40503
|
+
sequence = _ref.sequence;
|
|
40504
|
+
var hotkey = shortenHotKey(convertHotkeyToUsersPlatform(sequence));
|
|
40505
|
+
var isSequentialHotkey = hotkey.includes(" ");
|
|
40506
|
+
var isSimultaneousHotkey = hotkey.includes("+");
|
|
40507
|
+
var isSingleKeyHotkey = !isSequentialHotkey && !isSimultaneousHotkey;
|
|
40508
|
+
var sequences = [];
|
|
40509
|
+
if (isSingleKeyHotkey) {
|
|
40510
|
+
sequences = [hotkey];
|
|
40511
|
+
} else if (isSequentialHotkey) {
|
|
40512
|
+
sequences = hotkey.split(" ");
|
|
40513
|
+
} else if (isSimultaneousHotkey) {
|
|
40514
|
+
sequences = hotkey.split("+");
|
|
40515
|
+
}
|
|
40516
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
40517
|
+
className: "my-3 px-4"
|
|
40518
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
40519
|
+
className: "flex items-center justify-between gap-3",
|
|
40520
|
+
"data-testid": "hotkey-item"
|
|
40521
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
40522
|
+
className: "neeto-ui-text-gray-800",
|
|
40523
|
+
lineHeight: "normal",
|
|
40524
|
+
style: "body2"
|
|
40525
|
+
}, description), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
40526
|
+
className: "flex items-center gap-1"
|
|
40527
|
+
}, sequences.map(function (keyName, idx) {
|
|
40528
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
|
|
40529
|
+
key: idx
|
|
40530
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Kbd, {
|
|
40531
|
+
keyName: keyName
|
|
40532
|
+
}), isSequentialHotkey && idx + 1 !== sequences.length && /*#__PURE__*/React__default["default"].createElement(neetoui.Kbd, {
|
|
40533
|
+
keyName: "then"
|
|
40534
|
+
}));
|
|
40535
|
+
}))));
|
|
40536
|
+
};
|
|
40537
|
+
|
|
40507
40538
|
var HotKeyList = function HotKeyList(_ref) {
|
|
40508
40539
|
var hotkeys = _ref.hotkeys;
|
|
40540
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
40541
|
+
t = _useTranslation.t;
|
|
40509
40542
|
return Object.keys(hotkeys).map(function (categoryName) {
|
|
40543
|
+
var categoryValues = hotkeys[categoryName];
|
|
40544
|
+
var fullShortcutsLink = categoryValues[FULL_SHORTCUTS_LINK_PROP_NAME];
|
|
40510
40545
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
|
|
40511
40546
|
key: categoryName
|
|
40512
40547
|
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
40513
40548
|
className: "neeto-ui-text-gray-800 mt-4 px-4 text-xs font-bold",
|
|
40514
40549
|
lineHeight: "normal",
|
|
40515
40550
|
style: "body2"
|
|
40516
|
-
}, categoryName), Object.entries(
|
|
40551
|
+
}, categoryName), Object.entries(categoryValues).map(function (_ref2) {
|
|
40517
40552
|
var _ref3 = _slicedToArray(_ref2, 2),
|
|
40518
40553
|
_ref3$ = _ref3[1],
|
|
40519
40554
|
sequence = _ref3$.sequence,
|
|
40520
40555
|
description = _ref3$.description;
|
|
40521
|
-
return /*#__PURE__*/React__default["default"].createElement(
|
|
40522
|
-
|
|
40523
|
-
key: sequence
|
|
40524
|
-
|
|
40525
|
-
|
|
40526
|
-
|
|
40527
|
-
|
|
40528
|
-
|
|
40529
|
-
|
|
40530
|
-
|
|
40531
|
-
}, description), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
40532
|
-
className: "flex items-center gap-1"
|
|
40533
|
-
}, /*#__PURE__*/React__default["default"].createElement(DisplayHotKey, {
|
|
40534
|
-
hotkey: shortenHotKey(convertHotkeyToUsersPlatform(sequence))
|
|
40535
|
-
}))));
|
|
40556
|
+
return sequence && /*#__PURE__*/React__default["default"].createElement(HotKey, {
|
|
40557
|
+
description: description,
|
|
40558
|
+
key: sequence,
|
|
40559
|
+
sequence: sequence
|
|
40560
|
+
});
|
|
40561
|
+
}), fullShortcutsLink && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
40562
|
+
className: "pl-4 mb-3",
|
|
40563
|
+
href: fullShortcutsLink,
|
|
40564
|
+
label: t("neetoCommons.keyboardShortcuts.viewFullListOfShortcuts"),
|
|
40565
|
+
style: "link"
|
|
40536
40566
|
}));
|
|
40537
40567
|
});
|
|
40538
40568
|
};
|
package/react-utils.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ import { DateTimeType, timeFormat } from "./utils";
|
|
|
18
18
|
import { History } from "history";
|
|
19
19
|
import { StoreApi, UseBoundStore } from "zustand";
|
|
20
20
|
import { Dayjs } from "dayjs";
|
|
21
|
+
import { TFunction } from "i18next";
|
|
21
22
|
|
|
22
23
|
export const HoneybadgerErrorBoundary: React.FC<{
|
|
23
24
|
ErrorComponent?: React.ReactNode | React.ComponentType<any>;
|
|
@@ -264,13 +265,14 @@ export function isMetaKeyPressed(
|
|
|
264
265
|
|
|
265
266
|
interface Shortcut {
|
|
266
267
|
sequence: string;
|
|
267
|
-
description:
|
|
268
|
+
description: TFunction;
|
|
268
269
|
}
|
|
269
270
|
interface Category {
|
|
270
|
-
[index: string]: Shortcut;
|
|
271
|
+
[index: string]: Shortcut | string;
|
|
272
|
+
fullShortcutsLink?: string;
|
|
271
273
|
}
|
|
272
274
|
interface ProductShortcuts {
|
|
273
|
-
[index:
|
|
275
|
+
[index: string | TFunction]: Category;
|
|
274
276
|
}
|
|
275
277
|
export const KeyboardShortcutsPane: React.FC<{
|
|
276
278
|
productShortcuts?: ProductShortcuts;
|
package/react-utils.js
CHANGED
|
@@ -4316,6 +4316,10 @@ var defaultTimePeriodOptions = function defaultTimePeriodOptions() {
|
|
|
4316
4316
|
var thisQuarterEnd = dayjs().endOf("quarter");
|
|
4317
4317
|
var lastQuarterStart = dayjs().subtract(1, "quarter").startOf("quarter");
|
|
4318
4318
|
var lastQuarterEnd = dayjs().subtract(1, "quarter").endOf("quarter");
|
|
4319
|
+
var startOfLastYear = dayjs().subtract(1, "year").startOf("year");
|
|
4320
|
+
var endOfLastYear = dayjs().subtract(1, "year").endOf("year");
|
|
4321
|
+
var startOfYear = dayjs().startOf("year");
|
|
4322
|
+
var endOfYear = dayjs().endOf("year");
|
|
4319
4323
|
var startOf24Hours = dayjs().subtract(24, "hour");
|
|
4320
4324
|
var now = dayjs();
|
|
4321
4325
|
var startOfLast7Days = dayjs().subtract(7, "day");
|
|
@@ -4378,6 +4382,20 @@ var defaultTimePeriodOptions = function defaultTimePeriodOptions() {
|
|
|
4378
4382
|
endDate: lastMonthEnd,
|
|
4379
4383
|
rangeType: "month"
|
|
4380
4384
|
}
|
|
4385
|
+
}, {
|
|
4386
|
+
label: t$1("neetoCommons.dateRangeFilter.timePeriodOptions.thisYear"),
|
|
4387
|
+
value: {
|
|
4388
|
+
startDate: startOfYear,
|
|
4389
|
+
endDate: endOfYear,
|
|
4390
|
+
rangeType: "year"
|
|
4391
|
+
}
|
|
4392
|
+
}, {
|
|
4393
|
+
label: t$1("neetoCommons.dateRangeFilter.timePeriodOptions.lastYear"),
|
|
4394
|
+
value: {
|
|
4395
|
+
startDate: startOfLastYear,
|
|
4396
|
+
endDate: endOfLastYear,
|
|
4397
|
+
rangeType: "year"
|
|
4398
|
+
}
|
|
4381
4399
|
}, {
|
|
4382
4400
|
label: t$1("neetoCommons.dateRangeFilter.timePeriodOptions.thisQuarter"),
|
|
4383
4401
|
value: {
|
|
@@ -4399,7 +4417,7 @@ var defaultTimePeriodOptions = function defaultTimePeriodOptions() {
|
|
|
4399
4417
|
};
|
|
4400
4418
|
|
|
4401
4419
|
var DateRangeFilter = function DateRangeFilter(_ref) {
|
|
4402
|
-
var _globalProps$user;
|
|
4420
|
+
var _timePeriod$value, _timePeriod$value2, _globalProps$user;
|
|
4403
4421
|
var timePeriodOptions = _ref.timePeriodOptions,
|
|
4404
4422
|
timePeriod = _ref.timePeriod,
|
|
4405
4423
|
setTimePeriod = _ref.setTimePeriod;
|
|
@@ -4407,6 +4425,8 @@ var DateRangeFilter = function DateRangeFilter(_ref) {
|
|
|
4407
4425
|
t = _useTranslation.t;
|
|
4408
4426
|
var customDurationLabel = t("neetoCommons.dateRangeFilter.timePeriodOptions.customDuration");
|
|
4409
4427
|
var isCustom = timePeriod.label === customDurationLabel;
|
|
4428
|
+
var startDate = (_timePeriod$value = timePeriod.value) === null || _timePeriod$value === void 0 ? void 0 : _timePeriod$value.startDate;
|
|
4429
|
+
var endDate = (_timePeriod$value2 = timePeriod.value) === null || _timePeriod$value2 === void 0 ? void 0 : _timePeriod$value2.endDate;
|
|
4410
4430
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
4411
4431
|
className: "flex pr-2",
|
|
4412
4432
|
"data-testid": "date-range-filter"
|
|
@@ -4414,10 +4434,7 @@ var DateRangeFilter = function DateRangeFilter(_ref) {
|
|
|
4414
4434
|
className: "w-40"
|
|
4415
4435
|
}, /*#__PURE__*/React__default.createElement(Select, {
|
|
4416
4436
|
required: true,
|
|
4417
|
-
getOptionValue:
|
|
4418
|
-
var label = _ref2.label;
|
|
4419
|
-
return label;
|
|
4420
|
-
},
|
|
4437
|
+
getOptionValue: prop$1("label"),
|
|
4421
4438
|
options: timePeriodOptions || defaultTimePeriodOptions(),
|
|
4422
4439
|
value: timePeriod,
|
|
4423
4440
|
onChange: function onChange(option) {
|
|
@@ -4430,12 +4447,13 @@ var DateRangeFilter = function DateRangeFilter(_ref) {
|
|
|
4430
4447
|
autoFocus: true,
|
|
4431
4448
|
className: "ml-3 w-full",
|
|
4432
4449
|
dateFormat: globalProps$1 === null || globalProps$1 === void 0 ? void 0 : (_globalProps$user = globalProps$1.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.dateFormat,
|
|
4450
|
+
defaultValue: [dayjs(startDate), dayjs(endDate)],
|
|
4433
4451
|
picker: "date",
|
|
4434
4452
|
type: "range",
|
|
4435
|
-
onChange: function onChange(_,
|
|
4436
|
-
var
|
|
4437
|
-
startDate =
|
|
4438
|
-
endDate =
|
|
4453
|
+
onChange: function onChange(_, _ref2) {
|
|
4454
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
4455
|
+
startDate = _ref3[0],
|
|
4456
|
+
endDate = _ref3[1];
|
|
4439
4457
|
setTimePeriod({
|
|
4440
4458
|
label: customDurationLabel,
|
|
4441
4459
|
value: {
|
|
@@ -40411,37 +40429,13 @@ var IpRestriction = function IpRestriction() {
|
|
|
40411
40429
|
}, /*#__PURE__*/React__default.createElement(CurrentIp, null), /*#__PURE__*/React__default.createElement(AllowedIpRanges, null)));
|
|
40412
40430
|
};
|
|
40413
40431
|
|
|
40414
|
-
var DisplayHotKey = function DisplayHotKey(_ref) {
|
|
40415
|
-
var hotkey = _ref.hotkey;
|
|
40416
|
-
var isSequentialHotkey = hotkey.includes(" ");
|
|
40417
|
-
var isSimultaneousHotkey = hotkey.includes("+");
|
|
40418
|
-
var isSingleKeyHotkey = !isSequentialHotkey && !isSimultaneousHotkey;
|
|
40419
|
-
var sequences = [];
|
|
40420
|
-
if (isSingleKeyHotkey) return /*#__PURE__*/React__default.createElement(Kbd, {
|
|
40421
|
-
keyName: hotkey
|
|
40422
|
-
});
|
|
40423
|
-
if (isSequentialHotkey) {
|
|
40424
|
-
sequences = hotkey.split(" ");
|
|
40425
|
-
} else if (isSimultaneousHotkey) {
|
|
40426
|
-
sequences = hotkey.split("+");
|
|
40427
|
-
}
|
|
40428
|
-
return sequences.map(function (keyName, idx) {
|
|
40429
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
|
|
40430
|
-
key: idx
|
|
40431
|
-
}, /*#__PURE__*/React__default.createElement(Kbd, {
|
|
40432
|
-
keyName: keyName
|
|
40433
|
-
}), isSequentialHotkey && idx + 1 !== sequences.length && /*#__PURE__*/React__default.createElement(Kbd, {
|
|
40434
|
-
keyName: "then"
|
|
40435
|
-
}));
|
|
40436
|
-
});
|
|
40437
|
-
};
|
|
40438
|
-
|
|
40439
40432
|
var KEY_SHORTFORM_MAP = {
|
|
40440
40433
|
command: "cmd",
|
|
40441
40434
|
escape: "esc",
|
|
40442
40435
|
control: "ctrl",
|
|
40443
40436
|
option: "opt"
|
|
40444
40437
|
};
|
|
40438
|
+
var FULL_SHORTCUTS_LINK_PROP_NAME = "fullShortcutsLink";
|
|
40445
40439
|
|
|
40446
40440
|
var shortenHotKey = function shortenHotKey(hotkey) {
|
|
40447
40441
|
var result = hotkey;
|
|
@@ -40466,35 +40460,71 @@ var getGlobalShortcuts = function getGlobalShortcuts() {
|
|
|
40466
40460
|
});
|
|
40467
40461
|
};
|
|
40468
40462
|
|
|
40463
|
+
var HotKey = function HotKey(_ref) {
|
|
40464
|
+
var description = _ref.description,
|
|
40465
|
+
sequence = _ref.sequence;
|
|
40466
|
+
var hotkey = shortenHotKey(convertHotkeyToUsersPlatform(sequence));
|
|
40467
|
+
var isSequentialHotkey = hotkey.includes(" ");
|
|
40468
|
+
var isSimultaneousHotkey = hotkey.includes("+");
|
|
40469
|
+
var isSingleKeyHotkey = !isSequentialHotkey && !isSimultaneousHotkey;
|
|
40470
|
+
var sequences = [];
|
|
40471
|
+
if (isSingleKeyHotkey) {
|
|
40472
|
+
sequences = [hotkey];
|
|
40473
|
+
} else if (isSequentialHotkey) {
|
|
40474
|
+
sequences = hotkey.split(" ");
|
|
40475
|
+
} else if (isSimultaneousHotkey) {
|
|
40476
|
+
sequences = hotkey.split("+");
|
|
40477
|
+
}
|
|
40478
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
40479
|
+
className: "my-3 px-4"
|
|
40480
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
40481
|
+
className: "flex items-center justify-between gap-3",
|
|
40482
|
+
"data-testid": "hotkey-item"
|
|
40483
|
+
}, /*#__PURE__*/React__default.createElement(Typography, {
|
|
40484
|
+
className: "neeto-ui-text-gray-800",
|
|
40485
|
+
lineHeight: "normal",
|
|
40486
|
+
style: "body2"
|
|
40487
|
+
}, description), /*#__PURE__*/React__default.createElement("div", {
|
|
40488
|
+
className: "flex items-center gap-1"
|
|
40489
|
+
}, sequences.map(function (keyName, idx) {
|
|
40490
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
|
|
40491
|
+
key: idx
|
|
40492
|
+
}, /*#__PURE__*/React__default.createElement(Kbd, {
|
|
40493
|
+
keyName: keyName
|
|
40494
|
+
}), isSequentialHotkey && idx + 1 !== sequences.length && /*#__PURE__*/React__default.createElement(Kbd, {
|
|
40495
|
+
keyName: "then"
|
|
40496
|
+
}));
|
|
40497
|
+
}))));
|
|
40498
|
+
};
|
|
40499
|
+
|
|
40469
40500
|
var HotKeyList = function HotKeyList(_ref) {
|
|
40470
40501
|
var hotkeys = _ref.hotkeys;
|
|
40502
|
+
var _useTranslation = useTranslation(),
|
|
40503
|
+
t = _useTranslation.t;
|
|
40471
40504
|
return Object.keys(hotkeys).map(function (categoryName) {
|
|
40505
|
+
var categoryValues = hotkeys[categoryName];
|
|
40506
|
+
var fullShortcutsLink = categoryValues[FULL_SHORTCUTS_LINK_PROP_NAME];
|
|
40472
40507
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
|
|
40473
40508
|
key: categoryName
|
|
40474
40509
|
}, /*#__PURE__*/React__default.createElement(Typography, {
|
|
40475
40510
|
className: "neeto-ui-text-gray-800 mt-4 px-4 text-xs font-bold",
|
|
40476
40511
|
lineHeight: "normal",
|
|
40477
40512
|
style: "body2"
|
|
40478
|
-
}, categoryName), Object.entries(
|
|
40513
|
+
}, categoryName), Object.entries(categoryValues).map(function (_ref2) {
|
|
40479
40514
|
var _ref3 = _slicedToArray(_ref2, 2),
|
|
40480
40515
|
_ref3$ = _ref3[1],
|
|
40481
40516
|
sequence = _ref3$.sequence,
|
|
40482
40517
|
description = _ref3$.description;
|
|
40483
|
-
return /*#__PURE__*/React__default.createElement(
|
|
40484
|
-
|
|
40485
|
-
key: sequence
|
|
40486
|
-
|
|
40487
|
-
|
|
40488
|
-
|
|
40489
|
-
|
|
40490
|
-
|
|
40491
|
-
|
|
40492
|
-
|
|
40493
|
-
}, description), /*#__PURE__*/React__default.createElement("div", {
|
|
40494
|
-
className: "flex items-center gap-1"
|
|
40495
|
-
}, /*#__PURE__*/React__default.createElement(DisplayHotKey, {
|
|
40496
|
-
hotkey: shortenHotKey(convertHotkeyToUsersPlatform(sequence))
|
|
40497
|
-
}))));
|
|
40518
|
+
return sequence && /*#__PURE__*/React__default.createElement(HotKey, {
|
|
40519
|
+
description: description,
|
|
40520
|
+
key: sequence,
|
|
40521
|
+
sequence: sequence
|
|
40522
|
+
});
|
|
40523
|
+
}), fullShortcutsLink && /*#__PURE__*/React__default.createElement(Button, {
|
|
40524
|
+
className: "pl-4 mb-3",
|
|
40525
|
+
href: fullShortcutsLink,
|
|
40526
|
+
label: t("neetoCommons.keyboardShortcuts.viewFullListOfShortcuts"),
|
|
40527
|
+
style: "link"
|
|
40498
40528
|
}));
|
|
40499
40529
|
});
|
|
40500
40530
|
};
|