@dnanpm/styleguide 3.11.0 → 3.11.2
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/build/cjs/components/Checkbox/Checkbox.js +2 -1
- package/build/cjs/components/Chip/Chip.js +2 -1
- package/build/cjs/components/DateTimePicker/DateTimePicker.d.ts +22 -6
- package/build/cjs/components/DateTimePicker/DateTimePicker.js +61 -29
- package/build/cjs/components/Footer/Components/FooterComponents.js +11 -23
- package/build/cjs/components/Footer/Footer.js +2 -1
- package/build/cjs/components/Input/Input.d.ts +7 -1
- package/build/cjs/components/Input/Input.js +16 -16
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/BusinessMenu.js +2 -1
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/DesktopMenu.js +13 -13
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.d.ts +2 -2
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +12 -12
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.d.ts +3 -3
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +7 -6
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MobileMenu.d.ts +4 -0
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MobileMenu.js +44 -41
- package/build/cjs/components/MainHeaderNavigation/MainHeaderNavigation.d.ts +3 -1
- package/build/cjs/components/MainHeaderNavigation/MainHeaderNavigation.js +14 -10
- package/build/cjs/components/MainHeaderNavigation/context/NavContext.d.ts +2 -0
- package/build/cjs/components/MainHeaderNavigation/context/NavContext.js +4 -2
- package/build/cjs/components/MainHeaderNavigation/globalNavStyles.d.ts +8 -8
- package/build/cjs/components/MainHeaderNavigation/globalNavStyles.js +29 -24
- package/build/cjs/components/Notification/Notification.js +2 -1
- package/build/cjs/components/Pill/Pill.js +2 -1
- package/build/cjs/components/RadioButton/RadioButton.js +4 -3
- package/build/cjs/components/SecondaryNavigation/SecondaryNavigation.js +3 -1
- package/build/cjs/components/Switch/Switch.js +1 -2
- package/build/cjs/components/Tooltip/Tooltip.js +2 -1
- package/build/cjs/utils/styledUtils.js +4 -4
- package/build/es/components/Checkbox/Checkbox.js +2 -1
- package/build/es/components/Chip/Chip.js +2 -1
- package/build/es/components/DateTimePicker/DateTimePicker.d.ts +22 -6
- package/build/es/components/DateTimePicker/DateTimePicker.js +61 -29
- package/build/es/components/Footer/Components/FooterComponents.js +11 -23
- package/build/es/components/Footer/Footer.js +2 -1
- package/build/es/components/Input/Input.d.ts +7 -1
- package/build/es/components/Input/Input.js +17 -17
- package/build/es/components/MainHeaderNavigation/ChildComponents/BusinessMenu.js +2 -1
- package/build/es/components/MainHeaderNavigation/ChildComponents/DesktopMenu.js +13 -13
- package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.d.ts +2 -2
- package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +12 -12
- package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.d.ts +3 -3
- package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +7 -6
- package/build/es/components/MainHeaderNavigation/ChildComponents/MobileMenu.d.ts +4 -0
- package/build/es/components/MainHeaderNavigation/ChildComponents/MobileMenu.js +45 -43
- package/build/es/components/MainHeaderNavigation/MainHeaderNavigation.d.ts +3 -1
- package/build/es/components/MainHeaderNavigation/MainHeaderNavigation.js +14 -10
- package/build/es/components/MainHeaderNavigation/context/NavContext.d.ts +2 -0
- package/build/es/components/MainHeaderNavigation/context/NavContext.js +4 -2
- package/build/es/components/MainHeaderNavigation/globalNavStyles.d.ts +8 -8
- package/build/es/components/MainHeaderNavigation/globalNavStyles.js +29 -24
- package/build/es/components/Notification/Notification.js +2 -1
- package/build/es/components/Pill/Pill.js +2 -1
- package/build/es/components/RadioButton/RadioButton.js +4 -3
- package/build/es/components/SecondaryNavigation/SecondaryNavigation.js +3 -1
- package/build/es/components/Switch/Switch.js +1 -2
- package/build/es/components/Tooltip/Tooltip.js +2 -1
- package/build/es/utils/styledUtils.js +4 -4
- package/package.json +12 -10
- package/build/cjs/components/MainHeaderNavigation/context/MobileMenuContext.d.ts +0 -6
- package/build/cjs/components/MainHeaderNavigation/context/MobileMenuContext.js +0 -11
- package/build/es/components/MainHeaderNavigation/context/MobileMenuContext.d.ts +0 -6
- package/build/es/components/MainHeaderNavigation/context/MobileMenuContext.js +0 -7
|
@@ -7,10 +7,10 @@ const getMultipliedSize = (base, multiply) => `${multiply * base.value}${base.un
|
|
|
7
7
|
const getDividedSize = (base, divide) => `${base.value / divide}${base.unit}`;
|
|
8
8
|
const media = Object.keys(breakpoints.default).reduce((acc, label) => {
|
|
9
9
|
acc[label] = (literals, ...placeholders) => styledComponents.css `
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
@media (min-width: ${breakpoints.default[label]}px) {
|
|
11
|
+
${styledComponents.css(literals, ...placeholders)};
|
|
12
|
+
}
|
|
13
|
+
`.join('');
|
|
14
14
|
return acc;
|
|
15
15
|
}, {});
|
|
16
16
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ChangeEvent } from 'react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import type {
|
|
3
|
+
import type { DatePickerProps } from 'react-datepicker';
|
|
4
4
|
import type { LocaleCode } from '../../types/locale.d';
|
|
5
5
|
interface Props {
|
|
6
6
|
/**
|
|
@@ -15,7 +15,7 @@ interface Props {
|
|
|
15
15
|
* Allows to enable range picker functionality.
|
|
16
16
|
* By passing `null` as value, range picker functionality will be enabled but no value will be provided as default
|
|
17
17
|
*/
|
|
18
|
-
endDate?:
|
|
18
|
+
endDate?: DatePickerProps['endDate'];
|
|
19
19
|
/**
|
|
20
20
|
* Input label content
|
|
21
21
|
*/
|
|
@@ -36,7 +36,7 @@ interface Props {
|
|
|
36
36
|
/**
|
|
37
37
|
* On datetime picker change callback
|
|
38
38
|
*/
|
|
39
|
-
onChange:
|
|
39
|
+
onChange: DatePickerProps['onChange'];
|
|
40
40
|
/**
|
|
41
41
|
* On input change callback
|
|
42
42
|
*/
|
|
@@ -44,17 +44,17 @@ interface Props {
|
|
|
44
44
|
/**
|
|
45
45
|
* Minimum selectable date
|
|
46
46
|
*/
|
|
47
|
-
minDate?:
|
|
47
|
+
minDate?: DatePickerProps['minDate'];
|
|
48
48
|
/**
|
|
49
49
|
* Maximum selectable date
|
|
50
50
|
*/
|
|
51
|
-
maxDate?:
|
|
51
|
+
maxDate?: DatePickerProps['maxDate'];
|
|
52
52
|
/**
|
|
53
53
|
* Allows to define time intervals in time picker
|
|
54
54
|
*
|
|
55
55
|
* @default 30
|
|
56
56
|
*/
|
|
57
|
-
timeInterval?:
|
|
57
|
+
timeInterval?: DatePickerProps['timeIntervals'];
|
|
58
58
|
/**
|
|
59
59
|
* Text of the error message when input element is in error state
|
|
60
60
|
*/
|
|
@@ -107,6 +107,22 @@ interface Props {
|
|
|
107
107
|
* Allows to pass a custom className
|
|
108
108
|
*/
|
|
109
109
|
className?: string;
|
|
110
|
+
/**
|
|
111
|
+
* Descriptive label for screen readers for the input element.
|
|
112
|
+
*/
|
|
113
|
+
ariaLabelInput?: string;
|
|
114
|
+
/**
|
|
115
|
+
* Accessible label for "Previous month" button
|
|
116
|
+
*/
|
|
117
|
+
ariaLabelPreviousMonth?: string;
|
|
118
|
+
/**
|
|
119
|
+
* Accessible label for "Next month" button
|
|
120
|
+
*/
|
|
121
|
+
ariaLabelNextMonth?: string;
|
|
122
|
+
/**
|
|
123
|
+
* Accessible text for announcing date changes (e.g., for screen readers)
|
|
124
|
+
*/
|
|
125
|
+
ariaLiveAnnouncement?: string;
|
|
110
126
|
}
|
|
111
127
|
/** @visibleName DateTime Picker */
|
|
112
128
|
declare const DateTimePicker: ({ date: startDate, locale, isDatePicker, isTimePicker, timeInterval, "data-testid": dataTestId, ...props }: Props) => React.JSX.Element;
|
|
@@ -77,7 +77,6 @@ const Wrapper = styled.div `
|
|
|
77
77
|
padding: ${getMultipliedSize(theme.base.baseWidth, 1)}
|
|
78
78
|
${getMultipliedSize(theme.base.baseWidth, 1)}
|
|
79
79
|
${getMultipliedSize(theme.base.baseWidth, 0.5)};
|
|
80
|
-
border-bottom: 1px solid ${theme.color.line.L03};
|
|
81
80
|
background-color: ${theme.color.background.sand.E01};
|
|
82
81
|
|
|
83
82
|
.react-datepicker-time__header {
|
|
@@ -91,6 +90,7 @@ const Wrapper = styled.div `
|
|
|
91
90
|
& .react-datepicker__month,
|
|
92
91
|
.react-datepicker__time-list {
|
|
93
92
|
display: grid;
|
|
93
|
+
border-top: 1px solid ${theme.color.line.L03};
|
|
94
94
|
gap: ${getMultipliedSize(theme.base.baseWidth, 0.5)};
|
|
95
95
|
color: ${theme.color.text.gray};
|
|
96
96
|
padding: ${getMultipliedSize(theme.base.baseWidth, 0.5)}
|
|
@@ -225,30 +225,26 @@ const CurrentMonth = styled.div `
|
|
|
225
225
|
line-height: ${theme.lineHeight.default};
|
|
226
226
|
font-weight: ${theme.fontWeight.bold};
|
|
227
227
|
`;
|
|
228
|
-
const
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
div {
|
|
232
|
-
background-color: ${theme.color.background.white.default};
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
.react-datepicker-ignore-onclickoutside-lock-icon {
|
|
236
|
-
display: none;
|
|
237
|
-
}
|
|
238
|
-
`}
|
|
228
|
+
const VisuallyHiddenStatus = styled.div `
|
|
229
|
+
position: absolute;
|
|
230
|
+
left: -9999px;
|
|
239
231
|
`;
|
|
240
|
-
const DateTimePickerCustomHeader = ({ date, decreaseMonth, increaseMonth, locale, }) => (React__default.createElement(MonthSelector, null,
|
|
241
|
-
React__default.createElement(ButtonIcon, { icon: ChevronLeft, onClick: decreaseMonth }),
|
|
232
|
+
const DateTimePickerCustomHeader = ({ date, decreaseMonth, increaseMonth, locale, ariaLabelPreviousMonth, ariaLabelNextMonth, }) => (React__default.createElement(MonthSelector, null,
|
|
233
|
+
React__default.createElement(ButtonIcon, { icon: ChevronLeft, onClick: decreaseMonth, ariaLabel: ariaLabelPreviousMonth }),
|
|
242
234
|
React__default.createElement(CurrentMonth, null, sentenceCase(date.toLocaleString(locale, {
|
|
243
235
|
month: 'long',
|
|
244
236
|
year: 'numeric',
|
|
245
237
|
}))),
|
|
246
|
-
React__default.createElement(ButtonIcon, { icon: ChevronRight, onClick: increaseMonth })));
|
|
238
|
+
React__default.createElement(ButtonIcon, { icon: ChevronRight, onClick: increaseMonth, ariaLabel: ariaLabelNextMonth })));
|
|
247
239
|
/** @visibleName DateTime Picker */
|
|
248
240
|
const DateTimePicker = (_a) => {
|
|
249
|
-
var _b;
|
|
241
|
+
var _b, _c, _d;
|
|
250
242
|
var { date: startDate, locale = 'fi-FI', isDatePicker = true, isTimePicker = false, timeInterval = 30, 'data-testid': dataTestId } = _a, props = __rest(_a, ["date", "locale", "isDatePicker", "isTimePicker", "timeInterval", 'data-testid']);
|
|
251
243
|
const [showReactDatePicker, setShowReactDatePicker] = useState(false);
|
|
244
|
+
const isRange = props.endDate !== undefined;
|
|
245
|
+
const callOnChange = (date, event) => {
|
|
246
|
+
props.onChange(date, event);
|
|
247
|
+
};
|
|
252
248
|
const handleOnInputFocus = () => {
|
|
253
249
|
setShowReactDatePicker(true);
|
|
254
250
|
};
|
|
@@ -258,17 +254,41 @@ const DateTimePicker = (_a) => {
|
|
|
258
254
|
}
|
|
259
255
|
};
|
|
260
256
|
const handleOnKeyDown = (e) => {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
257
|
+
const isNavigationKey = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(e.key);
|
|
258
|
+
if (isNavigationKey && showReactDatePicker) {
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
if (e.key === 'Escape') {
|
|
262
|
+
setShowReactDatePicker(false);
|
|
263
|
+
}
|
|
264
|
+
if (e.key === 'Enter' && showReactDatePicker) {
|
|
265
|
+
setShowReactDatePicker(false);
|
|
266
|
+
}
|
|
267
|
+
if (!props.isEditable && ['Backspace', 'Delete', 'Clear'].includes(e.key)) {
|
|
268
|
+
callOnChange(null, e);
|
|
264
269
|
}
|
|
265
270
|
};
|
|
266
271
|
const handleClearable = (e) => {
|
|
267
|
-
|
|
272
|
+
callOnChange(null, e);
|
|
268
273
|
};
|
|
269
|
-
const handleOnReactDatePickerChange = (date,
|
|
270
|
-
|
|
271
|
-
|
|
274
|
+
const handleOnReactDatePickerChange = (date, event) => {
|
|
275
|
+
var _a, _b;
|
|
276
|
+
let shouldKeepOpen = false;
|
|
277
|
+
if (isRange) {
|
|
278
|
+
const [start, end] = Array.isArray(date) && date.length === 2 ? date : [null, null];
|
|
279
|
+
shouldKeepOpen = !(start && end);
|
|
280
|
+
}
|
|
281
|
+
else if (isDatePicker &&
|
|
282
|
+
isTimePicker &&
|
|
283
|
+
date instanceof Date &&
|
|
284
|
+
((_a = date.getHours) === null || _a === void 0 ? void 0 : _a.call(date)) === 0 &&
|
|
285
|
+
((_b = date.getMinutes) === null || _b === void 0 ? void 0 : _b.call(date)) === 0) {
|
|
286
|
+
shouldKeepOpen = true;
|
|
287
|
+
}
|
|
288
|
+
if (!shouldKeepOpen) {
|
|
289
|
+
setShowReactDatePicker(false);
|
|
290
|
+
}
|
|
291
|
+
callOnChange(date, event);
|
|
272
292
|
};
|
|
273
293
|
const handleOnReactDatePickerClickOutside = () => {
|
|
274
294
|
setShowReactDatePicker(false);
|
|
@@ -282,13 +302,25 @@ const DateTimePicker = (_a) => {
|
|
|
282
302
|
timeStyle: 'short',
|
|
283
303
|
}))))
|
|
284
304
|
.join(' - ');
|
|
285
|
-
const getDateTimePickerCustomHeader = (args) => DateTimePickerCustomHeader(Object.assign(Object.assign({}, args), { locale }));
|
|
305
|
+
const getDateTimePickerCustomHeader = (args) => DateTimePickerCustomHeader(Object.assign(Object.assign({}, args), { locale, ariaLabelPreviousMonth: props.ariaLabelPreviousMonth, ariaLabelNextMonth: props.ariaLabelNextMonth }));
|
|
286
306
|
return (React__default.createElement(Wrapper, { id: props.id, className: props.className, "data-testid": dataTestId },
|
|
287
|
-
React__default.createElement(
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
307
|
+
React__default.createElement(Input, { id: `datetimepicker-input-${props.id}`, name: `datetimepicker-input-${props.id}`, label: props.label, placeholder: props.placeholder, value: formatInputValue, onFocus: handleOnInputFocus, onChange: handleOnInputChange, onKeyDown: handleOnKeyDown, onClearableButtonClick: props.isClearable ? handleClearable : undefined, className: "react-datepicker-ignore-onclickoutside", "data-testid": dataTestId && `${dataTestId}-datetimepicker-input`, disabled: props.isDisabled, required: props.isRequired, readonlyUnstyled: !props.isEditable, status: props.isInError ? 'error' : undefined, errorMessage: props.errorMessage, ariaLabel: props.ariaLabelInput, onBlur: (_val, e) => {
|
|
308
|
+
if (props.isEditable && e.target.value) {
|
|
309
|
+
const parsedDate = new Date(e.target.value);
|
|
310
|
+
if (!Number.isNaN(parsedDate.getTime())) {
|
|
311
|
+
callOnChange(parsedDate, e);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
} }),
|
|
315
|
+
React__default.createElement(VisuallyHiddenStatus, { role: "status", "aria-live": "polite" }, startDate instanceof Date && !Number.isNaN(startDate.getTime())
|
|
316
|
+
? (_b = props.ariaLiveAnnouncement) === null || _b === void 0 ? void 0 : _b.replace('{{date}}', startDate.toLocaleDateString(locale))
|
|
317
|
+
: ''),
|
|
318
|
+
showReactDatePicker &&
|
|
319
|
+
(isRange ? (React__default.createElement(ReactDatePicker, { selectsRange: true, endDate: props.endDate, inline: true, selected: startDate, startDate: startDate, maxDate: props.maxDate, minDate: props.minDate, onChange: handleOnReactDatePickerChange, timeCaption: (_c = localeData[locale]) === null || _c === void 0 ? void 0 : _c.localize.timeCaption, timeIntervals: timeInterval, onClickOutside: handleOnReactDatePickerClickOutside, locale: localeData[locale], dateFormat: [isDatePicker && 'P', isTimePicker && 'p']
|
|
320
|
+
.filter(Boolean)
|
|
321
|
+
.join(''), renderCustomHeader: getDateTimePickerCustomHeader })) : (React__default.createElement(ReactDatePicker, { showTimeSelect: isTimePicker, showTimeSelectOnly: !isDatePicker && isTimePicker, inline: true, selected: startDate, startDate: startDate, maxDate: props.maxDate, minDate: props.minDate, onChange: handleOnReactDatePickerChange, timeCaption: (_d = localeData[locale]) === null || _d === void 0 ? void 0 : _d.localize.timeCaption, timeIntervals: timeInterval, onClickOutside: handleOnReactDatePickerClickOutside, locale: localeData[locale], dateFormat: [isDatePicker && 'P', isTimePicker && 'p']
|
|
322
|
+
.filter(Boolean)
|
|
323
|
+
.join(''), renderCustomHeader: getDateTimePickerCustomHeader })))));
|
|
292
324
|
};
|
|
293
325
|
|
|
294
326
|
export { DateTimePicker as default };
|
|
@@ -43,7 +43,8 @@ const BaseContainer = styled.div `
|
|
|
43
43
|
`;
|
|
44
44
|
const CategoryLinks = styled.ul `
|
|
45
45
|
display: ${({ $active }) => ($active ? 'flex' : 'none')};
|
|
46
|
-
transition:
|
|
46
|
+
transition:
|
|
47
|
+
all 0.3s ease-in-out,
|
|
47
48
|
padding 0s linear ${({ $active }) => ($active ? '0s' : '0.3s')};
|
|
48
49
|
max-height: ${({ $active }) => ($active ? '500' : '0')}px;
|
|
49
50
|
flex-direction: column;
|
|
@@ -62,7 +63,8 @@ const CategoryHeader = styled.button `
|
|
|
62
63
|
justify-content: space-between;
|
|
63
64
|
&:focus-visible {
|
|
64
65
|
outline: 1px solid transparent;
|
|
65
|
-
box-shadow:
|
|
66
|
+
box-shadow:
|
|
67
|
+
0px 0px 0px 2px ${theme.color.focus.light},
|
|
66
68
|
0px 0px 0px 4px ${theme.color.focus.dark};
|
|
67
69
|
${theme.radius.s};
|
|
68
70
|
}
|
|
@@ -308,30 +310,16 @@ const SocialMediaLinks = ({ socialMedia }) => {
|
|
|
308
310
|
return (React__default.createElement("a", { href: url, key: `social-media-link-${socialMediaKey}`, "aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : socialMediaName }, SocialIcon && React__default.createElement(SocialIcon, null)));
|
|
309
311
|
})));
|
|
310
312
|
};
|
|
311
|
-
const isNewApplicationLinks = (links) => 'appStore' in links && typeof links.appStore === 'object';
|
|
312
313
|
const ApplicationLinks = ({ applicationLinks, language, }) => {
|
|
313
|
-
var _a, _b, _c, _d, _e, _f
|
|
314
|
-
|
|
315
|
-
const { appStore, googlePlay, title } = applicationLinks;
|
|
316
|
-
return (React__default.createElement(AppSection, null,
|
|
317
|
-
React__default.createElement("p", null, title[language]),
|
|
318
|
-
React__default.createElement(AppList, null,
|
|
319
|
-
((_a = appStore.urls) === null || _a === void 0 ? void 0 : _a[language]) && (React__default.createElement("a", { "aria-label": (_b = appStore.ariaLabels) === null || _b === void 0 ? void 0 : _b[language], href: appStore.urls[language], target: "_blank", rel: "noopener noreferrer" },
|
|
320
|
-
React__default.createElement("img", { src: "https://res.cloudinary.com/dnaoyj/image/upload/dpr_2,f_auto,q_auto,w_142/v1/Assets/Icons%20and%20logos/Other%20icons/App_Store_Badge.png", alt: (_c = appStore.alts) === null || _c === void 0 ? void 0 : _c[language] }))),
|
|
321
|
-
((_d = googlePlay.urls) === null || _d === void 0 ? void 0 : _d[language]) && (React__default.createElement("a", { "aria-label": (_e = googlePlay.ariaLabels) === null || _e === void 0 ? void 0 : _e[language], href: googlePlay.urls[language], target: "_blank", rel: "noopener noreferrer" },
|
|
322
|
-
React__default.createElement("img", { src: "https://res.cloudinary.com/dnaoyj/image/upload/dpr_2,f_auto,q_auto,w_142/v1/Assets/Icons%20and%20logos/Other%20icons/Google_Play_Badge.png", alt: (_f = googlePlay.alts) === null || _f === void 0 ? void 0 : _f[language] }))))));
|
|
323
|
-
}
|
|
314
|
+
var _a, _b, _c, _d, _e, _f;
|
|
315
|
+
const { appStore, googlePlay, title } = applicationLinks;
|
|
324
316
|
return (React__default.createElement(AppSection, null,
|
|
325
|
-
React__default.createElement("p", null,
|
|
317
|
+
React__default.createElement("p", null, title[language]),
|
|
326
318
|
React__default.createElement(AppList, null,
|
|
327
|
-
((
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
React__default.createElement("img", { src: "https://res.cloudinary.com/dnaoyj/image/upload/dpr_2,f_auto,q_auto,w_142/v1/Assets/Icons%20and%20logos/Other%20icons/
|
|
331
|
-
((_h = applicationLinks.googlePlayURL) === null || _h === void 0 ? void 0 : _h[language]) && (React__default.createElement("a", { "aria-label": language === 'fi'
|
|
332
|
-
? 'Lataa sovellus Google Playstä'
|
|
333
|
-
: 'Download from Google Play', href: applicationLinks.googlePlayURL[language], target: "_blank", rel: "noopener noreferrer" },
|
|
334
|
-
React__default.createElement("img", { src: "https://res.cloudinary.com/dnaoyj/image/upload/dpr_2,f_auto,q_auto,w_142/v1/Assets/Icons%20and%20logos/Other%20icons/Google_Play_Badge.png", alt: "" }))))));
|
|
319
|
+
((_a = appStore.urls) === null || _a === void 0 ? void 0 : _a[language]) && (React__default.createElement("a", { "aria-label": (_b = appStore.ariaLabels) === null || _b === void 0 ? void 0 : _b[language], href: appStore.urls[language], target: "_blank", rel: "noopener noreferrer" },
|
|
320
|
+
React__default.createElement("img", { src: "https://res.cloudinary.com/dnaoyj/image/upload/dpr_2,f_auto,q_auto,w_142/v1/Assets/Icons%20and%20logos/Other%20icons/App_Store_Badge.png", alt: (_c = appStore.alts) === null || _c === void 0 ? void 0 : _c[language] }))),
|
|
321
|
+
((_d = googlePlay.urls) === null || _d === void 0 ? void 0 : _d[language]) && (React__default.createElement("a", { "aria-label": (_e = googlePlay.ariaLabels) === null || _e === void 0 ? void 0 : _e[language], href: googlePlay.urls[language], target: "_blank", rel: "noopener noreferrer" },
|
|
322
|
+
React__default.createElement("img", { src: "https://res.cloudinary.com/dnaoyj/image/upload/dpr_2,f_auto,q_auto,w_142/v1/Assets/Icons%20and%20logos/Other%20icons/Google_Play_Badge.png", alt: (_f = googlePlay.alts) === null || _f === void 0 ? void 0 : _f[language] }))))));
|
|
335
323
|
};
|
|
336
324
|
const BottomSection = ({ items }) => {
|
|
337
325
|
const { applicationLinks, businessSelector, customLinks, generalInformation, languageSelector, socialMedia, } = items.footerNavigation;
|
|
@@ -21,7 +21,8 @@ const FooterContainer = styled.footer `
|
|
|
21
21
|
&:focus-visible {
|
|
22
22
|
text-decoration: none;
|
|
23
23
|
outline: 1px solid transparent;
|
|
24
|
-
box-shadow:
|
|
24
|
+
box-shadow:
|
|
25
|
+
0px 0px 0px 2px ${theme.color.focus.light},
|
|
25
26
|
0px 0px 0px 4px ${theme.color.focus.dark};
|
|
26
27
|
&:not(.menu-link):not(${LangLink}) {
|
|
27
28
|
${theme.radius.s};
|
|
@@ -102,6 +102,12 @@ interface Props {
|
|
|
102
102
|
* @default false
|
|
103
103
|
*/
|
|
104
104
|
readonly?: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Allows to set input as readonly without any styles applied
|
|
107
|
+
*
|
|
108
|
+
* @default false
|
|
109
|
+
*/
|
|
110
|
+
readonlyUnstyled?: boolean;
|
|
105
111
|
/**
|
|
106
112
|
* Allows to set input as mandatory
|
|
107
113
|
*
|
|
@@ -148,6 +154,6 @@ interface Props {
|
|
|
148
154
|
*/
|
|
149
155
|
'data-testid'?: string;
|
|
150
156
|
}
|
|
151
|
-
declare const Input:
|
|
157
|
+
declare const Input: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLInputElement>>;
|
|
152
158
|
/** @component */
|
|
153
159
|
export default Input;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __rest } from 'tslib';
|
|
2
2
|
import { EyeOpen, EyeClosed, Lock, Close, Check, Error } from '@dnanpm/icons';
|
|
3
|
-
import React__default, {
|
|
3
|
+
import React__default, { forwardRef, useState } from 'react';
|
|
4
4
|
import { styled } from 'styled-components';
|
|
5
5
|
import theme from '../../themes/theme.js';
|
|
6
6
|
import { getMultipliedSize, getDividedSize } from '../../utils/styledUtils.js';
|
|
@@ -121,16 +121,10 @@ const ErrorMessage = styled(Message) `
|
|
|
121
121
|
font-weight: ${theme.fontWeight.medium};
|
|
122
122
|
color: ${theme.color.notification.error};
|
|
123
123
|
`;
|
|
124
|
-
const Input = (_a) => {
|
|
124
|
+
const Input = forwardRef((_a, ref) => {
|
|
125
125
|
var _b;
|
|
126
126
|
var { type = 'text', 'data-testid': dataTestId } = _a, props = __rest(_a, ["type", 'data-testid']);
|
|
127
|
-
const inputRef = useRef(null);
|
|
128
127
|
const [showPassword, setShowPassword] = useState(false);
|
|
129
|
-
useEffect(() => {
|
|
130
|
-
if (props.showPasswordToggle && inputRef && inputRef.current) {
|
|
131
|
-
inputRef.current.type = showPassword ? 'text' : 'password';
|
|
132
|
-
}
|
|
133
|
-
}, [showPassword, props.showPasswordToggle]);
|
|
134
128
|
const togglePasswordVisibility = () => {
|
|
135
129
|
if (props.showPasswordToggle && !props.disabled) {
|
|
136
130
|
setShowPassword(!showPassword);
|
|
@@ -148,9 +142,7 @@ const Input = (_a) => {
|
|
|
148
142
|
};
|
|
149
143
|
const onClick = (e) => {
|
|
150
144
|
e.preventDefault();
|
|
151
|
-
|
|
152
|
-
inputRef.current.focus();
|
|
153
|
-
}
|
|
145
|
+
e.currentTarget.focus();
|
|
154
146
|
};
|
|
155
147
|
const getDescribedBy = () => {
|
|
156
148
|
if (props.status === 'error' && props.errorMessage) {
|
|
@@ -161,24 +153,32 @@ const Input = (_a) => {
|
|
|
161
153
|
}
|
|
162
154
|
return undefined;
|
|
163
155
|
};
|
|
164
|
-
|
|
156
|
+
const getInputType = () => {
|
|
157
|
+
if (props.showPasswordToggle) {
|
|
158
|
+
return showPassword ? 'text' : 'password';
|
|
159
|
+
}
|
|
160
|
+
return type;
|
|
161
|
+
};
|
|
162
|
+
const inputType = getInputType();
|
|
163
|
+
return (React__default.createElement(FieldContainer, { className: props.className, "data-testid": dataTestId && `${dataTestId}-container` },
|
|
165
164
|
props.label && (React__default.createElement(LabelText, { htmlFor: props.id, "data-testid": dataTestId && `${dataTestId}-label`, status: props.status === 'error' ? props.status : undefined, isMandatory: props.required }, props.label)),
|
|
166
|
-
React__default.createElement(FieldWrapper, { "$status": props.status, "$type":
|
|
167
|
-
React__default.createElement(StyledInput, { id: props.id, name: props.name, type:
|
|
165
|
+
React__default.createElement(FieldWrapper, { "$status": props.status, "$type": inputType, "$disabled": props.disabled, "$readonly": props.readonly && !props.readonlyUnstyled },
|
|
166
|
+
React__default.createElement(StyledInput, { id: props.id, name: props.name, type: inputType, value: props.value, placeholder: props.placeholder, onChange: handleChange, onBlur: handleOnBlur, onFocus: props.onFocus, onClick: onClick, onKeyDown: props.onKeyDown, onKeyPress: props.onKeyPress, required: props.required, disabled: props.disabled, autoComplete: props.autocomplete, "aria-disabled": props.disabled, "aria-readonly": props.readonly || props.readonlyUnstyled || undefined, "aria-label": !props.label ? ((_b = props.ariaLabel) !== null && _b !== void 0 ? _b : props.id) : undefined, ref: ref, tabIndex: props.tabIndex, "aria-describedby": getDescribedBy(), "data-testid": dataTestId, readOnly: props.readonly || props.readonlyUnstyled }),
|
|
168
167
|
((props.status && props.status !== 'comment') ||
|
|
169
168
|
props.showPasswordToggle ||
|
|
170
169
|
props.disabled ||
|
|
171
170
|
props.readonly ||
|
|
171
|
+
props.readonlyUnstyled ||
|
|
172
172
|
props.onClearableButtonClick) && (React__default.createElement(IconWrapper, null,
|
|
173
173
|
props.showPasswordToggle && (React__default.createElement(StyledButtonIcon, { icon: showPassword ? EyeOpen : EyeClosed, onClick: togglePasswordVisibility, ariaLabel: props.passwordToggleLabel })),
|
|
174
174
|
(props.status === 'success' || props.status === 'error') && (React__default.createElement(Icon, { "aria-hidden": true, icon: iconsMap[props.status], color: theme.color.notification[props.status] })),
|
|
175
|
-
(props.disabled || props.readonly) && (React__default.createElement(Icon, { "aria-hidden": true, icon: Lock, className: props.className && `${props.className}-lock-icon` })),
|
|
175
|
+
(props.disabled || (props.readonly && !props.readonlyUnstyled)) && (React__default.createElement(Icon, { "aria-hidden": true, icon: Lock, className: props.className && `${props.className}-lock-icon` })),
|
|
176
176
|
props.onClearableButtonClick &&
|
|
177
177
|
Boolean(props.value) &&
|
|
178
178
|
!props.disabled &&
|
|
179
|
-
!props.readonly && (React__default.createElement(ButtonIcon, { icon: Close, onClick: props.onClearableButtonClick, ariaLabel: props.clearButtonLabel }))))),
|
|
179
|
+
(!props.readonly || props.readonlyUnstyled) && (React__default.createElement(ButtonIcon, { icon: Close, onClick: props.onClearableButtonClick, ariaLabel: props.clearButtonLabel }))))),
|
|
180
180
|
props.status === 'error' && props.errorMessage && (React__default.createElement(ErrorMessage, { id: `${props.id}-error`, "data-testid": dataTestId && `${dataTestId}-error` }, props.errorMessage)),
|
|
181
181
|
props.status === 'comment' && props.commentMessage && (React__default.createElement(Message, { id: `${props.id}-comment`, "data-testid": dataTestId && `${dataTestId}-comment` }, props.commentMessage))));
|
|
182
|
-
};
|
|
182
|
+
});
|
|
183
183
|
|
|
184
184
|
export { Input as default };
|
|
@@ -65,8 +65,8 @@ const CategoryCollectionBlock = styled(CategoryBlock) `
|
|
|
65
65
|
`;
|
|
66
66
|
const SubMenuItem = styled.li `
|
|
67
67
|
> a {
|
|
68
|
-
color: ${p => (p
|
|
69
|
-
font-weight: ${p => (p
|
|
68
|
+
color: ${p => (p.$isHighlighted ? theme.color.text.pink : theme.color.text.black)};
|
|
69
|
+
font-weight: ${p => (p.$isHighlighted ? theme.fontWeight.bold : theme.fontWeight.book)};
|
|
70
70
|
}
|
|
71
71
|
`;
|
|
72
72
|
const DesktopMenuItem = styled(MenuItem) `
|
|
@@ -89,7 +89,7 @@ const DesktopMenuItem = styled(MenuItem) `
|
|
|
89
89
|
bottom: -22px;
|
|
90
90
|
left: 0;
|
|
91
91
|
border-bottom: 2px solid
|
|
92
|
-
${p => (p
|
|
92
|
+
${p => (p.$isActive ? theme.color.default.pink : 'transparent')};
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
}
|
|
@@ -100,9 +100,9 @@ const SubMenuList = styled.div `
|
|
|
100
100
|
top: ${navMaxHeight};
|
|
101
101
|
left: 0;
|
|
102
102
|
right: 0;
|
|
103
|
-
display: ${({ menuStates, navItemId }) => (menuStates === null || menuStates === void 0 ? void 0 : menuStates.level1) === navItemId ? 'block' : 'none'};
|
|
104
|
-
z-index: ${({ navZIndex }) => navZIndex + 1};
|
|
105
|
-
${({ menuStates }) => menuStates.level1 && menuStates.animate2 &&
|
|
103
|
+
display: ${({ $menuStates, $navItemId }) => ($menuStates === null || $menuStates === void 0 ? void 0 : $menuStates.level1) === $navItemId ? 'block' : 'none'};
|
|
104
|
+
z-index: ${({ $navZIndex }) => $navZIndex + 1};
|
|
105
|
+
${({ $menuStates }) => $menuStates.level1 && $menuStates.animate2 && !$menuStates.level2
|
|
106
106
|
? fadeInAnimation
|
|
107
107
|
: noAnimation};
|
|
108
108
|
background-color: ${theme.color.background.white.default};
|
|
@@ -115,16 +115,16 @@ const SubMenuList = styled.div `
|
|
|
115
115
|
}
|
|
116
116
|
`;
|
|
117
117
|
const SubMenuLevel1 = ({ menuItem }) => {
|
|
118
|
-
const { categoryCollectionText, collapseSize, currentUrl, lang, menuLevel, navZIndex } = useContext(NavContext);
|
|
118
|
+
const { categoryCollectionText, collapseSize, currentUrl, featuredItemsAriaLabel, lang, menuLevel, navZIndex, } = useContext(NavContext);
|
|
119
119
|
const level1HasElements = !!menuItem.pages.length;
|
|
120
120
|
const pagesWithSubItems = menuItem.pages.filter(element => element.pages.length > 0);
|
|
121
121
|
// Helper function to render a sub menu item
|
|
122
|
-
const renderSubMenuItem = (element, index, currUrl) => (React__default.createElement(SubMenuItem, { key: element.id, isHighlighted: isSelected(currUrl, element.urls[lang], true), "data-testid": `desktop-nav-item-level-2-${index + 1}` },
|
|
122
|
+
const renderSubMenuItem = (element, index, currUrl) => (React__default.createElement(SubMenuItem, { key: element.id, "$isHighlighted": isSelected(currUrl, element.urls[lang], true), "data-testid": `desktop-nav-item-level-2-${index + 1}` },
|
|
123
123
|
React__default.createElement(LinkModifier, { menuItem: element, disabledTabIndex: false })));
|
|
124
124
|
if (!level1HasElements) {
|
|
125
125
|
return null;
|
|
126
126
|
}
|
|
127
|
-
return (React__default.createElement(SubMenuList, { "aria-hidden": false, menuStates: menuLevel, navItemId: menuItem.id, navZIndex: navZIndex },
|
|
127
|
+
return (React__default.createElement(SubMenuList, { "aria-hidden": false, "$menuStates": menuLevel, "$navItemId": menuItem.id, "$navZIndex": navZIndex },
|
|
128
128
|
React__default.createElement(MegaMenuContent, { "aria-labelledby": `menu-id-${menuItem.id}` },
|
|
129
129
|
pagesWithSubItems.slice(0, 5).map(element => (React__default.createElement(CategoryBlock, { key: element.id },
|
|
130
130
|
React__default.createElement(CategoryTitle, { id: `menu-id-${element.id}` }, element.titles[lang]),
|
|
@@ -134,7 +134,7 @@ const SubMenuLevel1 = ({ menuItem }) => {
|
|
|
134
134
|
React__default.createElement("ul", { "aria-labelledby": "misc-categories", "data-testid": "desktop-nav-menu-ul-level-2" }, pagesWithSubItems
|
|
135
135
|
.slice(5)
|
|
136
136
|
.map((element, index) => renderSubMenuItem(element, index, currentUrl))))),
|
|
137
|
-
React__default.createElement(FeaturedBlock, { collapseSize: collapseSize, "data-testid": "desktop-nav-menu-level-2-featured" }, menuItem.pages.map(element => element.pages.length ? null : (React__default.createElement(LinkModifier, { key: element.id, showIcon: true, menuItem: element, disabledTabIndex: false })))))));
|
|
137
|
+
React__default.createElement(FeaturedBlock, { "$collapseSize": collapseSize, "data-testid": "desktop-nav-menu-level-2-featured" }, menuItem.pages.some(element => !element.pages.length) && (React__default.createElement("section", { "aria-label": featuredItemsAriaLabel }, menuItem.pages.map(element => element.pages.length ? null : (React__default.createElement(LinkModifier, { key: element.id, showIcon: true, menuItem: element, disabledTabIndex: false })))))))));
|
|
138
138
|
};
|
|
139
139
|
const MenuItemWithChildren = ({ menuItem, currentLevel }) => {
|
|
140
140
|
const { lang, handleNavMenuClick, currentUrl, menuLevel } = useContext(NavContext);
|
|
@@ -143,8 +143,8 @@ const MenuItemWithChildren = ({ menuItem, currentLevel }) => {
|
|
|
143
143
|
e.preventDefault();
|
|
144
144
|
handleNavMenuClick(element.id, 'level1');
|
|
145
145
|
};
|
|
146
|
-
return (React__default.createElement(DesktopMenuItem, { isActive: isSelected(currentUrl, linkUrl), "data-testid": `desktop-nav-item-level-1-${currentLevel + 1}` },
|
|
147
|
-
React__default.createElement(MenuLinkWithChildren, { isOpen: menuLevel.level1 === menuItem.id, onClick: menuClickMain(menuItem), "data-testid": "menu-button-with-children", "aria-current": isSelected(currentUrl, linkUrl) ? 'true' : undefined, "aria-expanded": menuLevel.level1 === menuItem.id, href: linkUrl },
|
|
146
|
+
return (React__default.createElement(DesktopMenuItem, { "$isActive": isSelected(currentUrl, linkUrl), "data-testid": `desktop-nav-item-level-1-${currentLevel + 1}` },
|
|
147
|
+
React__default.createElement(MenuLinkWithChildren, { "$isOpen": menuLevel.level1 === menuItem.id, onClick: menuClickMain(menuItem), "data-testid": "menu-button-with-children", "aria-current": isSelected(currentUrl, linkUrl) ? 'true' : undefined, "aria-expanded": menuLevel.level1 === menuItem.id, href: linkUrl },
|
|
148
148
|
React__default.createElement("span", { id: `menu-id-${menuItem.id}` }, menuItem.titles[lang]),
|
|
149
149
|
React__default.createElement(ChevronRight, { size: "1rem" })),
|
|
150
150
|
React__default.createElement(SubMenuLevel1, { menuItem: menuItem })));
|
|
@@ -167,7 +167,7 @@ const DesktopMenu = () => {
|
|
|
167
167
|
if (displaySubMenu) {
|
|
168
168
|
return (React__default.createElement(MenuItemWithChildren, { currentLevel: index, key: navElement.id, menuItem: navElement }));
|
|
169
169
|
}
|
|
170
|
-
return (React__default.createElement(DesktopMenuItem, { "data-testid": `desktop-nav-item-level-1-${index + 1}`, isActive: isSelected(currentUrl, navElement.urls[lang]), key: navElement.id },
|
|
170
|
+
return (React__default.createElement(DesktopMenuItem, { "data-testid": `desktop-nav-item-level-1-${index + 1}`, "$isActive": isSelected(currentUrl, navElement.urls[lang]), key: navElement.id },
|
|
171
171
|
React__default.createElement(LinkModifier, { menuItem: navElement, disabledTabIndex: false })));
|
|
172
172
|
})));
|
|
173
173
|
};
|
|
@@ -24,8 +24,8 @@ interface MainNavTooltipMenuProps<ContentProps extends object = object> extends
|
|
|
24
24
|
fullWidthBreakpoint?: number;
|
|
25
25
|
}
|
|
26
26
|
export declare const IconContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
27
|
-
isActive?: boolean;
|
|
28
|
-
collapseSize: number;
|
|
27
|
+
$isActive?: boolean;
|
|
28
|
+
$collapseSize: number;
|
|
29
29
|
}>> & string;
|
|
30
30
|
declare const MainNavTooltipMenu: <ContentProps extends object = object>({ ariaLabel, children, closeWhenTagClicked, contentComponent, contentWidth, fullWidthBreakpoint, fullWidthDesktop, globalStateString, tooltipRight, zIndex, ...props }: MainNavTooltipMenuProps<ContentProps>) => React.JSX.Element;
|
|
31
31
|
export default MainNavTooltipMenu;
|
|
@@ -27,10 +27,10 @@ const IconContainer = styled.div `
|
|
|
27
27
|
}
|
|
28
28
|
> svg,
|
|
29
29
|
+ span {
|
|
30
|
-
color: ${p => (p
|
|
30
|
+
color: ${p => (p.$isActive ? theme.color.text.pink : 'inherit')};
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
@media (min-width: ${p => p
|
|
33
|
+
@media (min-width: ${p => p.$collapseSize + 1}px) {
|
|
34
34
|
min-width: ${getMultipliedSize(theme.base.baseWidth, 6)};
|
|
35
35
|
+ span {
|
|
36
36
|
display: block;
|
|
@@ -45,13 +45,13 @@ const Tooltip = styled.div `
|
|
|
45
45
|
position: absolute;
|
|
46
46
|
right: 0;
|
|
47
47
|
top: ${navMaxHeight};
|
|
48
|
-
z-index: ${p => p
|
|
48
|
+
z-index: ${p => p.$zIndex};
|
|
49
49
|
display: flex;
|
|
50
50
|
flex-direction: row;
|
|
51
51
|
|
|
52
|
-
@media (min-width: ${p => p
|
|
53
|
-
width: ${p => p
|
|
54
|
-
right: ${p => (p
|
|
52
|
+
@media (min-width: ${p => p.$fullWidthBreakpoint}px) {
|
|
53
|
+
width: ${p => p.$contentWidth};
|
|
54
|
+
right: ${p => (p.$fullWidthDesktop ? 0 : p.$tooltipRight)};
|
|
55
55
|
}
|
|
56
56
|
`;
|
|
57
57
|
const TooltipBox = styled(Box) `
|
|
@@ -62,7 +62,7 @@ const TooltipBox = styled(Box) `
|
|
|
62
62
|
`;
|
|
63
63
|
const Caret = styled.div `
|
|
64
64
|
position: absolute;
|
|
65
|
-
z-index: ${p => p
|
|
65
|
+
z-index: ${p => p.$zIndex + 1};
|
|
66
66
|
top: ${navMaxHeight};
|
|
67
67
|
transform: translate3d(50%, -50%, 0) rotate(-45deg);
|
|
68
68
|
width: ${getMultipliedSize(theme.base.baseWidth, 1.2)};
|
|
@@ -72,7 +72,7 @@ const Caret = styled.div `
|
|
|
72
72
|
border-width: 1px 1px 0 0;
|
|
73
73
|
margin-left: -${getMultipliedSize(theme.base.baseWidth, 1)};
|
|
74
74
|
|
|
75
|
-
@media (min-width: ${p => p
|
|
75
|
+
@media (min-width: ${p => p.$collapseSize + 1}px) {
|
|
76
76
|
max-height: calc(var(--vh100, 100vh) - ${navMaxHeight});
|
|
77
77
|
}
|
|
78
78
|
`;
|
|
@@ -102,11 +102,11 @@ const MainNavTooltipMenu = (_a) => {
|
|
|
102
102
|
setTooltipItems(prevItems => (Object.assign(Object.assign({}, prevItems), { [globalStateKey]: false })));
|
|
103
103
|
}
|
|
104
104
|
});
|
|
105
|
-
return (React__default.createElement(IconContainer, { "data-testid": `header-${globalStateKey}-container`, collapseSize: collapseSize, ref: ref },
|
|
106
|
-
globalStateKey === 'login' && !isLoggedIn ? (React__default.createElement(ButtonPrimary, { onClick: ContentComponent ? toggleState : undefined, small: true }, children)) : (React__default.createElement(TooltipWrapper, { "aria-label": ariaLabel, "aria-expanded": tooltipItems[globalStateKey], isLoggedIn: isLoginItemAndLoggedIn, collapseSize: collapseSize, isHighlighted: tooltipItems[globalStateKey] || isLoginItemAndLoggedIn, onClick: props.onCartButtonClick || (ContentComponent ? toggleState : undefined) }, children)),
|
|
105
|
+
return (React__default.createElement(IconContainer, { "data-testid": `header-${globalStateKey}-container`, "$collapseSize": collapseSize, ref: ref },
|
|
106
|
+
globalStateKey === 'login' && !isLoggedIn ? (React__default.createElement(ButtonPrimary, { onClick: ContentComponent ? toggleState : undefined, small: true }, children)) : (React__default.createElement(TooltipWrapper, { "aria-label": ariaLabel, "aria-expanded": tooltipItems[globalStateKey], "$isLoggedIn": isLoginItemAndLoggedIn, "$collapseSize": collapseSize, "$isHighlighted": tooltipItems[globalStateKey] || isLoginItemAndLoggedIn, onClick: props.onCartButtonClick || (ContentComponent ? toggleState : undefined) }, children)),
|
|
107
107
|
tooltipItems[globalStateKey] && ContentComponent && (React__default.createElement(React__default.Fragment, null,
|
|
108
|
-
React__default.createElement(Caret, { zIndex: zIndex, collapseSize: collapseSize }),
|
|
109
|
-
React__default.createElement(Tooltip, { zIndex: zIndex, tooltipRight: tooltipRight, contentWidth: contentWidth, collapseSize: collapseSize, fullWidthDesktop: fullWidthDesktop, fullWidthBreakpoint: fullWidthBreakpoint },
|
|
108
|
+
React__default.createElement(Caret, { "$zIndex": zIndex, "$collapseSize": collapseSize }),
|
|
109
|
+
React__default.createElement(Tooltip, { "$zIndex": zIndex, "$tooltipRight": tooltipRight, "$contentWidth": contentWidth, "$collapseSize": collapseSize, "$fullWidthDesktop": fullWidthDesktop, "$fullWidthBreakpoint": fullWidthBreakpoint },
|
|
110
110
|
React__default.createElement(TooltipBox, { elevation: "high", padding: "0", width: "100%" },
|
|
111
111
|
React__default.createElement(ContentComponent, { mobileView: isMobileMenu })))))));
|
|
112
112
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
declare const TooltipWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
|
|
2
|
-
collapseSize: number;
|
|
3
|
-
isHighlighted?: boolean;
|
|
4
|
-
isLoggedIn?: boolean;
|
|
2
|
+
$collapseSize: number;
|
|
3
|
+
$isHighlighted?: boolean;
|
|
4
|
+
$isLoggedIn?: boolean;
|
|
5
5
|
}>> & string;
|
|
6
6
|
export default TooltipWrapper;
|
|
7
7
|
export { TooltipWrapper };
|