@iapps/ng-dhis2-ui 1.0.7 → 1.0.8
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/fesm2022/iapps-ng-dhis2-ui.mjs +59 -52
- package/fesm2022/iapps-ng-dhis2-ui.mjs.map +1 -1
- package/lib/modules/organisation-unit-selector/components/OrgUnitDimension.d.ts +3 -1
- package/lib/modules/organisation-unit-selector/index.d.ts +1 -0
- package/lib/shared/utils/predefinedDimensions.d.ts +6 -6
- package/package.json +6 -8
- package/esm2022/iapps-ng-dhis2-ui.mjs +0 -5
- package/esm2022/index.mjs +0 -6
- package/esm2022/lib/modules/button/button.component.mjs +0 -60
- package/esm2022/lib/modules/button/button.module.mjs +0 -19
- package/esm2022/lib/modules/button/index.mjs +0 -6
- package/esm2022/lib/modules/header-bar/header-bar.component.mjs +0 -38
- package/esm2022/lib/modules/header-bar/header-bar.module.mjs +0 -19
- package/esm2022/lib/modules/header-bar/index.mjs +0 -6
- package/esm2022/lib/modules/header-bar/models/header-bar-app.model.mjs +0 -20
- package/esm2022/lib/modules/header-bar/models/header-bar-data.model.mjs +0 -46
- package/esm2022/lib/modules/header-bar/models/header-bar-notification.model.mjs +0 -11
- package/esm2022/lib/modules/header-bar/models/index.mjs +0 -6
- package/esm2022/lib/modules/header-bar/utils/apps.mjs +0 -221
- package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-menu-item.mjs +0 -51
- package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-modal.mjs +0 -30
- package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-table.mjs +0 -39
- package/esm2022/lib/modules/header-bar/utils/debug-info/use-debug-info.mjs +0 -12
- package/esm2022/lib/modules/header-bar/utils/header-bar-context.mjs +0 -17
- package/esm2022/lib/modules/header-bar/utils/header-bar.mjs +0 -56
- package/esm2022/lib/modules/header-bar/utils/join-path.mjs +0 -5
- package/esm2022/lib/modules/header-bar/utils/logo-image.mjs +0 -52
- package/esm2022/lib/modules/header-bar/utils/logo.mjs +0 -35
- package/esm2022/lib/modules/header-bar/utils/notification-icon.mjs +0 -76
- package/esm2022/lib/modules/header-bar/utils/notifications.mjs +0 -35
- package/esm2022/lib/modules/header-bar/utils/profile/use-on-doc-click.mjs +0 -21
- package/esm2022/lib/modules/header-bar/utils/profile-menu/index.mjs +0 -2
- package/esm2022/lib/modules/header-bar/utils/profile-menu/profile-header.mjs +0 -95
- package/esm2022/lib/modules/header-bar/utils/profile-menu/profile-menu.mjs +0 -101
- package/esm2022/lib/modules/header-bar/utils/profile-menu/update-notification.mjs +0 -54
- package/esm2022/lib/modules/header-bar/utils/profile.mjs +0 -58
- package/esm2022/lib/modules/header-bar/utils/title.mjs +0 -22
- package/esm2022/lib/modules/organisation-unit-selector/components/OrgUnitDimension.mjs +0 -216
- package/esm2022/lib/modules/organisation-unit-selector/components/index.mjs +0 -6
- package/esm2022/lib/modules/organisation-unit-selector/components/styles/OrgUnitDimension.style.mjs +0 -83
- package/esm2022/lib/modules/organisation-unit-selector/components/utils/index.mjs +0 -6
- package/esm2022/lib/modules/organisation-unit-selector/components/utils/ouIdHelper/index.mjs +0 -18
- package/esm2022/lib/modules/organisation-unit-selector/components/utils/ouLevelUtils/index.mjs +0 -27
- package/esm2022/lib/modules/organisation-unit-selector/containers/organisation-unit-selector/organisation-unit-selector.component.mjs +0 -91
- package/esm2022/lib/modules/organisation-unit-selector/containers/organisation-unit-selector-modal/organisation-unit-selector-modal.component-modal.mjs +0 -114
- package/esm2022/lib/modules/organisation-unit-selector/index.mjs +0 -7
- package/esm2022/lib/modules/organisation-unit-selector/models/index.mjs +0 -5
- package/esm2022/lib/modules/organisation-unit-selector/models/organisation-unit-config.model.mjs +0 -16
- package/esm2022/lib/modules/organisation-unit-selector/organisation-unit-selector.module.mjs +0 -28
- package/esm2022/lib/modules/period-selector/components/FixedPeriodFilter.mjs +0 -44
- package/esm2022/lib/modules/period-selector/components/PeriodDimension.mjs +0 -41
- package/esm2022/lib/modules/period-selector/components/PeriodTransfer.mjs +0 -110
- package/esm2022/lib/modules/period-selector/components/RelativePeriodFilter.mjs +0 -28
- package/esm2022/lib/modules/period-selector/components/utils/fixedPeriods.mjs +0 -308
- package/esm2022/lib/modules/period-selector/components/utils/index.mjs +0 -5
- package/esm2022/lib/modules/period-selector/components/utils/periodTypes.mjs +0 -23
- package/esm2022/lib/modules/period-selector/components/utils/relativePeriods.mjs +0 -139
- package/esm2022/lib/modules/period-selector/containers/period-selector/period-selector.component.mjs +0 -69
- package/esm2022/lib/modules/period-selector/containers/period-selector-modal/period-selector-modal.component.mjs +0 -82
- package/esm2022/lib/modules/period-selector/index.mjs +0 -7
- package/esm2022/lib/modules/period-selector/period-selector.module.mjs +0 -20
- package/esm2022/lib/modules/react-wrapper/index.mjs +0 -6
- package/esm2022/lib/modules/react-wrapper/react-wrapper.component.mjs +0 -55
- package/esm2022/lib/modules/react-wrapper/react-wrapper.module.mjs +0 -18
- package/esm2022/lib/shared/assets/AssignedCategoriesIcon.mjs +0 -12
- package/esm2022/lib/shared/assets/DimensionItemIcons/PeriodIcon.mjs +0 -4
- package/esm2022/lib/shared/components/TransferOption.mjs +0 -130
- package/esm2022/lib/shared/components/index.mjs +0 -6
- package/esm2022/lib/shared/index.mjs +0 -7
- package/esm2022/lib/shared/shared.module.mjs +0 -18
- package/esm2022/lib/shared/styles/DimensionSelector.style.mjs +0 -39
- package/esm2022/lib/shared/styles/index.mjs +0 -5
- package/esm2022/lib/shared/utils/axis.mjs +0 -25
- package/esm2022/lib/shared/utils/axisGetDimension.mjs +0 -5
- package/esm2022/lib/shared/utils/axisHasDimension.mjs +0 -3
- package/esm2022/lib/shared/utils/dimension.mjs +0 -52
- package/esm2022/lib/shared/utils/dimensionGetItems.mjs +0 -6
- package/esm2022/lib/shared/utils/dimensionIs.mjs +0 -3
- package/esm2022/lib/shared/utils/dimensionIsEmpty.mjs +0 -5
- package/esm2022/lib/shared/utils/dimensionIsValid.mjs +0 -17
- package/esm2022/lib/shared/utils/dimensionSelectorHelper.mjs +0 -4
- package/esm2022/lib/shared/utils/index.mjs +0 -15
- package/esm2022/lib/shared/utils/layoutGetAllAxes.mjs +0 -7
- package/esm2022/lib/shared/utils/layoutGetAllDimensions.mjs +0 -6
- package/esm2022/lib/shared/utils/layoutGetDimension.mjs +0 -4
- package/esm2022/lib/shared/utils/layoutReplaceDimension.mjs +0 -17
- package/esm2022/lib/shared/utils/list.mjs +0 -15
- package/esm2022/lib/shared/utils/predefinedDimensions.mjs +0 -47
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
import { Card } from '@dhis2-ui/card';
|
|
2
|
-
import { InputField } from '@dhis2-ui/input';
|
|
3
|
-
import { colors, spacers, theme } from '@dhis2/ui-constants';
|
|
4
|
-
import { IconApps24, IconSettings24 } from '@dhis2/ui-icons';
|
|
5
|
-
import PropTypes from 'prop-types';
|
|
6
|
-
import React, { useState, useEffect, useCallback, useRef } from 'react';
|
|
7
|
-
import { joinPath } from './join-path';
|
|
8
|
-
import i18n from '@dhis2/d2-i18n';
|
|
9
|
-
/**
|
|
10
|
-
* Copied from here:
|
|
11
|
-
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping
|
|
12
|
-
*/
|
|
13
|
-
function escapeRegExpCharacters(text) {
|
|
14
|
-
return text.replace(/[/.*+?^${}()|[\]\\]/g, '\\$&');
|
|
15
|
-
}
|
|
16
|
-
function Search({ value, onChange, baseUrl }) {
|
|
17
|
-
return (React.createElement("div", { className: "headerbar-apps-search" },
|
|
18
|
-
React.createElement("span", { className: "headerbar-apps-search-input" },
|
|
19
|
-
React.createElement(InputField, { value: value, name: "filter", placeholder: i18n.t('Search apps'), onChange: onChange, initialFocus: true })),
|
|
20
|
-
React.createElement("span", { className: "headerbar-apps-search-icon" },
|
|
21
|
-
React.createElement("a", { href: joinPath(baseUrl, 'dhis-web-menu-management') },
|
|
22
|
-
React.createElement(IconSettings24, { color: colors.grey700 }))),
|
|
23
|
-
React.createElement("style", { jsx: true }, `
|
|
24
|
-
.headerbar-apps-search {
|
|
25
|
-
display: flex;
|
|
26
|
-
flex-direction: row;
|
|
27
|
-
flex-wrap: nowrap;
|
|
28
|
-
height: 52px;
|
|
29
|
-
margin: 8px;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.headerbar-apps-search-input {
|
|
33
|
-
flex: 1 100%;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.headerbar-apps-search-icon {
|
|
37
|
-
flex: 1 auto;
|
|
38
|
-
margin: 8px;
|
|
39
|
-
}
|
|
40
|
-
`)));
|
|
41
|
-
}
|
|
42
|
-
Search.propTypes = {
|
|
43
|
-
value: PropTypes.string.isRequired,
|
|
44
|
-
onChange: PropTypes.func.isRequired,
|
|
45
|
-
baseUrl: PropTypes.string,
|
|
46
|
-
};
|
|
47
|
-
function Item({ name, path, img }) {
|
|
48
|
-
return (React.createElement("a", { className: "headerbar-app-item", href: path },
|
|
49
|
-
React.createElement("img", { className: "headerbar-app-item-logo", src: img, alt: "app logo" }),
|
|
50
|
-
React.createElement("div", { className: "headerbar-app-item-title" }, name),
|
|
51
|
-
React.createElement("style", { jsx: true }, `
|
|
52
|
-
.headerbar-app-item {
|
|
53
|
-
display: flex;
|
|
54
|
-
flex-direction: column;
|
|
55
|
-
-webkit-box-align: center;
|
|
56
|
-
align-items: center;
|
|
57
|
-
-webkit-box-pack: center;
|
|
58
|
-
justify-content: center;
|
|
59
|
-
width: 96px;
|
|
60
|
-
margin: 8px;
|
|
61
|
-
border-radius: 12px;
|
|
62
|
-
text-decoration: none;
|
|
63
|
-
cursor: pointer;
|
|
64
|
-
}
|
|
65
|
-
.headerbar-app-item-logo {
|
|
66
|
-
display: inline-block;
|
|
67
|
-
display: flex;
|
|
68
|
-
flex-direction: column;
|
|
69
|
-
align-items: center;
|
|
70
|
-
justify-content: center;
|
|
71
|
-
width: 96px;
|
|
72
|
-
margin: 8px;
|
|
73
|
-
border-radius: 12px;
|
|
74
|
-
text-decoration: none;
|
|
75
|
-
cursor: pointer;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.headerbar-app-item-logo:hover,
|
|
79
|
-
.headerbar-app-item-logo:focus {
|
|
80
|
-
background-color: ${theme.primary050};
|
|
81
|
-
cursor: pointer;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
.headerbar-app-item-logo:hover > div {
|
|
85
|
-
font-weight: 500;
|
|
86
|
-
cursor: pointer;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
.headerbar-app-item-logo {
|
|
90
|
-
width: 48px;
|
|
91
|
-
height: 48px;
|
|
92
|
-
margin: 8px;
|
|
93
|
-
cursor: pointer;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.headerbar-app-item-title {
|
|
97
|
-
overflow-wrap: anywhere;
|
|
98
|
-
margin-top: 14px;
|
|
99
|
-
color: rgba(0, 0, 0, 0.87);
|
|
100
|
-
font-size: 12px;
|
|
101
|
-
letter-spacing: 0.01em;
|
|
102
|
-
line-height: 14px;
|
|
103
|
-
text-align: center;
|
|
104
|
-
cursor: pointer;
|
|
105
|
-
}
|
|
106
|
-
`)));
|
|
107
|
-
}
|
|
108
|
-
Item.propTypes = {
|
|
109
|
-
img: PropTypes.string,
|
|
110
|
-
name: PropTypes.string,
|
|
111
|
-
path: PropTypes.string,
|
|
112
|
-
};
|
|
113
|
-
function List({ apps, filter }) {
|
|
114
|
-
return (React.createElement("div", { className: "headerbar-apps-menu-list", "data-test": "headerbar-apps-menu-list" },
|
|
115
|
-
apps
|
|
116
|
-
.filter(({ displayName, name }) => {
|
|
117
|
-
const appName = displayName || name;
|
|
118
|
-
const formattedAppName = appName.toLowerCase();
|
|
119
|
-
const formattedFilter = escapeRegExpCharacters(filter).toLowerCase();
|
|
120
|
-
return filter.length > 0
|
|
121
|
-
? formattedAppName.match(formattedFilter)
|
|
122
|
-
: true;
|
|
123
|
-
})
|
|
124
|
-
.map(({ displayName, name, defaultAction, icon }, idx) => (React.createElement(Item, { key: `app-${name}-${idx}`, name: displayName || name, path: defaultAction, img: icon }))),
|
|
125
|
-
React.createElement("style", { jsx: true }, `
|
|
126
|
-
.headerbar-apps-menu-list {
|
|
127
|
-
display: flex;
|
|
128
|
-
flex-direction: row;
|
|
129
|
-
flex-wrap: wrap;
|
|
130
|
-
align-content: flex-start;
|
|
131
|
-
align-items: flex-start;
|
|
132
|
-
justify-content: flex-start;
|
|
133
|
-
width: 30vw;
|
|
134
|
-
min-width: 300px;
|
|
135
|
-
max-width: 560px;
|
|
136
|
-
|
|
137
|
-
min-height: 200px;
|
|
138
|
-
max-height: 465px;
|
|
139
|
-
margin: 0 8px 8px 8px;
|
|
140
|
-
|
|
141
|
-
overflow: auto;
|
|
142
|
-
overflow-x: hidden;
|
|
143
|
-
}
|
|
144
|
-
`)));
|
|
145
|
-
}
|
|
146
|
-
List.propTypes = {
|
|
147
|
-
apps: PropTypes.array,
|
|
148
|
-
filter: PropTypes.string,
|
|
149
|
-
};
|
|
150
|
-
const AppMenu = ({ apps, filter, onFilterChange, baseUrl }) => (React.createElement("div", { className: "headerbar-apps-menu", "data-test": "headerbar-apps-menu" },
|
|
151
|
-
React.createElement(Card, null,
|
|
152
|
-
React.createElement(Search, { value: filter, onChange: onFilterChange, baseUrl: baseUrl }),
|
|
153
|
-
React.createElement(List, { apps: apps, filter: filter })),
|
|
154
|
-
React.createElement("style", { jsx: true }, `
|
|
155
|
-
.headerbar-apps-menu {
|
|
156
|
-
z-index: 10000;
|
|
157
|
-
position: absolute;
|
|
158
|
-
right: -4px;
|
|
159
|
-
}
|
|
160
|
-
`)));
|
|
161
|
-
AppMenu.propTypes = {
|
|
162
|
-
apps: PropTypes.array.isRequired,
|
|
163
|
-
onFilterChange: PropTypes.func.isRequired,
|
|
164
|
-
filter: PropTypes.string,
|
|
165
|
-
baseUrl: PropTypes.string,
|
|
166
|
-
};
|
|
167
|
-
const Apps = ({ apps, baseUrl }) => {
|
|
168
|
-
const [show, setShow] = useState(false);
|
|
169
|
-
const [filter, setFilter] = useState('');
|
|
170
|
-
const handleVisibilityToggle = useCallback(() => setShow(!show), [show]);
|
|
171
|
-
const handleFilterChange = useCallback(({ value }) => setFilter(value), []);
|
|
172
|
-
const containerEl = useRef(null);
|
|
173
|
-
const onDocClick = useCallback((evt) => {
|
|
174
|
-
if (containerEl.current &&
|
|
175
|
-
!containerEl.current.contains(evt.target)) {
|
|
176
|
-
setShow(false);
|
|
177
|
-
}
|
|
178
|
-
}, []);
|
|
179
|
-
useEffect(() => {
|
|
180
|
-
document.addEventListener('click', onDocClick);
|
|
181
|
-
return () => document.removeEventListener('click', onDocClick);
|
|
182
|
-
}, [onDocClick]);
|
|
183
|
-
return (React.createElement("div", { className: "headerbar-apps", ref: containerEl, "data-test": "headerbar-apps" },
|
|
184
|
-
React.createElement("button", { onClick: handleVisibilityToggle, "data-test": "headerbar-apps-icon" },
|
|
185
|
-
React.createElement(IconApps24, { color: colors.white })),
|
|
186
|
-
show ? (React.createElement(AppMenu, { apps: apps, filter: filter, baseUrl: baseUrl, onFilterChange: handleFilterChange })) : null,
|
|
187
|
-
React.createElement("style", { jsx: true }, `
|
|
188
|
-
.headerbar-apps button {
|
|
189
|
-
display: block;
|
|
190
|
-
background: transparent;
|
|
191
|
-
padding: ${spacers.dp4} ${spacers.dp12} 0;
|
|
192
|
-
border: 0;
|
|
193
|
-
cursor: pointer;
|
|
194
|
-
height: 100%;
|
|
195
|
-
}
|
|
196
|
-
.headerbar-apps button:focus {
|
|
197
|
-
outline: 2px solid white;
|
|
198
|
-
outline-offset: -2px;
|
|
199
|
-
}
|
|
200
|
-
.headerbar-apps button:focus:not(:focus-visible) {
|
|
201
|
-
outline: none;
|
|
202
|
-
}
|
|
203
|
-
.headerbar-apps button:hover {
|
|
204
|
-
background: #1a557f;
|
|
205
|
-
}
|
|
206
|
-
.headerbar-apps button:active {
|
|
207
|
-
background: #104067;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
.headerbar-apps {
|
|
211
|
-
position: relative;
|
|
212
|
-
height: 100%;
|
|
213
|
-
}
|
|
214
|
-
`)));
|
|
215
|
-
};
|
|
216
|
-
Apps.propTypes = {
|
|
217
|
-
apps: PropTypes.array.isRequired,
|
|
218
|
-
baseUrl: PropTypes.string,
|
|
219
|
-
};
|
|
220
|
-
export default Apps;
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9oZWFkZXItYmFyL3V0aWxzL2FwcHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLElBQUksTUFBTSxnQkFBZ0IsQ0FBQztBQVFsQzs7O0dBR0c7QUFDSCxTQUFTLHNCQUFzQixDQUFDLElBQVk7SUFDMUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFPO0lBQy9DLE9BQU8sQ0FDTCw2QkFBSyxTQUFTLEVBQUMsdUJBQXVCO1FBQ3BDLDhCQUFNLFNBQVMsRUFBQyw2QkFBNkI7WUFDM0Msb0JBQUMsVUFBVSxJQUNULEtBQUssRUFBRSxLQUFLLEVBQ1osSUFBSSxFQUFDLFFBQVEsRUFDYixXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFDbEMsUUFB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QVMsR0FBRztJQUNmLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVU7SUFDaEMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxNQUFNO0NBQzFCLENBQUM7QUFFRixlQUFlLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhcmQgfSBmcm9tICdAZGhpczItdWkvY2FyZCc7XG5pbXBvcnQgeyBJbnB1dEZpZWxkIH0gZnJvbSAnQGRoaXMyLXVpL2lucHV0JztcbmltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gJ0BkaGlzMi9hcHAtcnVudGltZSc7XG5pbXBvcnQgeyBjb2xvcnMsIHNwYWNlcnMsIHRoZW1lIH0gZnJvbSAnQGRoaXMyL3VpLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBJY29uQXBwczI0LCBJY29uU2V0dGluZ3MyNCB9IGZyb20gJ0BkaGlzMi91aS1pY29ucyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqb2luUGF0aCB9IGZyb20gJy4vam9pbi1wYXRoJztcbmltcG9ydCBpMThuIGZyb20gJ0BkaGlzMi9kMi1pMThuJztcbmRlY2xhcmUgbW9kdWxlICdyZWFjdCcge1xuICBpbnRlcmZhY2UgU3R5bGVIVE1MQXR0cmlidXRlczxUPiBleHRlbmRzIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPFQ+IHtcbiAgICBqc3g/OiBib29sZWFuO1xuICAgIGdsb2JhbD86IGJvb2xlYW47XG4gIH1cbn1cblxuLyoqXG4gKiBDb3BpZWQgZnJvbSBoZXJlOlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9HdWlkZS9SZWd1bGFyX0V4cHJlc3Npb25zI0VzY2FwaW5nXG4gKi9cbmZ1bmN0aW9uIGVzY2FwZVJlZ0V4cENoYXJhY3RlcnModGV4dDogc3RyaW5nKSB7XG4gIHJldHVybiB0ZXh0LnJlcGxhY2UoL1svLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpO1xufVxuXG5mdW5jdGlvbiBTZWFyY2goeyB2YWx1ZSwgb25DaGFuZ2UsIGJhc2VVcmwgfTogYW55KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJoZWFkZXJiYXItYXBwcy1zZWFyY2hcIj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImhlYWRlcmJhci1hcHBzLXNlYXJjaC1pbnB1dFwiPlxuICAgICAgICA8SW5wdXRGaWVsZFxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBuYW1lPVwiZmlsdGVyXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17aTE4bi50KCdTZWFyY2ggYXBwcycpfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICBpbml0aWFsRm9jdXNcbiAgICAgICAgLz5cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaGVhZGVyYmFyLWFwcHMtc2VhcmNoLWljb25cIj5cbiAgICAgICAgPGEgaHJlZj17am9pblBhdGgoYmFzZVVybCwgJ2RoaXMtd2ViLW1lbnUtbWFuYWdlbWVudCcpfT5cbiAgICAgICAgICA8SWNvblNldHRpbmdzMjQgY29sb3I9e2NvbG9ycy5ncmV5NzAwfSAvPlxuICAgICAgICA8L2E+XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxzdHlsZSBqc3g+e2BcbiAgICAgICAgLmhlYWRlcmJhci1hcHBzLXNlYXJjaCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgIGhlaWdodDogNTJweDtcbiAgICAgICAgICBtYXJnaW46IDhweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXJiYXItYXBwcy1zZWFyY2gtaW5wdXQge1xuICAgICAgICAgIGZsZXg6IDEgMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXJiYXItYXBwcy1zZWFyY2gtaWNvbiB7XG4gICAgICAgICAgZmxleDogMSBhdXRvO1xuICAgICAgICAgIG1hcmdpbjogOHB4O1xuICAgICAgICB9XG4gICAgICBgfTwvc3R5bGU+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cblNlYXJjaC5wcm9wVHlwZXMgPSB7XG4gIHZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBiYXNlVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZnVuY3Rpb24gSXRlbSh7IG5hbWUsIHBhdGgsIGltZyB9OiBhbnkpIHtcbiAgcmV0dXJuIChcbiAgICA8YSBjbGFzc05hbWU9XCJoZWFkZXJiYXItYXBwLWl0ZW1cIiBocmVmPXtwYXRofT5cbiAgICAgIDxpbWcgY2xhc3NOYW1lPVwiaGVhZGVyYmFyLWFwcC1pdGVtLWxvZ29cIiBzcmM9e2ltZ30gYWx0PVwiYXBwIGxvZ29cIiAvPlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlcmJhci1hcHAtaXRlbS10aXRsZVwiPntuYW1lfTwvZGl2PlxuXG4gICAgICA8c3R5bGUganN4PntgXG4gICAgICAgIC5oZWFkZXJiYXItYXBwLWl0ZW0ge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIHdpZHRoOiA5NnB4O1xuICAgICAgICAgIG1hcmdpbjogOHB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgICAgICAuaGVhZGVyYmFyLWFwcC1pdGVtLWxvZ28ge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICB3aWR0aDogOTZweDtcbiAgICAgICAgICBtYXJnaW46IDhweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyYmFyLWFwcC1pdGVtLWxvZ286aG92ZXIsXG4gICAgICAgIC5oZWFkZXJiYXItYXBwLWl0ZW0tbG9nbzpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wcmltYXJ5MDUwfTtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyYmFyLWFwcC1pdGVtLWxvZ286aG92ZXIgPiBkaXYge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlcmJhci1hcHAtaXRlbS1sb2dvIHtcbiAgICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgbWFyZ2luOiA4cHg7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlcmJhci1hcHAtaXRlbS10aXRsZSB7XG4gICAgICAgICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG4gICAgICBgfTwvc3R5bGU+XG4gICAgPC9hPlxuICApO1xufVxuXG5JdGVtLnByb3BUeXBlcyA9IHtcbiAgaW1nOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBwYXRoOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZnVuY3Rpb24gTGlzdCh7IGFwcHMsIGZpbHRlciB9OiBhbnkpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9XCJoZWFkZXJiYXItYXBwcy1tZW51LWxpc3RcIlxuICAgICAgZGF0YS10ZXN0PVwiaGVhZGVyYmFyLWFwcHMtbWVudS1saXN0XCJcbiAgICA+XG4gICAgICB7YXBwc1xuICAgICAgICAuZmlsdGVyKCh7IGRpc3BsYXlOYW1lLCBuYW1lIH06IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFwcE5hbWUgPSBkaXNwbGF5TmFtZSB8fCBuYW1lO1xuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZEFwcE5hbWUgPSBhcHBOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVkRmlsdGVyID0gZXNjYXBlUmVnRXhwQ2hhcmFjdGVycyhmaWx0ZXIpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICByZXR1cm4gZmlsdGVyLmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gZm9ybWF0dGVkQXBwTmFtZS5tYXRjaChmb3JtYXR0ZWRGaWx0ZXIpXG4gICAgICAgICAgICA6IHRydWU7XG4gICAgICAgIH0pXG4gICAgICAgIC5tYXAoKHsgZGlzcGxheU5hbWUsIG5hbWUsIGRlZmF1bHRBY3Rpb24sIGljb24gfTogYW55LCBpZHg6IHN0cmluZykgPT4gKFxuICAgICAgICAgIDxJdGVtXG4gICAgICAgICAgICBrZXk9e2BhcHAtJHtuYW1lfS0ke2lkeH1gfVxuICAgICAgICAgICAgbmFtZT17ZGlzcGxheU5hbWUgfHwgbmFtZX1cbiAgICAgICAgICAgIHBhdGg9e2RlZmF1bHRBY3Rpb259XG4gICAgICAgICAgICBpbWc9e2ljb259XG4gICAgICAgICAgLz5cbiAgICAgICAgKSl9XG5cbiAgICAgIDxzdHlsZSBqc3g+e2BcbiAgICAgICAgLmhlYWRlcmJhci1hcHBzLW1lbnUtbGlzdCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICB3aWR0aDogMzB2dztcbiAgICAgICAgICBtaW4td2lkdGg6IDMwMHB4O1xuICAgICAgICAgIG1heC13aWR0aDogNTYwcHg7XG5cbiAgICAgICAgICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiA0NjVweDtcbiAgICAgICAgICBtYXJnaW46IDAgOHB4IDhweCA4cHg7XG5cbiAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICAgIGB9PC9zdHlsZT5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbkxpc3QucHJvcFR5cGVzID0ge1xuICBhcHBzOiBQcm9wVHlwZXMuYXJyYXksXG4gIGZpbHRlcjogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmNvbnN0IEFwcE1lbnUgPSAoeyBhcHBzLCBmaWx0ZXIsIG9uRmlsdGVyQ2hhbmdlLCBiYXNlVXJsIH06IGFueSkgPT4gKFxuICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlcmJhci1hcHBzLW1lbnVcIiBkYXRhLXRlc3Q9XCJoZWFkZXJiYXItYXBwcy1tZW51XCI+XG4gICAgPENhcmQ+XG4gICAgICA8U2VhcmNoIHZhbHVlPXtmaWx0ZXJ9IG9uQ2hhbmdlPXtvbkZpbHRlckNoYW5nZX0gYmFzZVVybD17YmFzZVVybH0gLz5cbiAgICAgIDxMaXN0IGFwcHM9e2FwcHN9IGZpbHRlcj17ZmlsdGVyfSAvPlxuICAgIDwvQ2FyZD5cblxuICAgIDxzdHlsZSBqc3g+e2BcbiAgICAgIC5oZWFkZXJiYXItYXBwcy1tZW51IHtcbiAgICAgICAgei1pbmRleDogMTAwMDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC00cHg7XG4gICAgICB9XG4gICAgYH08L3N0eWxlPlxuICA8L2Rpdj5cbik7XG5cbkFwcE1lbnUucHJvcFR5cGVzID0ge1xuICBhcHBzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgb25GaWx0ZXJDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGZpbHRlcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgYmFzZVVybDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmNvbnN0IEFwcHMgPSAoeyBhcHBzLCBiYXNlVXJsIH06IGFueSkgPT4ge1xuICBjb25zdCBbc2hvdywgc2V0U2hvd10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtmaWx0ZXIsIHNldEZpbHRlcl0gPSB1c2VTdGF0ZSgnJyk7XG5cbiAgY29uc3QgaGFuZGxlVmlzaWJpbGl0eVRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHNldFNob3coIXNob3cpLCBbc2hvd10pO1xuICBjb25zdCBoYW5kbGVGaWx0ZXJDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoeyB2YWx1ZSB9OiBhbnkpID0+IHNldEZpbHRlcih2YWx1ZSksXG4gICAgW11cbiAgKTtcblxuICBjb25zdCBjb250YWluZXJFbCA9IHVzZVJlZihudWxsKTtcbiAgY29uc3Qgb25Eb2NDbGljayA9IHVzZUNhbGxiYWNrKChldnQ6IGFueSkgPT4ge1xuICAgIGlmIChcbiAgICAgIGNvbnRhaW5lckVsLmN1cnJlbnQgJiZcbiAgICAgICEoY29udGFpbmVyRWwuY3VycmVudCBhcyBhbnkpLmNvbnRhaW5zKGV2dC50YXJnZXQpXG4gICAgKSB7XG4gICAgICBzZXRTaG93KGZhbHNlKTtcbiAgICB9XG4gIH0sIFtdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIG9uRG9jQ2xpY2spO1xuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIG9uRG9jQ2xpY2spO1xuICB9LCBbb25Eb2NDbGlja10pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPVwiaGVhZGVyYmFyLWFwcHNcIlxuICAgICAgcmVmPXtjb250YWluZXJFbH1cbiAgICAgIGRhdGEtdGVzdD1cImhlYWRlcmJhci1hcHBzXCJcbiAgICA+XG4gICAgICA8YnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVZpc2liaWxpdHlUb2dnbGV9IGRhdGEtdGVzdD1cImhlYWRlcmJhci1hcHBzLWljb25cIj5cbiAgICAgICAgPEljb25BcHBzMjQgY29sb3I9e2NvbG9ycy53aGl0ZX0gLz5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICB7c2hvdyA/IChcbiAgICAgICAgPEFwcE1lbnVcbiAgICAgICAgICBhcHBzPXthcHBzfVxuICAgICAgICAgIGZpbHRlcj17ZmlsdGVyfVxuICAgICAgICAgIGJhc2VVcmw9e2Jhc2VVcmx9XG4gICAgICAgICAgb25GaWx0ZXJDaGFuZ2U9e2hhbmRsZUZpbHRlckNoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgICkgOiBudWxsfVxuXG4gICAgICA8c3R5bGUganN4PntgXG4gICAgICAgIC5oZWFkZXJiYXItYXBwcyBidXR0b24ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIHBhZGRpbmc6ICR7c3BhY2Vycy5kcDR9ICR7c3BhY2Vycy5kcDEyfSAwO1xuICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIC5oZWFkZXJiYXItYXBwcyBidXR0b246Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgICAgfVxuICAgICAgICAuaGVhZGVyYmFyLWFwcHMgYnV0dG9uOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgLmhlYWRlcmJhci1hcHBzIGJ1dHRvbjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogIzFhNTU3ZjtcbiAgICAgICAgfVxuICAgICAgICAuaGVhZGVyYmFyLWFwcHMgYnV0dG9uOmFjdGl2ZSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogIzEwNDA2NztcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXJiYXItYXBwcyB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgYH08L3N0eWxlPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuQXBwcy5wcm9wVHlwZXMgPSB7XG4gIGFwcHM6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICBiYXNlVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQXBwcztcbiJdfQ==
|
|
@@ -1,51 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWctaW5mby1tZW51LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvaGVhZGVyLWJhci91dGlscy9kZWJ1Zy1pbmZvL2RlYnVnLWluZm8tbWVudS1pdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxJQUFJLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBUWhELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsTUFBVyxFQUFFLEVBQUU7SUFDL0MsTUFBTSxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUN2RCxNQUFNLFNBQVMsR0FBRyxZQUFZLEVBQUUsQ0FBQztJQUVqQyxNQUFNLGNBQWMsR0FBRyxHQUFHLEVBQUU7UUFDMUIsZUFBZSxFQUFFLENBQUM7UUFDbEIsa0JBQWtCLEVBQUUsQ0FBQztJQUN2QixDQUFDLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxDQUNyQiw2QkFBSyxTQUFTLEVBQUMsTUFBTTtRQUNuQiw2QkFDRSxTQUFTLEVBQUMsdUJBQXVCLGVBQ3ZCLGlDQUFpQyxJQUUxQyxTQUFTLENBQUMsYUFBYTtZQUN0QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsRUFBRTtnQkFDL0IsWUFBWSxFQUFFLFNBQVMsQ0FBQyxhQUFhO2FBQ3RDLENBQUM7WUFDSixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUMvQjtRQUNOLDZCQUFLLFNBQVMsRUFBQyxTQUFTLGVBQVcsNEJBQTRCLElBQzVELFNBQVMsQ0FBQyxRQUFRO1lBQ2pCLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVztnQkFDckIsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLFFBQVEsSUFBSSxTQUFTLENBQUMsV0FBVyxFQUFFO2dCQUNsRCxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsRUFBRTtvQkFDcEMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxRQUFRO2lCQUM1QixDQUFDO1lBQ04sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXO2dCQUN2QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsRUFBRTtvQkFDM0IsVUFBVSxFQUFFLFNBQVMsQ0FBQyxXQUFXO2lCQUNsQyxDQUFDO2dCQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBRTdCO1FBQ04sK0JBQU8sR0FBRyxVQUFFOzttQkFFQyxNQUFNLENBQUMsT0FBTzs7Ozs7Ozs7Ozs7T0FXMUIsQ0FBUyxDQUNOLENBQ1AsQ0FBQztJQUVGLE9BQU8sQ0FDTCxvQkFBQyxRQUFRLElBQ1AsS0FBSyxRQUNMLE9BQU8sRUFBRSxjQUFjLEVBQ3ZCLEtBQUssRUFBRSxjQUFjLEVBQ3JCLFFBQVEsRUFBQyw4QkFBOEIsR0FDdkMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsaUJBQWlCLENBQUMsU0FBUyxHQUFHO0lBQzVCLGVBQWUsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVU7SUFDMUMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVO0NBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ0BkaGlzMi11aS9tZW51JztcbmltcG9ydCB7IGNvbG9ycyB9IGZyb20gJ0BkaGlzMi91aS1jb25zdGFudHMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgaTE4biBmcm9tICdAZGhpczIvZDItaTE4bic7XG5pbXBvcnQgeyB1c2VEZWJ1Z0luZm8gfSBmcm9tICcuL3VzZS1kZWJ1Zy1pbmZvJztcbmRlY2xhcmUgbW9kdWxlICdyZWFjdCcge1xuICBpbnRlcmZhY2UgU3R5bGVIVE1MQXR0cmlidXRlczxUPiBleHRlbmRzIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPFQ+IHtcbiAgICBqc3g/OiBib29sZWFuO1xuICAgIGdsb2JhbD86IGJvb2xlYW47XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IERlYnVnSW5mb01lbnVJdGVtID0gKHBhcmFtczogYW55KSA9PiB7XG4gIGNvbnN0IHsgaGlkZVByb2ZpbGVNZW51LCBzaG93RGVidWdJbmZvTW9kYWwgfSA9IHBhcmFtcztcbiAgY29uc3QgZGVidWdJbmZvID0gdXNlRGVidWdJbmZvKCk7XG5cbiAgY29uc3Qgb3BlbkRlYnVnTW9kYWwgPSAoKSA9PiB7XG4gICAgaGlkZVByb2ZpbGVNZW51KCk7XG4gICAgc2hvd0RlYnVnSW5mb01vZGFsKCk7XG4gIH07XG5cbiAgY29uc3QgZGVidWdJbmZvTGFiZWwgPSAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJyb290XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cImluc3RhbmNlLWluZm8gdmVyc2lvblwiXG4gICAgICAgIGRhdGEtdGVzdD1cImRoaXMyLXVpLWhlYWRlcmJhci1pbnN0YW5jZWluZm9cIlxuICAgICAgPlxuICAgICAgICB7ZGVidWdJbmZvLmRoaXMyX3ZlcnNpb25cbiAgICAgICAgICA/IGkxOG4udCgnREhJUzIge3tkaGlzMlZlcnNpb259fScsIHtcbiAgICAgICAgICAgICAgZGhpczJWZXJzaW9uOiBkZWJ1Z0luZm8uZGhpczJfdmVyc2lvbixcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBpMThuLnQoJ0RISVMyIHZlcnNpb24gdW5rbm93bicpfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInZlcnNpb25cIiBkYXRhLXRlc3Q9XCJkaGlzMi11aS1oZWFkZXJiYXItYXBwaW5mb1wiPlxuICAgICAgICB7ZGVidWdJbmZvLmFwcF9uYW1lXG4gICAgICAgICAgPyBkZWJ1Z0luZm8uYXBwX3ZlcnNpb25cbiAgICAgICAgICAgID8gYCR7ZGVidWdJbmZvLmFwcF9uYW1lfSAke2RlYnVnSW5mby5hcHBfdmVyc2lvbn1gXG4gICAgICAgICAgICA6IGkxOG4udCgne3thcHBOYW1lfX0gdmVyc2lvbiB1bmtub3duJywge1xuICAgICAgICAgICAgICAgIGFwcE5hbWU6IGRlYnVnSW5mby5hcHBfbmFtZSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGRlYnVnSW5mby5hcHBfdmVyc2lvblxuICAgICAgICAgID8gaTE4bi50KCdBcHAge3thcHBWZXJzaW9ufX0nLCB7XG4gICAgICAgICAgICAgIGFwcFZlcnNpb246IGRlYnVnSW5mby5hcHBfdmVyc2lvbixcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBpMThuLnQoJ0FwcCB2ZXJzaW9uIHVua25vd24nKX1cbiAgICAgICAge31cbiAgICAgIDwvZGl2PlxuICAgICAgPHN0eWxlIGpzeD57YFxuICAgICAgICAucm9vdCB7XG4gICAgICAgICAgY29sb3I6ICR7Y29sb3JzLmdyZXk3MDB9O1xuICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgICAgIH1cbiAgICAgICAgLmluc3RhbmNlLWluZm8ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgICAgfVxuICAgICAgICAudmVyc2lvbiB7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vLXdyYXA7XG4gICAgICAgIH1cbiAgICAgIGB9PC9zdHlsZT5cbiAgICA8L2Rpdj5cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxNZW51SXRlbVxuICAgICAgZGVuc2VcbiAgICAgIG9uQ2xpY2s9e29wZW5EZWJ1Z01vZGFsfVxuICAgICAgbGFiZWw9e2RlYnVnSW5mb0xhYmVsfVxuICAgICAgZGF0YVRlc3Q9XCJkaGlzMi11aS1oZWFkZXJiYXItZGVidWdpbmZvXCJcbiAgICAvPlxuICApO1xufTtcblxuRGVidWdJbmZvTWVudUl0ZW0ucHJvcFR5cGVzID0ge1xuICBoaWRlUHJvZmlsZU1lbnU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNob3dEZWJ1Z0luZm9Nb2RhbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn07XG4iXX0=
|
|
@@ -1,30 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWctaW5mby1tb2RhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9oZWFkZXItYmFyL3V0aWxzL2RlYnVnLWluZm8vZGVidWctaW5mby1tb2RhbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sSUFBSSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXpELE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBVztJQUN4QyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQzNCLE1BQU0sU0FBUyxHQUFHLHFCQUFxQixFQUFFLENBQUM7SUFDMUMsTUFBTSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxHQUFHLFFBQVEsQ0FDM0MsdUNBQXVDLEVBQ3ZDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUNuQixDQUFDO0lBRUYsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO1FBQ3pCLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sRUFBRSxDQUFDO1FBQ1Ysa0JBQWtCLEVBQUUsQ0FBQztJQUN2QixDQUFDLENBQUM7SUFFRixPQUFPLENBQ0wsb0JBQUMsS0FBSyxJQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLG1DQUFtQztRQUNuRSxvQkFBQyxVQUFVLFFBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBYztRQUMvQyxvQkFBQyxZQUFZO1lBQ1gsb0JBQUMsY0FBYyxPQUFHLENBQ0w7UUFDZixvQkFBQyxZQUFZO1lBQ1gsb0JBQUMsV0FBVyxJQUFDLEdBQUc7Z0JBQ2Qsb0JBQUMsTUFBTSxJQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFVO2dCQUM1RCxvQkFBQyxNQUFNLElBQ0wsT0FBTyxRQUNQLE9BQU8sRUFBRSxhQUFhLEVBQ3RCLFFBQVEsRUFBQyw4Q0FBOEMsSUFFdEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUNuQixDQUNHLENBQ0QsQ0FDVCxDQUNULENBQUM7QUFDSixDQUFDO0FBRUQsY0FBYyxDQUFDLFNBQVMsR0FBRztJQUN6QixPQUFPLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVO0NBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdXR0b24sIEJ1dHRvblN0cmlwIH0gZnJvbSAnQGRoaXMyLXVpL2J1dHRvbic7XG5pbXBvcnQgeyBNb2RhbCwgTW9kYWxBY3Rpb25zLCBNb2RhbENvbnRlbnQsIE1vZGFsVGl0bGUgfSBmcm9tICdAZGhpczItdWkvbW9kYWwnO1xuaW1wb3J0IHsgdXNlQWxlcnQgfSBmcm9tICdAZGhpczIvYXBwLXJ1bnRpbWUnO1xuaW1wb3J0IGkxOG4gZnJvbSAnQGRoaXMyL2QyLWkxOG4nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBEZWJ1Z0luZm9UYWJsZSB9IGZyb20gJy4vZGVidWctaW5mby10YWJsZSc7XG5pbXBvcnQgeyB1c2VGb3JtYXR0ZWREZWJ1Z0luZm8gfSBmcm9tICcuL3VzZS1kZWJ1Zy1pbmZvJztcblxuZXhwb3J0IGZ1bmN0aW9uIERlYnVnSW5mb01vZGFsKHBhcmFtczogYW55KSB7XG4gIGNvbnN0IHsgb25DbG9zZSB9ID0gcGFyYW1zO1xuICBjb25zdCBkZWJ1Z0luZm8gPSB1c2VGb3JtYXR0ZWREZWJ1Z0luZm8oKTtcbiAgY29uc3QgeyBzaG93OiBzaG93Q2xpcGJvYXJkQWxlcnQgfSA9IHVzZUFsZXJ0KFxuICAgICdEZWJ1ZyBpbmZvcm1hdGlvbiBjb3BpZWQgdG8gY2xpcGJvYXJkJyxcbiAgICB7IGR1cmF0aW9uOiAzMDAwIH1cbiAgKTtcblxuICBjb25zdCBjb3B5RGVidWdJbmZvID0gKCkgPT4ge1xuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGRlYnVnSW5mbyk7XG4gICAgb25DbG9zZSgpO1xuICAgIHNob3dDbGlwYm9hcmRBbGVydCgpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPE1vZGFsIHBvc2l0aW9uPVwibWlkZGxlXCIgZGF0YVRlc3Q9XCJkaGlzMi11aS1oZWFkZXJiYXItZGVidWdpbmZvbW9kYWxcIj5cbiAgICAgIDxNb2RhbFRpdGxlPntpMThuLnQoJ0RlYnVnIGluZm8nKX08L01vZGFsVGl0bGU+XG4gICAgICA8TW9kYWxDb250ZW50PlxuICAgICAgICA8RGVidWdJbmZvVGFibGUgLz5cbiAgICAgIDwvTW9kYWxDb250ZW50PlxuICAgICAgPE1vZGFsQWN0aW9ucz5cbiAgICAgICAgPEJ1dHRvblN0cmlwIGVuZD5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9eygpID0+IG9uQ2xvc2UoKX0+e2kxOG4udCgnQ2xvc2UnKX08L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBwcmltYXJ5XG4gICAgICAgICAgICBvbkNsaWNrPXtjb3B5RGVidWdJbmZvfVxuICAgICAgICAgICAgZGF0YVRlc3Q9XCJkaGlzMi11aS1oZWFkZXJiYXItZGVidWdpbmZvbW9kYWwtY29weWJ1dHRvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge2kxOG4udCgnQ29weSBkZWJ1ZyBpbmZvJyl9XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDwvQnV0dG9uU3RyaXA+XG4gICAgICA8L01vZGFsQWN0aW9ucz5cbiAgICA8L01vZGFsPlxuICApO1xufVxuXG5EZWJ1Z0luZm9Nb2RhbC5wcm9wVHlwZXMgPSB7XG4gIG9uQ2xvc2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuIl19
|
|
@@ -1,39 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWctaW5mby10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9oZWFkZXItYmFyL3V0aWxzL2RlYnVnLWluZm8vZGVidWctaW5mby10YWJsZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFRaEQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQVEsRUFBRSxFQUFFO0lBQ3RDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsT0FBTyxNQUFNO1NBQ1YsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7UUFDbEIsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDcEMsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hFLENBQUM7SUFDSCxDQUFDLENBQUM7U0FDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsY0FBYztJQUM1QixNQUFNLFNBQVMsR0FBRyxZQUFZLEVBQVMsQ0FBQztJQUN4QyxPQUFPLENBQ0wsK0JBQWEsV0FBVyxFQUFFLG1DQUFtQztRQUMzRCxtQ0FDRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FDbkMsNEJBQUksR0FBRyxFQUFFLEdBQUc7WUFDViw0QkFBSSxTQUFTLEVBQUMsZ0JBQWdCLElBQUUsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQU07WUFDN0QsZ0NBQUssU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFNLENBQ3RCLENBQ04sQ0FBQyxDQUNJO1FBQ1IsK0JBQU8sR0FBRyxVQUFFOzs7OzttQkFLQyxNQUFNLENBQUMsT0FBTzs7Ozs7Ozs7O09BUzFCLENBQVMsQ0FDSixDQUNULENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29sb3JzIH0gZnJvbSAnQGRoaXMyL3VpLWNvbnN0YW50cyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGVidWdJbmZvIH0gZnJvbSAnLi91c2UtZGVidWctaW5mbyc7XG5kZWNsYXJlIG1vZHVsZSAncmVhY3QnIHtcbiAgaW50ZXJmYWNlIFN0eWxlSFRNTEF0dHJpYnV0ZXM8VD4gZXh0ZW5kcyBSZWFjdC5IVE1MQXR0cmlidXRlczxUPiB7XG4gICAganN4PzogYm9vbGVhbjtcbiAgICBnbG9iYWw/OiBib29sZWFuO1xuICB9XG59XG5cbmNvbnN0IGZvcm1hdERlYnVnSW5mb0tleSA9IChrZXk6IGFueSkgPT4ge1xuICBjb25zdCB0b2tlbnMgPSBrZXkuc3BsaXQoJ18nKTtcbiAgcmV0dXJuIHRva2Vuc1xuICAgIC5tYXAoKHRva2VuOiBhbnkpID0+IHtcbiAgICAgIGlmICh0b2tlbi50b0xvd2VyQ2FzZSgpID09PSAnZGhpczInKSB7XG4gICAgICAgIHJldHVybiAnREhJUzInO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRva2VuWzBdLnRvVXBwZXJDYXNlKCkgKyB0b2tlbi5zdWJzdHIoMSkudG9Mb3dlckNhc2UoKTtcbiAgICAgIH1cbiAgICB9KVxuICAgIC5qb2luKCcgJyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gRGVidWdJbmZvVGFibGUoKSB7XG4gIGNvbnN0IGRlYnVnSW5mbyA9IHVzZURlYnVnSW5mbygpIGFzIGFueTtcbiAgcmV0dXJuIChcbiAgICA8dGFibGUgey4uLnsgJ2RhdGEtdGVzdCc6ICdkaGlzMi11aS1oZWFkZXJiYXItZGVidWdpbmZvdGFibGUnIH19PlxuICAgICAgPHRib2R5PlxuICAgICAgICB7T2JqZWN0LmtleXMoZGVidWdJbmZvKS5tYXAoKGtleSkgPT4gKFxuICAgICAgICAgIDx0ciBrZXk9e2tleX0+XG4gICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwiZGVidWctaW5mby1rZXlcIj57Zm9ybWF0RGVidWdJbmZvS2V5KGtleSl9PC90ZD5cbiAgICAgICAgICAgIDx0ZD57ZGVidWdJbmZvW2tleV19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICApKX1cbiAgICAgIDwvdGJvZHk+XG4gICAgICA8c3R5bGUganN4PntgXG4gICAgICAgIHRhYmxlIHtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgICAgY29sb3I6ICR7Y29sb3JzLmdyZXk3MDB9O1xuICAgICAgICAgIGZvbnQtZmFtaWxlOiBNZW5sbywgQ291cmllciwgbW9ub3NwYWNlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgdGQge1xuICAgICAgICAgIHBhZGRpbmc6IDNweCAxNnB4IDNweCAwO1xuICAgICAgICB9XG4gICAgICAgIC5kZWJ1Zy1pbmZvLWtleSB7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cbiAgICAgIGB9PC9zdHlsZT5cbiAgICA8L3RhYmxlPlxuICApO1xufVxuIl19
|
|
@@ -1,12 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWRlYnVnLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1kaGlzMi11aS9zcmMvbGliL21vZHVsZXMvaGVhZGVyLWJhci91dGlscy9kZWJ1Zy1pbmZvL3VzZS1kZWJ1Zy1pbmZvLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQUcsRUFBRTtJQUMvQixNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxTQUFTLEVBQVMsQ0FBQztJQUUvRCxPQUFPO1FBQ0wsUUFBUSxFQUFFLE9BQU8sSUFBSSxJQUFJO1FBQ3pCLFdBQVcsRUFBRSxVQUFVLEVBQUUsSUFBSSxJQUFJLElBQUk7UUFDckMsYUFBYSxFQUFFLFVBQVUsRUFBRSxPQUFPLElBQUksSUFBSTtRQUMxQyxjQUFjLEVBQUUsVUFBVSxFQUFFLFFBQVEsSUFBSSxJQUFJO0tBQzdDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLEVBQUUsQ0FDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICdAZGhpczIvYXBwLXJ1bnRpbWUnO1xuXG5leHBvcnQgY29uc3QgdXNlRGVidWdJbmZvID0gKCkgPT4ge1xuICBjb25zdCB7IGFwcE5hbWUsIGFwcFZlcnNpb24sIHN5c3RlbUluZm8gfSA9IHVzZUNvbmZpZygpIGFzIGFueTtcblxuICByZXR1cm4ge1xuICAgIGFwcF9uYW1lOiBhcHBOYW1lIHx8IG51bGwsXG4gICAgYXBwX3ZlcnNpb246IGFwcFZlcnNpb24/LmZ1bGwgfHwgbnVsbCxcbiAgICBkaGlzMl92ZXJzaW9uOiBzeXN0ZW1JbmZvPy52ZXJzaW9uIHx8IG51bGwsXG4gICAgZGhpczJfcmV2aXNpb246IHN5c3RlbUluZm8/LnJldmlzaW9uIHx8IG51bGwsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdXNlRm9ybWF0dGVkRGVidWdJbmZvID0gKCkgPT5cbiAgSlNPTi5zdHJpbmdpZnkodXNlRGVidWdJbmZvKCksIHVuZGVmaW5lZCwgMik7XG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWJhci1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctZGhpczItdWkvc3JjL2xpYi9tb2R1bGVzL2hlYWRlci1iYXIvdXRpbHMvaGVhZGVyLWJhci1jb250ZXh0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxLQUFLLEVBQUUsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRXpELE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDO0lBQ3JDLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLHNCQUFzQixFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7Q0FDakMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRTtJQUN0RCxNQUFNLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUNyRSxPQUFPLENBQ0wsb0JBQUMsZ0JBQWdCLENBQUMsUUFBUSxJQUN4QixLQUFLLEVBQUUsRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQUUsSUFFakQsUUFBUSxDQUNpQixDQUM3QixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBQ0Ysd0JBQXdCLENBQUMsU0FBUyxHQUFHO0lBQ25DLFFBQVEsRUFBRSxTQUFTLENBQUMsSUFBSTtJQUN4QixlQUFlLEVBQUUsU0FBUyxDQUFDLElBQUk7SUFDL0Isc0JBQXNCLEVBQUUsU0FBUyxDQUFDLElBQUk7Q0FDdkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCBoZWFkZXJCYXJDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh7XG4gIHVwZGF0ZUF2YWlsYWJsZTogZmFsc2UsXG4gIG9uQXBwbHlBdmFpbGFibGVVcGRhdGU6ICgpID0+IHt9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBIZWFkZXJCYXJDb250ZXh0UHJvdmlkZXIgPSAocGFyYW1zOiBhbnkpID0+IHtcbiAgY29uc3QgeyB1cGRhdGVBdmFpbGFibGUsIG9uQXBwbHlBdmFpbGFibGVVcGRhdGUsIGNoaWxkcmVuIH0gPSBwYXJhbXM7XG4gIHJldHVybiAoXG4gICAgPGhlYWRlckJhckNvbnRleHQuUHJvdmlkZXJcbiAgICAgIHZhbHVlPXt7IHVwZGF0ZUF2YWlsYWJsZSwgb25BcHBseUF2YWlsYWJsZVVwZGF0ZSB9fVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2hlYWRlckJhckNvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuSGVhZGVyQmFyQ29udGV4dFByb3ZpZGVyLnByb3BUeXBlcyA9IHtcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICB1cGRhdGVBdmFpbGFibGU6IFByb3BUeXBlcy5ib29sLFxuICBvbkFwcGx5QXZhaWxhYmxlVXBkYXRlOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VIZWFkZXJCYXJDb250ZXh0ID0gKCkgPT4gdXNlQ29udGV4dChoZWFkZXJCYXJDb250ZXh0KTtcbiJdfQ==
|
|
@@ -1,56 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9oZWFkZXItYmFyL3V0aWxzL2hlYWRlci1iYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxJQUFJLE1BQU0sUUFBUSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sT0FBTyxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBUWhDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQWlCLEVBQUUsRUFBRTtJQUN2RSxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBRW5CLDZDQUE2QztJQUM3QyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkIsNERBQTREO1FBQzVELHFFQUFxRTtRQUNyRSxNQUFNLE1BQU0sR0FBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUNyRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsQ0FBQztRQUNDLDhDQUE4QztJQUNoRCxDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDO0lBRTVCLE9BQU8sQ0FDTCxnQ0FBUSxTQUFTLEVBQUUsU0FBUztRQUMxQiw2QkFBSyxTQUFTLEVBQUMsTUFBTSxJQUNsQixDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxDQUNyQjtZQUNFLG9CQUFDLElBQUksSUFBQyxPQUFPLEVBQUUsT0FBTyxHQUFJO1lBRTFCLG9CQUFDLEtBQUssSUFDSixHQUFHLEVBQUUsT0FBTyxFQUNaLFFBQVEsRUFBRyxJQUFJLENBQUMsS0FBYSxDQUFDLGtCQUFrQixDQUFDLEdBQ2pEO1lBRUYsNkJBQUssU0FBUyxFQUFDLHNCQUFzQixHQUFHO1lBS3hDLG9CQUFDLGFBQWEsSUFDWixlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFDekQsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsMEJBQTBCLEVBQ3ZELGVBQWUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBUSxHQUNoRDtZQUNGLG9CQUFDLElBQUksSUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxHQUFJO1lBRTNDLG9CQUFDLE9BQU8sSUFDTixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQVcsRUFDakMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFXLEVBQ25DLFFBQVEsRUFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFTLENBQUMsSUFBSSxDQUFDLEVBQ3BELE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksR0FDL0IsQ0FDRCxDQUNKLENBQ0c7UUFJTiwrQkFBTyxHQUFHLFVBQUU7Ozs7Ozs7bUJBT0MsTUFBTSxDQUFDLEtBQUs7Ozs7OztPQU14QixDQUFTLENBQ0gsQ0FDVixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsU0FBUyxDQUFDLFNBQVMsR0FBRztJQUNwQixPQUFPLEVBQUUsU0FBUyxDQUFDLE1BQU07SUFDekIsSUFBSSxFQUFFLGFBQWE7SUFDbkIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxNQUFNO0lBQzNCLGVBQWUsRUFBRSxTQUFTLENBQUMsSUFBSTtJQUMvQixzQkFBc0IsRUFBRSxTQUFTLENBQUMsSUFBSTtDQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGkxOG4gZnJvbSAnQGRoaXMyL2QyLWkxOG4nO1xuaW1wb3J0IHsgY29sb3JzIH0gZnJvbSAnQGRoaXMyL3VpLWNvbnN0YW50cyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEhlYWRlckJhckRhdGEgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IEFwcHMgZnJvbSAnLi9hcHBzJztcbmltcG9ydCB7IExvZ28gfSBmcm9tICcuL2xvZ28nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9ucyB9IGZyb20gJy4vbm90aWZpY2F0aW9ucyc7XG5pbXBvcnQgUHJvZmlsZSBmcm9tICcuL3Byb2ZpbGUnO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICcuL3RpdGxlJztcblxuaW50ZXJmYWNlIEhlYWRlckJhclByb3Age1xuICBhcHBOYW1lOiBzdHJpbmc7XG4gIGRhdGE6IEhlYWRlckJhckRhdGE7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IEhlYWRlckJhciA9ICh7IGFwcE5hbWUsIGRhdGEsIGNsYXNzTmFtZSB9OiBIZWFkZXJCYXJQcm9wKSA9PiB7XG4gIGNvbnN0IGxvYWRpbmcgPSBmYWxzZTtcbiAgY29uc3QgZXJyb3IgPSBudWxsO1xuXG4gIC8vIFNlZSBodHRwczovL2ppcmEuZGhpczIub3JnL2Jyb3dzZS9MSUJTLTE4MFxuICBpZiAoIWxvYWRpbmcgJiYgIWVycm9yKSB7XG4gICAgLy8gVE9ETzogVGhpcyB3aWxsIHJ1biBldmVyeSByZW5kZXIgd2hpY2ggaXMgcHJvYmFibHkgd3JvbmchXG4gICAgLy8gQWxzbywgc2V0dGluZyB0aGUgZ2xvYmFsIGxvY2FsZSBzaG91bGRuJ3QgYmUgZG9uZSBpbiB0aGUgaGVhZGVyYmFyXG4gICAgY29uc3QgbG9jYWxlID0gKGRhdGEudXNlclsnc2V0dGluZ3MnXSBhcyBhbnkpWydrZXlVaUxvY2FsZSddIHx8ICdlbic7XG4gICAgaTE4bi5zZXREZWZhdWx0TmFtZXNwYWNlKCdkZWZhdWx0Jyk7XG4gICAgaTE4bi5jaGFuZ2VMYW5ndWFnZShsb2NhbGUpO1xuICB9XG5cbiAge1xuICAgIC8qIFRPRE86IEZpbmQgYmV0dGVyIHdheSB0byBhdHRhY2ggYmFzZSBVUkwgKi9cbiAgfVxuICBjb25zdCBiYXNlVXJsID0gJy4uLy4uLy4uLyc7XG5cbiAgcmV0dXJuIChcbiAgICA8aGVhZGVyIGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFpblwiPlxuICAgICAgICB7IWxvYWRpbmcgJiYgIWVycm9yICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPExvZ28gYmFzZVVybD17YmFzZVVybH0gLz5cblxuICAgICAgICAgICAgPFRpdGxlXG4gICAgICAgICAgICAgIGFwcD17YXBwTmFtZX1cbiAgICAgICAgICAgICAgaW5zdGFuY2U9eyhkYXRhLnRpdGxlIGFzIGFueSlbJ2FwcGxpY2F0aW9uVGl0bGUnXX1cbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmlnaHQtY29udHJvbC1zcGFjZXJcIiAvPlxuXG4gICAgICAgICAgICB7LypUT0RPOiBGaW5kIGJldHRlciBhcHByb2FjaCB0byBoYW5kbGUgUFdBICovfVxuICAgICAgICAgICAgey8qIHsncHdhRW5hYmxlZCcgJiYgPE9ubGluZVN0YXR1cyAvPn0gKi99XG5cbiAgICAgICAgICAgIDxOb3RpZmljYXRpb25zXG4gICAgICAgICAgICAgIGludGVycHJldGF0aW9ucz17ZGF0YS5ub3RpZmljYXRpb25zLnVucmVhZEludGVycHJldGF0aW9uc31cbiAgICAgICAgICAgICAgbWVzc2FnZXM9e2RhdGEubm90aWZpY2F0aW9ucy51bnJlYWRNZXNzYWdlQ29udmVyc2F0aW9uc31cbiAgICAgICAgICAgICAgdXNlckF1dGhvcml0aWVzPXtkYXRhLnVzZXJbJ2F1dGhvcml0aWVzJ10gYXMgYW55fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxBcHBzIGFwcHM9e2RhdGEuYXBwc30gYmFzZVVybD17YmFzZVVybH0gLz5cblxuICAgICAgICAgICAgPFByb2ZpbGVcbiAgICAgICAgICAgICAgbmFtZT17ZGF0YS51c2VyWyduYW1lJ10gYXMgc3RyaW5nfVxuICAgICAgICAgICAgICBlbWFpbD17ZGF0YS51c2VyWydlbWFpbCddIGFzIHN0cmluZ31cbiAgICAgICAgICAgICAgYXZhdGFySWQ9eygoZGF0YS51c2VyWydhdmF0YXInXSB8fCB7fSkgYXMgYW55KVsnaWQnXX1cbiAgICAgICAgICAgICAgaGVscFVybD17ZGF0YS5oZWxwLmhlbHBQYWdlTGlua31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIHsncHdhRW5hYmxlZCcgJiYgIWxvYWRpbmcgJiYgIWVycm9yICYmIDxPbmxpbmVTdGF0dXMgZGVuc2UgLz59ICovfVxuXG4gICAgICA8c3R5bGUganN4PntgXG4gICAgICAgIC5tYWluIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJjNjY5MztcbiAgICAgICAgICBjb2xvcjogJHtjb2xvcnMud2hpdGV9O1xuICAgICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgfVxuICAgICAgICAucmlnaHQtY29udHJvbC1zcGFjZXIge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICBgfTwvc3R5bGU+XG4gICAgPC9oZWFkZXI+XG4gICk7XG59O1xuXG5IZWFkZXJCYXIucHJvcFR5cGVzID0ge1xuICBhcHBOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkYXRhOiBIZWFkZXJCYXJEYXRhLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHVwZGF0ZUF2YWlsYWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gIG9uQXBwbHlBdmFpbGFibGVVcGRhdGU6IFByb3BUeXBlcy5mdW5jLFxufTtcbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9pbi1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctZGhpczItdWkvc3JjL2xpYi9tb2R1bGVzL2hlYWRlci1iYXIvdXRpbHMvam9pbi1wYXRoLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEtBQVksRUFBRSxFQUFFO0lBQzFDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRCxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzNFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBqb2luUGF0aCA9ICguLi5wYXJ0czogYW55W10pID0+IHtcbiAgY29uc3QgcmVhbFBhcnRzID0gcGFydHMuZmlsdGVyKChwYXJ0KSA9PiAhIXBhcnQpO1xuICByZXR1cm4gcmVhbFBhcnRzLm1hcCgocGFydCkgPT4gcGFydC5yZXBsYWNlKC9eXFwvK3xcXC8rJC9nLCAnJykpLmpvaW4oJy8nKTtcbn07XG4iXX0=
|
|
@@ -1,52 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nby1pbWFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9oZWFkZXItYmFyL3V0aWxzL2xvZ28taW1hZ2UudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBUTFCLE1BQU0sS0FBSyxHQUFHO0lBQ1osVUFBVSxFQUFFO1FBQ1YsUUFBUSxFQUFFLDJCQUEyQjtLQUN0QztDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQy9CLElBQUk7SUFDSixJQUFJLENBQUMsVUFBVTtJQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTtJQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFFN0IsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRTtJQUM1QixNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFRLENBQUM7SUFFNUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNaLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDO0lBQ1QsSUFBSSxDQUFDLEtBQUssSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMvQixJQUFJLEdBQUcsNkJBQUssR0FBRyxFQUFDLGdCQUFnQixFQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUksQ0FBQztJQUN2RSxDQUFDO1NBQU0sQ0FBQztRQUNOLElBQUksR0FBRyxvQkFBQyxhQUFhLE9BQUcsQ0FBQztJQUMzQixDQUFDO0lBRUQsT0FBTyxDQUNMLDZCQUFLLFNBQVMsRUFBQyxpQkFBaUI7UUFDN0IsSUFBSTtRQUNMLCtCQUFPLEdBQUcsVUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F1QlgsQ0FBUyxDQUNOLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ29JY29uV2hpdGUgfSBmcm9tICdAZGhpczItdWkvbG9nbyc7XG5pbXBvcnQgeyB1c2VEYXRhUXVlcnkgfSBmcm9tICdAZGhpczIvYXBwLXJ1bnRpbWUnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmRlY2xhcmUgbW9kdWxlICdyZWFjdCcge1xuICBpbnRlcmZhY2UgU3R5bGVIVE1MQXR0cmlidXRlczxUPiBleHRlbmRzIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPFQ+IHtcbiAgICBqc3g/OiBib29sZWFuO1xuICAgIGdsb2JhbD86IGJvb2xlYW47XG4gIH1cbn1cblxuY29uc3QgcXVlcnkgPSB7XG4gIGN1c3RvbUxvZ286IHtcbiAgICByZXNvdXJjZTogJ3N0YXRpY0NvbnRlbnQvbG9nb19iYW5uZXInLFxuICB9LFxufTtcblxuY29uc3QgcGF0aEV4aXN0cyA9IChkYXRhOiBhbnkpID0+XG4gIGRhdGEgJiZcbiAgZGF0YS5jdXN0b21Mb2dvICYmXG4gIGRhdGEuY3VzdG9tTG9nby5pbWFnZXMgJiZcbiAgZGF0YS5jdXN0b21Mb2dvLmltYWdlcy5wbmc7XG5cbmV4cG9ydCBjb25zdCBMb2dvSW1hZ2UgPSAoKSA9PiB7XG4gIGNvbnN0IHsgbG9hZGluZywgZXJyb3IsIGRhdGEgfSA9IHVzZURhdGFRdWVyeShxdWVyeSkgYXMgYW55O1xuXG4gIGlmIChsb2FkaW5nKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBsZXQgTG9nbztcbiAgaWYgKCFlcnJvciAmJiBwYXRoRXhpc3RzKGRhdGEpKSB7XG4gICAgTG9nbyA9IDxpbWcgYWx0PVwiSGVhZGVyYmFyIExvZ29cIiBzcmM9e2RhdGEuY3VzdG9tTG9nby5pbWFnZXMucG5nfSAvPjtcbiAgfSBlbHNlIHtcbiAgICBMb2dvID0gPExvZ29JY29uV2hpdGUgLz47XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVhZGVyLWJhci1sb2dvXCI+XG4gICAgICB7TG9nb31cbiAgICAgIDxzdHlsZSBqc3g+e2BcbiAgICAgICAgLmhlYWRlci1iYXItbG9nbyB7XG4gICAgICAgICAgbWluLXdpZHRoOiA0OHB4O1xuICAgICAgICAgIG1heC13aWR0aDogMjUwcHg7XG4gICAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlci1iYXItbG9nbyBzdmcge1xuICAgICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgICAgICB3aWR0aDogMjdweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXItYmFyLWxvZ28gaW1nIHtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIGB9PC9zdHlsZT5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXX0=
|
|
@@ -1,35 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9oZWFkZXItYmFyL3V0aWxzL2xvZ28udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBWXpDLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFZLEVBQUUsRUFBRTtJQUM1QyxPQUFPLENBQ0wsNkJBQUssU0FBUyxFQUFDLGdCQUFnQixlQUFXLGdCQUFnQjtRQUN4RCwyQkFBRyxJQUFJLEVBQUUsT0FBTztZQUNkLG9CQUFDLFNBQVMsT0FBRyxDQUNYO1FBRUosK0JBQU8sR0FBRyxVQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBCWCxDQUFTLENBQ04sQ0FDUCxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSAnQGRoaXMyL2FwcC1ydW50aW1lJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMb2dvSW1hZ2UgfSBmcm9tICcuL2xvZ28taW1hZ2UnO1xuZGVjbGFyZSBtb2R1bGUgJ3JlYWN0JyB7XG4gIGludGVyZmFjZSBTdHlsZUhUTUxBdHRyaWJ1dGVzPFQ+IGV4dGVuZHMgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8VD4ge1xuICAgIGpzeD86IGJvb2xlYW47XG4gICAgZ2xvYmFsPzogYm9vbGVhbjtcbiAgfVxufVxuXG5pbnRlcmZhY2UgTG9nb1Byb3Age1xuICBiYXNlVXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBMb2dvID0gKHsgYmFzZVVybCB9OiBMb2dvUHJvcCkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVhZGVyYmFyLWxvZ29cIiBkYXRhLXRlc3Q9XCJoZWFkZXJiYXItbG9nb1wiPlxuICAgICAgPGEgaHJlZj17YmFzZVVybH0+XG4gICAgICAgIDxMb2dvSW1hZ2UgLz5cbiAgICAgIDwvYT5cblxuICAgICAgPHN0eWxlIGpzeD57YFxuICAgICAgICAuaGVhZGVyYmFyLWxvZ28ge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgbWluLXdpZHRoOiA0OXB4O1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgbWFyZ2luOiAwIDEycHggMCAwO1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMzIsIDMyLCAzMiwgMC4xNSk7XG4gICAgICAgIH1cbiAgICAgICAgLmhlYWRlcmJhci1sb2dvOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWE1NTdmO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlcmJhci1sb2dvIGEsXG4gICAgICAgIC5oZWFkZXJiYXItbG9nbyBhOmhvdmVyLFxuICAgICAgICAuaGVhZGVyYmFyLWxvZ28gYTpmb2N1cyxcbiAgICAgICAgLmhlYWRlcmJhci1sb2dvIGE6YWN0aXZlLFxuICAgICAgICAuaGVhZGVyYmFyLWxvZ28gYTp2aXNpdGVkIHtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAuaGVhZGVyYmFyLWxvZ28gYTpmb2N1cyB7XG4gICAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHdoaXRlO1xuICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAgICAgICB9XG4gICAgICAgIC5oZWFkZXJiYXItbG9nbyBhOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIGB9PC9zdHlsZT5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXX0=
|