@desynova-digital/components 9.2.30 → 9.3.0
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.
|
@@ -331,6 +331,7 @@ var ThumbnailV2 = function ThumbnailV2(props) {
|
|
|
331
331
|
var durationValue = resolvedDuration === undefined || resolvedDuration === null ? "" : String(resolvedDuration).trim();
|
|
332
332
|
var hasDuration = Boolean(durationValue) && (hasTimecodeFormat(durationValue) || Number.isFinite(Number(durationValue)));
|
|
333
333
|
var displayDuration = hasDuration ? getDisplayTimecode(durationValue, effectiveFrameRate) : "";
|
|
334
|
+
var supportsDuration = ["audio", "video"].includes(String(file_type || "").trim().toLowerCase());
|
|
334
335
|
var displayAssetType = asset_type === undefined || asset_type === null ? "" : String(asset_type).trim();
|
|
335
336
|
var actionItems = Array.isArray(actions) ? actions : [];
|
|
336
337
|
var isSegmentCard = Boolean(isSegment || is_segment);
|
|
@@ -557,7 +558,7 @@ var ThumbnailV2 = function ThumbnailV2(props) {
|
|
|
557
558
|
className: "iframe-image",
|
|
558
559
|
src: iframeurl,
|
|
559
560
|
alt: "preview"
|
|
560
|
-
})) || null, isSearchPageCard && displayDuration ? /*#__PURE__*/_react["default"].createElement(DurationBadge, null, displayDuration) : null);
|
|
561
|
+
})) || null, isSearchPageCard && supportsDuration && displayDuration ? /*#__PURE__*/_react["default"].createElement(DurationBadge, null, displayDuration) : null);
|
|
561
562
|
};
|
|
562
563
|
ThumbnailV2.propTypes = {
|
|
563
564
|
theme: _propTypes["default"].oneOf(["light", "dark", "nexc"]),
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _pageSearchCard = _interopRequireDefault(require("./pageSearchCard"));
|
|
9
|
+
var _default = exports["default"] = _pageSearchCard["default"];
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
14
|
+
var _tokens = require("@desynova-digital/tokens");
|
|
15
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
16
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
17
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
18
|
+
var getSearchAccent = function getSearchAccent(theme) {
|
|
19
|
+
var _colors$theme, _colors$theme$searchH, _colors$dark, _colors$dark$searchHe;
|
|
20
|
+
return ((_colors$theme = _tokens.colors[theme]) === null || _colors$theme === void 0 ? void 0 : (_colors$theme$searchH = _colors$theme.searchHeader) === null || _colors$theme$searchH === void 0 ? void 0 : _colors$theme$searchH.mainColor) || ((_colors$dark = _tokens.colors.dark) === null || _colors$dark === void 0 ? void 0 : (_colors$dark$searchHe = _colors$dark.searchHeader) === null || _colors$dark$searchHe === void 0 ? void 0 : _colors$dark$searchHe.mainColor);
|
|
21
|
+
};
|
|
22
|
+
var FALLBACK_IMAGE = 'https://ctngcthumbnailprod.contido.io/showpage_fallback.png';
|
|
23
|
+
var capitalizeFirstLetter = function capitalizeFirstLetter(value) {
|
|
24
|
+
if (typeof value !== 'string' || !value) return value;
|
|
25
|
+
return "".concat(value.charAt(0).toUpperCase()).concat(value.slice(1));
|
|
26
|
+
};
|
|
27
|
+
var Card = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n width: ", ";\n height: ", ";\n border-radius: 10px;\n overflow: visible;\n cursor: pointer;\n background: #0c141d;\n flex-shrink: 0;\n box-sizing: border-box;\n box-shadow: 0 8px 16px rgba(0, 0, 0, 0.18);\n transform: scale(1);\n transform-origin: center;\n z-index: 0;\n isolation: isolate;\n transition: transform 240ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 240ms cubic-bezier(0.16, 1, 0.3, 1);\n will-change: transform;\n\n &:hover {\n transform: scale(1.035);\n z-index: 5;\n box-shadow: 0 22px 60px rgba(0, 0, 0, 0.6);\n }\n"])), function (_ref) {
|
|
28
|
+
var width = _ref.width;
|
|
29
|
+
return width || '178px';
|
|
30
|
+
}, function (_ref2) {
|
|
31
|
+
var height = _ref2.height;
|
|
32
|
+
return height || '258px';
|
|
33
|
+
});
|
|
34
|
+
var Poster = _styledComponents["default"].img(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n display: block;\n background: #0c141d;\n border-radius: inherit;\n\n &.fallback-image {\n object-fit: cover;\n object-position: center;\n }\n"])));
|
|
35
|
+
var Gradient = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, rgba(12, 20, 29, 0.7) 60%, rgba(12, 20, 29, 0.97) 100%);\n"])));
|
|
36
|
+
var Badge = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n top: 12px;\n left: 12px;\n display: inline-flex;\n height: 16.75px;\n padding: 2px 6px;\n align-items: center;\n justify-content: center;\n font-family: 'SFUIText-Medium';\n border-radius: 4px;\n background: ", ";\n color: #0c141d;\n font-size: 10px;\n font-weight: 700;\n line-height: 1;\n letter-spacing: 0.6px;\n text-transform: uppercase;\n z-index: 2;\n"])), function (_ref3) {
|
|
37
|
+
var theme = _ref3.theme;
|
|
38
|
+
return getSearchAccent(theme);
|
|
39
|
+
});
|
|
40
|
+
var Content = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n left: 16px;\n right: 16px;\n bottom: 16px;\n z-index: 2;\n"])));
|
|
41
|
+
var Title = _styledComponents["default"].h3(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0;\n color: #fff;\n font-family: 'SFUIText-Medium';\n font-size: 13px;\n font-style: normal;\n font-weight: 700;\n line-height: 18px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
|
|
42
|
+
var Subtitle = _styledComponents["default"].p(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 2px 0 0;\n color: #5b7088;\n font-family: 'SFUIText-Medium';\n font-size: 10px;\n font-style: normal;\n font-weight: 400;\n line-height: 15px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
|
|
43
|
+
var PageSearchCard = function PageSearchCard(_ref4) {
|
|
44
|
+
var thumbnail = _ref4.thumbnail,
|
|
45
|
+
show_name = _ref4.show_name,
|
|
46
|
+
asset_language = _ref4.asset_language,
|
|
47
|
+
asset_type = _ref4.asset_type,
|
|
48
|
+
channel_name = _ref4.channel_name,
|
|
49
|
+
_ref4$title = _ref4.title,
|
|
50
|
+
title = _ref4$title === void 0 ? 'Ghazi Attack' : _ref4$title,
|
|
51
|
+
_ref4$subtitle = _ref4.subtitle,
|
|
52
|
+
subtitle = _ref4$subtitle === void 0 ? 'Star Plus' : _ref4$subtitle,
|
|
53
|
+
_ref4$tag = _ref4.tag,
|
|
54
|
+
tag = _ref4$tag === void 0 ? 'MOVIE' : _ref4$tag,
|
|
55
|
+
_ref4$theme = _ref4.theme,
|
|
56
|
+
theme = _ref4$theme === void 0 ? 'dark' : _ref4$theme,
|
|
57
|
+
_ref4$width = _ref4.width,
|
|
58
|
+
width = _ref4$width === void 0 ? '220px' : _ref4$width,
|
|
59
|
+
_ref4$height = _ref4.height,
|
|
60
|
+
height = _ref4$height === void 0 ? '292px' : _ref4$height,
|
|
61
|
+
onClick = _ref4.onClick;
|
|
62
|
+
var effectiveTitle = show_name || title;
|
|
63
|
+
var effectiveTag = asset_type || tag;
|
|
64
|
+
var normalizedAssetType = String(effectiveTag).toLowerCase();
|
|
65
|
+
var effectiveSubtitle = subtitle;
|
|
66
|
+
if (normalizedAssetType === 'movie') {
|
|
67
|
+
effectiveSubtitle = capitalizeFirstLetter(asset_language || '');
|
|
68
|
+
} else if (normalizedAssetType === 'show') {
|
|
69
|
+
effectiveSubtitle = channel_name || '';
|
|
70
|
+
}
|
|
71
|
+
var _useState = (0, _react.useState)(!thumbnail),
|
|
72
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
73
|
+
hasImageError = _useState2[0],
|
|
74
|
+
setHasImageError = _useState2[1];
|
|
75
|
+
(0, _react.useEffect)(function () {
|
|
76
|
+
setHasImageError(!thumbnail);
|
|
77
|
+
}, [thumbnail]);
|
|
78
|
+
var imageSource = hasImageError ? FALLBACK_IMAGE : thumbnail;
|
|
79
|
+
return /*#__PURE__*/_react["default"].createElement(Card, {
|
|
80
|
+
width: width,
|
|
81
|
+
height: height,
|
|
82
|
+
theme: theme,
|
|
83
|
+
onClick: onClick
|
|
84
|
+
}, /*#__PURE__*/_react["default"].createElement(Poster, {
|
|
85
|
+
src: imageSource,
|
|
86
|
+
alt: effectiveTitle,
|
|
87
|
+
className: hasImageError ? 'fallback-image' : undefined,
|
|
88
|
+
onError: function onError() {
|
|
89
|
+
if (!hasImageError) setHasImageError(true);
|
|
90
|
+
}
|
|
91
|
+
}), /*#__PURE__*/_react["default"].createElement(Gradient, null), /*#__PURE__*/_react["default"].createElement(Badge, {
|
|
92
|
+
theme: theme
|
|
93
|
+
}, effectiveTag), /*#__PURE__*/_react["default"].createElement(Content, null, /*#__PURE__*/_react["default"].createElement(Title, null, effectiveTitle), effectiveSubtitle ? /*#__PURE__*/_react["default"].createElement(Subtitle, null, effectiveSubtitle) : null));
|
|
94
|
+
};
|
|
95
|
+
PageSearchCard.propTypes = {
|
|
96
|
+
thumbnail: _propTypes["default"].string,
|
|
97
|
+
show_name: _propTypes["default"].string,
|
|
98
|
+
asset_language: _propTypes["default"].string,
|
|
99
|
+
asset_type: _propTypes["default"].string,
|
|
100
|
+
channel_name: _propTypes["default"].string,
|
|
101
|
+
title: _propTypes["default"].string,
|
|
102
|
+
subtitle: _propTypes["default"].string,
|
|
103
|
+
tag: _propTypes["default"].string,
|
|
104
|
+
theme: _propTypes["default"].string,
|
|
105
|
+
width: _propTypes["default"].string,
|
|
106
|
+
height: _propTypes["default"].string,
|
|
107
|
+
onClick: _propTypes["default"].func
|
|
108
|
+
};
|
|
109
|
+
var _default = exports["default"] = PageSearchCard;
|
package/components.js
CHANGED
|
@@ -227,6 +227,12 @@ Object.defineProperty(exports, "PageHeader", {
|
|
|
227
227
|
return _pageHeader["default"];
|
|
228
228
|
}
|
|
229
229
|
});
|
|
230
|
+
Object.defineProperty(exports, "PageSearchCard", {
|
|
231
|
+
enumerable: true,
|
|
232
|
+
get: function get() {
|
|
233
|
+
return _pageSearchCard["default"];
|
|
234
|
+
}
|
|
235
|
+
});
|
|
230
236
|
Object.defineProperty(exports, "Pagination", {
|
|
231
237
|
enumerable: true,
|
|
232
238
|
get: function get() {
|
|
@@ -375,6 +381,7 @@ var _icon = _interopRequireWildcard(require("./atoms/icon"));
|
|
|
375
381
|
var _dateTime = _interopRequireDefault(require("./atoms/dateTime"));
|
|
376
382
|
var _card = _interopRequireDefault(require("./atoms/card"));
|
|
377
383
|
var _cardV = _interopRequireDefault(require("./atoms/cardV2"));
|
|
384
|
+
var _pageSearchCard = _interopRequireDefault(require("./atoms/pageSearchCard"));
|
|
378
385
|
var _videoCard = _interopRequireDefault(require("./atoms/videoCard"));
|
|
379
386
|
var _inputText = _interopRequireDefault(require("./atoms/inputText"));
|
|
380
387
|
var _textarea = _interopRequireDefault(require("./atoms/textarea"));
|
package/index.js
CHANGED
|
@@ -225,6 +225,12 @@ Object.defineProperty(exports, "PageHeader", {
|
|
|
225
225
|
return _components.PageHeader;
|
|
226
226
|
}
|
|
227
227
|
});
|
|
228
|
+
Object.defineProperty(exports, "PageSearchCard", {
|
|
229
|
+
enumerable: true,
|
|
230
|
+
get: function get() {
|
|
231
|
+
return _components.PageSearchCard;
|
|
232
|
+
}
|
|
233
|
+
});
|
|
228
234
|
Object.defineProperty(exports, "Pagination", {
|
|
229
235
|
enumerable: true,
|
|
230
236
|
get: function get() {
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@desynova-digital/components",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.3.0",
|
|
4
4
|
"description": "Components for Desynova Digital",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"author": "desynova-digital",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"repository": "desynova-digital",
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@desynova-digital/tokens": "9.
|
|
10
|
+
"@desynova-digital/tokens": "9.3.0",
|
|
11
11
|
"prop-types": "^15.7.2",
|
|
12
12
|
"styled-components": "^4.3.2"
|
|
13
13
|
},
|