@dxc-technology/halstack-react 0.0.0-099fc65 → 0.0.0-0a9608a
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/BackgroundColorContext.d.ts +10 -0
- package/BackgroundColorContext.js +1 -4
- package/HalstackContext.d.ts +12 -0
- package/HalstackContext.js +294 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +119 -138
- package/accordion/Accordion.stories.tsx +346 -0
- package/accordion/Accordion.test.js +71 -0
- package/accordion/types.d.ts +12 -11
- package/accordion-group/AccordionGroup.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +16 -37
- package/accordion-group/AccordionGroup.stories.tsx +28 -2
- package/accordion-group/AccordionGroup.test.js +126 -0
- package/accordion-group/types.d.ts +17 -10
- package/alert/Alert.js +7 -4
- package/alert/Alert.test.js +92 -0
- package/badge/Badge.d.ts +4 -0
- package/badge/Badge.js +6 -4
- package/badge/types.d.ts +5 -0
- package/{radio → badge}/types.js +0 -0
- package/bleed/Bleed.d.ts +3 -0
- package/bleed/Bleed.js +51 -0
- package/bleed/Bleed.stories.tsx +341 -0
- package/bleed/types.d.ts +37 -0
- package/bleed/types.js +5 -0
- package/box/Box.js +25 -35
- package/box/Box.test.js +18 -0
- package/box/types.d.ts +1 -0
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +123 -0
- package/bulleted-list/BulletedList.stories.tsx +200 -0
- package/bulleted-list/types.d.ts +11 -0
- package/bulleted-list/types.js +5 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +56 -81
- package/button/Button.stories.tsx +72 -8
- package/button/Button.test.js +35 -0
- package/button/types.d.ts +8 -12
- package/card/Card.js +25 -28
- package/card/Card.stories.tsx +1 -1
- package/card/Card.test.js +50 -0
- package/card/types.d.ts +1 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +108 -111
- package/checkbox/Checkbox.stories.tsx +146 -130
- package/checkbox/Checkbox.test.js +155 -0
- package/checkbox/types.d.ts +14 -6
- package/chip/Chip.d.ts +1 -1
- package/chip/Chip.js +20 -70
- package/chip/Chip.stories.tsx +44 -14
- package/chip/Chip.test.js +56 -0
- package/chip/types.d.ts +7 -15
- package/common/variables.js +398 -464
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +246 -0
- package/date-input/DateInput.js +174 -266
- package/date-input/DateInput.stories.tsx +137 -38
- package/date-input/DateInput.test.js +835 -0
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +132 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +75 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +116 -0
- package/date-input/types.d.ts +67 -9
- package/dialog/Dialog.js +50 -53
- package/dialog/Dialog.stories.tsx +57 -2
- package/dialog/Dialog.test.js +70 -0
- package/dialog/types.d.ts +3 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +248 -277
- package/dropdown/Dropdown.stories.tsx +393 -0
- package/dropdown/Dropdown.test.js +585 -0
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +70 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +81 -0
- package/dropdown/types.d.ts +29 -18
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +177 -137
- package/file-input/FileInput.stories.tsx +535 -0
- package/file-input/FileInput.test.js +498 -0
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +45 -68
- package/file-input/types.d.ts +49 -7
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +69 -0
- package/flex/Flex.stories.tsx +103 -0
- package/flex/types.d.ts +32 -0
- package/flex/types.js +5 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +32 -113
- package/footer/{Footer.stories.jsx → Footer.stories.tsx} +5 -19
- package/footer/Footer.test.js +109 -0
- package/footer/Icons.d.ts +2 -0
- package/footer/Icons.js +4 -4
- package/footer/types.d.ts +6 -9
- package/header/Header.js +109 -130
- package/header/Header.stories.tsx +78 -35
- package/header/Header.test.js +79 -0
- package/header/Icons.d.ts +2 -0
- package/header/Icons.js +2 -2
- package/header/types.d.ts +3 -2
- package/heading/Heading.js +1 -1
- package/heading/Heading.stories.tsx +3 -2
- package/heading/Heading.test.js +186 -0
- package/inset/Inset.d.ts +3 -0
- package/inset/Inset.js +51 -0
- package/inset/Inset.stories.tsx +229 -0
- package/inset/types.d.ts +37 -0
- package/inset/types.js +5 -0
- package/layout/ApplicationLayout.d.ts +20 -0
- package/layout/ApplicationLayout.js +71 -135
- package/layout/ApplicationLayout.stories.tsx +162 -0
- package/layout/Icons.d.ts +5 -0
- package/layout/Icons.js +13 -2
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +19 -0
- package/layout/types.d.ts +42 -0
- package/layout/types.js +5 -0
- package/link/Link.d.ts +3 -2
- package/link/Link.js +62 -87
- package/link/Link.stories.tsx +99 -52
- package/link/Link.test.js +83 -0
- package/link/types.d.ts +9 -29
- package/main.d.ts +12 -12
- package/main.js +64 -58
- package/number-input/NumberInput.js +14 -24
- package/number-input/NumberInput.stories.tsx +5 -5
- package/number-input/NumberInput.test.js +542 -0
- package/number-input/types.d.ts +17 -10
- package/package.json +21 -22
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +21 -54
- package/paginator/Paginator.test.js +315 -0
- package/paragraph/Paragraph.d.ts +6 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/PasswordInput.js +19 -17
- package/password-input/PasswordInput.stories.tsx +3 -3
- package/password-input/PasswordInput.test.js +181 -0
- package/password-input/types.d.ts +14 -11
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +59 -53
- package/progress-bar/ProgressBar.stories.jsx +13 -11
- package/progress-bar/ProgressBar.test.js +110 -0
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +117 -0
- package/quick-nav/QuickNav.stories.tsx +342 -0
- package/quick-nav/types.d.ts +21 -0
- package/quick-nav/types.js +5 -0
- package/radio-group/Radio.d.ts +4 -0
- package/radio-group/Radio.js +156 -0
- package/radio-group/RadioGroup.d.ts +4 -0
- package/radio-group/RadioGroup.js +283 -0
- package/radio-group/RadioGroup.stories.tsx +101 -0
- package/radio-group/RadioGroup.test.js +722 -0
- package/radio-group/types.d.ts +114 -0
- package/radio-group/types.js +5 -0
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.js +50 -106
- package/resultsetTable/ResultsetTable.stories.tsx +300 -0
- package/resultsetTable/ResultsetTable.test.js +325 -0
- package/resultsetTable/types.d.ts +3 -3
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +93 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +169 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +97 -0
- package/select/Select.d.ts +4 -0
- package/select/Select.js +196 -397
- package/select/Select.stories.tsx +317 -220
- package/select/Select.test.js +2228 -0
- package/select/types.d.ts +210 -0
- package/select/types.js +5 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +184 -54
- package/sidenav/Sidenav.stories.tsx +163 -139
- package/sidenav/Sidenav.test.js +44 -0
- package/sidenav/types.d.ts +50 -27
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +124 -98
- package/slider/Slider.stories.tsx +15 -9
- package/slider/Slider.test.js +250 -0
- package/slider/types.d.ts +10 -2
- package/spinner/Spinner.js +5 -5
- package/spinner/Spinner.stories.jsx +1 -0
- package/spinner/Spinner.test.js +64 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +152 -69
- package/switch/Switch.stories.tsx +21 -43
- package/switch/Switch.test.js +225 -0
- package/switch/types.d.ts +12 -4
- package/table/Table.js +3 -3
- package/table/Table.stories.jsx +2 -1
- package/table/Table.test.js +26 -0
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +133 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +364 -110
- package/tabs/Tabs.stories.tsx +84 -17
- package/tabs/Tabs.test.js +351 -0
- package/tabs/types.d.ts +39 -17
- package/tabs-nav/NavTabs.d.ts +8 -0
- package/tabs-nav/NavTabs.js +125 -0
- package/tabs-nav/NavTabs.stories.tsx +172 -0
- package/tabs-nav/NavTabs.test.js +82 -0
- package/tabs-nav/Tab.d.ts +4 -0
- package/tabs-nav/Tab.js +128 -0
- package/tabs-nav/types.d.ts +53 -0
- package/tabs-nav/types.js +5 -0
- package/tag/Tag.d.ts +1 -1
- package/tag/Tag.js +19 -29
- package/tag/Tag.stories.tsx +26 -29
- package/tag/Tag.test.js +60 -0
- package/tag/types.d.ts +23 -14
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +60 -0
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +84 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +229 -342
- package/text-input/TextInput.stories.tsx +241 -196
- package/text-input/TextInput.test.js +1724 -0
- package/text-input/types.d.ts +51 -13
- package/textarea/Textarea.d.ts +4 -0
- package/textarea/Textarea.js +34 -73
- package/textarea/Textarea.stories.jsx +37 -15
- package/textarea/Textarea.test.js +437 -0
- package/textarea/types.d.ts +137 -0
- package/textarea/types.js +5 -0
- package/toggle-group/ToggleGroup.d.ts +1 -1
- package/toggle-group/ToggleGroup.js +15 -17
- package/toggle-group/ToggleGroup.stories.tsx +27 -32
- package/toggle-group/ToggleGroup.test.js +156 -0
- package/toggle-group/types.d.ts +46 -25
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +131 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.d.ts +2 -0
- package/useTheme.js +2 -2
- package/useTranslatedLabels.d.ts +2 -0
- package/useTranslatedLabels.js +20 -0
- package/wizard/Wizard.d.ts +1 -1
- package/wizard/Wizard.js +112 -58
- package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +33 -24
- package/wizard/Wizard.test.js +141 -0
- package/wizard/types.d.ts +12 -11
- package/ThemeContext.js +0 -246
- package/V3Select/V3Select.js +0 -455
- package/V3Select/index.d.ts +0 -27
- package/V3Textarea/V3Textarea.js +0 -260
- package/V3Textarea/index.d.ts +0 -27
- package/common/RequiredComponent.js +0 -32
- package/date/Date.js +0 -373
- package/date/index.d.ts +0 -27
- package/input-text/Icons.js +0 -22
- package/input-text/InputText.js +0 -611
- package/input-text/index.d.ts +0 -36
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/types.d.ts +0 -54
- package/select/index.d.ts +0 -131
- package/textarea/index.d.ts +0 -127
- package/toggle/Toggle.js +0 -186
- package/toggle/index.d.ts +0 -21
- package/upload/Upload.js +0 -201
- package/upload/buttons-upload/ButtonsUpload.js +0 -111
- package/upload/buttons-upload/Icons.js +0 -40
- package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
- package/upload/dragAndDropArea/Icons.js +0 -39
- package/upload/file-upload/FileToUpload.js +0 -115
- package/upload/file-upload/Icons.js +0 -66
- package/upload/files-upload/FilesToUpload.js +0 -109
- package/upload/index.d.ts +0 -15
- package/upload/transaction/Icons.js +0 -160
- package/upload/transaction/Transaction.js +0 -104
- package/upload/transactions/Transactions.js +0 -94
- package/wizard/Icons.js +0 -65
package/header/Header.js
CHANGED
|
@@ -19,17 +19,17 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
19
19
|
|
|
20
20
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
21
|
|
|
22
|
-
var _AppBar = _interopRequireDefault(require("@material-ui/core/AppBar"));
|
|
23
|
-
|
|
24
22
|
var _Dropdown = _interopRequireDefault(require("../dropdown/Dropdown"));
|
|
25
23
|
|
|
26
24
|
var _Icons = require("./Icons");
|
|
27
25
|
|
|
28
26
|
var _variables = require("../common/variables.js");
|
|
29
27
|
|
|
30
|
-
var _useTheme = _interopRequireDefault(require("../useTheme
|
|
28
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
29
|
+
|
|
30
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
31
31
|
|
|
32
|
-
var _BackgroundColorContext = _interopRequireWildcard(require("../BackgroundColorContext
|
|
32
|
+
var _BackgroundColorContext = _interopRequireWildcard(require("../BackgroundColorContext"));
|
|
33
33
|
|
|
34
34
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15;
|
|
35
35
|
|
|
@@ -39,14 +39,11 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
39
39
|
|
|
40
40
|
var closeIcon = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
41
41
|
xmlns: "http://www.w3.org/2000/svg",
|
|
42
|
-
height: "24",
|
|
43
42
|
viewBox: "0 0 24 24",
|
|
43
|
+
height: "24",
|
|
44
44
|
width: "24"
|
|
45
45
|
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
46
|
-
d: "
|
|
47
|
-
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
48
|
-
d: "M0 0h24v24H0z",
|
|
49
|
-
fill: "none"
|
|
46
|
+
d: "M6.4 19 5 17.6l5.6-5.6L5 6.4 6.4 5l5.6 5.6L17.6 5 19 6.4 13.4 12l5.6 5.6-1.4 1.4-5.6-5.6Z"
|
|
50
47
|
}));
|
|
51
48
|
|
|
52
49
|
var hamburgerIcon = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
@@ -62,72 +59,57 @@ var Dropdown = function Dropdown(props) {
|
|
|
62
59
|
return /*#__PURE__*/_react["default"].createElement(HeaderDropdown, null, /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], props));
|
|
63
60
|
};
|
|
64
61
|
|
|
65
|
-
var HeaderDropdown = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n button {\n background-color: transparent;\n :hover {\n background-color: transparent;\n }\n }\n"])));
|
|
66
|
-
|
|
67
|
-
var getLogoElement = function getLogoElement(themeInput) {
|
|
68
|
-
if (!themeInput) {
|
|
69
|
-
return _Icons.dxcLogo;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (typeof themeInput === "string") {
|
|
73
|
-
return /*#__PURE__*/_react["default"].createElement(LogoImg, {
|
|
74
|
-
alt: "Logo",
|
|
75
|
-
src: themeInput
|
|
76
|
-
});
|
|
77
|
-
}
|
|
62
|
+
var HeaderDropdown = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n button {\n background-color: transparent;\n :hover {\n background-color: transparent;\n }\n }\n"])));
|
|
78
63
|
|
|
79
|
-
|
|
64
|
+
var getLogoElement = function getLogoElement(themeInput, logoLabel) {
|
|
65
|
+
if (!themeInput) return _Icons.dxcLogo;else if (typeof themeInput === "string") return /*#__PURE__*/_react["default"].createElement(LogoImg, {
|
|
66
|
+
alt: logoLabel,
|
|
67
|
+
src: themeInput
|
|
68
|
+
});else return themeInput;
|
|
80
69
|
};
|
|
81
70
|
|
|
82
|
-
var
|
|
83
|
-
var
|
|
84
|
-
underlined = _ref$underlined === void 0 ? false : _ref$underlined,
|
|
85
|
-
content = _ref.content,
|
|
71
|
+
var Content = function Content(_ref) {
|
|
72
|
+
var isResponsive = _ref.isResponsive,
|
|
86
73
|
responsiveContent = _ref.responsiveContent,
|
|
87
|
-
|
|
88
|
-
margin = _ref.margin,
|
|
74
|
+
handleMenu = _ref.handleMenu,
|
|
89
75
|
padding = _ref.padding,
|
|
90
|
-
|
|
91
|
-
|
|
76
|
+
content = _ref.content;
|
|
77
|
+
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
78
|
+
return isResponsive ? /*#__PURE__*/_react["default"].createElement(MenuContent, {
|
|
79
|
+
backgroundType: backgroundType
|
|
80
|
+
}, responsiveContent(handleMenu)) : /*#__PURE__*/_react["default"].createElement(ContentContainer, {
|
|
81
|
+
padding: padding,
|
|
82
|
+
backgroundType: backgroundType
|
|
83
|
+
}, content);
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
var DxcHeader = function DxcHeader(_ref2) {
|
|
87
|
+
var _ref2$underlined = _ref2.underlined,
|
|
88
|
+
underlined = _ref2$underlined === void 0 ? false : _ref2$underlined,
|
|
89
|
+
content = _ref2.content,
|
|
90
|
+
responsiveContent = _ref2.responsiveContent,
|
|
91
|
+
onClick = _ref2.onClick,
|
|
92
|
+
margin = _ref2.margin,
|
|
93
|
+
padding = _ref2.padding,
|
|
94
|
+
_ref2$tabIndex = _ref2.tabIndex,
|
|
95
|
+
tabIndex = _ref2$tabIndex === void 0 ? 0 : _ref2$tabIndex;
|
|
92
96
|
var colorsTheme = (0, _useTheme["default"])();
|
|
97
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
93
98
|
var ref = (0, _react.useRef)(null);
|
|
94
99
|
|
|
95
|
-
var _useState = (0, _react.useState)(),
|
|
100
|
+
var _useState = (0, _react.useState)(false),
|
|
96
101
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
97
|
-
|
|
98
|
-
|
|
102
|
+
isResponsive = _useState2[0],
|
|
103
|
+
setIsResponsive = _useState2[1];
|
|
99
104
|
|
|
100
105
|
var _useState3 = (0, _react.useState)(false),
|
|
101
106
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
var _useState5 = (0, _react.useState)(false),
|
|
106
|
-
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
107
|
-
isMenuVisible = _useState6[0],
|
|
108
|
-
setIsMenuVisible = _useState6[1];
|
|
109
|
-
|
|
110
|
-
var handleResize = function handleResize(refWidth) {
|
|
111
|
-
if (refWidth) {
|
|
112
|
-
setRefSize(refWidth);
|
|
113
|
-
|
|
114
|
-
if (refWidth <= _variables.responsiveSizes.tablet && !isResponsive) {
|
|
115
|
-
setIsResponsive(true);
|
|
116
|
-
} else {
|
|
117
|
-
setIsResponsive(false);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
};
|
|
107
|
+
isMenuVisible = _useState4[0],
|
|
108
|
+
setIsMenuVisible = _useState4[1];
|
|
121
109
|
|
|
122
|
-
var
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
backgroundType: backgroundType
|
|
126
|
-
}, responsiveContent(handleMenu)) || /*#__PURE__*/_react["default"].createElement(ContentContainer, {
|
|
127
|
-
padding: padding,
|
|
128
|
-
backgroundType: backgroundType
|
|
129
|
-
}, content);
|
|
130
|
-
};
|
|
110
|
+
var handleResize = (0, _react.useCallback)(function () {
|
|
111
|
+
setIsResponsive(window.matchMedia("(max-width: ".concat(_variables.responsiveSizes.medium, "rem)")).matches);
|
|
112
|
+
}, []);
|
|
131
113
|
|
|
132
114
|
var handleMenu = function handleMenu() {
|
|
133
115
|
if (isResponsive && !isMenuVisible) {
|
|
@@ -138,80 +120,81 @@ var DxcHeader = function DxcHeader(_ref) {
|
|
|
138
120
|
};
|
|
139
121
|
|
|
140
122
|
var headerLogo = (0, _react.useMemo)(function () {
|
|
141
|
-
return getLogoElement(colorsTheme.header.logo);
|
|
123
|
+
return getLogoElement(colorsTheme.header.logo, translatedLabels.formFields.logoAlternativeText);
|
|
142
124
|
}, [colorsTheme.header.logo]);
|
|
143
125
|
var headerResponsiveLogo = (0, _react.useMemo)(function () {
|
|
144
|
-
return getLogoElement(colorsTheme.header.logoResponsive);
|
|
126
|
+
return getLogoElement(colorsTheme.header.logoResponsive, translatedLabels.formFields.logoAlternativeText);
|
|
145
127
|
}, [colorsTheme.header.logoResponsive]);
|
|
146
|
-
|
|
147
|
-
var handleEventListener = function handleEventListener() {
|
|
148
|
-
handleResize(ref.current.offsetWidth);
|
|
149
|
-
};
|
|
150
|
-
|
|
151
128
|
(0, _react.useEffect)(function () {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
handleResize(ref.current.offsetWidth);
|
|
155
|
-
}
|
|
156
|
-
|
|
129
|
+
handleResize();
|
|
130
|
+
window.addEventListener("resize", handleResize);
|
|
157
131
|
return function () {
|
|
158
|
-
window.removeEventListener("resize",
|
|
132
|
+
window.removeEventListener("resize", handleResize);
|
|
159
133
|
};
|
|
160
|
-
}, []);
|
|
134
|
+
}, [handleResize]);
|
|
135
|
+
(0, _react.useEffect)(function () {
|
|
136
|
+
!isResponsive && setIsMenuVisible(false);
|
|
137
|
+
}, [isResponsive]);
|
|
161
138
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
162
139
|
theme: colorsTheme.header
|
|
163
140
|
}, /*#__PURE__*/_react["default"].createElement(HeaderContainer, {
|
|
164
|
-
|
|
165
|
-
position: "static",
|
|
141
|
+
underlined: underlined,
|
|
166
142
|
margin: margin,
|
|
167
143
|
ref: ref
|
|
168
144
|
}, /*#__PURE__*/_react["default"].createElement(LogoAnchor, {
|
|
169
|
-
tabIndex:
|
|
170
|
-
interactuable:
|
|
145
|
+
tabIndex: onClick ? tabIndex : -1,
|
|
146
|
+
interactuable: onClick ? true : false,
|
|
171
147
|
onClick: onClick
|
|
172
148
|
}, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, headerLogo)), isResponsive && responsiveContent && /*#__PURE__*/_react["default"].createElement(MainContainer, null, /*#__PURE__*/_react["default"].createElement(ChildContainer, {
|
|
173
149
|
padding: padding
|
|
174
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
150
|
+
}, /*#__PURE__*/_react["default"].createElement(HamburguerTrigger, {
|
|
175
151
|
tabIndex: tabIndex,
|
|
176
|
-
underlined: underlined,
|
|
177
152
|
onClick: handleMenu
|
|
178
|
-
}, hamburgerIcon,
|
|
179
|
-
hasVisibility: isMenuVisible
|
|
180
|
-
|
|
181
|
-
}, /*#__PURE__*/_react["default"].createElement(ResponsiveLogoContainer, null, headerResponsiveLogo), /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
182
|
-
color: colorsTheme.header.menuBackgroundColor
|
|
183
|
-
}, /*#__PURE__*/_react["default"].createElement(ContentContainerComponent, null)), /*#__PURE__*/_react["default"].createElement(CloseContainer, {
|
|
153
|
+
}, hamburgerIcon, translatedLabels.header.hamburguerTitle)), /*#__PURE__*/_react["default"].createElement(ResponsiveMenu, {
|
|
154
|
+
hasVisibility: isMenuVisible
|
|
155
|
+
}, /*#__PURE__*/_react["default"].createElement(ResponsiveIconsContainer, null, /*#__PURE__*/_react["default"].createElement(ResponsiveLogoContainer, null, headerResponsiveLogo), /*#__PURE__*/_react["default"].createElement(CloseAction, {
|
|
184
156
|
tabIndex: tabIndex,
|
|
185
157
|
onClick: handleMenu,
|
|
186
|
-
|
|
187
|
-
|
|
158
|
+
"aria-label": translatedLabels.header.closeIcon,
|
|
159
|
+
title: translatedLabels.header.closeIcon
|
|
160
|
+
}, closeIcon)), /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
161
|
+
color: colorsTheme.header.menuBackgroundColor
|
|
162
|
+
}, /*#__PURE__*/_react["default"].createElement(Content, {
|
|
163
|
+
isResponsive: isResponsive,
|
|
164
|
+
responsiveContent: responsiveContent,
|
|
165
|
+
handleMenu: handleMenu,
|
|
166
|
+
padding: padding,
|
|
167
|
+
content: content
|
|
168
|
+
}))), /*#__PURE__*/_react["default"].createElement(Overlay, {
|
|
188
169
|
onClick: handleMenu,
|
|
189
|
-
hasVisibility: isMenuVisible
|
|
190
|
-
|
|
191
|
-
}))), !isResponsive && /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
170
|
+
hasVisibility: isMenuVisible
|
|
171
|
+
})), !isResponsive && /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
192
172
|
color: colorsTheme.header.backgroundColor
|
|
193
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
173
|
+
}, /*#__PURE__*/_react["default"].createElement(Content, {
|
|
174
|
+
isResponsive: isResponsive,
|
|
175
|
+
responsiveContent: responsiveContent,
|
|
176
|
+
handleMenu: handleMenu,
|
|
177
|
+
padding: padding,
|
|
178
|
+
content: content
|
|
179
|
+
}))));
|
|
194
180
|
};
|
|
195
181
|
|
|
196
182
|
DxcHeader.Dropdown = Dropdown;
|
|
197
|
-
|
|
198
|
-
|
|
183
|
+
|
|
184
|
+
var HeaderContainer = _styledComponents["default"].header(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n min-height: ", ";\n margin-bottom: ", ";\n padding: ", ";\n background-color: ", ";\n border-bottom: ", ";\n"])), function (props) {
|
|
185
|
+
return props.theme.minHeight;
|
|
199
186
|
}, function (props) {
|
|
200
|
-
return props.
|
|
187
|
+
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
201
188
|
}, function (props) {
|
|
202
|
-
return props
|
|
189
|
+
return "".concat(props.theme.paddingTop, " ").concat(props.theme.paddingRight, " ").concat(props.theme.paddingBottom, " ").concat(props.theme.paddingLeft);
|
|
203
190
|
}, function (props) {
|
|
204
|
-
return props.theme.
|
|
191
|
+
return props.theme.backgroundColor;
|
|
205
192
|
}, function (props) {
|
|
206
|
-
return
|
|
193
|
+
return props.underlined && "".concat(props.theme.underlinedThickness, " ").concat(props.theme.underlinedStyle, " ").concat(props.theme.underlinedColor);
|
|
207
194
|
});
|
|
208
195
|
|
|
209
|
-
var LogoAnchor = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n ", "
|
|
210
|
-
|
|
211
|
-
return "cursor: default; outline:none;";
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
return "cursor: pointer;";
|
|
196
|
+
var LogoAnchor = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n"])), function (props) {
|
|
197
|
+
return props.interactuable ? "cursor: pointer" : "cursor: default; outline:none;";
|
|
215
198
|
});
|
|
216
199
|
|
|
217
200
|
var LogoImg = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
|
|
@@ -226,7 +209,7 @@ var LogoContainer = _styledComponents["default"].div(_templateObject5 || (_templ
|
|
|
226
209
|
return props.theme.logoWidth;
|
|
227
210
|
});
|
|
228
211
|
|
|
229
|
-
var ChildContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
212
|
+
var ChildContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: flex-end;\n flex-grow: 1;\n width: calc(100% - 186px);\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n"])), function (props) {
|
|
230
213
|
return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
|
|
231
214
|
}, function (props) {
|
|
232
215
|
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
|
|
@@ -238,9 +221,7 @@ var ChildContainer = _styledComponents["default"].div(_templateObject6 || (_temp
|
|
|
238
221
|
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
|
|
239
222
|
});
|
|
240
223
|
|
|
241
|
-
var ContentContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
242
|
-
return props.backgroundType === "dark" ? props.theme.contentColorOnDark : props.theme.contentColor;
|
|
243
|
-
}, function (props) {
|
|
224
|
+
var ContentContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n flex-grow: 1;\n justify-content: flex-end;\n width: calc(100% - 186px);\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n color: ", ";\n"])), function (props) {
|
|
244
225
|
return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
|
|
245
226
|
}, function (props) {
|
|
246
227
|
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
|
|
@@ -250,17 +231,17 @@ var ContentContainer = _styledComponents["default"].div(_templateObject7 || (_te
|
|
|
250
231
|
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
|
|
251
232
|
}, function (props) {
|
|
252
233
|
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
|
|
234
|
+
}, function (props) {
|
|
235
|
+
return props.backgroundType === "dark" ? props.theme.contentColorOnDark : props.theme.contentColor;
|
|
253
236
|
});
|
|
254
237
|
|
|
255
|
-
var
|
|
238
|
+
var HamburguerTrigger = _styledComponents["default"].button(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 54px;\n cursor: pointer;\n border: 1px solid transparent;\n border-radius: 2px;\n background-color: transparent;\n :hover {\n background-color: ", ";\n }\n &:focus {\n outline: ", " auto 1px;\n }\n & > svg {\n fill: ", ";\n }\n font-family: ", ";\n font-style: ", ";\n font-size: ", ";\n text-transform: ", ";\n font-weight: ", ";\n color: ", ";\n"])), function (props) {
|
|
256
239
|
return props.theme.hamburguerHoverColor;
|
|
257
240
|
}, function (props) {
|
|
258
241
|
return props.theme.hamburguerFocusColor;
|
|
259
242
|
}, function (props) {
|
|
260
243
|
return props.theme.hamburguerIconColor;
|
|
261
|
-
})
|
|
262
|
-
|
|
263
|
-
var HamburguerTitle = _styledComponents["default"].span(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-style: ", ";\n font-size: ", ";\n text-transform: ", ";\n font-weight: ", ";\n color: ", ";\n"])), function (props) {
|
|
244
|
+
}, function (props) {
|
|
264
245
|
return props.theme.hamburguerFontFamily;
|
|
265
246
|
}, function (props) {
|
|
266
247
|
return props.theme.hamburguerFontStyle;
|
|
@@ -274,39 +255,39 @@ var HamburguerTitle = _styledComponents["default"].span(_templateObject9 || (_te
|
|
|
274
255
|
return props.theme.hamburguerFontColor;
|
|
275
256
|
});
|
|
276
257
|
|
|
277
|
-
var MainContainer = _styledComponents["default"].div(
|
|
258
|
+
var MainContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-grow: 1;\n"])));
|
|
278
259
|
|
|
279
|
-
var ResponsiveMenu = _styledComponents["default"].div(
|
|
260
|
+
var ResponsiveMenu = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n background-color: ", ";\n position: fixed;\n top: 0;\n right: 0;\n z-index: ", ";\n\n @media (max-width: ", "rem) and (min-width: ", "rem) {\n //tablet\n width: ", ";\n }\n\n @media (not((max-width: ", "rem) and (min-width: ", "rem))) {\n //mobile phones\n width: ", ";\n }\n\n height: 100vh;\n padding: 20px;\n transform: ", ";\n opacity: ", ";\n transition-property: transform, opacity;\n transition-duration: 0.6s;\n transition-timing-function: ease-in-out;\n box-sizing: border-box;\n"])), function (props) {
|
|
280
261
|
return props.theme.menuBackgroundColor;
|
|
281
262
|
}, function (props) {
|
|
282
263
|
return props.theme.menuZindex;
|
|
283
|
-
}, function (props) {
|
|
284
|
-
return props.
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
return props.theme.menuMobileWidth;
|
|
288
|
-
});
|
|
264
|
+
}, _variables.responsiveSizes.large, _variables.responsiveSizes.small, function (props) {
|
|
265
|
+
return props.theme.menuTabletWidth;
|
|
266
|
+
}, _variables.responsiveSizes.large, _variables.responsiveSizes.small, function (props) {
|
|
267
|
+
return props.theme.menuMobileWidth;
|
|
289
268
|
}, function (props) {
|
|
290
269
|
return props.hasVisibility ? "translateX(0)" : "translateX(100vw)";
|
|
291
270
|
}, function (props) {
|
|
292
271
|
return props.hasVisibility ? "1" : "0.96";
|
|
293
272
|
});
|
|
294
273
|
|
|
295
|
-
var ResponsiveLogoContainer = _styledComponents["default"].div(
|
|
274
|
+
var ResponsiveLogoContainer = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n display: flex;\n"])), function (props) {
|
|
296
275
|
return props.theme.logoHeight;
|
|
297
276
|
}, function (props) {
|
|
298
277
|
return props.theme.logoWidth;
|
|
299
278
|
});
|
|
300
279
|
|
|
301
|
-
var
|
|
280
|
+
var ResponsiveIconsContainer = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n"])));
|
|
281
|
+
|
|
282
|
+
var CloseAction = _styledComponents["default"].button(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: center;\n align-content: center;\n padding: 6px;\n border: unset;\n border-radius: 2px;\n background-color: transparent;\n cursor: pointer;\n\n :focus,\n :focus-visible {\n outline: ", " auto 1px;\n }\n\n svg {\n height: 24px;\n width: 24px;\n }\n"])), function (props) {
|
|
302
283
|
return props.theme.hamburguerFocusColor;
|
|
303
|
-
}
|
|
284
|
+
});
|
|
304
285
|
|
|
305
|
-
var MenuContent = _styledComponents["default"].div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
286
|
+
var MenuContent = _styledComponents["default"].div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n height: 100%;\n color: ", ";\n"])), function (props) {
|
|
306
287
|
return props.backgroundType === "dark" ? props.theme.contentColorOnDark : props.theme.contentColor;
|
|
307
288
|
});
|
|
308
289
|
|
|
309
|
-
var Overlay = _styledComponents["default"].div(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: ", ";\n opacity: ", " !important;\n visibility: ", ";\n opacity: ", ";\n
|
|
290
|
+
var Overlay = _styledComponents["default"].div(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: ", ";\n opacity: ", " !important;\n visibility: ", ";\n opacity: ", ";\n\n @media (max-width: ", "rem) {\n //mobile phones\n display: none;\n }\n\n transition: opacity 0.2s 0.2s ease-in-out;\n z-index: ", ";\n"])), function (props) {
|
|
310
291
|
return props.theme.overlayColor;
|
|
311
292
|
}, function (props) {
|
|
312
293
|
return props.theme.overlayOpacity;
|
|
@@ -314,9 +295,7 @@ var Overlay = _styledComponents["default"].div(_templateObject15 || (_templateOb
|
|
|
314
295
|
return props.hasVisibility ? "visible" : "hidden";
|
|
315
296
|
}, function (props) {
|
|
316
297
|
return props.hasVisibility ? "1" : "0";
|
|
317
|
-
}, function (props) {
|
|
318
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "none" : "";
|
|
319
|
-
}, function (props) {
|
|
298
|
+
}, _variables.responsiveSizes.small, function (props) {
|
|
320
299
|
return props.theme.overlayZindex;
|
|
321
300
|
});
|
|
322
301
|
|
|
@@ -3,6 +3,8 @@ import DxcHeader from "./Header";
|
|
|
3
3
|
import Title from "../../.storybook/components/Title";
|
|
4
4
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
5
|
import { userEvent, waitFor, within } from "@storybook/testing-library";
|
|
6
|
+
import DxcFlex from "../flex/Flex";
|
|
7
|
+
import DxcLink from "../link/Link";
|
|
6
8
|
|
|
7
9
|
export default {
|
|
8
10
|
title: "Header",
|
|
@@ -16,24 +18,46 @@ const options: any = [
|
|
|
16
18
|
},
|
|
17
19
|
];
|
|
18
20
|
|
|
21
|
+
const options2: any = [
|
|
22
|
+
{
|
|
23
|
+
value: 1,
|
|
24
|
+
label: "Home",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
value: 2,
|
|
28
|
+
label: "Release notes",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
value: 3,
|
|
32
|
+
label: "Sign out",
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
|
|
19
36
|
export const Chromatic = () => (
|
|
20
37
|
<>
|
|
21
38
|
<ExampleContainer>
|
|
22
39
|
<Title title="Default with dropdown" theme="light" level={4} />
|
|
23
|
-
<DxcHeader
|
|
40
|
+
<DxcHeader
|
|
41
|
+
content={<DxcHeader.Dropdown options={options} label="Default Dropdown" onSelectOption={() => {}} />}
|
|
42
|
+
/>
|
|
24
43
|
</ExampleContainer>
|
|
25
44
|
<ExampleContainer>
|
|
26
45
|
<Title title="Underlined with text" theme="light" level={4} />
|
|
27
46
|
<DxcHeader underlined content={<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>} />
|
|
28
47
|
</ExampleContainer>
|
|
29
48
|
<ExampleContainer>
|
|
30
|
-
<Title title="
|
|
31
|
-
<
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
49
|
+
<Title title="Underlined, dropdown and links" theme="light" level={4} />
|
|
50
|
+
<DxcHeader
|
|
51
|
+
content={
|
|
52
|
+
<DxcFlex alignItems="center" gap="4rem">
|
|
53
|
+
<DxcLink>Link 1</DxcLink>
|
|
54
|
+
<DxcLink>Link 2</DxcLink>
|
|
55
|
+
<DxcLink>Link 3</DxcLink>
|
|
56
|
+
<DxcHeader.Dropdown options={options2} label="Label" onSelectOption={() => {}} />
|
|
57
|
+
</DxcFlex>
|
|
58
|
+
}
|
|
59
|
+
underlined
|
|
60
|
+
/>
|
|
37
61
|
</ExampleContainer>
|
|
38
62
|
<Title title="Margins" theme="light" level={2} />
|
|
39
63
|
<ExampleContainer>
|
|
@@ -104,59 +128,78 @@ export const Chromatic = () => (
|
|
|
104
128
|
</>
|
|
105
129
|
);
|
|
106
130
|
|
|
107
|
-
const
|
|
131
|
+
export const ResponsiveHeader = () => (
|
|
108
132
|
<ExampleContainer>
|
|
109
133
|
<Title title="Responsive" theme="light" level={4} />
|
|
110
|
-
<
|
|
111
|
-
<DxcHeader
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
</div>
|
|
134
|
+
<DxcHeader
|
|
135
|
+
content={<DxcHeader.Dropdown options={options} label="Default Dropdown" />}
|
|
136
|
+
responsiveContent={(closeHandler) => <DxcHeader.Dropdown options={options} label="Default Dropdown" />}
|
|
137
|
+
underlined
|
|
138
|
+
/>
|
|
116
139
|
</ExampleContainer>
|
|
117
140
|
);
|
|
118
141
|
|
|
119
142
|
const RespHeaderFocus = () => (
|
|
120
143
|
<ExampleContainer pseudoState="pseudo-focus">
|
|
121
|
-
<Title title="Responsive" theme="light" level={4} />
|
|
122
|
-
<
|
|
123
|
-
<DxcHeader
|
|
124
|
-
responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>}
|
|
125
|
-
underlined
|
|
126
|
-
/>
|
|
127
|
-
</div>
|
|
144
|
+
<Title title="Responsive focus" theme="light" level={4} />
|
|
145
|
+
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
128
146
|
</ExampleContainer>
|
|
129
147
|
);
|
|
130
148
|
|
|
131
149
|
const RespHeaderHover = () => (
|
|
132
150
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
133
|
-
<Title title="Responsive" theme="light" level={4} />
|
|
134
|
-
<
|
|
135
|
-
<DxcHeader
|
|
136
|
-
responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>}
|
|
137
|
-
underlined
|
|
138
|
-
/>
|
|
139
|
-
</div>
|
|
151
|
+
<Title title="Responsive hover" theme="light" level={4} />
|
|
152
|
+
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
140
153
|
</ExampleContainer>
|
|
141
154
|
);
|
|
142
155
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
156
|
+
const RespHeaderMenu = () => (
|
|
157
|
+
<ExampleContainer>
|
|
158
|
+
<Title title="Responsive menu" theme="light" level={4} />
|
|
159
|
+
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
160
|
+
</ExampleContainer>
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
ResponsiveHeader.parameters = {
|
|
164
|
+
viewport: {
|
|
165
|
+
defaultViewport: "iphonex",
|
|
166
|
+
},
|
|
167
|
+
chromatic: { viewports: [375] },
|
|
148
168
|
};
|
|
149
169
|
|
|
150
170
|
export const ResponsiveHeaderFocus = RespHeaderFocus.bind({});
|
|
171
|
+
ResponsiveHeaderFocus.parameters = {
|
|
172
|
+
viewport: {
|
|
173
|
+
defaultViewport: "iphonex",
|
|
174
|
+
},
|
|
175
|
+
chromatic: { viewports: [375] },
|
|
176
|
+
};
|
|
151
177
|
ResponsiveHeaderFocus.play = async ({ canvasElement }) => {
|
|
152
178
|
const canvas = within(canvasElement);
|
|
153
179
|
await waitFor(() => canvas.findByText("Menu"));
|
|
154
|
-
await userEvent.click(canvas.getByText("Menu"));
|
|
155
180
|
};
|
|
156
181
|
|
|
157
182
|
export const ResponsiveHeaderHover = RespHeaderHover.bind({});
|
|
183
|
+
ResponsiveHeaderHover.parameters = {
|
|
184
|
+
viewport: {
|
|
185
|
+
defaultViewport: "iphonex",
|
|
186
|
+
},
|
|
187
|
+
chromatic: { viewports: [375] },
|
|
188
|
+
};
|
|
158
189
|
ResponsiveHeaderHover.play = async ({ canvasElement }) => {
|
|
159
190
|
const canvas = within(canvasElement);
|
|
160
191
|
await waitFor(() => canvas.findByText("Menu"));
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
export const ResponsiveHeaderMenu = RespHeaderMenu.bind({});
|
|
195
|
+
ResponsiveHeaderMenu.parameters = {
|
|
196
|
+
viewport: {
|
|
197
|
+
defaultViewport: "iphonex",
|
|
198
|
+
},
|
|
199
|
+
chromatic: { viewports: [375] },
|
|
200
|
+
};
|
|
201
|
+
ResponsiveHeaderMenu.play = async ({ canvasElement }) => {
|
|
202
|
+
const canvas = within(canvasElement);
|
|
203
|
+
await waitFor(() => canvas.findByText("Menu"));
|
|
161
204
|
await userEvent.click(canvas.getByText("Menu"));
|
|
162
205
|
};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
var _Header = _interopRequireDefault(require("./Header"));
|
|
10
|
+
|
|
11
|
+
describe("Header component tests", function () {
|
|
12
|
+
beforeAll(function () {
|
|
13
|
+
Object.defineProperty(window, "matchMedia", {
|
|
14
|
+
writable: true,
|
|
15
|
+
value: jest.fn().mockImplementation(function () {
|
|
16
|
+
return {
|
|
17
|
+
matches: false
|
|
18
|
+
};
|
|
19
|
+
})
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
test("Header renders with default logo", function () {
|
|
23
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], null)),
|
|
24
|
+
getByTitle = _render.getByTitle;
|
|
25
|
+
|
|
26
|
+
expect(getByTitle("DXC Logo")).toBeTruthy();
|
|
27
|
+
});
|
|
28
|
+
test("Call correct function on logo click", function () {
|
|
29
|
+
var onClick = jest.fn();
|
|
30
|
+
|
|
31
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], {
|
|
32
|
+
onClick: onClick
|
|
33
|
+
})),
|
|
34
|
+
getByTitle = _render2.getByTitle;
|
|
35
|
+
|
|
36
|
+
var logo = getByTitle("DXC Logo");
|
|
37
|
+
|
|
38
|
+
_react2.fireEvent.click(logo);
|
|
39
|
+
|
|
40
|
+
expect(onClick).toHaveBeenCalled();
|
|
41
|
+
});
|
|
42
|
+
test("Header renders with correct children", function () {
|
|
43
|
+
// We need to force the offsetWidth value
|
|
44
|
+
Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
|
|
45
|
+
configurable: true,
|
|
46
|
+
value: 1024
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], {
|
|
50
|
+
content: /*#__PURE__*/_react["default"].createElement("p", null, "header-child-text")
|
|
51
|
+
})),
|
|
52
|
+
getByText = _render3.getByText;
|
|
53
|
+
|
|
54
|
+
expect(getByText("header-child-text")).toBeTruthy();
|
|
55
|
+
});
|
|
56
|
+
test("Header renders menu button in mobile", function () {
|
|
57
|
+
Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
|
|
58
|
+
configurable: true,
|
|
59
|
+
value: 425
|
|
60
|
+
});
|
|
61
|
+
Object.defineProperty(window, "matchMedia", {
|
|
62
|
+
writable: true,
|
|
63
|
+
value: jest.fn().mockImplementation(function () {
|
|
64
|
+
return {
|
|
65
|
+
matches: true
|
|
66
|
+
};
|
|
67
|
+
})
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], {
|
|
71
|
+
responsiveContent: function responsiveContent(closeMenu) {
|
|
72
|
+
return /*#__PURE__*/_react["default"].createElement("p", null, "header-child-text");
|
|
73
|
+
}
|
|
74
|
+
})),
|
|
75
|
+
getByText = _render4.getByText;
|
|
76
|
+
|
|
77
|
+
expect(getByText("Menu")).toBeTruthy();
|
|
78
|
+
});
|
|
79
|
+
});
|