@dxc-technology/halstack-react 0.0.0-e081e21 → 0.0.0-e1386cf
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 +4 -0
- package/accordion/Accordion.js +126 -170
- package/accordion/Accordion.stories.tsx +306 -0
- package/accordion/Accordion.test.js +71 -0
- package/accordion/types.d.ts +69 -0
- package/accordion/types.js +5 -0
- package/accordion-group/AccordionGroup.d.ts +7 -0
- package/accordion-group/AccordionGroup.js +61 -96
- package/accordion-group/AccordionGroup.stories.tsx +251 -0
- package/accordion-group/AccordionGroup.test.js +126 -0
- package/accordion-group/types.d.ts +79 -0
- package/accordion-group/types.js +5 -0
- package/alert/Alert.js +7 -4
- package/alert/Alert.stories.tsx +170 -0
- package/alert/Alert.test.js +92 -0
- package/alert/types.d.ts +1 -1
- package/badge/Badge.d.ts +4 -0
- package/badge/Badge.js +6 -4
- package/badge/types.d.ts +5 -0
- package/badge/types.js +5 -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.d.ts +4 -0
- package/box/Box.js +29 -65
- package/box/Box.stories.tsx +132 -0
- package/box/Box.test.js +18 -0
- package/box/types.d.ts +44 -0
- package/box/types.js +5 -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 +61 -87
- package/button/Button.stories.tsx +259 -282
- package/button/Button.test.js +35 -0
- package/button/types.d.ts +14 -18
- package/card/Card.d.ts +4 -0
- package/card/Card.js +38 -77
- package/card/Card.stories.tsx +201 -0
- package/card/Card.test.js +50 -0
- package/card/ice-cream.jpg +0 -0
- package/card/types.d.ts +68 -0
- package/card/types.js +5 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +108 -111
- package/checkbox/Checkbox.stories.tsx +208 -0
- package/checkbox/Checkbox.test.js +155 -0
- package/checkbox/types.d.ts +15 -8
- package/chip/Chip.d.ts +4 -0
- package/chip/Chip.js +16 -76
- package/chip/Chip.stories.tsx +119 -0
- package/chip/Chip.test.js +56 -0
- package/chip/types.d.ts +45 -0
- package/chip/types.js +5 -0
- package/common/variables.js +319 -380
- package/date-input/DateInput.d.ts +4 -0
- package/date-input/DateInput.js +65 -89
- package/date-input/DateInput.stories.tsx +138 -0
- package/date-input/DateInput.test.js +543 -0
- package/date-input/types.d.ts +107 -0
- package/date-input/types.js +5 -0
- package/dialog/Dialog.d.ts +4 -0
- package/dialog/Dialog.js +52 -74
- package/dialog/Dialog.stories.tsx +267 -0
- package/dialog/Dialog.test.js +70 -0
- package/dialog/types.d.ts +44 -0
- package/dialog/types.js +5 -0
- package/dropdown/Dropdown.d.ts +4 -0
- package/dropdown/Dropdown.js +243 -302
- package/dropdown/Dropdown.stories.tsx +312 -0
- package/dropdown/Dropdown.test.js +585 -0
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +80 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +92 -0
- package/dropdown/types.d.ts +100 -0
- package/dropdown/types.js +5 -0
- package/file-input/FileInput.d.ts +4 -0
- package/file-input/FileInput.js +185 -166
- package/file-input/FileInput.stories.tsx +535 -0
- package/file-input/FileInput.test.js +498 -0
- package/file-input/FileItem.d.ts +4 -0
- package/file-input/FileItem.js +49 -81
- package/file-input/types.d.ts +129 -0
- package/file-input/types.js +5 -0
- 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 +4 -0
- package/footer/Footer.js +36 -148
- package/footer/Footer.stories.tsx +137 -0
- 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 +66 -0
- package/footer/types.js +5 -0
- package/header/Header.d.ts +7 -0
- package/header/Header.js +119 -140
- package/header/Header.stories.tsx +172 -0
- package/header/Header.test.js +79 -0
- package/header/Icons.d.ts +2 -0
- package/header/Icons.js +4 -29
- package/header/types.d.ts +48 -0
- package/header/types.js +5 -0
- package/heading/Heading.d.ts +4 -0
- package/heading/Heading.js +7 -24
- package/heading/Heading.stories.tsx +54 -0
- package/heading/Heading.test.js +186 -0
- package/heading/types.d.ts +33 -0
- package/heading/types.js +5 -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 +4 -0
- package/link/Link.js +61 -108
- package/link/Link.stories.tsx +193 -0
- package/link/Link.test.js +83 -0
- package/link/types.d.ts +54 -0
- package/link/types.js +5 -0
- package/main.d.ts +12 -12
- package/main.js +64 -58
- package/number-input/NumberInput.d.ts +4 -0
- package/number-input/NumberInput.js +16 -68
- package/number-input/NumberInput.stories.tsx +115 -0
- package/number-input/NumberInput.test.js +542 -0
- package/number-input/NumberInputContext.d.ts +4 -0
- package/number-input/NumberInputContext.js +5 -2
- package/number-input/numberInputContextTypes.d.ts +19 -0
- package/number-input/numberInputContextTypes.js +5 -0
- package/number-input/types.d.ts +124 -0
- package/number-input/types.js +5 -0
- package/package.json +22 -16
- package/paginator/Paginator.js +19 -46
- package/paginator/Paginator.stories.tsx +63 -0
- package/paginator/Paginator.test.js +308 -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.d.ts +4 -0
- package/password-input/PasswordInput.js +24 -57
- package/password-input/PasswordInput.stories.tsx +131 -0
- package/password-input/PasswordInput.test.js +181 -0
- package/password-input/types.d.ts +110 -0
- package/password-input/types.js +5 -0
- package/progress-bar/ProgressBar.d.ts +4 -0
- package/progress-bar/ProgressBar.js +60 -72
- package/progress-bar/ProgressBar.stories.jsx +60 -0
- package/progress-bar/ProgressBar.test.js +110 -0
- package/progress-bar/types.d.ts +36 -0
- package/progress-bar/types.js +5 -0
- 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/ResultsetTable.d.ts +4 -0
- package/resultsetTable/ResultsetTable.js +10 -32
- package/resultsetTable/ResultsetTable.stories.tsx +275 -0
- package/resultsetTable/ResultsetTable.test.js +348 -0
- package/resultsetTable/types.d.ts +67 -0
- package/resultsetTable/types.js +5 -0
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +93 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +198 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +110 -0
- package/select/Select.d.ts +4 -0
- package/select/Select.js +160 -380
- package/select/Select.stories.tsx +627 -0
- package/select/Select.test.js +2233 -0
- package/select/types.d.ts +210 -0
- package/select/types.js +5 -0
- package/sidenav/Sidenav.d.ts +10 -0
- package/sidenav/Sidenav.js +186 -63
- package/sidenav/Sidenav.stories.tsx +180 -0
- package/sidenav/Sidenav.test.js +44 -0
- package/sidenav/types.d.ts +73 -0
- package/sidenav/types.js +5 -0
- package/slider/Slider.d.ts +4 -0
- package/slider/Slider.js +159 -156
- package/slider/Slider.stories.tsx +183 -0
- package/slider/Slider.test.js +250 -0
- package/slider/types.d.ts +86 -0
- package/slider/types.js +5 -0
- package/spinner/Spinner.d.ts +4 -0
- package/spinner/Spinner.js +9 -26
- package/spinner/Spinner.stories.jsx +103 -0
- package/spinner/Spinner.test.js +64 -0
- package/spinner/types.d.ts +32 -0
- package/spinner/types.js +5 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +152 -69
- package/switch/Switch.stories.tsx +138 -0
- package/switch/Switch.test.js +225 -0
- package/switch/types.d.ts +12 -4
- package/table/Table.d.ts +4 -0
- package/table/Table.js +4 -4
- package/table/Table.stories.jsx +277 -0
- package/table/Table.test.js +26 -0
- package/table/types.d.ts +21 -0
- package/table/types.js +5 -0
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +135 -0
- package/tabs/Tabs.d.ts +4 -0
- package/tabs/Tabs.js +364 -156
- package/tabs/Tabs.stories.tsx +186 -0
- package/tabs/Tabs.test.js +351 -0
- package/tabs/types.d.ts +92 -0
- package/tabs/types.js +5 -0
- package/tabs-nav/NavTabs.d.ts +8 -0
- package/tabs-nav/NavTabs.js +125 -0
- package/tabs-nav/NavTabs.stories.tsx +170 -0
- package/tabs-nav/NavTabs.test.js +82 -0
- package/tabs-nav/Tab.d.ts +4 -0
- package/tabs-nav/Tab.js +130 -0
- package/tabs-nav/types.d.ts +53 -0
- package/tabs-nav/types.js +5 -0
- package/tag/Tag.d.ts +4 -0
- package/tag/Tag.js +35 -60
- package/tag/Tag.stories.tsx +142 -0
- package/tag/Tag.test.js +60 -0
- package/tag/types.d.ts +69 -0
- package/tag/types.js +5 -0
- 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 +57 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.d.ts +4 -0
- package/text-input/TextInput.js +228 -376
- package/text-input/TextInput.stories.tsx +481 -0
- package/text-input/TextInput.test.js +1624 -0
- package/text-input/types.d.ts +197 -0
- package/text-input/types.js +5 -0
- package/textarea/Textarea.d.ts +4 -0
- package/textarea/Textarea.js +39 -79
- package/textarea/Textarea.stories.jsx +157 -0
- 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 +4 -0
- package/toggle-group/ToggleGroup.js +18 -46
- package/toggle-group/ToggleGroup.stories.tsx +173 -0
- package/toggle-group/ToggleGroup.test.js +156 -0
- package/toggle-group/types.d.ts +105 -0
- package/toggle-group/types.js +5 -0
- 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 +4 -0
- package/wizard/Wizard.js +118 -104
- package/wizard/Wizard.stories.tsx +233 -0
- package/wizard/Wizard.test.js +141 -0
- package/wizard/types.d.ts +65 -0
- package/wizard/types.js +5 -0
- 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/accordion/index.d.ts +0 -28
- package/accordion-group/index.d.ts +0 -16
- package/box/index.d.ts +0 -25
- package/card/index.d.ts +0 -22
- package/chip/index.d.ts +0 -22
- package/date/Date.js +0 -373
- package/date/index.d.ts +0 -27
- package/date-input/index.d.ts +0 -95
- package/dialog/index.d.ts +0 -18
- package/dropdown/index.d.ts +0 -26
- package/file-input/index.d.ts +0 -81
- package/footer/index.d.ts +0 -25
- package/header/index.d.ts +0 -25
- package/heading/index.d.ts +0 -17
- package/input-text/Icons.js +0 -22
- package/input-text/InputText.js +0 -611
- package/input-text/index.d.ts +0 -36
- package/link/index.d.ts +0 -23
- package/number-input/index.d.ts +0 -113
- package/password-input/index.d.ts +0 -94
- package/progress-bar/index.d.ts +0 -18
- package/radio/Radio.js +0 -195
- package/radio/index.d.ts +0 -23
- package/resultsetTable/index.d.ts +0 -19
- package/select/index.d.ts +0 -131
- package/sidenav/index.d.ts +0 -13
- package/slider/index.d.ts +0 -29
- package/spinner/index.d.ts +0 -17
- package/table/index.d.ts +0 -13
- package/tabs/index.d.ts +0 -19
- package/tag/index.d.ts +0 -24
- package/text-input/index.d.ts +0 -135
- package/textarea/index.d.ts +0 -117
- package/toggle/Toggle.js +0 -186
- package/toggle/index.d.ts +0 -21
- package/toggle-group/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/wizard/index.d.ts +0 -18
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import HeaderPropsType from "./types";
|
|
3
|
+
declare const DxcHeader: {
|
|
4
|
+
({ underlined, content, responsiveContent, onClick, margin, padding, tabIndex, }: HeaderPropsType): JSX.Element;
|
|
5
|
+
Dropdown: (props: any) => JSX.Element;
|
|
6
|
+
};
|
|
7
|
+
export default DxcHeader;
|
package/header/Header.js
CHANGED
|
@@ -9,8 +9,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports["default"] = void 0;
|
|
11
11
|
|
|
12
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
-
|
|
14
12
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
15
13
|
|
|
16
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
@@ -21,19 +19,17 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
21
19
|
|
|
22
20
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
23
21
|
|
|
24
|
-
var _AppBar = _interopRequireDefault(require("@material-ui/core/AppBar"));
|
|
25
|
-
|
|
26
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
|
-
|
|
28
22
|
var _Dropdown = _interopRequireDefault(require("../dropdown/Dropdown"));
|
|
29
23
|
|
|
30
24
|
var _Icons = require("./Icons");
|
|
31
25
|
|
|
32
26
|
var _variables = require("../common/variables.js");
|
|
33
27
|
|
|
34
|
-
var _useTheme = _interopRequireDefault(require("../useTheme
|
|
28
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
35
29
|
|
|
36
|
-
var
|
|
30
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
31
|
+
|
|
32
|
+
var _BackgroundColorContext = _interopRequireWildcard(require("../BackgroundColorContext"));
|
|
37
33
|
|
|
38
34
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15;
|
|
39
35
|
|
|
@@ -41,75 +37,81 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
41
37
|
|
|
42
38
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
43
39
|
|
|
40
|
+
var closeIcon = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
41
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
42
|
+
height: "24",
|
|
43
|
+
viewBox: "0 0 24 24",
|
|
44
|
+
width: "24"
|
|
45
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
46
|
+
d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
|
|
47
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
48
|
+
d: "M0 0h24v24H0z",
|
|
49
|
+
fill: "none"
|
|
50
|
+
}));
|
|
51
|
+
|
|
52
|
+
var hamburgerIcon = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
53
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
54
|
+
viewBox: "0 0 24 24",
|
|
55
|
+
width: "24",
|
|
56
|
+
height: "24"
|
|
57
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
58
|
+
d: "M3,8H21a1,1,0,0,0,0-2H3A1,1,0,0,0,3,8Zm18,8H3a1,1,0,0,0,0,2H21a1,1,0,0,0,0-2Zm0-5H3a1,1,0,0,0,0,2H21a1,1,0,0,0,0-2Z"
|
|
59
|
+
}));
|
|
60
|
+
|
|
44
61
|
var Dropdown = function Dropdown(props) {
|
|
45
62
|
return /*#__PURE__*/_react["default"].createElement(HeaderDropdown, null, /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], props));
|
|
46
63
|
};
|
|
47
64
|
|
|
48
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"])));
|
|
49
66
|
|
|
50
|
-
var getLogoElement = function getLogoElement(themeInput) {
|
|
51
|
-
if (!themeInput) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (typeof themeInput === "string") {
|
|
56
|
-
return /*#__PURE__*/_react["default"].createElement(LogoImg, {
|
|
57
|
-
alt: "Logo",
|
|
58
|
-
src: themeInput
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return themeInput;
|
|
67
|
+
var getLogoElement = function getLogoElement(themeInput, logoLabel) {
|
|
68
|
+
if (!themeInput) return _Icons.dxcLogo;else if (typeof themeInput === "string") return /*#__PURE__*/_react["default"].createElement(LogoImg, {
|
|
69
|
+
alt: logoLabel,
|
|
70
|
+
src: themeInput
|
|
71
|
+
});else return themeInput;
|
|
63
72
|
};
|
|
64
73
|
|
|
65
|
-
var
|
|
66
|
-
var
|
|
67
|
-
underlined = _ref$underlined === void 0 ? false : _ref$underlined,
|
|
68
|
-
onClick = _ref.onClick,
|
|
69
|
-
content = _ref.content,
|
|
74
|
+
var Content = function Content(_ref) {
|
|
75
|
+
var isResponsive = _ref.isResponsive,
|
|
70
76
|
responsiveContent = _ref.responsiveContent,
|
|
71
|
-
|
|
77
|
+
handleMenu = _ref.handleMenu,
|
|
72
78
|
padding = _ref.padding,
|
|
73
|
-
|
|
74
|
-
|
|
79
|
+
content = _ref.content;
|
|
80
|
+
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
81
|
+
return isResponsive ? /*#__PURE__*/_react["default"].createElement(MenuContent, {
|
|
82
|
+
backgroundType: backgroundType
|
|
83
|
+
}, responsiveContent(handleMenu)) : /*#__PURE__*/_react["default"].createElement(ContentContainer, {
|
|
84
|
+
padding: padding,
|
|
85
|
+
backgroundType: backgroundType
|
|
86
|
+
}, content);
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
var DxcHeader = function DxcHeader(_ref2) {
|
|
90
|
+
var _ref2$underlined = _ref2.underlined,
|
|
91
|
+
underlined = _ref2$underlined === void 0 ? false : _ref2$underlined,
|
|
92
|
+
content = _ref2.content,
|
|
93
|
+
responsiveContent = _ref2.responsiveContent,
|
|
94
|
+
onClick = _ref2.onClick,
|
|
95
|
+
margin = _ref2.margin,
|
|
96
|
+
padding = _ref2.padding,
|
|
97
|
+
_ref2$tabIndex = _ref2.tabIndex,
|
|
98
|
+
tabIndex = _ref2$tabIndex === void 0 ? 0 : _ref2$tabIndex;
|
|
75
99
|
var colorsTheme = (0, _useTheme["default"])();
|
|
100
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
76
101
|
var ref = (0, _react.useRef)(null);
|
|
77
102
|
|
|
78
|
-
var _useState = (0, _react.useState)(),
|
|
103
|
+
var _useState = (0, _react.useState)(false),
|
|
79
104
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
80
|
-
|
|
81
|
-
|
|
105
|
+
isResponsive = _useState2[0],
|
|
106
|
+
setIsResponsive = _useState2[1];
|
|
82
107
|
|
|
83
|
-
var _useState3 = (0, _react.useState)(),
|
|
108
|
+
var _useState3 = (0, _react.useState)(false),
|
|
84
109
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
var _useState5 = (0, _react.useState)(false),
|
|
89
|
-
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
90
|
-
isMenuVisible = _useState6[0],
|
|
91
|
-
setIsMenuVisible = _useState6[1];
|
|
92
|
-
|
|
93
|
-
var handleResize = function handleResize(refWidth) {
|
|
94
|
-
if (refWidth) {
|
|
95
|
-
setRefSize(refWidth);
|
|
96
|
-
|
|
97
|
-
if (refWidth <= _variables.responsiveSizes.tablet && !isResponsive) {
|
|
98
|
-
setIsResponsive(true);
|
|
99
|
-
} else {
|
|
100
|
-
setIsResponsive(false);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
};
|
|
110
|
+
isMenuVisible = _useState4[0],
|
|
111
|
+
setIsMenuVisible = _useState4[1];
|
|
104
112
|
|
|
105
|
-
var
|
|
106
|
-
|
|
107
|
-
return isResponsive && /*#__PURE__*/_react["default"].createElement(MenuContent, {
|
|
108
|
-
backgroundType: backgroundType
|
|
109
|
-
}, responsiveContent(handleMenu)) || /*#__PURE__*/_react["default"].createElement(ContentContainer, {
|
|
110
|
-
padding: padding,
|
|
111
|
-
backgroundType: backgroundType
|
|
112
|
-
}, content);
|
|
113
|
+
var handleResize = function handleResize() {
|
|
114
|
+
setIsResponsive(window.matchMedia("(max-width: ".concat(_variables.responsiveSizes.medium, "rem)")).matches);
|
|
113
115
|
};
|
|
114
116
|
|
|
115
117
|
var handleMenu = function handleMenu() {
|
|
@@ -121,80 +123,80 @@ var DxcHeader = function DxcHeader(_ref) {
|
|
|
121
123
|
};
|
|
122
124
|
|
|
123
125
|
var headerLogo = (0, _react.useMemo)(function () {
|
|
124
|
-
return getLogoElement(colorsTheme.header.logo);
|
|
126
|
+
return getLogoElement(colorsTheme.header.logo, translatedLabels.formFields.logoAlternativeText);
|
|
125
127
|
}, [colorsTheme.header.logo]);
|
|
126
128
|
var headerResponsiveLogo = (0, _react.useMemo)(function () {
|
|
127
|
-
return getLogoElement(colorsTheme.header.logoResponsive);
|
|
129
|
+
return getLogoElement(colorsTheme.header.logoResponsive, translatedLabels.formFields.logoAlternativeText);
|
|
128
130
|
}, [colorsTheme.header.logoResponsive]);
|
|
129
|
-
|
|
130
|
-
var handleEventListener = function handleEventListener() {
|
|
131
|
-
handleResize(ref.current.offsetWidth);
|
|
132
|
-
};
|
|
133
|
-
|
|
134
131
|
(0, _react.useEffect)(function () {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
handleResize(ref.current.offsetWidth);
|
|
138
|
-
}
|
|
139
|
-
|
|
132
|
+
handleResize();
|
|
133
|
+
window.addEventListener("resize", handleResize);
|
|
140
134
|
return function () {
|
|
141
|
-
window.removeEventListener("resize",
|
|
135
|
+
window.removeEventListener("resize", handleResize);
|
|
142
136
|
};
|
|
143
137
|
}, []);
|
|
138
|
+
(0, _react.useEffect)(function () {
|
|
139
|
+
!isResponsive && setIsMenuVisible(false);
|
|
140
|
+
}, [isResponsive]);
|
|
144
141
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
145
142
|
theme: colorsTheme.header
|
|
146
143
|
}, /*#__PURE__*/_react["default"].createElement(HeaderContainer, {
|
|
147
|
-
|
|
148
|
-
position: "static",
|
|
144
|
+
underlined: underlined,
|
|
149
145
|
margin: margin,
|
|
150
146
|
ref: ref
|
|
151
147
|
}, /*#__PURE__*/_react["default"].createElement(LogoAnchor, {
|
|
152
|
-
tabIndex:
|
|
153
|
-
interactuable:
|
|
148
|
+
tabIndex: onClick ? tabIndex : -1,
|
|
149
|
+
interactuable: onClick ? true : false,
|
|
154
150
|
onClick: onClick
|
|
155
151
|
}, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, headerLogo)), isResponsive && responsiveContent && /*#__PURE__*/_react["default"].createElement(MainContainer, null, /*#__PURE__*/_react["default"].createElement(ChildContainer, {
|
|
156
152
|
padding: padding
|
|
157
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
153
|
+
}, /*#__PURE__*/_react["default"].createElement(HamburguerTrigger, {
|
|
158
154
|
tabIndex: tabIndex,
|
|
159
|
-
underlined: underlined,
|
|
160
155
|
onClick: handleMenu
|
|
161
|
-
},
|
|
162
|
-
hasVisibility: isMenuVisible
|
|
163
|
-
|
|
164
|
-
}, /*#__PURE__*/_react["default"].createElement(ResponsiveLogoContainer, null, headerResponsiveLogo), /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
165
|
-
color: colorsTheme.header.menuBackgroundColor
|
|
166
|
-
}, /*#__PURE__*/_react["default"].createElement(ContentContainerComponent, null, responsiveContent(handleMenu))), /*#__PURE__*/_react["default"].createElement(CloseContainer, {
|
|
156
|
+
}, hamburgerIcon, translatedLabels.header.hamburguerTitle)), /*#__PURE__*/_react["default"].createElement(ResponsiveMenu, {
|
|
157
|
+
hasVisibility: isMenuVisible
|
|
158
|
+
}, /*#__PURE__*/_react["default"].createElement(ResponsiveIconsContainer, null, /*#__PURE__*/_react["default"].createElement(ResponsiveLogoContainer, null, headerResponsiveLogo), /*#__PURE__*/_react["default"].createElement(CloseAction, {
|
|
167
159
|
tabIndex: tabIndex,
|
|
168
160
|
onClick: handleMenu,
|
|
169
|
-
|
|
170
|
-
},
|
|
161
|
+
"aria-label": translatedLabels.header.closeIcon
|
|
162
|
+
}, closeIcon)), /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
163
|
+
color: colorsTheme.header.menuBackgroundColor
|
|
164
|
+
}, /*#__PURE__*/_react["default"].createElement(Content, {
|
|
165
|
+
isResponsive: isResponsive,
|
|
166
|
+
responsiveContent: responsiveContent,
|
|
167
|
+
handleMenu: handleMenu,
|
|
168
|
+
padding: padding,
|
|
169
|
+
content: content
|
|
170
|
+
}))), /*#__PURE__*/_react["default"].createElement(Overlay, {
|
|
171
171
|
onClick: handleMenu,
|
|
172
|
-
hasVisibility: isMenuVisible
|
|
173
|
-
|
|
174
|
-
}))), !isResponsive && /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
172
|
+
hasVisibility: isMenuVisible
|
|
173
|
+
})), !isResponsive && /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
175
174
|
color: colorsTheme.header.backgroundColor
|
|
176
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
175
|
+
}, /*#__PURE__*/_react["default"].createElement(Content, {
|
|
176
|
+
isResponsive: isResponsive,
|
|
177
|
+
responsiveContent: responsiveContent,
|
|
178
|
+
handleMenu: handleMenu,
|
|
179
|
+
padding: padding,
|
|
180
|
+
content: content
|
|
181
|
+
}))));
|
|
177
182
|
};
|
|
178
183
|
|
|
179
184
|
DxcHeader.Dropdown = Dropdown;
|
|
180
|
-
|
|
185
|
+
|
|
186
|
+
var HeaderContainer = _styledComponents["default"].header(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n margin-bottom: ", ";\n padding: ", ";\n background-color: ", ";\n border-bottom: ", ";\n min-height: ", ";\n box-shadow: none;\n display: flex;\n align-items: center;\n flex-direction: row;\n justify-content: space-between;\n box-sizing: border-box;\n"])), function (props) {
|
|
181
187
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
188
|
+
}, function (props) {
|
|
189
|
+
return "".concat(props.theme.paddingTop, " ").concat(props.theme.paddingRight, " ").concat(props.theme.paddingBottom, " ").concat(props.theme.paddingLeft);
|
|
182
190
|
}, function (props) {
|
|
183
191
|
return props.theme.backgroundColor;
|
|
184
192
|
}, function (props) {
|
|
185
|
-
return props
|
|
193
|
+
return props.underlined && "".concat(props.theme.underlinedThickness, " ").concat(props.theme.underlinedStyle, " ").concat(props.theme.underlinedColor);
|
|
186
194
|
}, function (props) {
|
|
187
195
|
return props.theme.minHeight;
|
|
188
|
-
}, function (props) {
|
|
189
|
-
return "".concat(props.theme.paddingTop, " ").concat(props.theme.paddingRight, " ").concat(props.theme.paddingBottom, " ").concat(props.theme.paddingLeft);
|
|
190
196
|
});
|
|
191
197
|
|
|
192
|
-
var LogoAnchor = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n ", "
|
|
193
|
-
|
|
194
|
-
return "cursor: default; outline:none;";
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
return "cursor: pointer;";
|
|
198
|
+
var LogoAnchor = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n"])), function (props) {
|
|
199
|
+
return props.interactuable ? "cursor: pointer" : "cursor: default; outline:none";
|
|
198
200
|
});
|
|
199
201
|
|
|
200
202
|
var LogoImg = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
|
|
@@ -235,15 +237,13 @@ var ContentContainer = _styledComponents["default"].div(_templateObject7 || (_te
|
|
|
235
237
|
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
|
|
236
238
|
});
|
|
237
239
|
|
|
238
|
-
var
|
|
240
|
+
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) {
|
|
239
241
|
return props.theme.hamburguerHoverColor;
|
|
240
242
|
}, function (props) {
|
|
241
243
|
return props.theme.hamburguerFocusColor;
|
|
242
244
|
}, function (props) {
|
|
243
245
|
return props.theme.hamburguerIconColor;
|
|
244
|
-
})
|
|
245
|
-
|
|
246
|
-
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) {
|
|
246
|
+
}, function (props) {
|
|
247
247
|
return props.theme.hamburguerFontFamily;
|
|
248
248
|
}, function (props) {
|
|
249
249
|
return props.theme.hamburguerFontStyle;
|
|
@@ -257,39 +257,39 @@ var HamburguerTitle = _styledComponents["default"].span(_templateObject9 || (_te
|
|
|
257
257
|
return props.theme.hamburguerFontColor;
|
|
258
258
|
});
|
|
259
259
|
|
|
260
|
-
var MainContainer = _styledComponents["default"].div(
|
|
260
|
+
var MainContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-grow: 1;\n"])));
|
|
261
261
|
|
|
262
|
-
var ResponsiveMenu = _styledComponents["default"].div(
|
|
262
|
+
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) {
|
|
263
263
|
return props.theme.menuBackgroundColor;
|
|
264
264
|
}, function (props) {
|
|
265
265
|
return props.theme.menuZindex;
|
|
266
|
-
}, function (props) {
|
|
267
|
-
return props.
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
return props.theme.menuMobileWidth;
|
|
271
|
-
});
|
|
266
|
+
}, _variables.responsiveSizes.large, _variables.responsiveSizes.small, function (props) {
|
|
267
|
+
return props.theme.menuTabletWidth;
|
|
268
|
+
}, _variables.responsiveSizes.large, _variables.responsiveSizes.small, function (props) {
|
|
269
|
+
return props.theme.menuMobileWidth;
|
|
272
270
|
}, function (props) {
|
|
273
271
|
return props.hasVisibility ? "translateX(0)" : "translateX(100vw)";
|
|
274
272
|
}, function (props) {
|
|
275
273
|
return props.hasVisibility ? "1" : "0.96";
|
|
276
274
|
});
|
|
277
275
|
|
|
278
|
-
var ResponsiveLogoContainer = _styledComponents["default"].div(
|
|
276
|
+
var ResponsiveLogoContainer = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n display: flex;\n"])), function (props) {
|
|
279
277
|
return props.theme.logoHeight;
|
|
280
278
|
}, function (props) {
|
|
281
279
|
return props.theme.logoWidth;
|
|
282
280
|
});
|
|
283
281
|
|
|
284
|
-
var
|
|
282
|
+
var ResponsiveIconsContainer = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n"])));
|
|
283
|
+
|
|
284
|
+
var CloseAction = _styledComponents["default"].button(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n cursor: pointer;\n padding: 6px;\n height: 36px;\n width: 36px;\n border: 1px solid transparent;\n border-radius: 2px;\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n background-color: transparent;\n :focus,\n :focus-visible {\n outline: ", " auto 1px;\n }\n"])), function (props) {
|
|
285
285
|
return props.theme.hamburguerFocusColor;
|
|
286
|
-
}
|
|
286
|
+
});
|
|
287
287
|
|
|
288
|
-
var MenuContent = _styledComponents["default"].div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n height: 100%;\n
|
|
288
|
+
var MenuContent = _styledComponents["default"].div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n color: ", ";\n"])), function (props) {
|
|
289
289
|
return props.backgroundType === "dark" ? props.theme.contentColorOnDark : props.theme.contentColor;
|
|
290
290
|
});
|
|
291
291
|
|
|
292
|
-
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
|
|
292
|
+
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) {
|
|
293
293
|
return props.theme.overlayColor;
|
|
294
294
|
}, function (props) {
|
|
295
295
|
return props.theme.overlayOpacity;
|
|
@@ -297,30 +297,9 @@ var Overlay = _styledComponents["default"].div(_templateObject15 || (_templateOb
|
|
|
297
297
|
return props.hasVisibility ? "visible" : "hidden";
|
|
298
298
|
}, function (props) {
|
|
299
299
|
return props.hasVisibility ? "1" : "0";
|
|
300
|
-
}, function (props) {
|
|
301
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "none" : "";
|
|
302
|
-
}, function (props) {
|
|
300
|
+
}, _variables.responsiveSizes.small, function (props) {
|
|
303
301
|
return props.theme.overlayZindex;
|
|
304
302
|
});
|
|
305
303
|
|
|
306
|
-
DxcHeader.propTypes = {
|
|
307
|
-
underlined: _propTypes["default"].bool,
|
|
308
|
-
onClick: _propTypes["default"].func,
|
|
309
|
-
margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
|
|
310
|
-
top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
311
|
-
bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
312
|
-
left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
313
|
-
right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
|
|
314
|
-
}), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
|
|
315
|
-
padding: _propTypes["default"].oneOfType([_propTypes["default"].shape({
|
|
316
|
-
top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
317
|
-
bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
318
|
-
left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
319
|
-
right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
|
|
320
|
-
}), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
|
|
321
|
-
content: _propTypes["default"].object,
|
|
322
|
-
responsiveContent: _propTypes["default"].func,
|
|
323
|
-
tabIndex: _propTypes["default"].number
|
|
324
|
-
};
|
|
325
304
|
var _default = DxcHeader;
|
|
326
305
|
exports["default"] = _default;
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import DxcHeader from "./Header";
|
|
3
|
+
import Title from "../../.storybook/components/Title";
|
|
4
|
+
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
|
+
import { userEvent, waitFor, within } from "@storybook/testing-library";
|
|
6
|
+
|
|
7
|
+
export default {
|
|
8
|
+
title: "Header",
|
|
9
|
+
component: DxcHeader,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const options: any = [
|
|
13
|
+
{
|
|
14
|
+
value: 1,
|
|
15
|
+
label: "Amazon",
|
|
16
|
+
},
|
|
17
|
+
];
|
|
18
|
+
|
|
19
|
+
export const Chromatic = () => (
|
|
20
|
+
<>
|
|
21
|
+
<ExampleContainer>
|
|
22
|
+
<Title title="Default with dropdown" theme="light" level={4} />
|
|
23
|
+
<DxcHeader content={<DxcHeader.Dropdown options={options} label="Default Dropdown" />} />
|
|
24
|
+
</ExampleContainer>
|
|
25
|
+
<ExampleContainer>
|
|
26
|
+
<Title title="Underlined with text" theme="light" level={4} />
|
|
27
|
+
<DxcHeader underlined content={<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>} />
|
|
28
|
+
</ExampleContainer>
|
|
29
|
+
<Title title="Margins" theme="light" level={2} />
|
|
30
|
+
<ExampleContainer>
|
|
31
|
+
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
32
|
+
<DxcHeader underlined margin="xxsmall" />
|
|
33
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
|
|
34
|
+
</ExampleContainer>
|
|
35
|
+
<ExampleContainer>
|
|
36
|
+
<Title title="Xsmall margin" theme="light" level={4} />
|
|
37
|
+
<DxcHeader underlined margin="xsmall" />
|
|
38
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
|
|
39
|
+
</ExampleContainer>
|
|
40
|
+
<ExampleContainer>
|
|
41
|
+
<Title title="Small margin" theme="light" level={4} />
|
|
42
|
+
<DxcHeader underlined margin="small" />
|
|
43
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
|
|
44
|
+
</ExampleContainer>
|
|
45
|
+
<ExampleContainer>
|
|
46
|
+
<Title title="Medium margin" theme="light" level={4} />
|
|
47
|
+
<DxcHeader underlined margin="medium" />
|
|
48
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
|
|
49
|
+
</ExampleContainer>
|
|
50
|
+
<ExampleContainer>
|
|
51
|
+
<Title title="Large margin" theme="light" level={4} />
|
|
52
|
+
<DxcHeader underlined margin="large" />
|
|
53
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
|
|
54
|
+
</ExampleContainer>
|
|
55
|
+
<ExampleContainer>
|
|
56
|
+
<Title title="Xlarge margin" theme="light" level={4} />
|
|
57
|
+
<DxcHeader underlined margin="xlarge" />
|
|
58
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
|
|
59
|
+
</ExampleContainer>
|
|
60
|
+
<ExampleContainer>
|
|
61
|
+
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
62
|
+
<DxcHeader underlined margin="xxlarge" />
|
|
63
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
|
|
64
|
+
</ExampleContainer>
|
|
65
|
+
|
|
66
|
+
<Title title="Paddings" theme="light" level={2} />
|
|
67
|
+
<ExampleContainer>
|
|
68
|
+
<Title title="Xxsmall padding" theme="light" level={4} />
|
|
69
|
+
<DxcHeader underlined padding="xxsmall" />
|
|
70
|
+
</ExampleContainer>
|
|
71
|
+
<ExampleContainer>
|
|
72
|
+
<Title title="Xsmall padding" theme="light" level={4} />
|
|
73
|
+
<DxcHeader underlined padding="xsmall" />
|
|
74
|
+
</ExampleContainer>
|
|
75
|
+
<ExampleContainer>
|
|
76
|
+
<Title title="Small padding" theme="light" level={4} />
|
|
77
|
+
<DxcHeader underlined padding="small" />
|
|
78
|
+
</ExampleContainer>
|
|
79
|
+
<ExampleContainer>
|
|
80
|
+
<Title title="Medium padding" theme="light" level={4} />
|
|
81
|
+
<DxcHeader underlined padding="medium" />
|
|
82
|
+
</ExampleContainer>
|
|
83
|
+
<ExampleContainer>
|
|
84
|
+
<Title title="Large padding" theme="light" level={4} />
|
|
85
|
+
<DxcHeader underlined padding="large" />
|
|
86
|
+
</ExampleContainer>
|
|
87
|
+
<ExampleContainer>
|
|
88
|
+
<Title title="Xlarge padding" theme="light" level={4} />
|
|
89
|
+
<DxcHeader underlined padding="xlarge" />
|
|
90
|
+
</ExampleContainer>
|
|
91
|
+
<ExampleContainer>
|
|
92
|
+
<Title title="Xxlarge padding" theme="light" level={4} />
|
|
93
|
+
<DxcHeader underlined padding="xxlarge" />
|
|
94
|
+
</ExampleContainer>
|
|
95
|
+
</>
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
export const ResponsiveHeader = () => (
|
|
99
|
+
<ExampleContainer>
|
|
100
|
+
<Title title="Responsive" theme="light" level={4} />
|
|
101
|
+
<DxcHeader
|
|
102
|
+
content={<DxcHeader.Dropdown options={options} label="Default Dropdown" />}
|
|
103
|
+
responsiveContent={(closeHandler) => <DxcHeader.Dropdown options={options} label="Default Dropdown" />}
|
|
104
|
+
underlined
|
|
105
|
+
/>
|
|
106
|
+
</ExampleContainer>
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
const RespHeaderFocus = () => (
|
|
110
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
111
|
+
<Title title="Responsive focus" theme="light" level={4} />
|
|
112
|
+
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
113
|
+
</ExampleContainer>
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
const RespHeaderHover = () => (
|
|
117
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
118
|
+
<Title title="Responsive hover" theme="light" level={4} />
|
|
119
|
+
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
120
|
+
</ExampleContainer>
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
const RespHeaderMenu = () => (
|
|
124
|
+
<ExampleContainer>
|
|
125
|
+
<Title title="Responsive menu" theme="light" level={4} />
|
|
126
|
+
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
127
|
+
</ExampleContainer>
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
ResponsiveHeader.parameters = {
|
|
131
|
+
viewport: {
|
|
132
|
+
defaultViewport: "iphonex",
|
|
133
|
+
},
|
|
134
|
+
chromatic: { viewports: [375] },
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
export const ResponsiveHeaderFocus = RespHeaderFocus.bind({});
|
|
138
|
+
ResponsiveHeaderFocus.parameters = {
|
|
139
|
+
viewport: {
|
|
140
|
+
defaultViewport: "iphonex",
|
|
141
|
+
},
|
|
142
|
+
chromatic: { viewports: [375] },
|
|
143
|
+
};
|
|
144
|
+
ResponsiveHeaderFocus.play = async ({ canvasElement }) => {
|
|
145
|
+
const canvas = within(canvasElement);
|
|
146
|
+
await waitFor(() => canvas.findByText("Menu"));
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
export const ResponsiveHeaderHover = RespHeaderHover.bind({});
|
|
150
|
+
ResponsiveHeaderHover.parameters = {
|
|
151
|
+
viewport: {
|
|
152
|
+
defaultViewport: "iphonex",
|
|
153
|
+
},
|
|
154
|
+
chromatic: { viewports: [375] },
|
|
155
|
+
};
|
|
156
|
+
ResponsiveHeaderHover.play = async ({ canvasElement }) => {
|
|
157
|
+
const canvas = within(canvasElement);
|
|
158
|
+
await waitFor(() => canvas.findByText("Menu"));
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
export const ResponsiveHeaderMenu = RespHeaderMenu.bind({});
|
|
162
|
+
ResponsiveHeaderMenu.parameters = {
|
|
163
|
+
viewport: {
|
|
164
|
+
defaultViewport: "iphonex",
|
|
165
|
+
},
|
|
166
|
+
chromatic: { viewports: [375] },
|
|
167
|
+
};
|
|
168
|
+
ResponsiveHeaderMenu.play = async ({ canvasElement }) => {
|
|
169
|
+
const canvas = within(canvasElement);
|
|
170
|
+
await waitFor(() => canvas.findByText("Menu"));
|
|
171
|
+
await userEvent.click(canvas.getByText("Menu"));
|
|
172
|
+
};
|
|
@@ -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
|
+
});
|