indicator-ui 0.1.42 → 0.1.44

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.
Files changed (23) hide show
  1. package/dist/index.css +31 -14
  2. package/dist/index.css.map +1 -1
  3. package/dist/index.js +368 -295
  4. package/dist/index.js.map +1 -1
  5. package/dist/scss/ui/Buttons/styles/mixins/properties/secondary-color.scss +1 -1
  6. package/dist/scss/ui/Buttons/styles/mixins/properties/secondary-gray.scss +1 -1
  7. package/dist/types/src/hooks/ui-animations/assets/carouselAnimations.d.ts +3 -0
  8. package/dist/types/src/hooks/ui-animations/useCarousel.d.ts +4 -2
  9. package/dist/types/src/ui/MediaViewer/types/MediaViewerTypes.d.ts +0 -4
  10. package/dist/types/src/ui/MediaViewer/types/components/index.d.ts +0 -3
  11. package/dist/types/src/ui/MediaViewer/ui/MediaViewer.d.ts +1 -1
  12. package/dist/types/src/ui/MediaViewer/ui/components/ControlBar.d.ts +7 -2
  13. package/dist/types/src/ui/MediaViewer/ui/components/ImageViewer.d.ts +7 -2
  14. package/dist/types/src/ui/MediaViewer/ui/components/VideoViewer.d.ts +14 -2
  15. package/dist/types/src/ui/Toggle/types/ToggleTypes.d.ts +2 -0
  16. package/dist/types/src/ui/VideoPlayerBase/index.d.ts +0 -1
  17. package/dist/types/src/ui/VideoPlayerBase/ui/VideoPlayerBase.d.ts +68 -2
  18. package/package.json +1 -1
  19. package/dist/types/src/ui/MediaViewer/types/components/ControlBarTypes.d.ts +0 -9
  20. package/dist/types/src/ui/MediaViewer/types/components/ImageViewerTypes.d.ts +0 -3
  21. package/dist/types/src/ui/MediaViewer/types/components/VideoViewerTypes.d.ts +0 -6
  22. package/dist/types/src/ui/VideoPlayerBase/types/VideoPlayerBaseTypes.d.ts +0 -77
  23. package/dist/types/src/ui/VideoPlayerBase/types/index.d.ts +0 -1
package/dist/index.js CHANGED
@@ -54374,11 +54374,10 @@ function useBackdropModal() {
54374
54374
  _context.next = 2;
54375
54375
  return setIsShow.asyncDom(true);
54376
54376
  case 2:
54377
- console.log(ref);
54378
54377
  reinit();
54379
54378
  resizeObserverService.reinit();
54380
54379
  appearanceAnim();
54381
- case 6:
54380
+ case 5:
54382
54381
  case "end":
54383
54382
  return _context.stop();
54384
54383
  }
@@ -55643,6 +55642,19 @@ function CAROUSEL_ANIM() {
55643
55642
  });
55644
55643
  return timeline;
55645
55644
  };
55645
+ var instantJumpTo = function instantJumpTo() {
55646
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
55647
+ args[_key2] = arguments[_key2];
55648
+ }
55649
+ var track = args[0],
55650
+ timeline = args[1],
55651
+ params = args[2];
55652
+ var x = params.x;
55653
+ timeline.clear().time(0).set(track, {
55654
+ x: x
55655
+ });
55656
+ return timeline;
55657
+ };
55646
55658
  var getObjInitStyle = function getObjInitStyle() {
55647
55659
  return {
55648
55660
  overflow: "hidden"
@@ -55662,6 +55674,7 @@ function CAROUSEL_ANIM() {
55662
55674
  };
55663
55675
  return {
55664
55676
  jumpTo: jumpTo,
55677
+ instantJumpTo: instantJumpTo,
55665
55678
  getElInitStyle: getElInitStyle,
55666
55679
  getTrackInitStyle: getTrackInitStyle,
55667
55680
  getObjInitStyle: getObjInitStyle
@@ -56568,17 +56581,26 @@ function useCarousel() {
56568
56581
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
56569
56582
  args[_key] = arguments[_key];
56570
56583
  }
56571
- var _ = args[0],
56584
+ var ref = args[0],
56572
56585
  trackRef = args[1];
56573
- var _usePosition = usePosition.apply(void 0, args),
56586
+ var _usePosition = usePosition.apply(void 0, args.concat([{
56587
+ onResize: onResize
56588
+ }])),
56574
56589
  viewElement = _usePosition.viewElement,
56575
- viewElementInstance = _usePosition.viewElementInstance;
56590
+ viewElementInstant = _usePosition.viewElementInstant;
56576
56591
  var _useSimpleRefElementW = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useSimpleRefElementWork)(trackRef),
56577
56592
  _useSimpleRefElementW2 = _slicedToArray(_useSimpleRefElementW, 1),
56578
56593
  getTrack = _useSimpleRefElementW2[0];
56594
+ var _useSimpleRefElementW3 = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useSimpleRefElementWork)(ref),
56595
+ _useSimpleRefElementW4 = _slicedToArray(_useSimpleRefElementW3, 1),
56596
+ getObj = _useSimpleRefElementW4[0];
56579
56597
  var _CAROUSEL_ANIM = (0,_assets__WEBPACK_IMPORTED_MODULE_2__.CAROUSEL_ANIM)(),
56580
56598
  jumpTo = _CAROUSEL_ANIM.jumpTo,
56581
56599
  styles = _objectWithoutProperties(_CAROUSEL_ANIM, _excluded);
56600
+ var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(tryGetObjWidth()),
56601
+ _useState2 = _slicedToArray(_useState, 2),
56602
+ objWidth = _useState2[0],
56603
+ setObjWidth = _useState2[1];
56582
56604
  var getTrackChildren = function getTrackChildren() {
56583
56605
  var track = getTrack();
56584
56606
  if (!track) return [];
@@ -56602,24 +56624,41 @@ function useCarousel() {
56602
56624
  if (!isElementInObj) return;
56603
56625
  viewElement(el);
56604
56626
  };
56605
- var showElInstance = function showElInstance(target) {
56627
+ var showElInstant = function showElInstant(target) {
56606
56628
  var el = typeof target === 'number' ? getElByIndex(target) : target;
56607
56629
  // Проверяем наличие элемента в объекте
56608
56630
  var isElementInObj = el && checkElementExistence(el);
56609
56631
  if (!isElementInObj) return;
56610
- viewElementInstance(el);
56632
+ viewElementInstant(el);
56633
+ };
56634
+ var getElStyle = function getElStyle() {
56635
+ return _objectSpread({
56636
+ width: objWidth
56637
+ }, styles.getElInitStyle());
56611
56638
  };
56612
56639
  return _objectSpread({
56613
56640
  showEl: showEl,
56614
- showElInstance: showElInstance
56641
+ showElInstant: showElInstant,
56642
+ getElStyle: getElStyle
56615
56643
  }, styles);
56644
+ function tryGetObjWidth() {
56645
+ var obj = getObj();
56646
+ if (!obj) return undefined;
56647
+ return obj.offsetWidth;
56648
+ }
56649
+ function onResize() {
56650
+ setObjWidth(tryGetObjWidth());
56651
+ }
56616
56652
  }
56617
56653
  function usePosition() {
56618
56654
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
56619
56655
  args[_key2] = arguments[_key2];
56620
56656
  }
56621
56657
  var ref = args[0],
56622
- trackRef = args[1];
56658
+ trackRef = args[1],
56659
+ _args$ = args[2],
56660
+ callbacks = _args$ === void 0 ? {} : _args$;
56661
+ var onResize = callbacks.onResize;
56623
56662
  var viewedElementRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(undefined);
56624
56663
  var setViewedElement = function setViewedElement(value) {
56625
56664
  return viewedElementRef.current = value;
@@ -56629,23 +56668,23 @@ function usePosition() {
56629
56668
  };
56630
56669
  var _useTimeline = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useTimeline)(),
56631
56670
  getTimeline = _useTimeline.getTimeline;
56632
- var _useSimpleRefElementW3 = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useSimpleRefElementWork)(ref),
56633
- _useSimpleRefElementW4 = _slicedToArray(_useSimpleRefElementW3, 1),
56634
- getObj = _useSimpleRefElementW4[0];
56635
- var _useSimpleRefElementW5 = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useSimpleRefElementWork)(trackRef),
56671
+ var _useSimpleRefElementW5 = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useSimpleRefElementWork)(ref),
56636
56672
  _useSimpleRefElementW6 = _slicedToArray(_useSimpleRefElementW5, 1),
56637
- getTrack = _useSimpleRefElementW6[0];
56673
+ getObj = _useSimpleRefElementW6[0];
56674
+ var _useSimpleRefElementW7 = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useSimpleRefElementWork)(trackRef),
56675
+ _useSimpleRefElementW8 = _slicedToArray(_useSimpleRefElementW7, 1),
56676
+ getTrack = _useSimpleRefElementW8[0];
56638
56677
  var getPredictPosition = function getPredictPosition(el) {
56639
56678
  var trackRect = getTrackRect();
56640
56679
  var objRect = getObjRect();
56641
56680
  var elRect = getElRect(el);
56642
- var stepX = elRect.x - trackRect.x - objRect.width / 2 + elRect.elWidth / 2;
56681
+ var stepX = objRect.width * elRect.index;
56643
56682
  return {
56644
56683
  x: stepX,
56645
56684
  y: trackRect.y
56646
56685
  };
56647
56686
  };
56648
- (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useResizeWindowObserver)(function () {
56687
+ var resizeObjects = function resizeObjects() {
56649
56688
  var timeline = getTimeline();
56650
56689
  var viewedElement = getViewedElement();
56651
56690
  if (viewedElement) {
@@ -56653,14 +56692,25 @@ function usePosition() {
56653
56692
  if (isAnimationActive) {
56654
56693
  viewElement(viewedElement);
56655
56694
  } else {
56656
- viewElementInstance(viewedElement);
56695
+ viewElementInstant(viewedElement);
56657
56696
  }
56658
56697
  }
56659
- });
56698
+ onResize === null || onResize === void 0 || onResize();
56699
+ };
56700
+ (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useResizeObserver)([ref, trackRef], resizeObjects);
56701
+ (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useResizeWindowObserver)(resizeObjects);
56660
56702
  var changePositionInstance = function changePositionInstance(x) {
56703
+ // const track = getTrack()
56704
+ //
56705
+ // if (track) {
56706
+ // track.style.transform = `translateX(${x}px, 0)`
56707
+ // }
56708
+ var timeline = getTimeline();
56661
56709
  var track = getTrack();
56662
56710
  if (track) {
56663
- track.style.transform = "translateX(".concat(x, "px)");
56711
+ (0,_assets__WEBPACK_IMPORTED_MODULE_2__.CAROUSEL_ANIM)().instantJumpTo(track, timeline, {
56712
+ x: x
56713
+ }).play();
56664
56714
  }
56665
56715
  };
56666
56716
  var changePosition = function changePosition(x) {
@@ -56678,7 +56728,7 @@ function usePosition() {
56678
56728
  setViewedElement(el);
56679
56729
  changePosition(resPos);
56680
56730
  };
56681
- var viewElementInstance = function viewElementInstance(el) {
56731
+ var viewElementInstant = function viewElementInstant(el) {
56682
56732
  var predict = getPredictPosition(el);
56683
56733
  var resPos = -predict.x;
56684
56734
  setViewedElement(el);
@@ -56686,19 +56736,26 @@ function usePosition() {
56686
56736
  };
56687
56737
  return {
56688
56738
  viewElement: viewElement,
56689
- viewElementInstance: viewElementInstance
56739
+ viewElementInstant: viewElementInstant
56690
56740
  };
56741
+ function getChildIndex(el) {
56742
+ if (!el.parentElement) return -1;
56743
+ var parentChildren = Array.from(el.parentElement.children);
56744
+ return parentChildren.indexOf(el);
56745
+ }
56691
56746
  function getElRect(el) {
56692
56747
  var _el$getBoundingClient = el.getBoundingClientRect(),
56693
56748
  x = _el$getBoundingClient.x,
56694
56749
  y = _el$getBoundingClient.y;
56695
- var elWidth = el.offsetWidth;
56696
- var elHeight = el.offsetHeight;
56750
+ var width = el.offsetWidth;
56751
+ var height = el.offsetHeight;
56752
+ var index = getChildIndex(el);
56697
56753
  return {
56698
56754
  x: x,
56699
56755
  y: y,
56700
- elWidth: elWidth,
56701
- elHeight: elHeight
56756
+ width: width,
56757
+ height: height,
56758
+ index: index
56702
56759
  };
56703
56760
  }
56704
56761
  function getObjRect() {
@@ -69245,7 +69302,7 @@ __webpack_require__.r(__webpack_exports__);
69245
69302
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
69246
69303
  /* harmony export */ });
69247
69304
  // extracted by mini-css-extract-plugin
69248
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({"VideoViewer":"VideoViewer-module__VideoViewer___DnYgG","loader":"VideoViewer-module__loader___xINv6","hide":"VideoViewer-module__hide___uGbYO","timer":"VideoViewer-module__timer___w1Piv","progressBar":"VideoViewer-module__progressBar___SbaNv","content":"VideoViewer-module__content___jnFwK","playButton":"VideoViewer-module__playButton___Sb91y","show":"VideoViewer-module__show___GsvfN","appearance":"VideoViewer-module__appearance___GGxuv"});
69305
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({"VideoViewer":"VideoViewer-module__VideoViewer___DnYgG","loader":"VideoViewer-module__loader___xINv6","hide":"VideoViewer-module__hide___uGbYO","timer":"VideoViewer-module__timer___w1Piv","progressBar":"VideoViewer-module__progressBar___SbaNv","actions":"VideoViewer-module__actions___TZ3Mm","content":"VideoViewer-module__content___jnFwK","playButton":"VideoViewer-module__playButton___Sb91y","show":"VideoViewer-module__show___GsvfN","appearance":"VideoViewer-module__appearance___GGxuv"});
69249
69306
 
69250
69307
  /***/ }),
69251
69308
 
@@ -69306,30 +69363,6 @@ __webpack_require__.r(__webpack_exports__);
69306
69363
  __webpack_require__.r(__webpack_exports__);
69307
69364
 
69308
69365
 
69309
- /***/ }),
69310
-
69311
- /***/ "./src/ui/MediaViewer/types/components/ControlBarTypes.ts":
69312
- /*!****************************************************************!*\
69313
- !*** ./src/ui/MediaViewer/types/components/ControlBarTypes.ts ***!
69314
- \****************************************************************/
69315
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
69316
-
69317
- "use strict";
69318
- __webpack_require__.r(__webpack_exports__);
69319
-
69320
-
69321
- /***/ }),
69322
-
69323
- /***/ "./src/ui/MediaViewer/types/components/ImageViewerTypes.ts":
69324
- /*!*****************************************************************!*\
69325
- !*** ./src/ui/MediaViewer/types/components/ImageViewerTypes.ts ***!
69326
- \*****************************************************************/
69327
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
69328
-
69329
- "use strict";
69330
- __webpack_require__.r(__webpack_exports__);
69331
-
69332
-
69333
69366
  /***/ }),
69334
69367
 
69335
69368
  /***/ "./src/ui/MediaViewer/types/components/ProgressBarTypes.ts":
@@ -69342,18 +69375,6 @@ __webpack_require__.r(__webpack_exports__);
69342
69375
  __webpack_require__.r(__webpack_exports__);
69343
69376
 
69344
69377
 
69345
- /***/ }),
69346
-
69347
- /***/ "./src/ui/MediaViewer/types/components/VideoViewerTypes.ts":
69348
- /*!*****************************************************************!*\
69349
- !*** ./src/ui/MediaViewer/types/components/VideoViewerTypes.ts ***!
69350
- \*****************************************************************/
69351
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
69352
-
69353
- "use strict";
69354
- __webpack_require__.r(__webpack_exports__);
69355
-
69356
-
69357
69378
  /***/ }),
69358
69379
 
69359
69380
  /***/ "./src/ui/MediaViewer/types/components/index.ts":
@@ -69364,13 +69385,7 @@ __webpack_require__.r(__webpack_exports__);
69364
69385
 
69365
69386
  "use strict";
69366
69387
  __webpack_require__.r(__webpack_exports__);
69367
- /* harmony import */ var _VideoViewerTypes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VideoViewerTypes */ "./src/ui/MediaViewer/types/components/VideoViewerTypes.ts");
69368
- /* harmony import */ var _ImageViewerTypes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ImageViewerTypes */ "./src/ui/MediaViewer/types/components/ImageViewerTypes.ts");
69369
- /* harmony import */ var _ControlBarTypes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ControlBarTypes */ "./src/ui/MediaViewer/types/components/ControlBarTypes.ts");
69370
- /* harmony import */ var _ProgressBarTypes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ProgressBarTypes */ "./src/ui/MediaViewer/types/components/ProgressBarTypes.ts");
69371
-
69372
-
69373
-
69388
+ /* harmony import */ var _ProgressBarTypes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ProgressBarTypes */ "./src/ui/MediaViewer/types/components/ProgressBarTypes.ts");
69374
69389
 
69375
69390
 
69376
69391
  /***/ }),
@@ -69408,12 +69423,7 @@ __webpack_require__.r(__webpack_exports__);
69408
69423
  /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/hooks */ "./src/hooks/index.ts");
69409
69424
  /* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../styles */ "./src/ui/MediaViewer/styles/index.ts");
69410
69425
  /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components */ "./src/ui/MediaViewer/ui/components/index.ts");
69411
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
69412
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
69413
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
69414
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
69415
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
69416
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
69426
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
69417
69427
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
69418
69428
  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."); }
69419
69429
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
@@ -69426,27 +69436,28 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
69426
69436
 
69427
69437
 
69428
69438
  var MediaViewer = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(function (props, ref) {
69429
- var _media$curElementInde, _media$curElementInde2;
69430
69439
  var _props$media = props.media,
69431
69440
  media = _props$media === void 0 ? [] : _props$media,
69432
69441
  mediaIndex = props.mediaIndex,
69433
- _props$nearestElement = props.nearestElementsOnly,
69434
- nearestElementsOnly = _props$nearestElement === void 0 ? true : _props$nearestElement,
69435
69442
  onClose = props.onClose,
69436
69443
  style = props.style;
69437
- var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),
69438
- _useState2 = _slicedToArray(_useState, 2),
69439
- muted = _useState2[0],
69440
- setMuted = _useState2[1];
69441
- var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),
69442
- _useState4 = _slicedToArray(_useState3, 2),
69443
- play = _useState4[0],
69444
- setPlay = _useState4[1];
69445
69444
  var containerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
69445
+ var mediaListRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)([]);
69446
+ var addMediaRef = function addMediaRef(type, ref, idx) {
69447
+ mediaListRef.current[idx] = {
69448
+ type: type,
69449
+ ref: ref
69450
+ };
69451
+ };
69452
+ var getMediaRef = function getMediaRef(idx) {
69453
+ return mediaListRef.current[idx];
69454
+ };
69446
69455
  var changeCurMedia = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function (idx) {
69447
- var instance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
69448
- if (instance) {
69449
- showElInstance(idx);
69456
+ var instant = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
69457
+ setCurElementIndex(idx);
69458
+ pauseVideos();
69459
+ if (instant) {
69460
+ showElInstant(idx);
69450
69461
  } else {
69451
69462
  showEl(idx);
69452
69463
  }
@@ -69468,10 +69479,10 @@ var MediaViewer = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)
69468
69479
  getCurElementIndex = _useSyncedStateRef2[2];
69469
69480
  var _useCarousel = (0,_hooks__WEBPACK_IMPORTED_MODULE_2__.useCarousel)(objRef, trackRef),
69470
69481
  showEl = _useCarousel.showEl,
69471
- showElInstance = _useCarousel.showElInstance,
69482
+ showElInstant = _useCarousel.showElInstant,
69472
69483
  getTrackInitStyle = _useCarousel.getTrackInitStyle,
69473
69484
  getObjInitStyle = _useCarousel.getObjInitStyle,
69474
- getElInitStyle = _useCarousel.getElInitStyle;
69485
+ getElStyle = _useCarousel.getElStyle;
69475
69486
  var hasPrevIndex = function hasPrevIndex(curIndex) {
69476
69487
  return curIndex > 0;
69477
69488
  };
@@ -69479,56 +69490,49 @@ var MediaViewer = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)
69479
69490
  return curIndex < media.length - 1;
69480
69491
  };
69481
69492
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
69482
- showElInstance(mediaIndex || 0);
69493
+ showElInstant(mediaIndex || 0);
69483
69494
  }, []);
69484
- var resetVideo = function resetVideo() {
69485
- setMuted(false);
69486
- setPlay(false);
69495
+ var pauseVideos = function pauseVideos() {
69496
+ var _iterator = _createForOfIteratorHelper(mediaListRef.current),
69497
+ _step;
69498
+ try {
69499
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
69500
+ var item = _step.value;
69501
+ if ((item === null || item === void 0 ? void 0 : item.type) === 'video') {
69502
+ item.ref.pause();
69503
+ }
69504
+ }
69505
+ } catch (err) {
69506
+ _iterator.e(err);
69507
+ } finally {
69508
+ _iterator.f();
69509
+ }
69487
69510
  };
69488
69511
  var next = function next() {
69489
69512
  var prevState = getCurElementIndex();
69490
69513
  var newState = prevState < media.length - 1 ? prevState + 1 : media.length - 1;
69491
- setCurElementIndex(newState);
69492
- showEl(newState);
69493
- resetVideo();
69514
+ changeCurMedia(newState);
69494
69515
  };
69495
69516
  var prev = function prev() {
69496
69517
  var prevState = getCurElementIndex();
69497
69518
  var newState = prevState > 0 ? prevState - 1 : 0;
69498
- setCurElementIndex(newState);
69499
- showEl(newState);
69500
- resetVideo();
69501
- };
69502
- var mute = function mute() {
69503
- setMuted(function (prevState) {
69504
- return !prevState;
69505
- });
69506
- };
69507
- var _play = function _play() {
69508
- setPlay(function (prevState) {
69509
- return !prevState;
69510
- });
69511
- };
69512
- var isNearestElement = function isNearestElement(curEl, el) {
69513
- var nextEl = curEl + 1 < media.length ? curEl + 1 : media.length - 1;
69514
- var prevEl = curEl - 1 >= 0 ? curEl - 1 : 0;
69515
- return nextEl === el || prevEl === el || el === curEl;
69519
+ changeCurMedia(newState);
69516
69520
  };
69517
69521
  var getContent = function getContent(item, idx) {
69518
- if (item == null || nearestElementsOnly && !isNearestElement(curElementIndex, idx)) return undefined;
69519
69522
  switch (item.type) {
69520
69523
  case 'video':
69521
69524
  return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components__WEBPACK_IMPORTED_MODULE_4__.VideoViewer, {
69522
69525
  src: item.src,
69523
- muted: curElementIndex === idx ? muted : undefined,
69524
- play: curElementIndex === idx ? play : undefined,
69525
- onChangePlay: curElementIndex === idx ? function (play) {
69526
- return setPlay(play);
69527
- } : undefined
69526
+ ref: function ref(instance) {
69527
+ return addMediaRef('video', instance, idx);
69528
+ }
69528
69529
  }, idx);
69529
69530
  case 'image':
69530
69531
  return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components__WEBPACK_IMPORTED_MODULE_4__.ImageViewer, {
69531
- src: item.src
69532
+ src: item.src,
69533
+ ref: function ref(instance) {
69534
+ return addMediaRef('image', instance, idx);
69535
+ }
69532
69536
  }, idx);
69533
69537
  default:
69534
69538
  return undefined;
@@ -69549,7 +69553,7 @@ var MediaViewer = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)
69549
69553
  children: media.map(function (item, idx) {
69550
69554
  return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
69551
69555
  className: _styles__WEBPACK_IMPORTED_MODULE_3__.MediaViewerStyle.el,
69552
- style: _objectSpread({}, getElInitStyle()),
69556
+ style: getElStyle(),
69553
69557
  children: getContent(item, idx)
69554
69558
  }, idx);
69555
69559
  })
@@ -69557,10 +69561,6 @@ var MediaViewer = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)
69557
69561
  }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
69558
69562
  className: _styles__WEBPACK_IMPORTED_MODULE_3__.MediaViewerStyle.control,
69559
69563
  children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components__WEBPACK_IMPORTED_MODULE_4__.ControlBar, {
69560
- muted: muted,
69561
- play: play,
69562
- onPlay: ((_media$curElementInde = media[curElementIndex]) === null || _media$curElementInde === void 0 ? void 0 : _media$curElementInde.type) === 'video' ? _play : undefined,
69563
- onMute: ((_media$curElementInde2 = media[curElementIndex]) === null || _media$curElementInde2 === void 0 ? void 0 : _media$curElementInde2.type) === 'video' ? mute : undefined,
69564
69564
  onNext: hasNextIndex(curElementIndex) ? next : undefined,
69565
69565
  onPrev: hasPrevIndex(curElementIndex) ? prev : undefined,
69566
69566
  onClose: onClose
@@ -69591,23 +69591,13 @@ __webpack_require__.r(__webpack_exports__);
69591
69591
 
69592
69592
 
69593
69593
 
69594
- function ControlBar(_ref) {
69595
- var play = _ref.play,
69596
- muted = _ref.muted,
69597
- onMute = _ref.onMute,
69598
- onPlay = _ref.onPlay,
69599
- onClose = _ref.onClose,
69600
- onPrev = _ref.onPrev,
69601
- onNext = _ref.onNext;
69594
+ function ControlBar(props) {
69595
+ var onClose = props.onClose,
69596
+ onPrev = props.onPrev,
69597
+ onNext = props.onNext;
69602
69598
  return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
69603
69599
  className: _styles__WEBPACK_IMPORTED_MODULE_3__.ControlBarStyle.controlBar,
69604
- children: [onMute != null && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ui__WEBPACK_IMPORTED_MODULE_1__.Button, {
69605
- iconLeft: muted ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_assets__WEBPACK_IMPORTED_MODULE_2__.VolumeXSVG, {}) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_assets__WEBPACK_IMPORTED_MODULE_2__.VolumeMaxSVG, {}),
69606
- size: 'small',
69607
- hierarchy: 'secondary-gray',
69608
- width: 'hug',
69609
- onClick: onMute
69610
- }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ui__WEBPACK_IMPORTED_MODULE_1__.Button, {
69600
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ui__WEBPACK_IMPORTED_MODULE_1__.Button, {
69611
69601
  iconLeft: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_assets__WEBPACK_IMPORTED_MODULE_2__.ChevronLeftSVG, {}),
69612
69602
  size: 'large',
69613
69603
  hierarchy: 'secondary-gray',
@@ -69628,12 +69618,6 @@ function ControlBar(_ref) {
69628
69618
  width: 'hug',
69629
69619
  disabled: onNext == null,
69630
69620
  onClick: onNext
69631
- }), onPlay != null && (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ui__WEBPACK_IMPORTED_MODULE_1__.Button, {
69632
- iconLeft: play ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_assets__WEBPACK_IMPORTED_MODULE_2__.PauseCircleSVG, {}) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_assets__WEBPACK_IMPORTED_MODULE_2__.PlaySVG, {}),
69633
- size: 'small',
69634
- hierarchy: 'secondary-gray',
69635
- width: 'hug',
69636
- onClick: onPlay
69637
69621
  })]
69638
69622
  });
69639
69623
  }
@@ -69653,17 +69637,33 @@ __webpack_require__.r(__webpack_exports__);
69653
69637
  /* harmony export */ });
69654
69638
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
69655
69639
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
69656
- /* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../styles */ "./src/ui/MediaViewer/styles/index.ts");
69640
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
69641
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
69642
+ /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/hooks */ "./src/hooks/index.ts");
69643
+ /* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../styles */ "./src/ui/MediaViewer/styles/index.ts");
69657
69644
 
69658
69645
 
69659
- function ImageViewer(_ref) {
69660
- var src = _ref.src;
69646
+
69647
+
69648
+ var ImageViewer = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(function (props, ref) {
69649
+ var src = props.src,
69650
+ style = props.style;
69651
+ var imgRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
69652
+ (0,react__WEBPACK_IMPORTED_MODULE_1__.useImperativeHandle)(ref, function () {
69653
+ return imgRef.current;
69654
+ });
69655
+ var _useShimmer = (0,_hooks__WEBPACK_IMPORTED_MODULE_2__.useShimmer)(imgRef, {
69656
+ initIsActive: true
69657
+ }),
69658
+ stopLoading = _useShimmer.stopLoading;
69661
69659
  return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("img", {
69662
69660
  src: src,
69661
+ style: style,
69663
69662
  alt: "",
69664
- className: _styles__WEBPACK_IMPORTED_MODULE_1__.ImageViewerStyle.ImageViewer
69663
+ onLoad: stopLoading,
69664
+ className: _styles__WEBPACK_IMPORTED_MODULE_3__.ImageViewerStyle.ImageViewer
69665
69665
  });
69666
- }
69666
+ });
69667
69667
 
69668
69668
  /***/ }),
69669
69669
 
@@ -69766,11 +69766,11 @@ __webpack_require__.r(__webpack_exports__);
69766
69766
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
69767
69767
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
69768
69768
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
69769
- /* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/ui */ "./src/ui/index.ts");
69770
- /* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../styles */ "./src/ui/MediaViewer/styles/index.ts");
69771
- /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components */ "./src/ui/MediaViewer/ui/components/index.ts");
69772
- /* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ "./node_modules/clsx/dist/clsx.mjs");
69773
- /* harmony import */ var _ui_PlayButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/ui/PlayButton */ "./src/ui/PlayButton/index.ts");
69769
+ /* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! clsx */ "./node_modules/clsx/dist/clsx.mjs");
69770
+ /* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/ui */ "./src/ui/index.ts");
69771
+ /* harmony import */ var _assets__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/assets */ "./src/assets/index.ts");
69772
+ /* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../styles */ "./src/ui/MediaViewer/styles/index.ts");
69773
+ /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components */ "./src/ui/MediaViewer/ui/components/index.ts");
69774
69774
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
69775
69775
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
69776
69776
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
@@ -69788,44 +69788,101 @@ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
69788
69788
 
69789
69789
 
69790
69790
 
69791
- function VideoViewer(_ref) {
69792
- var play = _ref.play,
69793
- muted = _ref.muted,
69794
- src = _ref.src,
69795
- onChangePlay = _ref.onChangePlay;
69791
+ var VideoViewer = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(function (props, ref) {
69792
+ var src = props.src,
69793
+ style = props.style;
69794
+ var containerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
69796
69795
  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0),
69797
69796
  _useState2 = _slicedToArray(_useState, 2),
69798
- curTime = _useState2[0],
69799
- setCurTime = _useState2[1];
69797
+ progress = _useState2[0],
69798
+ setProgress = _useState2[1];
69800
69799
  var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0),
69801
69800
  _useState4 = _slicedToArray(_useState3, 2),
69802
- progress = _useState4[0],
69803
- setProgress = _useState4[1];
69801
+ duration = _useState4[0],
69802
+ setDuration = _useState4[1];
69804
69803
  var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0),
69805
69804
  _useState6 = _slicedToArray(_useState5, 2),
69806
- duration = _useState6[0],
69807
- setDuration = _useState6[1];
69805
+ time = _useState6[0],
69806
+ setTime = _useState6[1];
69808
69807
  var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),
69809
69808
  _useState8 = _slicedToArray(_useState7, 2),
69810
- isSeeking = _useState8[0],
69811
- setIsSeeking = _useState8[1];
69809
+ isPlaying = _useState8[0],
69810
+ setIsPlaying = _useState8[1];
69811
+ var isSeekingRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false);
69812
+ var getIsSeeking = function getIsSeeking() {
69813
+ return isSeekingRef.current;
69814
+ };
69815
+ var startSeeking = function startSeeking() {
69816
+ return isSeekingRef.current = true;
69817
+ };
69818
+ var stopSeeking = function stopSeeking() {
69819
+ return isSeekingRef.current = false;
69820
+ };
69812
69821
  var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true),
69813
69822
  _useState10 = _slicedToArray(_useState9, 2),
69814
69823
  isLoading = _useState10[0],
69815
69824
  setIsLoading = _useState10[1];
69816
- (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
69817
- if (duration && !isSeeking) {
69818
- var percent = curTime / duration * 100;
69825
+ var startLoading = function startLoading() {
69826
+ return setIsLoading(true);
69827
+ };
69828
+ var stopLoading = function stopLoading() {
69829
+ return setIsLoading(false);
69830
+ };
69831
+ var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),
69832
+ _useState12 = _slicedToArray(_useState11, 2),
69833
+ muted = _useState12[0],
69834
+ setMuted = _useState12[1];
69835
+ var mute = function mute() {
69836
+ return setMuted(true);
69837
+ };
69838
+ var unmute = function unmute() {
69839
+ return setMuted(false);
69840
+ };
69841
+ var videoPlayerBaseRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
69842
+ (0,react__WEBPACK_IMPORTED_MODULE_1__.useImperativeHandle)(ref, function () {
69843
+ return {
69844
+ get obj() {
69845
+ return containerRef.current;
69846
+ },
69847
+ mute: mute,
69848
+ unmute: unmute,
69849
+ pause: function pause() {
69850
+ var _videoPlayerBaseRef$c, _videoPlayerBaseRef$c2;
69851
+ return (_videoPlayerBaseRef$c = videoPlayerBaseRef.current) === null || _videoPlayerBaseRef$c === void 0 || (_videoPlayerBaseRef$c2 = _videoPlayerBaseRef$c.pause) === null || _videoPlayerBaseRef$c2 === void 0 ? void 0 : _videoPlayerBaseRef$c2.call(_videoPlayerBaseRef$c);
69852
+ },
69853
+ play: function play() {
69854
+ var _videoPlayerBaseRef$c3, _videoPlayerBaseRef$c4;
69855
+ return (_videoPlayerBaseRef$c3 = videoPlayerBaseRef.current) === null || _videoPlayerBaseRef$c3 === void 0 || (_videoPlayerBaseRef$c4 = _videoPlayerBaseRef$c3.play) === null || _videoPlayerBaseRef$c4 === void 0 ? void 0 : _videoPlayerBaseRef$c4.call(_videoPlayerBaseRef$c3);
69856
+ }
69857
+ };
69858
+ });
69859
+ var onMute = function onMute() {
69860
+ setMuted(function (prevState) {
69861
+ return !prevState;
69862
+ });
69863
+ };
69864
+ var onPlay = function onPlay() {
69865
+ var _videoPlayerBaseRef$c5;
69866
+ (_videoPlayerBaseRef$c5 = videoPlayerBaseRef.current) === null || _videoPlayerBaseRef$c5 === void 0 || _videoPlayerBaseRef$c5.switchPlay();
69867
+ };
69868
+ var updateProgressBar = function updateProgressBar(time) {
69869
+ if (duration && !getIsSeeking()) {
69870
+ var percent = time / duration * 100;
69819
69871
  setProgress(percent);
69820
69872
  }
69821
- }, [curTime]);
69873
+ };
69874
+ var onChangeTime = function onChangeTime(time) {
69875
+ updateProgressBar(time);
69876
+ setTime(time);
69877
+ };
69822
69878
  var onStartSeeking = function onStartSeeking() {
69823
- setIsSeeking(true);
69879
+ startSeeking();
69824
69880
  };
69825
69881
  var onEndSeeking = function onEndSeeking() {
69882
+ var _videoPlayerBaseRef$c6;
69826
69883
  var newTime = progress / 100 * duration;
69827
- setCurTime(newTime);
69828
- setIsSeeking(false);
69884
+ (_videoPlayerBaseRef$c6 = videoPlayerBaseRef.current) === null || _videoPlayerBaseRef$c6 === void 0 || _videoPlayerBaseRef$c6.setTime(newTime);
69885
+ stopSeeking();
69829
69886
  };
69830
69887
  var onSeek = function onSeek(newPercent) {
69831
69888
  setProgress(newPercent);
@@ -69843,54 +69900,78 @@ function VideoViewer(_ref) {
69843
69900
  return "".concat(formattedMinutes, ":").concat(formattedSeconds);
69844
69901
  }
69845
69902
  };
69903
+ var onClickVideo = function onClickVideo() {
69904
+ var _videoPlayerBaseRef$c7;
69905
+ (_videoPlayerBaseRef$c7 = videoPlayerBaseRef.current) === null || _videoPlayerBaseRef$c7 === void 0 || _videoPlayerBaseRef$c7.switchPlay();
69906
+ };
69907
+ var onKeyDown = function onKeyDown(event) {
69908
+ event.preventDefault();
69909
+ if (event.key === 'Space') {
69910
+ var _videoPlayerBaseRef$c8;
69911
+ (_videoPlayerBaseRef$c8 = videoPlayerBaseRef.current) === null || _videoPlayerBaseRef$c8 === void 0 || _videoPlayerBaseRef$c8.switchPlay();
69912
+ }
69913
+ };
69846
69914
  return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
69847
- className: _styles__WEBPACK_IMPORTED_MODULE_3__.VideoViewerStyle.VideoViewer,
69915
+ className: _styles__WEBPACK_IMPORTED_MODULE_5__.VideoViewerStyle.VideoViewer,
69916
+ style: style,
69917
+ tabIndex: 0,
69918
+ ref: containerRef,
69848
69919
  children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
69849
- className: (0,clsx__WEBPACK_IMPORTED_MODULE_5__["default"])(_styles__WEBPACK_IMPORTED_MODULE_3__.VideoViewerStyle.playButton, _defineProperty({}, _styles__WEBPACK_IMPORTED_MODULE_3__.VideoViewerStyle.show, !play)),
69850
- children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ui_PlayButton__WEBPACK_IMPORTED_MODULE_6__.PlayButton, {
69920
+ className: (0,clsx__WEBPACK_IMPORTED_MODULE_2__["default"])(_styles__WEBPACK_IMPORTED_MODULE_5__.VideoViewerStyle.playButton, _defineProperty({}, _styles__WEBPACK_IMPORTED_MODULE_5__.VideoViewerStyle.show, !isPlaying)),
69921
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ui__WEBPACK_IMPORTED_MODULE_3__.PlayButton, {
69851
69922
  size: 'large',
69852
69923
  type: 'play',
69853
69924
  color: 'dark',
69854
- onClick: function onClick() {
69855
- return onChangePlay === null || onChangePlay === void 0 ? void 0 : onChangePlay(true);
69856
- }
69925
+ onClick: onPlay
69857
69926
  })
69858
69927
  }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
69859
- className: _styles__WEBPACK_IMPORTED_MODULE_3__.VideoViewerStyle.timer,
69860
- children: curTime != null ? formatTime(curTime) : undefined
69861
- }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ui__WEBPACK_IMPORTED_MODULE_2__.LoadingIndicator, {
69928
+ className: _styles__WEBPACK_IMPORTED_MODULE_5__.VideoViewerStyle.timer,
69929
+ children: formatTime(time)
69930
+ }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ui__WEBPACK_IMPORTED_MODULE_3__.LoadingIndicator, {
69862
69931
  style: 'line-simple',
69863
69932
  size: 'large',
69864
69933
  width: 'fill',
69865
69934
  height: 'fill',
69866
- additionStyles: (0,clsx__WEBPACK_IMPORTED_MODULE_5__["default"])(_styles__WEBPACK_IMPORTED_MODULE_3__.VideoViewerStyle.loader, _defineProperty({}, _styles__WEBPACK_IMPORTED_MODULE_3__.VideoViewerStyle.hide, !isLoading))
69867
- }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ui__WEBPACK_IMPORTED_MODULE_2__.VideoPlayerBase, {
69935
+ additionStyles: (0,clsx__WEBPACK_IMPORTED_MODULE_2__["default"])(_styles__WEBPACK_IMPORTED_MODULE_5__.VideoViewerStyle.loader, _defineProperty({}, _styles__WEBPACK_IMPORTED_MODULE_5__.VideoViewerStyle.hide, !isLoading))
69936
+ }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ui__WEBPACK_IMPORTED_MODULE_3__.VideoPlayerBase, {
69868
69937
  src: src,
69869
- play: play,
69870
- muted: muted,
69871
- onChangePlay: onChangePlay,
69872
- time: curTime,
69873
- onChangeTime: setCurTime,
69938
+ onChangePlay: setIsPlaying,
69939
+ onChangeTime: onChangeTime,
69874
69940
  onChangeDuration: setDuration,
69875
- onCanPlay: function onCanPlay() {
69876
- return setIsLoading(false);
69877
- },
69878
- onWaiting: function onWaiting() {
69879
- return setIsLoading(true);
69880
- },
69881
- lazyLoad: false,
69882
- className: _styles__WEBPACK_IMPORTED_MODULE_3__.VideoViewerStyle.content
69941
+ onCanPlay: stopLoading,
69942
+ onWaiting: startLoading,
69943
+ onKeyDown: onKeyDown,
69944
+ lazyLoad: true,
69945
+ muted: muted,
69946
+ className: _styles__WEBPACK_IMPORTED_MODULE_5__.VideoViewerStyle.content,
69947
+ onClick: onClickVideo,
69948
+ ref: videoPlayerBaseRef
69883
69949
  }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
69884
- className: _styles__WEBPACK_IMPORTED_MODULE_3__.VideoViewerStyle.progressBar,
69885
- children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components__WEBPACK_IMPORTED_MODULE_4__.VideoProgressBar, {
69950
+ className: _styles__WEBPACK_IMPORTED_MODULE_5__.VideoViewerStyle.progressBar,
69951
+ children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components__WEBPACK_IMPORTED_MODULE_6__.VideoProgressBar, {
69886
69952
  onChangeProgress: onSeek,
69887
69953
  progress: progress,
69888
69954
  onStartDrag: onStartSeeking,
69889
69955
  onEndDrag: onEndSeeking
69890
69956
  })
69957
+ }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
69958
+ className: _styles__WEBPACK_IMPORTED_MODULE_5__.VideoViewerStyle.actions,
69959
+ children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ui__WEBPACK_IMPORTED_MODULE_3__.Button, {
69960
+ iconLeft: muted ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_assets__WEBPACK_IMPORTED_MODULE_4__.VolumeXSVG, {}) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_assets__WEBPACK_IMPORTED_MODULE_4__.VolumeMaxSVG, {}),
69961
+ size: 'small',
69962
+ hierarchy: 'secondary-gray',
69963
+ width: 'hug',
69964
+ onClick: onMute
69965
+ }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ui__WEBPACK_IMPORTED_MODULE_3__.Button, {
69966
+ iconLeft: isPlaying ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_assets__WEBPACK_IMPORTED_MODULE_4__.PlaySVG, {}) : (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_assets__WEBPACK_IMPORTED_MODULE_4__.PauseCircleSVG, {}),
69967
+ size: 'small',
69968
+ hierarchy: 'secondary-gray',
69969
+ width: 'hug',
69970
+ onClick: onPlay
69971
+ })]
69891
69972
  })]
69892
69973
  });
69893
- }
69974
+ });
69894
69975
 
69895
69976
  /***/ }),
69896
69977
 
@@ -71977,7 +72058,9 @@ function Toggle(props) {
71977
72058
  textBeforeElement = props.textBeforeElement,
71978
72059
  textAfterElement = props.textAfterElement,
71979
72060
  _props$theme = props.theme,
71980
- theme = _props$theme === void 0 ? "light" : _props$theme;
72061
+ theme = _props$theme === void 0 ? "light" : _props$theme,
72062
+ _props$size = props.size,
72063
+ size = _props$size === void 0 ? 'medium' : _props$size;
71981
72064
  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),
71982
72065
  _useState2 = _slicedToArray(_useState, 2),
71983
72066
  isHover = _useState2[0],
@@ -72003,7 +72086,7 @@ function Toggle(props) {
72003
72086
  children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ui__WEBPACK_IMPORTED_MODULE_3__.ToggleBase, {
72004
72087
  active: active,
72005
72088
  hover: isHover,
72006
- size: 'medium',
72089
+ size: size,
72007
72090
  isButton: false,
72008
72091
  disabled: disabled,
72009
72092
  theme: theme
@@ -72683,33 +72766,6 @@ __webpack_require__.r(__webpack_exports__);
72683
72766
  /* harmony export */ VideoPlayerBase: () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_0__.VideoPlayerBase)
72684
72767
  /* harmony export */ });
72685
72768
  /* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ui */ "./src/ui/VideoPlayerBase/ui/index.ts");
72686
- /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./types */ "./src/ui/VideoPlayerBase/types/index.ts");
72687
-
72688
-
72689
-
72690
- /***/ }),
72691
-
72692
- /***/ "./src/ui/VideoPlayerBase/types/VideoPlayerBaseTypes.ts":
72693
- /*!**************************************************************!*\
72694
- !*** ./src/ui/VideoPlayerBase/types/VideoPlayerBaseTypes.ts ***!
72695
- \**************************************************************/
72696
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
72697
-
72698
- "use strict";
72699
- __webpack_require__.r(__webpack_exports__);
72700
-
72701
-
72702
- /***/ }),
72703
-
72704
- /***/ "./src/ui/VideoPlayerBase/types/index.ts":
72705
- /*!***********************************************!*\
72706
- !*** ./src/ui/VideoPlayerBase/types/index.ts ***!
72707
- \***********************************************/
72708
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
72709
-
72710
- "use strict";
72711
- __webpack_require__.r(__webpack_exports__);
72712
- /* harmony import */ var _VideoPlayerBaseTypes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VideoPlayerBaseTypes */ "./src/ui/VideoPlayerBase/types/VideoPlayerBaseTypes.ts");
72713
72769
 
72714
72770
 
72715
72771
  /***/ }),
@@ -72729,71 +72785,89 @@ __webpack_require__.r(__webpack_exports__);
72729
72785
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
72730
72786
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
72731
72787
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
72788
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
72789
+ var _excluded = ["src", "browserControl", "muted", "onChangeDuration", "onChangeTime", "onChangeVolume", "onChangePlay", "onCanPlay", "onWaiting", "loop", "autoPlay", "lazyLoad"];
72790
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
72791
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
72792
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
72793
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
72794
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
72795
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
72796
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
72732
72797
 
72733
72798
 
72734
- var SEEK_ACCURACY = 0.3;
72735
- function VideoPlayerBase(_ref) {
72736
- var src = _ref.src,
72737
- _ref$browserControl = _ref.browserControl,
72738
- browserControl = _ref$browserControl === void 0 ? false : _ref$browserControl,
72739
- _ref$muted = _ref.muted,
72740
- muted = _ref$muted === void 0 ? false : _ref$muted,
72741
- onChangeDuration = _ref.onChangeDuration,
72742
- onChangeTime = _ref.onChangeTime,
72743
- onChangeVolume = _ref.onChangeVolume,
72744
- onChangePlay = _ref.onChangePlay,
72745
- onCanPlay = _ref.onCanPlay,
72746
- onWaiting = _ref.onWaiting,
72747
- time = _ref.time,
72748
- volume = _ref.volume,
72749
- _ref$play = _ref.play,
72750
- play = _ref$play === void 0 ? false : _ref$play,
72751
- _ref$loop = _ref.loop,
72752
- loop = _ref$loop === void 0 ? false : _ref$loop,
72753
- _ref$autoPlay = _ref.autoPlay,
72754
- autoPlay = _ref$autoPlay === void 0 ? false : _ref$autoPlay,
72755
- _ref$lazyLoad = _ref.lazyLoad,
72756
- lazyLoad = _ref$lazyLoad === void 0 ? false : _ref$lazyLoad,
72757
- className = _ref.className;
72799
+ var VideoPlayerBase = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(function (props, ref) {
72800
+ var src = props.src,
72801
+ _props$browserControl = props.browserControl,
72802
+ browserControl = _props$browserControl === void 0 ? false : _props$browserControl,
72803
+ _props$muted = props.muted,
72804
+ muted = _props$muted === void 0 ? false : _props$muted,
72805
+ onChangeDuration = props.onChangeDuration,
72806
+ onChangeTime = props.onChangeTime,
72807
+ onChangeVolume = props.onChangeVolume,
72808
+ onChangePlay = props.onChangePlay,
72809
+ onCanPlay = props.onCanPlay,
72810
+ onWaiting = props.onWaiting,
72811
+ _props$loop = props.loop,
72812
+ loop = _props$loop === void 0 ? false : _props$loop,
72813
+ _props$autoPlay = props.autoPlay,
72814
+ autoPlay = _props$autoPlay === void 0 ? false : _props$autoPlay,
72815
+ _props$lazyLoad = props.lazyLoad,
72816
+ lazyLoad = _props$lazyLoad === void 0 ? false : _props$lazyLoad,
72817
+ anotherProps = _objectWithoutProperties(props, _excluded);
72758
72818
  var videoRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);
72759
72819
  var isSeekingRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false);
72760
- (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
72820
+ var play = function play() {
72821
+ var _videoRef$current;
72822
+ return (_videoRef$current = videoRef.current) === null || _videoRef$current === void 0 ? void 0 : _videoRef$current.play();
72823
+ };
72824
+ var pause = function pause() {
72825
+ var _videoRef$current2;
72826
+ return (_videoRef$current2 = videoRef.current) === null || _videoRef$current2 === void 0 ? void 0 : _videoRef$current2.pause();
72827
+ };
72828
+ var switchPlay = function switchPlay() {
72761
72829
  var video = videoRef.current;
72762
- if (!video || time == null) return;
72763
- try {
72764
- if (Math.abs(video.currentTime - time) > SEEK_ACCURACY) {
72765
- isSeekingRef.current = true;
72766
- video.currentTime = time;
72767
- }
72768
- } catch (error) {
72769
- console.error("Ошибка перемотки:", error);
72830
+ if (!video) return false;
72831
+ var isPlay = video.paused;
72832
+ if (isPlay) {
72833
+ video.play();
72834
+ } else {
72835
+ video.pause();
72770
72836
  }
72771
- }, [time]);
72772
- (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
72837
+ return isPlay;
72838
+ };
72839
+ var setTime = function setTime(time) {
72773
72840
  var video = videoRef.current;
72774
- if (!video || volume == null) return;
72775
- try {
72776
- video.volume = volume;
72777
- } catch (error) {
72778
- console.error("Ошибка изменения громкости:", error);
72841
+ if (!video) return;
72842
+ if (isFinite(time)) {
72843
+ video.currentTime = time;
72779
72844
  }
72780
- }, [volume]);
72781
- (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
72845
+ };
72846
+ var setVolume = function setVolume(volume) {
72782
72847
  var video = videoRef.current;
72783
72848
  if (!video) return;
72784
- try {
72785
- if (play) {
72786
- video.play()["catch"](function (error) {
72787
- console.error("Ошибка воспроизведения:", error);
72788
- onChangePlay === null || onChangePlay === void 0 || onChangePlay(false);
72789
- });
72790
- } else {
72791
- video.pause();
72792
- }
72793
- } catch (error) {
72794
- console.error("Ошибка управления воспроизведением:", error);
72849
+ if (isFinite(volume)) {
72850
+ video.volume = volume;
72795
72851
  }
72796
- }, [play]);
72852
+ };
72853
+ (0,react__WEBPACK_IMPORTED_MODULE_1__.useImperativeHandle)(ref, function () {
72854
+ return {
72855
+ obj: videoRef.current,
72856
+ play: play,
72857
+ pause: pause,
72858
+ switchPlay: switchPlay,
72859
+ setTime: setTime,
72860
+ setVolume: setVolume,
72861
+ get time() {
72862
+ var _videoRef$current3;
72863
+ return (_videoRef$current3 = videoRef.current) === null || _videoRef$current3 === void 0 ? void 0 : _videoRef$current3.currentTime;
72864
+ },
72865
+ get volume() {
72866
+ var _videoRef$current4;
72867
+ return (_videoRef$current4 = videoRef.current) === null || _videoRef$current4 === void 0 ? void 0 : _videoRef$current4.volume;
72868
+ }
72869
+ };
72870
+ });
72797
72871
  var onTimeUpdate = function onTimeUpdate(event) {
72798
72872
  if (!isSeekingRef.current) {
72799
72873
  var currentTime = event.currentTarget.currentTime;
@@ -72837,7 +72911,7 @@ function VideoPlayerBase(_ref) {
72837
72911
  var onSeeking = function onSeeking() {
72838
72912
  isSeekingRef.current = true;
72839
72913
  };
72840
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("video", {
72914
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("video", _objectSpread({
72841
72915
  src: src,
72842
72916
  controls: browserControl,
72843
72917
  muted: muted,
@@ -72850,13 +72924,12 @@ function VideoPlayerBase(_ref) {
72850
72924
  onWaiting: onWaiting,
72851
72925
  autoPlay: autoPlay,
72852
72926
  onVolumeChange: onVolumeUpdate,
72853
- ref: videoRef,
72854
72927
  onSeeked: onSeeked,
72855
72928
  onSeeking: onSeeking,
72856
- preload: lazyLoad ? "none" : "auto",
72857
- className: className
72858
- });
72859
- }
72929
+ preload: lazyLoad ? "metadata" : "auto",
72930
+ ref: videoRef
72931
+ }, anotherProps));
72932
+ });
72860
72933
 
72861
72934
  /***/ }),
72862
72935