@twreporter/react-components 8.17.0-rc.1 → 8.17.0-rc.10
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 +291 -788
- package/lib/button/components/iconButton.js +7 -5
- package/lib/button/components/iconWithTextButton.js +7 -6
- package/lib/button/components/link.js +84 -0
- package/lib/button/components/pillButton.js +35 -17
- package/lib/button/components/textButton.js +17 -14
- package/lib/button/constants/index.js +2 -15
- package/lib/button/enums/index.js +22 -0
- package/lib/button/index.js +10 -1
- package/lib/button/stories/iconButton.stories.js +10 -8
- package/lib/button/stories/iconWithTextButton.stories.js +4 -4
- package/lib/button/stories/link.stories.js +81 -0
- package/lib/button/stories/pillButton.stories.js +51 -20
- package/lib/button/stories/textButton.stories.js +52 -23
- package/lib/button/utils/size.js +2 -2
- package/lib/button/utils/theme.js +85 -43
- package/lib/card/components/article-card.js +192 -0
- package/lib/card/components/dialog.js +6 -3
- package/lib/card/index.js +10 -1
- package/lib/card/stories/articleCard.stories.js +55 -0
- package/lib/card/stories/dialog.stories.js +7 -2
- package/lib/checkbox/checkbox.stories.js +39 -0
- package/lib/checkbox/index.js +99 -0
- package/lib/divider.js +8 -2
- package/lib/divider.stories.js +3 -3
- package/lib/icon/enum/index.js +34 -0
- package/lib/icon/index.js +99 -222
- package/lib/icon/stories/arrow.stories.js +7 -7
- package/lib/icon/stories/article.stories.js +2 -2
- package/lib/icon/stories/bookmark.stories.js +6 -6
- package/lib/icon/stories/clock.stories.js +2 -2
- package/lib/icon/stories/copy.stories.js +2 -2
- package/lib/icon/stories/cross.stories.js +2 -2
- package/lib/icon/stories/hamburger.stories.js +2 -2
- package/lib/icon/stories/home.stories.js +2 -2
- package/lib/icon/stories/letter.stories.js +29 -0
- package/lib/icon/stories/loading.stories.js +2 -2
- package/lib/icon/stories/member.stories.js +2 -2
- package/lib/icon/stories/printer.stories.js +2 -2
- package/lib/icon/stories/search.stories.js +2 -2
- package/lib/icon/stories/share.stories.js +2 -2
- package/lib/icon/stories/socialMedia.stories.js +7 -25
- package/lib/icon/stories/text.stories.js +2 -2
- package/lib/icon/stories/topic.stories.js +2 -2
- package/lib/image-with-fallback.js +141 -0
- package/lib/input/components/search-bar.js +6 -4
- package/lib/input/enums/index.js +11 -0
- package/lib/input/stories/search-bar.stories.js +8 -7
- package/lib/input/utils/theme.js +5 -3
- package/lib/listing-page/components/card-list.js +165 -0
- package/lib/listing-page/components/image.js +3 -0
- package/lib/listing-page/components/list.js +13 -8
- package/lib/listing-page/constants/prop-types.js +25 -0
- package/lib/listing-page/index.js +10 -1
- package/lib/listing-page/stories/cardList.stories.js +83 -0
- package/lib/logo/components/logo-header.js +8 -2
- package/lib/logo/components/logo-loading-fallback.js +43 -0
- package/lib/logo/components/logo-symbol.js +9 -2
- package/lib/logo/index.js +10 -1
- package/lib/logo/stories/logoFooter.stories.js +2 -2
- package/lib/logo/stories/logoHeader.stories.js +3 -3
- package/lib/logo/stories/logoLoadingFallback.stories.js +29 -0
- package/lib/logo/stories/logoSymbol.stories.js +3 -3
- package/lib/logo/utils/path.js +5 -0
- package/lib/material-icon.js +53 -0
- package/lib/pagination/index.js +8 -5
- package/lib/shared-enum.js +11 -0
- package/lib/snack-bar/components/snack-bar.js +2 -1
- package/lib/snack-bar/stories/snackBar.stories.js +4 -4
- package/lib/storybook/constants/index.js +27 -0
- package/lib/storybook/utils/get-enum-arg.js +18 -0
- package/lib/text/constants/headline-type.js +5 -24
- package/lib/text/enums/index.js +17 -0
- package/lib/text/headline.js +5 -2
- package/lib/text/paragraph.js +9 -6
- package/lib/text/stories/headline.stories.js +5 -3
- package/lib/text/stories/paragraph.stories.js +5 -3
- package/lib/title-bar/components/bar.js +2 -2
- package/lib/title-bar/components/tab.js +2 -2
- package/package.json +5 -4
- package/lib/button/constants/size.js +0 -28
- package/lib/button/constants/type.js +0 -28
- package/lib/input/constants/type.js +0 -20
- package/lib/text/constants/font-weight.js +0 -29
- package/lib/text/link.js +0 -87
- package/lib/text/stories/link.stories.js +0 -42
|
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _index = require("../index");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _constants = require("../../storybook/constants");
|
|
13
13
|
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
15
|
|
|
@@ -17,7 +17,7 @@ var _default = {
|
|
|
17
17
|
title: 'Icon/Loading',
|
|
18
18
|
component: _index.Loading,
|
|
19
19
|
argTypes: {
|
|
20
|
-
releaseBranch:
|
|
20
|
+
releaseBranch: _constants.BRANCH_STORYBOOK_ARG_TYPE
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
exports["default"] = _default;
|
|
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _index = require("../index");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _constants = require("../../storybook/constants");
|
|
13
13
|
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
15
|
|
|
@@ -17,7 +17,7 @@ var _default = {
|
|
|
17
17
|
title: 'Icon/Member',
|
|
18
18
|
component: _index.Member,
|
|
19
19
|
argTypes: {
|
|
20
|
-
releaseBranch:
|
|
20
|
+
releaseBranch: _constants.BRANCH_STORYBOOK_ARG_TYPE
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
exports["default"] = _default;
|
|
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _index = require("../index");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _constants = require("../../storybook/constants");
|
|
13
13
|
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
15
|
|
|
@@ -17,7 +17,7 @@ var _default = {
|
|
|
17
17
|
title: 'Icon/Printer',
|
|
18
18
|
component: _index.Printer,
|
|
19
19
|
argTypes: {
|
|
20
|
-
releaseBranch:
|
|
20
|
+
releaseBranch: _constants.BRANCH_STORYBOOK_ARG_TYPE
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
exports["default"] = _default;
|
|
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _index = require("../index");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _constants = require("../../storybook/constants");
|
|
13
13
|
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
15
|
|
|
@@ -17,7 +17,7 @@ var _default = {
|
|
|
17
17
|
title: 'Icon/Search',
|
|
18
18
|
component: _index.Search,
|
|
19
19
|
argTypes: {
|
|
20
|
-
releaseBranch:
|
|
20
|
+
releaseBranch: _constants.BRANCH_STORYBOOK_ARG_TYPE
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
exports["default"] = _default;
|
|
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _index = require("../index");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _constants = require("../../storybook/constants");
|
|
13
13
|
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
15
|
|
|
@@ -17,7 +17,7 @@ var _default = {
|
|
|
17
17
|
title: 'Icon/Share',
|
|
18
18
|
component: _index.Share,
|
|
19
19
|
argTypes: {
|
|
20
|
-
releaseBranch:
|
|
20
|
+
releaseBranch: _constants.BRANCH_STORYBOOK_ARG_TYPE
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
exports["default"] = _default;
|
|
@@ -7,45 +7,27 @@ exports.socialMedia = exports["default"] = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _getEnumArg = require("../../storybook/utils/get-enum-arg");
|
|
11
11
|
|
|
12
12
|
var _index = require("../index");
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _constants = require("../../storybook/constants");
|
|
15
15
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
17
17
|
|
|
18
|
-
var SocialMedia = function SocialMedia(_ref) {
|
|
19
|
-
var mediaType = _ref.mediaType,
|
|
20
|
-
releaseBranch = _ref.releaseBranch;
|
|
21
|
-
return /*#__PURE__*/_react["default"].createElement(_index.Icon, {
|
|
22
|
-
filename: mediaType,
|
|
23
|
-
releaseBranch: releaseBranch
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
SocialMedia.propTypes = {
|
|
28
|
-
mediaType: _propTypes["default"].oneOf(['facebook', 'instagram', 'medium', 'twitter', 'youtube', 'line']),
|
|
29
|
-
releaseBranch: _releaseBranch.BRANCH_PROP_TYPES
|
|
30
|
-
};
|
|
31
18
|
var _default = {
|
|
32
19
|
title: 'Icon/Social Media',
|
|
33
|
-
component: SocialMedia,
|
|
20
|
+
component: _index.SocialMedia,
|
|
34
21
|
argTypes: {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
control: {
|
|
39
|
-
type: 'radio'
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
releaseBranch: _releaseBranch.BRANCH_STORYBOOK_ARG_TYPE
|
|
22
|
+
type: (0, _getEnumArg.getRadioArg)(_index.SocialMedia.Type, _index.SocialMedia.Type.MASK),
|
|
23
|
+
mediaType: (0, _getEnumArg.getRadioArg)(_index.SocialMedia.MediaType, _index.SocialMedia.MediaType.GOOGLE),
|
|
24
|
+
releaseBranch: _constants.BRANCH_STORYBOOK_ARG_TYPE
|
|
43
25
|
}
|
|
44
26
|
};
|
|
45
27
|
exports["default"] = _default;
|
|
46
28
|
|
|
47
29
|
var socialMedia = function socialMedia(args) {
|
|
48
|
-
return /*#__PURE__*/_react["default"].createElement(SocialMedia, args);
|
|
30
|
+
return /*#__PURE__*/_react["default"].createElement(_index.SocialMedia, args);
|
|
49
31
|
};
|
|
50
32
|
|
|
51
33
|
exports.socialMedia = socialMedia;
|
|
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _index = require("../index");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _constants = require("../../storybook/constants");
|
|
13
13
|
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
15
|
|
|
@@ -17,7 +17,7 @@ var _default = {
|
|
|
17
17
|
title: 'Icon/Text',
|
|
18
18
|
component: _index.Text,
|
|
19
19
|
argTypes: {
|
|
20
|
-
releaseBranch:
|
|
20
|
+
releaseBranch: _constants.BRANCH_STORYBOOK_ARG_TYPE
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
exports["default"] = _default;
|
|
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _index = require("../index");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _constants = require("../../storybook/constants");
|
|
13
13
|
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
15
|
|
|
@@ -17,7 +17,7 @@ var _default = {
|
|
|
17
17
|
title: 'Icon/Topic',
|
|
18
18
|
component: _index.Topic,
|
|
19
19
|
argTypes: {
|
|
20
|
-
releaseBranch:
|
|
20
|
+
releaseBranch: _constants.BRANCH_STORYBOOK_ARG_TYPE
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
exports["default"] = _default;
|
|
@@ -0,0 +1,141 @@
|
|
|
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 = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
|
|
14
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
15
|
+
|
|
16
|
+
var _logo = require("./logo");
|
|
17
|
+
|
|
18
|
+
var _storageUrlProcessor = require("@twreporter/core/lib/utils/storage-url-processor");
|
|
19
|
+
|
|
20
|
+
var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
|
|
21
|
+
|
|
22
|
+
var _get = _interopRequireDefault(require("lodash/get"));
|
|
23
|
+
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
25
|
+
|
|
26
|
+
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); }
|
|
27
|
+
|
|
28
|
+
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; }
|
|
29
|
+
|
|
30
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
31
|
+
|
|
32
|
+
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."); }
|
|
33
|
+
|
|
34
|
+
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); }
|
|
35
|
+
|
|
36
|
+
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; }
|
|
37
|
+
|
|
38
|
+
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; }
|
|
39
|
+
|
|
40
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
41
|
+
|
|
42
|
+
var _ = {
|
|
43
|
+
get: _get["default"]
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
var ImgContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
47
|
+
displayName: "image-with-fallback__ImgContainer",
|
|
48
|
+
componentId: "qk0kiz-0"
|
|
49
|
+
})(["width:100%;height:100%;position:relative;"]);
|
|
50
|
+
|
|
51
|
+
var ImgObjectFit = /*#__PURE__*/(0, _styledComponents["default"])(ImgContainer).withConfig({
|
|
52
|
+
displayName: "image-with-fallback__ImgObjectFit",
|
|
53
|
+
componentId: "qk0kiz-1"
|
|
54
|
+
})(["opacity:", ";transition:opacity 1s ease;> img{width:100%;height:100%;object-fit:cover;}"], function (props) {
|
|
55
|
+
return props.opacity;
|
|
56
|
+
});
|
|
57
|
+
var ImgFallback = /*#__PURE__*/(0, _styledComponents["default"])(ImgContainer).withConfig({
|
|
58
|
+
displayName: "image-with-fallback__ImgFallback",
|
|
59
|
+
componentId: "qk0kiz-2"
|
|
60
|
+
})(["background-size:cover;background-image:", ";background-position:center center;"], function (props) {
|
|
61
|
+
return "url(".concat((0, _storageUrlProcessor.replaceGCSUrlOrigin)(_.get(props, 'url')), ")");
|
|
62
|
+
});
|
|
63
|
+
var LogoCenteringBlock = /*#__PURE__*/(0, _styledComponents["default"])(ImgContainer).withConfig({
|
|
64
|
+
displayName: "image-with-fallback__LogoCenteringBlock",
|
|
65
|
+
componentId: "qk0kiz-3"
|
|
66
|
+
})(["position:absolute;justify-content:center;align-items:center;background-color:white;display:", ";> img{width:65%;height:65%;}"], function (props) {
|
|
67
|
+
return props.display;
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
var Image = function Image(_ref) {
|
|
71
|
+
var src = _ref.src,
|
|
72
|
+
_ref$alt = _ref.alt,
|
|
73
|
+
alt = _ref$alt === void 0 ? '' : _ref$alt,
|
|
74
|
+
_ref$srcSet = _ref.srcSet,
|
|
75
|
+
srcSet = _ref$srcSet === void 0 ? '' : _ref$srcSet,
|
|
76
|
+
_ref$releaseBranch = _ref.releaseBranch,
|
|
77
|
+
releaseBranch = _ref$releaseBranch === void 0 ? _releaseBranch.BRANCH.master : _ref$releaseBranch;
|
|
78
|
+
|
|
79
|
+
var _useState = (0, _react.useState)(false),
|
|
80
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
81
|
+
isObjectFit = _useState2[0],
|
|
82
|
+
setIsObjectFit = _useState2[1];
|
|
83
|
+
|
|
84
|
+
var _useState3 = (0, _react.useState)(false),
|
|
85
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
86
|
+
isImgOnLoad = _useState4[0],
|
|
87
|
+
setIsImgOnLoad = _useState4[1];
|
|
88
|
+
|
|
89
|
+
var imgNode = (0, _react.useRef)(null);
|
|
90
|
+
(0, _react.useEffect)(function () {
|
|
91
|
+
setIsObjectFit('objectFit' in _.get(document, 'documentElement.style'));
|
|
92
|
+
}, []); // Check if img is already loaded, and cached on the browser.
|
|
93
|
+
// If cached, React.img won't trigger onLoad event.
|
|
94
|
+
// Hence, we need to trigger re-rendering.
|
|
95
|
+
|
|
96
|
+
(0, _react.useEffect)(function () {
|
|
97
|
+
if (!imgNode.current) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
setIsImgOnLoad(imgNode.current.complete);
|
|
102
|
+
}, [imgNode]);
|
|
103
|
+
|
|
104
|
+
var handleImgOnLoad = function handleImgOnLoad() {
|
|
105
|
+
setIsImgOnLoad(true);
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
var logoDisplay = 'flex';
|
|
109
|
+
|
|
110
|
+
if (!isObjectFit) {
|
|
111
|
+
logoDisplay = 'none';
|
|
112
|
+
} else if (isImgOnLoad) {
|
|
113
|
+
logoDisplay = 'none';
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
var ImgJSX = isObjectFit ? /*#__PURE__*/_react["default"].createElement(ImgObjectFit, {
|
|
117
|
+
opacity: isImgOnLoad ? 1 : 0
|
|
118
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
119
|
+
ref: imgNode,
|
|
120
|
+
alt: alt,
|
|
121
|
+
src: (0, _storageUrlProcessor.replaceGCSUrlOrigin)(src),
|
|
122
|
+
srcSet: srcSet,
|
|
123
|
+
onLoad: handleImgOnLoad
|
|
124
|
+
})) : /*#__PURE__*/_react["default"].createElement(ImgFallback, {
|
|
125
|
+
url: (0, _storageUrlProcessor.replaceGCSUrlOrigin)(src)
|
|
126
|
+
});
|
|
127
|
+
return /*#__PURE__*/_react["default"].createElement(ImgContainer, null, /*#__PURE__*/_react["default"].createElement(LogoCenteringBlock, {
|
|
128
|
+
display: logoDisplay
|
|
129
|
+
}, /*#__PURE__*/_react["default"].createElement(_logo.LogoFallback, {
|
|
130
|
+
releaseBranch: releaseBranch
|
|
131
|
+
})), ImgJSX);
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
Image.propTypes = {
|
|
135
|
+
alt: _propTypes["default"].string,
|
|
136
|
+
src: _propTypes["default"].string.isRequired,
|
|
137
|
+
srcSet: _propTypes["default"].string,
|
|
138
|
+
releaseBranch: _releaseBranch.BRANCH_PROP_TYPES
|
|
139
|
+
};
|
|
140
|
+
var _default = Image;
|
|
141
|
+
exports["default"] = _default;
|
|
@@ -15,7 +15,7 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
|
15
15
|
|
|
16
16
|
var _theme = require("../utils/theme");
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _enums = require("../enums");
|
|
19
19
|
|
|
20
20
|
var _icon = require("../../icon");
|
|
21
21
|
|
|
@@ -117,7 +117,7 @@ var SearchBar = function SearchBar(_ref) {
|
|
|
117
117
|
_ref$autofocus = _ref.autofocus,
|
|
118
118
|
autofocus = _ref$autofocus === void 0 ? true : _ref$autofocus,
|
|
119
119
|
_ref$widthType = _ref.widthType,
|
|
120
|
-
widthType = _ref$widthType === void 0 ?
|
|
120
|
+
widthType = _ref$widthType === void 0 ? _enums.WidthType.FIT : _ref$widthType,
|
|
121
121
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
122
122
|
|
|
123
123
|
var _useState = (0, _react.useState)(''),
|
|
@@ -209,13 +209,15 @@ var SearchBar = function SearchBar(_ref) {
|
|
|
209
209
|
|
|
210
210
|
SearchBar.propTypes = {
|
|
211
211
|
placeholder: _propTypes["default"].string,
|
|
212
|
-
theme: _theme2.
|
|
212
|
+
theme: _propTypes["default"].oneOf(Object.values(_theme2.THEME)),
|
|
213
213
|
releaseBranch: _releaseBranch.BRANCH_PROP_TYPES,
|
|
214
214
|
onSearch: _propTypes["default"].func,
|
|
215
215
|
onClose: _propTypes["default"].func,
|
|
216
216
|
handleBlur: _propTypes["default"].func,
|
|
217
217
|
autofocus: _propTypes["default"].bool,
|
|
218
|
-
widthType:
|
|
218
|
+
widthType: _propTypes["default"].oneOf(Object.values(_enums.WidthType))
|
|
219
219
|
};
|
|
220
|
+
SearchBar.THEME = _theme2.THEME;
|
|
221
|
+
SearchBar.WidthType = _enums.WidthType;
|
|
220
222
|
var _default = SearchBar;
|
|
221
223
|
exports["default"] = _default;
|
|
@@ -7,22 +7,23 @@ exports.searchBar = exports["default"] = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
|
|
10
|
+
var _getEnumArg = require("../../storybook/utils/get-enum-arg");
|
|
11
|
+
|
|
10
12
|
var _searchBar = _interopRequireDefault(require("../components/search-bar"));
|
|
11
13
|
|
|
12
|
-
var
|
|
14
|
+
var _constants = require("../../storybook/constants");
|
|
13
15
|
|
|
14
16
|
var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
|
|
15
17
|
|
|
16
|
-
var _theme = require("@twreporter/core/lib/constants/theme");
|
|
17
|
-
|
|
18
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
19
19
|
|
|
20
20
|
var _default = {
|
|
21
21
|
title: 'Input/Search Bar',
|
|
22
22
|
component: _searchBar["default"],
|
|
23
23
|
argTypes: {
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
widthType: (0, _getEnumArg.getRadioArg)(_searchBar["default"].WidthType, _searchBar["default"].WidthType.FIT),
|
|
25
|
+
releaseBranch: _constants.BRANCH_STORYBOOK_ARG_TYPE,
|
|
26
|
+
theme: _constants.THEME_STORYBOOK_ARG_TYPE
|
|
26
27
|
}
|
|
27
28
|
};
|
|
28
29
|
exports["default"] = _default;
|
|
@@ -47,10 +48,10 @@ var onClose = function onClose() {
|
|
|
47
48
|
|
|
48
49
|
searchBar.args = {
|
|
49
50
|
placeholder: '關鍵字搜尋',
|
|
50
|
-
theme:
|
|
51
|
+
theme: _searchBar["default"].THEME.normal,
|
|
51
52
|
releaseBranch: _releaseBranch.BRANCH.master,
|
|
52
53
|
onSearch: onSearch,
|
|
53
54
|
onClose: onClose,
|
|
54
55
|
autofocus: false,
|
|
55
|
-
widthType:
|
|
56
|
+
widthType: _searchBar["default"].WidthType.FIT
|
|
56
57
|
};
|
package/lib/input/utils/theme.js
CHANGED
|
@@ -7,9 +7,11 @@ exports.selectThemeStyle = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _color = require("@twreporter/core/lib/constants/color");
|
|
9
9
|
|
|
10
|
+
var _theme = require("@twreporter/core/lib/constants/theme");
|
|
11
|
+
|
|
10
12
|
var selectThemeStyle = function selectThemeStyle(theme) {
|
|
11
13
|
switch (theme) {
|
|
12
|
-
case
|
|
14
|
+
case _theme.THEME.photography:
|
|
13
15
|
return {
|
|
14
16
|
bgColor: _color.colorOpacity['white_0.8'],
|
|
15
17
|
focusBgColor: _color.colorGrayscale.gray100,
|
|
@@ -20,7 +22,7 @@ var selectThemeStyle = function selectThemeStyle(theme) {
|
|
|
20
22
|
placeholderColor: _color.colorGrayscale.gray800
|
|
21
23
|
};
|
|
22
24
|
|
|
23
|
-
case
|
|
25
|
+
case _theme.THEME.transpareant:
|
|
24
26
|
return {
|
|
25
27
|
bgColor: _color.colorOpacity['gray100_0.8'],
|
|
26
28
|
focusBgColor: _color.colorOpacity['gray100_0.8'],
|
|
@@ -31,7 +33,7 @@ var selectThemeStyle = function selectThemeStyle(theme) {
|
|
|
31
33
|
placeholderColor: _color.colorGrayscale.gray500
|
|
32
34
|
};
|
|
33
35
|
|
|
34
|
-
case
|
|
36
|
+
case _theme.THEME.normal:
|
|
35
37
|
default:
|
|
36
38
|
return {
|
|
37
39
|
bgColor: _color.colorOpacity['gray100_0.8'],
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
|
+
|
|
14
|
+
var _card = require("../../card");
|
|
15
|
+
|
|
16
|
+
var _isFetchingWrapper = _interopRequireDefault(require("../../is-fetching-wrapper"));
|
|
17
|
+
|
|
18
|
+
var _divider = _interopRequireDefault(require("../../divider"));
|
|
19
|
+
|
|
20
|
+
var _customizedLink = _interopRequireDefault(require("../../customized-link"));
|
|
21
|
+
|
|
22
|
+
var _rwd = require("../../rwd");
|
|
23
|
+
|
|
24
|
+
var _mockupSpec = _interopRequireDefault(require("../constants/mockup-spec"));
|
|
25
|
+
|
|
26
|
+
var _entityPath = _interopRequireDefault(require("@twreporter/core/lib/constants/entity-path"));
|
|
27
|
+
|
|
28
|
+
var _mediaQuery = _interopRequireDefault(require("@twreporter/core/lib/utils/media-query"));
|
|
29
|
+
|
|
30
|
+
var _date = require("@twreporter/core/lib/utils/date");
|
|
31
|
+
|
|
32
|
+
var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
|
|
33
|
+
|
|
34
|
+
var _theme = require("@twreporter/core/lib/constants/theme");
|
|
35
|
+
|
|
36
|
+
var _forEach = _interopRequireDefault(require("lodash/forEach"));
|
|
37
|
+
|
|
38
|
+
var _get = _interopRequireDefault(require("lodash/get"));
|
|
39
|
+
|
|
40
|
+
var _map = _interopRequireDefault(require("lodash/map"));
|
|
41
|
+
|
|
42
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
43
|
+
|
|
44
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
45
|
+
|
|
46
|
+
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); }
|
|
47
|
+
|
|
48
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
49
|
+
|
|
50
|
+
var _ = {
|
|
51
|
+
forEach: _forEach["default"],
|
|
52
|
+
get: _get["default"],
|
|
53
|
+
map: _map["default"]
|
|
54
|
+
};
|
|
55
|
+
var Card = /*#__PURE__*/(0, _styledComponents["default"])(_card.ArticleCard).withConfig({
|
|
56
|
+
displayName: "card-list__Card",
|
|
57
|
+
componentId: "yvf001-0"
|
|
58
|
+
})(["width:100%;"]);
|
|
59
|
+
|
|
60
|
+
var Container = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
61
|
+
displayName: "card-list__Container",
|
|
62
|
+
componentId: "yvf001-1"
|
|
63
|
+
})(["display:flex;flex-direction:column;a{color:inherit;text-decoration:none;}"]);
|
|
64
|
+
|
|
65
|
+
var Item = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
66
|
+
displayName: "card-list__Item",
|
|
67
|
+
componentId: "yvf001-2"
|
|
68
|
+
})(["margin-bottom:24px;&:hover{opacity:0.7;}&:last-child{margin-bottom:0;}width:100%;", ""], _mediaQuery["default"].mobileOnly(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: ", "%;\n "])), _mockupSpec["default"].mobile.cardWidth / _mockupSpec["default"].mobile.maxWidth * 100));
|
|
69
|
+
|
|
70
|
+
var StyledDivider = /*#__PURE__*/(0, _styledComponents["default"])(_divider["default"]).withConfig({
|
|
71
|
+
displayName: "card-list__StyledDivider",
|
|
72
|
+
componentId: "yvf001-3"
|
|
73
|
+
})(["margin-top:24px;"]);
|
|
74
|
+
|
|
75
|
+
var FlexItem = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
76
|
+
displayName: "card-list__FlexItem",
|
|
77
|
+
componentId: "yvf001-4"
|
|
78
|
+
})(["width:", "px;margin:0 auto;display:flex;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;", " ", " ", ""], _mockupSpec["default"].hd.maxWidth, _mediaQuery["default"].desktopOnly(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n width: ", "px;\n "])), _mockupSpec["default"].desktop.maxWidth), _mediaQuery["default"].tabletOnly(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n width: ", "px;\n "])), _mockupSpec["default"].tablet.maxWidth), _mediaQuery["default"].mobileOnly(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n width: 100%;\n justify-content: center;\n "]))));
|
|
79
|
+
|
|
80
|
+
var Content = (0, _isFetchingWrapper["default"])(FlexItem);
|
|
81
|
+
|
|
82
|
+
var CardList = function CardList(_ref) {
|
|
83
|
+
var _ref$data = _ref.data,
|
|
84
|
+
data = _ref$data === void 0 ? [] : _ref$data,
|
|
85
|
+
_ref$isFetching = _ref.isFetching,
|
|
86
|
+
isFetching = _ref$isFetching === void 0 ? false : _ref$isFetching,
|
|
87
|
+
_ref$showSpinner = _ref.showSpinner,
|
|
88
|
+
showSpinner = _ref$showSpinner === void 0 ? false : _ref$showSpinner,
|
|
89
|
+
_ref$releaseBranch = _ref.releaseBranch,
|
|
90
|
+
releaseBranch = _ref$releaseBranch === void 0 ? _releaseBranch.BRANCH.master : _ref$releaseBranch;
|
|
91
|
+
|
|
92
|
+
if (!data || data.length === 0) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
var getFirstCategory = function getFirstCategory(categorySets) {
|
|
97
|
+
var res = '';
|
|
98
|
+
|
|
99
|
+
_.forEach(categorySets, function (_ref2) {
|
|
100
|
+
var category = _ref2.category,
|
|
101
|
+
subcategory = _ref2.subcategory;
|
|
102
|
+
|
|
103
|
+
if (category && category.name) {
|
|
104
|
+
res = category.name;
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
return res;
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
var listJSX = _.map(data, function (item) {
|
|
113
|
+
var id = item.id,
|
|
114
|
+
title = item.title,
|
|
115
|
+
slug = item.slug,
|
|
116
|
+
style = item.style;
|
|
117
|
+
var isInteractiveArticle = style === _theme.ARTICLE_THEME.interactive;
|
|
118
|
+
var link = {
|
|
119
|
+
to: "".concat(isInteractiveArticle ? _entityPath["default"].interactiveArticle : _entityPath["default"].article).concat(slug),
|
|
120
|
+
target: isInteractiveArticle ? '_blank' : ''
|
|
121
|
+
};
|
|
122
|
+
var articleCardProps = {
|
|
123
|
+
title: title,
|
|
124
|
+
description: _.get(item, 'og_description', ''),
|
|
125
|
+
image: {
|
|
126
|
+
alt: _.get(item, 'hero_image.description', ''),
|
|
127
|
+
src: _.get(item, 'hero_image.resized_targets.mobile.url') || _.get(item, 'og_image.resized_targets.mobile.url')
|
|
128
|
+
},
|
|
129
|
+
category: getFirstCategory(_.get(item, 'category_set', [])),
|
|
130
|
+
date: (0, _date.date2yyyymmdd)(_.get(item, 'published_date'), '/'),
|
|
131
|
+
releaseBranch: releaseBranch
|
|
132
|
+
};
|
|
133
|
+
return /*#__PURE__*/_react["default"].createElement(Item, {
|
|
134
|
+
key: id
|
|
135
|
+
}, /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], link, /*#__PURE__*/_react["default"].createElement(_rwd.DesktopAndAbove, null, /*#__PURE__*/_react["default"].createElement(Card, _extends({}, articleCardProps, {
|
|
136
|
+
size: _card.ArticleCard.Size.L
|
|
137
|
+
}))), /*#__PURE__*/_react["default"].createElement(_rwd.TabletAndBelow, null, /*#__PURE__*/_react["default"].createElement(Card, _extends({}, articleCardProps, {
|
|
138
|
+
size: _card.ArticleCard.Size.S
|
|
139
|
+
}))), /*#__PURE__*/_react["default"].createElement(StyledDivider, null)));
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
return /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(Content, {
|
|
143
|
+
isFetching: isFetching,
|
|
144
|
+
showSpinner: showSpinner
|
|
145
|
+
}, listJSX));
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
CardList.propTypes = {
|
|
149
|
+
data: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
|
150
|
+
id: _propTypes["default"].string.isRequired,
|
|
151
|
+
title: _propTypes["default"].string.isRequired,
|
|
152
|
+
og_description: _propTypes["default"].string.isRequired,
|
|
153
|
+
hero_image: _propTypes["default"].object,
|
|
154
|
+
og_image: _propTypes["default"].object,
|
|
155
|
+
category_set: _propTypes["default"].array,
|
|
156
|
+
published_date: _propTypes["default"].string.isRequired,
|
|
157
|
+
slug: _propTypes["default"].string.isRequired,
|
|
158
|
+
style: _propTypes["default"].string
|
|
159
|
+
})),
|
|
160
|
+
isFetching: _propTypes["default"].bool,
|
|
161
|
+
showSpinner: _propTypes["default"].bool,
|
|
162
|
+
releaseBranch: _releaseBranch.BRANCH_PROP_TYPES
|
|
163
|
+
};
|
|
164
|
+
var _default = CardList;
|
|
165
|
+
exports["default"] = _default;
|
|
@@ -41,6 +41,9 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
41
41
|
|
|
42
42
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
43
43
|
|
|
44
|
+
/* Notice: this component is deprecated.
|
|
45
|
+
* Please migrate to use @twerporter/react-components/lib/image-with-fallback.js
|
|
46
|
+
*/
|
|
44
47
|
var LogoIcon = function LogoIcon(props) {
|
|
45
48
|
return /*#__PURE__*/_react["default"].createElement("svg", props, /*#__PURE__*/_react["default"].createElement("title", null, "Fill 1"), /*#__PURE__*/_react["default"].createElement("path", {
|
|
46
49
|
d: "M5 112.563a5.001 5.001 0 0 1-5-5V4.999C0 3.298.866 1.713 2.298.794A5.003 5.003 0 0 1 7.08.451l42.724 19.521a5 5 0 0 1-4.156 9.097L10 12.783V99.78l49.843-22.775V32.014a5 5 0 0 1 3.669-4.82l37.105-10.247a4.999 4.999 0 0 1 6.331 4.819v67.44a5.003 5.003 0 0 1-6.142 4.868l-20.106-4.716a5 5 0 0 1 2.284-9.736l13.965 3.275V28.332L69.844 35.82v44.4a5 5 0 0 1-2.922 4.549L7.078 112.11a4.996 4.996 0 0 1-2.079.451",
|