@twreporter/universal-header 2.2.0-rc.5
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/CHANGELOG.md +302 -0
- package/LICENSE +21 -0
- package/README.md +223 -0
- package/lib/actions/auth.js +105 -0
- package/lib/actions/error-action-creators.js +162 -0
- package/lib/components/action-button.js +216 -0
- package/lib/components/channels.js +420 -0
- package/lib/components/customized-link.js +49 -0
- package/lib/components/drop-down-menu.js +138 -0
- package/lib/components/hamburger-icons.js +270 -0
- package/lib/components/hamburger-menu.js +152 -0
- package/lib/components/header.js +233 -0
- package/lib/components/icons.js +276 -0
- package/lib/components/mobile-header.js +264 -0
- package/lib/components/search-box.js +214 -0
- package/lib/components/slogan.js +57 -0
- package/lib/constants/action-types.js +14 -0
- package/lib/constants/actions.js +35 -0
- package/lib/constants/categories.js +32 -0
- package/lib/constants/channels.js +41 -0
- package/lib/constants/colors.js +17 -0
- package/lib/constants/external-links.js +13 -0
- package/lib/constants/fonts.js +32 -0
- package/lib/constants/prop-types.js +46 -0
- package/lib/constants/services.js +31 -0
- package/lib/constants/slogan.js +9 -0
- package/lib/constants/theme.js +13 -0
- package/lib/containers/header.js +375 -0
- package/lib/contexts/header-context.js +17 -0
- package/lib/index.js +18 -0
- package/lib/reducers/auth.js +109 -0
- package/lib/reducers/index.js +22 -0
- package/lib/standalone-header.js +110 -0
- package/lib/utils/animations.js +32 -0
- package/lib/utils/icon.js +905 -0
- package/lib/utils/jwt.js +37 -0
- package/lib/utils/links.js +177 -0
- package/lib/utils/theme.js +415 -0
- package/package.json +38 -0
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _headerContext = _interopRequireDefault(require("../contexts/header-context"));
|
|
9
|
+
|
|
10
|
+
var _customizedLink = _interopRequireDefault(require("./customized-link"));
|
|
11
|
+
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireDefault(require("react"));
|
|
15
|
+
|
|
16
|
+
var _links = _interopRequireDefault(require("../utils/links"));
|
|
17
|
+
|
|
18
|
+
var _querystring = _interopRequireDefault(require("querystring"));
|
|
19
|
+
|
|
20
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
21
|
+
|
|
22
|
+
var _theme = _interopRequireDefault(require("../utils/theme"));
|
|
23
|
+
|
|
24
|
+
var _mediaQuery = _interopRequireDefault(require("@twreporter/core/lib/utils/media-query"));
|
|
25
|
+
|
|
26
|
+
var _map = _interopRequireDefault(require("lodash/map"));
|
|
27
|
+
|
|
28
|
+
var _templateObject;
|
|
29
|
+
|
|
30
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
31
|
+
|
|
32
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
33
|
+
|
|
34
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
35
|
+
|
|
36
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
37
|
+
|
|
38
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
39
|
+
|
|
40
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
41
|
+
|
|
42
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
43
|
+
|
|
44
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
45
|
+
|
|
46
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
47
|
+
|
|
48
|
+
var _ = {
|
|
49
|
+
map: _map["default"]
|
|
50
|
+
};
|
|
51
|
+
var styles = {
|
|
52
|
+
iconHeight: {
|
|
53
|
+
mobile: 42,
|
|
54
|
+
// px
|
|
55
|
+
tablet: 60 // px
|
|
56
|
+
|
|
57
|
+
},
|
|
58
|
+
iconWidth: {
|
|
59
|
+
mobile: 42,
|
|
60
|
+
// px
|
|
61
|
+
tablet: 60 // px
|
|
62
|
+
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
var IconContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
67
|
+
displayName: "hamburger-icons__IconContainer",
|
|
68
|
+
componentId: "sc-11ma9zq-0"
|
|
69
|
+
})(["height:", "px;width:", "px;display:flex;justify-content:center;align-items:center;margin-right:17px;a{display:flex;}", ""], styles.iconHeight.mobile, styles.iconWidth.mobile, _mediaQuery["default"].tabletOnly(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n height: ", "px;\n width: ", "px;\n margin-right: 25px;\n "])), styles.iconHeight.tablet, styles.iconWidth.tablet));
|
|
70
|
+
|
|
71
|
+
var IconsContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
72
|
+
displayName: "hamburger-icons__IconsContainer",
|
|
73
|
+
componentId: "sc-11ma9zq-1"
|
|
74
|
+
})(["display:flex;", "{border:1px solid;border-radius:50%;border-color:", ";}"], IconContainer, function (props) {
|
|
75
|
+
return props.borderColor;
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
var Login = function Login(_ref) {
|
|
79
|
+
var callback = _ref.callback;
|
|
80
|
+
|
|
81
|
+
var handleLogin = function handleLogin(releaseBranch) {
|
|
82
|
+
var redirectURL = window.location.href;
|
|
83
|
+
|
|
84
|
+
var query = _querystring["default"].stringify({
|
|
85
|
+
destination: redirectURL
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
window.location = _links["default"].getLoginLink(releaseBranch).to + '?' + query;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
var handleClick = function handleClick(e, releaseBranch) {
|
|
92
|
+
e.preventDefault();
|
|
93
|
+
handleLogin(releaseBranch);
|
|
94
|
+
callback();
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
return /*#__PURE__*/_react["default"].createElement(IconContainer, null, /*#__PURE__*/_react["default"].createElement(_headerContext["default"].Consumer, null, function (_ref2) {
|
|
98
|
+
var releaseBranch = _ref2.releaseBranch,
|
|
99
|
+
theme = _ref2.theme;
|
|
100
|
+
|
|
101
|
+
var _themeUtils$selectHam = _slicedToArray(_theme["default"].selectHamburgerServiceIcons(theme).login, 1),
|
|
102
|
+
LogInIcon = _themeUtils$selectHam[0];
|
|
103
|
+
|
|
104
|
+
return /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], {
|
|
105
|
+
onClick: function onClick(e) {
|
|
106
|
+
return handleClick(e, releaseBranch);
|
|
107
|
+
}
|
|
108
|
+
}, /*#__PURE__*/_react["default"].createElement(LogInIcon, null));
|
|
109
|
+
}));
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
Login.propTypes = {
|
|
113
|
+
callback: _propTypes["default"].func
|
|
114
|
+
};
|
|
115
|
+
Login.defaultProps = {
|
|
116
|
+
callback: function callback() {}
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
var Logout = function Logout(_ref3) {
|
|
120
|
+
var callback = _ref3.callback;
|
|
121
|
+
|
|
122
|
+
var handleLogout = function handleLogout(releaseBranch) {
|
|
123
|
+
var redirectURL = window.location.href;
|
|
124
|
+
|
|
125
|
+
var query = _querystring["default"].stringify({
|
|
126
|
+
destination: redirectURL
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
window.location = _links["default"].getLogoutLink(releaseBranch).to + '?' + query;
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
var handleClick = function handleClick(e, releaseBranch) {
|
|
133
|
+
e.preventDefault();
|
|
134
|
+
handleLogout(releaseBranch);
|
|
135
|
+
callback();
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
return /*#__PURE__*/_react["default"].createElement(IconContainer, null, /*#__PURE__*/_react["default"].createElement(_headerContext["default"].Consumer, null, function (_ref4) {
|
|
139
|
+
var releaseBranch = _ref4.releaseBranch,
|
|
140
|
+
theme = _ref4.theme;
|
|
141
|
+
|
|
142
|
+
var _themeUtils$selectHam2 = _slicedToArray(_theme["default"].selectHamburgerServiceIcons(theme).logout, 1),
|
|
143
|
+
LogOutIcon = _themeUtils$selectHam2[0];
|
|
144
|
+
|
|
145
|
+
return /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], {
|
|
146
|
+
onClick: function onClick(e) {
|
|
147
|
+
return handleClick(e, releaseBranch);
|
|
148
|
+
}
|
|
149
|
+
}, /*#__PURE__*/_react["default"].createElement(LogOutIcon, null));
|
|
150
|
+
}));
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
Logout.propTypes = {
|
|
154
|
+
callback: _propTypes["default"].func
|
|
155
|
+
};
|
|
156
|
+
Logout.defaultProps = {
|
|
157
|
+
callback: function callback() {}
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
var Search = function Search(_ref5) {
|
|
161
|
+
var callback = _ref5.callback;
|
|
162
|
+
return /*#__PURE__*/_react["default"].createElement(IconContainer, null, /*#__PURE__*/_react["default"].createElement(_headerContext["default"].Consumer, null, function (_ref6) {
|
|
163
|
+
var releaseBranch = _ref6.releaseBranch,
|
|
164
|
+
isLinkExternal = _ref6.isLinkExternal,
|
|
165
|
+
theme = _ref6.theme;
|
|
166
|
+
|
|
167
|
+
var _themeUtils$selectHam3 = _slicedToArray(_theme["default"].selectHamburgerServiceIcons(theme).search, 1),
|
|
168
|
+
SearchIcon = _themeUtils$selectHam3[0];
|
|
169
|
+
|
|
170
|
+
var link = _links["default"].getSearchLink(isLinkExternal, releaseBranch);
|
|
171
|
+
|
|
172
|
+
return /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], _extends({}, link, {
|
|
173
|
+
onClick: callback
|
|
174
|
+
}), /*#__PURE__*/_react["default"].createElement(SearchIcon, null));
|
|
175
|
+
}));
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
Search.propTypes = {
|
|
179
|
+
callback: _propTypes["default"].func
|
|
180
|
+
};
|
|
181
|
+
Search.defaultProps = {
|
|
182
|
+
callback: function callback() {}
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
var Bookmark = function Bookmark(_ref7) {
|
|
186
|
+
var callback = _ref7.callback;
|
|
187
|
+
return /*#__PURE__*/_react["default"].createElement(IconContainer, null, /*#__PURE__*/_react["default"].createElement(_headerContext["default"].Consumer, null, function (_ref8) {
|
|
188
|
+
var releaseBranch = _ref8.releaseBranch,
|
|
189
|
+
isLinkExternal = _ref8.isLinkExternal,
|
|
190
|
+
theme = _ref8.theme;
|
|
191
|
+
|
|
192
|
+
var _themeUtils$selectHam4 = _slicedToArray(_theme["default"].selectHamburgerServiceIcons(theme).bookmark, 1),
|
|
193
|
+
BookmarkIcon = _themeUtils$selectHam4[0];
|
|
194
|
+
|
|
195
|
+
var link = _links["default"].getBookmarksLink(isLinkExternal, releaseBranch);
|
|
196
|
+
|
|
197
|
+
return /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], _extends({}, link, {
|
|
198
|
+
onClick: callback
|
|
199
|
+
}), /*#__PURE__*/_react["default"].createElement(BookmarkIcon, null));
|
|
200
|
+
}));
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
Bookmark.propTypes = {
|
|
204
|
+
callback: _propTypes["default"].func
|
|
205
|
+
};
|
|
206
|
+
Bookmark.defaultProps = {
|
|
207
|
+
callback: function callback() {}
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
var HamburgerService = function HamburgerService(_ref9) {
|
|
211
|
+
var services = _ref9.services,
|
|
212
|
+
callback = _ref9.callback;
|
|
213
|
+
|
|
214
|
+
var _prepareIconJsx = function _prepareIconJsx(service) {
|
|
215
|
+
var serviceKey = service.key;
|
|
216
|
+
|
|
217
|
+
switch (serviceKey) {
|
|
218
|
+
case 'login':
|
|
219
|
+
return /*#__PURE__*/_react["default"].createElement(Login, {
|
|
220
|
+
callback: callback,
|
|
221
|
+
key: serviceKey
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
case 'logout':
|
|
225
|
+
return /*#__PURE__*/_react["default"].createElement(Logout, {
|
|
226
|
+
callback: callback,
|
|
227
|
+
key: serviceKey
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
case 'search':
|
|
231
|
+
return /*#__PURE__*/_react["default"].createElement(Search, {
|
|
232
|
+
callback: callback,
|
|
233
|
+
key: serviceKey
|
|
234
|
+
});
|
|
235
|
+
|
|
236
|
+
case 'bookmarks':
|
|
237
|
+
return /*#__PURE__*/_react["default"].createElement(Bookmark, {
|
|
238
|
+
callback: callback,
|
|
239
|
+
key: serviceKey
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
default:
|
|
243
|
+
return null;
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
return /*#__PURE__*/_react["default"].createElement(_headerContext["default"].Consumer, null, function (_ref10) {
|
|
248
|
+
var theme = _ref10.theme;
|
|
249
|
+
|
|
250
|
+
var _themeUtils$selectHam5 = _theme["default"].selectHamburgerServiceTheme(theme),
|
|
251
|
+
borderColor = _themeUtils$selectHam5.borderColor;
|
|
252
|
+
|
|
253
|
+
return /*#__PURE__*/_react["default"].createElement(IconsContainer, {
|
|
254
|
+
borderColor: borderColor
|
|
255
|
+
}, _.map(services, function (service) {
|
|
256
|
+
return _prepareIconJsx(service);
|
|
257
|
+
}));
|
|
258
|
+
});
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
HamburgerService.propTypes = {
|
|
262
|
+
services: _propTypes["default"].array,
|
|
263
|
+
callback: _propTypes["default"].func
|
|
264
|
+
};
|
|
265
|
+
HamburgerService.defaultProps = {
|
|
266
|
+
services: [],
|
|
267
|
+
callback: function callback() {}
|
|
268
|
+
};
|
|
269
|
+
var _default = HamburgerService;
|
|
270
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
|
+
|
|
14
|
+
var _css = require("@twreporter/core/lib/utils/css");
|
|
15
|
+
|
|
16
|
+
var _mobilePopUpModal = _interopRequireDefault(require("@twreporter/react-components/lib/mobile-pop-up-modal"));
|
|
17
|
+
|
|
18
|
+
var _headerContext = _interopRequireDefault(require("../contexts/header-context"));
|
|
19
|
+
|
|
20
|
+
var _theme = _interopRequireDefault(require("../utils/theme"));
|
|
21
|
+
|
|
22
|
+
var _colors = _interopRequireDefault(require("../constants/colors"));
|
|
23
|
+
|
|
24
|
+
var _actionButton = _interopRequireDefault(require("./action-button"));
|
|
25
|
+
|
|
26
|
+
var _slogan = _interopRequireDefault(require("./slogan"));
|
|
27
|
+
|
|
28
|
+
var _customizedLink = _interopRequireDefault(require("./customized-link"));
|
|
29
|
+
|
|
30
|
+
var _hamburgerIcons = _interopRequireDefault(require("./hamburger-icons"));
|
|
31
|
+
|
|
32
|
+
var _channels = _interopRequireDefault(require("./channels.js"));
|
|
33
|
+
|
|
34
|
+
var _mediaQuery = _interopRequireDefault(require("@twreporter/core/lib/utils/media-query"));
|
|
35
|
+
|
|
36
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
37
|
+
|
|
38
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
39
|
+
|
|
40
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
41
|
+
|
|
42
|
+
var styles = {
|
|
43
|
+
closeButtonHeight: {
|
|
44
|
+
mobile: 42,
|
|
45
|
+
// px
|
|
46
|
+
tablet: 60 // px
|
|
47
|
+
|
|
48
|
+
},
|
|
49
|
+
sloganMargin: {
|
|
50
|
+
mobile: [28, 0],
|
|
51
|
+
tablet: [38, 0]
|
|
52
|
+
},
|
|
53
|
+
channelMargin: {
|
|
54
|
+
mobile: [20, 0, 0, 0],
|
|
55
|
+
tablet: [40, 0, 0, 0]
|
|
56
|
+
},
|
|
57
|
+
serviceMargin: {
|
|
58
|
+
mobile: [16, 0, 22, 0],
|
|
59
|
+
tablet: [24, 0, 42, 0]
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
var MenuContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
64
|
+
displayName: "hamburger-menu__MenuContainer",
|
|
65
|
+
componentId: "sc-15rzowt-0"
|
|
66
|
+
})(["background-color:", ";display:flex;flex-direction:column;justify-content:space-between;height:auto;min-height:100%;"], function (props) {
|
|
67
|
+
return props.bgColor;
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
var CloseContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
71
|
+
displayName: "hamburger-menu__CloseContainer",
|
|
72
|
+
componentId: "sc-15rzowt-1"
|
|
73
|
+
})(["position:absolute;top:10px;right:10px;height:", "px;width:", "px;", ""], styles.closeButtonHeight.mobile, styles.closeButtonHeight.mobile, _mediaQuery["default"].tabletOnly(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n height: ", "px;\n width: ", "px;\n "])), styles.closeButtonHeight.tablet, styles.closeButtonHeight.tablet));
|
|
74
|
+
|
|
75
|
+
var FlexBox = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
76
|
+
displayName: "hamburger-menu__FlexBox",
|
|
77
|
+
componentId: "sc-15rzowt-2"
|
|
78
|
+
})(["display:flex;flex-direction:column;align-items:center;"]);
|
|
79
|
+
|
|
80
|
+
var SloganContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
81
|
+
displayName: "hamburger-menu__SloganContainer",
|
|
82
|
+
componentId: "sc-15rzowt-3"
|
|
83
|
+
})(["margin:", ";", ""], (0, _css.arrayToCssShorthand)(styles.sloganMargin.mobile), _mediaQuery["default"].tabletOnly(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin: ", ";\n "])), (0, _css.arrayToCssShorthand)(styles.sloganMargin.tablet)));
|
|
84
|
+
|
|
85
|
+
var ActionContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
86
|
+
displayName: "hamburger-menu__ActionContainer",
|
|
87
|
+
componentId: "sc-15rzowt-4"
|
|
88
|
+
})(["width:100%;padding:0 30px;"]);
|
|
89
|
+
|
|
90
|
+
var ChannelContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
91
|
+
displayName: "hamburger-menu__ChannelContainer",
|
|
92
|
+
componentId: "sc-15rzowt-5"
|
|
93
|
+
})(["width:100%;margin:10px 0;margin:", ";", ""], (0, _css.arrayToCssShorthand)(styles.channelMargin.mobile), _mediaQuery["default"].tabletOnly(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin: ", ";\n "])), (0, _css.arrayToCssShorthand)(styles.channelMargin.tablet)));
|
|
94
|
+
|
|
95
|
+
var ServiceContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
96
|
+
displayName: "hamburger-menu__ServiceContainer",
|
|
97
|
+
componentId: "sc-15rzowt-6"
|
|
98
|
+
})(["position:relative;bottom:0;display:flex;justify-content:center;align-items:center;width:100%;margin:", ";", ""], (0, _css.arrayToCssShorthand)(styles.serviceMargin.mobile), _mediaQuery["default"].tabletOnly(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n margin: ", ";\n "])), (0, _css.arrayToCssShorthand)(styles.serviceMargin.tablet)));
|
|
99
|
+
|
|
100
|
+
var HamburgerMenu = function HamburgerMenu(_ref) {
|
|
101
|
+
var channels = _ref.channels,
|
|
102
|
+
services = _ref.services,
|
|
103
|
+
actions = _ref.actions,
|
|
104
|
+
handleClose = _ref.handleClose;
|
|
105
|
+
return /*#__PURE__*/_react["default"].createElement(_headerContext["default"].Consumer, null, function (_ref2) {
|
|
106
|
+
var theme = _ref2.theme;
|
|
107
|
+
|
|
108
|
+
var _themeUtils$selectHam = _theme["default"].selectHamburgerMenuTheme(theme),
|
|
109
|
+
bgColor = _themeUtils$selectHam.bgColor;
|
|
110
|
+
|
|
111
|
+
var CloseIcon = _theme["default"].selectIcons(theme).close;
|
|
112
|
+
|
|
113
|
+
var closeJSX = /*#__PURE__*/_react["default"].createElement(CloseContainer, {
|
|
114
|
+
onClick: handleClose
|
|
115
|
+
}, /*#__PURE__*/_react["default"].createElement(CloseIcon, null));
|
|
116
|
+
|
|
117
|
+
return /*#__PURE__*/_react["default"].createElement(_mobilePopUpModal["default"], null, /*#__PURE__*/_react["default"].createElement(MenuContainer, {
|
|
118
|
+
bgColor: bgColor
|
|
119
|
+
}, closeJSX, /*#__PURE__*/_react["default"].createElement(FlexBox, null, /*#__PURE__*/_react["default"].createElement(SloganContainer, null, /*#__PURE__*/_react["default"].createElement(_slogan["default"], {
|
|
120
|
+
themeFunction: _theme["default"].selectSloganHBTheme
|
|
121
|
+
})), /*#__PURE__*/_react["default"].createElement(ActionContainer, null, /*#__PURE__*/_react["default"].createElement(_actionButton["default"], {
|
|
122
|
+
actions: actions,
|
|
123
|
+
direction: "column",
|
|
124
|
+
themeFunction: _theme["default"].selectActionButtonHBTheme,
|
|
125
|
+
callback: handleClose
|
|
126
|
+
})), /*#__PURE__*/_react["default"].createElement(ChannelContainer, null, /*#__PURE__*/_react["default"].createElement(_channels["default"], {
|
|
127
|
+
data: channels,
|
|
128
|
+
direction: "column",
|
|
129
|
+
currentPathname: "",
|
|
130
|
+
themeFunction: _theme["default"].selectChannelHBTheme,
|
|
131
|
+
callback: handleClose
|
|
132
|
+
}))), /*#__PURE__*/_react["default"].createElement(ServiceContainer, null, /*#__PURE__*/_react["default"].createElement(_hamburgerIcons["default"], {
|
|
133
|
+
services: services,
|
|
134
|
+
callback: handleClose
|
|
135
|
+
}))));
|
|
136
|
+
});
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
HamburgerMenu.propTypes = {
|
|
140
|
+
channels: _propTypes["default"].array,
|
|
141
|
+
services: _propTypes["default"].array,
|
|
142
|
+
actions: _propTypes["default"].array,
|
|
143
|
+
handleClose: _propTypes["default"].func
|
|
144
|
+
};
|
|
145
|
+
HamburgerMenu.defaultProps = {
|
|
146
|
+
channels: [],
|
|
147
|
+
services: [],
|
|
148
|
+
actions: [],
|
|
149
|
+
handleClose: function handleClose() {}
|
|
150
|
+
};
|
|
151
|
+
var _default = HamburgerMenu;
|
|
152
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
|
|
14
|
+
var _CSSTransition = _interopRequireDefault(require("react-transition-group/CSSTransition"));
|
|
15
|
+
|
|
16
|
+
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
17
|
+
|
|
18
|
+
var _headerContext = _interopRequireDefault(require("../contexts/header-context"));
|
|
19
|
+
|
|
20
|
+
var _links = _interopRequireDefault(require("../utils/links"));
|
|
21
|
+
|
|
22
|
+
var _theme = _interopRequireDefault(require("../utils/theme"));
|
|
23
|
+
|
|
24
|
+
var _animations = _interopRequireDefault(require("../utils/animations"));
|
|
25
|
+
|
|
26
|
+
var _colors = _interopRequireDefault(require("../constants/colors"));
|
|
27
|
+
|
|
28
|
+
var _channels = _interopRequireDefault(require("./channels"));
|
|
29
|
+
|
|
30
|
+
var _actionButton = _interopRequireDefault(require("./action-button"));
|
|
31
|
+
|
|
32
|
+
var _icons = _interopRequireDefault(require("./icons"));
|
|
33
|
+
|
|
34
|
+
var _customizedLink = _interopRequireDefault(require("./customized-link"));
|
|
35
|
+
|
|
36
|
+
var _slogan = _interopRequireDefault(require("./slogan"));
|
|
37
|
+
|
|
38
|
+
var _css = require("@twreporter/core/lib/utils/css");
|
|
39
|
+
|
|
40
|
+
var _mediaQuery = _interopRequireDefault(require("@twreporter/core/lib/utils/media-query"));
|
|
41
|
+
|
|
42
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
43
|
+
|
|
44
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(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; }
|
|
45
|
+
|
|
46
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
47
|
+
|
|
48
|
+
// @twreporter
|
|
49
|
+
var CHANNEL_HEIGHT = 37; // px
|
|
50
|
+
|
|
51
|
+
var styles = {
|
|
52
|
+
headerHeight: {
|
|
53
|
+
wide: 83,
|
|
54
|
+
// px
|
|
55
|
+
narrow: 46 // px
|
|
56
|
+
|
|
57
|
+
},
|
|
58
|
+
topRowPadding: {
|
|
59
|
+
desktop: [0, 60] // px
|
|
60
|
+
|
|
61
|
+
},
|
|
62
|
+
topRowMaxWidth: {
|
|
63
|
+
desktop: 1024,
|
|
64
|
+
hd: 1440 // px
|
|
65
|
+
|
|
66
|
+
},
|
|
67
|
+
channelMaxWidth: {
|
|
68
|
+
hd: 1320 // px
|
|
69
|
+
|
|
70
|
+
},
|
|
71
|
+
channelBottomBorderWidth: [1, 0, 1, 0] // px
|
|
72
|
+
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
var headerWide = _animations["default"].changeHeight("".concat(styles.headerHeight.narrow, "px"), "".concat(styles.headerHeight.wide, "px"));
|
|
76
|
+
|
|
77
|
+
var headerNarrow = _animations["default"].changeHeight("".concat(styles.headerHeight.wide, "px"), "".concat(styles.headerHeight.narrow, "px"));
|
|
78
|
+
|
|
79
|
+
var HeaderEffect = /*#__PURE__*/(0, _styledComponents.css)([".header-effect-enter{height:", "px;}.header-effect-enter-active{animation:", " 0.3s linear;animation-delay:400ms;}.header-effect-exit-active{animation:", " 0.3s linear;animation-delay:400ms;}.header-effect-exit-done{height:", "px;}"], styles.headerHeight.narrow, headerWide, headerNarrow, styles.headerHeight.narrow);
|
|
80
|
+
var ActionEffect = /*#__PURE__*/(0, _styledComponents.css)([".action-effect-enter{transform:translateX(-40px);}.action-effect-enter-active{animation:", " 0.3s;animation-delay:400ms;}.action-effect-exit-active{animation:", " 0.3s;animation-delay:400ms;}.action-effect-exit-done{transform:translateX(-40px);}"], _animations["default"].changeTranslateX('-40px', 0), _animations["default"].changeTranslateX(0, '-40px'));
|
|
81
|
+
var SloganEffect = /*#__PURE__*/(0, _styledComponents.css)([".slogan-effect-enter{opacity:0;}.slogagn-effect-enter-active{animation:", " 0.3s;animation-delay:400ms;}.slogan-effect-exit-active{animation:", " 0.3s;animation-delay:400ms;}.slogan-effect-exit-done{opacity:0;}"], _animations["default"].changeOpacity('0', '1'), _animations["default"].changeOpacity('1', '0'));
|
|
82
|
+
var channelSlideIn = /*#__PURE__*/(0, _styledComponents.keyframes)(["from{transform:translateY(", "px);opacity:0;}to{transform:translateY(0);opacity:1;}"], -CHANNEL_HEIGHT);
|
|
83
|
+
var channelSlideOut = /*#__PURE__*/(0, _styledComponents.keyframes)(["from{transform:translateY(0);}to{transform:translateY(", "px);}"], -CHANNEL_HEIGHT);
|
|
84
|
+
var ChannelEffect = /*#__PURE__*/(0, _styledComponents.css)([".channel-effect-enter{opacity:0;}.channel-effect-enter-active{animation:", " 0.2s linear;animation-delay:500ms;}.channel-effect-exit-active{animation:", " 0.2s linear;animation-delay:100ms;}"], channelSlideIn, channelSlideOut);
|
|
85
|
+
var LogoEffect = /*#__PURE__*/(0, _styledComponents.css)([".logo-effect-enter{width:80%;}.logo-effect-enter-active{animation:", " 0.3s linear;animation-delay:400ms;}.logo-effect-exit-active{animation:", " 0.3s linear;animation-delay:400ms;}.logo-effect-exit-done{width:80%;}"], _animations["default"].changeWidth('80%', '100%'), _animations["default"].changeWidth('100%', '80%'));
|
|
86
|
+
|
|
87
|
+
var Box = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
88
|
+
displayName: "header__Box",
|
|
89
|
+
componentId: "sc-1krza7i-0"
|
|
90
|
+
})(["transform:translateY(", ");transition:transform 0.3s linear;background-color:", ";box-sizing:border-box;position:relative;width:100%;display:flex;flex-direction:column;align-items:center;a:link,a:visited,a:hover,a:active{text-decoration:none;}", ""], function (props) {
|
|
91
|
+
return props.isHide ? "".concat(-styles.headerHeight.narrow, "px") : 0;
|
|
92
|
+
}, function (props) {
|
|
93
|
+
return props.bgColor;
|
|
94
|
+
}, HeaderEffect);
|
|
95
|
+
|
|
96
|
+
var TopRow = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
97
|
+
displayName: "header__TopRow",
|
|
98
|
+
componentId: "sc-1krza7i-1"
|
|
99
|
+
})(["height:", "px;padding:", ";max-width:", "px;width:100%;box-sizing:border-box;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:center;z-index:3;"], styles.headerHeight.wide, (0, _css.arrayToCssShorthand)(styles.topRowPadding.desktop), styles.topRowMaxWidth.hd);
|
|
100
|
+
|
|
101
|
+
var ChannelContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
102
|
+
displayName: "header__ChannelContainer",
|
|
103
|
+
componentId: "sc-1krza7i-2"
|
|
104
|
+
})(["width:calc(100% - 120px);max-width:", "px;z-index:1;", ""], styles.channelMaxWidth.hd, ChannelEffect);
|
|
105
|
+
|
|
106
|
+
var FlexGroup = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
107
|
+
displayName: "header__FlexGroup",
|
|
108
|
+
componentId: "sc-1krza7i-3"
|
|
109
|
+
})(["display:flex;"]);
|
|
110
|
+
|
|
111
|
+
var FlexItem = /*#__PURE__*/(0, _styledComponents.css)(["margin-right:14px;display:flex;align-items:center;"]);
|
|
112
|
+
|
|
113
|
+
var LogoContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
114
|
+
displayName: "header__LogoContainer",
|
|
115
|
+
componentId: "sc-1krza7i-4"
|
|
116
|
+
})(["", " ", ""], FlexItem, LogoEffect);
|
|
117
|
+
|
|
118
|
+
var SloganContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
119
|
+
displayName: "header__SloganContainer",
|
|
120
|
+
componentId: "sc-1krza7i-5"
|
|
121
|
+
})(["", " ", ""], FlexItem, SloganEffect);
|
|
122
|
+
|
|
123
|
+
var ActionContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
124
|
+
displayName: "header__ActionContainer",
|
|
125
|
+
componentId: "sc-1krza7i-6"
|
|
126
|
+
})(["", " ", ""], FlexItem, ActionEffect);
|
|
127
|
+
|
|
128
|
+
var ChannelTopContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
129
|
+
displayName: "header__ChannelTopContainer",
|
|
130
|
+
componentId: "sc-1krza7i-7"
|
|
131
|
+
})(["position:absolute;width:calc(100% - 530px);min-width:480px;max-width:910px;right:calc(50% - 540px);", " ", ""], FlexItem, ChannelEffect);
|
|
132
|
+
|
|
133
|
+
var Header = function Header(_ref) {
|
|
134
|
+
var pathname = _ref.pathname,
|
|
135
|
+
channels = _ref.channels,
|
|
136
|
+
services = _ref.services,
|
|
137
|
+
actions = _ref.actions,
|
|
138
|
+
narrowActions = _ref.narrowActions;
|
|
139
|
+
return /*#__PURE__*/_react["default"].createElement(_headerContext["default"].Consumer, null, function (_ref2) {
|
|
140
|
+
var releaseBranch = _ref2.releaseBranch,
|
|
141
|
+
isLinkExternal = _ref2.isLinkExternal,
|
|
142
|
+
theme = _ref2.theme,
|
|
143
|
+
toUseNarrow = _ref2.toUseNarrow,
|
|
144
|
+
hideHeader = _ref2.hideHeader;
|
|
145
|
+
|
|
146
|
+
var bgColor = _theme["default"].selectBgColor(theme);
|
|
147
|
+
|
|
148
|
+
var Logo = _theme["default"].selectLogoComponent(theme);
|
|
149
|
+
|
|
150
|
+
return /*#__PURE__*/_react["default"].createElement(Box, {
|
|
151
|
+
bgColor: bgColor,
|
|
152
|
+
isHide: hideHeader
|
|
153
|
+
}, /*#__PURE__*/_react["default"].createElement(_CSSTransition["default"], {
|
|
154
|
+
"in": !toUseNarrow,
|
|
155
|
+
classNames: "header-effect",
|
|
156
|
+
timeout: {
|
|
157
|
+
appear: 0,
|
|
158
|
+
enter: 700,
|
|
159
|
+
exit: 700
|
|
160
|
+
}
|
|
161
|
+
}, /*#__PURE__*/_react["default"].createElement(TopRow, null, /*#__PURE__*/_react["default"].createElement(FlexGroup, null, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], _links["default"].getLogoLink(isLinkExternal, releaseBranch), /*#__PURE__*/_react["default"].createElement(_CSSTransition["default"], {
|
|
162
|
+
"in": !toUseNarrow,
|
|
163
|
+
classNames: "logo-effect",
|
|
164
|
+
timeout: {
|
|
165
|
+
appear: 0,
|
|
166
|
+
enter: 700,
|
|
167
|
+
exit: 700
|
|
168
|
+
}
|
|
169
|
+
}, /*#__PURE__*/_react["default"].createElement(Logo, null)))), /*#__PURE__*/_react["default"].createElement(ActionContainer, null, /*#__PURE__*/_react["default"].createElement(_CSSTransition["default"], {
|
|
170
|
+
"in": !toUseNarrow,
|
|
171
|
+
classNames: "action-effect",
|
|
172
|
+
timeout: {
|
|
173
|
+
appear: 0,
|
|
174
|
+
enter: 700,
|
|
175
|
+
exit: 700
|
|
176
|
+
}
|
|
177
|
+
}, /*#__PURE__*/_react["default"].createElement(_actionButton["default"], {
|
|
178
|
+
actions: toUseNarrow ? narrowActions : actions
|
|
179
|
+
}))), /*#__PURE__*/_react["default"].createElement(SloganContainer, null, /*#__PURE__*/_react["default"].createElement(_CSSTransition["default"], {
|
|
180
|
+
"in": !toUseNarrow,
|
|
181
|
+
classNames: "slogan-effect",
|
|
182
|
+
timeout: {
|
|
183
|
+
appear: 0,
|
|
184
|
+
enter: 700,
|
|
185
|
+
exit: 700
|
|
186
|
+
}
|
|
187
|
+
}, /*#__PURE__*/_react["default"].createElement(_slogan["default"], null)))), /*#__PURE__*/_react["default"].createElement(ChannelTopContainer, null, /*#__PURE__*/_react["default"].createElement(_CSSTransition["default"], {
|
|
188
|
+
"in": toUseNarrow,
|
|
189
|
+
classNames: "channel-effect",
|
|
190
|
+
timeout: {
|
|
191
|
+
appear: 0,
|
|
192
|
+
enter: 700,
|
|
193
|
+
exit: 300
|
|
194
|
+
},
|
|
195
|
+
unmountOnExit: true
|
|
196
|
+
}, /*#__PURE__*/_react["default"].createElement(_channels["default"], {
|
|
197
|
+
currentPathname: pathname,
|
|
198
|
+
data: channels
|
|
199
|
+
}))), /*#__PURE__*/_react["default"].createElement(_icons["default"], {
|
|
200
|
+
services: services
|
|
201
|
+
}))), /*#__PURE__*/_react["default"].createElement(ChannelContainer, null, /*#__PURE__*/_react["default"].createElement(_CSSTransition["default"], {
|
|
202
|
+
"in": !toUseNarrow,
|
|
203
|
+
classNames: "channel-effect",
|
|
204
|
+
timeout: {
|
|
205
|
+
appear: 0,
|
|
206
|
+
enter: 700,
|
|
207
|
+
exit: 300
|
|
208
|
+
},
|
|
209
|
+
unmountOnExit: true
|
|
210
|
+
}, /*#__PURE__*/_react["default"].createElement(_channels["default"], {
|
|
211
|
+
currentPathname: pathname,
|
|
212
|
+
data: channels,
|
|
213
|
+
borderWidth: styles.channelBottomBorderWidth
|
|
214
|
+
}))));
|
|
215
|
+
});
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
Header.propTypes = {
|
|
219
|
+
pathname: _propTypes["default"].string,
|
|
220
|
+
channels: _channels["default"].propTypes.data,
|
|
221
|
+
services: _propTypes["default"].array,
|
|
222
|
+
actions: _propTypes["default"].array,
|
|
223
|
+
narrowActions: _propTypes["default"].array
|
|
224
|
+
};
|
|
225
|
+
Header.defaultProps = {
|
|
226
|
+
pathname: '',
|
|
227
|
+
channels: _channels["default"].defaultProps.data,
|
|
228
|
+
services: [],
|
|
229
|
+
actions: [],
|
|
230
|
+
narrowActions: []
|
|
231
|
+
};
|
|
232
|
+
var _default = Header;
|
|
233
|
+
exports["default"] = _default;
|