@entur-partner/common 8.0.0 → 8.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/UserMenu/components/CustomOverflowMenu.d.ts +11 -0
- package/dist/UserMenu/components/CustomOverflowMenuItem.d.ts +3 -0
- package/dist/UserMenu/components/LanguageSwitchMenuItem.d.ts +10 -0
- package/dist/UserMenu/components/LogOutMenuItem.d.ts +9 -0
- package/dist/UserMenu/components/UserMenuItem.d.ts +9 -0
- package/dist/UserMenu/components/VersionMenuItem.d.ts +5 -0
- package/dist/{UserMenu.d.ts → UserMenu/index.d.ts} +3 -7
- package/dist/UserMenu/useOutsideClick.d.ts +2 -0
- package/dist/common.cjs.development.js +167 -125
- package/dist/common.cjs.development.js.map +1 -1
- package/dist/common.cjs.production.min.js +1 -1
- package/dist/common.cjs.production.min.js.map +1 -1
- package/dist/common.esm.js +169 -127
- package/dist/common.esm.js.map +1 -1
- package/dist/styles.css +75 -75
- package/package.json +6 -6
package/dist/common.esm.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React, { Children, useState, useEffect, useRef, Component } from 'react';
|
|
2
2
|
import cx from 'classnames';
|
|
3
3
|
import { Link as Link$1, Heading6, Paragraph } from '@entur/typography';
|
|
4
|
-
import {
|
|
4
|
+
import { UserIcon, DownArrowIcon, NorwayIcon, UKIcon, ChannelsIcon, LogOutIcon } from '@entur/icons';
|
|
5
5
|
import { SecondaryButton, Button, PrimaryButton, ButtonGroup } from '@entur/button';
|
|
6
|
-
import { Link as Link$2,
|
|
6
|
+
import { useNavigate, Link as Link$2, useInRouterContext, useBlocker } from 'react-router-dom';
|
|
7
7
|
import { SearchableDropdown } from '@entur/dropdown';
|
|
8
8
|
import { SegmentedControl, SegmentedChoice } from '@entur/form';
|
|
9
9
|
import { assertIsDefined, localeDate, localeDateTime, isDate, isDateString, isString, hasAllPermissions, hasOneOfPermissions, splitUrlPath } from '@entur-partner/util';
|
|
@@ -300,97 +300,51 @@ var Content = function Content(_ref) {
|
|
|
300
300
|
}, children);
|
|
301
301
|
};
|
|
302
302
|
|
|
303
|
+
function useOutsideClick(ref, buttonRef, handler) {
|
|
304
|
+
React.useEffect(function () {
|
|
305
|
+
var listener = function listener(event) {
|
|
306
|
+
if (elementContainsEventTarget(ref.current, event) || elementContainsEventTarget(buttonRef.current, event)) {
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
handler();
|
|
310
|
+
};
|
|
311
|
+
document.addEventListener('mousedown', listener);
|
|
312
|
+
document.addEventListener('touchstart', listener);
|
|
313
|
+
return function () {
|
|
314
|
+
document.removeEventListener('mousedown', listener);
|
|
315
|
+
document.removeEventListener('touchstart', listener);
|
|
316
|
+
};
|
|
317
|
+
}, [ref, buttonRef, handler]);
|
|
318
|
+
}
|
|
319
|
+
function elementContainsEventTarget(element, event) {
|
|
320
|
+
if (!element) {
|
|
321
|
+
return false;
|
|
322
|
+
}
|
|
323
|
+
if (element.contains(event.target)) {
|
|
324
|
+
return true;
|
|
325
|
+
}
|
|
326
|
+
// For elements inside a Shadow DOM we need to check the composedPath
|
|
327
|
+
if (event.composed && event.composedPath) {
|
|
328
|
+
var contains = event.composedPath().find(function (target) {
|
|
329
|
+
if (target === window) {
|
|
330
|
+
return false;
|
|
331
|
+
}
|
|
332
|
+
return element.contains(target);
|
|
333
|
+
});
|
|
334
|
+
return !!contains;
|
|
335
|
+
}
|
|
336
|
+
return false;
|
|
337
|
+
}
|
|
338
|
+
|
|
303
339
|
var _excluded$b = ["className", "children", "userName", "open", "onOpenChange", "environment"];
|
|
304
|
-
var
|
|
340
|
+
var CustomOverflowMenu = function CustomOverflowMenu(_ref) {
|
|
305
341
|
var className = _ref.className,
|
|
306
|
-
|
|
307
|
-
onLogout = _ref.onLogout,
|
|
308
|
-
onLanguageChange = _ref.onLanguageChange,
|
|
342
|
+
children = _ref.children,
|
|
309
343
|
userName = _ref.userName,
|
|
310
|
-
|
|
344
|
+
open = _ref.open,
|
|
345
|
+
onOpenChange = _ref.onOpenChange,
|
|
311
346
|
environment = _ref.environment,
|
|
312
|
-
|
|
313
|
-
showMyProfileItem = _ref.showMyProfileItem,
|
|
314
|
-
onNavigateToMyProfile = _ref.onNavigateToMyProfile;
|
|
315
|
-
var triggerClassList = cx(['eps-user-menu__trigger-button', className]);
|
|
316
|
-
var _useState = useState(false),
|
|
317
|
-
open = _useState[0],
|
|
318
|
-
setOpen = _useState[1];
|
|
319
|
-
return React.createElement("div", {
|
|
320
|
-
id: "eps-user-menu"
|
|
321
|
-
}, React.createElement(CustomOverflowMenu, {
|
|
322
|
-
open: open,
|
|
323
|
-
onOpenChange: setOpen,
|
|
324
|
-
className: triggerClassList,
|
|
325
|
-
userName: userName,
|
|
326
|
-
environment: environment
|
|
327
|
-
}, React.createElement("div", {
|
|
328
|
-
id: "eps-overflow-menu"
|
|
329
|
-
}, language === 'en' ? React.createElement(CustomOverflowMenuItem, {
|
|
330
|
-
onClick: function onClick() {
|
|
331
|
-
onLanguageChange('nb');
|
|
332
|
-
setOpen(false);
|
|
333
|
-
},
|
|
334
|
-
className: "eps-overflow-menu__item"
|
|
335
|
-
}, React.createElement("span", {
|
|
336
|
-
"aria-hidden": true,
|
|
337
|
-
className: "eps-overflow-menu__icon-margin"
|
|
338
|
-
}, React.createElement(NorwayIcon, {
|
|
339
|
-
size: "1rem",
|
|
340
|
-
inline: true
|
|
341
|
-
})), messages.switchLanguage) : React.createElement(CustomOverflowMenuItem, {
|
|
342
|
-
onClick: function onClick() {
|
|
343
|
-
onLanguageChange('en');
|
|
344
|
-
setOpen(false);
|
|
345
|
-
},
|
|
346
|
-
className: "eps-overflow-menu__item"
|
|
347
|
-
}, React.createElement("span", {
|
|
348
|
-
"aria-hidden": true,
|
|
349
|
-
className: "eps-overflow-menu__icon-margin"
|
|
350
|
-
}, React.createElement(UKIcon, {
|
|
351
|
-
size: "1rem",
|
|
352
|
-
inline: true
|
|
353
|
-
})), messages.switchLanguage), showVersionItem && messages.appVersion && React.createElement(VersionCustomOverflowMenuItems, {
|
|
354
|
-
title: messages.appVersion,
|
|
355
|
-
setOpen: setOpen
|
|
356
|
-
}), showMyProfileItem && messages.myProfile && React.createElement(Link$2, {
|
|
357
|
-
to: "/permission-admin/my-profile",
|
|
358
|
-
style: {
|
|
359
|
-
textDecoration: 'none'
|
|
360
|
-
}
|
|
361
|
-
}, React.createElement(CustomOverflowMenuItem, {
|
|
362
|
-
onClick: function onClick() {
|
|
363
|
-
setOpen(false);
|
|
364
|
-
onNavigateToMyProfile();
|
|
365
|
-
},
|
|
366
|
-
className: "eps-overflow-menu__item"
|
|
367
|
-
}, React.createElement("span", {
|
|
368
|
-
"aria-hidden": true
|
|
369
|
-
}, React.createElement(UserIcon, {
|
|
370
|
-
size: "1rem",
|
|
371
|
-
inline: true
|
|
372
|
-
})), messages.myProfile)), React.createElement(CustomOverflowMenuItem, {
|
|
373
|
-
onClick: function onClick() {
|
|
374
|
-
onLogout();
|
|
375
|
-
setOpen(false);
|
|
376
|
-
},
|
|
377
|
-
"data-testid": "user-menu-logout",
|
|
378
|
-
className: "eps-overflow-menu__item"
|
|
379
|
-
}, React.createElement("span", {
|
|
380
|
-
"aria-hidden": true
|
|
381
|
-
}, React.createElement(LogOutIcon, {
|
|
382
|
-
size: "1rem",
|
|
383
|
-
inline: true
|
|
384
|
-
})), messages.logout))));
|
|
385
|
-
};
|
|
386
|
-
var CustomOverflowMenu = function CustomOverflowMenu(_ref2) {
|
|
387
|
-
var className = _ref2.className,
|
|
388
|
-
children = _ref2.children,
|
|
389
|
-
userName = _ref2.userName,
|
|
390
|
-
open = _ref2.open,
|
|
391
|
-
onOpenChange = _ref2.onOpenChange,
|
|
392
|
-
environment = _ref2.environment,
|
|
393
|
-
rest = _objectWithoutPropertiesLoose(_ref2, _excluded$b);
|
|
347
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$b);
|
|
394
348
|
var overflowItemsClasses = cx('eps-overflow-menu__group', {
|
|
395
349
|
'eps-overflow-menu__group--open': open
|
|
396
350
|
});
|
|
@@ -431,15 +385,52 @@ var CustomOverflowMenu = function CustomOverflowMenu(_ref2) {
|
|
|
431
385
|
ref: overflowContentRef
|
|
432
386
|
}, children));
|
|
433
387
|
};
|
|
388
|
+
|
|
434
389
|
var CustomOverflowMenuItem = function CustomOverflowMenuItem(props) {
|
|
435
390
|
return React.createElement("button", _extends({
|
|
436
391
|
className: cx(props.className, 'eps-overflow-menu__item'),
|
|
437
392
|
role: "menuitem"
|
|
438
393
|
}, props));
|
|
439
394
|
};
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
395
|
+
|
|
396
|
+
var LanguageSwitchMenuItem = function LanguageSwitchMenuItem(_ref) {
|
|
397
|
+
var language = _ref.language,
|
|
398
|
+
onLanguageChange = _ref.onLanguageChange,
|
|
399
|
+
setOpen = _ref.setOpen,
|
|
400
|
+
name = _ref.name;
|
|
401
|
+
var useB47LanguageKey = useFeatureToggle('USE_BCP-47_LANGUAGE_KEY');
|
|
402
|
+
var norwegianLanguageKey = useB47LanguageKey ? 'nb-NO' : 'nb';
|
|
403
|
+
var englishLanguageKey = useB47LanguageKey ? 'en-GB' : 'en';
|
|
404
|
+
return React.createElement(React.Fragment, null, language === englishLanguageKey ? React.createElement(CustomOverflowMenuItem, {
|
|
405
|
+
onClick: function onClick() {
|
|
406
|
+
onLanguageChange(norwegianLanguageKey);
|
|
407
|
+
setOpen(false);
|
|
408
|
+
},
|
|
409
|
+
className: "eps-overflow-menu__item"
|
|
410
|
+
}, React.createElement("span", {
|
|
411
|
+
"aria-hidden": true,
|
|
412
|
+
className: "eps-overflow-menu__icon-margin"
|
|
413
|
+
}, React.createElement(NorwayIcon, {
|
|
414
|
+
size: "1rem",
|
|
415
|
+
inline: true
|
|
416
|
+
})), name) : React.createElement(CustomOverflowMenuItem, {
|
|
417
|
+
onClick: function onClick() {
|
|
418
|
+
onLanguageChange(englishLanguageKey);
|
|
419
|
+
setOpen(false);
|
|
420
|
+
},
|
|
421
|
+
className: "eps-overflow-menu__item"
|
|
422
|
+
}, React.createElement("span", {
|
|
423
|
+
"aria-hidden": true,
|
|
424
|
+
className: "eps-overflow-menu__icon-margin"
|
|
425
|
+
}, React.createElement(UKIcon, {
|
|
426
|
+
size: "1rem",
|
|
427
|
+
inline: true
|
|
428
|
+
})), name));
|
|
429
|
+
};
|
|
430
|
+
|
|
431
|
+
var VersionMenuItem = function VersionMenuItem(_ref) {
|
|
432
|
+
var title = _ref.title,
|
|
433
|
+
setOpen = _ref.setOpen;
|
|
443
434
|
var navigate = useNavigate(); // Hide useNavigate from standalone micro-frontends because it is not under RouterProvider
|
|
444
435
|
return React.createElement(CustomOverflowMenuItem, {
|
|
445
436
|
onClick: function onClick() {
|
|
@@ -455,41 +446,92 @@ var VersionCustomOverflowMenuItems = function VersionCustomOverflowMenuItems(_re
|
|
|
455
446
|
inline: true
|
|
456
447
|
})), title);
|
|
457
448
|
};
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
}
|
|
491
|
-
|
|
492
|
-
|
|
449
|
+
|
|
450
|
+
var UserMenuItem = function UserMenuItem(_ref) {
|
|
451
|
+
var name = _ref.name,
|
|
452
|
+
setOpen = _ref.setOpen,
|
|
453
|
+
onNavigateToMyProfile = _ref.onNavigateToMyProfile;
|
|
454
|
+
return React.createElement(Link$2, {
|
|
455
|
+
to: "/permission-admin/my-profile",
|
|
456
|
+
style: {
|
|
457
|
+
textDecoration: 'none'
|
|
458
|
+
}
|
|
459
|
+
}, React.createElement(CustomOverflowMenuItem, {
|
|
460
|
+
onClick: function onClick() {
|
|
461
|
+
setOpen(false);
|
|
462
|
+
onNavigateToMyProfile();
|
|
463
|
+
},
|
|
464
|
+
className: "eps-overflow-menu__item"
|
|
465
|
+
}, React.createElement("span", {
|
|
466
|
+
"aria-hidden": true
|
|
467
|
+
}, React.createElement(UserIcon, {
|
|
468
|
+
size: "1rem",
|
|
469
|
+
inline: true
|
|
470
|
+
})), name));
|
|
471
|
+
};
|
|
472
|
+
|
|
473
|
+
var LogOutMenuItem = function LogOutMenuItem(_ref) {
|
|
474
|
+
var name = _ref.name,
|
|
475
|
+
setOpen = _ref.setOpen,
|
|
476
|
+
onLogout = _ref.onLogout;
|
|
477
|
+
return React.createElement(CustomOverflowMenuItem, {
|
|
478
|
+
onClick: function onClick() {
|
|
479
|
+
onLogout();
|
|
480
|
+
setOpen(false);
|
|
481
|
+
},
|
|
482
|
+
"data-testid": "user-menu-logout",
|
|
483
|
+
className: "eps-overflow-menu__item"
|
|
484
|
+
}, React.createElement("span", {
|
|
485
|
+
"aria-hidden": true
|
|
486
|
+
}, React.createElement(LogOutIcon, {
|
|
487
|
+
size: "1rem",
|
|
488
|
+
inline: true
|
|
489
|
+
})), name);
|
|
490
|
+
};
|
|
491
|
+
|
|
492
|
+
var UserMenu = function UserMenu(_ref) {
|
|
493
|
+
var className = _ref.className,
|
|
494
|
+
messages = _ref.messages,
|
|
495
|
+
onLogout = _ref.onLogout,
|
|
496
|
+
onLanguageChange = _ref.onLanguageChange,
|
|
497
|
+
userName = _ref.userName,
|
|
498
|
+
language = _ref.language,
|
|
499
|
+
environment = _ref.environment,
|
|
500
|
+
showVersionItem = _ref.showVersionItem,
|
|
501
|
+
showMyProfileItem = _ref.showMyProfileItem,
|
|
502
|
+
onNavigateToMyProfile = _ref.onNavigateToMyProfile;
|
|
503
|
+
var triggerClassList = cx(['eps-user-menu__trigger-button', className]);
|
|
504
|
+
var _useState = useState(false),
|
|
505
|
+
open = _useState[0],
|
|
506
|
+
setOpen = _useState[1];
|
|
507
|
+
return React.createElement("div", {
|
|
508
|
+
id: "eps-user-menu"
|
|
509
|
+
}, React.createElement(CustomOverflowMenu, {
|
|
510
|
+
open: open,
|
|
511
|
+
onOpenChange: setOpen,
|
|
512
|
+
className: triggerClassList,
|
|
513
|
+
userName: userName,
|
|
514
|
+
environment: environment
|
|
515
|
+
}, React.createElement("div", {
|
|
516
|
+
id: "eps-overflow-menu"
|
|
517
|
+
}, React.createElement(LanguageSwitchMenuItem, {
|
|
518
|
+
name: messages.switchLanguage,
|
|
519
|
+
language: language,
|
|
520
|
+
onLanguageChange: onLanguageChange,
|
|
521
|
+
setOpen: setOpen
|
|
522
|
+
}), showVersionItem && messages.appVersion && React.createElement(VersionMenuItem, {
|
|
523
|
+
title: messages.appVersion,
|
|
524
|
+
setOpen: setOpen
|
|
525
|
+
}), showMyProfileItem && messages.myProfile && React.createElement(UserMenuItem, {
|
|
526
|
+
name: messages.myProfile,
|
|
527
|
+
setOpen: setOpen,
|
|
528
|
+
onNavigateToMyProfile: onNavigateToMyProfile
|
|
529
|
+
}), React.createElement(LogOutMenuItem, {
|
|
530
|
+
name: messages.logout,
|
|
531
|
+
setOpen: setOpen,
|
|
532
|
+
onLogout: onLogout
|
|
533
|
+
}))));
|
|
534
|
+
};
|
|
493
535
|
|
|
494
536
|
var _excluded$a = ["label", "organisations", "onChange", "selectedOrganisationId"];
|
|
495
537
|
var OrganisationDropDown = function OrganisationDropDown(_ref) {
|