@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.
Files changed (88) hide show
  1. package/fesm2022/iapps-ng-dhis2-ui.mjs +59 -52
  2. package/fesm2022/iapps-ng-dhis2-ui.mjs.map +1 -1
  3. package/lib/modules/organisation-unit-selector/components/OrgUnitDimension.d.ts +3 -1
  4. package/lib/modules/organisation-unit-selector/index.d.ts +1 -0
  5. package/lib/shared/utils/predefinedDimensions.d.ts +6 -6
  6. package/package.json +6 -8
  7. package/esm2022/iapps-ng-dhis2-ui.mjs +0 -5
  8. package/esm2022/index.mjs +0 -6
  9. package/esm2022/lib/modules/button/button.component.mjs +0 -60
  10. package/esm2022/lib/modules/button/button.module.mjs +0 -19
  11. package/esm2022/lib/modules/button/index.mjs +0 -6
  12. package/esm2022/lib/modules/header-bar/header-bar.component.mjs +0 -38
  13. package/esm2022/lib/modules/header-bar/header-bar.module.mjs +0 -19
  14. package/esm2022/lib/modules/header-bar/index.mjs +0 -6
  15. package/esm2022/lib/modules/header-bar/models/header-bar-app.model.mjs +0 -20
  16. package/esm2022/lib/modules/header-bar/models/header-bar-data.model.mjs +0 -46
  17. package/esm2022/lib/modules/header-bar/models/header-bar-notification.model.mjs +0 -11
  18. package/esm2022/lib/modules/header-bar/models/index.mjs +0 -6
  19. package/esm2022/lib/modules/header-bar/utils/apps.mjs +0 -221
  20. package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-menu-item.mjs +0 -51
  21. package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-modal.mjs +0 -30
  22. package/esm2022/lib/modules/header-bar/utils/debug-info/debug-info-table.mjs +0 -39
  23. package/esm2022/lib/modules/header-bar/utils/debug-info/use-debug-info.mjs +0 -12
  24. package/esm2022/lib/modules/header-bar/utils/header-bar-context.mjs +0 -17
  25. package/esm2022/lib/modules/header-bar/utils/header-bar.mjs +0 -56
  26. package/esm2022/lib/modules/header-bar/utils/join-path.mjs +0 -5
  27. package/esm2022/lib/modules/header-bar/utils/logo-image.mjs +0 -52
  28. package/esm2022/lib/modules/header-bar/utils/logo.mjs +0 -35
  29. package/esm2022/lib/modules/header-bar/utils/notification-icon.mjs +0 -76
  30. package/esm2022/lib/modules/header-bar/utils/notifications.mjs +0 -35
  31. package/esm2022/lib/modules/header-bar/utils/profile/use-on-doc-click.mjs +0 -21
  32. package/esm2022/lib/modules/header-bar/utils/profile-menu/index.mjs +0 -2
  33. package/esm2022/lib/modules/header-bar/utils/profile-menu/profile-header.mjs +0 -95
  34. package/esm2022/lib/modules/header-bar/utils/profile-menu/profile-menu.mjs +0 -101
  35. package/esm2022/lib/modules/header-bar/utils/profile-menu/update-notification.mjs +0 -54
  36. package/esm2022/lib/modules/header-bar/utils/profile.mjs +0 -58
  37. package/esm2022/lib/modules/header-bar/utils/title.mjs +0 -22
  38. package/esm2022/lib/modules/organisation-unit-selector/components/OrgUnitDimension.mjs +0 -216
  39. package/esm2022/lib/modules/organisation-unit-selector/components/index.mjs +0 -6
  40. package/esm2022/lib/modules/organisation-unit-selector/components/styles/OrgUnitDimension.style.mjs +0 -83
  41. package/esm2022/lib/modules/organisation-unit-selector/components/utils/index.mjs +0 -6
  42. package/esm2022/lib/modules/organisation-unit-selector/components/utils/ouIdHelper/index.mjs +0 -18
  43. package/esm2022/lib/modules/organisation-unit-selector/components/utils/ouLevelUtils/index.mjs +0 -27
  44. package/esm2022/lib/modules/organisation-unit-selector/containers/organisation-unit-selector/organisation-unit-selector.component.mjs +0 -91
  45. package/esm2022/lib/modules/organisation-unit-selector/containers/organisation-unit-selector-modal/organisation-unit-selector-modal.component-modal.mjs +0 -114
  46. package/esm2022/lib/modules/organisation-unit-selector/index.mjs +0 -7
  47. package/esm2022/lib/modules/organisation-unit-selector/models/index.mjs +0 -5
  48. package/esm2022/lib/modules/organisation-unit-selector/models/organisation-unit-config.model.mjs +0 -16
  49. package/esm2022/lib/modules/organisation-unit-selector/organisation-unit-selector.module.mjs +0 -28
  50. package/esm2022/lib/modules/period-selector/components/FixedPeriodFilter.mjs +0 -44
  51. package/esm2022/lib/modules/period-selector/components/PeriodDimension.mjs +0 -41
  52. package/esm2022/lib/modules/period-selector/components/PeriodTransfer.mjs +0 -110
  53. package/esm2022/lib/modules/period-selector/components/RelativePeriodFilter.mjs +0 -28
  54. package/esm2022/lib/modules/period-selector/components/utils/fixedPeriods.mjs +0 -308
  55. package/esm2022/lib/modules/period-selector/components/utils/index.mjs +0 -5
  56. package/esm2022/lib/modules/period-selector/components/utils/periodTypes.mjs +0 -23
  57. package/esm2022/lib/modules/period-selector/components/utils/relativePeriods.mjs +0 -139
  58. package/esm2022/lib/modules/period-selector/containers/period-selector/period-selector.component.mjs +0 -69
  59. package/esm2022/lib/modules/period-selector/containers/period-selector-modal/period-selector-modal.component.mjs +0 -82
  60. package/esm2022/lib/modules/period-selector/index.mjs +0 -7
  61. package/esm2022/lib/modules/period-selector/period-selector.module.mjs +0 -20
  62. package/esm2022/lib/modules/react-wrapper/index.mjs +0 -6
  63. package/esm2022/lib/modules/react-wrapper/react-wrapper.component.mjs +0 -55
  64. package/esm2022/lib/modules/react-wrapper/react-wrapper.module.mjs +0 -18
  65. package/esm2022/lib/shared/assets/AssignedCategoriesIcon.mjs +0 -12
  66. package/esm2022/lib/shared/assets/DimensionItemIcons/PeriodIcon.mjs +0 -4
  67. package/esm2022/lib/shared/components/TransferOption.mjs +0 -130
  68. package/esm2022/lib/shared/components/index.mjs +0 -6
  69. package/esm2022/lib/shared/index.mjs +0 -7
  70. package/esm2022/lib/shared/shared.module.mjs +0 -18
  71. package/esm2022/lib/shared/styles/DimensionSelector.style.mjs +0 -39
  72. package/esm2022/lib/shared/styles/index.mjs +0 -5
  73. package/esm2022/lib/shared/utils/axis.mjs +0 -25
  74. package/esm2022/lib/shared/utils/axisGetDimension.mjs +0 -5
  75. package/esm2022/lib/shared/utils/axisHasDimension.mjs +0 -3
  76. package/esm2022/lib/shared/utils/dimension.mjs +0 -52
  77. package/esm2022/lib/shared/utils/dimensionGetItems.mjs +0 -6
  78. package/esm2022/lib/shared/utils/dimensionIs.mjs +0 -3
  79. package/esm2022/lib/shared/utils/dimensionIsEmpty.mjs +0 -5
  80. package/esm2022/lib/shared/utils/dimensionIsValid.mjs +0 -17
  81. package/esm2022/lib/shared/utils/dimensionSelectorHelper.mjs +0 -4
  82. package/esm2022/lib/shared/utils/index.mjs +0 -15
  83. package/esm2022/lib/shared/utils/layoutGetAllAxes.mjs +0 -7
  84. package/esm2022/lib/shared/utils/layoutGetAllDimensions.mjs +0 -6
  85. package/esm2022/lib/shared/utils/layoutGetDimension.mjs +0 -4
  86. package/esm2022/lib/shared/utils/layoutReplaceDimension.mjs +0 -17
  87. package/esm2022/lib/shared/utils/list.mjs +0 -15
  88. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWRoaXMyLXVpL3NyYy9saWIvbW9kdWxlcy9oZWFkZXItYmFyL3V0aWxzL2FwcHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLElBQUksTUFBTSxnQkFBZ0IsQ0FBQztBQVFsQzs7O0dBR0c7QUFDSCxTQUFTLHNCQUFzQixDQUFDLElBQVk7SUFDMUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFPO0lBQy9DLE9BQU8sQ0FDTCw2QkFBSyxTQUFTLEVBQUMsdUJBQXVCO1FBQ3BDLDhCQUFNLFNBQVMsRUFBQyw2QkFBNkI7WUFDM0Msb0JBQUMsVUFBVSxJQUNULEtBQUssRUFBRSxLQUFLLEVBQ1osSUFBSSxFQUFDLFFBQVEsRUFDYixXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFDbEMsUUFBUSxFQUFFLFFBQVEsRUFDbEIsWUFBWSxTQUNaLENBQ0c7UUFFUCw4QkFBTSxTQUFTLEVBQUMsNEJBQTRCO1lBQzFDLDJCQUFHLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLDBCQUEwQixDQUFDO2dCQUNwRCxvQkFBQyxjQUFjLElBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEdBQUksQ0FDdkMsQ0FDQztRQUVQLCtCQUFPLEdBQUcsVUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpQlgsQ0FBUyxDQUNOLENBQ1AsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsU0FBUyxHQUFHO0lBQ2pCLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7SUFDbEMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVTtJQUNuQyxPQUFPLEVBQUUsU0FBUyxDQUFDLE1BQU07Q0FDMUIsQ0FBQztBQUVGLFNBQVMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQU87SUFDcEMsT0FBTyxDQUNMLDJCQUFHLFNBQVMsRUFBQyxvQkFBb0IsRUFBQyxJQUFJLEVBQUUsSUFBSTtRQUMxQyw2QkFBSyxTQUFTLEVBQUMseUJBQXlCLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUMsVUFBVSxHQUFHO1FBRXBFLDZCQUFLLFNBQVMsRUFBQywwQkFBMEIsSUFBRSxJQUFJLENBQU87UUFFdEQsK0JBQU8sR0FBRyxVQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkE2QlksS0FBSyxDQUFDLFVBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BMEJ2QyxDQUFTLENBQ1IsQ0FDTCxDQUFDO0FBQ0osQ0FBQztBQUVELElBQUksQ0FBQyxTQUFTLEdBQUc7SUFDZixHQUFHLEVBQUUsU0FBUyxDQUFDLE1BQU07SUFDckIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO0lBQ3RCLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTtDQUN2QixDQUFDO0FBRUYsU0FBUyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFPO0lBQ2pDLE9BQU8sQ0FDTCw2QkFDRSxTQUFTLEVBQUMsMEJBQTBCLGVBQzFCLDBCQUEwQjtRQUVuQyxJQUFJO2FBQ0YsTUFBTSxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFPLEVBQUUsRUFBRTtZQUNyQyxNQUFNLE9BQU8sR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDO1lBQ3BDLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9DLE1BQU0sZUFBZSxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRXJFLE9BQU8sTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUN0QixDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNYLENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFPLEVBQUUsR0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUNyRSxvQkFBQyxJQUFJLElBQ0gsR0FBRyxFQUFFLE9BQU8sSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUN6QixJQUFJLEVBQUUsV0FBVyxJQUFJLElBQUksRUFDekIsSUFBSSxFQUFFLGFBQWEsRUFDbkIsR0FBRyxFQUFFLElBQUksR0FDVCxDQUNILENBQUM7UUFFSiwrQkFBTyxHQUFHLFVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FtQlgsQ0FBUyxDQUNOLENBQ1AsQ0FBQztBQUNKLENBQUM7QUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHO0lBQ2YsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLO0lBQ3JCLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTTtDQUN6QixDQUFDO0FBRUYsTUFBTSxPQUFPLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBTyxFQUFFLEVBQUUsQ0FBQyxDQUNsRSw2QkFBSyxTQUFTLEVBQUMscUJBQXFCLGVBQVcscUJBQXFCO0lBQ2xFLG9CQUFDLElBQUk7UUFDSCxvQkFBQyxNQUFNLElBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxPQUFPLEdBQUk7UUFDckUsb0JBQUMsSUFBSSxJQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBSSxDQUMvQjtJQUVQLCtCQUFPLEdBQUcsVUFBRTs7Ozs7O0tBTVgsQ0FBUyxDQUNOLENBQ1AsQ0FBQztBQUVGLE9BQU8sQ0FBQyxTQUFTLEdBQUc7SUFDbEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVTtJQUNoQyxjQUFjLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVO0lBQ3pDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTTtJQUN4QixPQUFPLEVBQUUsU0FBUyxDQUFDLE1BQU07Q0FDMUIsQ0FBQztBQUVGLE1BQU0sSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFPLEVBQUUsRUFBRTtJQUN0QyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV6QyxNQUFNLHNCQUFzQixHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekUsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLENBQ3BDLENBQUMsRUFBRSxLQUFLLEVBQU8sRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUNwQyxFQUFFLENBQ0gsQ0FBQztJQUVGLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtRQUMxQyxJQUNFLFdBQVcsQ0FBQyxPQUFPO1lBQ25CLENBQUUsV0FBVyxDQUFDLE9BQWUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUNsRCxDQUFDO1lBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDUCxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvQyxPQUFPLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDakUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUVqQixPQUFPLENBQ0wsNkJBQ0UsU0FBUyxFQUFDLGdCQUFnQixFQUMxQixHQUFHLEVBQUUsV0FBVyxlQUNOLGdCQUFnQjtRQUUxQixnQ0FBUSxPQUFPLEVBQUUsc0JBQXNCLGVBQVkscUJBQXFCO1lBQ3RFLG9CQUFDLFVBQVUsSUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssR0FBSSxDQUM1QjtRQUVSLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDTixvQkFBQyxPQUFPLElBQ04sSUFBSSxFQUFFLElBQUksRUFDVixNQUFNLEVBQUUsTUFBTSxFQUNkLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLGNBQWMsRUFBRSxrQkFBa0IsR0FDbEMsQ0FDSCxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBRVIsK0JBQU8sR0FBRyxVQUFFOzs7O3FCQUlHLE9BQU8sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLElBQUk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BdUJ6QyxDQUFTLENBQ04sQ0FDUCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsSUFBSSxDQUFDLFNBQVMsR0FBRztJQUNmLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVU7SUFDaEMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxNQUFNO0NBQzFCLENBQUM7QUFFRixlQUFlLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhcmQgfSBmcm9tICdAZGhpczItdWkvY2FyZCc7XG5pbXBvcnQgeyBJbnB1dEZpZWxkIH0gZnJvbSAnQGRoaXMyLXVpL2lucHV0JztcbmltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gJ0BkaGlzMi9hcHAtcnVudGltZSc7XG5pbXBvcnQgeyBjb2xvcnMsIHNwYWNlcnMsIHRoZW1lIH0gZnJvbSAnQGRoaXMyL3VpLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBJY29uQXBwczI0LCBJY29uU2V0dGluZ3MyNCB9IGZyb20gJ0BkaGlzMi91aS1pY29ucyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqb2luUGF0aCB9IGZyb20gJy4vam9pbi1wYXRoJztcbmltcG9ydCBpMThuIGZyb20gJ0BkaGlzMi9kMi1pMThuJztcbmRlY2xhcmUgbW9kdWxlICdyZWFjdCcge1xuICBpbnRlcmZhY2UgU3R5bGVIVE1MQXR0cmlidXRlczxUPiBleHRlbmRzIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPFQ+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=