@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.
- package/README.md +7 -0
- package/esm2022/iapps-ng-dhis2-ui.mjs +5 -0
- package/esm2022/index.mjs +5 -0
- package/esm2022/lib/modules/app-shell/app-shell.component.mjs +33 -0
- package/esm2022/lib/modules/app-shell/app-shell.module.mjs +19 -0
- package/esm2022/lib/modules/app-shell/index.mjs +6 -0
- package/esm2022/lib/modules/button/button.component.mjs +55 -0
- package/esm2022/lib/modules/button/button.module.mjs +19 -0
- package/esm2022/lib/modules/button/index.mjs +6 -0
- package/esm2022/lib/modules/header-bar/header-bar.component.mjs +39 -0
- package/esm2022/lib/modules/header-bar/header-bar.module.mjs +19 -0
- package/esm2022/lib/modules/header-bar/index.mjs +6 -0
- package/esm2022/lib/modules/header-bar/models/header-bar-app.model.mjs +20 -0
- package/esm2022/lib/modules/header-bar/models/header-bar-data.model.mjs +46 -0
- package/esm2022/lib/modules/header-bar/models/header-bar-notification.model.mjs +11 -0
- package/esm2022/lib/modules/header-bar/models/index.mjs +6 -0
- package/esm2022/lib/modules/header-bar/utils/apps.mjs +221 -0
- package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-menu-item.mjs +51 -0
- package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-modal.mjs +30 -0
- package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-table.mjs +39 -0
- package/esm2022/lib/modules/header-bar/utils/debug-info/use-debug-info.mjs +12 -0
- package/esm2022/lib/modules/header-bar/utils/header-bar-context.mjs +17 -0
- package/esm2022/lib/modules/header-bar/utils/header-bar.mjs +56 -0
- package/esm2022/lib/modules/header-bar/utils/join-path.mjs +5 -0
- package/esm2022/lib/modules/header-bar/utils/logo-image.mjs +52 -0
- package/esm2022/lib/modules/header-bar/utils/logo.mjs +35 -0
- package/esm2022/lib/modules/header-bar/utils/notification-icon.mjs +76 -0
- package/esm2022/lib/modules/header-bar/utils/notifications.mjs +35 -0
- package/esm2022/lib/modules/header-bar/utils/profile/use-on-doc-click.mjs +21 -0
- package/esm2022/lib/modules/header-bar/utils/profile-menu/index.mjs +2 -0
- package/esm2022/lib/modules/header-bar/utils/profile-menu/profile-header.mjs +95 -0
- package/esm2022/lib/modules/header-bar/utils/profile-menu/profile-menu.mjs +101 -0
- package/esm2022/lib/modules/header-bar/utils/profile-menu/update-notification.mjs +54 -0
- package/esm2022/lib/modules/header-bar/utils/profile.mjs +58 -0
- package/esm2022/lib/modules/header-bar/utils/title.mjs +22 -0
- package/esm2022/lib/ng-dhis2-ui.module.mjs +15 -0
- package/esm2022/lib/shared/components/index.mjs +7 -0
- package/esm2022/lib/shared/components/react-component-wrapper/react-wrapper.component.mjs +53 -0
- package/esm2022/lib/shared/shared.module.mjs +18 -0
- package/fesm2022/iapps-ng-dhis2-ui.mjs +1239 -0
- package/fesm2022/iapps-ng-dhis2-ui.mjs.map +1 -0
- package/index.d.ts +4 -0
- package/lib/modules/app-shell/app-shell.component.d.ts +8 -0
- package/lib/modules/app-shell/app-shell.module.d.ts +9 -0
- package/lib/modules/app-shell/index.d.ts +2 -0
- package/lib/modules/button/button.component.d.ts +19 -0
- package/lib/modules/button/button.module.d.ts +9 -0
- package/lib/modules/button/index.d.ts +2 -0
- package/lib/modules/header-bar/header-bar.component.d.ts +14 -0
- package/lib/modules/header-bar/header-bar.module.d.ts +9 -0
- package/lib/modules/header-bar/index.d.ts +2 -0
- package/lib/modules/header-bar/models/header-bar-app.model.d.ts +10 -0
- package/lib/modules/header-bar/models/header-bar-data.model.d.ts +16 -0
- package/lib/modules/header-bar/models/header-bar-notification.model.d.ts +5 -0
- package/lib/modules/header-bar/models/index.d.ts +2 -0
- package/lib/modules/header-bar/utils/apps.d.ts +16 -0
- package/lib/modules/header-bar/utils/debug-info/debug-info-menu-item.d.ts +15 -0
- package/lib/modules/header-bar/utils/debug-info/debug-info-modal.d.ts +8 -0
- package/lib/modules/header-bar/utils/debug-info/debug-info-table.d.ts +8 -0
- package/lib/modules/header-bar/utils/debug-info/use-debug-info.d.ts +7 -0
- package/lib/modules/header-bar/utils/header-bar-context.d.ts +14 -0
- package/lib/modules/header-bar/utils/header-bar.d.ts +19 -0
- package/lib/modules/header-bar/utils/join-path.d.ts +1 -0
- package/lib/modules/header-bar/utils/logo-image.d.ts +8 -0
- package/lib/modules/header-bar/utils/logo.d.ts +12 -0
- package/lib/modules/header-bar/utils/notification-icon.d.ts +21 -0
- package/lib/modules/header-bar/utils/notifications.d.ts +16 -0
- package/lib/modules/header-bar/utils/profile/use-on-doc-click.d.ts +1 -0
- package/lib/modules/header-bar/utils/profile-menu/index.d.ts +1 -0
- package/lib/modules/header-bar/utils/profile-menu/profile-header.d.ts +16 -0
- package/lib/modules/header-bar/utils/profile-menu/profile-menu.d.ts +13 -0
- package/lib/modules/header-bar/utils/profile-menu/update-notification.d.ts +14 -0
- package/lib/modules/header-bar/utils/profile.d.ts +18 -0
- package/lib/modules/header-bar/utils/title.d.ts +15 -0
- package/lib/ng-dhis2-ui.module.d.ts +7 -0
- package/lib/shared/components/index.d.ts +3 -0
- package/lib/shared/components/react-component-wrapper/react-wrapper.component.d.ts +19 -0
- package/lib/shared/shared.module.d.ts +7 -0
- package/package.json +38 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { UserAvatar } from '@dhis2-ui/user-avatar';
|
|
2
|
+
import { useConfig } from '@dhis2/app-runtime';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { joinPath } from '../join-path';
|
|
6
|
+
import i18n from '@dhis2/d2-i18n';
|
|
7
|
+
const ProfileName = (params) => {
|
|
8
|
+
const { children } = params;
|
|
9
|
+
return (React.createElement("div", { className: "headerbar-profile-username", "data-test": "headerbar-profile-username" },
|
|
10
|
+
children,
|
|
11
|
+
React.createElement("style", { jsx: true }, `
|
|
12
|
+
.headerbar-profile-username {
|
|
13
|
+
margin-bottom: 3px;
|
|
14
|
+
font-size: 16px;
|
|
15
|
+
line-height: 19px;
|
|
16
|
+
}
|
|
17
|
+
`)));
|
|
18
|
+
};
|
|
19
|
+
ProfileName.propTypes = {
|
|
20
|
+
children: PropTypes.string,
|
|
21
|
+
};
|
|
22
|
+
const ProfileEmail = (params) => {
|
|
23
|
+
const { children } = params;
|
|
24
|
+
return (React.createElement("div", { className: "headerbar-profile-user-email", "data-test": "headerbar-profile-user-email" },
|
|
25
|
+
children,
|
|
26
|
+
React.createElement("style", { jsx: true }, `
|
|
27
|
+
.headerbar-profile-user-email {
|
|
28
|
+
margin-bottom: 6px;
|
|
29
|
+
font-size: 14px;
|
|
30
|
+
line-height: 16px;
|
|
31
|
+
}
|
|
32
|
+
`)));
|
|
33
|
+
};
|
|
34
|
+
ProfileEmail.propTypes = {
|
|
35
|
+
children: PropTypes.string,
|
|
36
|
+
};
|
|
37
|
+
const ProfileEdit = (params) => {
|
|
38
|
+
const { children } = params;
|
|
39
|
+
const { baseUrl } = useConfig();
|
|
40
|
+
return (React.createElement("a", { className: "headerbar-profile-edit-profile-link", href: joinPath(baseUrl, 'dhis-web-user-profile/#/profile'), "data-test": "headerbar-profile-edit-profile-link" },
|
|
41
|
+
children,
|
|
42
|
+
React.createElement("style", { jsx: true }, `
|
|
43
|
+
.headerbar-profile-edit-profile-link {
|
|
44
|
+
color: rgba(0, 0, 0, 0.87);
|
|
45
|
+
font-size: 12px;
|
|
46
|
+
line-height: 14px;
|
|
47
|
+
text-decoration: underline !important;
|
|
48
|
+
cursor: pointer;
|
|
49
|
+
}
|
|
50
|
+
`)));
|
|
51
|
+
};
|
|
52
|
+
ProfileEdit.propTypes = {
|
|
53
|
+
children: PropTypes.string,
|
|
54
|
+
};
|
|
55
|
+
const ProfileDetails = (params) => {
|
|
56
|
+
const { name, email } = params;
|
|
57
|
+
return (React.createElement("div", { className: "headerbar-profile-details" },
|
|
58
|
+
React.createElement(ProfileName, null, name),
|
|
59
|
+
React.createElement(ProfileEmail, null, email),
|
|
60
|
+
React.createElement(ProfileEdit, null, i18n.t('Edit profile')),
|
|
61
|
+
React.createElement("style", { jsx: true }, `
|
|
62
|
+
.headerbar-profile-details {
|
|
63
|
+
display: flex;
|
|
64
|
+
flex-direction: column;
|
|
65
|
+
margin-left: 20px;
|
|
66
|
+
color: #000;
|
|
67
|
+
font-size: 14px;
|
|
68
|
+
font-weight: 400;
|
|
69
|
+
}
|
|
70
|
+
`)));
|
|
71
|
+
};
|
|
72
|
+
ProfileDetails.propTypes = {
|
|
73
|
+
email: PropTypes.string,
|
|
74
|
+
name: PropTypes.string,
|
|
75
|
+
};
|
|
76
|
+
export const ProfileHeader = (params) => {
|
|
77
|
+
const { name, email, avatarId } = params;
|
|
78
|
+
return (React.createElement("div", { className: "headerbar-profile-header" },
|
|
79
|
+
React.createElement(UserAvatar, { avatarId: avatarId, name: name, dataTest: "headerbar-profile-menu-icon", large: true }),
|
|
80
|
+
React.createElement(ProfileDetails, { name: name, email: email }),
|
|
81
|
+
React.createElement("style", { jsx: true }, `
|
|
82
|
+
.headerbar-profile-header {
|
|
83
|
+
display: flex;
|
|
84
|
+
flex-direction: row;
|
|
85
|
+
margin-left: 24px;
|
|
86
|
+
padding-top: 20px;
|
|
87
|
+
}
|
|
88
|
+
`)));
|
|
89
|
+
};
|
|
90
|
+
ProfileHeader.propTypes = {
|
|
91
|
+
avatarId: PropTypes.string,
|
|
92
|
+
email: PropTypes.string,
|
|
93
|
+
name: PropTypes.string,
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1oZWFkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvaGVhZGVyLWJhci91dGlscy9wcm9maWxlLW1lbnUvcHJvZmlsZS1oZWFkZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDOUMsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFBO0FBQ2xDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUN6QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3ZDLE9BQU8sSUFBSSxNQUFNLGdCQUFnQixDQUFBO0FBUWpDLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBVyxFQUFFLEVBQUU7SUFDaEMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUM1QixPQUFRLENBQ1IsNkJBQUssU0FBUyxFQUFDLDRCQUE0QixlQUFXLDRCQUE0QjtRQUM3RSxRQUFRO1FBRVQsK0JBQU8sR0FBRyxVQUFFOzs7Ozs7U0FNWCxDQUFTLENBQ1IsQ0FDVCxDQUFBO0FBQUMsQ0FBQyxDQUFBO0FBQ0gsV0FBVyxDQUFDLFNBQVMsR0FBRztJQUNwQixRQUFRLEVBQUUsU0FBUyxDQUFDLE1BQU07Q0FDN0IsQ0FBQTtBQUVELE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBVyxFQUFFLEVBQUU7SUFDakMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUM1QixPQUFPLENBQ0gsNkJBQUssU0FBUyxFQUFDLDhCQUE4QixlQUFXLDhCQUE4QjtRQUNqRixRQUFRO1FBRVQsK0JBQU8sR0FBRyxVQUFFOzs7Ozs7YUFNWCxDQUFTLENBQ1IsQ0FDVCxDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBQ0QsWUFBWSxDQUFDLFNBQVMsR0FBRztJQUNyQixRQUFRLEVBQUUsU0FBUyxDQUFDLE1BQU07Q0FDN0IsQ0FBQTtBQUVELE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBVyxFQUFFLEVBQUU7SUFDaEMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUM1QixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUE7SUFFL0IsT0FBTyxDQUNILDJCQUNJLFNBQVMsRUFBQyxxQ0FBcUMsRUFDL0MsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsaUNBQWlDLENBQUMsZUFDaEQscUNBQXFDO1FBRTlDLFFBQVE7UUFFVCwrQkFBTyxHQUFHLFVBQUU7Ozs7Ozs7O2FBUVgsQ0FBUyxDQUNWLENBQ1AsQ0FBQTtBQUNMLENBQUMsQ0FBQTtBQUVELFdBQVcsQ0FBQyxTQUFTLEdBQUc7SUFDcEIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0NBQzdCLENBQUE7QUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQVcsRUFBRSxFQUFFO0lBQ25DLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQy9CLE9BQU8sQ0FDSCw2QkFBSyxTQUFTLEVBQUMsMkJBQTJCO1FBQ3RDLG9CQUFDLFdBQVcsUUFBRSxJQUFJLENBQWU7UUFDakMsb0JBQUMsWUFBWSxRQUFFLEtBQUssQ0FBZ0I7UUFDcEMsb0JBQUMsV0FBVyxRQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQWU7UUFFbkQsK0JBQU8sR0FBRyxVQUFFOzs7Ozs7Ozs7YUFTWCxDQUFTLENBQ1IsQ0FDVCxDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBRUQsY0FBYyxDQUFDLFNBQVMsR0FBRztJQUN2QixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU07SUFDdkIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0NBQ3pCLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRTtJQUN6QyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDekMsT0FBTyxDQUFDLDZCQUFLLFNBQVMsRUFBQywwQkFBMEI7UUFDN0Msb0JBQUMsVUFBVSxJQUNQLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLElBQUksRUFBRSxJQUFJLEVBQ1YsUUFBUSxFQUFDLDZCQUE2QixFQUN0QyxLQUFLLFNBQ1A7UUFDRixvQkFBQyxjQUFjLElBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxHQUFJO1FBRTVDLCtCQUFPLEdBQUcsVUFBRTs7Ozs7OztTQU9YLENBQVMsQ0FDUixDQUNULENBQUE7QUFBQyxDQUFDLENBQUE7QUFFSCxhQUFhLENBQUMsU0FBUyxHQUFHO0lBQ3RCLFFBQVEsRUFBRSxTQUFTLENBQUMsTUFBTTtJQUMxQixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU07SUFDdkIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0NBQ3pCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VyQXZhdGFyIH0gZnJvbSAnQGRoaXMyLXVpL3VzZXItYXZhdGFyJ1xuaW1wb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSAnQGRoaXMyL2FwcC1ydW50aW1lJ1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgam9pblBhdGggfSBmcm9tICcuLi9qb2luLXBhdGgnXG5pbXBvcnQgaTE4biBmcm9tICdAZGhpczIvZDItaTE4bidcbmRlY2xhcmUgbW9kdWxlICdyZWFjdCcge1xuICAgIGludGVyZmFjZSBTdHlsZUhUTUxBdHRyaWJ1dGVzPFQ+IGV4dGVuZHMgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8VD4ge1xuICAgICAganN4PzogYm9vbGVhbjtcbiAgICAgIGdsb2JhbD86IGJvb2xlYW47XG4gICAgfVxuICB9XG5cbmNvbnN0IFByb2ZpbGVOYW1lID0gKHBhcmFtczogYW55KSA9PiB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gcGFyYW1zO1xuICAgIHJldHVybiAgKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVhZGVyYmFyLXByb2ZpbGUtdXNlcm5hbWVcIiBkYXRhLXRlc3Q9XCJoZWFkZXJiYXItcHJvZmlsZS11c2VybmFtZVwiPlxuICAgICAgICB7Y2hpbGRyZW59XG5cbiAgICAgICAgPHN0eWxlIGpzeD57YFxuICAgICAgICAgICAgLmhlYWRlcmJhci1wcm9maWxlLXVzZXJuYW1lIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICBgfTwvc3R5bGU+XG4gICAgPC9kaXY+XG4pIH1cblByb2ZpbGVOYW1lLnByb3BUeXBlcyA9IHtcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLnN0cmluZyxcbn1cblxuY29uc3QgUHJvZmlsZUVtYWlsID0gKHBhcmFtczogYW55KSA9PiB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gcGFyYW1zO1xuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVhZGVyYmFyLXByb2ZpbGUtdXNlci1lbWFpbFwiIGRhdGEtdGVzdD1cImhlYWRlcmJhci1wcm9maWxlLXVzZXItZW1haWxcIj5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICBcbiAgICAgICAgICAgIDxzdHlsZSBqc3g+e2BcbiAgICAgICAgICAgICAgICAuaGVhZGVyYmFyLXByb2ZpbGUtdXNlci1lbWFpbCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBgfTwvc3R5bGU+XG4gICAgICAgIDwvZGl2PlxuICAgIClcbn1cblByb2ZpbGVFbWFpbC5wcm9wVHlwZXMgPSB7XG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5zdHJpbmcsXG59XG5cbmNvbnN0IFByb2ZpbGVFZGl0ID0gKHBhcmFtczogYW55KSA9PiB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gcGFyYW1zO1xuICAgIGNvbnN0IHsgYmFzZVVybCB9ID0gdXNlQ29uZmlnKClcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxhXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJoZWFkZXJiYXItcHJvZmlsZS1lZGl0LXByb2ZpbGUtbGlua1wiXG4gICAgICAgICAgICBocmVmPXtqb2luUGF0aChiYXNlVXJsLCAnZGhpcy13ZWItdXNlci1wcm9maWxlLyMvcHJvZmlsZScpfVxuICAgICAgICAgICAgZGF0YS10ZXN0PVwiaGVhZGVyYmFyLXByb2ZpbGUtZWRpdC1wcm9maWxlLWxpbmtcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG5cbiAgICAgICAgICAgIDxzdHlsZSBqc3g+e2BcbiAgICAgICAgICAgICAgICAuaGVhZGVyYmFyLXByb2ZpbGUtZWRpdC1wcm9maWxlLWxpbmsge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGB9PC9zdHlsZT5cbiAgICAgICAgPC9hPlxuICAgIClcbn1cblxuUHJvZmlsZUVkaXQucHJvcFR5cGVzID0ge1xuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuc3RyaW5nLFxufVxuXG5jb25zdCBQcm9maWxlRGV0YWlscyA9IChwYXJhbXM6IGFueSkgPT4ge1xuICAgIGNvbnN0IHsgbmFtZSwgZW1haWwgfSA9IHBhcmFtcztcbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlcmJhci1wcm9maWxlLWRldGFpbHNcIj5cbiAgICAgICAgICAgIDxQcm9maWxlTmFtZT57bmFtZX08L1Byb2ZpbGVOYW1lPlxuICAgICAgICAgICAgPFByb2ZpbGVFbWFpbD57ZW1haWx9PC9Qcm9maWxlRW1haWw+XG4gICAgICAgICAgICA8UHJvZmlsZUVkaXQ+e2kxOG4udCgnRWRpdCBwcm9maWxlJyl9PC9Qcm9maWxlRWRpdD5cbiAgICBcbiAgICAgICAgICAgIDxzdHlsZSBqc3g+e2BcbiAgICAgICAgICAgICAgICAuaGVhZGVyYmFyLXByb2ZpbGUtZGV0YWlscyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGB9PC9zdHlsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgKVxufVxuXG5Qcm9maWxlRGV0YWlscy5wcm9wVHlwZXMgPSB7XG4gICAgZW1haWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbn1cblxuZXhwb3J0IGNvbnN0IFByb2ZpbGVIZWFkZXIgPSAocGFyYW1zOiBhbnkpID0+IHtcbiAgICBjb25zdCB7IG5hbWUsIGVtYWlsLCBhdmF0YXJJZCB9ID0gcGFyYW1zO1xuICAgIHJldHVybiAoPGRpdiBjbGFzc05hbWU9XCJoZWFkZXJiYXItcHJvZmlsZS1oZWFkZXJcIj5cbiAgICAgICAgPFVzZXJBdmF0YXJcbiAgICAgICAgICAgIGF2YXRhcklkPXthdmF0YXJJZH1cbiAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICBkYXRhVGVzdD1cImhlYWRlcmJhci1wcm9maWxlLW1lbnUtaWNvblwiXG4gICAgICAgICAgICBsYXJnZVxuICAgICAgICAvPlxuICAgICAgICA8UHJvZmlsZURldGFpbHMgbmFtZT17bmFtZX0gZW1haWw9e2VtYWlsfSAvPlxuXG4gICAgICAgIDxzdHlsZSBqc3g+e2BcbiAgICAgICAgICAgIC5oZWFkZXJiYXItcHJvZmlsZS1oZWFkZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMjRweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgYH08L3N0eWxlPlxuICAgIDwvZGl2PlxuKSB9XG5cblByb2ZpbGVIZWFkZXIucHJvcFR5cGVzID0ge1xuICAgIGF2YXRhcklkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGVtYWlsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG59XG4iXX0=
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { Card } from '@dhis2-ui/card';
|
|
2
|
+
import { Center } from '@dhis2-ui/center';
|
|
3
|
+
import { Divider } from '@dhis2-ui/divider';
|
|
4
|
+
import { Layer } from '@dhis2-ui/layer';
|
|
5
|
+
import { CircularLoader } from '@dhis2-ui/loader';
|
|
6
|
+
import { MenuDivider, MenuItem } from '@dhis2-ui/menu';
|
|
7
|
+
import { clearSensitiveCaches, useConfig } from '@dhis2/app-runtime';
|
|
8
|
+
import { colors } from '@dhis2/ui-constants';
|
|
9
|
+
import { IconSettings24, IconInfo24, IconLogOut24, IconUser24, IconQuestion24, } from '@dhis2/ui-icons';
|
|
10
|
+
import PropTypes from 'prop-types';
|
|
11
|
+
import React, { useState } from 'react';
|
|
12
|
+
import { DebugInfoMenuItem } from '../debug-info/debug-info-menu-item';
|
|
13
|
+
import { joinPath } from '../join-path';
|
|
14
|
+
import i18n from '@dhis2/d2-i18n';
|
|
15
|
+
import { ProfileHeader } from './profile-header';
|
|
16
|
+
import { UpdateNotification } from './update-notification';
|
|
17
|
+
const LoadingMask = () => (React.createElement(Layer, { translucent: true, disablePortal: true, dataTest: "headerbar-profile-menu-loading-mask" },
|
|
18
|
+
React.createElement(Center, null,
|
|
19
|
+
React.createElement(CircularLoader, null))));
|
|
20
|
+
const ProfileContents = (params) => {
|
|
21
|
+
const { name, email, avatarId, helpUrl, hideProfileMenu, showDebugInfoModal, } = params;
|
|
22
|
+
const { baseUrl } = useConfig();
|
|
23
|
+
const [loading, setLoading] = useState(false);
|
|
24
|
+
return (React.createElement(Card, null,
|
|
25
|
+
React.createElement("div", { className: "headerbar-profile-contents" },
|
|
26
|
+
React.createElement(ProfileHeader, { name: name, email: email, avatarId: avatarId }),
|
|
27
|
+
React.createElement(Divider, { margin: "13px 0 7px 0" }),
|
|
28
|
+
React.createElement("ul", { "data-test": "headerbar-profile-menu" },
|
|
29
|
+
React.createElement(MenuItem, { href: joinPath(baseUrl, 'dhis-web-user-profile/#/settings'), label: i18n.t('Settings'), value: "settings", icon: React.createElement(IconSettings24, { color: colors.grey700 }) }),
|
|
30
|
+
React.createElement(MenuItem, { href: joinPath(baseUrl, 'dhis-web-user-profile/#/account'), label: i18n.t('Account'), value: "account", icon: React.createElement(IconUser24, { color: colors.grey700 }) }),
|
|
31
|
+
helpUrl && (React.createElement(MenuItem, { href: helpUrl, label: i18n.t('Help'), value: "help", icon: React.createElement(IconQuestion24, { color: colors.grey700 }) })),
|
|
32
|
+
React.createElement(MenuItem, { href: joinPath(baseUrl, 'dhis-web-user-profile/#/aboutPage'), label: i18n.t('About DHIS2'), value: "about", icon: React.createElement(IconInfo24, { color: colors.grey700 }) }),
|
|
33
|
+
React.createElement(MenuItem, { href: joinPath(baseUrl, 'dhis-web-commons-security/logout.action'),
|
|
34
|
+
// NB: By MenuItem implementation, this callback
|
|
35
|
+
// overwrites default navigation behavior but maintains
|
|
36
|
+
// the href attribute
|
|
37
|
+
onClick: async () => {
|
|
38
|
+
setLoading(true);
|
|
39
|
+
await clearSensitiveCaches();
|
|
40
|
+
setLoading(false);
|
|
41
|
+
window.location.assign(joinPath(baseUrl, 'dhis-web-commons-security/logout.action'));
|
|
42
|
+
}, label: i18n.t('Logout'), value: "logout", icon: React.createElement(IconLogOut24, { color: colors.grey700 }) }),
|
|
43
|
+
React.createElement(MenuDivider, { dense: true }),
|
|
44
|
+
React.createElement(DebugInfoMenuItem, { hideProfileMenu: hideProfileMenu, showDebugInfoModal: showDebugInfoModal }),
|
|
45
|
+
React.createElement(UpdateNotification, { hideProfileMenu: hideProfileMenu }))),
|
|
46
|
+
loading && React.createElement(LoadingMask, null),
|
|
47
|
+
React.createElement("style", { jsx: true }, `
|
|
48
|
+
.headerbar-profile-contents {
|
|
49
|
+
width: 100%;
|
|
50
|
+
padding: 0;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.headerbar-profile-contents ul {
|
|
54
|
+
padding: 0;
|
|
55
|
+
margin: 0;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.headerbar-profile-contents a {
|
|
59
|
+
display: inline-flex !important;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.headerbar-profile-contents a,
|
|
63
|
+
.headerbar-profile-contents a:hover,
|
|
64
|
+
.headerbar-profile-contents a:focus,
|
|
65
|
+
.headerbar-profile-contents a:active,
|
|
66
|
+
.headerbar-profile-contents a:visited {
|
|
67
|
+
text-decoration: none;
|
|
68
|
+
display: block;
|
|
69
|
+
}
|
|
70
|
+
`)));
|
|
71
|
+
};
|
|
72
|
+
ProfileContents.propTypes = {
|
|
73
|
+
hideProfileMenu: PropTypes.func.isRequired,
|
|
74
|
+
showDebugInfoModal: PropTypes.func.isRequired,
|
|
75
|
+
avatarId: PropTypes.string,
|
|
76
|
+
email: PropTypes.string,
|
|
77
|
+
helpUrl: PropTypes.string,
|
|
78
|
+
name: PropTypes.string,
|
|
79
|
+
};
|
|
80
|
+
export const ProfileMenu = (params) => {
|
|
81
|
+
const { ...props } = params;
|
|
82
|
+
return (React.createElement("div", { className: "headerbar-profile-menu", "data-test": "headerbar-profile-menu" },
|
|
83
|
+
React.createElement(ProfileContents, { ...props }),
|
|
84
|
+
React.createElement("style", { jsx: true }, `
|
|
85
|
+
.headerbar-profile-menu {
|
|
86
|
+
z-index: 10000;
|
|
87
|
+
position: absolute;
|
|
88
|
+
right: 4px;
|
|
89
|
+
width: 320px;
|
|
90
|
+
}
|
|
91
|
+
`)));
|
|
92
|
+
};
|
|
93
|
+
ProfileMenu.propTypes = {
|
|
94
|
+
hideProfileMenu: PropTypes.func.isRequired,
|
|
95
|
+
showDebugInfoModal: PropTypes.func.isRequired,
|
|
96
|
+
avatarId: PropTypes.string,
|
|
97
|
+
email: PropTypes.string,
|
|
98
|
+
helpUrl: PropTypes.string,
|
|
99
|
+
name: PropTypes.string,
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1tZW51LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbmctZGhpczItdWkvc3JjL2xpYi9tb2R1bGVzL2hlYWRlci1iYXIvdXRpbHMvcHJvZmlsZS1tZW51L3Byb2ZpbGUtbWVudS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDNUMsT0FBTyxFQUNILGNBQWMsRUFDZCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixjQUFjLEdBQ2pCLE1BQU0saUJBQWlCLENBQUE7QUFDeEIsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFBO0FBQ2xDLE9BQU8sS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDdkMsT0FBTyxJQUFJLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxr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MUMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVO0lBQzdDLFFBQVEsRUFBRSxTQUFTLENBQUMsTUFBTTtJQUMxQixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU07SUFDdkIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxNQUFNO0lBQ3pCLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTtDQUN6QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2FyZCB9IGZyb20gJ0BkaGlzMi11aS9jYXJkJ1xuaW1wb3J0IHsgQ2VudGVyIH0gZnJvbSAnQGRoaXMyLXVpL2NlbnRlcidcbmltcG9ydCB7IERpdmlkZXIgfSBmcm9tICdAZGhpczItdWkvZGl2aWRlcidcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnQGRoaXMyLXVpL2xheWVyJ1xuaW1wb3J0IHsgQ2lyY3VsYXJMb2FkZXIgfSBmcm9tICdAZGhpczItdWkvbG9hZGVyJ1xuaW1wb3J0IHsgTWVudURpdmlkZXIsIE1lbnVJdGVtIH0gZnJvbSAnQGRoaXMyLXVpL21lbnUnXG5pbXBvcnQgeyBjbGVhclNlbnNpdGl2ZUNhY2hlcywgdXNlQ29uZmlnIH0gZnJvbSAnQGRoaXMyL2FwcC1ydW50aW1lJ1xuaW1wb3J0IHsgY29sb3JzIH0gZnJvbSAnQGRoaXMyL3VpLWNvbnN0YW50cydcbmltcG9ydCB7XG4gICAgSWNvblNldHRpbmdzMjQsXG4gICAgSWNvbkluZm8yNCxcbiAgICBJY29uTG9nT3V0MjQsXG4gICAgSWNvblVzZXIyNCxcbiAgICBJY29uUXVlc3Rpb24yNCxcbn0gZnJvbSAnQGRoaXMyL3VpLWljb25zJ1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBEZWJ1Z0luZm9NZW51SXRlbSB9IGZyb20gJy4uL2RlYnVnLWluZm8vZGVidWctaW5mby1tZW51LWl0ZW0nXG5pbXBvcnQgeyBqb2luUGF0aCB9IGZyb20gJy4uL2pvaW4tcGF0aCdcbmltcG9ydCBpMThuIGZyb20gJ0BkaGlzMi9kMi1pMThuJztcbmltcG9ydCB7IFByb2ZpbGVIZWFkZXIgfSBmcm9tICcuL3Byb2ZpbGUtaGVhZGVyJ1xuaW1wb3J0IHsgVXBkYXRlTm90aWZpY2F0aW9uIH0gZnJvbSAnLi91cGRhdGUtbm90aWZpY2F0aW9uJ1xuXG5jb25zdCBMb2FkaW5nTWFzayA9ICgpID0+IChcbiAgICA8TGF5ZXJcbiAgICAgICAgdHJhbnNsdWNlbnRcbiAgICAgICAgZGlzYWJsZVBvcnRhbFxuICAgICAgICBkYXRhVGVzdD1cImhlYWRlcmJhci1wcm9maWxlLW1lbnUtbG9hZGluZy1tYXNrXCJcbiAgICA+XG4gICAgICAgIDxDZW50ZXI+XG4gICAgICAgICAgICA8Q2lyY3VsYXJMb2FkZXIgLz5cbiAgICAgICAgPC9DZW50ZXI+XG4gICAgPC9MYXllcj5cbilcblxuY29uc3QgUHJvZmlsZUNvbnRlbnRzID0gKHBhcmFtczogYW55KSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgICBuYW1lLFxuICAgICAgICBlbWFpbCxcbiAgICAgICAgYXZhdGFySWQsXG4gICAgICAgIGhlbHBVcmwsXG4gICAgICAgIGhpZGVQcm9maWxlTWVudSxcbiAgICAgICAgc2hvd0RlYnVnSW5mb01vZGFsLFxuICAgIH0gPSBwYXJhbXM7XG4gICAgY29uc3QgeyBiYXNlVXJsIH0gPSB1c2VDb25maWcoKVxuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPENhcmQ+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlcmJhci1wcm9maWxlLWNvbnRlbnRzXCI+XG4gICAgICAgICAgICAgICAgPFByb2ZpbGVIZWFkZXIgbmFtZT17bmFtZX0gZW1haWw9e2VtYWlsfSBhdmF0YXJJZD17YXZhdGFySWR9IC8+XG4gICAgICAgICAgICAgICAgPERpdmlkZXIgbWFyZ2luPVwiMTNweCAwIDdweCAwXCIgLz5cbiAgICAgICAgICAgICAgICA8dWwgZGF0YS10ZXN0PVwiaGVhZGVyYmFyLXByb2ZpbGUtbWVudVwiPlxuICAgICAgICAgICAgICAgICAgICA8TWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2pvaW5QYXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RoaXMtd2ViLXVzZXItcHJvZmlsZS8jL3NldHRpbmdzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtpMThuLnQoJ1NldHRpbmdzJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInNldHRpbmdzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249ezxJY29uU2V0dGluZ3MyNCBjb2xvcj17Y29sb3JzLmdyZXk3MDB9IC8+fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8TWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2pvaW5QYXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RoaXMtd2ViLXVzZXItcHJvZmlsZS8jL2FjY291bnQnXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2kxOG4udCgnQWNjb3VudCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJhY2NvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249ezxJY29uVXNlcjI0IGNvbG9yPXtjb2xvcnMuZ3JleTcwMH0gLz59XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIHtoZWxwVXJsICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxNZW51SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2hlbHBVcmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2kxOG4udCgnSGVscCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiaGVscFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PEljb25RdWVzdGlvbjI0IGNvbG9yPXtjb2xvcnMuZ3JleTcwMH0gLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8TWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2pvaW5QYXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RoaXMtd2ViLXVzZXItcHJvZmlsZS8jL2Fib3V0UGFnZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17aTE4bi50KCdBYm91dCBESElTMicpfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJhYm91dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8SWNvbkluZm8yNCBjb2xvcj17Y29sb3JzLmdyZXk3MDB9IC8+fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8TWVudUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2pvaW5QYXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RoaXMtd2ViLWNvbW1vbnMtc2VjdXJpdHkvbG9nb3V0LmFjdGlvbidcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBOQjogQnkgTWVudUl0ZW0gaW1wbGVtZW50YXRpb24sIHRoaXMgY2FsbGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG92ZXJ3cml0ZXMgZGVmYXVsdCBuYXZpZ2F0aW9uIGJlaGF2aW9yIGJ1dCBtYWludGFpbnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBocmVmIGF0dHJpYnV0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17YXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBjbGVhclNlbnNpdGl2ZUNhY2hlcygpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqb2luUGF0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGhpcy13ZWItY29tbW9ucy1zZWN1cml0eS9sb2dvdXQuYWN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtpMThuLnQoJ0xvZ291dCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJsb2dvdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PEljb25Mb2dPdXQyNCBjb2xvcj17Y29sb3JzLmdyZXk3MDB9IC8+fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8TWVudURpdmlkZXIgZGVuc2UgLz5cbiAgICAgICAgICAgICAgICAgICAgPERlYnVnSW5mb01lbnVJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBoaWRlUHJvZmlsZU1lbnU9e2hpZGVQcm9maWxlTWVudX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dEZWJ1Z0luZm9Nb2RhbD17c2hvd0RlYnVnSW5mb01vZGFsfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8VXBkYXRlTm90aWZpY2F0aW9uIGhpZGVQcm9maWxlTWVudT17aGlkZVByb2ZpbGVNZW51fSAvPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAge2xvYWRpbmcgJiYgPExvYWRpbmdNYXNrIC8+fVxuXG4gICAgICAgICAgICA8c3R5bGUganN4PntgXG4gICAgICAgICAgICAgICAgLmhlYWRlcmJhci1wcm9maWxlLWNvbnRlbnRzIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmhlYWRlcmJhci1wcm9maWxlLWNvbnRlbnRzIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5oZWFkZXJiYXItcHJvZmlsZS1jb250ZW50cyBhIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgIC5oZWFkZXJiYXItcHJvZmlsZS1jb250ZW50cyBhLFxuICAgICAgICAgICAgICAgLmhlYWRlcmJhci1wcm9maWxlLWNvbnRlbnRzIGE6aG92ZXIsXG4gICAgICAgICAgICAgICAuaGVhZGVyYmFyLXByb2ZpbGUtY29udGVudHMgYTpmb2N1cyxcbiAgICAgICAgICAgICAgIC5oZWFkZXJiYXItcHJvZmlsZS1jb250ZW50cyBhOmFjdGl2ZSxcbiAgICAgICAgICAgICAgIC5oZWFkZXJiYXItcHJvZmlsZS1jb250ZW50cyBhOnZpc2l0ZWQge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGB9PC9zdHlsZT5cbiAgICAgICAgPC9DYXJkPlxuICAgIClcbn1cblxuUHJvZmlsZUNvbnRlbnRzLnByb3BUeXBlcyA9IHtcbiAgICBoaWRlUHJvZmlsZU1lbnU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2hvd0RlYnVnSW5mb01vZGFsOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGF2YXRhcklkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGVtYWlsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGhlbHBVcmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbn1cblxuZXhwb3J0IGNvbnN0IFByb2ZpbGVNZW51ID0gKHBhcmFtczogYW55KSA9PiB7XG4gICAgY29uc3QgeyAuLi5wcm9wcyB9PXBhcmFtcztcbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlcmJhci1wcm9maWxlLW1lbnVcIiBkYXRhLXRlc3Q9XCJoZWFkZXJiYXItcHJvZmlsZS1tZW51XCI+XG4gICAgICAgICAgICA8UHJvZmlsZUNvbnRlbnRzIHsuLi5wcm9wc30gLz5cbiAgICAgICAgICAgIDxzdHlsZSBqc3g+e2BcbiAgICAgICAgICAgICAgICAuaGVhZGVyYmFyLXByb2ZpbGUtbWVudSB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwMDAwO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzMjBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBgfTwvc3R5bGU+XG4gICAgICAgIDwvZGl2PlxuICAgIClcbn1cblxuUHJvZmlsZU1lbnUucHJvcFR5cGVzID0ge1xuICAgIGhpZGVQcm9maWxlTWVudTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBzaG93RGVidWdJbmZvTW9kYWw6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgYXZhdGFySWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZW1haWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaGVscFVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxufVxuIl19
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { MenuItem } from '@dhis2-ui/menu';
|
|
2
|
+
import { useConfig } from '@dhis2/app-runtime';
|
|
3
|
+
import { colors } from '@dhis2/ui-constants';
|
|
4
|
+
import PropTypes from 'prop-types';
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { useHeaderBarContext } from '../header-bar-context';
|
|
7
|
+
import i18n from '@dhis2/d2-i18n';
|
|
8
|
+
export function UpdateNotification(params) {
|
|
9
|
+
const { hideProfileMenu } = params;
|
|
10
|
+
const { appName } = useConfig();
|
|
11
|
+
const { updateAvailable, onApplyAvailableUpdate } = useHeaderBarContext();
|
|
12
|
+
const onClick = () => {
|
|
13
|
+
hideProfileMenu();
|
|
14
|
+
onApplyAvailableUpdate?.();
|
|
15
|
+
};
|
|
16
|
+
const updateNotificationLabel = (React.createElement("div", { className: "root" },
|
|
17
|
+
React.createElement("div", { className: "badge" }),
|
|
18
|
+
React.createElement("div", { className: "spacer" }),
|
|
19
|
+
React.createElement("div", { className: "message" },
|
|
20
|
+
appName
|
|
21
|
+
? i18n.t('New {{appName}} version available', { appName })
|
|
22
|
+
: i18n.t('New app version available'),
|
|
23
|
+
React.createElement("br", null),
|
|
24
|
+
i18n.t('Click to reload')),
|
|
25
|
+
React.createElement("style", { jsx: true }, `
|
|
26
|
+
.root {
|
|
27
|
+
display: flex;
|
|
28
|
+
flex-direction: row;
|
|
29
|
+
align-items: center;
|
|
30
|
+
font-size: 14px;
|
|
31
|
+
line-height: 17px;
|
|
32
|
+
}
|
|
33
|
+
.badge {
|
|
34
|
+
display: inline-block;
|
|
35
|
+
width: 12px;
|
|
36
|
+
height: 12px;
|
|
37
|
+
margin: 0 8px;
|
|
38
|
+
border-radius: 6px;
|
|
39
|
+
background-color: ${colors.blue600};
|
|
40
|
+
}
|
|
41
|
+
.spacer {
|
|
42
|
+
display: inline-block;
|
|
43
|
+
width: 8px;
|
|
44
|
+
}
|
|
45
|
+
.message {
|
|
46
|
+
display: inline-block;
|
|
47
|
+
}
|
|
48
|
+
`)));
|
|
49
|
+
return updateAvailable ? (React.createElement(MenuItem, { dense: true, onClick: onClick, label: updateNotificationLabel, dataTest: "dhis2-ui-headerbar-updatenotification" })) : null;
|
|
50
|
+
}
|
|
51
|
+
UpdateNotification.propTypes = {
|
|
52
|
+
hideProfileMenu: PropTypes.func.isRequired,
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLW5vdGlmaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9oZWFkZXItYmFyL3V0aWxzL3Byb2ZpbGUtbWVudS91cGRhdGUtbm90aWZpY2F0aW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUM1QyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBQ3pCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNELE9BQU8sSUFBSSxNQUFNLGdCQUFnQixDQUFBO0FBUWpDLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxNQUFXO0lBQzFDLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRSxNQUFNLENBQUM7SUFDbEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFBO0lBQy9CLE1BQU0sRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxtQkFBbUIsRUFBRSxDQUFBO0lBQ3pFLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRTtRQUNqQixlQUFlLEVBQUUsQ0FBQTtRQUNqQixzQkFBc0IsRUFBRSxFQUFFLENBQUE7SUFDOUIsQ0FBQyxDQUFBO0lBRUQsTUFBTSx1QkFBdUIsR0FBRyxDQUM1Qiw2QkFBSyxTQUFTLEVBQUMsTUFBTTtRQUNqQiw2QkFBSyxTQUFTLEVBQUMsT0FBTyxHQUFHO1FBQ3pCLDZCQUFLLFNBQVMsRUFBQyxRQUFRLEdBQUc7UUFDMUIsNkJBQUssU0FBUyxFQUFDLFNBQVM7WUFDbkIsT0FBTztnQkFDSixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxtQ0FBbUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUMxRCxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQztZQUN6QywrQkFBTTtZQUNMLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FDeEI7UUFDTiwrQkFBTyxHQUFHLFVBQUU7Ozs7Ozs7Ozs7Ozs7O3dDQWNnQixNQUFNLENBQUMsT0FBTzs7Ozs7Ozs7O2FBU3pDLENBQVMsQ0FDUixDQUNULENBQUE7SUFFRCxPQUFPLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FDckIsb0JBQUMsUUFBUSxJQUNMLEtBQUssUUFDTCxPQUFPLEVBQUUsT0FBTyxFQUNoQixLQUFLLEVBQUUsdUJBQXVCLEVBQzlCLFFBQVEsRUFBQyx1Q0FBdUMsR0FDbEQsQ0FDTCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7QUFDWixDQUFDO0FBRUQsa0JBQWtCLENBQUMsU0FBUyxHQUFHO0lBQzNCLGVBQWUsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVU7Q0FDN0MsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAnQGRoaXMyLXVpL21lbnUnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICdAZGhpczIvYXBwLXJ1bnRpbWUnXG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tICdAZGhpczIvdWktY29uc3RhbnRzJ1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlSGVhZGVyQmFyQ29udGV4dCB9IGZyb20gJy4uL2hlYWRlci1iYXItY29udGV4dCdcbmltcG9ydCBpMThuIGZyb20gJ0BkaGlzMi9kMi1pMThuJ1xuZGVjbGFyZSBtb2R1bGUgJ3JlYWN0JyB7XG4gICAgaW50ZXJmYWNlIFN0eWxlSFRNTEF0dHJpYnV0ZXM8VD4gZXh0ZW5kcyBSZWFjdC5IVE1MQXR0cmlidXRlczxUPiB7XG4gICAgICBqc3g/OiBib29sZWFuO1xuICAgICAgZ2xvYmFsPzogYm9vbGVhbjtcbiAgICB9XG4gIH1cblxuZXhwb3J0IGZ1bmN0aW9uIFVwZGF0ZU5vdGlmaWNhdGlvbihwYXJhbXM6IGFueSkge1xuICAgIGNvbnN0IHsgaGlkZVByb2ZpbGVNZW51IH0gPXBhcmFtcztcbiAgICBjb25zdCB7IGFwcE5hbWUgfSA9IHVzZUNvbmZpZygpXG4gICAgY29uc3QgeyB1cGRhdGVBdmFpbGFibGUsIG9uQXBwbHlBdmFpbGFibGVVcGRhdGUgfSA9IHVzZUhlYWRlckJhckNvbnRleHQoKVxuICAgIGNvbnN0IG9uQ2xpY2sgPSAoKSA9PiB7XG4gICAgICAgIGhpZGVQcm9maWxlTWVudSgpXG4gICAgICAgIG9uQXBwbHlBdmFpbGFibGVVcGRhdGU/LigpXG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlTm90aWZpY2F0aW9uTGFiZWwgPSAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm9vdFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiYWRnZVwiIC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlclwiIC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICB7YXBwTmFtZVxuICAgICAgICAgICAgICAgICAgICA/IGkxOG4udCgnTmV3IHt7YXBwTmFtZX19IHZlcnNpb24gYXZhaWxhYmxlJywgeyBhcHBOYW1lIH0pXG4gICAgICAgICAgICAgICAgICAgIDogaTE4bi50KCdOZXcgYXBwIHZlcnNpb24gYXZhaWxhYmxlJyl9XG4gICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnQ2xpY2sgdG8gcmVsb2FkJyl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzdHlsZSBqc3g+e2BcbiAgICAgICAgICAgICAgICAucm9vdCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5iYWRnZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDhweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9ycy5ibHVlNjAwfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnNwYWNlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLm1lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgYH08L3N0eWxlPlxuICAgICAgICA8L2Rpdj5cbiAgICApXG5cbiAgICByZXR1cm4gdXBkYXRlQXZhaWxhYmxlID8gKFxuICAgICAgICA8TWVudUl0ZW1cbiAgICAgICAgICAgIGRlbnNlXG4gICAgICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICAgICAgbGFiZWw9e3VwZGF0ZU5vdGlmaWNhdGlvbkxhYmVsfVxuICAgICAgICAgICAgZGF0YVRlc3Q9XCJkaGlzMi11aS1oZWFkZXJiYXItdXBkYXRlbm90aWZpY2F0aW9uXCJcbiAgICAgICAgLz5cbiAgICApIDogbnVsbFxufVxuXG5VcGRhdGVOb3RpZmljYXRpb24ucHJvcFR5cGVzID0ge1xuICAgIGhpZGVQcm9maWxlTWVudTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn1cbiJdfQ==
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { UserAvatar } from '@dhis2-ui/user-avatar';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import React, { useCallback, useRef, useState } from 'react';
|
|
4
|
+
import { DebugInfoModal } from './debug-info/debug-info-modal';
|
|
5
|
+
import { ProfileMenu } from './profile-menu';
|
|
6
|
+
import { useOnDocClick } from './profile/use-on-doc-click';
|
|
7
|
+
const Profile = (params) => {
|
|
8
|
+
const { name, email, avatarId, helpUrl } = params;
|
|
9
|
+
const [showProfileMenu, setShowProfileMenu] = useState(false);
|
|
10
|
+
const [showDebugInfoModal, setShowDebugInfoModal] = useState(false);
|
|
11
|
+
const hideProfileMenu = useCallback(() => setShowProfileMenu(false), [setShowProfileMenu]);
|
|
12
|
+
const toggleProfileMenu = useCallback(() => setShowProfileMenu((show) => !show), [setShowProfileMenu]);
|
|
13
|
+
const containerRef = useRef(null);
|
|
14
|
+
useOnDocClick(containerRef, hideProfileMenu);
|
|
15
|
+
return (React.createElement("div", { ref: containerRef, "data-test": "headerbar-profile", className: "headerbar-profile" },
|
|
16
|
+
React.createElement("button", { className: "headerbar-profile-btn", onClick: toggleProfileMenu },
|
|
17
|
+
React.createElement(UserAvatar, { avatarId: avatarId, name: name, dataTest: "headerbar-profile-icon", medium: true })),
|
|
18
|
+
showProfileMenu && (React.createElement(ProfileMenu, { avatarId: avatarId, name: name, email: email, helpUrl: helpUrl, hideProfileMenu: hideProfileMenu, showDebugInfoModal: () => {
|
|
19
|
+
setShowDebugInfoModal(true);
|
|
20
|
+
} })),
|
|
21
|
+
showDebugInfoModal && (React.createElement(DebugInfoModal, { onClose: () => {
|
|
22
|
+
setShowDebugInfoModal(false);
|
|
23
|
+
} })),
|
|
24
|
+
React.createElement("style", { jsx: true }, `
|
|
25
|
+
.headerbar-profile {
|
|
26
|
+
position: relative;
|
|
27
|
+
height: 100%;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.headerbar-profile-btn {
|
|
31
|
+
background: transparent;
|
|
32
|
+
padding: 6px;
|
|
33
|
+
border: 0;
|
|
34
|
+
cursor: pointer;
|
|
35
|
+
}
|
|
36
|
+
.headerbar-profile-btn:focus {
|
|
37
|
+
outline: 2px solid white;
|
|
38
|
+
outline-offset: -2px;
|
|
39
|
+
}
|
|
40
|
+
.headerbar-profile-btn:focus:not(:focus-visible) {
|
|
41
|
+
outline: none;
|
|
42
|
+
}
|
|
43
|
+
.headerbar-profile-btn:hover {
|
|
44
|
+
background: #1a557f;
|
|
45
|
+
}
|
|
46
|
+
.headerbar-profile-btn:active {
|
|
47
|
+
background: #104067;
|
|
48
|
+
}
|
|
49
|
+
`)));
|
|
50
|
+
};
|
|
51
|
+
Profile.propTypes = {
|
|
52
|
+
name: PropTypes.string.isRequired,
|
|
53
|
+
avatarId: PropTypes.string,
|
|
54
|
+
email: PropTypes.string,
|
|
55
|
+
helpUrl: PropTypes.string,
|
|
56
|
+
};
|
|
57
|
+
export default Profile;
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9oZWFkZXItYmFyL3V0aWxzL3Byb2ZpbGUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNsRCxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQVExRCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQVcsRUFBRSxFQUFFO0lBQzVCLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDbEQsTUFBTSxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM3RCxNQUFNLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbkUsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUMvQixHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFDL0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUN2QixDQUFBO0lBQ0QsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQ2pDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUN6QyxDQUFDLGtCQUFrQixDQUFDLENBQ2hCLENBQUE7SUFDUixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFakMsYUFBYSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQTtJQUU1QyxPQUFPLENBQ0gsNkJBQ0ksR0FBRyxFQUFFLFlBQVksZUFDUCxtQkFBbUIsRUFDN0IsU0FBUyxFQUFDLG1CQUFtQjtRQUU3QixnQ0FDSSxTQUFTLEVBQUMsdUJBQXVCLEVBQ2pDLE9BQU8sRUFBRSxpQkFBaUI7WUFFMUIsb0JBQUMsVUFBVSxJQUNQLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLElBQUksRUFBRSxJQUFJLEVBQ1YsUUFBUSxFQUFDLHdCQUF3QixFQUNqQyxNQUFNLFNBQ1IsQ0FDRztRQUVSLGVBQWUsSUFBSSxDQUNoQixvQkFBQyxXQUFXLElBQ1IsUUFBUSxFQUFFLFFBQVEsRUFDbEIsSUFBSSxFQUFFLElBQUksRUFDVixLQUFLLEVBQUUsS0FBSyxFQUNaLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtnQkFDckIscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDL0IsQ0FBQyxHQUNILENBQ0w7UUFDQSxrQkFBa0IsSUFBSSxDQUNuQixvQkFBQyxjQUFjLElBQ1gsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFDVixxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNoQyxDQUFDLEdBQ0gsQ0FDTDtRQUVELCtCQUFPLEdBQUcsVUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzthQXlCWCxDQUFTLENBQ1IsQ0FDVCxDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBRUQsT0FBTyxDQUFDLFNBQVMsR0FBRztJQUNoQixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO0lBQ2pDLFFBQVEsRUFBRSxTQUFTLENBQUMsTUFBTTtJQUMxQixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU07SUFDdkIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxNQUFNO0NBQzVCLENBQUE7QUFFRCxlQUFlLE9BQU8sQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJBdmF0YXIgfSBmcm9tICdAZGhpczItdWkvdXNlci1hdmF0YXInXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IERlYnVnSW5mb01vZGFsIH0gZnJvbSAnLi9kZWJ1Zy1pbmZvL2RlYnVnLWluZm8tbW9kYWwnXG5pbXBvcnQgeyBQcm9maWxlTWVudSB9IGZyb20gJy4vcHJvZmlsZS1tZW51J1xuaW1wb3J0IHsgdXNlT25Eb2NDbGljayB9IGZyb20gJy4vcHJvZmlsZS91c2Utb24tZG9jLWNsaWNrJ1xuZGVjbGFyZSBtb2R1bGUgJ3JlYWN0JyB7XG4gICAgaW50ZXJmYWNlIFN0eWxlSFRNTEF0dHJpYnV0ZXM8VD4gZXh0ZW5kcyBSZWFjdC5IVE1MQXR0cmlidXRlczxUPiB7XG4gICAgICBqc3g/OiBib29sZWFuO1xuICAgICAgZ2xvYmFsPzogYm9vbGVhbjtcbiAgICB9XG4gIH1cblxuY29uc3QgUHJvZmlsZSA9IChwYXJhbXM6IGFueSkgPT4ge1xuICAgIGNvbnN0IHsgbmFtZSwgZW1haWwsIGF2YXRhcklkLCBoZWxwVXJsIH0gPSBwYXJhbXM7XG4gICAgY29uc3QgW3Nob3dQcm9maWxlTWVudSwgc2V0U2hvd1Byb2ZpbGVNZW51XSA9IHVzZVN0YXRlKGZhbHNlKVxuICAgIGNvbnN0IFtzaG93RGVidWdJbmZvTW9kYWwsIHNldFNob3dEZWJ1Z0luZm9Nb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBoaWRlUHJvZmlsZU1lbnUgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKCkgPT4gc2V0U2hvd1Byb2ZpbGVNZW51KGZhbHNlKSxcbiAgICAgICAgW3NldFNob3dQcm9maWxlTWVudV1cbiAgICApXG4gICAgY29uc3QgdG9nZ2xlUHJvZmlsZU1lbnUgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKCkgPT4gc2V0U2hvd1Byb2ZpbGVNZW51KChzaG93KSA9PiAhc2hvdyksXG4gICAgICAgIFtzZXRTaG93UHJvZmlsZU1lbnVdXG4gICAgKSBhcyBhbnlcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWYobnVsbClcblxuICAgIHVzZU9uRG9jQ2xpY2soY29udGFpbmVyUmVmLCBoaWRlUHJvZmlsZU1lbnUpXG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAgIGRhdGEtdGVzdD1cImhlYWRlcmJhci1wcm9maWxlXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImhlYWRlcmJhci1wcm9maWxlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhlYWRlcmJhci1wcm9maWxlLWJ0blwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17dG9nZ2xlUHJvZmlsZU1lbnV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFVzZXJBdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgYXZhdGFySWQ9e2F2YXRhcklkfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICBkYXRhVGVzdD1cImhlYWRlcmJhci1wcm9maWxlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIHtzaG93UHJvZmlsZU1lbnUgJiYgKFxuICAgICAgICAgICAgICAgIDxQcm9maWxlTWVudVxuICAgICAgICAgICAgICAgICAgICBhdmF0YXJJZD17YXZhdGFySWR9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIGVtYWlsPXtlbWFpbH1cbiAgICAgICAgICAgICAgICAgICAgaGVscFVybD17aGVscFVybH1cbiAgICAgICAgICAgICAgICAgICAgaGlkZVByb2ZpbGVNZW51PXtoaWRlUHJvZmlsZU1lbnV9XG4gICAgICAgICAgICAgICAgICAgIHNob3dEZWJ1Z0luZm9Nb2RhbD17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hvd0RlYnVnSW5mb01vZGFsKHRydWUpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7c2hvd0RlYnVnSW5mb01vZGFsICYmIChcbiAgICAgICAgICAgICAgICA8RGVidWdJbmZvTW9kYWxcbiAgICAgICAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hvd0RlYnVnSW5mb01vZGFsKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICA8c3R5bGUganN4PntgXG4gICAgICAgICAgICAgICAgLmhlYWRlcmJhci1wcm9maWxlIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmhlYWRlcmJhci1wcm9maWxlLWJ0biB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA2cHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuaGVhZGVyYmFyLXByb2ZpbGUtYnRuOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmhlYWRlcmJhci1wcm9maWxlLWJ0bjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmhlYWRlcmJhci1wcm9maWxlLWJ0bjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxYTU1N2Y7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5oZWFkZXJiYXItcHJvZmlsZS1idG46YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzEwNDA2NztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBgfTwvc3R5bGU+XG4gICAgICAgIDwvZGl2PlxuICAgIClcbn1cblxuUHJvZmlsZS5wcm9wVHlwZXMgPSB7XG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGF2YXRhcklkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGVtYWlsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGhlbHBVcmw6IFByb3BUeXBlcy5zdHJpbmcsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFByb2ZpbGVcbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export const Title = (params) => {
|
|
4
|
+
const { app, instance } = params;
|
|
5
|
+
return (React.createElement("div", { className: "headerbar-title", "data-test": "headerbar-title" },
|
|
6
|
+
app ? `${instance} - ${app}` : `${instance}`,
|
|
7
|
+
React.createElement("style", { jsx: true }, `
|
|
8
|
+
.headerbar-title {
|
|
9
|
+
overflow: hidden;
|
|
10
|
+
text-overflow: ellipsis;
|
|
11
|
+
font-size: 14px;
|
|
12
|
+
font-weight: 500;
|
|
13
|
+
letter-spacing: 0.01em;
|
|
14
|
+
white-space: nowrap;
|
|
15
|
+
}
|
|
16
|
+
`)));
|
|
17
|
+
};
|
|
18
|
+
Title.propTypes = {
|
|
19
|
+
app: PropTypes.string,
|
|
20
|
+
instance: PropTypes.string,
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvaGVhZGVyLWJhci91dGlscy90aXRsZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ25DLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQVExQixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRTtJQUNuQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUNqQyxPQUFPLENBQ0wsNkJBQUssU0FBUyxFQUFDLGlCQUFpQixlQUFXLGlCQUFpQjtRQUN6RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRTtRQUU3QywrQkFBTyxHQUFHLFVBQUU7Ozs7Ozs7OztPQVNYLENBQVMsQ0FDTixDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFDRixLQUFLLENBQUMsU0FBUyxHQUFHO0lBQ2hCLEdBQUcsRUFBRSxTQUFTLENBQUMsTUFBTTtJQUNyQixRQUFRLEVBQUUsU0FBUyxDQUFDLE1BQU07Q0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuZGVjbGFyZSBtb2R1bGUgJ3JlYWN0JyB7XG4gIGludGVyZmFjZSBTdHlsZUhUTUxBdHRyaWJ1dGVzPFQ+IGV4dGVuZHMgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8VD4ge1xuICAgIGpzeD86IGJvb2xlYW47XG4gICAgZ2xvYmFsPzogYm9vbGVhbjtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgVGl0bGUgPSAocGFyYW1zOiBhbnkpID0+IHtcbiAgY29uc3QgeyBhcHAsIGluc3RhbmNlIH0gPSBwYXJhbXM7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJoZWFkZXJiYXItdGl0bGVcIiBkYXRhLXRlc3Q9XCJoZWFkZXJiYXItdGl0bGVcIj5cbiAgICAgIHthcHAgPyBgJHtpbnN0YW5jZX0gLSAke2FwcH1gIDogYCR7aW5zdGFuY2V9YH1cblxuICAgICAgPHN0eWxlIGpzeD57YFxuICAgICAgICAuaGVhZGVyYmFyLXRpdGxlIHtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgICAgYH08L3N0eWxlPlxuICAgIDwvZGl2PlxuICApO1xufTtcblRpdGxlLnByb3BUeXBlcyA9IHtcbiAgYXBwOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpbnN0YW5jZTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class NgDhis2UiModule {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgDhis2UiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgDhis2UiModule, imports: [CommonModule] }); }
|
|
7
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgDhis2UiModule, imports: [CommonModule] }); }
|
|
8
|
+
}
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgDhis2UiModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
imports: [CommonModule],
|
|
13
|
+
}]
|
|
14
|
+
}] });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZGhpczItdWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbmctZGhpczItdWkvc3JjL2xpYi9uZy1kaGlzMi11aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSy9DLE1BQU0sT0FBTyxlQUFlOytHQUFmLGVBQWU7Z0hBQWYsZUFBZSxZQUZoQixZQUFZO2dIQUVYLGVBQWUsWUFGaEIsWUFBWTs7NEZBRVgsZUFBZTtrQkFIM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ0RoaXMyVWlNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Copyright 2023 UDSM DHIS2 Lab. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style
|
|
3
|
+
// license that can be found in the LICENSE file.
|
|
4
|
+
import { ReactWrapperComponent } from './react-component-wrapper/react-wrapper.component';
|
|
5
|
+
export const sharedComponents = [];
|
|
6
|
+
export { ReactWrapperComponent };
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNEQUFzRDtBQUN0RCxxREFBcUQ7QUFDckQsaURBQWlEO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRTFGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFVLEVBQUUsQ0FBQztBQUUxQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDIzIFVEU00gREhJUzIgTGFiLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGVcbi8vIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS5cbmltcG9ydCB7IFJlYWN0V3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vcmVhY3QtY29tcG9uZW50LXdyYXBwZXIvcmVhY3Qtd3JhcHBlci5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3Qgc2hhcmVkQ29tcG9uZW50czogYW55W10gPSBbXTtcblxuZXhwb3J0IHsgUmVhY3RXcmFwcGVyQ29tcG9uZW50IH07XG4iXX0=
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ContentChild, Directive, ElementRef, Input, } from '@angular/core';
|
|
2
|
+
import parse from 'html-react-parser';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import * as ReactDOM from 'react-dom/client';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
window.React = React;
|
|
7
|
+
export class ReactWrapperComponent {
|
|
8
|
+
constructor(elementRef) {
|
|
9
|
+
this.elementRef = elementRef;
|
|
10
|
+
}
|
|
11
|
+
ngAfterViewInit() {
|
|
12
|
+
if (!this.elementRef)
|
|
13
|
+
throw new Error('No element ref');
|
|
14
|
+
this.reactDomRoot = ReactDOM.createRoot(this.elementRef.nativeElement);
|
|
15
|
+
this.render();
|
|
16
|
+
}
|
|
17
|
+
ngOnChanges() {
|
|
18
|
+
if (this.elementRef)
|
|
19
|
+
this.render();
|
|
20
|
+
}
|
|
21
|
+
ngOnDestroy() {
|
|
22
|
+
this.reactDomRoot?.unmount();
|
|
23
|
+
}
|
|
24
|
+
render() {
|
|
25
|
+
if (!this.component)
|
|
26
|
+
throw new Error('React component must be supplied');
|
|
27
|
+
if (!this.reactDomRoot)
|
|
28
|
+
return;
|
|
29
|
+
const jsxContent = this.content?.nativeElement?.outerHTML
|
|
30
|
+
? parse(this.content?.nativeElement?.outerHTML)
|
|
31
|
+
: undefined;
|
|
32
|
+
this.reactDomRoot.render(React.createElement(this.component, { ...this.props },
|
|
33
|
+
" ",
|
|
34
|
+
jsxContent || '',
|
|
35
|
+
" "));
|
|
36
|
+
}
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReactWrapperComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
38
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ReactWrapperComponent, selector: "ng-dhis2-ui-wrapper", inputs: { props: "props", component: "component" }, queries: [{ propertyName: "content", first: true, predicate: ["ngDhis2UiContent"], descendants: true }], usesOnChanges: true, ngImport: i0 }); }
|
|
39
|
+
}
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReactWrapperComponent, decorators: [{
|
|
41
|
+
type: Directive,
|
|
42
|
+
args: [{
|
|
43
|
+
selector: 'ng-dhis2-ui-wrapper',
|
|
44
|
+
}]
|
|
45
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { props: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], component: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], content: [{
|
|
50
|
+
type: ContentChild,
|
|
51
|
+
args: ['ngDhis2UiContent']
|
|
52
|
+
}] } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3Qtd3JhcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9uZy1kaGlzMi11aS9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3JlYWN0LWNvbXBvbmVudC13cmFwcGVyL3JlYWN0LXdyYXBwZXIuY29tcG9uZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLG1CQUFtQixDQUFDO0FBQ3RDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRS9CLE9BQU8sS0FBSyxRQUFRLE1BQU0sa0JBQWtCLENBQUM7O0FBQzVDLE1BQWMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBSzlCLE1BQU0sT0FBTyxxQkFBcUI7SUFTaEMsWUFBc0IsVUFBbUM7UUFBbkMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7SUFBRyxDQUFDO0lBRTdELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsVUFBVTtZQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVTLE1BQU07UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFFekUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTztRQUUvQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTO1lBQ3ZELENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFZCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FDdEIsb0JBQUMsSUFBSSxDQUFDLFNBQVMsT0FBSyxJQUFJLENBQUMsS0FBSzs7WUFBSSxVQUFVLElBQUksRUFBRTtnQkFBbUIsQ0FDdEUsQ0FBQztJQUNKLENBQUM7K0dBckNVLHFCQUFxQjttR0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7aUJBQ2hDO2lHQUlVLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUU0QixPQUFPO3NCQUF4QyxZQUFZO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgcGFyc2UgZnJvbSAnaHRtbC1yZWFjdC1wYXJzZXInO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ29tcG9uZW50UHJvcHMgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20vY2xpZW50Jztcbih3aW5kb3cgYXMgYW55KS5SZWFjdCA9IFJlYWN0O1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICduZy1kaGlzMi11aS13cmFwcGVyJyxcbn0pXG5leHBvcnQgY2xhc3MgUmVhY3RXcmFwcGVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXRcbntcbiAgQElucHV0KCkgcHJvcHM/OiBDb21wb25lbnRQcm9wczxhbnk+O1xuICBASW5wdXQoKSBjb21wb25lbnQhOiBSZWFjdC5FbGVtZW50VHlwZTtcblxuICBAQ29udGVudENoaWxkKCduZ0RoaXMyVWlDb250ZW50JykgY29udGVudCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBwcm90ZWN0ZWQgcmVhY3REb21Sb290PzogUmVhY3RET00uUm9vdDtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICghdGhpcy5lbGVtZW50UmVmKSB0aHJvdyBuZXcgRXJyb3IoJ05vIGVsZW1lbnQgcmVmJyk7XG4gICAgdGhpcy5yZWFjdERvbVJvb3QgPSBSZWFjdERPTS5jcmVhdGVSb290KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZWxlbWVudFJlZikgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVhY3REb21Sb290Py51bm1vdW50KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyKCkge1xuICAgIGlmICghdGhpcy5jb21wb25lbnQpIHRocm93IG5ldyBFcnJvcignUmVhY3QgY29tcG9uZW50IG11c3QgYmUgc3VwcGxpZWQnKTtcblxuICAgIGlmICghdGhpcy5yZWFjdERvbVJvb3QpIHJldHVybjtcblxuICAgIGNvbnN0IGpzeENvbnRlbnQgPSB0aGlzLmNvbnRlbnQ/Lm5hdGl2ZUVsZW1lbnQ/Lm91dGVySFRNTFxuICAgICAgPyBwYXJzZSh0aGlzLmNvbnRlbnQ/Lm5hdGl2ZUVsZW1lbnQ/Lm91dGVySFRNTClcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgdGhpcy5yZWFjdERvbVJvb3QucmVuZGVyKFxuICAgICAgPHRoaXMuY29tcG9uZW50IHsuLi50aGlzLnByb3BzfT4ge2pzeENvbnRlbnQgfHwgJyd9IDwvdGhpcy5jb21wb25lbnQ+XG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { sharedComponents } from './components';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class SharedDhis2UiModule {
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SharedDhis2UiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SharedDhis2UiModule, imports: [CommonModule] }); }
|
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SharedDhis2UiModule, imports: [CommonModule] }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SharedDhis2UiModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
imports: [CommonModule],
|
|
14
|
+
declarations: [...sharedComponents],
|
|
15
|
+
exports: [...sharedComponents],
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL25nLWRoaXMyLXVpL3NyYy9saWIvc2hhcmVkL3NoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQU9oRCxNQUFNLE9BQU8sbUJBQW1COytHQUFuQixtQkFBbUI7Z0hBQW5CLG1CQUFtQixZQUpwQixZQUFZO2dIQUlYLG1CQUFtQixZQUpwQixZQUFZOzs0RkFJWCxtQkFBbUI7a0JBTC9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixZQUFZLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2hhcmVkQ29tcG9uZW50cyB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFsuLi5zaGFyZWRDb21wb25lbnRzXSxcbiAgZXhwb3J0czogWy4uLnNoYXJlZENvbXBvbmVudHNdLFxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZWREaGlzMlVpTW9kdWxlIHt9XG4iXX0=
|