@micromag/viewer 0.3.173 → 0.3.179

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/lib/index.js CHANGED
@@ -26,13 +26,13 @@ var hooks = require('@micromag/core/hooks');
26
26
  var utils = require('@micromag/core/utils');
27
27
  var core = require('@react-spring/core');
28
28
  var web = require('@react-spring/web');
29
+ var faShare = require('@fortawesome/free-solid-svg-icons/faShare');
29
30
  var faTimes = require('@fortawesome/free-solid-svg-icons/faTimes');
30
31
  var reactFontawesome = require('@fortawesome/react-fontawesome');
32
+ var ShareOptions = require('@micromag/element-share-options');
31
33
  var faCompress = require('@fortawesome/free-solid-svg-icons/faCompress');
32
34
  var faExpand = require('@fortawesome/free-solid-svg-icons/faExpand');
33
- var faShare = require('@fortawesome/free-solid-svg-icons/faShare');
34
35
  var Scroll = require('@micromag/element-scroll');
35
- var ShareOptions = require('@micromag/element-share-options');
36
36
  var faArrowLeft = require('@fortawesome/free-solid-svg-icons/faArrowLeft');
37
37
  var faArrowRight = require('@fortawesome/free-solid-svg-icons/faArrowRight');
38
38
  var faPause = require('@fortawesome/free-solid-svg-icons/faPause');
@@ -52,8 +52,8 @@ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray)
52
52
  var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
53
53
  var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
54
54
  var EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter);
55
- var Scroll__default = /*#__PURE__*/_interopDefaultLegacy(Scroll);
56
55
  var ShareOptions__default = /*#__PURE__*/_interopDefaultLegacy(ShareOptions);
56
+ var Scroll__default = /*#__PURE__*/_interopDefaultLegacy(Scroll);
57
57
  var WebView__default = /*#__PURE__*/_interopDefaultLegacy(WebView);
58
58
 
59
59
  var routes = PropTypes__default["default"].shape({
@@ -242,11 +242,171 @@ function useScreenInteraction() {
242
242
  };
243
243
  }
244
244
 
245
- var styles$c = {"container":"micromag-viewer-menus-menu-dots-container","closeButton":"micromag-viewer-menus-menu-dots-closeButton","menuButton":"micromag-viewer-menus-menu-dots-menuButton","item":"micromag-viewer-menus-menu-dots-item","items":"micromag-viewer-menus-menu-dots-items","menu":"micromag-viewer-menus-menu-dots-menu","menuIcon":"micromag-viewer-menus-menu-dots-menuIcon","vertical":"micromag-viewer-menus-menu-dots-vertical","withShadow":"micromag-viewer-menus-menu-dots-withShadow"};
246
-
247
- var styles$b = {"container":"micromag-viewer-menus-menu-dot-container","button":"micromag-viewer-menus-menu-dot-button","dot":"micromag-viewer-menus-menu-dot-dot","subDot":"micromag-viewer-menus-menu-dot-subDot","dots":"micromag-viewer-menus-menu-dot-dots","vertical":"micromag-viewer-menus-menu-dot-vertical"};
245
+ var styles$c = {"close":"micromag-viewer-partials-share-modal-close","container":"micromag-viewer-partials-share-modal-container","opened":"micromag-viewer-partials-share-modal-opened","modal":"micromag-viewer-partials-share-modal-modal","header":"micromag-viewer-partials-share-modal-header","heading":"micromag-viewer-partials-share-modal-heading","closeIcon":"micromag-viewer-partials-share-modal-closeIcon","shareOptions":"micromag-viewer-partials-share-modal-shareOptions"};
248
246
 
249
247
  var propTypes$h = {
248
+ url: PropTypes__default["default"].string,
249
+ title: PropTypes__default["default"].string,
250
+ opened: PropTypes__default["default"].bool,
251
+ className: PropTypes__default["default"].string,
252
+ onShare: PropTypes__default["default"].func,
253
+ onCancel: PropTypes__default["default"].func
254
+ };
255
+ var defaultProps$h = {
256
+ url: null,
257
+ title: null,
258
+ opened: false,
259
+ className: null,
260
+ onShare: null,
261
+ onCancel: null
262
+ };
263
+
264
+ var ShareModal = function ShareModal(_ref) {
265
+ var _ref3;
266
+
267
+ var url = _ref.url,
268
+ title = _ref.title,
269
+ opened = _ref.opened,
270
+ className = _ref.className,
271
+ onShare = _ref.onShare,
272
+ onCancel = _ref.onCancel;
273
+ var modalRef = React.useRef();
274
+ var onDocumentClick = React.useCallback(function (e) {
275
+ var _ref2 = e || {},
276
+ target = _ref2.target;
277
+
278
+ if (!modalRef.current || modalRef.current.contains(target)) {
279
+ return;
280
+ }
281
+
282
+ onCancel();
283
+ }, [opened, onCancel]);
284
+ hooks.useDocumentEvent('click', onDocumentClick, opened);
285
+ return /*#__PURE__*/React__default["default"].createElement("div", {
286
+ className: classNames__default["default"]([styles$c.container, (_ref3 = {}, _defineProperty__default["default"](_ref3, className, className), _defineProperty__default["default"](_ref3, styles$c.opened, opened), _ref3)]),
287
+ "aria-hidden": opened ? null : '-1'
288
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
289
+ className: styles$c.modal,
290
+ ref: modalRef
291
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
292
+ className: styles$c.header
293
+ }, /*#__PURE__*/React__default["default"].createElement("h2", {
294
+ className: styles$c.heading
295
+ }, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
296
+ id: "oL4ueH",
297
+ defaultMessage: [{
298
+ "type": 0,
299
+ "value": "Share"
300
+ }]
301
+ })), /*#__PURE__*/React__default["default"].createElement(components.Button, {
302
+ className: styles$c.close,
303
+ onClick: onCancel,
304
+ focusable: opened
305
+ }, /*#__PURE__*/React__default["default"].createElement(components.Close, {
306
+ className: styles$c.closeIcon,
307
+ border: "none"
308
+ }))), /*#__PURE__*/React__default["default"].createElement("div", {
309
+ className: styles$c.content
310
+ }, /*#__PURE__*/React__default["default"].createElement(ShareOptions__default["default"], {
311
+ className: styles$c.shareOptions,
312
+ title: title,
313
+ url: url,
314
+ focusable: opened,
315
+ onShare: onShare,
316
+ onClose: onCancel
317
+ }))));
318
+ };
319
+
320
+ ShareModal.propTypes = propTypes$h;
321
+ ShareModal.defaultProps = defaultProps$h;
322
+
323
+ var styles$b = {"container":"micromag-viewer-partials-share-button-container"};
324
+
325
+ var propTypes$g = {
326
+ title: PropTypes__default["default"].string,
327
+ url: PropTypes__default["default"].string,
328
+ className: PropTypes__default["default"].string,
329
+ buttonClassName: PropTypes__default["default"].string,
330
+ onShare: PropTypes__default["default"].func,
331
+ children: PropTypes__default["default"].node,
332
+ focusable: PropTypes__default["default"].bool
333
+ };
334
+ var defaultProps$g = {
335
+ title: null,
336
+ url: null,
337
+ className: null,
338
+ buttonClassName: null,
339
+ onShare: null,
340
+ children: null,
341
+ focusable: false
342
+ };
343
+
344
+ var ShareButton = function ShareButton(_ref) {
345
+ var title = _ref.title,
346
+ url = _ref.url,
347
+ className = _ref.className,
348
+ buttonClassName = _ref.buttonClassName,
349
+ onShare = _ref.onShare,
350
+ children = _ref.children,
351
+ focusable = _ref.focusable;
352
+ var intl = reactIntl.useIntl();
353
+
354
+ var _useState = React.useState(false),
355
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
356
+ storyShareModalOpened = _useState2[0],
357
+ setStoryShareModalOpened = _useState2[1];
358
+
359
+ var onShareIconClick = React.useCallback(function () {
360
+ setStoryShareModalOpened(function (opened) {
361
+ return !opened;
362
+ });
363
+ }, [setStoryShareModalOpened, storyShareModalOpened]);
364
+ var onStoryShared = React.useCallback(function (type) {
365
+ setStoryShareModalOpened(false);
366
+
367
+ if (onShare !== null) {
368
+ onShare(type);
369
+ }
370
+ }, [setStoryShareModalOpened, onShare]);
371
+ var onStoryShareCanceled = React.useCallback(function () {
372
+ setStoryShareModalOpened(false);
373
+ }, [setStoryShareModalOpened]);
374
+ return /*#__PURE__*/React__default["default"].createElement("div", {
375
+ className: classNames__default["default"]([styles$b.container, _defineProperty__default["default"]({}, className, className !== null)])
376
+ }, /*#__PURE__*/React__default["default"].createElement(components.Button, {
377
+ className: classNames__default["default"]([_defineProperty__default["default"]({}, buttonClassName, buttonClassName !== null)]),
378
+ onClick: onShareIconClick,
379
+ title: intl.formatMessage({
380
+ id: "7tw6U2",
381
+ defaultMessage: [{
382
+ "type": 0,
383
+ "value": "Share"
384
+ }]
385
+ }),
386
+ "aria-label": intl.formatMessage({
387
+ id: "7tw6U2",
388
+ defaultMessage: [{
389
+ "type": 0,
390
+ "value": "Share"
391
+ }]
392
+ }),
393
+ focusable: focusable
394
+ }, children), /*#__PURE__*/React__default["default"].createElement(ShareModal, {
395
+ className: styles$b.shareModal,
396
+ opened: storyShareModalOpened,
397
+ title: title,
398
+ url: url,
399
+ onShare: onStoryShared,
400
+ onCancel: onStoryShareCanceled
401
+ }));
402
+ };
403
+
404
+ ShareButton.propTypes = propTypes$g;
405
+ ShareButton.defaultProps = defaultProps$g;
406
+
407
+ var styles$a = {"container":"micromag-viewer-menus-menu-dot-container","button":"micromag-viewer-menus-menu-dot-button","dot":"micromag-viewer-menus-menu-dot-dot","subDot":"micromag-viewer-menus-menu-dot-subDot","dots":"micromag-viewer-menus-menu-dot-dots","vertical":"micromag-viewer-menus-menu-dot-vertical"};
408
+
409
+ var propTypes$f = {
250
410
  current: PropTypes__default["default"].bool,
251
411
  active: PropTypes__default["default"].bool,
252
412
  colors: PropTypes__default["default"].shape({
@@ -259,7 +419,7 @@ var propTypes$h = {
259
419
  onClick: PropTypes__default["default"].func,
260
420
  className: PropTypes__default["default"].string
261
421
  };
262
- var defaultProps$h = {
422
+ var defaultProps$f = {
263
423
  current: false,
264
424
  active: false,
265
425
  colors: null,
@@ -322,44 +482,44 @@ var ViewerMenuDot = function ViewerMenuDot(_ref) {
322
482
  });
323
483
  }, [playing, duration, currentTime, setSpringProps]);
324
484
  var inner = current && count > 1 ? /*#__PURE__*/React__default["default"].createElement("span", {
325
- className: styles$b.dots
485
+ className: styles$a.dots
326
486
  }, _toConsumableArray__default["default"](Array(count).keys()).map(function (i) {
327
487
  return /*#__PURE__*/React__default["default"].createElement("span", {
328
- className: classNames__default["default"]([styles$b.dot, styles$b.subDot]),
488
+ className: classNames__default["default"]([styles$a.dot, styles$a.subDot]),
329
489
  style: {
330
490
  width: "".concat(parseFloat(1 / count * 100).toFixed(2), "%"),
331
491
  backgroundColor: active && i <= subIndex ? primary : secondary
332
492
  }
333
493
  });
334
494
  })) : /*#__PURE__*/React__default["default"].createElement("span", {
335
- className: styles$b.dot,
495
+ className: styles$a.dot,
336
496
  style: {
337
497
  backgroundColor: active ? primary : secondary
338
498
  }
339
499
  });
340
500
  return /*#__PURE__*/React__default["default"].createElement("li", {
341
- className: classNames__default["default"]([styles$b.container, (_ref3 = {}, _defineProperty__default["default"](_ref3, styles$b.active, current), _defineProperty__default["default"](_ref3, styles$b.vertical, vertical), _defineProperty__default["default"](_ref3, className, className !== null), _ref3)]),
501
+ className: classNames__default["default"]([styles$a.container, (_ref3 = {}, _defineProperty__default["default"](_ref3, styles$a.active, current), _defineProperty__default["default"](_ref3, styles$a.vertical, vertical), _defineProperty__default["default"](_ref3, className, className !== null), _ref3)]),
342
502
  "aria-hidden": "true"
343
503
  }, /*#__PURE__*/React__default["default"].createElement("button", {
344
504
  type: "button",
345
- className: styles$b.button,
505
+ className: styles$a.button,
346
506
  onClick: onClick,
347
507
  tabIndex: "-1"
348
508
  }, inner));
349
509
  };
350
510
 
351
- ViewerMenuDot.propTypes = propTypes$h;
352
- ViewerMenuDot.defaultProps = defaultProps$h;
511
+ ViewerMenuDot.propTypes = propTypes$f;
512
+ ViewerMenuDot.defaultProps = defaultProps$f;
353
513
 
354
- var styles$a = {};
514
+ var styles$9 = {};
355
515
 
356
- var propTypes$g = {
516
+ var propTypes$e = {
357
517
  size: PropTypes__default["default"].number,
358
518
  spacing: PropTypes__default["default"].number,
359
519
  color: PropTypes__default["default"].string,
360
520
  className: PropTypes__default["default"].string
361
521
  };
362
- var defaultProps$g = {
522
+ var defaultProps$e = {
363
523
  size: 100,
364
524
  spacing: 8,
365
525
  color: 'white',
@@ -373,7 +533,7 @@ var MenuIcon = function MenuIcon(_ref) {
373
533
  className = _ref.className;
374
534
  var squareSize = (size - 2 * spacing) / 3;
375
535
  return /*#__PURE__*/React__default["default"].createElement("svg", {
376
- className: classNames__default["default"]([styles$a.container, _defineProperty__default["default"]({}, className, className !== null)]),
536
+ className: classNames__default["default"]([styles$9.container, _defineProperty__default["default"]({}, className, className !== null)]),
377
537
  xmlns: "http://www.w3.org/2000/svg",
378
538
  viewBox: "0 0 ".concat(size, " ").concat(size),
379
539
  "aria-hidden": "true"
@@ -391,13 +551,18 @@ var MenuIcon = function MenuIcon(_ref) {
391
551
  }));
392
552
  };
393
553
 
394
- MenuIcon.propTypes = propTypes$g;
395
- MenuIcon.defaultProps = defaultProps$g;
554
+ MenuIcon.propTypes = propTypes$e;
555
+ MenuIcon.defaultProps = defaultProps$e;
396
556
 
397
- var propTypes$f = {
557
+ var styles$8 = {"container":"micromag-viewer-menus-menu-dots-container","closeButton":"micromag-viewer-menus-menu-dots-closeButton","menuButton":"micromag-viewer-menus-menu-dots-menuButton","item":"micromag-viewer-menus-menu-dots-item","items":"micromag-viewer-menus-menu-dots-items","menu":"micromag-viewer-menus-menu-dots-menu","menuIcon":"micromag-viewer-menus-menu-dots-menuIcon","vertical":"micromag-viewer-menus-menu-dots-vertical","withShadow":"micromag-viewer-menus-menu-dots-withShadow"};
558
+
559
+ var propTypes$d = {
398
560
  direction: PropTypes__default["default"].oneOf(['horizontal', 'vertical']),
399
561
  withShadow: PropTypes__default["default"].bool,
562
+ title: PropTypes__default["default"].string,
400
563
  items: core$1.PropTypes.menuItems,
564
+ shareUrl: PropTypes__default["default"].string,
565
+ onShare: PropTypes__default["default"].func,
401
566
  onClickItem: PropTypes__default["default"].func,
402
567
  onClickMenu: PropTypes__default["default"].func,
403
568
  colors: PropTypes__default["default"].shape({
@@ -407,19 +572,24 @@ var propTypes$f = {
407
572
  closeable: PropTypes__default["default"].bool,
408
573
  withItemClick: PropTypes__default["default"].bool,
409
574
  withoutScreensMenu: PropTypes__default["default"].bool,
575
+ withoutShareMenu: PropTypes__default["default"].bool,
410
576
  onClose: PropTypes__default["default"].func,
411
577
  className: PropTypes__default["default"].string
412
578
  };
413
- var defaultProps$f = {
579
+ var defaultProps$d = {
414
580
  direction: 'horizontal',
415
581
  withShadow: false,
582
+ title: null,
416
583
  items: [],
584
+ shareUrl: null,
585
+ onShare: null,
417
586
  onClickItem: null,
418
587
  onClickMenu: null,
419
588
  colors: null,
420
589
  closeable: false,
421
590
  withItemClick: false,
422
591
  withoutScreensMenu: false,
592
+ withoutShareMenu: false,
423
593
  onClose: null,
424
594
  className: null
425
595
  };
@@ -429,13 +599,17 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
429
599
 
430
600
  var direction = _ref.direction,
431
601
  withShadow = _ref.withShadow,
602
+ title = _ref.title,
432
603
  items = _ref.items,
604
+ shareUrl = _ref.shareUrl,
605
+ onShare = _ref.onShare,
433
606
  onClickItem = _ref.onClickItem,
434
607
  onClickMenu = _ref.onClickMenu,
435
608
  colors = _ref.colors,
436
609
  closeable = _ref.closeable,
437
610
  withItemClick = _ref.withItemClick,
438
611
  withoutScreensMenu = _ref.withoutScreensMenu,
612
+ withoutShareMenu = _ref.withoutShareMenu,
439
613
  onClose = _ref.onClose,
440
614
  className = _ref.className;
441
615
 
@@ -450,7 +624,7 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
450
624
  return current;
451
625
  });
452
626
  return /*#__PURE__*/React__default["default"].createElement("nav", {
453
- className: classNames__default["default"]([styles$c.container, (_ref4 = {}, _defineProperty__default["default"](_ref4, className, className !== null), _defineProperty__default["default"](_ref4, styles$c.vertical, direction === 'vertical'), _defineProperty__default["default"](_ref4, styles$c.withShadow, withShadow), _ref4)]),
627
+ className: classNames__default["default"]([styles$8.container, (_ref4 = {}, _defineProperty__default["default"](_ref4, className, className !== null), _defineProperty__default["default"](_ref4, styles$8.vertical, direction === 'vertical'), _defineProperty__default["default"](_ref4, styles$8.withShadow, withShadow), _ref4)]),
454
628
  "aria-label": intl.formatMessage({
455
629
  id: "bLYuuN",
456
630
  defaultMessage: [{
@@ -474,7 +648,7 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
474
648
  total: items.length
475
649
  })
476
650
  }, /*#__PURE__*/React__default["default"].createElement("ul", {
477
- className: styles$c.items
651
+ className: styles$8.items
478
652
  }, items.map(function (item, index) {
479
653
  var _ref5 = item || {},
480
654
  _ref5$current = _ref5.current,
@@ -500,10 +674,21 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
500
674
  },
501
675
  vertical: direction === 'vertical'
502
676
  });
503
- }), !withoutScreensMenu ? /*#__PURE__*/React__default["default"].createElement("li", {
504
- className: styles$c.menu
677
+ }), !withoutShareMenu ? /*#__PURE__*/React__default["default"].createElement("li", {
678
+ className: styles$8.menu
679
+ }, /*#__PURE__*/React__default["default"].createElement(ShareButton, {
680
+ className: styles$8.shareButton,
681
+ buttonClassName: styles$8.menuButton,
682
+ onShare: onShare,
683
+ url: shareUrl,
684
+ title: title
685
+ }, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
686
+ className: styles$8.icon,
687
+ icon: faShare.faShare
688
+ }))) : null, !withoutScreensMenu ? /*#__PURE__*/React__default["default"].createElement("li", {
689
+ className: styles$8.menu
505
690
  }, /*#__PURE__*/React__default["default"].createElement(MenuIcon, {
506
- className: styles$c.menuIcon,
691
+ className: styles$8.menuIcon,
507
692
  color: primary
508
693
  }), /*#__PURE__*/React__default["default"].createElement("button", {
509
694
  type: "button",
@@ -521,16 +706,16 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
521
706
  "value": "Menu"
522
707
  }]
523
708
  }),
524
- className: styles$c.menuButton,
709
+ className: styles$8.menuButton,
525
710
  onClick: onClickMenu
526
711
  })) : null, closeable ? /*#__PURE__*/React__default["default"].createElement("li", {
527
- className: styles$c.closeButton,
712
+ className: styles$8.closeButton,
528
713
  style: {
529
714
  color: primary
530
715
  }
531
716
  }, /*#__PURE__*/React__default["default"].createElement("button", {
532
717
  type: "button",
533
- className: styles$c.closeButton,
718
+ className: styles$8.closeButton,
534
719
  onClick: onClose,
535
720
  title: intl.formatMessage({
536
721
  id: "dj/p/q",
@@ -551,13 +736,13 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
551
736
  }))) : null));
552
737
  };
553
738
 
554
- ViewerMenuDots.propTypes = propTypes$f;
555
- ViewerMenuDots.defaultProps = defaultProps$f;
739
+ ViewerMenuDots.propTypes = propTypes$d;
740
+ ViewerMenuDots.defaultProps = defaultProps$d;
556
741
 
557
- var propTypes$e = {
742
+ var propTypes$c = {
558
743
  className: PropTypes__default["default"].string
559
744
  };
560
- var defaultProps$e = {
745
+ var defaultProps$c = {
561
746
  className: null
562
747
  };
563
748
 
@@ -574,170 +759,8 @@ var StackIcon = function StackIcon(_ref) {
574
759
  }));
575
760
  };
576
761
 
577
- StackIcon.propTypes = propTypes$e;
578
- StackIcon.defaultProps = defaultProps$e;
579
-
580
- var styles$9 = {"close":"micromag-viewer-partials-share-modal-close","container":"micromag-viewer-partials-share-modal-container","opened":"micromag-viewer-partials-share-modal-opened","modal":"micromag-viewer-partials-share-modal-modal","header":"micromag-viewer-partials-share-modal-header","heading":"micromag-viewer-partials-share-modal-heading","closeIcon":"micromag-viewer-partials-share-modal-closeIcon","shareOptions":"micromag-viewer-partials-share-modal-shareOptions"};
581
-
582
- var propTypes$d = {
583
- url: PropTypes__default["default"].string,
584
- title: PropTypes__default["default"].string,
585
- opened: PropTypes__default["default"].bool,
586
- className: PropTypes__default["default"].string,
587
- onShare: PropTypes__default["default"].func,
588
- onCancel: PropTypes__default["default"].func
589
- };
590
- var defaultProps$d = {
591
- url: null,
592
- title: null,
593
- opened: false,
594
- className: null,
595
- onShare: null,
596
- onCancel: null
597
- };
598
-
599
- var ShareModal = function ShareModal(_ref) {
600
- var _ref3;
601
-
602
- var url = _ref.url,
603
- title = _ref.title,
604
- opened = _ref.opened,
605
- className = _ref.className,
606
- onShare = _ref.onShare,
607
- onCancel = _ref.onCancel;
608
- var modalRef = React.useRef();
609
- var onDocumentClick = React.useCallback(function (e) {
610
- var _ref2 = e || {},
611
- target = _ref2.target;
612
-
613
- if (!modalRef.current || modalRef.current.contains(target)) {
614
- return;
615
- }
616
-
617
- onCancel();
618
- }, [opened, onCancel]);
619
- hooks.useDocumentEvent('click', onDocumentClick, opened);
620
- return /*#__PURE__*/React__default["default"].createElement("div", {
621
- className: classNames__default["default"]([styles$9.container, (_ref3 = {}, _defineProperty__default["default"](_ref3, className, className), _defineProperty__default["default"](_ref3, styles$9.opened, opened), _ref3)]),
622
- "aria-hidden": opened ? null : '-1'
623
- }, /*#__PURE__*/React__default["default"].createElement("div", {
624
- className: styles$9.modal,
625
- ref: modalRef
626
- }, /*#__PURE__*/React__default["default"].createElement("div", {
627
- className: styles$9.header
628
- }, /*#__PURE__*/React__default["default"].createElement("h2", {
629
- className: styles$9.heading
630
- }, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
631
- id: "oL4ueH",
632
- defaultMessage: [{
633
- "type": 0,
634
- "value": "Share"
635
- }]
636
- })), /*#__PURE__*/React__default["default"].createElement(components.Button, {
637
- className: styles$9.close,
638
- onClick: onCancel,
639
- focusable: opened
640
- }, /*#__PURE__*/React__default["default"].createElement(components.Close, {
641
- className: styles$9.closeIcon,
642
- border: "none"
643
- }))), /*#__PURE__*/React__default["default"].createElement("div", {
644
- className: styles$9.content
645
- }, /*#__PURE__*/React__default["default"].createElement(ShareOptions__default["default"], {
646
- className: styles$9.shareOptions,
647
- title: title,
648
- url: url,
649
- focusable: opened,
650
- onShare: onShare,
651
- onClose: onCancel
652
- }))));
653
- };
654
-
655
- ShareModal.propTypes = propTypes$d;
656
- ShareModal.defaultProps = defaultProps$d;
657
-
658
- var styles$8 = {"container":"micromag-viewer-partials-share-button-container"};
659
-
660
- var propTypes$c = {
661
- title: PropTypes__default["default"].string,
662
- url: PropTypes__default["default"].string,
663
- className: PropTypes__default["default"].string,
664
- buttonClassName: PropTypes__default["default"].string,
665
- onShare: PropTypes__default["default"].func,
666
- children: PropTypes__default["default"].node,
667
- focusable: PropTypes__default["default"].bool
668
- };
669
- var defaultProps$c = {
670
- title: null,
671
- url: null,
672
- className: null,
673
- buttonClassName: null,
674
- onShare: null,
675
- children: null,
676
- focusable: false
677
- };
678
-
679
- var ShareButton = function ShareButton(_ref) {
680
- var title = _ref.title,
681
- url = _ref.url,
682
- className = _ref.className,
683
- buttonClassName = _ref.buttonClassName,
684
- onShare = _ref.onShare,
685
- children = _ref.children,
686
- focusable = _ref.focusable;
687
- var intl = reactIntl.useIntl();
688
-
689
- var _useState = React.useState(false),
690
- _useState2 = _slicedToArray__default["default"](_useState, 2),
691
- storyShareModalOpened = _useState2[0],
692
- setStoryShareModalOpened = _useState2[1];
693
-
694
- var onShareIconClick = React.useCallback(function () {
695
- setStoryShareModalOpened(function (opened) {
696
- return !opened;
697
- });
698
- }, [setStoryShareModalOpened, storyShareModalOpened]);
699
- var onStoryShared = React.useCallback(function (type) {
700
- setStoryShareModalOpened(false);
701
-
702
- if (onShare !== null) {
703
- onShare(type);
704
- }
705
- }, [setStoryShareModalOpened, onShare]);
706
- var onStoryShareCanceled = React.useCallback(function () {
707
- setStoryShareModalOpened(false);
708
- }, [setStoryShareModalOpened]);
709
- return /*#__PURE__*/React__default["default"].createElement("div", {
710
- className: classNames__default["default"]([styles$8.container, _defineProperty__default["default"]({}, className, className !== null)])
711
- }, /*#__PURE__*/React__default["default"].createElement(components.Button, {
712
- className: classNames__default["default"]([_defineProperty__default["default"]({}, buttonClassName, buttonClassName !== null)]),
713
- onClick: onShareIconClick,
714
- title: intl.formatMessage({
715
- id: "7tw6U2",
716
- defaultMessage: [{
717
- "type": 0,
718
- "value": "Share"
719
- }]
720
- }),
721
- "aria-label": intl.formatMessage({
722
- id: "7tw6U2",
723
- defaultMessage: [{
724
- "type": 0,
725
- "value": "Share"
726
- }]
727
- }),
728
- focusable: focusable
729
- }, children), /*#__PURE__*/React__default["default"].createElement(ShareModal, {
730
- className: styles$8.shareModal,
731
- opened: storyShareModalOpened,
732
- title: title,
733
- url: url,
734
- onShare: onStoryShared,
735
- onCancel: onStoryShareCanceled
736
- }));
737
- };
738
-
739
- ShareButton.propTypes = propTypes$c;
740
- ShareButton.defaultProps = defaultProps$c;
762
+ StackIcon.propTypes = propTypes$c;
763
+ StackIcon.defaultProps = defaultProps$c;
741
764
 
742
765
  var styles$7 = {"container":"micromag-viewer-menus-menu-preview-container","screenButton":"micromag-viewer-menus-menu-preview-screenButton","activeScreenBorder":"micromag-viewer-menus-menu-preview-activeScreenBorder","scroll":"micromag-viewer-menus-menu-preview-scroll","header":"micromag-viewer-menus-menu-preview-header","button":"micromag-viewer-menus-menu-preview-button","shareButton":"micromag-viewer-menus-menu-preview-shareButton","disabled":"micromag-viewer-menus-menu-preview-disabled","icon":"micromag-viewer-menus-menu-preview-icon","buttons":"micromag-viewer-menus-menu-preview-buttons","organisation":"micromag-viewer-menus-menu-preview-organisation","title":"micromag-viewer-menus-menu-preview-title","content":"micromag-viewer-menus-menu-preview-content","nav":"micromag-viewer-menus-menu-preview-nav","item":"micromag-viewer-menus-menu-preview-item","items":"micromag-viewer-menus-menu-preview-items","active":"micromag-viewer-menus-menu-preview-active","itemContent":"micromag-viewer-menus-menu-preview-itemContent","screenContainer":"micromag-viewer-menus-menu-preview-screenContainer","subScreenBadge":"micromag-viewer-menus-menu-preview-subScreenBadge","subScreenCount":"micromag-viewer-menus-menu-preview-subScreenCount","subScreenIcon":"micromag-viewer-menus-menu-preview-subScreenIcon","screenContent":"micromag-viewer-menus-menu-preview-screenContent"};
743
766
 
@@ -746,13 +769,11 @@ var propTypes$b = {
746
769
  screenSize: core$1.PropTypes.screenSize,
747
770
  menuWidth: PropTypes__default["default"].number,
748
771
  title: PropTypes__default["default"].string,
749
- shareUrl: PropTypes__default["default"].string,
750
772
  items: core$1.PropTypes.menuItems,
751
773
  focusable: PropTypes__default["default"].bool,
752
774
  shouldLoad: PropTypes__default["default"].bool,
753
775
  onClickItem: PropTypes__default["default"].func,
754
776
  onClose: PropTypes__default["default"].func,
755
- onShare: PropTypes__default["default"].func,
756
777
  maxThumbsWidth: PropTypes__default["default"].number,
757
778
  toggleFullscreen: PropTypes__default["default"].func,
758
779
  fullscreenActive: PropTypes__default["default"].bool,
@@ -764,13 +785,11 @@ var defaultProps$b = {
764
785
  screenSize: null,
765
786
  menuWidth: null,
766
787
  title: null,
767
- shareUrl: null,
768
788
  items: [],
769
789
  focusable: true,
770
790
  shouldLoad: true,
771
791
  onClickItem: null,
772
792
  onClose: null,
773
- onShare: null,
774
793
  maxThumbsWidth: 140,
775
794
  toggleFullscreen: null,
776
795
  fullscreenActive: false,
@@ -783,12 +802,10 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
783
802
  screenSize = _ref.screenSize,
784
803
  menuWidth = _ref.menuWidth,
785
804
  title = _ref.title,
786
- shareUrl = _ref.shareUrl,
787
805
  items = _ref.items,
788
806
  focusable = _ref.focusable,
789
807
  onClickItem = _ref.onClickItem,
790
808
  onClose = _ref.onClose,
791
- onShare = _ref.onShare,
792
809
  maxThumbsWidth = _ref.maxThumbsWidth,
793
810
  toggleFullscreen = _ref.toggleFullscreen,
794
811
  fullscreenActive = _ref.fullscreenActive,
@@ -903,17 +920,7 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
903
920
  }, title), /*#__PURE__*/React__default["default"].createElement("div", {
904
921
  className: styles$7.buttons,
905
922
  style: colorSecondaryColorStyle
906
- }, /*#__PURE__*/React__default["default"].createElement(ShareButton, {
907
- className: styles$7.shareButton,
908
- buttonClassName: styles$7.button,
909
- onShare: onShare,
910
- url: shareUrl,
911
- title: title,
912
- focusable: focusable
913
- }, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
914
- className: styles$7.icon,
915
- icon: faShare.faShare
916
- })), fullscreenEnabled ? /*#__PURE__*/React__default["default"].createElement(components.Button, {
923
+ }, fullscreenEnabled ? /*#__PURE__*/React__default["default"].createElement(components.Button, {
917
924
  className: styles$7.button,
918
925
  onClick: toggleFullscreen,
919
926
  title: intl.formatMessage({
@@ -1059,6 +1066,7 @@ var propTypes$a = {
1059
1066
  menuWidth: PropTypes__default["default"].number,
1060
1067
  withDotItemClick: PropTypes__default["default"].bool,
1061
1068
  withoutScreensMenu: PropTypes__default["default"].bool,
1069
+ withoutShareMenu: PropTypes__default["default"].bool,
1062
1070
  onRequestOpen: PropTypes__default["default"].func,
1063
1071
  onRequestClose: PropTypes__default["default"].func,
1064
1072
  onClickItem: PropTypes__default["default"].func,
@@ -1084,6 +1092,7 @@ var defaultProps$a = {
1084
1092
  menuWidth: null,
1085
1093
  withDotItemClick: false,
1086
1094
  withoutScreensMenu: false,
1095
+ withoutShareMenu: false,
1087
1096
  onRequestOpen: null,
1088
1097
  onRequestClose: null,
1089
1098
  onClickItem: null,
@@ -1108,6 +1117,7 @@ var ViewerMenu = function ViewerMenu(_ref) {
1108
1117
  menuWidth = _ref.menuWidth,
1109
1118
  withDotItemClick = _ref.withDotItemClick,
1110
1119
  withoutScreensMenu = _ref.withoutScreensMenu,
1120
+ withoutShareMenu = _ref.withoutShareMenu,
1111
1121
  onRequestOpen = _ref.onRequestOpen,
1112
1122
  onRequestClose = _ref.onRequestClose,
1113
1123
  customOnClickItem = _ref.onClickItem,
@@ -1293,11 +1303,15 @@ var ViewerMenu = function ViewerMenu(_ref) {
1293
1303
  direction: "horizontal",
1294
1304
  withShadow: withShadow,
1295
1305
  items: items,
1306
+ title: title,
1307
+ shareUrl: shareUrl,
1308
+ onShare: onClickShare,
1296
1309
  onClickItem: onClickItem,
1297
1310
  onClickMenu: onClickMenu,
1298
1311
  closeable: closeable,
1299
1312
  withItemClick: withDotItemClick,
1300
1313
  withoutScreensMenu: withoutScreensMenu,
1314
+ withoutShareMenu: withoutShareMenu,
1301
1315
  onClose: onClickCloseViewer,
1302
1316
  className: styles$6.menuDots
1303
1317
  }))), /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
@@ -1306,8 +1320,6 @@ var ViewerMenu = function ViewerMenu(_ref) {
1306
1320
  ref: menuPreviewContainerRef
1307
1321
  }, /*#__PURE__*/React__default["default"].createElement(ViewerMenuPreview, {
1308
1322
  viewerTheme: viewerTheme,
1309
- title: title,
1310
- shareUrl: shareUrl,
1311
1323
  className: styles$6.menuPreview,
1312
1324
  screenSize: screenSize,
1313
1325
  menuWidth: menuWidth,
@@ -1315,7 +1327,6 @@ var ViewerMenu = function ViewerMenu(_ref) {
1315
1327
  items: items,
1316
1328
  onClickItem: onClickItem,
1317
1329
  onClose: onClickClose,
1318
- onShare: onClickShare,
1319
1330
  toggleFullscreen: toggleFullscreen,
1320
1331
  fullscreenActive: fullscreenActive,
1321
1332
  fullscreenEnabled: fullscreenEnabled
@@ -1904,13 +1915,16 @@ var propTypes$2 = {
1904
1915
  neighborScreensMounted: PropTypes__default["default"].number,
1905
1916
  storyIsParsed: PropTypes__default["default"].bool,
1906
1917
  landscapeScreenMargin: PropTypes__default["default"].number,
1918
+ landscapeSmallScreenScale: PropTypes__default["default"].number,
1907
1919
  withMetadata: PropTypes__default["default"].bool,
1908
1920
  withoutMenu: PropTypes__default["default"].bool,
1909
1921
  withoutScreensMenu: PropTypes__default["default"].bool,
1922
+ withoutShareMenu: PropTypes__default["default"].bool,
1910
1923
  withoutMenuShadow: PropTypes__default["default"].bool,
1911
1924
  withoutFullscreen: PropTypes__default["default"].bool,
1912
1925
  withLandscapeSiblingsScreens: PropTypes__default["default"].bool,
1913
1926
  withNavigationHint: PropTypes__default["default"].bool,
1927
+ withoutPlaybackControls: PropTypes__default["default"].bool,
1914
1928
  closeable: PropTypes__default["default"].bool,
1915
1929
  onClose: PropTypes__default["default"].func,
1916
1930
  onInteraction: PropTypes__default["default"].func,
@@ -1943,13 +1957,16 @@ var defaultProps$2 = {
1943
1957
  neighborScreensMounted: 1,
1944
1958
  storyIsParsed: false,
1945
1959
  landscapeScreenMargin: 20,
1960
+ landscapeSmallScreenScale: 0.9,
1946
1961
  withMetadata: false,
1947
1962
  withoutMenu: false,
1948
1963
  withoutScreensMenu: false,
1964
+ withoutShareMenu: false,
1949
1965
  withoutMenuShadow: false,
1950
1966
  withoutFullscreen: false,
1951
1967
  withLandscapeSiblingsScreens: false,
1952
1968
  withNavigationHint: false,
1969
+ withoutPlaybackControls: false,
1953
1970
  menuIsScreenWidth: false,
1954
1971
  closeable: false,
1955
1972
  onClose: null,
@@ -1980,13 +1997,16 @@ var Viewer = function Viewer(_ref) {
1980
1997
  neighborScreensMounted = _ref.neighborScreensMounted,
1981
1998
  storyIsParsed = _ref.storyIsParsed,
1982
1999
  landscapeScreenMargin = _ref.landscapeScreenMargin,
2000
+ landscapeSmallScreenScale = _ref.landscapeSmallScreenScale,
1983
2001
  withMetadata = _ref.withMetadata,
1984
2002
  withoutMenu = _ref.withoutMenu,
1985
2003
  withoutScreensMenu = _ref.withoutScreensMenu,
2004
+ withoutShareMenu = _ref.withoutShareMenu,
1986
2005
  withoutMenuShadow = _ref.withoutMenuShadow;
1987
2006
  _ref.withoutFullscreen;
1988
2007
  var withLandscapeSiblingsScreens = _ref.withLandscapeSiblingsScreens,
1989
2008
  withNavigationHint = _ref.withNavigationHint,
2009
+ withoutPlaybackControls = _ref.withoutPlaybackControls,
1990
2010
  menuIsScreenWidth = _ref.menuIsScreenWidth,
1991
2011
  closeable = _ref.closeable,
1992
2012
  onCloseViewer = _ref.onClose,
@@ -2414,6 +2434,7 @@ var Viewer = function Viewer(_ref) {
2414
2434
  onRequestClose: onMenuRequestClose,
2415
2435
  withDotItemClick: screenContainerWidth > 400,
2416
2436
  withoutScreensMenu: withoutScreensMenu,
2437
+ withoutShareMenu: withoutShareMenu,
2417
2438
  refDots: menuDotsContainerRef
2418
2439
  }) : null, ready || withoutScreensTransforms ? /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
2419
2440
  ref: contentRef,
@@ -2427,7 +2448,21 @@ var Viewer = function Viewer(_ref) {
2427
2448
  var screenTransform = null;
2428
2449
 
2429
2450
  if (landscape) {
2430
- screenTransform = withLandscapeSiblingsScreens ? "translateX(calc(".concat((screenContainerWidth + landscapeScreenMargin) * (i - screenIndex), "px - 50%)) scale(").concat(current ? 1 : 0.9, ")") : null;
2451
+ var max = i - screenIndex;
2452
+ var distance = (screenContainerWidth + landscapeScreenMargin) * max; // Compensates for scaling
2453
+
2454
+ if (max !== 0) {
2455
+ var halfMargin = screenContainerWidth * (1 - landscapeSmallScreenScale) / 2;
2456
+ distance -= halfMargin * max;
2457
+
2458
+ if (max < -1) {
2459
+ distance -= halfMargin * (max + 1);
2460
+ } else if (max > 1) {
2461
+ distance -= halfMargin * (max - 1);
2462
+ }
2463
+ }
2464
+
2465
+ screenTransform = withLandscapeSiblingsScreens ? "translateX(calc(".concat(distance, "px - 50%)) scale(").concat(current ? 1 : landscapeSmallScreenScale, ")") : null;
2431
2466
  } else {
2432
2467
  screenTransform = "translateX(".concat(current ? 0 : '100%', ")");
2433
2468
  }
@@ -2483,7 +2518,7 @@ var Viewer = function Viewer(_ref) {
2483
2518
  className: classNames__default["default"]([styles$6.navButton, styles$6.next]),
2484
2519
  onClick: gotoNextScreen
2485
2520
  }) : null));
2486
- }), /*#__PURE__*/React__default["default"].createElement("div", {
2521
+ }), !withoutPlaybackControls ? /*#__PURE__*/React__default["default"].createElement("div", {
2487
2522
  className: styles$6.playbackControls,
2488
2523
  ref: playbackControlsContainerRef
2489
2524
  }, /*#__PURE__*/React__default["default"].createElement("div", {
@@ -2493,7 +2528,7 @@ var Viewer = function Viewer(_ref) {
2493
2528
  }
2494
2529
  }, /*#__PURE__*/React__default["default"].createElement(PlaybackControls, {
2495
2530
  className: styles$6.controls
2496
- })))) : null, /*#__PURE__*/React__default["default"].createElement(WebViewContainer, {
2531
+ }))) : null) : null, /*#__PURE__*/React__default["default"].createElement(WebViewContainer, {
2497
2532
  className: styles$6.webView,
2498
2533
  style: {
2499
2534
  maxWidth: Math.max(screenContainerWidth, 600)