@entur/alert 0.11.18 → 0.11.20
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/dist/BannerAlertBox.d.ts +1 -1
- package/dist/BaseAlertBox.d.ts +1 -1
- package/dist/CopyableText.d.ts +1 -1
- package/dist/ExpandableAlertBox.d.ts +3 -3
- package/dist/SmallAlertBox.d.ts +1 -1
- package/dist/ToastAlertBox.d.ts +1 -1
- package/dist/ToastProvider.d.ts +3 -3
- package/dist/alert.cjs.development.js +55 -89
- package/dist/alert.cjs.development.js.map +1 -1
- package/dist/alert.cjs.production.min.js +1 -1
- package/dist/alert.cjs.production.min.js.map +1 -1
- package/dist/alert.esm.js +55 -89
- package/dist/alert.esm.js.map +1 -1
- package/dist/styles.css +3 -42
- package/package.json +9 -11
- package/CHANGELOG.md +0 -465
package/dist/BannerAlertBox.d.ts
CHANGED
package/dist/BaseAlertBox.d.ts
CHANGED
package/dist/CopyableText.d.ts
CHANGED
|
@@ -2,11 +2,11 @@ import React from 'react';
|
|
|
2
2
|
import { BannerAlertBoxProps } from './BannerAlertBox';
|
|
3
3
|
import './ExpandableAlertBox.scss';
|
|
4
4
|
import { SmallAlertBoxProps } from './SmallAlertBox';
|
|
5
|
-
export
|
|
5
|
+
export type SmallExpandableAlertBoxProps = ExpandableAlertBoxProps & SmallAlertBoxProps;
|
|
6
6
|
export declare const SmallExpandableAlertBox: React.FC<SmallExpandableAlertBoxProps>;
|
|
7
|
-
export
|
|
7
|
+
export type BannerExpandableAlertBoxProps = ExpandableAlertBoxProps & BannerAlertBoxProps;
|
|
8
8
|
export declare const BannerExpandableAlertBox: React.FC<BannerExpandableAlertBoxProps>;
|
|
9
|
-
|
|
9
|
+
type ExpandableAlertBoxProps = {
|
|
10
10
|
/**Farge og uttrykk på alert-boksen */
|
|
11
11
|
variant: 'success' | 'info' | 'warning' | 'error';
|
|
12
12
|
/** Tittelen til ExpandableAlertBox */
|
package/dist/SmallAlertBox.d.ts
CHANGED
package/dist/ToastAlertBox.d.ts
CHANGED
package/dist/ToastProvider.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
type ToastVariants = 'success' | 'info';
|
|
3
|
+
type AddToastPayload = {
|
|
4
4
|
title?: string;
|
|
5
5
|
content: React.ReactNode;
|
|
6
6
|
variant?: ToastVariants;
|
|
7
7
|
} | string;
|
|
8
|
-
export
|
|
8
|
+
export type ToastProviderProps = {
|
|
9
9
|
/** Antall millisekunder før toasts forsvinner av seg selv
|
|
10
10
|
* @default 6000
|
|
11
11
|
*/
|
|
@@ -17,35 +17,29 @@ var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
|
|
17
17
|
var copy__default = /*#__PURE__*/_interopDefaultLegacy(copy);
|
|
18
18
|
|
|
19
19
|
function _extends() {
|
|
20
|
-
_extends = Object.assign
|
|
20
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
21
21
|
for (var i = 1; i < arguments.length; i++) {
|
|
22
22
|
var source = arguments[i];
|
|
23
|
-
|
|
24
23
|
for (var key in source) {
|
|
25
24
|
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
26
25
|
target[key] = source[key];
|
|
27
26
|
}
|
|
28
27
|
}
|
|
29
28
|
}
|
|
30
|
-
|
|
31
29
|
return target;
|
|
32
30
|
};
|
|
33
|
-
|
|
34
31
|
return _extends.apply(this, arguments);
|
|
35
32
|
}
|
|
36
|
-
|
|
37
33
|
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
38
34
|
if (source == null) return {};
|
|
39
35
|
var target = {};
|
|
40
36
|
var sourceKeys = Object.keys(source);
|
|
41
37
|
var key, i;
|
|
42
|
-
|
|
43
38
|
for (i = 0; i < sourceKeys.length; i++) {
|
|
44
39
|
key = sourceKeys[i];
|
|
45
40
|
if (excluded.indexOf(key) >= 0) continue;
|
|
46
41
|
target[key] = source[key];
|
|
47
42
|
}
|
|
48
|
-
|
|
49
43
|
return target;
|
|
50
44
|
}
|
|
51
45
|
|
|
@@ -58,34 +52,30 @@ var iconsMap = {
|
|
|
58
52
|
};
|
|
59
53
|
var BaseAlertBox = function BaseAlertBox(_ref) {
|
|
60
54
|
var children = _ref.children,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
55
|
+
className = _ref.className,
|
|
56
|
+
_ref$closable = _ref.closable,
|
|
57
|
+
closable = _ref$closable === void 0 ? false : _ref$closable,
|
|
58
|
+
_ref$closeButtonLabel = _ref.closeButtonLabel,
|
|
59
|
+
closeButtonLabel = _ref$closeButtonLabel === void 0 ? 'Lukk' : _ref$closeButtonLabel,
|
|
60
|
+
variant = _ref.variant,
|
|
61
|
+
_ref$onClose = _ref.onClose,
|
|
62
|
+
onClose = _ref$onClose === void 0 ? function () {
|
|
63
|
+
return {};
|
|
64
|
+
} : _ref$onClose,
|
|
65
|
+
size = _ref.size,
|
|
66
|
+
title = _ref.title,
|
|
67
|
+
toastIsBeingRemoved = _ref.toastIsBeingRemoved,
|
|
68
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
76
69
|
var _React$useState = React__default["default"].useState(false),
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
70
|
+
isClosed = _React$useState[0],
|
|
71
|
+
setClosed = _React$useState[1];
|
|
80
72
|
if (isClosed) {
|
|
81
73
|
return null;
|
|
82
74
|
}
|
|
83
|
-
|
|
84
75
|
var handleClose = function handleClose() {
|
|
85
76
|
setClosed(true);
|
|
86
77
|
onClose();
|
|
87
78
|
};
|
|
88
|
-
|
|
89
79
|
var Icon = iconsMap[variant];
|
|
90
80
|
return React__default["default"].createElement("div", _extends({
|
|
91
81
|
className: classNames__default["default"]('eds-alert-box', "eds-alert-box--" + size, "eds-alert-box--" + variant, {
|
|
@@ -124,13 +114,12 @@ var ToastAlertBox = function ToastAlertBox(props) {
|
|
|
124
114
|
var _excluded$2 = ["className", "width", "onClose", "closable", "closeButtonLabel"];
|
|
125
115
|
var SmallAlertBox = function SmallAlertBox(_ref) {
|
|
126
116
|
var className = _ref.className,
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
117
|
+
width = _ref.width,
|
|
118
|
+
onClose = _ref.onClose,
|
|
119
|
+
_ref$closable = _ref.closable,
|
|
120
|
+
closable = _ref$closable === void 0 ? false : _ref$closable,
|
|
121
|
+
closeButtonLabel = _ref.closeButtonLabel,
|
|
122
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
134
123
|
return React__default["default"].createElement(BaseAlertBox, _extends({
|
|
135
124
|
className: classNames__default["default"](className, {
|
|
136
125
|
'eds-alert-box--fit-content': width === 'fit-content'
|
|
@@ -145,12 +134,10 @@ var SmallAlertBox = function SmallAlertBox(_ref) {
|
|
|
145
134
|
|
|
146
135
|
var EXIT_ANIMATION_TIME = 400;
|
|
147
136
|
var ToastContext = /*#__PURE__*/React__default["default"].createContext(null);
|
|
148
|
-
|
|
149
137
|
var toastReducer = function toastReducer(prevToasts, action) {
|
|
150
138
|
switch (action.type) {
|
|
151
139
|
case 'ADD_TOAST':
|
|
152
140
|
return [action.payload].concat(prevToasts);
|
|
153
|
-
|
|
154
141
|
case 'PLAY_EXIT_ANIMATION':
|
|
155
142
|
return prevToasts.map(function (toast) {
|
|
156
143
|
if (toast.id === action.payload) return _extends({}, toast, {
|
|
@@ -158,18 +145,15 @@ var toastReducer = function toastReducer(prevToasts, action) {
|
|
|
158
145
|
});
|
|
159
146
|
return toast;
|
|
160
147
|
});
|
|
161
|
-
|
|
162
148
|
case 'REMOVE_TOAST':
|
|
163
149
|
return prevToasts.filter(function (toast) {
|
|
164
150
|
return toast.id !== action.payload;
|
|
165
151
|
});
|
|
166
152
|
}
|
|
167
153
|
};
|
|
168
|
-
|
|
169
154
|
var createUniqueId = function createUniqueId() {
|
|
170
155
|
return Math.random().toString().substring(2);
|
|
171
156
|
};
|
|
172
|
-
|
|
173
157
|
var createToast = function createToast(toast, id) {
|
|
174
158
|
if (typeof toast === 'string') {
|
|
175
159
|
return {
|
|
@@ -186,24 +170,20 @@ var createToast = function createToast(toast, id) {
|
|
|
186
170
|
}, toast);
|
|
187
171
|
}
|
|
188
172
|
};
|
|
189
|
-
|
|
190
173
|
var ToastProvider = function ToastProvider(_ref) {
|
|
191
174
|
var _ref$delay = _ref.delay,
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
175
|
+
delay = _ref$delay === void 0 ? 6000 : _ref$delay,
|
|
176
|
+
children = _ref.children,
|
|
177
|
+
_ref$position = _ref.position,
|
|
178
|
+
position = _ref$position === void 0 ? 'bottom-right' : _ref$position,
|
|
179
|
+
className = _ref.className,
|
|
180
|
+
style = _ref.style;
|
|
199
181
|
var _React$useReducer = React__default["default"].useReducer(toastReducer, []),
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
182
|
+
toasts = _React$useReducer[0],
|
|
183
|
+
dispatch = _React$useReducer[1];
|
|
203
184
|
var _React$useState = React__default["default"].useState(),
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
185
|
+
hoveringId = _React$useState[0],
|
|
186
|
+
setHovering = _React$useState[1];
|
|
207
187
|
var timeoutIdRefs = React__default["default"].useRef({});
|
|
208
188
|
var removeToast = React__default["default"].useCallback(function (id) {
|
|
209
189
|
window.clearTimeout(timeoutIdRefs.current[id]);
|
|
@@ -238,7 +218,6 @@ var ToastProvider = function ToastProvider(_ref) {
|
|
|
238
218
|
});
|
|
239
219
|
removeToastWithAnimationAfterDelay(id, delay);
|
|
240
220
|
}, [delay, removeToastWithAnimationAfterDelay]);
|
|
241
|
-
|
|
242
221
|
var handleMouseEnter = function handleMouseEnter(toast) {
|
|
243
222
|
return function () {
|
|
244
223
|
if (toast.isBeingRemoved) return;
|
|
@@ -249,21 +228,18 @@ var ToastProvider = function ToastProvider(_ref) {
|
|
|
249
228
|
timeoutIdRefs.current = {};
|
|
250
229
|
};
|
|
251
230
|
};
|
|
252
|
-
|
|
253
231
|
var handleMouseLeave = function handleMouseLeave() {
|
|
254
232
|
setHovering(undefined);
|
|
255
233
|
toasts.forEach(function (toast) {
|
|
256
234
|
removeToastWithAnimationAfterDelay(toast.id, delay);
|
|
257
235
|
});
|
|
258
236
|
};
|
|
259
|
-
|
|
260
237
|
var handleClose = function handleClose(toastId) {
|
|
261
238
|
return function () {
|
|
262
239
|
removeToast(toastId);
|
|
263
240
|
handleMouseLeave();
|
|
264
241
|
};
|
|
265
242
|
};
|
|
266
|
-
|
|
267
243
|
var contextValue = React__default["default"].useMemo(function () {
|
|
268
244
|
return {
|
|
269
245
|
toasts: toasts,
|
|
@@ -291,11 +267,9 @@ var ToastProvider = function ToastProvider(_ref) {
|
|
|
291
267
|
};
|
|
292
268
|
var useToast = function useToast() {
|
|
293
269
|
var context = React__default["default"].useContext(ToastContext);
|
|
294
|
-
|
|
295
270
|
if (!context) {
|
|
296
271
|
throw new Error('You need to wrap your component in a ToastProvider component in ' + 'order to use the useToast hook');
|
|
297
272
|
}
|
|
298
|
-
|
|
299
273
|
var addToast = context.addToast;
|
|
300
274
|
return {
|
|
301
275
|
addToast: addToast
|
|
@@ -305,18 +279,15 @@ var useToast = function useToast() {
|
|
|
305
279
|
var _excluded$1 = ["children", "successHeading", "successMessage", "className"];
|
|
306
280
|
var CopyableText = function CopyableText(_ref) {
|
|
307
281
|
var children = _ref.children,
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
282
|
+
_ref$successHeading = _ref.successHeading,
|
|
283
|
+
successHeading = _ref$successHeading === void 0 ? 'Kopiert!' : _ref$successHeading,
|
|
284
|
+
_ref$successMessage = _ref.successMessage,
|
|
285
|
+
successMessage = _ref$successMessage === void 0 ? 'Innholdet ble kopiert til utklippstavlen.' : _ref$successMessage,
|
|
286
|
+
className = _ref.className,
|
|
287
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
|
|
315
288
|
var _useToast = useToast(),
|
|
316
|
-
|
|
317
|
-
|
|
289
|
+
addToast = _useToast.addToast;
|
|
318
290
|
var buttonRef = React__default["default"].useRef(null);
|
|
319
|
-
|
|
320
291
|
var handleClick = function handleClick() {
|
|
321
292
|
buttonRef.current && copy__default["default"](children, {
|
|
322
293
|
target: buttonRef.current
|
|
@@ -325,7 +296,6 @@ var CopyableText = function CopyableText(_ref) {
|
|
|
325
296
|
content: successMessage
|
|
326
297
|
});
|
|
327
298
|
};
|
|
328
|
-
|
|
329
299
|
return React__default["default"].createElement("button", _extends({
|
|
330
300
|
className: 'copyable-text ' + className,
|
|
331
301
|
style: _extends({}, rest.style),
|
|
@@ -349,21 +319,18 @@ var BannerExpandableAlertBox = function BannerExpandableAlertBox(props) {
|
|
|
349
319
|
size: "banner"
|
|
350
320
|
}, props));
|
|
351
321
|
};
|
|
352
|
-
|
|
353
322
|
var ExpandableAlertBox = function ExpandableAlertBox(_ref) {
|
|
354
323
|
var variant = _ref.variant,
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
324
|
+
title = _ref.title,
|
|
325
|
+
children = _ref.children,
|
|
326
|
+
size = _ref.size,
|
|
327
|
+
className = _ref.className,
|
|
328
|
+
openLabel = _ref.openLabel,
|
|
329
|
+
closeLabel = _ref.closeLabel,
|
|
330
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
363
331
|
var _React$useState = React__default["default"].useState(false),
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
332
|
+
open = _React$useState[0],
|
|
333
|
+
setopen = _React$useState[1];
|
|
367
334
|
return React__default["default"].createElement(BaseAlertBox, _extends({
|
|
368
335
|
size: size,
|
|
369
336
|
variant: variant,
|
|
@@ -381,15 +348,14 @@ var ExpandableAlertBox = function ExpandableAlertBox(_ref) {
|
|
|
381
348
|
open: open
|
|
382
349
|
}, children));
|
|
383
350
|
};
|
|
384
|
-
|
|
385
351
|
var ExpandableAlertBoxTitle = function ExpandableAlertBoxTitle(_ref2) {
|
|
386
352
|
var title = _ref2.title,
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
353
|
+
open = _ref2.open,
|
|
354
|
+
_ref2$openLabel = _ref2.openLabel,
|
|
355
|
+
openLabel = _ref2$openLabel === void 0 ? 'Les mer' : _ref2$openLabel,
|
|
356
|
+
_ref2$closeLabel = _ref2.closeLabel,
|
|
357
|
+
closeLabel = _ref2$closeLabel === void 0 ? 'Lukk' : _ref2$closeLabel,
|
|
358
|
+
onClick = _ref2.onClick;
|
|
393
359
|
return React__default["default"].createElement("div", {
|
|
394
360
|
className: "eds-expandable-alert-box__title"
|
|
395
361
|
}, React__default["default"].createElement("div", null, title), React__default["default"].createElement("button", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.cjs.development.js","sources":["../src/BaseAlertBox.tsx","../src/BannerAlertBox.tsx","../src/ToastAlertBox.tsx","../src/SmallAlertBox.tsx","../src/ToastProvider.tsx","../src/CopyableText.tsx","../src/ExpandableAlertBox.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport {\n CloseIcon,\n OutlinedValidationCheckIcon,\n OutlinedValidationExclamationIcon,\n OutlinedValidationInfoIcon,\n OutlinedValidationErrorIcon,\n} from '@entur/icons';\nimport './styles.scss';\n\nconst iconsMap = {\n success: OutlinedValidationCheckIcon,\n info: OutlinedValidationInfoIcon,\n warning: OutlinedValidationExclamationIcon,\n error: OutlinedValidationErrorIcon,\n};\n\ntype BaseAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises\n * @default \"Lukk\"\n */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen\n * @default () => {}\n */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: React.ReactNode;\n /** Farge og uttrykk på alert-boksen */\n variant: 'success' | 'info' | 'warning' | 'error';\n /** Typen boks (internt bruk) */\n size: 'banner' | 'toast' | 'small';\n [key: string]: any;\n};\n\nexport const BaseAlertBox: React.FC<BaseAlertBoxProps> = ({\n children,\n className,\n closable = false,\n closeButtonLabel = 'Lukk',\n variant,\n onClose = () => ({}),\n size,\n title,\n toastIsBeingRemoved,\n ...rest\n}) => {\n const [isClosed, setClosed] = React.useState(false);\n if (isClosed) {\n return null;\n }\n const handleClose = () => {\n setClosed(true);\n onClose();\n };\n const Icon = iconsMap[variant];\n return (\n <div\n className={classNames(\n 'eds-alert-box',\n `eds-alert-box--${size}`,\n `eds-alert-box--${variant}`,\n { 'eds-alert-box--toast--exit-animation': toastIsBeingRemoved },\n className,\n )}\n {...rest}\n >\n {closable && (\n <button\n aria-label={closeButtonLabel}\n className=\"eds-alert-box__close-button\"\n type=\"button\"\n onClick={handleClose}\n >\n <CloseIcon />\n </button>\n )}\n <Icon className=\"eds-alert-box__icon\" />\n <div\n className={classNames('eds-alert-box__content', {\n 'eds-alert-box__content--no-title': !title,\n 'eds-alert-box__content--no-children': !children,\n })}\n >\n {title && <div className=\"eds-alert-box__title\">{title}</div>}\n {children && children}\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nexport type BannerAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på alert-boksen */\n variant: 'success' | 'info' | 'warning' | 'error';\n [key: string]: any;\n};\n\nexport const BannerAlertBox: React.FC<BannerAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"banner\" />\n);\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nexport type ToastAlertBoxProps = {\n /** Innholdet i toasten */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på toasten */\n variant: 'success' | 'info';\n [key: string]: any;\n};\n\nexport const ToastAlertBox: React.FC<ToastAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"toast\" role=\"status\" />\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nexport type SmallAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Bredden på boksen - fullbredde eller tilpasset innholdet */\n width?: 'fluid' | 'fit-content';\n /** Farge og uttrykk på alert-boksen */\n variant: 'success' | 'info' | 'warning' | 'error';\n [key: string]: any;\n};\n\nexport const SmallAlertBox: React.FC<SmallAlertBoxProps> = ({\n className,\n width,\n onClose,\n closable = false,\n closeButtonLabel,\n ...rest\n}) => (\n <BaseAlertBox\n className={classNames(className, {\n 'eds-alert-box--fit-content': width === 'fit-content',\n })}\n {...rest}\n onClose={onClose}\n closable={closable}\n closeButtonLabel={closeButtonLabel}\n size=\"small\"\n />\n);\n","import React from 'react';\nimport { ToastAlertBox } from './ToastAlertBox';\nimport classNames from 'classnames';\n\ntype ToastId = string;\n\ntype ToastVariants = 'success' | 'info';\n\ntype ToastType = {\n title?: string;\n content: React.ReactNode;\n id: ToastId;\n variant: ToastVariants;\n isBeingRemoved: boolean;\n};\n\ntype ToastContextType = {\n addToast: (payload: AddToastPayload) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\ntype AddToastPayload =\n | { title?: string; content: React.ReactNode; variant?: ToastVariants }\n | string;\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (toast: AddToastPayload, id: ToastId): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}) => {\n const [toasts, dispatch] = React.useReducer(toastReducer, []);\n const [hoveringId, setHovering] = React.useState<string>();\n const timeoutIdRefs = React.useRef<{ [key: string]: number }>({});\n\n const removeToast = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id]);\n dispatch({ type: 'REMOVE_TOAST', payload: id });\n delete timeoutIdRefs.current[id];\n }, []);\n\n const playExitAnimation = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id + 'animation']);\n dispatch({ type: 'PLAY_EXIT_ANIMATION', payload: id });\n delete timeoutIdRefs.current[id + 'animation'];\n }, []);\n\n const removeToastWithAnimationAfterDelay = React.useCallback(\n (id: ToastId, delay: number) => {\n timeoutIdRefs.current[id + 'animation'] = window.setTimeout(\n () => playExitAnimation(id),\n delay - EXIT_ANIMATION_TIME,\n );\n timeoutIdRefs.current[id] = window.setTimeout(\n () => removeToast(id),\n delay,\n );\n },\n [timeoutIdRefs, playExitAnimation, removeToast],\n );\n\n const addToast = React.useCallback(\n (toast: AddToastPayload) => {\n const id = createUniqueId();\n const payload = createToast(toast, id);\n dispatch({ type: 'ADD_TOAST', payload });\n removeToastWithAnimationAfterDelay(id, delay);\n },\n [delay, removeToastWithAnimationAfterDelay],\n );\n\n const handleMouseEnter = (toast: ToastType) => () => {\n if (toast.isBeingRemoved) return;\n setHovering(toast.id);\n Object.values(timeoutIdRefs.current).forEach(timeoutId => {\n window.clearTimeout(timeoutId);\n });\n timeoutIdRefs.current = {};\n };\n\n const handleMouseLeave = () => {\n setHovering(undefined);\n toasts.forEach(toast => {\n removeToastWithAnimationAfterDelay(toast.id, delay);\n });\n };\n\n const handleClose = (toastId: ToastId) => () => {\n removeToast(toastId);\n handleMouseLeave();\n };\n\n const contextValue = React.useMemo(\n () => ({ toasts, addToast, removeToast }),\n [addToast, removeToast, toasts],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {toasts.length > 0 && (\n <div\n className={classNames(\n 'eds-toast-container',\n `eds-toast-container--${position}`,\n className,\n )}\n style={style}\n >\n {toasts.slice(0, 3).map(toastToShow => (\n <ToastAlertBox\n variant={toastToShow.variant}\n title={toastToShow.title}\n onClose={handleClose(toastToShow.id)}\n onMouseEnter={handleMouseEnter(toastToShow)}\n onMouseLeave={handleMouseLeave}\n closable={hoveringId === toastToShow.id}\n toastIsBeingRemoved={toastToShow.isBeingRemoved}\n key={toastToShow.id}\n >\n {toastToShow.content}\n </ToastAlertBox>\n ))}\n </div>\n )}\n {children}\n </ToastContext.Provider>\n );\n};\n\nexport const useToast: () => {\n addToast: (payload: AddToastPayload) => void;\n} = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your component in a ToastProvider component in ' +\n 'order to use the useToast hook',\n );\n }\n const { addToast } = context;\n return {\n addToast,\n };\n};\n","import React from 'react';\n\nimport copy from 'copy-text-to-clipboard';\n\nimport { useToast } from './ToastProvider';\nimport { CopyIcon } from '@entur/icons';\nimport { PreformattedText } from '@entur/typography';\n\nimport './CopyableText.scss';\n\nexport type CopyableTextProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Tekstinnhold som vises og kopieres */\n children: string;\n /** Overskrift i toast-varselet */\n successHeading?: string;\n /** Bekreftelsesmelding i toast-varselet */\n successMessage?: string;\n} & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>;\n\nexport const CopyableText = ({\n children,\n successHeading = 'Kopiert!',\n successMessage = 'Innholdet ble kopiert til utklippstavlen.',\n className,\n ...rest\n}: CopyableTextProps): JSX.Element => {\n const { addToast } = useToast();\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const handleClick = () => {\n buttonRef.current &&\n copy(children, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: successMessage });\n };\n return (\n <button\n className={'copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n ref={buttonRef}\n aria-label=\"Kopier innhold\"\n {...rest}\n >\n <PreformattedText>{children}</PreformattedText>\n <CopyIcon className=\"copyable-text__icon\" />\n </button>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\nimport classNames from 'classnames';\nimport React from 'react';\nimport { BannerAlertBoxProps } from './BannerAlertBox';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ExpandableAlertBox.scss';\nimport { SmallAlertBoxProps } from './SmallAlertBox';\n\nexport type SmallExpandableAlertBoxProps = ExpandableAlertBoxProps &\n SmallAlertBoxProps;\n\nexport const SmallExpandableAlertBox: React.FC<SmallExpandableAlertBoxProps> =\n props => {\n return <ExpandableAlertBox size=\"small\" {...props} />;\n };\n\nexport type BannerExpandableAlertBoxProps = ExpandableAlertBoxProps &\n BannerAlertBoxProps;\n\nexport const BannerExpandableAlertBox: React.FC<BannerExpandableAlertBoxProps> =\n props => {\n return <ExpandableAlertBox size=\"banner\" {...props} />;\n };\n\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen */\n variant: 'success' | 'info' | 'warning' | 'error';\n /** Tittelen til ExpandableAlertBox */\n title: React.ReactNode;\n /**Innhold som vises ved ekspandering */\n children: React.ReactNode;\n /**Ekstra klassenavn */\n className?: string;\n /** Tekst som vises på ekspanderingsknappen før åpning\n * @default \"Les mer\"\n */\n openLabel?: string;\n /** Tekst som vises på ekspanderingsknappen når den er åpnet\n * @default \"Lukk\"\n */\n closeLabel?: string;\n [key: string]: any;\n};\n\nconst ExpandableAlertBox: React.FC<ExpandableAlertBoxProps> = ({\n variant,\n title,\n children,\n size,\n className,\n openLabel,\n closeLabel,\n ...rest\n}) => {\n const [open, setopen] = React.useState(false);\n return (\n <BaseAlertBox\n size={size}\n variant={variant}\n className={classNames('eds-expandable-alert-box', className)}\n title={\n <ExpandableAlertBoxTitle\n open={open}\n title={title}\n onClick={() => setopen(!open)}\n openLabel={openLabel}\n closeLabel={closeLabel}\n />\n }\n {...rest}\n >\n <BaseExpand open={open}>{children}</BaseExpand>\n </BaseAlertBox>\n );\n};\n\ntype ExpandableAlertBoxTitleProps = {\n title: React.ReactNode;\n open: boolean;\n openLabel?: string;\n closeLabel?: string;\n onClick: (e: React.MouseEvent) => void;\n};\n\nconst ExpandableAlertBoxTitle: React.FC<ExpandableAlertBoxTitleProps> = ({\n title,\n open,\n openLabel = 'Les mer',\n closeLabel = 'Lukk',\n onClick,\n}) => {\n return (\n <div className=\"eds-expandable-alert-box__title\">\n <div>{title}</div>\n <button\n className=\"eds-expandable-alert-box__button\"\n onClick={onClick}\n type=\"button\"\n >\n {open ? closeLabel : openLabel}\n <ExpandArrow open={open} inline />\n </button>\n </div>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('alert', 'icons');\n\nexport { BannerAlertBox } from './BannerAlertBox';\nexport { ToastAlertBox } from './ToastAlertBox';\nexport { SmallAlertBox } from './SmallAlertBox';\nexport { ToastProvider, useToast } from './ToastProvider';\nexport { CopyableText } from './CopyableText';\nexport * from './ExpandableAlertBox';\n"],"names":["iconsMap","success","OutlinedValidationCheckIcon","info","OutlinedValidationInfoIcon","warning","OutlinedValidationExclamationIcon","error","OutlinedValidationErrorIcon","BaseAlertBox","children","className","closable","closeButtonLabel","variant","onClose","size","title","toastIsBeingRemoved","rest","React","useState","isClosed","setClosed","handleClose","Icon","classNames","type","onClick","CloseIcon","BannerAlertBox","props","ToastAlertBox","role","SmallAlertBox","width","EXIT_ANIMATION_TIME","ToastContext","createContext","toastReducer","prevToasts","action","payload","map","toast","id","isBeingRemoved","filter","createUniqueId","Math","random","toString","substring","createToast","content","ToastProvider","delay","position","style","useReducer","toasts","dispatch","hoveringId","setHovering","timeoutIdRefs","useRef","removeToast","useCallback","window","clearTimeout","current","playExitAnimation","removeToastWithAnimationAfterDelay","setTimeout","addToast","handleMouseEnter","Object","values","forEach","timeoutId","handleMouseLeave","undefined","toastId","contextValue","useMemo","Provider","value","length","slice","toastToShow","onMouseEnter","onMouseLeave","key","useToast","context","useContext","Error","CopyableText","successHeading","successMessage","buttonRef","handleClick","copy","target","ref","PreformattedText","CopyIcon","SmallExpandableAlertBox","ExpandableAlertBox","BannerExpandableAlertBox","openLabel","closeLabel","open","setopen","ExpandableAlertBoxTitle","BaseExpand","ExpandArrow","inline","warnAboutMissingStyles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,IAAMA,QAAQ,GAAG;AACfC,EAAAA,OAAO,EAAEC,iCADM;AAEfC,EAAAA,IAAI,EAAEC,gCAFS;AAGfC,EAAAA,OAAO,EAAEC,uCAHM;AAIfC,EAAAA,KAAK,EAAEC;AAJQ,CAAjB;AAiCO,IAAMC,YAAY,GAAgC,SAA5CA,YAA4C;MACvDC,gBAAAA;MACAC,iBAAAA;2BACAC;MAAAA,sCAAW;mCACXC;MAAAA,sDAAmB;MACnBC,eAAAA;0BACAC;MAAAA,oCAAU;AAAA,WAAO,EAAP;AAAA;MACVC,YAAAA;MACAC,aAAAA;MACAC,2BAAAA;MACGC;;AAEH,wBAA8BC,yBAAK,CAACC,QAAN,CAAe,KAAf,CAA9B;AAAA,MAAOC,QAAP;AAAA,MAAiBC,SAAjB;;AACA,MAAID,QAAJ,EAAc;AACZ,WAAO,IAAP;AACD;;AACD,MAAME,WAAW,GAAG,SAAdA,WAAc;AAClBD,IAAAA,SAAS,CAAC,IAAD,CAAT;AACAR,IAAAA,OAAO;AACR,GAHD;;AAIA,MAAMU,IAAI,GAAGzB,QAAQ,CAACc,OAAD,CAArB;AACA,SACEM,uCAAA,MAAA;AACET,IAAAA,SAAS,EAAEe,8BAAU,CACnB,eADmB,sBAEDV,IAFC,sBAGDF,OAHC,EAInB;AAAE,8CAAwCI;AAA1C,KAJmB,EAKnBP,SALmB;AADvB,KAQMQ,IARN,GAUGP,QAAQ,IACPQ,uCAAA,SAAA;kBACcP;AACZF,IAAAA,SAAS,EAAC;AACVgB,IAAAA,IAAI,EAAC;AACLC,IAAAA,OAAO,EAAEJ;GAJX,EAMEJ,uCAAA,CAACS,eAAD,MAAA,CANF,CAXJ,EAoBET,uCAAA,CAACK,IAAD;AAAMd,IAAAA,SAAS,EAAC;GAAhB,CApBF,EAqBES,uCAAA,MAAA;AACET,IAAAA,SAAS,EAAEe,8BAAU,CAAC,wBAAD,EAA2B;AAC9C,0CAAoC,CAACT,KADS;AAE9C,6CAAuC,CAACP;AAFM,KAA3B;GADvB,EAMGO,KAAK,IAAIG,uCAAA,MAAA;AAAKT,IAAAA,SAAS,EAAC;GAAf,EAAuCM,KAAvC,CANZ,EAOGP,QAAQ,IAAIA,QAPf,CArBF,CADF;AAiCD,CAtDM;;ICrBMoB,cAAc,GAAkC,SAAhDA,cAAgD,CAAAC,KAAK;AAAA,SAChEX,uCAAA,CAACX,YAAD,eAAkBsB,KAAlB;AAAyBf,IAAAA,IAAI,EAAC;AAA9B,KADgE;AAAA;;ICFrDgB,aAAa,GAAiC,SAA9CA,aAA8C,CAAAD,KAAK;AAAA,SAC9DX,uCAAA,CAACX,YAAD,eAAkBsB,KAAlB;AAAyBf,IAAAA,IAAI,EAAC,OAA9B;AAAsCiB,IAAAA,IAAI,EAAC;AAA3C,KAD8D;AAAA;;;ICKnDC,aAAa,GAAiC,SAA9CA,aAA8C;AAAA,MACzDvB,SADyD,QACzDA,SADyD;AAAA,MAEzDwB,KAFyD,QAEzDA,KAFyD;AAAA,MAGzDpB,OAHyD,QAGzDA,OAHyD;AAAA,2BAIzDH,QAJyD;AAAA,MAIzDA,QAJyD,8BAI9C,KAJ8C;AAAA,MAKzDC,gBALyD,QAKzDA,gBALyD;AAAA,MAMtDM,IANsD;;AAAA,SAQzDC,uCAAA,CAACX,YAAD;AACEE,IAAAA,SAAS,EAAEe,8BAAU,CAACf,SAAD,EAAY;AAC/B,oCAA8BwB,KAAK,KAAK;AADT,KAAZ;AADvB,KAIMhB,IAJN;AAKEJ,IAAAA,OAAO,EAAEA,OALX;AAMEH,IAAAA,QAAQ,EAAEA,QANZ;AAOEC,IAAAA,gBAAgB,EAAEA,gBAPpB;AAQEG,IAAAA,IAAI,EAAC;AARP,KARyD;AAAA;;ACK3D,IAAMoB,mBAAmB,GAAG,GAA5B;AAEA,IAAMC,YAAY,gBAAGjB,yBAAK,CAACkB,aAAN,CAA6C,IAA7C,CAArB;;AAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CACnBC,UADmB,EAEnBC,MAFmB;AAInB,UAAQA,MAAM,CAACd,IAAf;AACE,SAAK,WAAL;AACE,cAAQc,MAAM,CAACC,OAAf,SAA2BF,UAA3B;;AACF,SAAK,qBAAL;AACE,aAAOA,UAAU,CAACG,GAAX,CAAe,UAAAC,KAAK;AACzB,YAAIA,KAAK,CAACC,EAAN,KAAaJ,MAAM,CAACC,OAAxB,EACE,oBAAYE,KAAZ;AAAmBE,UAAAA,cAAc,EAAE;AAAnC;AACF,eAAOF,KAAP;AACD,OAJM,CAAP;;AAKF,SAAK,cAAL;AACE,aAAOJ,UAAU,CAACO,MAAX,CAAkB,UAAAH,KAAK;AAAA,eAAIA,KAAK,CAACC,EAAN,KAAaJ,MAAM,CAACC,OAAxB;AAAA,OAAvB,CAAP;AAVJ;AAYD,CAhBD;;AAkBA,IAAMM,cAAc,GAAG,SAAjBA,cAAiB;AAAA,SAAMC,IAAI,CAACC,MAAL,GAAcC,QAAd,GAAyBC,SAAzB,CAAmC,CAAnC,CAAN;AAAA,CAAvB;;AAEA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACT,KAAD,EAAyBC,EAAzB;AAClB,MAAI,OAAOD,KAAP,KAAiB,QAArB,EAA+B;AAC7B,WAAO;AAAEC,MAAAA,EAAE,EAAFA,EAAF;AAAMS,MAAAA,OAAO,EAAEV,KAAf;AAAsB9B,MAAAA,OAAO,EAAE,SAA/B;AAA0CgC,MAAAA,cAAc,EAAE;AAA1D,KAAP;AACD,GAFD,MAEO;AACL;AAASD,MAAAA,EAAE,EAAFA,EAAT;AAAa/B,MAAAA,OAAO,EAAE,SAAtB;AAAiCgC,MAAAA,cAAc,EAAE;AAAjD,OAA2DF,KAA3D;AACD;AACF,CAND;;IAyBaW,aAAa,GAAiC,SAA9CA,aAA8C;wBACzDC;MAAAA,gCAAQ;MACR9C,gBAAAA;2BACA+C;MAAAA,sCAAW;MACX9C,iBAAAA;MACA+C,aAAAA;;AAEA,0BAA2BtC,yBAAK,CAACuC,UAAN,CAAiBpB,YAAjB,EAA+B,EAA/B,CAA3B;AAAA,MAAOqB,MAAP;AAAA,MAAeC,QAAf;;AACA,wBAAkCzC,yBAAK,CAACC,QAAN,EAAlC;AAAA,MAAOyC,UAAP;AAAA,MAAmBC,WAAnB;;AACA,MAAMC,aAAa,GAAG5C,yBAAK,CAAC6C,MAAN,CAAwC,EAAxC,CAAtB;AAEA,MAAMC,WAAW,GAAG9C,yBAAK,CAAC+C,WAAN,CAAkB,UAACtB,EAAD;AACpCuB,IAAAA,MAAM,CAACC,YAAP,CAAoBL,aAAa,CAACM,OAAd,CAAsBzB,EAAtB,CAApB;AACAgB,IAAAA,QAAQ,CAAC;AAAElC,MAAAA,IAAI,EAAE,cAAR;AAAwBe,MAAAA,OAAO,EAAEG;AAAjC,KAAD,CAAR;AACA,WAAOmB,aAAa,CAACM,OAAd,CAAsBzB,EAAtB,CAAP;AACD,GAJmB,EAIjB,EAJiB,CAApB;AAMA,MAAM0B,iBAAiB,GAAGnD,yBAAK,CAAC+C,WAAN,CAAkB,UAACtB,EAAD;AAC1CuB,IAAAA,MAAM,CAACC,YAAP,CAAoBL,aAAa,CAACM,OAAd,CAAsBzB,EAAE,GAAG,WAA3B,CAApB;AACAgB,IAAAA,QAAQ,CAAC;AAAElC,MAAAA,IAAI,EAAE,qBAAR;AAA+Be,MAAAA,OAAO,EAAEG;AAAxC,KAAD,CAAR;AACA,WAAOmB,aAAa,CAACM,OAAd,CAAsBzB,EAAE,GAAG,WAA3B,CAAP;AACD,GAJyB,EAIvB,EAJuB,CAA1B;AAMA,MAAM2B,kCAAkC,GAAGpD,yBAAK,CAAC+C,WAAN,CACzC,UAACtB,EAAD,EAAcW,KAAd;AACEQ,IAAAA,aAAa,CAACM,OAAd,CAAsBzB,EAAE,GAAG,WAA3B,IAA0CuB,MAAM,CAACK,UAAP,CACxC;AAAA,aAAMF,iBAAiB,CAAC1B,EAAD,CAAvB;AAAA,KADwC,EAExCW,KAAK,GAAGpB,mBAFgC,CAA1C;AAIA4B,IAAAA,aAAa,CAACM,OAAd,CAAsBzB,EAAtB,IAA4BuB,MAAM,CAACK,UAAP,CAC1B;AAAA,aAAMP,WAAW,CAACrB,EAAD,CAAjB;AAAA,KAD0B,EAE1BW,KAF0B,CAA5B;AAID,GAVwC,EAWzC,CAACQ,aAAD,EAAgBO,iBAAhB,EAAmCL,WAAnC,CAXyC,CAA3C;AAcA,MAAMQ,QAAQ,GAAGtD,yBAAK,CAAC+C,WAAN,CACf,UAACvB,KAAD;AACE,QAAMC,EAAE,GAAGG,cAAc,EAAzB;AACA,QAAMN,OAAO,GAAGW,WAAW,CAACT,KAAD,EAAQC,EAAR,CAA3B;AACAgB,IAAAA,QAAQ,CAAC;AAAElC,MAAAA,IAAI,EAAE,WAAR;AAAqBe,MAAAA,OAAO,EAAPA;AAArB,KAAD,CAAR;AACA8B,IAAAA,kCAAkC,CAAC3B,EAAD,EAAKW,KAAL,CAAlC;AACD,GANc,EAOf,CAACA,KAAD,EAAQgB,kCAAR,CAPe,CAAjB;;AAUA,MAAMG,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAC/B,KAAD;AAAA,WAAsB;AAC7C,UAAIA,KAAK,CAACE,cAAV,EAA0B;AAC1BiB,MAAAA,WAAW,CAACnB,KAAK,CAACC,EAAP,CAAX;AACA+B,MAAAA,MAAM,CAACC,MAAP,CAAcb,aAAa,CAACM,OAA5B,EAAqCQ,OAArC,CAA6C,UAAAC,SAAS;AACpDX,QAAAA,MAAM,CAACC,YAAP,CAAoBU,SAApB;AACD,OAFD;AAGAf,MAAAA,aAAa,CAACM,OAAd,GAAwB,EAAxB;AACD,KAPwB;AAAA,GAAzB;;AASA,MAAMU,gBAAgB,GAAG,SAAnBA,gBAAmB;AACvBjB,IAAAA,WAAW,CAACkB,SAAD,CAAX;AACArB,IAAAA,MAAM,CAACkB,OAAP,CAAe,UAAAlC,KAAK;AAClB4B,MAAAA,kCAAkC,CAAC5B,KAAK,CAACC,EAAP,EAAWW,KAAX,CAAlC;AACD,KAFD;AAGD,GALD;;AAOA,MAAMhC,WAAW,GAAG,SAAdA,WAAc,CAAC0D,OAAD;AAAA,WAAsB;AACxChB,MAAAA,WAAW,CAACgB,OAAD,CAAX;AACAF,MAAAA,gBAAgB;AACjB,KAHmB;AAAA,GAApB;;AAKA,MAAMG,YAAY,GAAG/D,yBAAK,CAACgE,OAAN,CACnB;AAAA,WAAO;AAAExB,MAAAA,MAAM,EAANA,MAAF;AAAUc,MAAAA,QAAQ,EAARA,QAAV;AAAoBR,MAAAA,WAAW,EAAXA;AAApB,KAAP;AAAA,GADmB,EAEnB,CAACQ,QAAD,EAAWR,WAAX,EAAwBN,MAAxB,CAFmB,CAArB;AAKA,SACExC,uCAAA,CAACiB,YAAY,CAACgD,QAAd;AAAuBC,IAAAA,KAAK,EAAEH;GAA9B,EACGvB,MAAM,CAAC2B,MAAP,GAAgB,CAAhB,IACCnE,uCAAA,MAAA;AACET,IAAAA,SAAS,EAAEe,8BAAU,CACnB,qBADmB,4BAEK+B,QAFL,EAGnB9C,SAHmB;AAKrB+C,IAAAA,KAAK,EAAEA;GANT,EAQGE,MAAM,CAAC4B,KAAP,CAAa,CAAb,EAAgB,CAAhB,EAAmB7C,GAAnB,CAAuB,UAAA8C,WAAW;AAAA,WACjCrE,uCAAA,CAACY,aAAD;AACElB,MAAAA,OAAO,EAAE2E,WAAW,CAAC3E;AACrBG,MAAAA,KAAK,EAAEwE,WAAW,CAACxE;AACnBF,MAAAA,OAAO,EAAES,WAAW,CAACiE,WAAW,CAAC5C,EAAb;AACpB6C,MAAAA,YAAY,EAAEf,gBAAgB,CAACc,WAAD;AAC9BE,MAAAA,YAAY,EAAEX;AACdpE,MAAAA,QAAQ,EAAEkD,UAAU,KAAK2B,WAAW,CAAC5C;AACrC3B,MAAAA,mBAAmB,EAAEuE,WAAW,CAAC3C;AACjC8C,MAAAA,GAAG,EAAEH,WAAW,CAAC5C;KARnB,EAUG4C,WAAW,CAACnC,OAVf,CADiC;AAAA,GAAlC,CARH,CAFJ,EA0BG5C,QA1BH,CADF;AA8BD;IAEYmF,QAAQ,GAEjB,SAFSA,QAET;AACF,MAAMC,OAAO,GAAG1E,yBAAK,CAAC2E,UAAN,CAAiB1D,YAAjB,CAAhB;;AACA,MAAI,CAACyD,OAAL,EAAc;AACZ,UAAM,IAAIE,KAAJ,CACJ,qEACE,gCAFE,CAAN;AAID;;AACD,MAAQtB,QAAR,GAAqBoB,OAArB,CAAQpB,QAAR;AACA,SAAO;AACLA,IAAAA,QAAQ,EAARA;AADK,GAAP;AAGD;;;IClLYuB,YAAY,GAAG,SAAfA,YAAe;MAC1BvF,gBAAAA;iCACAwF;MAAAA,kDAAiB;iCACjBC;MAAAA,kDAAiB;MACjBxF,iBAAAA;MACGQ;;AAEH,kBAAqB0E,QAAQ,EAA7B;AAAA,MAAQnB,QAAR,aAAQA,QAAR;;AACA,MAAM0B,SAAS,GAAGhF,yBAAK,CAAC6C,MAAN,CAAgC,IAAhC,CAAlB;;AACA,MAAMoC,WAAW,GAAG,SAAdA,WAAc;AAClBD,IAAAA,SAAS,CAAC9B,OAAV,IACEgC,wBAAI,CAAC5F,QAAD,EAAW;AACb6F,MAAAA,MAAM,EAAEH,SAAS,CAAC9B;AADL,KAAX,CADN,IAIEI,QAAQ,CAAC;AAAEzD,MAAAA,KAAK,EAAEiF,cAAT;AAAyB5C,MAAAA,OAAO,EAAE6C;AAAlC,KAAD,CAJV;AAKD,GAND;;AAOA,SACE/E,uCAAA,SAAA;AACET,IAAAA,SAAS,EAAE,mBAAmBA,SADhC;AAEE+C,IAAAA,KAAK,eAAOvC,IAAI,CAACuC,KAAZ,CAFP;AAGE/B,IAAAA,IAAI,EAAC,QAHP;AAIEC,IAAAA,OAAO,EAAEyE,WAJX;AAKEG,IAAAA,GAAG,EAAEJ,SALP;kBAMa;AANb,KAOMjF,IAPN,GASEC,uCAAA,CAACqF,2BAAD,MAAA,EAAmB/F,QAAnB,CATF,EAUEU,uCAAA,CAACsF,cAAD;AAAU/F,IAAAA,SAAS,EAAC;GAApB,CAVF,CADF;AAcD;;;ICxCYgG,uBAAuB,GAClC,SADWA,uBACX,CAAA5E,KAAK;AACH,SAAOX,uCAAA,CAACwF,kBAAD;AAAoB5F,IAAAA,IAAI,EAAC;AAAzB,KAAqCe,KAArC,EAAP;AACD;IAKU8E,wBAAwB,GACnC,SADWA,wBACX,CAAA9E,KAAK;AACH,SAAOX,uCAAA,CAACwF,kBAAD;AAAoB5F,IAAAA,IAAI,EAAC;AAAzB,KAAsCe,KAAtC,EAAP;AACD;;AAsBH,IAAM6E,kBAAkB,GAAsC,SAAxDA,kBAAwD;MAC5D9F,eAAAA;MACAG,aAAAA;MACAP,gBAAAA;MACAM,YAAAA;MACAL,iBAAAA;MACAmG,iBAAAA;MACAC,kBAAAA;MACG5F;;AAEH,wBAAwBC,yBAAK,CAACC,QAAN,CAAe,KAAf,CAAxB;AAAA,MAAO2F,IAAP;AAAA,MAAaC,OAAb;;AACA,SACE7F,uCAAA,CAACX,YAAD;AACEO,IAAAA,IAAI,EAAEA,IADR;AAEEF,IAAAA,OAAO,EAAEA,OAFX;AAGEH,IAAAA,SAAS,EAAEe,8BAAU,CAAC,0BAAD,EAA6Bf,SAA7B,CAHvB;AAIEM,IAAAA,KAAK,EACHG,uCAAA,CAAC8F,uBAAD;AACEF,MAAAA,IAAI,EAAEA;AACN/F,MAAAA,KAAK,EAAEA;AACPW,MAAAA,OAAO,EAAE;AAAA,eAAMqF,OAAO,CAAC,CAACD,IAAF,CAAb;AAAA;AACTF,MAAAA,SAAS,EAAEA;AACXC,MAAAA,UAAU,EAAEA;KALd;AALJ,KAaM5F,IAbN,GAeEC,uCAAA,CAAC+F,YAAD;AAAYH,IAAAA,IAAI,EAAEA;GAAlB,EAAyBtG,QAAzB,CAfF,CADF;AAmBD,CA9BD;;AAwCA,IAAMwG,uBAAuB,GAA2C,SAAlEA,uBAAkE;MACtEjG,cAAAA;MACA+F,aAAAA;8BACAF;MAAAA,yCAAY;+BACZC;MAAAA,2CAAa;MACbnF,gBAAAA;AAEA,SACER,uCAAA,MAAA;AAAKT,IAAAA,SAAS,EAAC;GAAf,EACES,uCAAA,MAAA,MAAA,EAAMH,KAAN,CADF,EAEEG,uCAAA,SAAA;AACET,IAAAA,SAAS,EAAC;AACViB,IAAAA,OAAO,EAAEA;AACTD,IAAAA,IAAI,EAAC;GAHP,EAKGqF,IAAI,GAAGD,UAAH,GAAgBD,SALvB,EAME1F,uCAAA,CAACgG,aAAD;AAAaJ,IAAAA,IAAI,EAAEA;AAAMK,IAAAA,MAAM;GAA/B,CANF,CAFF,CADF;AAaD,CApBD;;ACjFAC,4BAAsB,CAAC,OAAD,EAAU,OAAV,CAAtB;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"alert.cjs.development.js","sources":["../src/BaseAlertBox.tsx","../src/BannerAlertBox.tsx","../src/ToastAlertBox.tsx","../src/SmallAlertBox.tsx","../src/ToastProvider.tsx","../src/CopyableText.tsx","../src/ExpandableAlertBox.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport {\n CloseIcon,\n OutlinedValidationCheckIcon,\n OutlinedValidationExclamationIcon,\n OutlinedValidationInfoIcon,\n OutlinedValidationErrorIcon,\n} from '@entur/icons';\nimport './styles.scss';\n\nconst iconsMap = {\n success: OutlinedValidationCheckIcon,\n info: OutlinedValidationInfoIcon,\n warning: OutlinedValidationExclamationIcon,\n error: OutlinedValidationErrorIcon,\n};\n\ntype BaseAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises\n * @default \"Lukk\"\n */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen\n * @default () => {}\n */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: React.ReactNode;\n /** Farge og uttrykk på alert-boksen */\n variant: 'success' | 'info' | 'warning' | 'error';\n /** Typen boks (internt bruk) */\n size: 'banner' | 'toast' | 'small';\n [key: string]: any;\n};\n\nexport const BaseAlertBox: React.FC<BaseAlertBoxProps> = ({\n children,\n className,\n closable = false,\n closeButtonLabel = 'Lukk',\n variant,\n onClose = () => ({}),\n size,\n title,\n toastIsBeingRemoved,\n ...rest\n}) => {\n const [isClosed, setClosed] = React.useState(false);\n if (isClosed) {\n return null;\n }\n const handleClose = () => {\n setClosed(true);\n onClose();\n };\n const Icon = iconsMap[variant];\n return (\n <div\n className={classNames(\n 'eds-alert-box',\n `eds-alert-box--${size}`,\n `eds-alert-box--${variant}`,\n { 'eds-alert-box--toast--exit-animation': toastIsBeingRemoved },\n className,\n )}\n {...rest}\n >\n {closable && (\n <button\n aria-label={closeButtonLabel}\n className=\"eds-alert-box__close-button\"\n type=\"button\"\n onClick={handleClose}\n >\n <CloseIcon />\n </button>\n )}\n <Icon className=\"eds-alert-box__icon\" />\n <div\n className={classNames('eds-alert-box__content', {\n 'eds-alert-box__content--no-title': !title,\n 'eds-alert-box__content--no-children': !children,\n })}\n >\n {title && <div className=\"eds-alert-box__title\">{title}</div>}\n {children && children}\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nexport type BannerAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på alert-boksen */\n variant: 'success' | 'info' | 'warning' | 'error';\n [key: string]: any;\n};\n\nexport const BannerAlertBox: React.FC<BannerAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"banner\" />\n);\n","import React from 'react';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nexport type ToastAlertBoxProps = {\n /** Innholdet i toasten */\n children?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne */\n closable?: boolean;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Farge og uttrykk på toasten */\n variant: 'success' | 'info';\n [key: string]: any;\n};\n\nexport const ToastAlertBox: React.FC<ToastAlertBoxProps> = props => (\n <BaseAlertBox {...props} size=\"toast\" role=\"status\" />\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseAlertBox } from './BaseAlertBox';\n\nexport type SmallAlertBoxProps = {\n /** Innholdet i alert-boksen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Skjermleser-label for lukkeknappen, om den vises */\n closeButtonLabel?: string;\n /** Om denne er true, vil boksen få en lukkeknapp i høyre hjørne\n * @default false\n */\n closable?: boolean;\n /** Callback som kalles når man lukker boksen */\n onClose?: () => void;\n /** Tittel på boksen - oppsummer virkning */\n title?: string;\n /** Bredden på boksen - fullbredde eller tilpasset innholdet */\n width?: 'fluid' | 'fit-content';\n /** Farge og uttrykk på alert-boksen */\n variant: 'success' | 'info' | 'warning' | 'error';\n [key: string]: any;\n};\n\nexport const SmallAlertBox: React.FC<SmallAlertBoxProps> = ({\n className,\n width,\n onClose,\n closable = false,\n closeButtonLabel,\n ...rest\n}) => (\n <BaseAlertBox\n className={classNames(className, {\n 'eds-alert-box--fit-content': width === 'fit-content',\n })}\n {...rest}\n onClose={onClose}\n closable={closable}\n closeButtonLabel={closeButtonLabel}\n size=\"small\"\n />\n);\n","import React from 'react';\nimport { ToastAlertBox } from './ToastAlertBox';\nimport classNames from 'classnames';\n\ntype ToastId = string;\n\ntype ToastVariants = 'success' | 'info';\n\ntype ToastType = {\n title?: string;\n content: React.ReactNode;\n id: ToastId;\n variant: ToastVariants;\n isBeingRemoved: boolean;\n};\n\ntype ToastContextType = {\n addToast: (payload: AddToastPayload) => void;\n removeToast: (id: ToastId) => void;\n toasts: ToastType[];\n};\n\ntype AddToastPayload =\n | { title?: string; content: React.ReactNode; variant?: ToastVariants }\n | string;\n\ntype ToastAction =\n | { type: 'ADD_TOAST'; payload: ToastType }\n | { type: 'REMOVE_TOAST'; payload: ToastId }\n | { type: 'PLAY_EXIT_ANIMATION'; payload: ToastId };\n\nconst EXIT_ANIMATION_TIME = 400;\n\nconst ToastContext = React.createContext<ToastContextType | null>(null);\n\nconst toastReducer = (\n prevToasts: ToastType[],\n action: ToastAction,\n): ToastType[] => {\n switch (action.type) {\n case 'ADD_TOAST':\n return [action.payload, ...prevToasts];\n case 'PLAY_EXIT_ANIMATION':\n return prevToasts.map(toast => {\n if (toast.id === action.payload)\n return { ...toast, isBeingRemoved: true };\n return toast;\n });\n case 'REMOVE_TOAST':\n return prevToasts.filter(toast => toast.id !== action.payload);\n }\n};\n\nconst createUniqueId = () => Math.random().toString().substring(2);\n\nconst createToast = (toast: AddToastPayload, id: ToastId): ToastType => {\n if (typeof toast === 'string') {\n return { id, content: toast, variant: 'success', isBeingRemoved: false };\n } else {\n return { id, variant: 'success', isBeingRemoved: false, ...toast };\n }\n};\n\nexport type ToastProviderProps = {\n /** Antall millisekunder før toasts forsvinner av seg selv\n * @default 6000\n */\n delay?: number;\n /** Plasseringen av toasts\n * @default \"bottom-right\"\n */\n position?: 'bottom-right' | 'top-right';\n /** Ekstra klassenavn til ToastProvider-wrapperen */\n className?: string;\n /** Ekstra styling som sendes til ToastProvider-wrapperen */\n style?: React.CSSProperties;\n /** Innholdet */\n children: React.ReactNode;\n};\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n delay = 6000,\n children,\n position = 'bottom-right',\n className,\n style,\n}) => {\n const [toasts, dispatch] = React.useReducer(toastReducer, []);\n const [hoveringId, setHovering] = React.useState<string>();\n const timeoutIdRefs = React.useRef<{ [key: string]: number }>({});\n\n const removeToast = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id]);\n dispatch({ type: 'REMOVE_TOAST', payload: id });\n delete timeoutIdRefs.current[id];\n }, []);\n\n const playExitAnimation = React.useCallback((id: ToastId) => {\n window.clearTimeout(timeoutIdRefs.current[id + 'animation']);\n dispatch({ type: 'PLAY_EXIT_ANIMATION', payload: id });\n delete timeoutIdRefs.current[id + 'animation'];\n }, []);\n\n const removeToastWithAnimationAfterDelay = React.useCallback(\n (id: ToastId, delay: number) => {\n timeoutIdRefs.current[id + 'animation'] = window.setTimeout(\n () => playExitAnimation(id),\n delay - EXIT_ANIMATION_TIME,\n );\n timeoutIdRefs.current[id] = window.setTimeout(\n () => removeToast(id),\n delay,\n );\n },\n [timeoutIdRefs, playExitAnimation, removeToast],\n );\n\n const addToast = React.useCallback(\n (toast: AddToastPayload) => {\n const id = createUniqueId();\n const payload = createToast(toast, id);\n dispatch({ type: 'ADD_TOAST', payload });\n removeToastWithAnimationAfterDelay(id, delay);\n },\n [delay, removeToastWithAnimationAfterDelay],\n );\n\n const handleMouseEnter = (toast: ToastType) => () => {\n if (toast.isBeingRemoved) return;\n setHovering(toast.id);\n Object.values(timeoutIdRefs.current).forEach(timeoutId => {\n window.clearTimeout(timeoutId);\n });\n timeoutIdRefs.current = {};\n };\n\n const handleMouseLeave = () => {\n setHovering(undefined);\n toasts.forEach(toast => {\n removeToastWithAnimationAfterDelay(toast.id, delay);\n });\n };\n\n const handleClose = (toastId: ToastId) => () => {\n removeToast(toastId);\n handleMouseLeave();\n };\n\n const contextValue = React.useMemo(\n () => ({ toasts, addToast, removeToast }),\n [addToast, removeToast, toasts],\n );\n\n return (\n <ToastContext.Provider value={contextValue}>\n {toasts.length > 0 && (\n <div\n className={classNames(\n 'eds-toast-container',\n `eds-toast-container--${position}`,\n className,\n )}\n style={style}\n >\n {toasts.slice(0, 3).map(toastToShow => (\n <ToastAlertBox\n variant={toastToShow.variant}\n title={toastToShow.title}\n onClose={handleClose(toastToShow.id)}\n onMouseEnter={handleMouseEnter(toastToShow)}\n onMouseLeave={handleMouseLeave}\n closable={hoveringId === toastToShow.id}\n toastIsBeingRemoved={toastToShow.isBeingRemoved}\n key={toastToShow.id}\n >\n {toastToShow.content}\n </ToastAlertBox>\n ))}\n </div>\n )}\n {children}\n </ToastContext.Provider>\n );\n};\n\nexport const useToast: () => {\n addToast: (payload: AddToastPayload) => void;\n} = () => {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your component in a ToastProvider component in ' +\n 'order to use the useToast hook',\n );\n }\n const { addToast } = context;\n return {\n addToast,\n };\n};\n","import React from 'react';\n\nimport copy from 'copy-text-to-clipboard';\n\nimport { useToast } from './ToastProvider';\nimport { CopyIcon } from '@entur/icons';\nimport { PreformattedText } from '@entur/typography';\n\nimport './CopyableText.scss';\n\nexport type CopyableTextProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Tekstinnhold som vises og kopieres */\n children: string;\n /** Overskrift i toast-varselet */\n successHeading?: string;\n /** Bekreftelsesmelding i toast-varselet */\n successMessage?: string;\n} & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>;\n\nexport const CopyableText = ({\n children,\n successHeading = 'Kopiert!',\n successMessage = 'Innholdet ble kopiert til utklippstavlen.',\n className,\n ...rest\n}: CopyableTextProps): JSX.Element => {\n const { addToast } = useToast();\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const handleClick = () => {\n buttonRef.current &&\n copy(children, {\n target: buttonRef.current,\n }) &&\n addToast({ title: successHeading, content: successMessage });\n };\n return (\n <button\n className={'copyable-text ' + className}\n style={{ ...rest.style }}\n type=\"button\"\n onClick={handleClick}\n ref={buttonRef}\n aria-label=\"Kopier innhold\"\n {...rest}\n >\n <PreformattedText>{children}</PreformattedText>\n <CopyIcon className=\"copyable-text__icon\" />\n </button>\n );\n};\n","import { BaseExpand, ExpandArrow } from '@entur/expand/';\nimport classNames from 'classnames';\nimport React from 'react';\nimport { BannerAlertBoxProps } from './BannerAlertBox';\nimport { BaseAlertBox } from './BaseAlertBox';\nimport './ExpandableAlertBox.scss';\nimport { SmallAlertBoxProps } from './SmallAlertBox';\n\nexport type SmallExpandableAlertBoxProps = ExpandableAlertBoxProps &\n SmallAlertBoxProps;\n\nexport const SmallExpandableAlertBox: React.FC<SmallExpandableAlertBoxProps> =\n props => {\n return <ExpandableAlertBox size=\"small\" {...props} />;\n };\n\nexport type BannerExpandableAlertBoxProps = ExpandableAlertBoxProps &\n BannerAlertBoxProps;\n\nexport const BannerExpandableAlertBox: React.FC<BannerExpandableAlertBoxProps> =\n props => {\n return <ExpandableAlertBox size=\"banner\" {...props} />;\n };\n\ntype ExpandableAlertBoxProps = {\n /**Farge og uttrykk på alert-boksen */\n variant: 'success' | 'info' | 'warning' | 'error';\n /** Tittelen til ExpandableAlertBox */\n title: React.ReactNode;\n /**Innhold som vises ved ekspandering */\n children: React.ReactNode;\n /**Ekstra klassenavn */\n className?: string;\n /** Tekst som vises på ekspanderingsknappen før åpning\n * @default \"Les mer\"\n */\n openLabel?: string;\n /** Tekst som vises på ekspanderingsknappen når den er åpnet\n * @default \"Lukk\"\n */\n closeLabel?: string;\n [key: string]: any;\n};\n\nconst ExpandableAlertBox: React.FC<ExpandableAlertBoxProps> = ({\n variant,\n title,\n children,\n size,\n className,\n openLabel,\n closeLabel,\n ...rest\n}) => {\n const [open, setopen] = React.useState(false);\n return (\n <BaseAlertBox\n size={size}\n variant={variant}\n className={classNames('eds-expandable-alert-box', className)}\n title={\n <ExpandableAlertBoxTitle\n open={open}\n title={title}\n onClick={() => setopen(!open)}\n openLabel={openLabel}\n closeLabel={closeLabel}\n />\n }\n {...rest}\n >\n <BaseExpand open={open}>{children}</BaseExpand>\n </BaseAlertBox>\n );\n};\n\ntype ExpandableAlertBoxTitleProps = {\n title: React.ReactNode;\n open: boolean;\n openLabel?: string;\n closeLabel?: string;\n onClick: (e: React.MouseEvent) => void;\n};\n\nconst ExpandableAlertBoxTitle: React.FC<ExpandableAlertBoxTitleProps> = ({\n title,\n open,\n openLabel = 'Les mer',\n closeLabel = 'Lukk',\n onClick,\n}) => {\n return (\n <div className=\"eds-expandable-alert-box__title\">\n <div>{title}</div>\n <button\n className=\"eds-expandable-alert-box__button\"\n onClick={onClick}\n type=\"button\"\n >\n {open ? closeLabel : openLabel}\n <ExpandArrow open={open} inline />\n </button>\n </div>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('alert', 'icons');\n\nexport { BannerAlertBox } from './BannerAlertBox';\nexport { ToastAlertBox } from './ToastAlertBox';\nexport { SmallAlertBox } from './SmallAlertBox';\nexport { ToastProvider, useToast } from './ToastProvider';\nexport { CopyableText } from './CopyableText';\nexport * from './ExpandableAlertBox';\n"],"names":["iconsMap","success","OutlinedValidationCheckIcon","info","OutlinedValidationInfoIcon","warning","OutlinedValidationExclamationIcon","error","OutlinedValidationErrorIcon","BaseAlertBox","children","className","closable","closeButtonLabel","variant","onClose","size","title","toastIsBeingRemoved","rest","_excluded","React","useState","isClosed","setClosed","handleClose","Icon","createElement","classNames","type","onClick","CloseIcon","BannerAlertBox","props","ToastAlertBox","role","SmallAlertBox","width","EXIT_ANIMATION_TIME","ToastContext","createContext","toastReducer","prevToasts","action","payload","map","toast","id","isBeingRemoved","filter","createUniqueId","Math","random","toString","substring","createToast","content","ToastProvider","delay","position","style","useReducer","toasts","dispatch","hoveringId","setHovering","timeoutIdRefs","useRef","removeToast","useCallback","window","clearTimeout","current","playExitAnimation","removeToastWithAnimationAfterDelay","setTimeout","addToast","handleMouseEnter","Object","values","forEach","timeoutId","handleMouseLeave","undefined","toastId","contextValue","useMemo","Provider","value","length","slice","toastToShow","onMouseEnter","onMouseLeave","key","useToast","context","useContext","Error","CopyableText","successHeading","successMessage","buttonRef","handleClick","copy","target","ref","PreformattedText","CopyIcon","SmallExpandableAlertBox","ExpandableAlertBox","BannerExpandableAlertBox","openLabel","closeLabel","open","setopen","ExpandableAlertBoxTitle","BaseExpand","ExpandArrow","inline","warnAboutMissingStyles"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),t=require("react"),n=require("classnames"),a=require("@entur/icons"),l=require("copy-text-to-clipboard"),o=require("@entur/typography"),r=require("@entur/expand/");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=i(t),u=i(n),c=i(l);function d(){return d=Object.assign
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),t=require("react"),n=require("classnames"),a=require("@entur/icons"),l=require("copy-text-to-clipboard"),o=require("@entur/typography"),r=require("@entur/expand/");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=i(t),u=i(n),c=i(l);function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},d.apply(this,arguments)}function f(e,t){if(null==e)return{};var n,a,l={},o=Object.keys(e);for(a=0;a<o.length;a++)t.indexOf(n=o[a])>=0||(l[n]=e[n]);return l}var m=["children","className","closable","closeButtonLabel","variant","onClose","size","title","toastIsBeingRemoved"],b={success:a.OutlinedValidationCheckIcon,info:a.OutlinedValidationInfoIcon,warning:a.OutlinedValidationExclamationIcon,error:a.OutlinedValidationErrorIcon},p=function(e){var t=e.children,n=e.className,l=e.closable,o=void 0!==l&&l,r=e.closeButtonLabel,i=void 0===r?"Lukk":r,c=e.variant,p=e.onClose,v=void 0===p?function(){return{}}:p,x=e.size,E=e.title,y=e.toastIsBeingRemoved,T=f(e,m),_=s.default.useState(!1),h=_[1];if(_[0])return null;var g=b[c];return s.default.createElement("div",d({className:u.default("eds-alert-box","eds-alert-box--"+x,"eds-alert-box--"+c,{"eds-alert-box--toast--exit-animation":y},n)},T),o&&s.default.createElement("button",{"aria-label":i,className:"eds-alert-box__close-button",type:"button",onClick:function(){h(!0),v()}},s.default.createElement(a.CloseIcon,null)),s.default.createElement(g,{className:"eds-alert-box__icon"}),s.default.createElement("div",{className:u.default("eds-alert-box__content",{"eds-alert-box__content--no-title":!E,"eds-alert-box__content--no-children":!t})},E&&s.default.createElement("div",{className:"eds-alert-box__title"},E),t&&t))},v=function(e){return s.default.createElement(p,d({},e,{size:"toast",role:"status"}))},x=["className","width","onClose","closable","closeButtonLabel"],E=s.default.createContext(null),y=function(e,t){switch(t.type){case"ADD_TOAST":return[t.payload].concat(e);case"PLAY_EXIT_ANIMATION":return e.map((function(e){return e.id===t.payload?d({},e,{isBeingRemoved:!0}):e}));case"REMOVE_TOAST":return e.filter((function(e){return e.id!==t.payload}))}},T=function(){var e=s.default.useContext(E);if(!e)throw new Error("You need to wrap your component in a ToastProvider component in order to use the useToast hook");return{addToast:e.addToast}},_=["children","successHeading","successMessage","className"],h=["variant","title","children","size","className","openLabel","closeLabel"],g=function(e){var t=e.variant,n=e.title,a=e.children,l=e.size,o=e.className,i=e.openLabel,c=e.closeLabel,m=f(e,h),b=s.default.useState(!1),v=b[0],x=b[1];return s.default.createElement(p,d({size:l,variant:t,className:u.default("eds-expandable-alert-box",o),title:s.default.createElement(N,{open:v,title:n,onClick:function(){return x(!v)},openLabel:i,closeLabel:c})},m),s.default.createElement(r.BaseExpand,{open:v},a))},N=function(e){var t=e.open,n=e.openLabel,a=void 0===n?"Les mer":n,l=e.closeLabel,o=void 0===l?"Lukk":l,i=e.onClick;return s.default.createElement("div",{className:"eds-expandable-alert-box__title"},s.default.createElement("div",null,e.title),s.default.createElement("button",{className:"eds-expandable-alert-box__button",onClick:i,type:"button"},t?o:a,s.default.createElement(r.ExpandArrow,{open:t,inline:!0})))};e.warnAboutMissingStyles("alert","icons"),exports.BannerAlertBox=function(e){return s.default.createElement(p,d({},e,{size:"banner"}))},exports.BannerExpandableAlertBox=function(e){return s.default.createElement(g,d({size:"banner"},e))},exports.CopyableText=function(e){var t=e.children,n=e.successHeading,l=void 0===n?"Kopiert!":n,r=e.successMessage,i=void 0===r?"Innholdet ble kopiert til utklippstavlen.":r,u=e.className,m=f(e,_),b=T().addToast,p=s.default.useRef(null);return s.default.createElement("button",d({className:"copyable-text "+u,style:d({},m.style),type:"button",onClick:function(){p.current&&c.default(t,{target:p.current})&&b({title:l,content:i})},ref:p,"aria-label":"Kopier innhold"},m),s.default.createElement(o.PreformattedText,null,t),s.default.createElement(a.CopyIcon,{className:"copyable-text__icon"}))},exports.SmallAlertBox=function(e){var t=e.className,n=e.width,a=e.onClose,l=e.closable,o=void 0!==l&&l,r=e.closeButtonLabel,i=f(e,x);return s.default.createElement(p,d({className:u.default(t,{"eds-alert-box--fit-content":"fit-content"===n})},i,{onClose:a,closable:o,closeButtonLabel:r,size:"small"}))},exports.SmallExpandableAlertBox=function(e){return s.default.createElement(g,d({size:"small"},e))},exports.ToastAlertBox=v,exports.ToastProvider=function(e){var t=e.delay,n=void 0===t?6e3:t,a=e.children,l=e.position,o=void 0===l?"bottom-right":l,r=e.className,i=e.style,c=s.default.useReducer(y,[]),f=c[0],m=c[1],b=s.default.useState(),p=b[0],x=b[1],T=s.default.useRef({}),_=s.default.useCallback((function(e){window.clearTimeout(T.current[e]),m({type:"REMOVE_TOAST",payload:e}),delete T.current[e]}),[]),h=s.default.useCallback((function(e){window.clearTimeout(T.current[e+"animation"]),m({type:"PLAY_EXIT_ANIMATION",payload:e}),delete T.current[e+"animation"]}),[]),g=s.default.useCallback((function(e,t){T.current[e+"animation"]=window.setTimeout((function(){return h(e)}),t-400),T.current[e]=window.setTimeout((function(){return _(e)}),t)}),[T,h,_]),N=s.default.useCallback((function(e){var t=Math.random().toString().substring(2),a=function(e,t){return"string"==typeof e?{id:t,content:e,variant:"success",isBeingRemoved:!1}:d({id:t,variant:"success",isBeingRemoved:!1},e)}(e,t);m({type:"ADD_TOAST",payload:a}),g(t,n)}),[n,g]),B=function(){x(void 0),f.forEach((function(e){g(e.id,n)}))},C=s.default.useMemo((function(){return{toasts:f,addToast:N,removeToast:_}}),[N,_,f]);return s.default.createElement(E.Provider,{value:C},f.length>0&&s.default.createElement("div",{className:u.default("eds-toast-container","eds-toast-container--"+o,r),style:i},f.slice(0,3).map((function(e){return s.default.createElement(v,{variant:e.variant,title:e.title,onClose:(n=e.id,function(){_(n),B()}),onMouseEnter:(t=e,function(){t.isBeingRemoved||(x(t.id),Object.values(T.current).forEach((function(e){window.clearTimeout(e)})),T.current={})}),onMouseLeave:B,closable:p===e.id,toastIsBeingRemoved:e.isBeingRemoved,key:e.id},e.content);var t,n}))),a)},exports.useToast=T;
|
|
2
2
|
//# sourceMappingURL=alert.cjs.production.min.js.map
|