@iapps/ng-dhis2-ui 1.0.0

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.
Files changed (79) hide show
  1. package/README.md +7 -0
  2. package/esm2022/iapps-ng-dhis2-ui.mjs +5 -0
  3. package/esm2022/index.mjs +5 -0
  4. package/esm2022/lib/modules/app-shell/app-shell.component.mjs +33 -0
  5. package/esm2022/lib/modules/app-shell/app-shell.module.mjs +19 -0
  6. package/esm2022/lib/modules/app-shell/index.mjs +6 -0
  7. package/esm2022/lib/modules/button/button.component.mjs +55 -0
  8. package/esm2022/lib/modules/button/button.module.mjs +19 -0
  9. package/esm2022/lib/modules/button/index.mjs +6 -0
  10. package/esm2022/lib/modules/header-bar/header-bar.component.mjs +39 -0
  11. package/esm2022/lib/modules/header-bar/header-bar.module.mjs +19 -0
  12. package/esm2022/lib/modules/header-bar/index.mjs +6 -0
  13. package/esm2022/lib/modules/header-bar/models/header-bar-app.model.mjs +20 -0
  14. package/esm2022/lib/modules/header-bar/models/header-bar-data.model.mjs +46 -0
  15. package/esm2022/lib/modules/header-bar/models/header-bar-notification.model.mjs +11 -0
  16. package/esm2022/lib/modules/header-bar/models/index.mjs +6 -0
  17. package/esm2022/lib/modules/header-bar/utils/apps.mjs +221 -0
  18. package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-menu-item.mjs +51 -0
  19. package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-modal.mjs +30 -0
  20. package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-table.mjs +39 -0
  21. package/esm2022/lib/modules/header-bar/utils/debug-info/use-debug-info.mjs +12 -0
  22. package/esm2022/lib/modules/header-bar/utils/header-bar-context.mjs +17 -0
  23. package/esm2022/lib/modules/header-bar/utils/header-bar.mjs +56 -0
  24. package/esm2022/lib/modules/header-bar/utils/join-path.mjs +5 -0
  25. package/esm2022/lib/modules/header-bar/utils/logo-image.mjs +52 -0
  26. package/esm2022/lib/modules/header-bar/utils/logo.mjs +35 -0
  27. package/esm2022/lib/modules/header-bar/utils/notification-icon.mjs +76 -0
  28. package/esm2022/lib/modules/header-bar/utils/notifications.mjs +35 -0
  29. package/esm2022/lib/modules/header-bar/utils/profile/use-on-doc-click.mjs +21 -0
  30. package/esm2022/lib/modules/header-bar/utils/profile-menu/index.mjs +2 -0
  31. package/esm2022/lib/modules/header-bar/utils/profile-menu/profile-header.mjs +95 -0
  32. package/esm2022/lib/modules/header-bar/utils/profile-menu/profile-menu.mjs +101 -0
  33. package/esm2022/lib/modules/header-bar/utils/profile-menu/update-notification.mjs +54 -0
  34. package/esm2022/lib/modules/header-bar/utils/profile.mjs +58 -0
  35. package/esm2022/lib/modules/header-bar/utils/title.mjs +22 -0
  36. package/esm2022/lib/ng-dhis2-ui.module.mjs +15 -0
  37. package/esm2022/lib/shared/components/index.mjs +7 -0
  38. package/esm2022/lib/shared/components/react-component-wrapper/react-wrapper.component.mjs +53 -0
  39. package/esm2022/lib/shared/shared.module.mjs +18 -0
  40. package/fesm2022/iapps-ng-dhis2-ui.mjs +1239 -0
  41. package/fesm2022/iapps-ng-dhis2-ui.mjs.map +1 -0
  42. package/index.d.ts +4 -0
  43. package/lib/modules/app-shell/app-shell.component.d.ts +8 -0
  44. package/lib/modules/app-shell/app-shell.module.d.ts +9 -0
  45. package/lib/modules/app-shell/index.d.ts +2 -0
  46. package/lib/modules/button/button.component.d.ts +19 -0
  47. package/lib/modules/button/button.module.d.ts +9 -0
  48. package/lib/modules/button/index.d.ts +2 -0
  49. package/lib/modules/header-bar/header-bar.component.d.ts +14 -0
  50. package/lib/modules/header-bar/header-bar.module.d.ts +9 -0
  51. package/lib/modules/header-bar/index.d.ts +2 -0
  52. package/lib/modules/header-bar/models/header-bar-app.model.d.ts +10 -0
  53. package/lib/modules/header-bar/models/header-bar-data.model.d.ts +16 -0
  54. package/lib/modules/header-bar/models/header-bar-notification.model.d.ts +5 -0
  55. package/lib/modules/header-bar/models/index.d.ts +2 -0
  56. package/lib/modules/header-bar/utils/apps.d.ts +16 -0
  57. package/lib/modules/header-bar/utils/debug-info/debug-info-menu-item.d.ts +15 -0
  58. package/lib/modules/header-bar/utils/debug-info/debug-info-modal.d.ts +8 -0
  59. package/lib/modules/header-bar/utils/debug-info/debug-info-table.d.ts +8 -0
  60. package/lib/modules/header-bar/utils/debug-info/use-debug-info.d.ts +7 -0
  61. package/lib/modules/header-bar/utils/header-bar-context.d.ts +14 -0
  62. package/lib/modules/header-bar/utils/header-bar.d.ts +19 -0
  63. package/lib/modules/header-bar/utils/join-path.d.ts +1 -0
  64. package/lib/modules/header-bar/utils/logo-image.d.ts +8 -0
  65. package/lib/modules/header-bar/utils/logo.d.ts +12 -0
  66. package/lib/modules/header-bar/utils/notification-icon.d.ts +21 -0
  67. package/lib/modules/header-bar/utils/notifications.d.ts +16 -0
  68. package/lib/modules/header-bar/utils/profile/use-on-doc-click.d.ts +1 -0
  69. package/lib/modules/header-bar/utils/profile-menu/index.d.ts +1 -0
  70. package/lib/modules/header-bar/utils/profile-menu/profile-header.d.ts +16 -0
  71. package/lib/modules/header-bar/utils/profile-menu/profile-menu.d.ts +13 -0
  72. package/lib/modules/header-bar/utils/profile-menu/update-notification.d.ts +14 -0
  73. package/lib/modules/header-bar/utils/profile.d.ts +18 -0
  74. package/lib/modules/header-bar/utils/title.d.ts +15 -0
  75. package/lib/ng-dhis2-ui.module.d.ts +7 -0
  76. package/lib/shared/components/index.d.ts +3 -0
  77. package/lib/shared/components/react-component-wrapper/react-wrapper.component.d.ts +19 -0
  78. package/lib/shared/shared.module.d.ts +7 -0
  79. package/package.json +38 -0
@@ -0,0 +1,51 @@
1
+ import { MenuItem } from '@dhis2-ui/menu';
2
+ import { colors } from '@dhis2/ui-constants';
3
+ import PropTypes from 'prop-types';
4
+ import React from 'react';
5
+ import i18n from '@dhis2/d2-i18n';
6
+ import { useDebugInfo } from './use-debug-info';
7
+ export const DebugInfoMenuItem = (params) => {
8
+ const { hideProfileMenu, showDebugInfoModal } = params;
9
+ const debugInfo = useDebugInfo();
10
+ const openDebugModal = () => {
11
+ hideProfileMenu();
12
+ showDebugInfoModal();
13
+ };
14
+ const debugInfoLabel = (React.createElement("div", { className: "root" },
15
+ React.createElement("div", { className: "instance-info version", "data-test": "dhis2-ui-headerbar-instanceinfo" }, debugInfo.dhis2_version
16
+ ? i18n.t('DHIS2 {{dhis2Version}}', {
17
+ dhis2Version: debugInfo.dhis2_version,
18
+ })
19
+ : i18n.t('DHIS2 version unknown')),
20
+ React.createElement("div", { className: "version", "data-test": "dhis2-ui-headerbar-appinfo" }, debugInfo.app_name
21
+ ? debugInfo.app_version
22
+ ? `${debugInfo.app_name} ${debugInfo.app_version}`
23
+ : i18n.t('{{appName}} version unknown', {
24
+ appName: debugInfo.app_name,
25
+ })
26
+ : debugInfo.app_version
27
+ ? i18n.t('App {{appVersion}}', {
28
+ appVersion: debugInfo.app_version,
29
+ })
30
+ : i18n.t('App version unknown')),
31
+ React.createElement("style", { jsx: true }, `
32
+ .root {
33
+ color: ${colors.grey700};
34
+ font-style: italic;
35
+ font-size: 14px;
36
+ line-height: 17px;
37
+ }
38
+ .instance-info {
39
+ margin-bottom: 4px;
40
+ }
41
+ .version {
42
+ white-space: no-wrap;
43
+ }
44
+ `)));
45
+ return (React.createElement(MenuItem, { dense: true, onClick: openDebugModal, label: debugInfoLabel, dataTest: "dhis2-ui-headerbar-debuginfo" }));
46
+ };
47
+ DebugInfoMenuItem.propTypes = {
48
+ hideProfileMenu: PropTypes.func.isRequired,
49
+ showDebugInfoModal: PropTypes.func.isRequired,
50
+ };
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWctaW5mby1tZW51LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvaGVhZGVyLWJhci91dGlscy9kZWJ1Zy1pbmZvL2RlYnVnLWluZm8tbWVudS1pdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxJQUFJLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBUWhELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsTUFBVyxFQUFFLEVBQUU7SUFDL0MsTUFBTSxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUN2RCxNQUFNLFNBQVMsR0FBRyxZQUFZLEVBQUUsQ0FBQztJQUVqQyxNQUFNLGNBQWMsR0FBRyxHQUFHLEVBQUU7UUFDMUIsZUFBZSxFQUFFLENBQUM7UUFDbEIsa0JBQWtCLEVBQUUsQ0FBQztJQUN2QixDQUFDLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxDQUNyQiw2QkFBSyxTQUFTLEVBQUMsTUFBTTtRQUNuQiw2QkFDRSxTQUFTLEVBQUMsdUJBQXVCLGVBQ3ZCLGlDQUFpQyxJQUUxQyxTQUFTLENBQUMsYUFBYTtZQUN0QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsRUFBRTtnQkFDL0IsWUFBWSxFQUFFLFNBQVMsQ0FBQyxhQUFhO2FBQ3RDLENBQUM7WUFDSixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUMvQjtRQUNOLDZCQUFLLFNBQVMsRUFBQyxTQUFTLGVBQVcsNEJBQTRCLElBQzVELFNBQVMsQ0FBQyxRQUFRO1lBQ2pCLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVztnQkFDckIsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLFFBQVEsSUFBSSxTQUFTLENBQUMsV0FBVyxFQUFFO2dCQUNsRCxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsRUFBRTtvQkFDcEMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxRQUFRO2lCQUM1QixDQUFDO1lBQ04sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXO2dCQUN2QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsRUFBRTtvQkFDM0IsVUFBVSxFQUFFLFNBQVMsQ0FBQyxXQUFXO2lCQUNsQyxDQUFDO2dCQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBRTdCO1FBQ04sK0JBQU8sR0FBRyxVQUFFOzs2QkFFVyxNQUFNLENBQUMsT0FBTzs7Ozs7Ozs7Ozs7YUFXOUIsQ0FBUyxDQUNaLENBQ1AsQ0FBQztJQUVGLE9BQU8sQ0FDTCxvQkFBQyxRQUFRLElBQ1AsS0FBSyxRQUNMLE9BQU8sRUFBRSxjQUFjLEVBQ3ZCLEtBQUssRUFBRSxjQUFjLEVBQ3JCLFFBQVEsRUFBQyw4QkFBOEIsR0FDdkMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsaUJBQWlCLENBQUMsU0FBUyxHQUFHO0lBQzVCLGVBQWUsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVU7SUFDMUMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVO0NBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ0BkaGlzMi11aS9tZW51JztcbmltcG9ydCB7IGNvbG9ycyB9IGZyb20gJ0BkaGlzMi91aS1jb25zdGFudHMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgaTE4biBmcm9tICdAZGhpczIvZDItaTE4bic7XG5pbXBvcnQgeyB1c2VEZWJ1Z0luZm8gfSBmcm9tICcuL3VzZS1kZWJ1Zy1pbmZvJztcbmRlY2xhcmUgbW9kdWxlICdyZWFjdCcge1xuICBpbnRlcmZhY2UgU3R5bGVIVE1MQXR0cmlidXRlczxUPiBleHRlbmRzIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPFQ+IHtcbiAgICBqc3g/OiBib29sZWFuO1xuICAgIGdsb2JhbD86IGJvb2xlYW47XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IERlYnVnSW5mb01lbnVJdGVtID0gKHBhcmFtczogYW55KSA9PiB7XG4gIGNvbnN0IHsgaGlkZVByb2ZpbGVNZW51LCBzaG93RGVidWdJbmZvTW9kYWwgfSA9IHBhcmFtcztcbiAgY29uc3QgZGVidWdJbmZvID0gdXNlRGVidWdJbmZvKCk7XG5cbiAgY29uc3Qgb3BlbkRlYnVnTW9kYWwgPSAoKSA9PiB7XG4gICAgaGlkZVByb2ZpbGVNZW51KCk7XG4gICAgc2hvd0RlYnVnSW5mb01vZGFsKCk7XG4gIH07XG5cbiAgY29uc3QgZGVidWdJbmZvTGFiZWwgPSAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJyb290XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cImluc3RhbmNlLWluZm8gdmVyc2lvblwiXG4gICAgICAgIGRhdGEtdGVzdD1cImRoaXMyLXVpLWhlYWRlcmJhci1pbnN0YW5jZWluZm9cIlxuICAgICAgPlxuICAgICAgICB7ZGVidWdJbmZvLmRoaXMyX3ZlcnNpb25cbiAgICAgICAgICA/IGkxOG4udCgnREhJUzIge3tkaGlzMlZlcnNpb259fScsIHtcbiAgICAgICAgICAgICAgZGhpczJWZXJzaW9uOiBkZWJ1Z0luZm8uZGhpczJfdmVyc2lvbixcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBpMThuLnQoJ0RISVMyIHZlcnNpb24gdW5rbm93bicpfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInZlcnNpb25cIiBkYXRhLXRlc3Q9XCJkaGlzMi11aS1oZWFkZXJiYXItYXBwaW5mb1wiPlxuICAgICAgICB7ZGVidWdJbmZvLmFwcF9uYW1lXG4gICAgICAgICAgPyBkZWJ1Z0luZm8uYXBwX3ZlcnNpb25cbiAgICAgICAgICAgID8gYCR7ZGVidWdJbmZvLmFwcF9uYW1lfSAke2RlYnVnSW5mby5hcHBfdmVyc2lvbn1gXG4gICAgICAgICAgICA6IGkxOG4udCgne3thcHBOYW1lfX0gdmVyc2lvbiB1bmtub3duJywge1xuICAgICAgICAgICAgICAgIGFwcE5hbWU6IGRlYnVnSW5mby5hcHBfbmFtZSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGRlYnVnSW5mby5hcHBfdmVyc2lvblxuICAgICAgICAgID8gaTE4bi50KCdBcHAge3thcHBWZXJzaW9ufX0nLCB7XG4gICAgICAgICAgICAgIGFwcFZlcnNpb246IGRlYnVnSW5mby5hcHBfdmVyc2lvbixcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBpMThuLnQoJ0FwcCB2ZXJzaW9uIHVua25vd24nKX1cbiAgICAgICAge31cbiAgICAgIDwvZGl2PlxuICAgICAgPHN0eWxlIGpzeD57YFxuICAgICAgICAgICAgICAgIC5yb290IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR7Y29sb3JzLmdyZXk3MDB9O1xuICAgICAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5pbnN0YW5jZS1pbmZvIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAudmVyc2lvbiB7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBuby13cmFwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGB9PC9zdHlsZT5cbiAgICA8L2Rpdj5cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxNZW51SXRlbVxuICAgICAgZGVuc2VcbiAgICAgIG9uQ2xpY2s9e29wZW5EZWJ1Z01vZGFsfVxuICAgICAgbGFiZWw9e2RlYnVnSW5mb0xhYmVsfVxuICAgICAgZGF0YVRlc3Q9XCJkaGlzMi11aS1oZWFkZXJiYXItZGVidWdpbmZvXCJcbiAgICAvPlxuICApO1xufTtcblxuRGVidWdJbmZvTWVudUl0ZW0ucHJvcFR5cGVzID0ge1xuICBoaWRlUHJvZmlsZU1lbnU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNob3dEZWJ1Z0luZm9Nb2RhbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn07XG4iXX0=
@@ -0,0 +1,30 @@
1
+ import { Button, ButtonStrip } from '@dhis2-ui/button';
2
+ import { Modal, ModalActions, ModalContent, ModalTitle } from '@dhis2-ui/modal';
3
+ import { useAlert } from '@dhis2/app-runtime';
4
+ import i18n from '@dhis2/d2-i18n';
5
+ import PropTypes from 'prop-types';
6
+ import React from 'react';
7
+ import { DebugInfoTable } from './debug-info-table';
8
+ import { useFormattedDebugInfo } from './use-debug-info';
9
+ export function DebugInfoModal(params) {
10
+ const { onClose } = params;
11
+ const debugInfo = useFormattedDebugInfo();
12
+ const { show: showClipboardAlert } = useAlert('Debug information copied to clipboard', { duration: 3000 });
13
+ const copyDebugInfo = () => {
14
+ navigator.clipboard.writeText(debugInfo);
15
+ onClose();
16
+ showClipboardAlert();
17
+ };
18
+ return (React.createElement(Modal, { position: "middle", dataTest: "dhis2-ui-headerbar-debuginfomodal" },
19
+ React.createElement(ModalTitle, null, i18n.t('Debug info')),
20
+ React.createElement(ModalContent, null,
21
+ React.createElement(DebugInfoTable, null)),
22
+ React.createElement(ModalActions, null,
23
+ React.createElement(ButtonStrip, { end: true },
24
+ React.createElement(Button, { onClick: () => onClose() }, i18n.t('Close')),
25
+ React.createElement(Button, { primary: true, onClick: copyDebugInfo, dataTest: "dhis2-ui-headerbar-debuginfomodal-copybutton" }, i18n.t('Copy debug info'))))));
26
+ }
27
+ DebugInfoModal.propTypes = {
28
+ onClose: PropTypes.func.isRequired,
29
+ };
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWctaW5mby1tb2RhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9oZWFkZXItYmFyL3V0aWxzL2RlYnVnLWluZm8vZGVidWctaW5mby1tb2RhbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sSUFBSSxNQUFNLGdCQUFnQixDQUFBO0FBQ2pDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUE7QUFDekIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRXhELE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBVztJQUN0QyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUksTUFBTSxDQUFDO0lBQzVCLE1BQU0sU0FBUyxHQUFHLHFCQUFxQixFQUFFLENBQUE7SUFDekMsTUFBTSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxHQUFHLFFBQVEsQ0FDekMsdUNBQXVDLEVBQ3ZDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUNyQixDQUFBO0lBRUQsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO1FBQ3ZCLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3hDLE9BQU8sRUFBRSxDQUFBO1FBQ1Qsa0JBQWtCLEVBQUUsQ0FBQTtJQUN4QixDQUFDLENBQUE7SUFFRCxPQUFPLENBQ0gsb0JBQUMsS0FBSyxJQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLG1DQUFtQztRQUNqRSxvQkFBQyxVQUFVLFFBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBYztRQUMvQyxvQkFBQyxZQUFZO1lBQ1Qsb0JBQUMsY0FBYyxPQUFHLENBQ1A7UUFDZixvQkFBQyxZQUFZO1lBQ1Qsb0JBQUMsV0FBVyxJQUFDLEdBQUc7Z0JBQ1osb0JBQUMsTUFBTSxJQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFVO2dCQUM1RCxvQkFBQyxNQUFNLElBQ0gsT0FBTyxRQUNQLE9BQU8sRUFBRSxhQUFhLEVBQ3RCLFFBQVEsRUFBQyw4Q0FBOEMsSUFFdEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUNyQixDQUNDLENBQ0gsQ0FDWCxDQUNYLENBQUE7QUFDTCxDQUFDO0FBRUQsY0FBYyxDQUFDLFNBQVMsR0FBRztJQUN2QixPQUFPLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVO0NBQ3JDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdXR0b24sIEJ1dHRvblN0cmlwIH0gZnJvbSAnQGRoaXMyLXVpL2J1dHRvbidcbmltcG9ydCB7IE1vZGFsLCBNb2RhbEFjdGlvbnMsIE1vZGFsQ29udGVudCwgTW9kYWxUaXRsZSB9IGZyb20gJ0BkaGlzMi11aS9tb2RhbCdcbmltcG9ydCB7IHVzZUFsZXJ0IH0gZnJvbSAnQGRoaXMyL2FwcC1ydW50aW1lJ1xuaW1wb3J0IGkxOG4gZnJvbSAnQGRoaXMyL2QyLWkxOG4nXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBEZWJ1Z0luZm9UYWJsZSB9IGZyb20gJy4vZGVidWctaW5mby10YWJsZSdcbmltcG9ydCB7IHVzZUZvcm1hdHRlZERlYnVnSW5mbyB9IGZyb20gJy4vdXNlLWRlYnVnLWluZm8nXG5cbmV4cG9ydCBmdW5jdGlvbiBEZWJ1Z0luZm9Nb2RhbChwYXJhbXM6IGFueSkge1xuICAgIGNvbnN0IHsgb25DbG9zZSB9ICA9IHBhcmFtcztcbiAgICBjb25zdCBkZWJ1Z0luZm8gPSB1c2VGb3JtYXR0ZWREZWJ1Z0luZm8oKVxuICAgIGNvbnN0IHsgc2hvdzogc2hvd0NsaXBib2FyZEFsZXJ0IH0gPSB1c2VBbGVydChcbiAgICAgICAgJ0RlYnVnIGluZm9ybWF0aW9uIGNvcGllZCB0byBjbGlwYm9hcmQnLFxuICAgICAgICB7IGR1cmF0aW9uOiAzMDAwIH1cbiAgICApXG5cbiAgICBjb25zdCBjb3B5RGVidWdJbmZvID0gKCkgPT4ge1xuICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChkZWJ1Z0luZm8pXG4gICAgICAgIG9uQ2xvc2UoKVxuICAgICAgICBzaG93Q2xpcGJvYXJkQWxlcnQoKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDxNb2RhbCBwb3NpdGlvbj1cIm1pZGRsZVwiIGRhdGFUZXN0PVwiZGhpczItdWktaGVhZGVyYmFyLWRlYnVnaW5mb21vZGFsXCI+XG4gICAgICAgICAgICA8TW9kYWxUaXRsZT57aTE4bi50KCdEZWJ1ZyBpbmZvJyl9PC9Nb2RhbFRpdGxlPlxuICAgICAgICAgICAgPE1vZGFsQ29udGVudD5cbiAgICAgICAgICAgICAgICA8RGVidWdJbmZvVGFibGUgLz5cbiAgICAgICAgICAgIDwvTW9kYWxDb250ZW50PlxuICAgICAgICAgICAgPE1vZGFsQWN0aW9ucz5cbiAgICAgICAgICAgICAgICA8QnV0dG9uU3RyaXAgZW5kPlxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9eygpID0+IG9uQ2xvc2UoKX0+e2kxOG4udCgnQ2xvc2UnKX08L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17Y29weURlYnVnSW5mb31cbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFUZXN0PVwiZGhpczItdWktaGVhZGVyYmFyLWRlYnVnaW5mb21vZGFsLWNvcHlidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7aTE4bi50KCdDb3B5IGRlYnVnIGluZm8nKX1cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgPC9CdXR0b25TdHJpcD5cbiAgICAgICAgICAgIDwvTW9kYWxBY3Rpb25zPlxuICAgICAgICA8L01vZGFsPlxuICAgIClcbn1cblxuRGVidWdJbmZvTW9kYWwucHJvcFR5cGVzID0ge1xuICAgIG9uQ2xvc2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59XG4iXX0=
@@ -0,0 +1,39 @@
1
+ import { colors } from '@dhis2/ui-constants';
2
+ import React from 'react';
3
+ import { useDebugInfo } from './use-debug-info';
4
+ const formatDebugInfoKey = (key) => {
5
+ const tokens = key.split('_');
6
+ return tokens
7
+ .map((token) => {
8
+ if (token.toLowerCase() === 'dhis2') {
9
+ return 'DHIS2';
10
+ }
11
+ else {
12
+ return token[0].toUpperCase() + token.substr(1).toLowerCase();
13
+ }
14
+ })
15
+ .join(' ');
16
+ };
17
+ export function DebugInfoTable() {
18
+ const debugInfo = useDebugInfo();
19
+ return (React.createElement("table", { 'data-test': 'dhis2-ui-headerbar-debuginfotable' },
20
+ React.createElement("tbody", null, Object.keys(debugInfo).map((key) => (React.createElement("tr", { key: key },
21
+ React.createElement("td", { className: "debug-info-key" }, formatDebugInfoKey(key)),
22
+ React.createElement("td", null, debugInfo[key]))))),
23
+ React.createElement("style", { jsx: true }, `
24
+ table {
25
+ white-space: pre-wrap;
26
+ font-size: 14px;
27
+ line-height: 1.2;
28
+ color: ${colors.grey700};
29
+ font-famile: Menlo, Courier, monospace !important;
30
+ }
31
+ td {
32
+ padding: 3px 16px 3px 0;
33
+ }
34
+ .debug-info-key {
35
+ font-weight: bold;
36
+ }
37
+ `)));
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWctaW5mby10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9oZWFkZXItYmFyL3V0aWxzL2RlYnVnLWluZm8vZGVidWctaW5mby10YWJsZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFRaEQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQVEsRUFBRSxFQUFFO0lBQ3RDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsT0FBTyxNQUFNO1NBQ1YsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7UUFDbEIsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssT0FBTyxFQUFFO1lBQ25DLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQy9EO0lBQ0gsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLGNBQWM7SUFDNUIsTUFBTSxTQUFTLEdBQUcsWUFBWSxFQUFTLENBQUM7SUFDeEMsT0FBTyxDQUNMLCtCQUFhLFdBQVcsRUFBRSxtQ0FBbUM7UUFDM0QsbUNBQ0csTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQ25DLDRCQUFJLEdBQUcsRUFBRSxHQUFHO1lBQ1YsNEJBQUksU0FBUyxFQUFDLGdCQUFnQixJQUFFLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFNO1lBQzdELGdDQUFLLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBTSxDQUN0QixDQUNOLENBQUMsQ0FDSTtRQUNSLCtCQUFPLEdBQUcsVUFBRTs7Ozs7NkJBS1csTUFBTSxDQUFDLE9BQU87Ozs7Ozs7OzthQVM5QixDQUFTLENBQ1YsQ0FDVCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbG9ycyB9IGZyb20gJ0BkaGlzMi91aS1jb25zdGFudHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURlYnVnSW5mbyB9IGZyb20gJy4vdXNlLWRlYnVnLWluZm8nO1xuZGVjbGFyZSBtb2R1bGUgJ3JlYWN0JyB7XG4gIGludGVyZmFjZSBTdHlsZUhUTUxBdHRyaWJ1dGVzPFQ+IGV4dGVuZHMgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8VD4ge1xuICAgIGpzeD86IGJvb2xlYW47XG4gICAgZ2xvYmFsPzogYm9vbGVhbjtcbiAgfVxufVxuXG5jb25zdCBmb3JtYXREZWJ1Z0luZm9LZXkgPSAoa2V5OiBhbnkpID0+IHtcbiAgY29uc3QgdG9rZW5zID0ga2V5LnNwbGl0KCdfJyk7XG4gIHJldHVybiB0b2tlbnNcbiAgICAubWFwKCh0b2tlbjogYW55KSA9PiB7XG4gICAgICBpZiAodG9rZW4udG9Mb3dlckNhc2UoKSA9PT0gJ2RoaXMyJykge1xuICAgICAgICByZXR1cm4gJ0RISVMyJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0b2tlblswXS50b1VwcGVyQ2FzZSgpICsgdG9rZW4uc3Vic3RyKDEpLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG4gICAgfSlcbiAgICAuam9pbignICcpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIERlYnVnSW5mb1RhYmxlKCkge1xuICBjb25zdCBkZWJ1Z0luZm8gPSB1c2VEZWJ1Z0luZm8oKSBhcyBhbnk7XG4gIHJldHVybiAoXG4gICAgPHRhYmxlIHsuLi57ICdkYXRhLXRlc3QnOiAnZGhpczItdWktaGVhZGVyYmFyLWRlYnVnaW5mb3RhYmxlJyB9fT5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAge09iamVjdC5rZXlzKGRlYnVnSW5mbykubWFwKChrZXkpID0+IChcbiAgICAgICAgICA8dHIga2V5PXtrZXl9PlxuICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cImRlYnVnLWluZm8ta2V5XCI+e2Zvcm1hdERlYnVnSW5mb0tleShrZXkpfTwvdGQ+XG4gICAgICAgICAgICA8dGQ+e2RlYnVnSW5mb1trZXldfTwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgKSl9XG4gICAgICA8L3Rib2R5PlxuICAgICAgPHN0eWxlIGpzeD57YFxuICAgICAgICAgICAgICAgIHRhYmxlIHtcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAke2NvbG9ycy5ncmV5NzAwfTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbGU6IE1lbmxvLCBDb3VyaWVyLCBtb25vc3BhY2UgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcHggMTZweCAzcHggMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmRlYnVnLWluZm8ta2V5IHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgYH08L3N0eWxlPlxuICAgIDwvdGFibGU+XG4gICk7XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import { useConfig } from '@dhis2/app-runtime';
2
+ export const useDebugInfo = () => {
3
+ const { appName, appVersion, systemInfo } = useConfig();
4
+ return {
5
+ app_name: appName || null,
6
+ app_version: appVersion?.full || null,
7
+ dhis2_version: systemInfo?.version || null,
8
+ dhis2_revision: systemInfo?.revision || null,
9
+ };
10
+ };
11
+ export const useFormattedDebugInfo = () => JSON.stringify(useDebugInfo(), undefined, 2);
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWRlYnVnLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvaGVhZGVyLWJhci91dGlscy9kZWJ1Zy1pbmZvL3VzZS1kZWJ1Zy1pbmZvLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFOUMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQUcsRUFBRTtJQUM3QixNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxTQUFTLEVBQVMsQ0FBQTtJQUU5RCxPQUFPO1FBQ0gsUUFBUSxFQUFFLE9BQU8sSUFBSSxJQUFJO1FBQ3pCLFdBQVcsRUFBRSxVQUFVLEVBQUUsSUFBSSxJQUFJLElBQUk7UUFDckMsYUFBYSxFQUFFLFVBQVUsRUFBRSxPQUFPLElBQUksSUFBSTtRQUMxQyxjQUFjLEVBQUUsVUFBVSxFQUFFLFFBQVEsSUFBSSxJQUFJO0tBQy9DLENBQUE7QUFDTCxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLEVBQUUsQ0FDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICdAZGhpczIvYXBwLXJ1bnRpbWUnXG5cbmV4cG9ydCBjb25zdCB1c2VEZWJ1Z0luZm8gPSAoKSA9PiB7XG4gICAgY29uc3QgeyBhcHBOYW1lLCBhcHBWZXJzaW9uLCBzeXN0ZW1JbmZvIH0gPSB1c2VDb25maWcoKSBhcyBhbnlcblxuICAgIHJldHVybiB7XG4gICAgICAgIGFwcF9uYW1lOiBhcHBOYW1lIHx8IG51bGwsXG4gICAgICAgIGFwcF92ZXJzaW9uOiBhcHBWZXJzaW9uPy5mdWxsIHx8IG51bGwsXG4gICAgICAgIGRoaXMyX3ZlcnNpb246IHN5c3RlbUluZm8/LnZlcnNpb24gfHwgbnVsbCxcbiAgICAgICAgZGhpczJfcmV2aXNpb246IHN5c3RlbUluZm8/LnJldmlzaW9uIHx8IG51bGwsXG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgdXNlRm9ybWF0dGVkRGVidWdJbmZvID0gKCkgPT5cbiAgICBKU09OLnN0cmluZ2lmeSh1c2VEZWJ1Z0luZm8oKSwgdW5kZWZpbmVkLCAyKVxuIl19
@@ -0,0 +1,17 @@
1
+ import PropTypes from 'prop-types';
2
+ import React, { createContext, useContext } from 'react';
3
+ const headerBarContext = createContext({
4
+ updateAvailable: false,
5
+ onApplyAvailableUpdate: () => { },
6
+ });
7
+ export const HeaderBarContextProvider = (params) => {
8
+ const { updateAvailable, onApplyAvailableUpdate, children, } = params;
9
+ return (React.createElement(headerBarContext.Provider, { value: { updateAvailable, onApplyAvailableUpdate } }, children));
10
+ };
11
+ HeaderBarContextProvider.propTypes = {
12
+ children: PropTypes.node,
13
+ updateAvailable: PropTypes.bool,
14
+ onApplyAvailableUpdate: PropTypes.func,
15
+ };
16
+ export const useHeaderBarContext = () => useContext(headerBarContext);
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWJhci1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbmctZGhpczItdWkvc3JjL2xpYi9tb2R1bGVzL2hlYWRlci1iYXIvdXRpbHMvaGVhZGVyLWJhci1jb250ZXh0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxLQUFLLEVBQUUsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBRXhELE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDO0lBQ25DLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLHNCQUFzQixFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7Q0FDbkMsQ0FBQyxDQUFBO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRTtJQUNwRCxNQUFNLEVBQ0YsZUFBZSxFQUNmLHNCQUFzQixFQUN0QixRQUFRLEdBQ1gsR0FBRyxNQUFNLENBQUM7SUFDWCxPQUFPLENBQ0gsb0JBQUMsZ0JBQWdCLENBQUMsUUFBUSxJQUN0QixLQUFLLEVBQUUsRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQUUsSUFFakQsUUFBUSxDQUNlLENBQy9CLENBQUE7QUFDTCxDQUFDLENBQUE7QUFDRCx3QkFBd0IsQ0FBQyxTQUFTLEdBQUc7SUFDakMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJO0lBQ3hCLGVBQWUsRUFBRSxTQUFTLENBQUMsSUFBSTtJQUMvQixzQkFBc0IsRUFBRSxTQUFTLENBQUMsSUFBSTtDQUN6QyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG5pbXBvcnQgUmVhY3QsIHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0J1xuXG5jb25zdCBoZWFkZXJCYXJDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh7XG4gICAgdXBkYXRlQXZhaWxhYmxlOiBmYWxzZSxcbiAgICBvbkFwcGx5QXZhaWxhYmxlVXBkYXRlOiAoKSA9PiB7fSxcbn0pXG5cbmV4cG9ydCBjb25zdCBIZWFkZXJCYXJDb250ZXh0UHJvdmlkZXIgPSAocGFyYW1zOiBhbnkpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAgIHVwZGF0ZUF2YWlsYWJsZSxcbiAgICAgICAgb25BcHBseUF2YWlsYWJsZVVwZGF0ZSxcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgfSA9IHBhcmFtcztcbiAgICByZXR1cm4gKFxuICAgICAgICA8aGVhZGVyQmFyQ29udGV4dC5Qcm92aWRlclxuICAgICAgICAgICAgdmFsdWU9e3sgdXBkYXRlQXZhaWxhYmxlLCBvbkFwcGx5QXZhaWxhYmxlVXBkYXRlIH19XG4gICAgICAgID5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9oZWFkZXJCYXJDb250ZXh0LlByb3ZpZGVyPlxuICAgIClcbn1cbkhlYWRlckJhckNvbnRleHRQcm92aWRlci5wcm9wVHlwZXMgPSB7XG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICAgIHVwZGF0ZUF2YWlsYWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25BcHBseUF2YWlsYWJsZVVwZGF0ZTogUHJvcFR5cGVzLmZ1bmMsXG59XG5cbmV4cG9ydCBjb25zdCB1c2VIZWFkZXJCYXJDb250ZXh0ID0gKCkgPT4gdXNlQ29udGV4dChoZWFkZXJCYXJDb250ZXh0KVxuIl19
@@ -0,0 +1,56 @@
1
+ import i18n from '@dhis2/d2-i18n';
2
+ import { colors } from '@dhis2/ui-constants';
3
+ import PropTypes from 'prop-types';
4
+ import React from 'react';
5
+ import { HeaderBarData } from '../models';
6
+ import Apps from './apps';
7
+ import { Logo } from './logo';
8
+ import { Notifications } from './notifications';
9
+ import Profile from './profile';
10
+ import { Title } from './title';
11
+ export const HeaderBar = ({ appName, data, className }) => {
12
+ const loading = false;
13
+ const error = null;
14
+ // See https://jira.dhis2.org/browse/LIBS-180
15
+ if (!loading && !error) {
16
+ // TODO: This will run every render which is probably wrong!
17
+ // Also, setting the global locale shouldn't be done in the headerbar
18
+ const locale = data.user['settings']['keyUiLocale'] || 'en';
19
+ i18n.setDefaultNamespace('default');
20
+ i18n.changeLanguage(locale);
21
+ }
22
+ {
23
+ /* TODO: Find better way to attach base URL */
24
+ }
25
+ const baseUrl = '../../../';
26
+ return (React.createElement("header", { className: className },
27
+ React.createElement("div", { className: "main" }, !loading && !error && (React.createElement(React.Fragment, null,
28
+ React.createElement(Logo, { baseUrl: baseUrl }),
29
+ React.createElement(Title, { app: appName, instance: data.title['applicationTitle'] }),
30
+ React.createElement("div", { className: "right-control-spacer" }),
31
+ React.createElement(Notifications, { interpretations: data.notifications.unreadInterpretations, messages: data.notifications.unreadMessageConversations, userAuthorities: data.user['authorities'] }),
32
+ React.createElement(Apps, { apps: data.apps, baseUrl: baseUrl }),
33
+ React.createElement(Profile, { name: data.user['name'], email: data.user['email'], avatarId: (data.user['avatar'] || {})['id'], helpUrl: data.help.helpPageLink })))),
34
+ React.createElement("style", { jsx: true }, `
35
+ .main {
36
+ display: flex;
37
+ flex-direction: row;
38
+ align-items: center;
39
+ justify-content: space-between;
40
+ background-color: #2c6693;
41
+ color: ${colors.white};
42
+ height: 48px;
43
+ }
44
+ .right-control-spacer {
45
+ margin-left: auto;
46
+ }
47
+ `)));
48
+ };
49
+ HeaderBar.propTypes = {
50
+ appName: PropTypes.string,
51
+ data: HeaderBarData,
52
+ className: PropTypes.string,
53
+ updateAvailable: PropTypes.bool,
54
+ onApplyAvailableUpdate: PropTypes.func,
55
+ };
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9oZWFkZXItYmFyL3V0aWxzL2hlYWRlci1iYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxJQUFJLE1BQU0sUUFBUSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sT0FBTyxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBUWhDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQWlCLEVBQUUsRUFBRTtJQUN2RSxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBRW5CLDZDQUE2QztJQUM3QyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ3RCLDREQUE0RDtRQUM1RCxxRUFBcUU7UUFDckUsTUFBTSxNQUFNLEdBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDckUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDN0I7SUFFRDtRQUNFLDhDQUE4QztLQUMvQztJQUNELE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQztJQUU1QixPQUFPLENBQ0wsZ0NBQVEsU0FBUyxFQUFFLFNBQVM7UUFDMUIsNkJBQUssU0FBUyxFQUFDLE1BQU0sSUFDbEIsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksQ0FDckI7WUFDRSxvQkFBQyxJQUFJLElBQUMsT0FBTyxFQUFFLE9BQU8sR0FBSTtZQUUxQixvQkFBQyxLQUFLLElBQ0osR0FBRyxFQUFFLE9BQU8sRUFDWixRQUFRLEVBQUcsSUFBSSxDQUFDLEtBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUNqRDtZQUVGLDZCQUFLLFNBQVMsRUFBQyxzQkFBc0IsR0FBRztZQUt4QyxvQkFBQyxhQUFhLElBQ1osZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQ3pELFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLDBCQUEwQixFQUN2RCxlQUFlLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQVEsR0FDaEQ7WUFDRixvQkFBQyxJQUFJLElBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sR0FBSTtZQUUzQyxvQkFBQyxPQUFPLElBQ04sSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFXLEVBQ2pDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBVyxFQUNuQyxRQUFRLEVBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBUyxDQUFDLElBQUksQ0FBQyxFQUNwRCxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQy9CLENBQ0QsQ0FDSixDQUNHO1FBSU4sK0JBQU8sR0FBRyxVQUFFOzs7Ozs7O21CQU9DLE1BQU0sQ0FBQyxLQUFLOzs7Ozs7T0FNeEIsQ0FBUyxDQUNILENBQ1YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLFNBQVMsQ0FBQyxTQUFTLEdBQUc7SUFDcEIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxNQUFNO0lBQ3pCLElBQUksRUFBRSxhQUFhO0lBQ25CLFNBQVMsRUFBRSxTQUFTLENBQUMsTUFBTTtJQUMzQixlQUFlLEVBQUUsU0FBUyxDQUFDLElBQUk7SUFDL0Isc0JBQXNCLEVBQUUsU0FBUyxDQUFDLElBQUk7Q0FDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpMThuIGZyb20gJ0BkaGlzMi9kMi1pMThuJztcbmltcG9ydCB7IGNvbG9ycyB9IGZyb20gJ0BkaGlzMi91aS1jb25zdGFudHMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBIZWFkZXJCYXJEYXRhIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCBBcHBzIGZyb20gJy4vYXBwcyc7XG5pbXBvcnQgeyBMb2dvIH0gZnJvbSAnLi9sb2dvJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnMgfSBmcm9tICcuL25vdGlmaWNhdGlvbnMnO1xuaW1wb3J0IFByb2ZpbGUgZnJvbSAnLi9wcm9maWxlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnLi90aXRsZSc7XG5cbmludGVyZmFjZSBIZWFkZXJCYXJQcm9wIHtcbiAgYXBwTmFtZTogc3RyaW5nO1xuICBkYXRhOiBIZWFkZXJCYXJEYXRhO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBIZWFkZXJCYXIgPSAoeyBhcHBOYW1lLCBkYXRhLCBjbGFzc05hbWUgfTogSGVhZGVyQmFyUHJvcCkgPT4ge1xuICBjb25zdCBsb2FkaW5nID0gZmFsc2U7XG4gIGNvbnN0IGVycm9yID0gbnVsbDtcblxuICAvLyBTZWUgaHR0cHM6Ly9qaXJhLmRoaXMyLm9yZy9icm93c2UvTElCUy0xODBcbiAgaWYgKCFsb2FkaW5nICYmICFlcnJvcikge1xuICAgIC8vIFRPRE86IFRoaXMgd2lsbCBydW4gZXZlcnkgcmVuZGVyIHdoaWNoIGlzIHByb2JhYmx5IHdyb25nIVxuICAgIC8vIEFsc28sIHNldHRpbmcgdGhlIGdsb2JhbCBsb2NhbGUgc2hvdWxkbid0IGJlIGRvbmUgaW4gdGhlIGhlYWRlcmJhclxuICAgIGNvbnN0IGxvY2FsZSA9IChkYXRhLnVzZXJbJ3NldHRpbmdzJ10gYXMgYW55KVsna2V5VWlMb2NhbGUnXSB8fCAnZW4nO1xuICAgIGkxOG4uc2V0RGVmYXVsdE5hbWVzcGFjZSgnZGVmYXVsdCcpO1xuICAgIGkxOG4uY2hhbmdlTGFuZ3VhZ2UobG9jYWxlKTtcbiAgfVxuXG4gIHtcbiAgICAvKiBUT0RPOiBGaW5kIGJldHRlciB3YXkgdG8gYXR0YWNoIGJhc2UgVVJMICovXG4gIH1cbiAgY29uc3QgYmFzZVVybCA9ICcuLi8uLi8uLi8nO1xuXG4gIHJldHVybiAoXG4gICAgPGhlYWRlciBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1haW5cIj5cbiAgICAgICAgeyFsb2FkaW5nICYmICFlcnJvciAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxMb2dvIGJhc2VVcmw9e2Jhc2VVcmx9IC8+XG5cbiAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICBhcHA9e2FwcE5hbWV9XG4gICAgICAgICAgICAgIGluc3RhbmNlPXsoZGF0YS50aXRsZSBhcyBhbnkpWydhcHBsaWNhdGlvblRpdGxlJ119XG4gICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJpZ2h0LWNvbnRyb2wtc3BhY2VyXCIgLz5cblxuICAgICAgICAgICAgey8qVE9ETzogRmluZCBiZXR0ZXIgYXBwcm9hY2ggdG8gaGFuZGxlIFBXQSAqL31cbiAgICAgICAgICAgIHsvKiB7J3B3YUVuYWJsZWQnICYmIDxPbmxpbmVTdGF0dXMgLz59ICovfVxuXG4gICAgICAgICAgICA8Tm90aWZpY2F0aW9uc1xuICAgICAgICAgICAgICBpbnRlcnByZXRhdGlvbnM9e2RhdGEubm90aWZpY2F0aW9ucy51bnJlYWRJbnRlcnByZXRhdGlvbnN9XG4gICAgICAgICAgICAgIG1lc3NhZ2VzPXtkYXRhLm5vdGlmaWNhdGlvbnMudW5yZWFkTWVzc2FnZUNvbnZlcnNhdGlvbnN9XG4gICAgICAgICAgICAgIHVzZXJBdXRob3JpdGllcz17ZGF0YS51c2VyWydhdXRob3JpdGllcyddIGFzIGFueX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8QXBwcyBhcHBzPXtkYXRhLmFwcHN9IGJhc2VVcmw9e2Jhc2VVcmx9IC8+XG5cbiAgICAgICAgICAgIDxQcm9maWxlXG4gICAgICAgICAgICAgIG5hbWU9e2RhdGEudXNlclsnbmFtZSddIGFzIHN0cmluZ31cbiAgICAgICAgICAgICAgZW1haWw9e2RhdGEudXNlclsnZW1haWwnXSBhcyBzdHJpbmd9XG4gICAgICAgICAgICAgIGF2YXRhcklkPXsoKGRhdGEudXNlclsnYXZhdGFyJ10gfHwge30pIGFzIGFueSlbJ2lkJ119XG4gICAgICAgICAgICAgIGhlbHBVcmw9e2RhdGEuaGVscC5oZWxwUGFnZUxpbmt9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiB7J3B3YUVuYWJsZWQnICYmICFsb2FkaW5nICYmICFlcnJvciAmJiA8T25saW5lU3RhdHVzIGRlbnNlIC8+fSAqL31cblxuICAgICAgPHN0eWxlIGpzeD57YFxuICAgICAgICAubWFpbiB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyYzY2OTM7XG4gICAgICAgICAgY29sb3I6ICR7Y29sb3JzLndoaXRlfTtcbiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIH1cbiAgICAgICAgLnJpZ2h0LWNvbnRyb2wtc3BhY2VyIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgfVxuICAgICAgYH08L3N0eWxlPlxuICAgIDwvaGVhZGVyPlxuICApO1xufTtcblxuSGVhZGVyQmFyLnByb3BUeXBlcyA9IHtcbiAgYXBwTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGF0YTogSGVhZGVyQmFyRGF0YSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB1cGRhdGVBdmFpbGFibGU6IFByb3BUeXBlcy5ib29sLFxuICBvbkFwcGx5QXZhaWxhYmxlVXBkYXRlOiBQcm9wVHlwZXMuZnVuYyxcbn07XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export const joinPath = (...parts) => {
2
+ const realParts = parts.filter((part) => !!part);
3
+ return realParts.map((part) => part.replace(/^\/+|\/+$/g, '')).join('/');
4
+ };
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9pbi1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbmctZGhpczItdWkvc3JjL2xpYi9tb2R1bGVzL2hlYWRlci1iYXIvdXRpbHMvam9pbi1wYXRoLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEtBQVksRUFBRSxFQUFFO0lBQ3hDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNoRCxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQzVFLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBqb2luUGF0aCA9ICguLi5wYXJ0czogYW55W10pID0+IHtcbiAgICBjb25zdCByZWFsUGFydHMgPSBwYXJ0cy5maWx0ZXIoKHBhcnQpID0+ICEhcGFydClcbiAgICByZXR1cm4gcmVhbFBhcnRzLm1hcCgocGFydCkgPT4gcGFydC5yZXBsYWNlKC9eXFwvK3xcXC8rJC9nLCAnJykpLmpvaW4oJy8nKVxufVxuIl19
@@ -0,0 +1,52 @@
1
+ import { LogoIconWhite } from '@dhis2-ui/logo';
2
+ import { useDataQuery } from '@dhis2/app-runtime';
3
+ import React from 'react';
4
+ const query = {
5
+ customLogo: {
6
+ resource: 'staticContent/logo_banner',
7
+ },
8
+ };
9
+ const pathExists = (data) => data &&
10
+ data.customLogo &&
11
+ data.customLogo.images &&
12
+ data.customLogo.images.png;
13
+ export const LogoImage = () => {
14
+ const { loading, error, data } = useDataQuery(query);
15
+ if (loading) {
16
+ return null;
17
+ }
18
+ let Logo;
19
+ if (!error && pathExists(data)) {
20
+ Logo = (React.createElement("img", { alt: "Headerbar Logo", src: data.customLogo.images.png }));
21
+ }
22
+ else {
23
+ Logo = React.createElement(LogoIconWhite, null);
24
+ }
25
+ return (React.createElement("div", { className: "header-bar-logo" },
26
+ Logo,
27
+ React.createElement("style", { jsx: true }, `
28
+ .header-bar-logo {
29
+ min-width: 48px;
30
+ max-width: 250px;
31
+ height: 48px;
32
+ display: flex;
33
+ -webkit-box-pack: center;
34
+ justify-content: center;
35
+ -webkit-box-align: center;
36
+ align-items: center;
37
+ overflow: hidden;
38
+ }
39
+
40
+ .header-bar-logo svg {
41
+ height: 25px;
42
+ width: 27px;
43
+ }
44
+
45
+ .header-bar-logo img {
46
+ max-height: 100%;
47
+ min-height: auto;
48
+ width: auto;
49
+ }
50
+ `)));
51
+ };
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nby1pbWFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9oZWFkZXItYmFyL3V0aWxzL2xvZ28taW1hZ2UudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDakQsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBUXpCLE1BQU0sS0FBSyxHQUFHO0lBQ1YsVUFBVSxFQUFFO1FBQ1IsUUFBUSxFQUFFLDJCQUEyQjtLQUN4QztDQUNKLENBQUE7QUFFRCxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQzdCLElBQUk7SUFDSixJQUFJLENBQUMsVUFBVTtJQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTtJQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUE7QUFFOUIsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRTtJQUMxQixNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFRLENBQUM7SUFHNUQsSUFBSSxPQUFPLEVBQUU7UUFDVCxPQUFPLElBQUksQ0FBQTtLQUNkO0lBRUQsSUFBSSxJQUFJLENBQUE7SUFDUixJQUFJLENBQUMsS0FBSyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUU1QixJQUFJLEdBQUcsQ0FDSCw2QkFDQSxHQUFHLEVBQUMsZ0JBQWdCLEVBQ3BCLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBRWpDLENBRUQsQ0FBQTtLQUNKO1NBQU07UUFFSCxJQUFJLEdBQUcsb0JBQUMsYUFBYSxPQUFJLENBQUE7S0FFNUI7SUFFRCxPQUFPLENBQ0gsNkJBQUssU0FBUyxFQUFDLGlCQUFpQjtRQUMzQixJQUFJO1FBQ0wsK0JBQU8sR0FBRyxVQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzthQXVCWCxDQUFTLENBQ1IsQ0FDVCxDQUFBO0FBQ0wsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nb0ljb25XaGl0ZSB9IGZyb20gJ0BkaGlzMi11aS9sb2dvJ1xuaW1wb3J0IHsgdXNlRGF0YVF1ZXJ5IH0gZnJvbSAnQGRoaXMyL2FwcC1ydW50aW1lJ1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuZGVjbGFyZSBtb2R1bGUgJ3JlYWN0JyB7XG4gICAgaW50ZXJmYWNlIFN0eWxlSFRNTEF0dHJpYnV0ZXM8VD4gZXh0ZW5kcyBSZWFjdC5IVE1MQXR0cmlidXRlczxUPiB7XG4gICAgICBqc3g/OiBib29sZWFuO1xuICAgICAgZ2xvYmFsPzogYm9vbGVhbjtcbiAgICB9XG4gIH1cblxuY29uc3QgcXVlcnkgPSB7XG4gICAgY3VzdG9tTG9nbzoge1xuICAgICAgICByZXNvdXJjZTogJ3N0YXRpY0NvbnRlbnQvbG9nb19iYW5uZXInLFxuICAgIH0sXG59XG5cbmNvbnN0IHBhdGhFeGlzdHMgPSAoZGF0YTogYW55KSA9PlxuICAgIGRhdGEgJiZcbiAgICBkYXRhLmN1c3RvbUxvZ28gJiZcbiAgICBkYXRhLmN1c3RvbUxvZ28uaW1hZ2VzICYmXG4gICAgZGF0YS5jdXN0b21Mb2dvLmltYWdlcy5wbmdcblxuZXhwb3J0IGNvbnN0IExvZ29JbWFnZSA9ICgpID0+IHtcbiAgICBjb25zdCB7IGxvYWRpbmcsIGVycm9yLCBkYXRhIH0gPSB1c2VEYXRhUXVlcnkocXVlcnkpIGFzIGFueTtcblxuICAgXG4gICAgaWYgKGxvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBsZXQgTG9nb1xuICAgIGlmICghZXJyb3IgJiYgcGF0aEV4aXN0cyhkYXRhKSkge1xuICAgICAgICBcbiAgICAgICAgTG9nbyA9IChcbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIGFsdD1cIkhlYWRlcmJhciBMb2dvXCJcbiAgICAgICAgICAgIHNyYz17ZGF0YS5jdXN0b21Mb2dvLmltYWdlcy5wbmd9XG4gICAgICAgICAgXG4gICAgICAgIC8+XG4gICAgICAgICAgIFxuICAgICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgXG4gICAgICAgIExvZ28gPSA8TG9nb0ljb25XaGl0ZSAgLz5cblxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVhZGVyLWJhci1sb2dvXCI+XG4gICAgICAgICAgICB7TG9nb31cbiAgICAgICAgICAgIDxzdHlsZSBqc3g+e2BcbiAgICAgICAgICAgICAgICAuaGVhZGVyLWJhci1sb2dvIHtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiA0OHB4O1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgIC5oZWFkZXItYmFyLWxvZ28gc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjdweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAuaGVhZGVyLWJhci1sb2dvIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGB9PC9zdHlsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgKVxufVxuIl19
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import { LogoImage } from './logo-image';
3
+ export const Logo = ({ baseUrl }) => {
4
+ return (React.createElement("div", { className: "headerbar-logo", "data-test": "headerbar-logo" },
5
+ React.createElement("a", { href: baseUrl },
6
+ React.createElement(LogoImage, null)),
7
+ React.createElement("style", { jsx: true }, `
8
+ .headerbar-logo {
9
+ box-sizing: border-box;
10
+ min-width: 49px;
11
+ max-height: 48px;
12
+ margin: 0 12px 0 0;
13
+ border-right: 1px solid rgba(32, 32, 32, 0.15);
14
+ }
15
+ .headerbar-logo:hover {
16
+ background-color: #1a557f;
17
+ }
18
+
19
+ .headerbar-logo a,
20
+ .headerbar-logo a:hover,
21
+ .headerbar-logo a:focus,
22
+ .headerbar-logo a:active,
23
+ .headerbar-logo a:visited {
24
+ user-select: none;
25
+ }
26
+ .headerbar-logo a:focus {
27
+ outline: 2px solid white;
28
+ outline-offset: -2px;
29
+ }
30
+ .headerbar-logo a:focus:not(:focus-visible) {
31
+ outline: none;
32
+ }
33
+ `)));
34
+ };
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9oZWFkZXItYmFyL3V0aWxzL2xvZ28udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBWXpDLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFZLEVBQUUsRUFBRTtJQUM1QyxPQUFPLENBQ0wsNkJBQUssU0FBUyxFQUFDLGdCQUFnQixlQUFXLGdCQUFnQjtRQUN4RCwyQkFBRyxJQUFJLEVBQUUsT0FBTztZQUNkLG9CQUFDLFNBQVMsT0FBRyxDQUNYO1FBRUosK0JBQU8sR0FBRyxVQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBCWCxDQUFTLENBQ04sQ0FDUCxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSAnQGRoaXMyL2FwcC1ydW50aW1lJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMb2dvSW1hZ2UgfSBmcm9tICcuL2xvZ28taW1hZ2UnO1xuZGVjbGFyZSBtb2R1bGUgJ3JlYWN0JyB7XG4gIGludGVyZmFjZSBTdHlsZUhUTUxBdHRyaWJ1dGVzPFQ+IGV4dGVuZHMgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8VD4ge1xuICAgIGpzeD86IGJvb2xlYW47XG4gICAgZ2xvYmFsPzogYm9vbGVhbjtcbiAgfVxufVxuXG5pbnRlcmZhY2UgTG9nb1Byb3Age1xuICBiYXNlVXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBMb2dvID0gKHsgYmFzZVVybCB9OiBMb2dvUHJvcCkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVhZGVyYmFyLWxvZ29cIiBkYXRhLXRlc3Q9XCJoZWFkZXJiYXItbG9nb1wiPlxuICAgICAgPGEgaHJlZj17YmFzZVVybH0+XG4gICAgICAgIDxMb2dvSW1hZ2UgLz5cbiAgICAgIDwvYT5cblxuICAgICAgPHN0eWxlIGpzeD57YFxuICAgICAgICAuaGVhZGVyYmFyLWxvZ28ge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgbWluLXdpZHRoOiA0OXB4O1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgbWFyZ2luOiAwIDEycHggMCAwO1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMzIsIDMyLCAzMiwgMC4xNSk7XG4gICAgICAgIH1cbiAgICAgICAgLmhlYWRlcmJhci1sb2dvOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWE1NTdmO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlcmJhci1sb2dvIGEsXG4gICAgICAgIC5oZWFkZXJiYXItbG9nbyBhOmhvdmVyLFxuICAgICAgICAuaGVhZGVyYmFyLWxvZ28gYTpmb2N1cyxcbiAgICAgICAgLmhlYWRlcmJhci1sb2dvIGE6YWN0aXZlLFxuICAgICAgICAuaGVhZGVyYmFyLWxvZ28gYTp2aXNpdGVkIHtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAuaGVhZGVyYmFyLWxvZ28gYTpmb2N1cyB7XG4gICAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHdoaXRlO1xuICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAgICAgICB9XG4gICAgICAgIC5oZWFkZXJiYXItbG9nbyBhOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIGB9PC9zdHlsZT5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXX0=
@@ -0,0 +1,76 @@
1
+ import { colors, theme, spacers } from '@dhis2/ui-constants';
2
+ import { IconMessages24, IconMail24 } from '@dhis2/ui-icons';
3
+ import PropTypes from 'prop-types';
4
+ import React from 'react';
5
+ function icon(kind) {
6
+ if (kind === 'message') {
7
+ return React.createElement(IconMessages24, { color: colors.white });
8
+ }
9
+ else {
10
+ return React.createElement(IconMail24, { color: colors.white });
11
+ }
12
+ }
13
+ export const NotificationIcon = (params) => {
14
+ const { count, href, kind, dataTestId } = params;
15
+ const notificationClassName = "headerbar-notification-icon " + kind;
16
+ return (React.createElement("a", { href: href, className: notificationClassName, "data-test": dataTestId },
17
+ icon(kind),
18
+ count > 0 && React.createElement("span", { "data-test": `${dataTestId}-count` }, count),
19
+ React.createElement("style", { jsx: true }, `
20
+ .headerbar-notification-icon {
21
+ position: relative;
22
+ margin: 0;
23
+ cursor: pointer;
24
+ padding: 0 ${spacers.dp12};
25
+ height: 100%;
26
+ display: flex;
27
+ align-items: center;
28
+ }
29
+ .headerbar-notification-icon:focus {
30
+ outline: 2px solid white;
31
+ outline-offset: -2px;
32
+ }
33
+ .headerbar-notification-icon:focus:not(:focus-visible) {
34
+ outline: none;
35
+ }
36
+ .headerbar-notification-icon:hover {
37
+ background: #1a557f;
38
+ }
39
+ .headerbar-notification-icon:active {
40
+ background: #104067;
41
+ }
42
+ .headerbar-notification-icon span {
43
+ display: flex;
44
+ justify-content: center;
45
+ align-items: center;
46
+ z-index: 1;
47
+ position: absolute;
48
+ top: 3px;
49
+ right: 2px;
50
+ min-width: 18px;
51
+ min-height: 18px;
52
+ border-radius: ${spacers.dp12};
53
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1),
54
+ 0 1px 2px 0 rgba(0, 0, 0, 0.06);
55
+ background-color: ${theme.secondary500};
56
+ color: ${colors.white};
57
+ font-size: 13px;
58
+ font-weight: 600;
59
+ line-height: 15px;
60
+ text-align: center;
61
+ cursor: inherit;
62
+ padding: 0 ${spacers.dp4};
63
+ }
64
+ `)));
65
+ };
66
+ NotificationIcon.defaultProps = {
67
+ count: 0,
68
+ };
69
+ NotificationIcon.propTypes = {
70
+ href: PropTypes.string.isRequired,
71
+ count: PropTypes.number,
72
+ dataTestId: PropTypes.string,
73
+ message: PropTypes.string,
74
+ kind: PropTypes.oneOf(['interpretation', 'message']),
75
+ };
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWljb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvaGVhZGVyLWJhci91dGlscy9ub3RpZmljYXRpb24taWNvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM1RCxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBU3pCLFNBQVMsSUFBSSxDQUFDLElBQVk7SUFDdEIsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1FBQ3BCLE9BQU8sb0JBQUMsY0FBYyxJQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxHQUFJLENBQUE7S0FDakQ7U0FBTTtRQUNILE9BQU8sb0JBQUMsVUFBVSxJQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxHQUFJLENBQUE7S0FDN0M7QUFDTCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRTtJQUM1QyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ2pELE1BQU0scUJBQXFCLEdBQUcsOEJBQThCLEdBQUcsSUFBSSxDQUFBO0lBQ25FLE9BQU8sQ0FDUCwyQkFBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsZUFBYSxVQUFVO1FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFVixLQUFLLEdBQUcsQ0FBQyxJQUFJLDJDQUFpQixHQUFHLFVBQVUsUUFBUSxJQUFHLEtBQUssQ0FBUTtRQUVwRSwrQkFBTyxHQUFHLFVBQUU7Ozs7OzZCQUtTLE9BQU8sQ0FBQyxJQUFJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lDQTRCUixPQUFPLENBQUMsSUFBSTs7O29DQUdULEtBQUssQ0FBQyxZQUFZO3lCQUM3QixNQUFNLENBQUMsS0FBSzs7Ozs7OzZCQU1SLE9BQU8sQ0FBQyxHQUFHOztTQUUvQixDQUFTLENBQ1YsQ0FDUCxDQUFBO0FBQUMsQ0FBQyxDQUFBO0FBRUgsZ0JBQWdCLENBQUMsWUFBWSxHQUFHO0lBQzVCLEtBQUssRUFBRSxDQUFDO0NBQ1gsQ0FBQTtBQUVELGdCQUFnQixDQUFDLFNBQVMsR0FBRztJQUN6QixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO0lBQ2pDLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTTtJQUN2QixVQUFVLEVBQUUsU0FBUyxDQUFDLE1BQU07SUFDNUIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxNQUFNO0lBQ3pCLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLENBQUM7Q0FDdkQsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbG9ycywgdGhlbWUsIHNwYWNlcnMgfSBmcm9tICdAZGhpczIvdWktY29uc3RhbnRzJ1xuaW1wb3J0IHsgSWNvbk1lc3NhZ2VzMjQsIEljb25NYWlsMjQgfSBmcm9tICdAZGhpczIvdWktaWNvbnMnXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5kZWNsYXJlIG1vZHVsZSAncmVhY3QnIHtcbiAgICBpbnRlcmZhY2UgU3R5bGVIVE1MQXR0cmlidXRlczxUPiBleHRlbmRzIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPFQ+IHtcbiAgICAgIGpzeD86IGJvb2xlYW47XG4gICAgICBnbG9iYWw/OiBib29sZWFuO1xuICAgIH1cbiAgfVxuXG5cbmZ1bmN0aW9uIGljb24oa2luZDogc3RyaW5nKSB7XG4gICAgaWYgKGtpbmQgPT09ICdtZXNzYWdlJykge1xuICAgICAgICByZXR1cm4gPEljb25NZXNzYWdlczI0IGNvbG9yPXtjb2xvcnMud2hpdGV9IC8+XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDxJY29uTWFpbDI0IGNvbG9yPXtjb2xvcnMud2hpdGV9IC8+XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgTm90aWZpY2F0aW9uSWNvbiA9IChwYXJhbXM6IGFueSkgPT4ge1xuICAgIGNvbnN0IHsgY291bnQsIGhyZWYsIGtpbmQsIGRhdGFUZXN0SWQgfSA9IHBhcmFtcztcbiAgICBjb25zdCBub3RpZmljYXRpb25DbGFzc05hbWUgPSBcImhlYWRlcmJhci1ub3RpZmljYXRpb24taWNvbiBcIiArIGtpbmRcbiAgICByZXR1cm4gKFxuICAgIDxhIGhyZWY9e2hyZWZ9IGNsYXNzTmFtZT17bm90aWZpY2F0aW9uQ2xhc3NOYW1lfSBkYXRhLXRlc3Q9e2RhdGFUZXN0SWR9PlxuICAgICAgICB7aWNvbihraW5kKX1cblxuICAgICAgICB7Y291bnQgPiAwICYmIDxzcGFuIGRhdGEtdGVzdD17YCR7ZGF0YVRlc3RJZH0tY291bnRgfT57Y291bnR9PC9zcGFuPn1cblxuICAgICAgICA8c3R5bGUganN4PntgXG4gICAgICAgICAgICAuaGVhZGVyYmFyLW5vdGlmaWNhdGlvbi1pY29uIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwICR7c3BhY2Vycy5kcDEyfTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmhlYWRlcmJhci1ub3RpZmljYXRpb24taWNvbjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHdoaXRlO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmhlYWRlcmJhci1ub3RpZmljYXRpb24taWNvbjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmhlYWRlcmJhci1ub3RpZmljYXRpb24taWNvbjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzFhNTU3ZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5oZWFkZXJiYXItbm90aWZpY2F0aW9uLWljb246YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMTA0MDY3O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmhlYWRlcmJhci1ub3RpZmljYXRpb24taWNvbiBzcGFuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAzcHg7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDE4cHg7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogMThweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAke3NwYWNlcnMuZHAxMn07XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEpLFxuICAgICAgICAgICAgICAgICAgICAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7dGhlbWUuc2Vjb25kYXJ5NTAwfTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHtjb2xvcnMud2hpdGV9O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAke3NwYWNlcnMuZHA0fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgYH08L3N0eWxlPlxuICAgIDwvYT5cbikgfVxuXG5Ob3RpZmljYXRpb25JY29uLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBjb3VudDogMCxcbn1cblxuTm90aWZpY2F0aW9uSWNvbi5wcm9wVHlwZXMgPSB7XG4gICAgaHJlZjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGNvdW50OiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIGRhdGFUZXN0SWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbWVzc2FnZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBraW5kOiBQcm9wVHlwZXMub25lT2YoWydpbnRlcnByZXRhdGlvbicsICdtZXNzYWdlJ10pLFxufVxuIl19
@@ -0,0 +1,35 @@
1
+ import { useConfig } from '@dhis2/app-runtime';
2
+ import PropTypes from 'prop-types';
3
+ import React from 'react';
4
+ import { joinPath } from './join-path';
5
+ import { NotificationIcon } from './notification-icon';
6
+ /*
7
+ AUTHORITIES:
8
+ - ALL: superuser
9
+ - M_dhis-web-interpretation: access to interpretations app
10
+ - M_dhis-web-messaging: access to messaging app
11
+ */
12
+ const hasAuthority = (userAuthorities, authId) => Array.isArray(userAuthorities) &&
13
+ userAuthorities.some((userAuthId) => userAuthId === 'ALL' || userAuthId === authId);
14
+ export const Notifications = (params) => {
15
+ const { interpretations, messages, userAuthorities, } = params;
16
+ const { baseUrl } = useConfig();
17
+ return (React.createElement("div", { className: "headerbar-notifications", "data-test": "headerbar-notifications" },
18
+ hasAuthority(userAuthorities, 'M_dhis-web-interpretation') && (React.createElement(NotificationIcon, { count: interpretations, href: joinPath(baseUrl, 'dhis-web-interpretation'), kind: "message", dataTestId: "headerbar-interpretations" })),
19
+ hasAuthority(userAuthorities, 'M_dhis-web-messaging') && (React.createElement(NotificationIcon, { message: "email", count: messages, href: joinPath(baseUrl, 'dhis-web-messaging'), kind: "interpretation", dataTestId: "headerbar-messages" })),
20
+ React.createElement("style", { jsx: true }, `
21
+ .headerbar-notifications {
22
+ user-select: none;
23
+ display: flex;
24
+ flex-direction: row;
25
+ align-items: center;
26
+ height: 100%;
27
+ }
28
+ `)));
29
+ };
30
+ Notifications.propTypes = {
31
+ interpretations: PropTypes.number,
32
+ messages: PropTypes.number,
33
+ userAuthorities: PropTypes.arrayOf(PropTypes.string),
34
+ };
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9oZWFkZXItYmFyL3V0aWxzL25vdGlmaWNhdGlvbnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUM5QyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBQ3pCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFTdEQ7Ozs7O0dBS0c7QUFFSCxNQUFNLFlBQVksR0FBRyxDQUFDLGVBQW9CLEVBQUUsTUFBYyxFQUFFLEVBQUUsQ0FDMUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7SUFDOUIsZUFBZSxDQUFDLElBQUksQ0FDaEIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsS0FBSyxLQUFLLElBQUksVUFBVSxLQUFLLE1BQU0sQ0FDaEUsQ0FBQTtBQUVMLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQVcsRUFBRSxFQUFFO0lBQ3pDLE1BQU0sRUFDRixlQUFlLEVBQ2YsUUFBUSxFQUNSLGVBQWUsR0FDbEIsR0FBRyxNQUFNLENBQUM7SUFDWCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUE7SUFFL0IsT0FBTyxDQUNILDZCQUFLLFNBQVMsRUFBQyx5QkFBeUIsZUFBVyx5QkFBeUI7UUFDdkUsWUFBWSxDQUFDLGVBQWUsRUFBRSwyQkFBMkIsQ0FBQyxJQUFJLENBQzNELG9CQUFDLGdCQUFnQixJQUNiLEtBQUssRUFBRSxlQUFlLEVBQ3RCLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLHlCQUF5QixDQUFDLEVBQ2xELElBQUksRUFBQyxTQUFTLEVBQ2QsVUFBVSxFQUFDLDJCQUEyQixHQUN4QyxDQUNMO1FBRUEsWUFBWSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQyxJQUFJLENBQ3RELG9CQUFDLGdCQUFnQixJQUNiLE9BQU8sRUFBQyxPQUFPLEVBQ2YsS0FBSyxFQUFFLFFBQVEsRUFDZixJQUFJLEVBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxFQUM3QyxJQUFJLEVBQUMsZ0JBQWdCLEVBQ3JCLFVBQVUsRUFBQyxvQkFBb0IsR0FDakMsQ0FDTDtRQUVELCtCQUFPLEdBQUcsVUFBRTs7Ozs7Ozs7YUFRWCxDQUFTLENBQ1IsQ0FDVCxDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBRUQsYUFBYSxDQUFDLFNBQVMsR0FBRztJQUN0QixlQUFlLEVBQUUsU0FBUyxDQUFDLE1BQU07SUFDakMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0lBQzFCLGVBQWUsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7Q0FDdkQsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gJ0BkaGlzMi9hcHAtcnVudGltZSdcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcydcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGpvaW5QYXRoIH0gZnJvbSAnLi9qb2luLXBhdGgnXG5pbXBvcnQgeyBOb3RpZmljYXRpb25JY29uIH0gZnJvbSAnLi9ub3RpZmljYXRpb24taWNvbidcbmRlY2xhcmUgbW9kdWxlICdyZWFjdCcge1xuICAgIGludGVyZmFjZSBTdHlsZUhUTUxBdHRyaWJ1dGVzPFQ+IGV4dGVuZHMgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8VD4ge1xuICAgICAganN4PzogYm9vbGVhbjtcbiAgICAgIGdsb2JhbD86IGJvb2xlYW47XG4gICAgfVxuICB9XG5cblxuLypcbiBBVVRIT1JJVElFUzpcbiAtIEFMTDogc3VwZXJ1c2VyXG4gLSBNX2RoaXMtd2ViLWludGVycHJldGF0aW9uOiBhY2Nlc3MgdG8gaW50ZXJwcmV0YXRpb25zIGFwcFxuIC0gTV9kaGlzLXdlYi1tZXNzYWdpbmc6IGFjY2VzcyB0byBtZXNzYWdpbmcgYXBwXG4gKi9cblxuY29uc3QgaGFzQXV0aG9yaXR5ID0gKHVzZXJBdXRob3JpdGllczogYW55LCBhdXRoSWQ6IHN0cmluZykgPT5cbiAgICBBcnJheS5pc0FycmF5KHVzZXJBdXRob3JpdGllcykgJiZcbiAgICB1c2VyQXV0aG9yaXRpZXMuc29tZShcbiAgICAgICAgKHVzZXJBdXRoSWQpID0+IHVzZXJBdXRoSWQgPT09ICdBTEwnIHx8IHVzZXJBdXRoSWQgPT09IGF1dGhJZFxuICAgIClcblxuZXhwb3J0IGNvbnN0IE5vdGlmaWNhdGlvbnMgPSAocGFyYW1zOiBhbnkpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAgIGludGVycHJldGF0aW9ucyxcbiAgICAgICAgbWVzc2FnZXMsXG4gICAgICAgIHVzZXJBdXRob3JpdGllcyxcbiAgICB9ID0gcGFyYW1zO1xuICAgIGNvbnN0IHsgYmFzZVVybCB9ID0gdXNlQ29uZmlnKClcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVhZGVyYmFyLW5vdGlmaWNhdGlvbnNcIiBkYXRhLXRlc3Q9XCJoZWFkZXJiYXItbm90aWZpY2F0aW9uc1wiPlxuICAgICAgICAgICAge2hhc0F1dGhvcml0eSh1c2VyQXV0aG9yaXRpZXMsICdNX2RoaXMtd2ViLWludGVycHJldGF0aW9uJykgJiYgKFxuICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25JY29uXG4gICAgICAgICAgICAgICAgICAgIGNvdW50PXtpbnRlcnByZXRhdGlvbnN9XG4gICAgICAgICAgICAgICAgICAgIGhyZWY9e2pvaW5QYXRoKGJhc2VVcmwsICdkaGlzLXdlYi1pbnRlcnByZXRhdGlvbicpfVxuICAgICAgICAgICAgICAgICAgICBraW5kPVwibWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGFUZXN0SWQ9XCJoZWFkZXJiYXItaW50ZXJwcmV0YXRpb25zXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAge2hhc0F1dGhvcml0eSh1c2VyQXV0aG9yaXRpZXMsICdNX2RoaXMtd2ViLW1lc3NhZ2luZycpICYmIChcbiAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uSWNvblxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICBjb3VudD17bWVzc2FnZXN9XG4gICAgICAgICAgICAgICAgICAgIGhyZWY9e2pvaW5QYXRoKGJhc2VVcmwsICdkaGlzLXdlYi1tZXNzYWdpbmcnKX1cbiAgICAgICAgICAgICAgICAgICAga2luZD1cImludGVycHJldGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YVRlc3RJZD1cImhlYWRlcmJhci1tZXNzYWdlc1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIDxzdHlsZSBqc3g+e2BcbiAgICAgICAgICAgICAgICAuaGVhZGVyYmFyLW5vdGlmaWNhdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGB9PC9zdHlsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgKVxufVxuXG5Ob3RpZmljYXRpb25zLnByb3BUeXBlcyA9IHtcbiAgICBpbnRlcnByZXRhdGlvbnM6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgbWVzc2FnZXM6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgdXNlckF1dGhvcml0aWVzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbn1cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { useEffect, useMemo } from 'react';
2
+ export const useOnDocClick = (containerRef, hide) => {
3
+ const onDocClick = useMemo(() => {
4
+ return (evt) => {
5
+ if (!containerRef.current) {
6
+ return null;
7
+ }
8
+ if (!containerRef.current.contains(evt.target)) {
9
+ hide();
10
+ }
11
+ return null;
12
+ };
13
+ }, [containerRef, hide]);
14
+ useEffect(() => {
15
+ document.addEventListener('click', onDocClick);
16
+ return () => {
17
+ document.removeEventListener('click', onDocClick);
18
+ };
19
+ }, [onDocClick]);
20
+ };
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW9uLWRvYy1jbGljay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9oZWFkZXItYmFyL3V0aWxzL3Byb2ZpbGUvdXNlLW9uLWRvYy1jbGljay50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFFMUMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsWUFBaUIsRUFBRSxJQUFTLEVBQUUsRUFBRTtJQUMxRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQzVCLE9BQU8sQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRTtnQkFDdkIsT0FBTyxJQUFJLENBQUE7YUFDZDtZQUVELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzVDLElBQUksRUFBRSxDQUFBO2FBQ1Q7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUE7SUFDTCxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUV4QixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ1gsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUU5QyxPQUFPLEdBQUcsRUFBRTtZQUNSLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFDckQsQ0FBQyxDQUFBO0lBQ0wsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtBQUNwQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcblxuZXhwb3J0IGNvbnN0IHVzZU9uRG9jQ2xpY2sgPSAoY29udGFpbmVyUmVmOiBhbnksIGhpZGU6IGFueSkgPT4ge1xuICAgIGNvbnN0IG9uRG9jQ2xpY2sgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIChldnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFjb250YWluZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnRhcmdldCkpIHtcbiAgICAgICAgICAgICAgICBoaWRlKClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9LCBbY29udGFpbmVyUmVmLCBoaWRlXSlcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgb25Eb2NDbGljaylcblxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBvbkRvY0NsaWNrKVxuICAgICAgICB9XG4gICAgfSwgW29uRG9jQ2xpY2tdKVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './profile-menu';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvaGVhZGVyLWJhci91dGlscy9wcm9maWxlLW1lbnUvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb2ZpbGUtbWVudSdcbiJdfQ==