@entur-partner/common 9.3.1 → 9.3.3-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -0
- package/dist/ActionBar.d.ts +2 -2
- package/dist/AuditInfo.d.ts +3 -3
- package/dist/Box.d.ts +15 -14
- package/dist/Breadcrumbs.d.ts +2 -2
- package/dist/ConfirmModal.d.ts +4 -3
- package/dist/Content.d.ts +4 -3
- package/dist/EnturPartnerLogo.d.ts +6 -5
- package/dist/ErrorBoundary.d.ts +1 -1
- package/dist/ExpandableMultiLanguageInput.d.ts +4 -4
- package/dist/FeatureToggle.d.ts +1 -1
- package/dist/FormatCurrencyAmount.d.ts +4 -3
- package/dist/FormatDateTime.d.ts +1 -1
- package/dist/LanguageSelect.d.ts +4 -4
- package/dist/Link.d.ts +2 -2
- package/dist/LinkButton.d.ts +3 -3
- package/dist/Menu.d.ts +4 -3
- package/dist/MultiLanguageInput.d.ts +5 -5
- package/dist/OrganisationDropdown.d.ts +2 -2
- package/dist/PageTitle.d.ts +1 -1
- package/dist/Pager.d.ts +1 -1
- package/dist/PermissionCheck.d.ts +2 -2
- package/dist/RouteLeavingGuard.d.ts +3 -3
- package/dist/Stack.d.ts +3 -2
- package/dist/StatusLabel.d.ts +2 -2
- package/dist/Text.d.ts +7 -6
- package/dist/Unbutton.d.ts +4 -4
- package/dist/UserMenu/components/CookieSettingsMenuItem.d.ts +2 -2
- package/dist/UserMenu/components/CustomOverflowMenu.d.ts +3 -3
- package/dist/UserMenu/components/CustomOverflowMenuItem.d.ts +2 -2
- package/dist/UserMenu/components/LanguageSwitchMenuItem.d.ts +2 -2
- package/dist/UserMenu/components/LogOutMenuItem.d.ts +2 -2
- package/dist/UserMenu/components/UserMenuItem.d.ts +2 -2
- package/dist/UserMenu/components/VersionMenuItem.d.ts +1 -1
- package/dist/UserMenu/index.d.ts +3 -3
- package/dist/UserMenu/useOutsideClick.d.ts +1 -1
- package/dist/common.cjs.development.js +793 -793
- package/dist/common.cjs.development.js.map +1 -1
- package/dist/common.cjs.production.min.js +1 -1
- package/dist/common.cjs.production.min.js.map +1 -1
- package/dist/common.esm.js +789 -789
- package/dist/common.esm.js.map +1 -1
- package/dist/index.d.ts +30 -30
- package/dist/styles.css +87 -87
- package/dist/useEventListener.d.ts +1 -3
- package/package.json +62 -62
- package/dist/helpers.d.ts +0 -1
package/dist/common.esm.js
CHANGED
|
@@ -1,17 +1,38 @@
|
|
|
1
|
-
import React, { Children, useState, useEffect, useRef
|
|
1
|
+
import React, { Children, Component, useState, useEffect, useRef } from 'react';
|
|
2
|
+
import { localeDate, localeDateTime, isDate, isDateString, splitUrlPath, isString, isFunction, assertIsDefined, hasAllPermissions, hasOneOfPermissions } from '@entur-partner/util';
|
|
2
3
|
import cx from 'classnames';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { useNavigate, Link as Link$2, useInRouterContext, useBlocker } from 'react-router-dom';
|
|
7
|
-
import { SearchableDropdown } from '@entur/dropdown';
|
|
8
|
-
import { SegmentedControl, SegmentedChoice } from '@entur/form';
|
|
9
|
-
import { assertIsDefined, localeDate, localeDateTime, isDate, isDateString, isString, hasAllPermissions, hasOneOfPermissions, splitUrlPath } from '@entur-partner/util';
|
|
10
|
-
import { ExpandablePanel } from '@entur/expand';
|
|
11
|
-
import { BannerAlertBox } from '@entur/alert';
|
|
4
|
+
import { BreadcrumbItem, BreadcrumbNavigation, Pagination } from '@entur/menu';
|
|
5
|
+
import { Link as Link$1, useInRouterContext, useBlocker, useNavigate } from 'react-router-dom';
|
|
6
|
+
import { ButtonGroup, SecondaryButton, PrimaryButton, Button } from '@entur/button';
|
|
12
7
|
import { Modal } from '@entur/modal';
|
|
13
|
-
import {
|
|
8
|
+
import { Paragraph, Link as Link$2, Heading6 } from '@entur/typography';
|
|
9
|
+
import { BannerAlertBox } from '@entur/alert';
|
|
10
|
+
import { ExpandablePanel } from '@entur/expand';
|
|
11
|
+
import { SegmentedControl, SegmentedChoice } from '@entur/form';
|
|
12
|
+
import { SearchableDropdown } from '@entur/dropdown';
|
|
14
13
|
import { Helmet } from 'react-helmet-async';
|
|
14
|
+
import { CookieIcon, UserIcon, DownArrowIcon, NorwayIcon, UKIcon, LogOutIcon, ChannelsIcon } from '@entur/icons';
|
|
15
|
+
|
|
16
|
+
var ActionBarLeft = function ActionBarLeft(_ref) {
|
|
17
|
+
var children = _ref.children;
|
|
18
|
+
return React.createElement("div", {
|
|
19
|
+
className: "eps-action-bar-left"
|
|
20
|
+
}, children);
|
|
21
|
+
};
|
|
22
|
+
var ActionBarRight = function ActionBarRight(_ref2) {
|
|
23
|
+
var children = _ref2.children;
|
|
24
|
+
return React.createElement("div", {
|
|
25
|
+
className: "eps-action-bar-right"
|
|
26
|
+
}, children);
|
|
27
|
+
};
|
|
28
|
+
var ActionBar = function ActionBar(_ref3) {
|
|
29
|
+
var children = _ref3.children;
|
|
30
|
+
return React.createElement(React.Fragment, null, React.createElement("div", {
|
|
31
|
+
className: "eps-action-bar-padding"
|
|
32
|
+
}), React.createElement("div", {
|
|
33
|
+
className: "eps-action-bar"
|
|
34
|
+
}, children));
|
|
35
|
+
};
|
|
15
36
|
|
|
16
37
|
function _extends() {
|
|
17
38
|
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
@@ -52,7 +73,18 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
|
52
73
|
return target;
|
|
53
74
|
}
|
|
54
75
|
|
|
55
|
-
var _excluded$e = ["
|
|
76
|
+
var _excluded$e = ["date", "locale", "as", "hideTime"];
|
|
77
|
+
var FormatDateTime = function FormatDateTime(_ref) {
|
|
78
|
+
var date = _ref.date,
|
|
79
|
+
locale = _ref.locale,
|
|
80
|
+
_ref$as = _ref.as,
|
|
81
|
+
Component = _ref$as === void 0 ? "main" : _ref$as,
|
|
82
|
+
hideTime = _ref.hideTime,
|
|
83
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$e);
|
|
84
|
+
return React.createElement(Component, _extends({}, rest), hideTime ? localeDate(date, locale) : localeDateTime(date, locale));
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
var _excluded$d = ["as", "children", "contrast", "paddingTop", "paddingRight", "paddingBottom", "paddingLeft", "paddingX", "paddingY", "padding", "marginTop", "marginRight", "marginBottom", "marginLeft", "marginX", "marginY", "margin", "display", "justifyContent", "alignItems", "maxWidth", "width", "background", "color", "flexDirection", "flexWrap", "className"];
|
|
56
88
|
function responsiveProp(prefix, prop) {
|
|
57
89
|
if (Array.isArray(prop)) {
|
|
58
90
|
var classes = [];
|
|
@@ -65,7 +97,7 @@ function responsiveProp(prefix, prop) {
|
|
|
65
97
|
}
|
|
66
98
|
var Box = function Box(_ref) {
|
|
67
99
|
var _ref$as = _ref.as,
|
|
68
|
-
Component = _ref$as === void 0 ?
|
|
100
|
+
Component = _ref$as === void 0 ? "div" : _ref$as,
|
|
69
101
|
children = _ref.children,
|
|
70
102
|
contrast = _ref.contrast,
|
|
71
103
|
paddingTop = _ref.paddingTop,
|
|
@@ -92,7 +124,7 @@ var Box = function Box(_ref) {
|
|
|
92
124
|
flexDirection = _ref.flexDirection,
|
|
93
125
|
flexWrap = _ref.flexWrap,
|
|
94
126
|
className = _ref.className,
|
|
95
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
127
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$d);
|
|
96
128
|
var classes = [];
|
|
97
129
|
var resolvedPaddingTop = paddingTop || paddingY || padding;
|
|
98
130
|
var resolvedPaddingBottom = paddingBottom || paddingY || padding;
|
|
@@ -102,32 +134,33 @@ var Box = function Box(_ref) {
|
|
|
102
134
|
var resolvedMarginBottom = marginBottom || marginY || margin;
|
|
103
135
|
var resolvedMarginLeft = marginLeft || marginX || margin;
|
|
104
136
|
var resolvedMarginRight = marginRight || marginX || margin;
|
|
105
|
-
contrast && classes.push(
|
|
106
|
-
resolvedPaddingTop && classes.push.apply(classes, responsiveProp(
|
|
107
|
-
resolvedPaddingBottom && classes.push.apply(classes, responsiveProp(
|
|
108
|
-
resolvedPaddingLeft && classes.push.apply(classes, responsiveProp(
|
|
109
|
-
resolvedPaddingRight && classes.push.apply(classes, responsiveProp(
|
|
110
|
-
resolvedMarginTop && classes.push.apply(classes, responsiveProp(
|
|
111
|
-
resolvedMarginBottom && classes.push.apply(classes, responsiveProp(
|
|
112
|
-
resolvedMarginLeft && classes.push.apply(classes, responsiveProp(
|
|
113
|
-
resolvedMarginRight && classes.push.apply(classes, responsiveProp(
|
|
114
|
-
display && classes.push.apply(classes, responsiveProp(
|
|
115
|
-
justifyContent && classes.push.apply(classes, responsiveProp(
|
|
137
|
+
contrast && classes.push("eds-contrast");
|
|
138
|
+
resolvedPaddingTop && classes.push.apply(classes, responsiveProp("eps-pt-", resolvedPaddingTop));
|
|
139
|
+
resolvedPaddingBottom && classes.push.apply(classes, responsiveProp("eps-pb-", resolvedPaddingBottom));
|
|
140
|
+
resolvedPaddingLeft && classes.push.apply(classes, responsiveProp("eps-pl-", resolvedPaddingLeft));
|
|
141
|
+
resolvedPaddingRight && classes.push.apply(classes, responsiveProp("eps-pr-", resolvedPaddingRight));
|
|
142
|
+
resolvedMarginTop && classes.push.apply(classes, responsiveProp("eps-mt-", resolvedMarginTop));
|
|
143
|
+
resolvedMarginBottom && classes.push.apply(classes, responsiveProp("eps-mb-", resolvedMarginBottom));
|
|
144
|
+
resolvedMarginLeft && classes.push.apply(classes, responsiveProp("eps-ml-", resolvedMarginLeft));
|
|
145
|
+
resolvedMarginRight && classes.push.apply(classes, responsiveProp("eps-mr-", resolvedMarginRight));
|
|
146
|
+
display && classes.push.apply(classes, responsiveProp("eps-", display));
|
|
147
|
+
justifyContent && classes.push.apply(classes, responsiveProp("eps-justify-", justifyContent));
|
|
116
148
|
if (alignItems) {
|
|
117
|
-
classes.push.apply(classes, responsiveProp(
|
|
149
|
+
classes.push.apply(classes, responsiveProp("eps-items-", alignItems));
|
|
118
150
|
}
|
|
119
|
-
maxWidth && classes.push.apply(classes, responsiveProp(
|
|
120
|
-
width && classes.push.apply(classes, responsiveProp(
|
|
151
|
+
maxWidth && classes.push.apply(classes, responsiveProp("eps-max-w-", maxWidth));
|
|
152
|
+
width && classes.push.apply(classes, responsiveProp("eps-w-", width));
|
|
121
153
|
color && classes.push("eps-color-" + color);
|
|
122
154
|
background && classes.push("eps-bg-" + background);
|
|
123
|
-
flexDirection && classes.push.apply(classes, responsiveProp(
|
|
124
|
-
flexWrap && classes.push.apply(classes, responsiveProp(
|
|
155
|
+
flexDirection && classes.push.apply(classes, responsiveProp("eps-flex-", flexDirection));
|
|
156
|
+
flexWrap && classes.push.apply(classes, responsiveProp("eps-flex-wrap-", flexWrap));
|
|
125
157
|
var classList = cx(classes, className);
|
|
126
158
|
return React.createElement(Component, _extends({
|
|
127
159
|
className: classList
|
|
128
160
|
}, rest), children);
|
|
129
161
|
};
|
|
130
162
|
|
|
163
|
+
/** biome-ignore-all lint/suspicious/noArrayIndexKey: Ignore for now. Should be tested properly before doing changes */
|
|
131
164
|
var Stack = function Stack(_ref) {
|
|
132
165
|
var children = _ref.children,
|
|
133
166
|
space = _ref.space,
|
|
@@ -148,68 +181,106 @@ var Stack = function Stack(_ref) {
|
|
|
148
181
|
}));
|
|
149
182
|
};
|
|
150
183
|
|
|
151
|
-
var
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
var
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
184
|
+
var _excluded$c = ["items", "locale", "className"];
|
|
185
|
+
var AuditInfo = function AuditInfo(_ref) {
|
|
186
|
+
var items = _ref.items,
|
|
187
|
+
locale = _ref.locale,
|
|
188
|
+
className = _ref.className,
|
|
189
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$c);
|
|
190
|
+
var classNames = cx("ep-audit-info", className);
|
|
191
|
+
return React.createElement("div", _extends({
|
|
192
|
+
className: classNames
|
|
193
|
+
}, rest), items.map(function (_ref2) {
|
|
194
|
+
var label = _ref2.label,
|
|
195
|
+
value = _ref2.value;
|
|
196
|
+
return React.createElement(Stack, {
|
|
197
|
+
space: "small",
|
|
198
|
+
key: value.toString()
|
|
199
|
+
}, React.createElement("div", {
|
|
200
|
+
className: "ep-audit-info-label"
|
|
201
|
+
}, label), React.createElement("div", null, isDate(value) || isDateString(value) ? React.createElement(FormatDateTime, {
|
|
202
|
+
date: value,
|
|
203
|
+
locale: locale
|
|
204
|
+
}) : React.createElement("span", null, value)));
|
|
205
|
+
}));
|
|
162
206
|
};
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
207
|
+
|
|
208
|
+
var Breadcrumbs = function Breadcrumbs(_ref) {
|
|
209
|
+
var prependBreadcrumbItem = _ref.prependBreadcrumbItem,
|
|
210
|
+
pathname = _ref.pathname,
|
|
211
|
+
onBreadcrumbLookup = _ref.onBreadcrumbLookup;
|
|
212
|
+
var paths = splitUrlPath(pathname);
|
|
213
|
+
var breadcrumbs = paths.map(function (path) {
|
|
214
|
+
return {
|
|
215
|
+
title: onBreadcrumbLookup(path),
|
|
216
|
+
path: path
|
|
217
|
+
};
|
|
218
|
+
}).filter(function (_ref2) {
|
|
219
|
+
var title = _ref2.title;
|
|
220
|
+
return title !== undefined;
|
|
221
|
+
});
|
|
222
|
+
var breadcrumbElements = breadcrumbs.map(function (_ref3, i) {
|
|
223
|
+
var title = _ref3.title,
|
|
224
|
+
path = _ref3.path;
|
|
225
|
+
var isLast = i === breadcrumbs.length - 1;
|
|
226
|
+
if (isLast) {
|
|
227
|
+
return React.createElement(BreadcrumbItem, {
|
|
228
|
+
key: path,
|
|
229
|
+
as: "span"
|
|
230
|
+
}, title);
|
|
231
|
+
}
|
|
232
|
+
return React.createElement(BreadcrumbItem, {
|
|
233
|
+
key: path,
|
|
234
|
+
as: Link$1,
|
|
235
|
+
to: path
|
|
236
|
+
}, title);
|
|
237
|
+
});
|
|
238
|
+
if (prependBreadcrumbItem) {
|
|
239
|
+
return React.createElement(BreadcrumbNavigation, null, [prependBreadcrumbItem].concat(breadcrumbElements));
|
|
240
|
+
}
|
|
241
|
+
return React.createElement(BreadcrumbNavigation, null, breadcrumbElements);
|
|
170
242
|
};
|
|
171
243
|
|
|
172
|
-
var _excluded$
|
|
173
|
-
var
|
|
174
|
-
var
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
244
|
+
var _excluded$b = ["isOpen", "children", "message", "size", "buttons", "onConfirm", "messages", "onClose", "onDismiss"];
|
|
245
|
+
var ConfirmModal = function ConfirmModal(_ref) {
|
|
246
|
+
var _ref$isOpen = _ref.isOpen,
|
|
247
|
+
isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
|
|
248
|
+
children = _ref.children,
|
|
249
|
+
message = _ref.message,
|
|
250
|
+
_ref$size = _ref.size,
|
|
251
|
+
size = _ref$size === void 0 ? "medium" : _ref$size,
|
|
252
|
+
buttons = _ref.buttons,
|
|
253
|
+
onConfirm = _ref.onConfirm,
|
|
254
|
+
messages = _ref.messages,
|
|
255
|
+
onClose = _ref.onClose,
|
|
256
|
+
onDismiss = _ref.onDismiss,
|
|
257
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$b);
|
|
258
|
+
var childrenToRender = children ? children : message;
|
|
259
|
+
var handleDismiss = onClose ? onClose : onDismiss;
|
|
260
|
+
return React.createElement(Modal, _extends({
|
|
261
|
+
size: size,
|
|
262
|
+
open: isOpen,
|
|
263
|
+
onDismiss: handleDismiss
|
|
264
|
+
}, rest), isString(childrenToRender) ? React.createElement(Paragraph, null, childrenToRender) : React.createElement(Box, {
|
|
265
|
+
paddingBottom: "medium"
|
|
266
|
+
}, childrenToRender), React.createElement(ButtonGroup, null, onConfirm ? React.createElement(React.Fragment, null, React.createElement(SecondaryButton, {
|
|
267
|
+
onClick: handleDismiss,
|
|
268
|
+
"data-testid": "cancel-modal-button"
|
|
269
|
+
}, messages.cancel), React.createElement(PrimaryButton, {
|
|
270
|
+
onClick: onConfirm,
|
|
271
|
+
"data-testid": "confirm-modal-button"
|
|
272
|
+
}, messages.confirm)) : buttons));
|
|
181
273
|
};
|
|
182
274
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
var _window$localStorage, _window$localStorage2;
|
|
193
|
-
return import.meta.env["VITE_APP_" + flag] === 'true' || ((_window$localStorage = window.localStorage) == null ? void 0 : _window$localStorage.getItem(flag)) === 'true' || ((_window$localStorage2 = window.localStorage) == null ? void 0 : _window$localStorage2.getItem("VITE_APP_" + flag)) === 'true';
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Returns true if the provided flag exist in localStorage
|
|
197
|
-
* or is set as an environment variable.
|
|
198
|
-
*
|
|
199
|
-
* @param flag case sensitive flag. If it is an environment variable
|
|
200
|
-
* you can drop the VITE_APP_ prefix.
|
|
201
|
-
*/
|
|
202
|
-
function useFeatureToggle(flag) {
|
|
203
|
-
return featureFlag(flag);
|
|
204
|
-
}
|
|
205
|
-
var FeatureToggle = function FeatureToggle(_ref) {
|
|
206
|
-
var children = _ref.children,
|
|
207
|
-
flag = _ref.flag;
|
|
208
|
-
var feature = useFeatureToggle(flag);
|
|
209
|
-
if (feature) {
|
|
210
|
-
return React.createElement(React.Fragment, null, children);
|
|
211
|
-
}
|
|
212
|
-
return null;
|
|
275
|
+
var Content = function Content(_ref) {
|
|
276
|
+
var _ref$as = _ref.as,
|
|
277
|
+
Component = _ref$as === void 0 ? "main" : _ref$as,
|
|
278
|
+
className = _ref.className,
|
|
279
|
+
children = _ref.children;
|
|
280
|
+
var classList = cx(["eps-content", className]);
|
|
281
|
+
return React.createElement(Component, {
|
|
282
|
+
className: classList
|
|
283
|
+
}, children);
|
|
213
284
|
};
|
|
214
285
|
|
|
215
286
|
var _environmentColors, _humanReadableEnviron;
|
|
@@ -220,7 +291,7 @@ var Environment;
|
|
|
220
291
|
Environment["Staging"] = "staging";
|
|
221
292
|
Environment["Production"] = "prod";
|
|
222
293
|
})(Environment || (Environment = {}));
|
|
223
|
-
var environmentColors = (_environmentColors = {}, _environmentColors[Environment.Local] =
|
|
294
|
+
var environmentColors = (_environmentColors = {}, _environmentColors[Environment.Local] = "#B482FB", _environmentColors[Environment.Development] = "#5AC39A", _environmentColors[Environment.Staging] = "#FFCA28", _environmentColors);
|
|
224
295
|
/**
|
|
225
296
|
* Gets the color for the given environment. This is the color used for the environment
|
|
226
297
|
* indicator. There is no color for production as it should not have any special environment
|
|
@@ -229,17 +300,17 @@ var environmentColors = (_environmentColors = {}, _environmentColors[Environment
|
|
|
229
300
|
var getColorForEnvironment = function getColorForEnvironment(environment) {
|
|
230
301
|
return environmentColors[environment];
|
|
231
302
|
};
|
|
232
|
-
var humanReadableEnvironment = (_humanReadableEnviron = {}, _humanReadableEnviron[Environment.Local] =
|
|
303
|
+
var humanReadableEnvironment = (_humanReadableEnviron = {}, _humanReadableEnviron[Environment.Local] = "Local", _humanReadableEnviron[Environment.Development] = "Dev", _humanReadableEnviron[Environment.Staging] = "Staging", _humanReadableEnviron[Environment.Production] = "Prod", _humanReadableEnviron);
|
|
233
304
|
var getHumanReadableEnvironment = function getHumanReadableEnvironment(environment) {
|
|
234
305
|
return humanReadableEnvironment[environment];
|
|
235
306
|
};
|
|
236
307
|
|
|
237
|
-
var _excluded$
|
|
308
|
+
var _excluded$a = ["title", "accentColor"];
|
|
238
309
|
var EnturPartnerLogoSvg = function EnturPartnerLogoSvg(_ref) {
|
|
239
310
|
var title = _ref.title,
|
|
240
311
|
_ref$accentColor = _ref.accentColor,
|
|
241
|
-
accentColor = _ref$accentColor === void 0 ?
|
|
242
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
312
|
+
accentColor = _ref$accentColor === void 0 ? "#FF5959" : _ref$accentColor,
|
|
313
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$a);
|
|
243
314
|
return React.createElement("svg", _extends({
|
|
244
315
|
width: 257,
|
|
245
316
|
height: 37,
|
|
@@ -264,11 +335,11 @@ var EnturPartnerLogoSvg = function EnturPartnerLogoSvg(_ref) {
|
|
|
264
335
|
};
|
|
265
336
|
var EnturPartnerLogo = function EnturPartnerLogo(_ref2) {
|
|
266
337
|
var _ref2$as = _ref2.as,
|
|
267
|
-
Component = _ref2$as === void 0 ?
|
|
338
|
+
Component = _ref2$as === void 0 ? "nav" : _ref2$as,
|
|
268
339
|
className = _ref2.className,
|
|
269
340
|
altText = _ref2.altText,
|
|
270
341
|
environment = _ref2.environment;
|
|
271
|
-
var classList = cx([
|
|
342
|
+
var classList = cx(["eps-logo-wrapper", className]);
|
|
272
343
|
return React.createElement(Component, {
|
|
273
344
|
className: classList
|
|
274
345
|
}, React.createElement(EnturPartnerLogoSvg, {
|
|
@@ -278,374 +349,75 @@ var EnturPartnerLogo = function EnturPartnerLogo(_ref2) {
|
|
|
278
349
|
}));
|
|
279
350
|
};
|
|
280
351
|
|
|
281
|
-
var
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
className: classList
|
|
289
|
-
}, children);
|
|
290
|
-
};
|
|
291
|
-
|
|
292
|
-
var Content = function Content(_ref) {
|
|
293
|
-
var _ref$as = _ref.as,
|
|
294
|
-
Component = _ref$as === void 0 ? 'main' : _ref$as,
|
|
295
|
-
className = _ref.className,
|
|
296
|
-
children = _ref.children;
|
|
297
|
-
var classList = cx(['eps-content', className]);
|
|
298
|
-
return React.createElement(Component, {
|
|
299
|
-
className: classList
|
|
300
|
-
}, children);
|
|
301
|
-
};
|
|
302
|
-
|
|
303
|
-
function useOutsideClick(ref, buttonRef, handler) {
|
|
304
|
-
React.useEffect(function () {
|
|
305
|
-
var listener = function listener(event) {
|
|
306
|
-
if (elementContainsEventTarget(ref.current, event) || elementContainsEventTarget(buttonRef.current, event)) {
|
|
307
|
-
return;
|
|
308
|
-
}
|
|
309
|
-
handler();
|
|
310
|
-
};
|
|
311
|
-
document.addEventListener('mousedown', listener);
|
|
312
|
-
document.addEventListener('touchstart', listener);
|
|
313
|
-
return function () {
|
|
314
|
-
document.removeEventListener('mousedown', listener);
|
|
315
|
-
document.removeEventListener('touchstart', listener);
|
|
352
|
+
var newAppVersionErrorMessage = "Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.";
|
|
353
|
+
var ErrorBoundary = /*#__PURE__*/function (_Component) {
|
|
354
|
+
function ErrorBoundary(props) {
|
|
355
|
+
var _this;
|
|
356
|
+
_this = _Component.call(this, props) || this;
|
|
357
|
+
_this.state = {
|
|
358
|
+
error: null
|
|
316
359
|
};
|
|
317
|
-
|
|
318
|
-
}
|
|
319
|
-
function elementContainsEventTarget(element, event) {
|
|
320
|
-
if (!element) {
|
|
321
|
-
return false;
|
|
322
|
-
}
|
|
323
|
-
if (element.contains(event.target)) {
|
|
324
|
-
return true;
|
|
325
|
-
}
|
|
326
|
-
// For elements inside a Shadow DOM we need to check the composedPath
|
|
327
|
-
if (event.composed && event.composedPath) {
|
|
328
|
-
var contains = event.composedPath().find(function (target) {
|
|
329
|
-
if (target === window) {
|
|
330
|
-
return false;
|
|
331
|
-
}
|
|
332
|
-
return element.contains(target);
|
|
333
|
-
});
|
|
334
|
-
return !!contains;
|
|
360
|
+
return _this;
|
|
335
361
|
}
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
var CustomOverflowMenu = function CustomOverflowMenu(_ref) {
|
|
341
|
-
var className = _ref.className,
|
|
342
|
-
children = _ref.children,
|
|
343
|
-
userName = _ref.userName,
|
|
344
|
-
open = _ref.open,
|
|
345
|
-
onOpenChange = _ref.onOpenChange,
|
|
346
|
-
environment = _ref.environment,
|
|
347
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$b);
|
|
348
|
-
var overflowItemsClasses = cx('eps-overflow-menu__group', {
|
|
349
|
-
'eps-overflow-menu__group--open': open
|
|
350
|
-
});
|
|
351
|
-
var overflowContentRef = React.useRef(null);
|
|
352
|
-
var overflowMenuTriggerRef = React.useRef(null);
|
|
353
|
-
useOutsideClick(overflowContentRef, overflowMenuTriggerRef, function () {
|
|
354
|
-
return onOpenChange(false);
|
|
355
|
-
});
|
|
356
|
-
return React.createElement("div", null, React.createElement(SecondaryButton, _extends({
|
|
357
|
-
className: cx('eps-overflow-menu__button', className),
|
|
358
|
-
onClick: function onClick() {
|
|
359
|
-
return onOpenChange(open ? false : true);
|
|
360
|
-
},
|
|
361
|
-
"aria-haspopup": true,
|
|
362
|
-
role: "button",
|
|
363
|
-
"aria-expanded": open,
|
|
364
|
-
ref: overflowMenuTriggerRef
|
|
365
|
-
}, rest), React.createElement("div", {
|
|
366
|
-
className: "eps-overflow-menu__button-contents"
|
|
367
|
-
}, React.createElement("span", {
|
|
368
|
-
className: "eds-overflow-menu__user-icon"
|
|
369
|
-
}, React.createElement(UserIcon, {
|
|
370
|
-
inline: true
|
|
371
|
-
})), React.createElement(Heading6, {
|
|
372
|
-
margin: "none",
|
|
373
|
-
as: "span"
|
|
374
|
-
}, userName, environment !== undefined && environment !== Environment.Production && React.createElement("span", {
|
|
375
|
-
style: {
|
|
376
|
-
color: getColorForEnvironment(environment)
|
|
377
|
-
}
|
|
378
|
-
}, ' ', "(", getHumanReadableEnvironment(environment), ")")), React.createElement("span", {
|
|
379
|
-
className: "eps-arrow-icon"
|
|
380
|
-
}, React.createElement(DownArrowIcon, {
|
|
381
|
-
inline: true
|
|
382
|
-
})))), open && React.createElement("div", {
|
|
383
|
-
className: overflowItemsClasses,
|
|
384
|
-
role: "menu",
|
|
385
|
-
ref: overflowContentRef
|
|
386
|
-
}, children));
|
|
387
|
-
};
|
|
388
|
-
|
|
389
|
-
var CustomOverflowMenuItem = function CustomOverflowMenuItem(props) {
|
|
390
|
-
return React.createElement("button", _extends({
|
|
391
|
-
className: cx(props.className, 'eps-overflow-menu__item'),
|
|
392
|
-
role: "menuitem"
|
|
393
|
-
}, props));
|
|
394
|
-
};
|
|
395
|
-
|
|
396
|
-
var LanguageSwitchMenuItem = function LanguageSwitchMenuItem(_ref) {
|
|
397
|
-
var language = _ref.language,
|
|
398
|
-
onLanguageChange = _ref.onLanguageChange,
|
|
399
|
-
setOpen = _ref.setOpen,
|
|
400
|
-
name = _ref.name;
|
|
401
|
-
var useB47LanguageKey = useFeatureToggle('USE_BCP-47_LANGUAGE_KEY');
|
|
402
|
-
var norwegianLanguageKey = useB47LanguageKey ? 'nb-NO' : 'nb';
|
|
403
|
-
var englishLanguageKey = useB47LanguageKey ? 'en-GB' : 'en';
|
|
404
|
-
return React.createElement(React.Fragment, null, language === englishLanguageKey ? React.createElement(CustomOverflowMenuItem, {
|
|
405
|
-
onClick: function onClick() {
|
|
406
|
-
onLanguageChange(norwegianLanguageKey);
|
|
407
|
-
setOpen(false);
|
|
408
|
-
},
|
|
409
|
-
className: "eps-overflow-menu__item"
|
|
410
|
-
}, React.createElement("span", {
|
|
411
|
-
"aria-hidden": true,
|
|
412
|
-
className: "eps-overflow-menu__icon-margin"
|
|
413
|
-
}, React.createElement(NorwayIcon, {
|
|
414
|
-
size: "1rem",
|
|
415
|
-
inline: true
|
|
416
|
-
})), name) : React.createElement(CustomOverflowMenuItem, {
|
|
417
|
-
onClick: function onClick() {
|
|
418
|
-
onLanguageChange(englishLanguageKey);
|
|
419
|
-
setOpen(false);
|
|
420
|
-
},
|
|
421
|
-
className: "eps-overflow-menu__item"
|
|
422
|
-
}, React.createElement("span", {
|
|
423
|
-
"aria-hidden": true,
|
|
424
|
-
className: "eps-overflow-menu__icon-margin"
|
|
425
|
-
}, React.createElement(UKIcon, {
|
|
426
|
-
size: "1rem",
|
|
427
|
-
inline: true
|
|
428
|
-
})), name));
|
|
429
|
-
};
|
|
430
|
-
|
|
431
|
-
var VersionMenuItem = function VersionMenuItem(_ref) {
|
|
432
|
-
var title = _ref.title,
|
|
433
|
-
setOpen = _ref.setOpen;
|
|
434
|
-
var navigate = useNavigate(); // Hide useNavigate from standalone micro-frontends because it is not under RouterProvider
|
|
435
|
-
return React.createElement(CustomOverflowMenuItem, {
|
|
436
|
-
onClick: function onClick() {
|
|
437
|
-
navigate('/app-version');
|
|
438
|
-
setOpen(false);
|
|
439
|
-
},
|
|
440
|
-
className: "eps-overflow-menu__item"
|
|
441
|
-
}, React.createElement("span", {
|
|
442
|
-
"aria-hidden": true
|
|
443
|
-
}, React.createElement(ChannelsIcon, {
|
|
444
|
-
className: "eps-version-icon",
|
|
445
|
-
size: "1rem",
|
|
446
|
-
inline: true
|
|
447
|
-
})), title);
|
|
448
|
-
};
|
|
449
|
-
|
|
450
|
-
var UserMenuItem = function UserMenuItem(_ref) {
|
|
451
|
-
var name = _ref.name,
|
|
452
|
-
setOpen = _ref.setOpen,
|
|
453
|
-
onNavigateToMyProfile = _ref.onNavigateToMyProfile;
|
|
454
|
-
return React.createElement(Link$2, {
|
|
455
|
-
to: "/permission-admin/my-profile",
|
|
456
|
-
style: {
|
|
457
|
-
textDecoration: 'none'
|
|
458
|
-
}
|
|
459
|
-
}, React.createElement(CustomOverflowMenuItem, {
|
|
460
|
-
onClick: function onClick() {
|
|
461
|
-
setOpen(false);
|
|
462
|
-
onNavigateToMyProfile();
|
|
463
|
-
},
|
|
464
|
-
className: "eps-overflow-menu__item"
|
|
465
|
-
}, React.createElement("span", {
|
|
466
|
-
"aria-hidden": true
|
|
467
|
-
}, React.createElement(UserIcon, {
|
|
468
|
-
size: "1rem",
|
|
469
|
-
inline: true
|
|
470
|
-
})), name));
|
|
471
|
-
};
|
|
472
|
-
|
|
473
|
-
var LogOutMenuItem = function LogOutMenuItem(_ref) {
|
|
474
|
-
var name = _ref.name,
|
|
475
|
-
setOpen = _ref.setOpen,
|
|
476
|
-
onLogout = _ref.onLogout;
|
|
477
|
-
return React.createElement(CustomOverflowMenuItem, {
|
|
478
|
-
onClick: function onClick() {
|
|
479
|
-
onLogout();
|
|
480
|
-
setOpen(false);
|
|
481
|
-
},
|
|
482
|
-
"data-testid": "user-menu-logout",
|
|
483
|
-
className: "eps-overflow-menu__item"
|
|
484
|
-
}, React.createElement("span", {
|
|
485
|
-
"aria-hidden": true
|
|
486
|
-
}, React.createElement(LogOutIcon, {
|
|
487
|
-
size: "1rem",
|
|
488
|
-
inline: true
|
|
489
|
-
})), name);
|
|
490
|
-
};
|
|
491
|
-
|
|
492
|
-
var CookieSettingsMenuItem = function CookieSettingsMenuItem(_ref) {
|
|
493
|
-
var name = _ref.name,
|
|
494
|
-
setOpen = _ref.setOpen,
|
|
495
|
-
onCookieSettingsOpen = _ref.onCookieSettingsOpen;
|
|
496
|
-
return React.createElement(CustomOverflowMenuItem, {
|
|
497
|
-
onClick: function onClick() {
|
|
498
|
-
onCookieSettingsOpen();
|
|
499
|
-
setOpen(false);
|
|
500
|
-
},
|
|
501
|
-
className: "eps-overflow-menu__item"
|
|
502
|
-
}, React.createElement("span", {
|
|
503
|
-
"aria-hidden": true
|
|
504
|
-
}, React.createElement(CookieIcon, {
|
|
505
|
-
size: "1rem",
|
|
506
|
-
inline: true
|
|
507
|
-
})), name);
|
|
508
|
-
};
|
|
509
|
-
|
|
510
|
-
var UserMenu = function UserMenu(_ref) {
|
|
511
|
-
var className = _ref.className,
|
|
512
|
-
messages = _ref.messages,
|
|
513
|
-
onLogout = _ref.onLogout,
|
|
514
|
-
onLanguageChange = _ref.onLanguageChange,
|
|
515
|
-
userName = _ref.userName,
|
|
516
|
-
language = _ref.language,
|
|
517
|
-
environment = _ref.environment,
|
|
518
|
-
showVersionItem = _ref.showVersionItem,
|
|
519
|
-
showMyProfileItem = _ref.showMyProfileItem,
|
|
520
|
-
showCookieSettingsItem = _ref.showCookieSettingsItem,
|
|
521
|
-
onNavigateToMyProfile = _ref.onNavigateToMyProfile,
|
|
522
|
-
_ref$onCookieSettings = _ref.onCookieSettingsOpen,
|
|
523
|
-
onCookieSettingsOpen = _ref$onCookieSettings === void 0 ? function () {} : _ref$onCookieSettings;
|
|
524
|
-
var triggerClassList = cx(['eps-user-menu__trigger-button', className]);
|
|
525
|
-
var _useState = useState(false),
|
|
526
|
-
open = _useState[0],
|
|
527
|
-
setOpen = _useState[1];
|
|
528
|
-
return React.createElement("div", {
|
|
529
|
-
id: "eps-user-menu"
|
|
530
|
-
}, React.createElement(CustomOverflowMenu, {
|
|
531
|
-
open: open,
|
|
532
|
-
onOpenChange: setOpen,
|
|
533
|
-
className: triggerClassList,
|
|
534
|
-
userName: userName,
|
|
535
|
-
environment: environment
|
|
536
|
-
}, React.createElement("div", {
|
|
537
|
-
id: "eps-overflow-menu"
|
|
538
|
-
}, React.createElement(LanguageSwitchMenuItem, {
|
|
539
|
-
name: messages.switchLanguage,
|
|
540
|
-
language: language,
|
|
541
|
-
onLanguageChange: onLanguageChange,
|
|
542
|
-
setOpen: setOpen
|
|
543
|
-
}), showVersionItem && messages.appVersion && React.createElement(VersionMenuItem, {
|
|
544
|
-
title: messages.appVersion,
|
|
545
|
-
setOpen: setOpen
|
|
546
|
-
}), showMyProfileItem && messages.myProfile && React.createElement(UserMenuItem, {
|
|
547
|
-
name: messages.myProfile,
|
|
548
|
-
setOpen: setOpen,
|
|
549
|
-
onNavigateToMyProfile: onNavigateToMyProfile
|
|
550
|
-
}), showCookieSettingsItem && messages.cookieSettings && React.createElement(CookieSettingsMenuItem, {
|
|
551
|
-
name: messages.cookieSettings,
|
|
552
|
-
setOpen: setOpen,
|
|
553
|
-
onCookieSettingsOpen: onCookieSettingsOpen
|
|
554
|
-
}), React.createElement(LogOutMenuItem, {
|
|
555
|
-
name: messages.logout,
|
|
556
|
-
setOpen: setOpen,
|
|
557
|
-
onLogout: onLogout
|
|
558
|
-
}))));
|
|
559
|
-
};
|
|
560
|
-
|
|
561
|
-
var _excluded$a = ["label", "organisations", "onChange", "selectedOrganisationId"];
|
|
562
|
-
var OrganisationDropDown = function OrganisationDropDown(_ref) {
|
|
563
|
-
var label = _ref.label,
|
|
564
|
-
organisations = _ref.organisations,
|
|
565
|
-
handleChange = _ref.onChange,
|
|
566
|
-
selectedOrganisationId = _ref.selectedOrganisationId,
|
|
567
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$a);
|
|
568
|
-
var _useState = useState(),
|
|
569
|
-
selectedOrganisation = _useState[0],
|
|
570
|
-
setSelectedOrganisation = _useState[1];
|
|
571
|
-
useEffect(function () {
|
|
572
|
-
setSelectedOrganisation(organisations.find(function (org) {
|
|
573
|
-
return org.organisationId === selectedOrganisationId;
|
|
574
|
-
}));
|
|
575
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
576
|
-
}, [selectedOrganisationId]);
|
|
577
|
-
return React.createElement(SearchableDropdown, _extends({
|
|
578
|
-
label: label,
|
|
579
|
-
items: [].concat(organisations.sort(function (a, b) {
|
|
580
|
-
return a.tradingName.localeCompare(b.tradingName, 'nb');
|
|
581
|
-
}).map(function (organisation) {
|
|
582
|
-
return {
|
|
583
|
-
value: organisation.organisationId,
|
|
584
|
-
label: organisation.tradingName
|
|
585
|
-
};
|
|
586
|
-
})),
|
|
587
|
-
selectedItem: selectedOrganisation ? {
|
|
588
|
-
value: selectedOrganisation.organisationId,
|
|
589
|
-
label: selectedOrganisation.tradingName
|
|
590
|
-
} : null,
|
|
591
|
-
onChange: function onChange(selectedValue) {
|
|
592
|
-
if (selectedValue) {
|
|
593
|
-
handleChange(selectedValue.value);
|
|
594
|
-
}
|
|
595
|
-
},
|
|
596
|
-
clearable: false
|
|
597
|
-
}, rest));
|
|
598
|
-
};
|
|
599
|
-
|
|
600
|
-
/*global EventListener WindowEventHandlers*/
|
|
601
|
-
function useEventListener(eventName, handler, element) {
|
|
602
|
-
if (element === void 0) {
|
|
603
|
-
element = window;
|
|
604
|
-
}
|
|
605
|
-
var savedHandler = useRef();
|
|
606
|
-
useEffect(function () {
|
|
607
|
-
savedHandler.current = handler;
|
|
608
|
-
}, [handler]);
|
|
609
|
-
useEffect(function () {
|
|
610
|
-
var isSupported = element && element.addEventListener;
|
|
611
|
-
if (!isSupported) return;
|
|
612
|
-
var eventListener = function eventListener(event) {
|
|
613
|
-
return savedHandler.current == null ? void 0 : savedHandler.current(event);
|
|
614
|
-
};
|
|
615
|
-
element.addEventListener(eventName, eventListener);
|
|
616
|
-
return function () {
|
|
617
|
-
element.removeEventListener(eventName, eventListener);
|
|
362
|
+
_inheritsLoose(ErrorBoundary, _Component);
|
|
363
|
+
ErrorBoundary.getDerivedStateFromError = function getDerivedStateFromError(error) {
|
|
364
|
+
return {
|
|
365
|
+
error: error
|
|
618
366
|
};
|
|
619
|
-
}
|
|
367
|
+
};
|
|
368
|
+
var _proto = ErrorBoundary.prototype;
|
|
369
|
+
_proto.componentDidCatch = function componentDidCatch(error, errorInfo) {
|
|
370
|
+
var _this$props$handleErr, _this$props;
|
|
371
|
+
// React always logs in development
|
|
372
|
+
(_this$props$handleErr = (_this$props = this.props).handleError) == null || _this$props$handleErr.call(_this$props, error, errorInfo);
|
|
373
|
+
};
|
|
374
|
+
_proto.render = function render() {
|
|
375
|
+
var _this2 = this;
|
|
376
|
+
var error = this.state.error;
|
|
377
|
+
var _this$props2 = this.props,
|
|
378
|
+
fallback = _this$props2.fallback,
|
|
379
|
+
children = _this$props2.children;
|
|
380
|
+
if (error) {
|
|
381
|
+
if (isFunction(fallback)) {
|
|
382
|
+
return fallback({
|
|
383
|
+
retry: function retry() {
|
|
384
|
+
return _this2.setState({
|
|
385
|
+
error: null
|
|
386
|
+
});
|
|
387
|
+
},
|
|
388
|
+
error: error
|
|
389
|
+
});
|
|
390
|
+
} else if (error.name === "NotFoundError" && error.message === newAppVersionErrorMessage) {
|
|
391
|
+
return React.createElement(RefreshBannerInfo, null);
|
|
392
|
+
}
|
|
393
|
+
return fallback;
|
|
394
|
+
}
|
|
395
|
+
return children;
|
|
396
|
+
};
|
|
397
|
+
return ErrorBoundary;
|
|
398
|
+
}(Component);
|
|
399
|
+
var LANGUAGE_STORAGE_KEY = "EP::locale";
|
|
400
|
+
function RefreshBannerInfo() {
|
|
401
|
+
// Taken from ./app-shell/src/storage.ts
|
|
402
|
+
var language = localStorage.getItem(LANGUAGE_STORAGE_KEY);
|
|
403
|
+
var isNorwegian = language === "nb" || language === "nb-NO";
|
|
404
|
+
return React.createElement(Box, {
|
|
405
|
+
maxWidth: "large"
|
|
406
|
+
}, React.createElement(BannerAlertBox, {
|
|
407
|
+
variant: "info",
|
|
408
|
+
title: isNorwegian ? "En ny versjon av nettsiden er tilgjengelig." : "A new version of the website is available."
|
|
409
|
+
}, React.createElement(Box, {
|
|
410
|
+
paddingBottom: "medium"
|
|
411
|
+
}, React.createElement(Paragraph, {
|
|
412
|
+
margin: "none"
|
|
413
|
+
}, isNorwegian ? "Vennligst oppdater." : "Please refresh.")), React.createElement(PrimaryButton, {
|
|
414
|
+
onClick: function onClick() {
|
|
415
|
+
return window.location.reload();
|
|
416
|
+
}
|
|
417
|
+
}, isNorwegian ? "Oppdater" : "Refresh")));
|
|
620
418
|
}
|
|
621
419
|
|
|
622
|
-
var _excluded$9 = ["
|
|
623
|
-
var LanguageSelect = function LanguageSelect(_ref) {
|
|
624
|
-
var language = _ref.language,
|
|
625
|
-
options = _ref.options,
|
|
626
|
-
className = _ref.className,
|
|
627
|
-
_onChange = _ref.onChange,
|
|
628
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$9);
|
|
629
|
-
var classNames = cx('eps-language-select', className);
|
|
630
|
-
return React.createElement("div", _extends({}, rest, {
|
|
631
|
-
className: classNames
|
|
632
|
-
}), React.createElement(SegmentedControl, {
|
|
633
|
-
onChange: function onChange(language) {
|
|
634
|
-
assertIsDefined(language);
|
|
635
|
-
_onChange(language);
|
|
636
|
-
},
|
|
637
|
-
selectedValue: language
|
|
638
|
-
}, options.map(function (option) {
|
|
639
|
-
return React.createElement(SegmentedChoice, {
|
|
640
|
-
key: option.value,
|
|
641
|
-
value: option.value
|
|
642
|
-
}, option.label, option.required && React.createElement("span", {
|
|
643
|
-
className: "asterisk-margin"
|
|
644
|
-
}, '*'));
|
|
645
|
-
})));
|
|
646
|
-
};
|
|
647
|
-
|
|
648
|
-
var _excluded$8 = ["title", "inputComponent", "languages", "values", "onChange", "name", "variant", "feedback"];
|
|
420
|
+
var _excluded$9 = ["title", "inputComponent", "languages", "values", "onChange", "name", "variant", "feedback"];
|
|
649
421
|
var ExpandableMultiLanguageInput = function ExpandableMultiLanguageInput(_ref) {
|
|
650
422
|
var title = _ref.title,
|
|
651
423
|
InputComponent = _ref.inputComponent,
|
|
@@ -655,10 +427,10 @@ var ExpandableMultiLanguageInput = function ExpandableMultiLanguageInput(_ref) {
|
|
|
655
427
|
name = _ref.name,
|
|
656
428
|
variant = _ref.variant,
|
|
657
429
|
feedback = _ref.feedback,
|
|
658
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
430
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$9);
|
|
659
431
|
var handleOnChange = function handleOnChange(language, value) {
|
|
660
432
|
var changes = _extends({}, values);
|
|
661
|
-
if (value ===
|
|
433
|
+
if (value === "" || !value) {
|
|
662
434
|
delete changes[language];
|
|
663
435
|
} else {
|
|
664
436
|
changes[language] = value;
|
|
@@ -669,9 +441,9 @@ var ExpandableMultiLanguageInput = function ExpandableMultiLanguageInput(_ref) {
|
|
|
669
441
|
title: title,
|
|
670
442
|
defaultOpen: true,
|
|
671
443
|
contentStyle: {
|
|
672
|
-
padding:
|
|
673
|
-
marginTop:
|
|
674
|
-
marginBottom:
|
|
444
|
+
padding: "4px 4px 4px 4px",
|
|
445
|
+
marginTop: "16px",
|
|
446
|
+
marginBottom: "16px"
|
|
675
447
|
}
|
|
676
448
|
}, React.createElement(Stack, {
|
|
677
449
|
space: "medium"
|
|
@@ -682,19 +454,119 @@ var ExpandableMultiLanguageInput = function ExpandableMultiLanguageInput(_ref) {
|
|
|
682
454
|
return React.createElement(InputComponent, _extends({
|
|
683
455
|
"data-testid": "multi-lang-input-" + name + "-" + langKey,
|
|
684
456
|
key: title + langKey,
|
|
685
|
-
label: required ? label +
|
|
686
|
-
variant: variant
|
|
687
|
-
feedback: feedback
|
|
457
|
+
label: required ? label + "*" : label,
|
|
458
|
+
variant: variant == null ? void 0 : variant(langKey),
|
|
459
|
+
feedback: feedback == null ? void 0 : feedback(langKey),
|
|
688
460
|
name: name,
|
|
689
461
|
onChange: function onChange(e) {
|
|
690
462
|
handleOnChange(langKey, e.target.value);
|
|
691
463
|
},
|
|
692
|
-
value: values[langKey] ||
|
|
464
|
+
value: values[langKey] || ""
|
|
693
465
|
}, rest));
|
|
694
466
|
})));
|
|
695
467
|
};
|
|
696
468
|
|
|
697
|
-
|
|
469
|
+
/// <reference types="vite/client" />
|
|
470
|
+
/**
|
|
471
|
+
* Returns true if the provided flag exist in localStorage
|
|
472
|
+
* or is set as an environment variable.
|
|
473
|
+
*
|
|
474
|
+
* @param flag case sensitive flag. If it is an environment variable
|
|
475
|
+
* you can drop the VITE_APP_ prefix.
|
|
476
|
+
*/
|
|
477
|
+
function featureFlag(flag) {
|
|
478
|
+
var _window$localStorage, _window$localStorage2;
|
|
479
|
+
return import.meta.env["VITE_APP_" + flag] === "true" || ((_window$localStorage = window.localStorage) == null ? void 0 : _window$localStorage.getItem(flag)) === "true" || ((_window$localStorage2 = window.localStorage) == null ? void 0 : _window$localStorage2.getItem("VITE_APP_" + flag)) === "true";
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Returns true if the provided flag exist in localStorage
|
|
483
|
+
* or is set as an environment variable.
|
|
484
|
+
*
|
|
485
|
+
* @param flag case sensitive flag. If it is an environment variable
|
|
486
|
+
* you can drop the VITE_APP_ prefix.
|
|
487
|
+
*/
|
|
488
|
+
function useFeatureToggle(flag) {
|
|
489
|
+
return featureFlag(flag);
|
|
490
|
+
}
|
|
491
|
+
var FeatureToggle = function FeatureToggle(_ref) {
|
|
492
|
+
var children = _ref.children,
|
|
493
|
+
flag = _ref.flag;
|
|
494
|
+
var feature = useFeatureToggle(flag);
|
|
495
|
+
if (feature) {
|
|
496
|
+
return React.createElement(React.Fragment, null, children);
|
|
497
|
+
}
|
|
498
|
+
return null;
|
|
499
|
+
};
|
|
500
|
+
|
|
501
|
+
var _excluded$8 = ["amount", "as"];
|
|
502
|
+
var FormatCurrencyAmount = function FormatCurrencyAmount(_ref) {
|
|
503
|
+
var amount = _ref.amount,
|
|
504
|
+
_ref$as = _ref.as,
|
|
505
|
+
Component = _ref$as === void 0 ? "span" : _ref$as,
|
|
506
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$8);
|
|
507
|
+
var parsedAmount = Number(amount) || 0;
|
|
508
|
+
var formattedAmount = new Intl.NumberFormat("nb-NO", {
|
|
509
|
+
maximumFractionDigits: 2,
|
|
510
|
+
minimumFractionDigits: 2
|
|
511
|
+
}).format(parsedAmount);
|
|
512
|
+
return React.createElement(Component, _extends({}, rest), formattedAmount);
|
|
513
|
+
};
|
|
514
|
+
|
|
515
|
+
var _excluded$7 = ["language", "options", "className", "onChange"];
|
|
516
|
+
var LanguageSelect = function LanguageSelect(_ref) {
|
|
517
|
+
var language = _ref.language,
|
|
518
|
+
options = _ref.options,
|
|
519
|
+
className = _ref.className,
|
|
520
|
+
_onChange = _ref.onChange,
|
|
521
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$7);
|
|
522
|
+
var classNames = cx("eps-language-select", className);
|
|
523
|
+
return React.createElement("div", _extends({}, rest, {
|
|
524
|
+
className: classNames
|
|
525
|
+
}), React.createElement(SegmentedControl, {
|
|
526
|
+
onChange: function onChange(language) {
|
|
527
|
+
assertIsDefined(language);
|
|
528
|
+
_onChange(language);
|
|
529
|
+
},
|
|
530
|
+
selectedValue: language
|
|
531
|
+
}, options.map(function (option) {
|
|
532
|
+
return React.createElement(SegmentedChoice, {
|
|
533
|
+
key: option.value,
|
|
534
|
+
value: option.value
|
|
535
|
+
}, option.label, option.required && React.createElement("span", {
|
|
536
|
+
className: "asterisk-margin"
|
|
537
|
+
}, "*"));
|
|
538
|
+
})));
|
|
539
|
+
};
|
|
540
|
+
|
|
541
|
+
var Link = function Link(props) {
|
|
542
|
+
return React.createElement(Link$2, _extends({}, props, {
|
|
543
|
+
as: Link$1
|
|
544
|
+
}), props.children);
|
|
545
|
+
};
|
|
546
|
+
|
|
547
|
+
var _excluded$6 = ["children", "className"];
|
|
548
|
+
var LinkButton = function LinkButton(_ref) {
|
|
549
|
+
var children = _ref.children,
|
|
550
|
+
className = _ref.className,
|
|
551
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
|
552
|
+
return React.createElement(Link$2, _extends({}, rest, {
|
|
553
|
+
as: "button",
|
|
554
|
+
className: cx("eps-link-button", className)
|
|
555
|
+
}), children);
|
|
556
|
+
};
|
|
557
|
+
|
|
558
|
+
var Menu = function Menu(_ref) {
|
|
559
|
+
var _ref$as = _ref.as,
|
|
560
|
+
Component = _ref$as === void 0 ? "nav" : _ref$as,
|
|
561
|
+
className = _ref.className,
|
|
562
|
+
children = _ref.children;
|
|
563
|
+
var classList = cx(["eds-contrast", "eps-menu", className]);
|
|
564
|
+
return React.createElement(Component, {
|
|
565
|
+
className: classList
|
|
566
|
+
}, children);
|
|
567
|
+
};
|
|
568
|
+
|
|
569
|
+
var _excluded$5 = ["className", "inputComponent", "alertLabel", "alertLevel", "name", "languages", "values", "onChange", "defaultLanguage", "label", "onBlur"];
|
|
698
570
|
/**
|
|
699
571
|
* @deprecated use ExpandableMultiLanguageInput
|
|
700
572
|
*/
|
|
@@ -708,16 +580,16 @@ var MultiLanguageInput = function MultiLanguageInput(_ref) {
|
|
|
708
580
|
values = _ref.values,
|
|
709
581
|
onChange = _ref.onChange,
|
|
710
582
|
_ref$defaultLanguage = _ref.defaultLanguage,
|
|
711
|
-
defaultLanguage = _ref$defaultLanguage === void 0 ?
|
|
583
|
+
defaultLanguage = _ref$defaultLanguage === void 0 ? "nob" : _ref$defaultLanguage,
|
|
712
584
|
_ref$label = _ref.label,
|
|
713
|
-
label = _ref$label === void 0 ?
|
|
585
|
+
label = _ref$label === void 0 ? "" : _ref$label,
|
|
714
586
|
_ref$onBlur = _ref.onBlur,
|
|
715
587
|
onBlur = _ref$onBlur === void 0 ? function () {} : _ref$onBlur,
|
|
716
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
588
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
|
717
589
|
var _useState = useState(defaultLanguage),
|
|
718
590
|
language = _useState[0],
|
|
719
591
|
setLanguage = _useState[1];
|
|
720
|
-
var classNames = cx(
|
|
592
|
+
var classNames = cx("multi-language-input", className);
|
|
721
593
|
var currentValue = values[language];
|
|
722
594
|
var handleOnBlur = function handleOnBlur(e) {
|
|
723
595
|
e.persist();
|
|
@@ -733,208 +605,148 @@ var MultiLanguageInput = function MultiLanguageInput(_ref) {
|
|
|
733
605
|
};
|
|
734
606
|
var handleOnChange = function handleOnChange(value) {
|
|
735
607
|
var changes = Object.assign({}, values);
|
|
736
|
-
if (value ===
|
|
608
|
+
if (value === "" || !value) {
|
|
737
609
|
delete changes[language];
|
|
738
610
|
} else {
|
|
739
611
|
changes[language] = value;
|
|
740
612
|
}
|
|
741
613
|
onChange(changes);
|
|
742
614
|
};
|
|
743
|
-
return
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
}
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
var children = _ref.children,
|
|
772
|
-
className = _ref.className,
|
|
773
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
|
774
|
-
return React.createElement(Button, _extends({
|
|
775
|
-
variant: "primary"
|
|
776
|
-
}, rest, {
|
|
777
|
-
className: cx('eps-unbutton', className)
|
|
778
|
-
}), children);
|
|
615
|
+
return (
|
|
616
|
+
// biome-ignore lint/a11y/noStaticElementInteractions: Legacy component
|
|
617
|
+
React.createElement("div", {
|
|
618
|
+
className: classNames,
|
|
619
|
+
// biome-ignore lint/a11y/noNoninteractiveTabindex: Legacy component
|
|
620
|
+
tabIndex: 0,
|
|
621
|
+
onBlur: handleOnBlur,
|
|
622
|
+
"data-testid": "multi-lang-input-" + name
|
|
623
|
+
}, React.createElement(Stack, {
|
|
624
|
+
space: "extraSmall"
|
|
625
|
+
}, React.createElement(LanguageSelect, {
|
|
626
|
+
language: language,
|
|
627
|
+
options: languages,
|
|
628
|
+
onChange: function onChange(lang) {
|
|
629
|
+
return handleLanguageChange(lang);
|
|
630
|
+
}
|
|
631
|
+
}), React.createElement(InputComponent, _extends({
|
|
632
|
+
label: label,
|
|
633
|
+
variant: alertLevel,
|
|
634
|
+
feedback: alertLabel,
|
|
635
|
+
name: name,
|
|
636
|
+
className: "language-item",
|
|
637
|
+
onChange: function onChange(e) {
|
|
638
|
+
return handleOnChange(e.target.value);
|
|
639
|
+
},
|
|
640
|
+
value: currentValue || ""
|
|
641
|
+
}, rest))))
|
|
642
|
+
);
|
|
779
643
|
};
|
|
780
644
|
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
if (error) {
|
|
814
|
-
if (isFunction(fallback)) {
|
|
815
|
-
return fallback({
|
|
816
|
-
retry: function retry() {
|
|
817
|
-
return _this2.setState({
|
|
818
|
-
error: null
|
|
819
|
-
});
|
|
820
|
-
},
|
|
821
|
-
error: error
|
|
822
|
-
});
|
|
823
|
-
} else if (error.name === 'NotFoundError' && error.message === newAppVersionErrorMessage) {
|
|
824
|
-
return React.createElement(RefreshBannerInfo, null);
|
|
645
|
+
var _excluded$4 = ["label", "organisations", "onChange", "selectedOrganisationId"];
|
|
646
|
+
var OrganisationDropDown = function OrganisationDropDown(_ref) {
|
|
647
|
+
var label = _ref.label,
|
|
648
|
+
organisations = _ref.organisations,
|
|
649
|
+
handleChange = _ref.onChange,
|
|
650
|
+
selectedOrganisationId = _ref.selectedOrganisationId,
|
|
651
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
|
|
652
|
+
var _useState = useState(),
|
|
653
|
+
selectedOrganisation = _useState[0],
|
|
654
|
+
setSelectedOrganisation = _useState[1];
|
|
655
|
+
useEffect(function () {
|
|
656
|
+
setSelectedOrganisation(organisations.find(function (org) {
|
|
657
|
+
return org.organisationId === selectedOrganisationId;
|
|
658
|
+
}));
|
|
659
|
+
}, [selectedOrganisationId, organisations]);
|
|
660
|
+
return React.createElement(SearchableDropdown, _extends({
|
|
661
|
+
label: label,
|
|
662
|
+
items: [].concat(organisations.sort(function (a, b) {
|
|
663
|
+
return a.tradingName.localeCompare(b.tradingName, "nb");
|
|
664
|
+
}).map(function (organisation) {
|
|
665
|
+
return {
|
|
666
|
+
value: organisation.organisationId,
|
|
667
|
+
label: organisation.tradingName
|
|
668
|
+
};
|
|
669
|
+
})),
|
|
670
|
+
selectedItem: selectedOrganisation ? {
|
|
671
|
+
value: selectedOrganisation.organisationId,
|
|
672
|
+
label: selectedOrganisation.tradingName
|
|
673
|
+
} : null,
|
|
674
|
+
onChange: function onChange(selectedValue) {
|
|
675
|
+
if (selectedValue) {
|
|
676
|
+
handleChange(selectedValue.value);
|
|
825
677
|
}
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
};
|
|
830
|
-
return ErrorBoundary;
|
|
831
|
-
}(Component);
|
|
832
|
-
var LANGUAGE_STORAGE_KEY = 'EP::locale';
|
|
833
|
-
function RefreshBannerInfo() {
|
|
834
|
-
// Taken from ./app-shell/src/storage.ts
|
|
835
|
-
var language = localStorage.getItem(LANGUAGE_STORAGE_KEY);
|
|
836
|
-
var isNorwegian = language === 'nb' || language === 'nb-NO';
|
|
837
|
-
return React.createElement(Box, {
|
|
838
|
-
maxWidth: "large"
|
|
839
|
-
}, React.createElement(BannerAlertBox, {
|
|
840
|
-
variant: "info",
|
|
841
|
-
title: isNorwegian ? 'En ny versjon av nettsiden er tilgjengelig.' : 'A new version of the website is available.'
|
|
842
|
-
}, React.createElement(Box, {
|
|
843
|
-
paddingBottom: "medium"
|
|
844
|
-
}, React.createElement(Paragraph, {
|
|
845
|
-
margin: "none"
|
|
846
|
-
}, isNorwegian ? 'Vennligst oppdater.' : 'Please refresh.')), React.createElement(PrimaryButton, {
|
|
847
|
-
onClick: function onClick() {
|
|
848
|
-
return window.location.reload();
|
|
849
|
-
}
|
|
850
|
-
}, isNorwegian ? 'Oppdater' : 'Refresh')));
|
|
851
|
-
}
|
|
852
|
-
|
|
853
|
-
var _excluded$5 = ["date", "locale", "as", "hideTime"];
|
|
854
|
-
var FormatDateTime = function FormatDateTime(_ref) {
|
|
855
|
-
var date = _ref.date,
|
|
856
|
-
locale = _ref.locale,
|
|
857
|
-
_ref$as = _ref.as,
|
|
858
|
-
Component = _ref$as === void 0 ? 'main' : _ref$as,
|
|
859
|
-
hideTime = _ref.hideTime,
|
|
860
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
|
861
|
-
return React.createElement(Component, _extends({}, rest), hideTime ? localeDate(date, locale) : localeDateTime(date, locale));
|
|
678
|
+
},
|
|
679
|
+
clearable: false
|
|
680
|
+
}, rest));
|
|
862
681
|
};
|
|
863
682
|
|
|
864
|
-
var
|
|
865
|
-
var
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
683
|
+
var Pager = function Pager(_ref) {
|
|
684
|
+
var collectionSize = _ref.collectionSize,
|
|
685
|
+
pageSize = _ref.pageSize,
|
|
686
|
+
_onPageChange = _ref.onPageChange,
|
|
687
|
+
currentPage = _ref.currentPage;
|
|
688
|
+
var pageCount = Math.ceil(collectionSize / pageSize);
|
|
689
|
+
return React.createElement(Pagination, {
|
|
690
|
+
pageCount: pageCount,
|
|
691
|
+
currentPage: currentPage,
|
|
692
|
+
onPageChange: function onPageChange(page) {
|
|
693
|
+
_onPageChange(page);
|
|
694
|
+
}
|
|
695
|
+
});
|
|
876
696
|
};
|
|
877
697
|
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
698
|
+
/**
|
|
699
|
+
* This component changes page title by using helmet and current path. It will translate subpaths, join them with a dash
|
|
700
|
+
* and display it on browser tab.
|
|
701
|
+
*
|
|
702
|
+
* @param Props.pathname - The current path from react-router-dom.useLocation()
|
|
703
|
+
* @param Props.onBreadcrumbLookup - A function that takes a path and returns a i18n translated string or undefined
|
|
704
|
+
* @returns A Helmet component with updated title
|
|
705
|
+
*/
|
|
706
|
+
function PageTitle(_ref) {
|
|
707
|
+
var pathname = _ref.pathname,
|
|
708
|
+
onBreadcrumbLookup = _ref.onBreadcrumbLookup;
|
|
709
|
+
var paths = splitUrlPath(pathname);
|
|
710
|
+
var pageTitles = paths.map(function (path) {
|
|
711
|
+
return {
|
|
712
|
+
title: onBreadcrumbLookup(path),
|
|
713
|
+
path: path
|
|
714
|
+
};
|
|
715
|
+
}).filter(function (_ref2) {
|
|
716
|
+
var title = _ref2.title;
|
|
717
|
+
return title !== undefined;
|
|
718
|
+
}).map(function (_ref3) {
|
|
719
|
+
var title = _ref3.title;
|
|
720
|
+
return title;
|
|
721
|
+
}).reverse().join(" | ");
|
|
722
|
+
return React.createElement(Helmet, null, React.createElement("title", null, pageTitles, " | Entur Partner"));
|
|
723
|
+
}
|
|
901
724
|
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
var
|
|
917
|
-
var
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
open: isOpen,
|
|
921
|
-
onDismiss: handleDismiss
|
|
922
|
-
}, rest), isString(childrenToRender) ? React.createElement(Paragraph, null, childrenToRender) : React.createElement(Box, {
|
|
923
|
-
paddingBottom: "medium"
|
|
924
|
-
}, childrenToRender), React.createElement(ButtonGroup, null, onConfirm ? React.createElement(React.Fragment, null, React.createElement(SecondaryButton, {
|
|
925
|
-
onClick: handleDismiss,
|
|
926
|
-
"data-testid": "cancel-modal-button"
|
|
927
|
-
}, messages.cancel), React.createElement(PrimaryButton, {
|
|
928
|
-
onClick: onConfirm,
|
|
929
|
-
"data-testid": "confirm-modal-button"
|
|
930
|
-
}, messages.confirm)) : buttons));
|
|
725
|
+
/**
|
|
726
|
+
* Note: This component uses BusinessCapability, not because we only want to
|
|
727
|
+
* check BusinessCapabilities but because it represents a minimal subset of
|
|
728
|
+
* what we need to check.
|
|
729
|
+
*/
|
|
730
|
+
var PermissionCheck = function PermissionCheck(_ref) {
|
|
731
|
+
var children = _ref.children,
|
|
732
|
+
_ref$fallback = _ref.fallback,
|
|
733
|
+
fallback = _ref$fallback === void 0 ? null : _ref$fallback,
|
|
734
|
+
permissions = _ref.permissions,
|
|
735
|
+
_ref$oneOf = _ref.oneOf,
|
|
736
|
+
oneOf = _ref$oneOf === void 0 ? [] : _ref$oneOf,
|
|
737
|
+
_ref$all = _ref.all,
|
|
738
|
+
all = _ref$all === void 0 ? [] : _ref$all;
|
|
739
|
+
var allIsAllowed = hasAllPermissions(all, permissions);
|
|
740
|
+
var oneOfIsAllowed = hasOneOfPermissions(oneOf, permissions);
|
|
741
|
+
var allowed = allIsAllowed && oneOfIsAllowed;
|
|
742
|
+
return React.createElement(React.Fragment, null, allowed ? children : fallback);
|
|
931
743
|
};
|
|
932
744
|
|
|
933
|
-
var _excluded$
|
|
745
|
+
var _excluded$3 = ["children", "shouldBlockNavigation"];
|
|
934
746
|
var RouteLeavingGuard = function RouteLeavingGuard(_ref) {
|
|
935
747
|
var children = _ref.children,
|
|
936
748
|
shouldBlockNavigation = _ref.shouldBlockNavigation,
|
|
937
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
749
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
938
750
|
assertIsDefined(useInRouterContext() ? true : undefined, "RouteLeavingGuard must be used within a data router.");
|
|
939
751
|
var blocker = useBlocker(function (_ref2) {
|
|
940
752
|
var currentLocation = _ref2.currentLocation,
|
|
@@ -943,166 +755,354 @@ var RouteLeavingGuard = function RouteLeavingGuard(_ref) {
|
|
|
943
755
|
});
|
|
944
756
|
return React.createElement(ConfirmModal, _extends({
|
|
945
757
|
onDismiss: function onDismiss() {
|
|
946
|
-
if (blocker.state ===
|
|
758
|
+
if (blocker.state === "blocked") {
|
|
947
759
|
blocker.reset();
|
|
948
760
|
}
|
|
949
761
|
},
|
|
950
|
-
open: blocker.state ===
|
|
762
|
+
open: blocker.state === "blocked",
|
|
951
763
|
onConfirm: function onConfirm() {
|
|
952
|
-
if (blocker.state ===
|
|
764
|
+
if (blocker.state === "blocked") {
|
|
953
765
|
blocker.proceed();
|
|
954
766
|
}
|
|
955
767
|
}
|
|
956
768
|
}, rest), children);
|
|
957
769
|
};
|
|
958
770
|
|
|
959
|
-
var
|
|
960
|
-
var
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
771
|
+
var StatusLabel = function StatusLabel(_ref) {
|
|
772
|
+
var _ref$active = _ref.active,
|
|
773
|
+
active = _ref$active === void 0 ? false : _ref$active,
|
|
774
|
+
_ref$label = _ref.label,
|
|
775
|
+
label = _ref$label === void 0 ? "" : _ref$label,
|
|
776
|
+
aggressiveInactive = _ref.aggressiveInactive,
|
|
777
|
+
showBullet = _ref.showBullet,
|
|
778
|
+
center = _ref.center;
|
|
779
|
+
var bulletClassNames = cx("eps-status-label__bullet", {
|
|
780
|
+
active: active,
|
|
781
|
+
aggressive: aggressiveInactive
|
|
782
|
+
});
|
|
783
|
+
var statusLabelClassNames = cx("eps-status-label", {
|
|
784
|
+
center: center
|
|
785
|
+
});
|
|
786
|
+
return React.createElement("div", {
|
|
787
|
+
className: statusLabelClassNames
|
|
788
|
+
}, showBullet && React.createElement("div", {
|
|
789
|
+
className: bulletClassNames
|
|
790
|
+
}), React.createElement("div", null, label));
|
|
791
|
+
};
|
|
792
|
+
|
|
793
|
+
var _excluded$2 = ["as", "children", "fontSize", "color", "lineHeight", "fontWeight", "className"];
|
|
794
|
+
var Text = function Text(_ref) {
|
|
795
|
+
var _ref$as = _ref.as,
|
|
796
|
+
component = _ref$as === void 0 ? "span" : _ref$as,
|
|
797
|
+
children = _ref.children,
|
|
798
|
+
fontSize = _ref.fontSize,
|
|
799
|
+
color = _ref.color,
|
|
800
|
+
lineHeight = _ref.lineHeight,
|
|
801
|
+
fontWeight = _ref.fontWeight,
|
|
802
|
+
className = _ref.className,
|
|
803
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
804
|
+
var classes = [];
|
|
805
|
+
fontSize && classes.push.apply(classes, responsiveProp("eps-font-size-", fontSize));
|
|
806
|
+
lineHeight && classes.push.apply(classes, responsiveProp("eps-line-height-", lineHeight));
|
|
807
|
+
fontWeight && classes.push("eps-font-weight-" + fontWeight);
|
|
808
|
+
var classList = cx(classes, className);
|
|
809
|
+
return React.createElement(Box, _extends({
|
|
810
|
+
as: component,
|
|
811
|
+
color: color,
|
|
812
|
+
className: classList
|
|
813
|
+
}, rest), children);
|
|
814
|
+
};
|
|
815
|
+
|
|
816
|
+
var _excluded$1 = ["children", "className"];
|
|
817
|
+
var Unbutton = function Unbutton(_ref) {
|
|
818
|
+
var children = _ref.children,
|
|
819
|
+
className = _ref.className,
|
|
820
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
|
|
821
|
+
return React.createElement(Button, _extends({
|
|
822
|
+
variant: "primary"
|
|
823
|
+
}, rest, {
|
|
824
|
+
className: cx("eps-unbutton", className)
|
|
825
|
+
}), children);
|
|
826
|
+
};
|
|
827
|
+
|
|
828
|
+
var CustomOverflowMenuItem = function CustomOverflowMenuItem(props) {
|
|
829
|
+
return React.createElement("button", _extends({
|
|
830
|
+
className: cx(props.className, "eps-overflow-menu__item"),
|
|
831
|
+
role: "menuitem"
|
|
832
|
+
}, props));
|
|
833
|
+
};
|
|
834
|
+
|
|
835
|
+
var CookieSettingsMenuItem = function CookieSettingsMenuItem(_ref) {
|
|
836
|
+
var name = _ref.name,
|
|
837
|
+
setOpen = _ref.setOpen,
|
|
838
|
+
onCookieSettingsOpen = _ref.onCookieSettingsOpen;
|
|
839
|
+
return React.createElement(CustomOverflowMenuItem, {
|
|
840
|
+
onClick: function onClick() {
|
|
841
|
+
onCookieSettingsOpen();
|
|
842
|
+
setOpen(false);
|
|
843
|
+
},
|
|
844
|
+
className: "eps-overflow-menu__item"
|
|
845
|
+
}, React.createElement("span", {
|
|
846
|
+
"aria-hidden": true
|
|
847
|
+
}, React.createElement(CookieIcon, {
|
|
848
|
+
size: "1rem",
|
|
849
|
+
inline: true
|
|
850
|
+
})), name);
|
|
851
|
+
};
|
|
852
|
+
|
|
853
|
+
function useOutsideClick(ref, buttonRef, handler) {
|
|
854
|
+
React.useEffect(function () {
|
|
855
|
+
var listener = function listener(event) {
|
|
856
|
+
if (elementContainsEventTarget(ref.current, event) || elementContainsEventTarget(buttonRef.current, event)) {
|
|
857
|
+
return;
|
|
858
|
+
}
|
|
859
|
+
handler();
|
|
860
|
+
};
|
|
861
|
+
document.addEventListener("mousedown", listener);
|
|
862
|
+
document.addEventListener("touchstart", listener);
|
|
863
|
+
return function () {
|
|
864
|
+
document.removeEventListener("mousedown", listener);
|
|
865
|
+
document.removeEventListener("touchstart", listener);
|
|
866
|
+
};
|
|
867
|
+
}, [ref, buttonRef, handler]);
|
|
868
|
+
}
|
|
869
|
+
function elementContainsEventTarget(element, event) {
|
|
870
|
+
if (!element) {
|
|
871
|
+
return false;
|
|
872
|
+
}
|
|
873
|
+
if (element.contains(event.target)) {
|
|
874
|
+
return true;
|
|
875
|
+
}
|
|
876
|
+
// For elements inside a Shadow DOM we need to check the composedPath
|
|
877
|
+
if (event.composed && event.composedPath) {
|
|
878
|
+
var contains = event.composedPath().find(function (target) {
|
|
879
|
+
if (target === window) {
|
|
880
|
+
return false;
|
|
881
|
+
}
|
|
882
|
+
return element.contains(target);
|
|
883
|
+
});
|
|
884
|
+
return !!contains;
|
|
885
|
+
}
|
|
886
|
+
return false;
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
var _excluded = ["className", "children", "userName", "open", "onOpenChange", "environment"];
|
|
890
|
+
var CustomOverflowMenu = function CustomOverflowMenu(_ref) {
|
|
891
|
+
var className = _ref.className,
|
|
892
|
+
children = _ref.children,
|
|
893
|
+
userName = _ref.userName,
|
|
894
|
+
open = _ref.open,
|
|
895
|
+
onOpenChange = _ref.onOpenChange,
|
|
896
|
+
environment = _ref.environment,
|
|
897
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
898
|
+
var overflowItemsClasses = cx("eps-overflow-menu__group", {
|
|
899
|
+
"eps-overflow-menu__group--open": open
|
|
900
|
+
});
|
|
901
|
+
var overflowContentRef = React.useRef(null);
|
|
902
|
+
var overflowMenuTriggerRef = React.useRef(null);
|
|
903
|
+
useOutsideClick(overflowContentRef, overflowMenuTriggerRef, function () {
|
|
904
|
+
return onOpenChange(false);
|
|
971
905
|
});
|
|
906
|
+
return React.createElement("div", null, React.createElement(SecondaryButton, _extends({
|
|
907
|
+
className: cx("eps-overflow-menu__button", className),
|
|
908
|
+
onClick: function onClick() {
|
|
909
|
+
return onOpenChange(!open);
|
|
910
|
+
},
|
|
911
|
+
"aria-haspopup": true,
|
|
912
|
+
"aria-expanded": open,
|
|
913
|
+
ref: overflowMenuTriggerRef
|
|
914
|
+
}, rest), React.createElement("div", {
|
|
915
|
+
className: "eps-overflow-menu__button-contents"
|
|
916
|
+
}, React.createElement("span", {
|
|
917
|
+
className: "eds-overflow-menu__user-icon"
|
|
918
|
+
}, React.createElement(UserIcon, {
|
|
919
|
+
inline: true
|
|
920
|
+
})), React.createElement(Heading6, {
|
|
921
|
+
margin: "none",
|
|
922
|
+
as: "span"
|
|
923
|
+
}, userName, environment !== undefined && environment !== Environment.Production && React.createElement("span", {
|
|
924
|
+
style: {
|
|
925
|
+
color: getColorForEnvironment(environment)
|
|
926
|
+
}
|
|
927
|
+
}, " ", "(", getHumanReadableEnvironment(environment), ")")), React.createElement("span", {
|
|
928
|
+
className: "eps-arrow-icon"
|
|
929
|
+
}, React.createElement(DownArrowIcon, {
|
|
930
|
+
inline: true
|
|
931
|
+
})))), open && React.createElement("div", {
|
|
932
|
+
className: overflowItemsClasses,
|
|
933
|
+
role: "menu",
|
|
934
|
+
ref: overflowContentRef
|
|
935
|
+
}, children));
|
|
972
936
|
};
|
|
973
937
|
|
|
974
|
-
var
|
|
975
|
-
var
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
}
|
|
989
|
-
|
|
990
|
-
className:
|
|
991
|
-
},
|
|
992
|
-
|
|
993
|
-
|
|
938
|
+
var LanguageSwitchMenuItem = function LanguageSwitchMenuItem(_ref) {
|
|
939
|
+
var language = _ref.language,
|
|
940
|
+
onLanguageChange = _ref.onLanguageChange,
|
|
941
|
+
setOpen = _ref.setOpen,
|
|
942
|
+
name = _ref.name;
|
|
943
|
+
var useB47LanguageKey = useFeatureToggle("USE_BCP-47_LANGUAGE_KEY");
|
|
944
|
+
var norwegianLanguageKey = useB47LanguageKey ? "nb-NO" : "nb";
|
|
945
|
+
var englishLanguageKey = useB47LanguageKey ? "en-GB" : "en";
|
|
946
|
+
return React.createElement(React.Fragment, null, language === englishLanguageKey ? React.createElement(CustomOverflowMenuItem, {
|
|
947
|
+
onClick: function onClick() {
|
|
948
|
+
onLanguageChange(norwegianLanguageKey);
|
|
949
|
+
setOpen(false);
|
|
950
|
+
},
|
|
951
|
+
className: "eps-overflow-menu__item"
|
|
952
|
+
}, React.createElement("span", {
|
|
953
|
+
"aria-hidden": true,
|
|
954
|
+
className: "eps-overflow-menu__icon-margin"
|
|
955
|
+
}, React.createElement(NorwayIcon, {
|
|
956
|
+
size: "1rem",
|
|
957
|
+
inline: true
|
|
958
|
+
})), name) : React.createElement(CustomOverflowMenuItem, {
|
|
959
|
+
onClick: function onClick() {
|
|
960
|
+
onLanguageChange(englishLanguageKey);
|
|
961
|
+
setOpen(false);
|
|
962
|
+
},
|
|
963
|
+
className: "eps-overflow-menu__item"
|
|
964
|
+
}, React.createElement("span", {
|
|
965
|
+
"aria-hidden": true,
|
|
966
|
+
className: "eps-overflow-menu__icon-margin"
|
|
967
|
+
}, React.createElement(UKIcon, {
|
|
968
|
+
size: "1rem",
|
|
969
|
+
inline: true
|
|
970
|
+
})), name));
|
|
994
971
|
};
|
|
995
972
|
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
return React.createElement(React.Fragment, null, allowed ? children : fallback);
|
|
973
|
+
var LogOutMenuItem = function LogOutMenuItem(_ref) {
|
|
974
|
+
var name = _ref.name,
|
|
975
|
+
setOpen = _ref.setOpen,
|
|
976
|
+
onLogout = _ref.onLogout;
|
|
977
|
+
return React.createElement(CustomOverflowMenuItem, {
|
|
978
|
+
onClick: function onClick() {
|
|
979
|
+
onLogout();
|
|
980
|
+
setOpen(false);
|
|
981
|
+
},
|
|
982
|
+
"data-testid": "user-menu-logout",
|
|
983
|
+
className: "eps-overflow-menu__item"
|
|
984
|
+
}, React.createElement("span", {
|
|
985
|
+
"aria-hidden": true
|
|
986
|
+
}, React.createElement(LogOutIcon, {
|
|
987
|
+
size: "1rem",
|
|
988
|
+
inline: true
|
|
989
|
+
})), name);
|
|
1014
990
|
};
|
|
1015
991
|
|
|
1016
|
-
var
|
|
1017
|
-
var
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
path: path
|
|
1025
|
-
};
|
|
1026
|
-
}).filter(function (_ref2) {
|
|
1027
|
-
var title = _ref2.title;
|
|
1028
|
-
return title !== undefined;
|
|
1029
|
-
});
|
|
1030
|
-
var breadcrumbElements = breadcrumbs.map(function (_ref3, i) {
|
|
1031
|
-
var title = _ref3.title,
|
|
1032
|
-
path = _ref3.path;
|
|
1033
|
-
var isLast = i === breadcrumbs.length - 1;
|
|
1034
|
-
if (isLast) {
|
|
1035
|
-
return React.createElement(BreadcrumbItem, {
|
|
1036
|
-
key: path,
|
|
1037
|
-
as: 'span'
|
|
1038
|
-
}, title);
|
|
992
|
+
var UserMenuItem = function UserMenuItem(_ref) {
|
|
993
|
+
var name = _ref.name,
|
|
994
|
+
setOpen = _ref.setOpen,
|
|
995
|
+
onNavigateToMyProfile = _ref.onNavigateToMyProfile;
|
|
996
|
+
return React.createElement(Link$1, {
|
|
997
|
+
to: "/permission-admin/my-profile",
|
|
998
|
+
style: {
|
|
999
|
+
textDecoration: "none"
|
|
1039
1000
|
}
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
},
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
}
|
|
1049
|
-
|
|
1001
|
+
}, React.createElement(CustomOverflowMenuItem, {
|
|
1002
|
+
onClick: function onClick() {
|
|
1003
|
+
setOpen(false);
|
|
1004
|
+
onNavigateToMyProfile();
|
|
1005
|
+
},
|
|
1006
|
+
className: "eps-overflow-menu__item"
|
|
1007
|
+
}, React.createElement("span", {
|
|
1008
|
+
"aria-hidden": true
|
|
1009
|
+
}, React.createElement(UserIcon, {
|
|
1010
|
+
size: "1rem",
|
|
1011
|
+
inline: true
|
|
1012
|
+
})), name));
|
|
1050
1013
|
};
|
|
1051
1014
|
|
|
1052
|
-
var
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1015
|
+
var VersionMenuItem = function VersionMenuItem(_ref) {
|
|
1016
|
+
var title = _ref.title,
|
|
1017
|
+
setOpen = _ref.setOpen;
|
|
1018
|
+
var navigate = useNavigate(); // Hide useNavigate from standalone micro-frontends because it is not under RouterProvider
|
|
1019
|
+
return React.createElement(CustomOverflowMenuItem, {
|
|
1020
|
+
onClick: function onClick() {
|
|
1021
|
+
navigate("/app-version");
|
|
1022
|
+
setOpen(false);
|
|
1023
|
+
},
|
|
1024
|
+
className: "eps-overflow-menu__item"
|
|
1025
|
+
}, React.createElement("span", {
|
|
1026
|
+
"aria-hidden": true
|
|
1027
|
+
}, React.createElement(ChannelsIcon, {
|
|
1028
|
+
className: "eps-version-icon",
|
|
1029
|
+
size: "1rem",
|
|
1030
|
+
inline: true
|
|
1031
|
+
})), title);
|
|
1056
1032
|
};
|
|
1057
1033
|
|
|
1058
|
-
var
|
|
1059
|
-
var
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
var
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
},
|
|
1034
|
+
var UserMenu = function UserMenu(_ref) {
|
|
1035
|
+
var className = _ref.className,
|
|
1036
|
+
messages = _ref.messages,
|
|
1037
|
+
onLogout = _ref.onLogout,
|
|
1038
|
+
onLanguageChange = _ref.onLanguageChange,
|
|
1039
|
+
userName = _ref.userName,
|
|
1040
|
+
language = _ref.language,
|
|
1041
|
+
environment = _ref.environment,
|
|
1042
|
+
showVersionItem = _ref.showVersionItem,
|
|
1043
|
+
showMyProfileItem = _ref.showMyProfileItem,
|
|
1044
|
+
showCookieSettingsItem = _ref.showCookieSettingsItem,
|
|
1045
|
+
onNavigateToMyProfile = _ref.onNavigateToMyProfile,
|
|
1046
|
+
_ref$onCookieSettings = _ref.onCookieSettingsOpen,
|
|
1047
|
+
onCookieSettingsOpen = _ref$onCookieSettings === void 0 ? function () {} : _ref$onCookieSettings;
|
|
1048
|
+
var triggerClassList = cx(["eps-user-menu__trigger-button", className]);
|
|
1049
|
+
var _useState = useState(false),
|
|
1050
|
+
open = _useState[0],
|
|
1051
|
+
setOpen = _useState[1];
|
|
1052
|
+
return React.createElement("div", {
|
|
1053
|
+
id: "eps-user-menu"
|
|
1054
|
+
}, React.createElement(CustomOverflowMenu, {
|
|
1055
|
+
open: open,
|
|
1056
|
+
onOpenChange: setOpen,
|
|
1057
|
+
className: triggerClassList,
|
|
1058
|
+
userName: userName,
|
|
1059
|
+
environment: environment
|
|
1060
|
+
}, React.createElement("div", {
|
|
1061
|
+
id: "eps-overflow-menu"
|
|
1062
|
+
}, React.createElement(LanguageSwitchMenuItem, {
|
|
1063
|
+
name: messages.switchLanguage,
|
|
1064
|
+
language: language,
|
|
1065
|
+
onLanguageChange: onLanguageChange,
|
|
1066
|
+
setOpen: setOpen
|
|
1067
|
+
}), showVersionItem && messages.appVersion && React.createElement(VersionMenuItem, {
|
|
1068
|
+
title: messages.appVersion,
|
|
1069
|
+
setOpen: setOpen
|
|
1070
|
+
}), showMyProfileItem && messages.myProfile && React.createElement(UserMenuItem, {
|
|
1071
|
+
name: messages.myProfile,
|
|
1072
|
+
setOpen: setOpen,
|
|
1073
|
+
onNavigateToMyProfile: onNavigateToMyProfile
|
|
1074
|
+
}), showCookieSettingsItem && messages.cookieSettings && React.createElement(CookieSettingsMenuItem, {
|
|
1075
|
+
name: messages.cookieSettings,
|
|
1076
|
+
setOpen: setOpen,
|
|
1077
|
+
onCookieSettingsOpen: onCookieSettingsOpen
|
|
1078
|
+
}), React.createElement(LogOutMenuItem, {
|
|
1079
|
+
name: messages.logout,
|
|
1080
|
+
setOpen: setOpen,
|
|
1081
|
+
onLogout: onLogout
|
|
1082
|
+
}))));
|
|
1079
1083
|
};
|
|
1080
1084
|
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
path: path
|
|
1085
|
+
/*global EventListener WindowEventHandlers*/
|
|
1086
|
+
function useEventListener(eventName, handler, element) {
|
|
1087
|
+
if (element === void 0) {
|
|
1088
|
+
element = window;
|
|
1089
|
+
}
|
|
1090
|
+
var savedHandler = useRef();
|
|
1091
|
+
useEffect(function () {
|
|
1092
|
+
savedHandler.current = handler;
|
|
1093
|
+
}, [handler]);
|
|
1094
|
+
useEffect(function () {
|
|
1095
|
+
var _element;
|
|
1096
|
+
var isSupported = (_element = element) == null ? void 0 : _element.addEventListener;
|
|
1097
|
+
if (!isSupported) return;
|
|
1098
|
+
var eventListener = function eventListener(event) {
|
|
1099
|
+
return savedHandler.current == null ? void 0 : savedHandler.current(event);
|
|
1097
1100
|
};
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
return title;
|
|
1104
|
-
}).reverse().join(' | ');
|
|
1105
|
-
return React.createElement(Helmet, null, React.createElement("title", null, pageTitles, " | Entur Partner"));
|
|
1101
|
+
element.addEventListener(eventName, eventListener);
|
|
1102
|
+
return function () {
|
|
1103
|
+
element.removeEventListener(eventName, eventListener);
|
|
1104
|
+
};
|
|
1105
|
+
}, [eventName, element]);
|
|
1106
1106
|
}
|
|
1107
1107
|
|
|
1108
1108
|
export { ActionBar, ActionBarLeft, ActionBarRight, AuditInfo, Box, Breadcrumbs, ConfirmModal, Content, EnturPartnerLogo, EnturPartnerLogoSvg, Environment, ErrorBoundary, ExpandableMultiLanguageInput, FeatureToggle, FormatCurrencyAmount, FormatDateTime, LanguageSelect, Link, LinkButton, Menu, MultiLanguageInput, OrganisationDropDown, PageTitle, Pager, PermissionCheck, RouteLeavingGuard, Stack, StatusLabel, Text, Unbutton, UserMenu, featureFlag, getColorForEnvironment, getHumanReadableEnvironment, responsiveProp, useEventListener, useFeatureToggle };
|