@desynova-digital/components 9.2.28 → 9.2.29

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.
@@ -96,7 +96,8 @@ CardV2.propTypes = {
96
96
  bgColor: _propTypes["default"].oneOf(['primary', 'secondary']),
97
97
  isCardv2: _propTypes["default"].bool,
98
98
  nestedDropdownData: _propTypes["default"].arrayOf(_propTypes["default"].object),
99
- onNestedDropdownSelect: _propTypes["default"].func
99
+ onNestedDropdownSelect: _propTypes["default"].func,
100
+ isSearchPageCard: _propTypes["default"].bool
100
101
  };
101
102
  CardV2.defaultProps = {
102
103
  isSegment: false,
@@ -105,6 +106,7 @@ CardV2.defaultProps = {
105
106
  type: 'asset',
106
107
  bgColor: 'primary',
107
108
  thumbnail: 'https://thumbnail.desynova.com/default_placeholder/Contido_Placeholder_Image.png',
108
- preview: ''
109
+ preview: '',
110
+ isSearchPageCard: false
109
111
  };
110
112
  var _default = exports["default"] = CardV2;
@@ -18,7 +18,7 @@ var _tokens2 = require("../../../tokens");
18
18
  var _statusV = _interopRequireDefault(require("../../../tokens/statusV2"));
19
19
  var _cardV = require("./cardV2");
20
20
  var _utils = require("../../_helpers/utils");
21
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24; // atoms
21
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25; // atoms
22
22
  // tokens
23
23
  // styles
24
24
  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); }
@@ -177,7 +177,7 @@ var IconButtonStyles = (0, _styledComponents["default"])(function (props) {
177
177
  });
178
178
  var CardHeader = _styledComponents["default"].div(_templateObject19 || (_templateObject19 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n padding: 10px;\n"])));
179
179
  var BottomActionContainer = _styledComponents["default"].div(_templateObject20 || (_templateObject20 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n bottom: 8px;\n right: 8px;\n display: flex;\n align-items: center;\n gap: 6px;\n z-index: 3;\n opacity: 1;\n"])));
180
- var SegmentTimeline = _styledComponents["default"].div(_templateObject21 || (_templateObject21 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n height: 5px;\n position: absolute;\n top: 105px;\n left: 0;\n background: rgba(48, 63, 81, 0.85);\n border-radius: 2px;\n"])));
180
+ var SegmentTimeline = _styledComponents["default"].div(_templateObject21 || (_templateObject21 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n height: 5px;\n position: absolute;\n top: 105px;\n left: 0;\n background: rgba(12, 20, 29, 0.6);\n border-radius: 2px;\n"])));
181
181
  var SegmentTimelinePopup = _styledComponents["default"].div(_templateObject22 || (_templateObject22 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n width: max-content;\n max-width: calc(100% - 8px);\n min-height: 28px;\n padding: 6px 8px;\n box-sizing: border-box;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n background: var(--Color-Text-color-Pure-White, #fff);\n position: absolute;\n bottom: calc(100% + 6px);\n left: ", ";\n right: ", ";\n transform: ", ";\n box-shadow: 0 10px 30px rgba(13, 24, 41, 0.12);\n opacity: 0;\n visibility: hidden;\n transition:\n opacity 120ms ease,\n visibility 120ms ease;\n z-index: 20;\n\n span {\n color: #0b0f15;\n font-family: SFUIText-Regular;\n font-size: 10px;\n line-height: 12px;\n text-align: center;\n white-space: normal;\n overflow-wrap: anywhere;\n }\n"])), function (_ref13) {
182
182
  var alignment = _ref13.alignment,
183
183
  left = _ref13.left;
@@ -189,15 +189,22 @@ var SegmentTimelinePopup = _styledComponents["default"].div(_templateObject22 ||
189
189
  var alignment = _ref15.alignment;
190
190
  return alignment === "center" ? "translateX(-50%)" : "none";
191
191
  });
192
- var SegmentRangeMarker = _styledComponents["default"].div(_templateObject23 || (_templateObject23 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n top: -6px;\n left: ", ";\n width: ", ";\n height: calc(100% + 12px);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 15;\n\n &:hover + ", " {\n opacity: 1;\n visibility: visible;\n }\n"])), function (_ref16) {
192
+ var SegmentTimelinePointer = _styledComponents["default"].span(_templateObject23 || (_templateObject23 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n left: ", ";\n bottom: calc(100% + 1px);\n transform: translateX(-50%);\n width: 0;\n height: 0;\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 8px solid ", ";\n opacity: 0;\n visibility: hidden;\n transition:\n opacity 120ms ease,\n visibility 120ms ease;\n z-index: 19;\n pointer-events: none;\n"])), function (_ref16) {
193
193
  var left = _ref16.left;
194
194
  return left;
195
195
  }, function (_ref17) {
196
- var width = _ref17.width;
196
+ var theme = _ref17.theme;
197
+ return _tokens.colors[theme].card.themeColor;
198
+ });
199
+ var SegmentRangeMarker = _styledComponents["default"].div(_templateObject24 || (_templateObject24 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n top: -6px;\n left: ", ";\n width: ", ";\n height: calc(100% + 12px);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 15;\n\n &:hover + ", " {\n opacity: 1;\n visibility: visible;\n }\n\n &:hover + ", " + ", " {\n opacity: 1;\n visibility: visible;\n }\n"])), function (_ref18) {
200
+ var left = _ref18.left;
201
+ return left;
202
+ }, function (_ref19) {
203
+ var width = _ref19.width;
197
204
  return width;
198
- }, SegmentTimelinePopup);
199
- var SegmentRangeBar = _styledComponents["default"].div(_templateObject24 || (_templateObject24 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n height: 5px;\n border-radius: 2px;\n background: ", ";\n"])), function (_ref18) {
200
- var theme = _ref18.theme;
205
+ }, SegmentTimelinePopup, SegmentTimelinePopup, SegmentTimelinePointer);
206
+ var SegmentRangeBar = _styledComponents["default"].div(_templateObject25 || (_templateObject25 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n height: 5px;\n border-radius: 2px;\n background: ", ";\n"])), function (_ref20) {
207
+ var theme = _ref20.theme;
201
208
  return _tokens.colors[theme].card.themeColor;
202
209
  });
203
210
  var hasTimecodeFormat = function hasTimecodeFormat(value) {
@@ -235,13 +242,55 @@ var getStatusHexColor = function getStatusHexColor(status) {
235
242
  });
236
243
  return (matched === null || matched === void 0 ? void 0 : (_matched$hex = matched.hex) === null || _matched$hex === void 0 ? void 0 : _matched$hex.background) || "#18B96E";
237
244
  };
245
+ var ARCHIVED_STATUS_CONFIG = {
246
+ 0: {
247
+ label: "Pending",
248
+ color: "#AFB2BA"
249
+ },
250
+ pending: {
251
+ label: "Pending",
252
+ color: "#AFB2BA"
253
+ },
254
+ 1: {
255
+ label: "Archived",
256
+ color: "#18B96E"
257
+ },
258
+ archive: {
259
+ label: "Archived",
260
+ color: "#18B96E"
261
+ },
262
+ archived: {
263
+ label: "Archived",
264
+ color: "#18B96E"
265
+ },
266
+ 2: {
267
+ label: "Error",
268
+ color: "#FF6C56"
269
+ },
270
+ error: {
271
+ label: "Error",
272
+ color: "#FF6C56"
273
+ },
274
+ 3: {
275
+ label: "In Progress",
276
+ color: "#FF8D29"
277
+ },
278
+ inprogress: {
279
+ label: "In Progress",
280
+ color: "#FF8D29"
281
+ },
282
+ in_progress: {
283
+ label: "In Progress",
284
+ color: "#FF8D29"
285
+ }
286
+ };
287
+ var getArchivedStatusHexColor = function getArchivedStatusHexColor(status) {
288
+ var _ARCHIVED_STATUS_CONF;
289
+ return (_ARCHIVED_STATUS_CONF = ARCHIVED_STATUS_CONFIG[normalizeStatusCode(status)]) === null || _ARCHIVED_STATUS_CONF === void 0 ? void 0 : _ARCHIVED_STATUS_CONF.color;
290
+ };
238
291
  var getStatusLabel = function getStatusLabel(status) {
239
- var normalized = normalizeStatusCode(status || "archived");
240
- if (normalized === "0") return "Pending";
241
- if (normalized === "3") return "In Progress";
242
- if (normalized === "2") return "Error";
243
- if (normalized === "1") return "Archive";
244
- return null;
292
+ var _ARCHIVED_STATUS_CONF2;
293
+ return ((_ARCHIVED_STATUS_CONF2 = ARCHIVED_STATUS_CONFIG[normalizeStatusCode(status)]) === null || _ARCHIVED_STATUS_CONF2 === void 0 ? void 0 : _ARCHIVED_STATUS_CONF2.label) || null;
245
294
  };
246
295
  var ThumbnailV2 = function ThumbnailV2(props) {
247
296
  var theme = props.theme,
@@ -273,9 +322,13 @@ var ThumbnailV2 = function ThumbnailV2(props) {
273
322
  isSegment = props.isSegment,
274
323
  is_segment = props.is_segment,
275
324
  frame_rate = props.frame_rate,
276
- archived_status = props.archived_status;
325
+ archived_status = props.archived_status,
326
+ isSearchPageCard = props.isSearchPageCard;
277
327
  var effectiveFrameRate = Number(frame_rate) || 25;
278
- var displayDuration = duration !== undefined && duration !== null && duration !== "" ? getDisplayTimecode(duration, effectiveFrameRate) : "00:00:51:20";
328
+ var durationValue = duration === undefined || duration === null ? "" : String(duration).trim();
329
+ var hasDuration = Boolean(durationValue) && (hasTimecodeFormat(durationValue) || Number.isFinite(Number(durationValue)));
330
+ var displayDuration = hasDuration ? getDisplayTimecode(durationValue, effectiveFrameRate) : "";
331
+ var displayAssetType = asset_type === undefined || asset_type === null ? "" : String(asset_type).trim();
279
332
  var actionItems = Array.isArray(actions) ? actions : [];
280
333
  var isSegmentCard = Boolean(isSegment || is_segment);
281
334
  var totalSeconds = getTimeInSeconds(full_duration || duration, effectiveFrameRate);
@@ -341,24 +394,25 @@ var ThumbnailV2 = function ThumbnailV2(props) {
341
394
  }, [showTopRightAction]);
342
395
  var handleMouseMove = (0, _react.useCallback)(function (event) {
343
396
  if (iframeImageBlockRef.current && hoverPointerRef.current && iframeImageRef.current) {
344
- var iframeBlockHeight = iframeImageBlockRef.current.offsetHeight;
397
+ var iframeBlock = iframeImageBlockRef.current;
398
+ var iframeImage = iframeImageRef.current;
399
+ var iframeBlockHeight = iframeBlock.offsetHeight;
345
400
  var iframeOgHeight = 120;
346
- var ogHeight = iframeImageRef.current.naturalHeight;
347
- var offsetHeight = iframeImageRef.current.offsetHeight;
348
- var offsetWidth = iframeImageRef.current.offsetWidth;
349
- var iframeCount = ogHeight / iframeOgHeight;
401
+ var ogHeight = iframeImage.naturalHeight;
402
+ var offsetHeight = iframeImage.offsetHeight;
403
+ var rect = iframeBlock.getBoundingClientRect();
404
+ var offsetWidth = rect.width;
405
+ var iframeCount = Math.max(1, Math.floor(ogHeight / iframeOgHeight));
406
+ if (!ogHeight || !offsetHeight || !offsetWidth) return;
350
407
  var iframeOffsetHeight = offsetHeight / iframeCount;
351
408
  var imageChangePoint = offsetWidth / iframeCount;
352
409
  var offsetTop = Math.abs(iframeBlockHeight - iframeOffsetHeight) / 2;
353
- hoverPointerRef.current.style.left = "".concat(event.offsetX, "px");
354
- var imageNum = parseInt(event.offsetX / imageChangePoint, 10) || 1;
355
- var imageTop = iframeOffsetHeight * imageNum + offsetTop;
356
- if (imageTop > offsetHeight) {
357
- imageTop = offsetHeight + offsetTop - iframeOffsetHeight;
358
- }
359
- iframeImageRef.current.style.top = "-".concat(imageTop, "px");
410
+ var pointerX = Math.max(0, Math.min(offsetWidth - 1, event.clientX - rect.left));
411
+ var imageNum = Math.min(iframeCount - 1, Math.floor(pointerX / imageChangePoint));
412
+ hoverPointerRef.current.style.left = "".concat(pointerX, "px");
413
+ iframeImage.style.top = "".concat(offsetTop - iframeOffsetHeight * imageNum - 11, "px");
360
414
  }
361
- }, [iframeImageBlockRef, hoverPointerRef, iframeImageRef]);
415
+ }, []);
362
416
  var handleThumbnailClick = (0, _react.useCallback)(function (e) {
363
417
  if (!isClickPrevented) {
364
418
  actionClick(e, "play", ingest_db_id);
@@ -396,7 +450,7 @@ var ThumbnailV2 = function ThumbnailV2(props) {
396
450
  theme: props.theme,
397
451
  data_type: data_type
398
452
  }, getStatusLabel(archived_status) ? /*#__PURE__*/_react["default"].createElement(ThumbnailStatusPill, {
399
- bgColor: getStatusHexColor(archived_status)
453
+ bgColor: getArchivedStatusHexColor(archived_status)
400
454
  }, /*#__PURE__*/_react["default"].createElement("span", {
401
455
  className: "status-dot"
402
456
  }), getStatusLabel(archived_status)) : null, hasSegmentTimeline && /*#__PURE__*/_react["default"].createElement(SegmentTimeline, null, /*#__PURE__*/_react["default"].createElement(SegmentRangeMarker, {
@@ -408,9 +462,12 @@ var ThumbnailV2 = function ThumbnailV2(props) {
408
462
  })), /*#__PURE__*/_react["default"].createElement(SegmentTimelinePopup, {
409
463
  alignment: segmentPopupAlignment,
410
464
  left: "".concat(segmentCenterPercent, "%")
411
- }, /*#__PURE__*/_react["default"].createElement("span", null, "".concat(displayInTimecode, " to ").concat(displayOutTimecode)))), asset_type ? /*#__PURE__*/_react["default"].createElement(AssetTypeChip, {
465
+ }, /*#__PURE__*/_react["default"].createElement("span", null, "".concat(displayInTimecode, " to ").concat(displayOutTimecode))), /*#__PURE__*/_react["default"].createElement(SegmentTimelinePointer, {
466
+ theme: theme,
467
+ left: "".concat(segmentCenterPercent, "%")
468
+ })), isSearchPageCard && displayAssetType ? /*#__PURE__*/_react["default"].createElement(AssetTypeChip, {
412
469
  theme: theme
413
- }, asset_type) : null, /*#__PURE__*/_react["default"].createElement(CardHeader, null, /*#__PURE__*/_react["default"].createElement(_cardV.DivStyles, {
470
+ }, displayAssetType) : null, /*#__PURE__*/_react["default"].createElement(CardHeader, null, /*#__PURE__*/_react["default"].createElement(_cardV.DivStyles, {
414
471
  theme: props.theme,
415
472
  className: "asset-card-thumbnail-head",
416
473
  display: "flex",
@@ -497,7 +554,7 @@ var ThumbnailV2 = function ThumbnailV2(props) {
497
554
  className: "iframe-image",
498
555
  src: iframeurl,
499
556
  alt: "preview"
500
- })) || null, /*#__PURE__*/_react["default"].createElement(DurationBadge, null, displayDuration));
557
+ })) || null, isSearchPageCard && displayDuration ? /*#__PURE__*/_react["default"].createElement(DurationBadge, null, displayDuration) : null);
501
558
  };
502
559
  ThumbnailV2.propTypes = {
503
560
  theme: _propTypes["default"].oneOf(["light", "dark", "nexc"]),
@@ -523,13 +580,15 @@ ThumbnailV2.propTypes = {
523
580
  duration: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
524
581
  isSegment: _propTypes["default"].bool,
525
582
  is_segment: _propTypes["default"].bool,
526
- frame_rate: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number])
583
+ frame_rate: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
584
+ isSearchPageCard: _propTypes["default"].bool
527
585
  };
528
586
  ThumbnailV2.defaultProps = {
529
587
  theme: "dark",
530
588
  width: "lg",
531
589
  thumbnail: "https://thumbnail.desynova.com/default_placeholder/Contido_Placeholder_Image.png",
532
590
  iframeurl: "",
533
- isAdobe: false
591
+ isAdobe: false,
592
+ isSearchPageCard: false
534
593
  };
535
594
  var _default = exports["default"] = ThumbnailV2;
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@desynova-digital/components",
3
- "version": "9.2.28",
3
+ "version": "9.2.29",
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.2.28",
10
+ "@desynova-digital/tokens": "9.2.29",
11
11
  "prop-types": "^15.7.2",
12
12
  "styled-components": "^4.3.2"
13
13
  },