@micromag/viewer 0.3.251 → 0.3.262
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/assets/css/styles.css +9 -9
- package/es/index.js +203 -108
- package/lib/index.js +202 -107
- package/package.json +11 -10
package/lib/index.js
CHANGED
|
@@ -16,6 +16,7 @@ var screens = require('@micromag/screens');
|
|
|
16
16
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
17
17
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
18
18
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
19
|
+
var web = require('@react-spring/web');
|
|
19
20
|
var classNames = require('classnames');
|
|
20
21
|
var reactHelmet = require('react-helmet');
|
|
21
22
|
var EventEmitter = require('wolfy87-eventemitter');
|
|
@@ -26,7 +27,6 @@ var reactIntl = require('react-intl');
|
|
|
26
27
|
var faTimes = require('@fortawesome/free-solid-svg-icons/faTimes');
|
|
27
28
|
var reactFontawesome = require('@fortawesome/react-fontawesome');
|
|
28
29
|
var core$1 = require('@react-spring/core');
|
|
29
|
-
var web = require('@react-spring/web');
|
|
30
30
|
var Scroll = require('@micromag/element-scroll');
|
|
31
31
|
var ShareOptions = require('@micromag/element-share-options');
|
|
32
32
|
var react = require('@use-gesture/react');
|
|
@@ -134,6 +134,7 @@ function useScreenInteraction() {
|
|
|
134
134
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
135
135
|
screens = _ref.screens,
|
|
136
136
|
screenIndex = _ref.screenIndex,
|
|
137
|
+
screenWidth = _ref.screenWidth,
|
|
137
138
|
_ref$disableCurrentSc = _ref.disableCurrentScreenNavigation,
|
|
138
139
|
disableCurrentScreenNavigation = _ref$disableCurrentSc === void 0 ? false : _ref$disableCurrentSc,
|
|
139
140
|
_ref$clickOnSiblings = _ref.clickOnSiblings,
|
|
@@ -203,13 +204,14 @@ function useScreenInteraction() {
|
|
|
203
204
|
}
|
|
204
205
|
|
|
205
206
|
var _currentTarget$getBou = currentTarget.getBoundingClientRect(),
|
|
206
|
-
left = _currentTarget$getBou.left,
|
|
207
207
|
width = _currentTarget$getBou.width;
|
|
208
208
|
|
|
209
|
-
var
|
|
210
|
-
var
|
|
209
|
+
var margin = (width - screenWidth) / 2;
|
|
210
|
+
var screenPreviousZone = screenWidth * (1 - nextScreenWidthPercent);
|
|
211
|
+
var previousZone = margin + screenPreviousZone;
|
|
212
|
+
var direction = x < previousZone ? 'previous' : 'next';
|
|
211
213
|
var lastIndex = screensCount - 1;
|
|
212
|
-
var nextIndex = index;
|
|
214
|
+
var nextIndex = index;
|
|
213
215
|
|
|
214
216
|
if (direction === 'previous' && !clickOnSiblings) {
|
|
215
217
|
nextIndex = Math.max(0, screenIndex - 1);
|
|
@@ -531,14 +533,14 @@ var styles$e = {"container":"micromag-viewer-buttons-toggle-button-container","n
|
|
|
531
533
|
|
|
532
534
|
var propTypes$i = {
|
|
533
535
|
className: PropTypes__default["default"].string,
|
|
534
|
-
|
|
536
|
+
progressSpring: PropTypes__default["default"].number,
|
|
535
537
|
button: PropTypes__default["default"].node,
|
|
536
538
|
toggledButton: PropTypes__default["default"].node,
|
|
537
539
|
toggledButtonClassName: PropTypes__default["default"].string
|
|
538
540
|
};
|
|
539
541
|
var defaultProps$i = {
|
|
540
542
|
className: null,
|
|
541
|
-
|
|
543
|
+
progressSpring: 0,
|
|
542
544
|
button: null,
|
|
543
545
|
toggledButton: null,
|
|
544
546
|
toggledButtonClassName: null
|
|
@@ -546,26 +548,27 @@ var defaultProps$i = {
|
|
|
546
548
|
|
|
547
549
|
var ToggleButton = function ToggleButton(_ref) {
|
|
548
550
|
var className = _ref.className,
|
|
549
|
-
|
|
551
|
+
progressSpring = _ref.progressSpring,
|
|
550
552
|
button = _ref.button,
|
|
551
553
|
toggledButton = _ref.toggledButton,
|
|
552
554
|
toggledButtonClassName = _ref.toggledButtonClassName;
|
|
553
555
|
if (button === null) return false;
|
|
554
|
-
|
|
555
|
-
var getToggleButtonStyles = function getToggleButtonStyles(t) {
|
|
556
|
-
return {
|
|
557
|
-
transform: "translateY(".concat(t * -100, "%)")
|
|
558
|
-
};
|
|
559
|
-
};
|
|
560
|
-
|
|
561
556
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
562
557
|
className: classNames__default["default"]([styles$e.container, _defineProperty__default["default"]({}, className, className !== null)])
|
|
563
|
-
}, /*#__PURE__*/React__default["default"].createElement(
|
|
558
|
+
}, /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
|
|
564
559
|
className: styles$e.normal,
|
|
565
|
-
style:
|
|
566
|
-
|
|
560
|
+
style: {
|
|
561
|
+
transform: progressSpring.to(function (p) {
|
|
562
|
+
return "translateY(".concat(p * -100, "%)");
|
|
563
|
+
})
|
|
564
|
+
}
|
|
565
|
+
}, button), /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
|
|
567
566
|
className: classNames__default["default"]([styles$e.toggled, _defineProperty__default["default"]({}, toggledButtonClassName, toggledButtonClassName !== null)]),
|
|
568
|
-
style:
|
|
567
|
+
style: {
|
|
568
|
+
transform: progressSpring.to(function (p) {
|
|
569
|
+
return "translateY(".concat((p - 1) * -100, "%)");
|
|
570
|
+
})
|
|
571
|
+
}
|
|
569
572
|
}, toggledButton));
|
|
570
573
|
};
|
|
571
574
|
|
|
@@ -576,20 +579,20 @@ var styles$d = {"backdrop":"micromag-viewer-menus-menu-container-backdrop","heig
|
|
|
576
579
|
|
|
577
580
|
var propTypes$h = {
|
|
578
581
|
className: PropTypes__default["default"].string,
|
|
579
|
-
|
|
582
|
+
progressSpring: PropTypes__default["default"].number,
|
|
580
583
|
theme: core.PropTypes.viewerTheme,
|
|
581
584
|
children: PropTypes__default["default"].node
|
|
582
585
|
};
|
|
583
586
|
var defaultProps$h = {
|
|
584
587
|
className: null,
|
|
585
|
-
|
|
588
|
+
progressSpring: 0,
|
|
586
589
|
theme: null,
|
|
587
590
|
children: null
|
|
588
591
|
};
|
|
589
592
|
|
|
590
593
|
var ViewerMenuContainer = function ViewerMenuContainer(_ref) {
|
|
591
594
|
var className = _ref.className,
|
|
592
|
-
|
|
595
|
+
progressSpring = _ref.progressSpring,
|
|
593
596
|
viewerTheme = _ref.theme,
|
|
594
597
|
children = _ref.children;
|
|
595
598
|
|
|
@@ -607,17 +610,26 @@ var ViewerMenuContainer = function ViewerMenuContainer(_ref) {
|
|
|
607
610
|
style: {
|
|
608
611
|
pointerEvents: 'none'
|
|
609
612
|
}
|
|
610
|
-
}, /*#__PURE__*/React__default["default"].createElement(
|
|
613
|
+
}, /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
|
|
611
614
|
className: styles$d.heightContainer,
|
|
612
615
|
style: _objectSpread__default["default"]({
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
+
opacity: progressSpring,
|
|
617
|
+
transform: progressSpring.to(function (p) {
|
|
618
|
+
return "translateY(".concat((1 - p) * -2, "rem)");
|
|
619
|
+
}),
|
|
620
|
+
pointerEvents: progressSpring.to(function (p) {
|
|
621
|
+
return p < 0.25 ? 'none' : 'auto';
|
|
622
|
+
}),
|
|
623
|
+
zIndex: progressSpring.to(function (p) {
|
|
624
|
+
return Math.round(2 + p);
|
|
625
|
+
})
|
|
616
626
|
}, backgroundColorStyle)
|
|
617
|
-
}, children), /*#__PURE__*/React__default["default"].createElement(
|
|
627
|
+
}, children), /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
|
|
618
628
|
className: styles$d.backdrop,
|
|
619
629
|
style: {
|
|
620
|
-
opacity:
|
|
630
|
+
opacity: progressSpring.to(function (p) {
|
|
631
|
+
return utils.easings.easeOutQuint(p);
|
|
632
|
+
})
|
|
621
633
|
}
|
|
622
634
|
}));
|
|
623
635
|
};
|
|
@@ -944,7 +956,10 @@ var ViewerMenuScreen = function ViewerMenuScreen(_ref) {
|
|
|
944
956
|
}]
|
|
945
957
|
})) : '');
|
|
946
958
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
947
|
-
className: classNames__default["default"]([styles$a.container, (_ref4 = {}, _defineProperty__default["default"](_ref4, className, className !== null), _defineProperty__default["default"](_ref4, styles$a.isCurrent, current), _ref4)])
|
|
959
|
+
className: classNames__default["default"]([styles$a.container, (_ref4 = {}, _defineProperty__default["default"](_ref4, className, className !== null), _defineProperty__default["default"](_ref4, styles$a.isCurrent, current), _ref4)]),
|
|
960
|
+
style: {
|
|
961
|
+
paddingBottom: "".concat(screenHeight / screenWidth * 100, "%")
|
|
962
|
+
}
|
|
948
963
|
}, /*#__PURE__*/React__default["default"].createElement("button", {
|
|
949
964
|
type: "button",
|
|
950
965
|
className: styles$a.button,
|
|
@@ -977,7 +992,7 @@ var ViewerMenuScreen = function ViewerMenuScreen(_ref) {
|
|
|
977
992
|
ViewerMenuScreen.propTypes = propTypes$d;
|
|
978
993
|
ViewerMenuScreen.defaultProps = defaultProps$d;
|
|
979
994
|
|
|
980
|
-
var styles$9 = {"scroll":"micromag-viewer-menus-menu-preview-scroll","container":"micromag-viewer-menus-menu-preview-container","disabled":"micromag-viewer-menus-menu-preview-disabled","screenButton":"micromag-viewer-menus-menu-preview-screenButton","
|
|
995
|
+
var styles$9 = {"scroll":"micromag-viewer-menus-menu-preview-scroll","container":"micromag-viewer-menus-menu-preview-container","disabled":"micromag-viewer-menus-menu-preview-disabled","screenButton":"micromag-viewer-menus-menu-preview-screenButton","content":"micromag-viewer-menus-menu-preview-content","buttons":"micromag-viewer-menus-menu-preview-buttons","organisation":"micromag-viewer-menus-menu-preview-organisation","icon":"micromag-viewer-menus-menu-preview-icon","title":"micromag-viewer-menus-menu-preview-title","nav":"micromag-viewer-menus-menu-preview-nav","item":"micromag-viewer-menus-menu-preview-item","items":"micromag-viewer-menus-menu-preview-items","inner":"micromag-viewer-menus-menu-preview-inner","frame":"micromag-viewer-menus-menu-preview-frame","screen":"micromag-viewer-menus-menu-preview-screen","intro":"micromag-viewer-menus-menu-preview-intro"};
|
|
981
996
|
|
|
982
997
|
var propTypes$c = {
|
|
983
998
|
viewerTheme: core.PropTypes.viewerTheme,
|
|
@@ -988,6 +1003,7 @@ var propTypes$c = {
|
|
|
988
1003
|
onClickScreen: PropTypes__default["default"].func,
|
|
989
1004
|
maxThumbsWidth: PropTypes__default["default"].number,
|
|
990
1005
|
paddingTop: PropTypes__default["default"].number,
|
|
1006
|
+
scrollDisabled: PropTypes__default["default"].bool,
|
|
991
1007
|
// @todo to reimplement:
|
|
992
1008
|
// shouldLoad: PropTypes.bool,
|
|
993
1009
|
// toggleFullscreen: PropTypes.func,
|
|
@@ -1005,6 +1021,7 @@ var defaultProps$c = {
|
|
|
1005
1021
|
onClickScreen: null,
|
|
1006
1022
|
maxThumbsWidth: 140,
|
|
1007
1023
|
paddingTop: null,
|
|
1024
|
+
scrollDisabled: false,
|
|
1008
1025
|
// toggleFullscreen: null,
|
|
1009
1026
|
// fullscreenActive: false,
|
|
1010
1027
|
// fullscreenEnabled: false,
|
|
@@ -1020,6 +1037,7 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
|
1020
1037
|
onClickScreen = _ref.onClickScreen,
|
|
1021
1038
|
maxThumbsWidth = _ref.maxThumbsWidth,
|
|
1022
1039
|
paddingTop = _ref.paddingTop,
|
|
1040
|
+
scrollDisabled = _ref.scrollDisabled,
|
|
1023
1041
|
className = _ref.className;
|
|
1024
1042
|
|
|
1025
1043
|
var _useDimensionObserver = hooks.useDimensionObserver(),
|
|
@@ -1046,12 +1064,29 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
|
1046
1064
|
var brandImageStyle = brandImageUrl !== null ? {
|
|
1047
1065
|
backgroundImage: "url(".concat(brandImageUrl, ")")
|
|
1048
1066
|
} : null; // const { url: brandLogoUrl = null } = brandLogo || {};
|
|
1049
|
-
|
|
1067
|
+
|
|
1068
|
+
var _useState = React.useState([]),
|
|
1069
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
1070
|
+
screensMounted = _useState2[0],
|
|
1071
|
+
setScreensMounted = _useState2[1]; // @todo optimize all of this the proper way
|
|
1050
1072
|
// const finalItems = useMemo(
|
|
1051
1073
|
// () => (!focusable ? items.map((s, i) => (i > 6 ? { screenId: s.screenId } : s)) : items),
|
|
1052
1074
|
// [items, focusable],
|
|
1053
1075
|
// );
|
|
1054
1076
|
|
|
1077
|
+
|
|
1078
|
+
React.useEffect(function () {
|
|
1079
|
+
if (items.length === screensMounted.length) {
|
|
1080
|
+
return null;
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
var timeout = setTimeout(function () {
|
|
1084
|
+
setScreensMounted([].concat(_toConsumableArray__default["default"](screensMounted), [true]));
|
|
1085
|
+
}, 40);
|
|
1086
|
+
return function () {
|
|
1087
|
+
clearTimeout(timeout);
|
|
1088
|
+
};
|
|
1089
|
+
}, [items, screensMounted, setScreensMounted]);
|
|
1055
1090
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1056
1091
|
className: classNames__default["default"]([styles$9.container, _defineProperty__default["default"]({}, className, className !== null)]),
|
|
1057
1092
|
style: _objectSpread__default["default"](_objectSpread__default["default"]({}, brandImageStyle), {}, {
|
|
@@ -1062,7 +1097,8 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
|
1062
1097
|
className: styles$9.content,
|
|
1063
1098
|
ref: containerRef
|
|
1064
1099
|
}, /*#__PURE__*/React__default["default"].createElement(Scroll__default["default"], {
|
|
1065
|
-
className: styles$9.scroll
|
|
1100
|
+
className: styles$9.scroll,
|
|
1101
|
+
disabled: scrollDisabled
|
|
1066
1102
|
}, /*#__PURE__*/React__default["default"].createElement("nav", {
|
|
1067
1103
|
className: styles$9.nav,
|
|
1068
1104
|
style: {
|
|
@@ -1072,38 +1108,36 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
|
1072
1108
|
className: styles$9.items
|
|
1073
1109
|
}, items.map(function (item, index) {
|
|
1074
1110
|
var _ref6 = item || {},
|
|
1075
|
-
screenId = _ref6.screenId
|
|
1076
|
-
_ref6$screen = _ref6.screen,
|
|
1077
|
-
screen = _ref6$screen === void 0 ? null : _ref6$screen;
|
|
1111
|
+
screenId = _ref6.screenId;
|
|
1078
1112
|
|
|
1079
1113
|
var itemStyles = {
|
|
1080
1114
|
width: "".concat(100 / thumbsPerLine, "%")
|
|
1081
1115
|
};
|
|
1116
|
+
|
|
1117
|
+
var _ref7 = screenSize || {},
|
|
1118
|
+
screenWidth = _ref7.width,
|
|
1119
|
+
screenHeight = _ref7.height;
|
|
1120
|
+
|
|
1121
|
+
var screenMounted = screensMounted[index] || false;
|
|
1082
1122
|
return /*#__PURE__*/React__default["default"].createElement("li", {
|
|
1083
1123
|
key: "item-".concat(screenId),
|
|
1084
1124
|
className: styles$9.item,
|
|
1085
1125
|
style: itemStyles
|
|
1086
1126
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1087
|
-
className: styles$9.
|
|
1088
|
-
},
|
|
1089
|
-
className: styles$9.
|
|
1090
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
1091
|
-
width: "10",
|
|
1092
|
-
height: "16",
|
|
1093
|
-
viewBox: "0 0 10 16",
|
|
1127
|
+
className: styles$9.inner
|
|
1128
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1129
|
+
className: classNames__default["default"]([styles$9.frame, _defineProperty__default["default"]({}, styles$9.isLoading, !screenMounted)]),
|
|
1094
1130
|
style: {
|
|
1095
|
-
|
|
1131
|
+
paddingBottom: "".concat(screenHeight / screenWidth * 100, "%")
|
|
1096
1132
|
}
|
|
1097
|
-
}, /*#__PURE__*/React__default["default"].createElement(
|
|
1098
|
-
|
|
1099
|
-
height: "16"
|
|
1100
|
-
})) : /*#__PURE__*/React__default["default"].createElement(ViewerMenuScreen, {
|
|
1133
|
+
}, screenMounted ? /*#__PURE__*/React__default["default"].createElement(ViewerMenuScreen, {
|
|
1134
|
+
className: styles$9.screen,
|
|
1101
1135
|
item: item,
|
|
1102
1136
|
index: index,
|
|
1103
1137
|
screenSize: screenSize,
|
|
1104
1138
|
onClick: onClickScreen,
|
|
1105
1139
|
focusable: focusable
|
|
1106
|
-
})));
|
|
1140
|
+
}) : null)));
|
|
1107
1141
|
}))))));
|
|
1108
1142
|
};
|
|
1109
1143
|
|
|
@@ -1163,7 +1197,6 @@ var propTypes$a = {
|
|
|
1163
1197
|
description: PropTypes__default["default"].string,
|
|
1164
1198
|
items: core.PropTypes.menuItems,
|
|
1165
1199
|
focusable: PropTypes__default["default"].bool,
|
|
1166
|
-
// shouldLoad: PropTypes.bool, // @todo still needed? to re-implement?
|
|
1167
1200
|
paddingTop: PropTypes__default["default"].number,
|
|
1168
1201
|
currentScreenIndex: PropTypes__default["default"].number,
|
|
1169
1202
|
shareUrl: PropTypes__default["default"].string,
|
|
@@ -1253,7 +1286,7 @@ var ViewerMenuShare = function ViewerMenuShare(_ref) {
|
|
|
1253
1286
|
setFinalShareUrl = _useState4[1];
|
|
1254
1287
|
|
|
1255
1288
|
React.useEffect(function () {
|
|
1256
|
-
setFinalShareUrl(shareCurrentScreen && currentScreenIndex !== 0 ? "".concat(shareUrl, "/").concat(currentScreenIndex) : shareUrl);
|
|
1289
|
+
setFinalShareUrl(shareCurrentScreen && currentScreenIndex !== 0 ? "".concat(shareUrl, "/").concat(currentScreenIndex + 1) : shareUrl);
|
|
1257
1290
|
}, [shareCurrentScreen, currentScreenIndex, setFinalShareUrl]);
|
|
1258
1291
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1259
1292
|
className: classNames__default["default"]([styles$7.container, _defineProperty__default["default"]({}, className, className !== null)]),
|
|
@@ -1308,7 +1341,7 @@ var ViewerMenuShare = function ViewerMenuShare(_ref) {
|
|
|
1308
1341
|
ViewerMenuShare.propTypes = propTypes$a;
|
|
1309
1342
|
ViewerMenuShare.defaultProps = defaultProps$a;
|
|
1310
1343
|
|
|
1311
|
-
var styles$6 = {"container":"micromag-viewer-container","menuContainer":"micromag-viewer-menuContainer","menuPreview":"micromag-viewer-menuPreview","screenContainer":"micromag-viewer-screenContainer","screensFrame":"micromag-viewer-screensFrame","landscape":"micromag-viewer-landscape","hideMenu":"micromag-viewer-hideMenu","menuNavContainer":"micromag-viewer-menuNavContainer","dots":"micromag-viewer-dots","menuTopContainer":"micromag-viewer-menuTopContainer","content":"micromag-viewer-content","withoutGestures":"micromag-viewer-withoutGestures","fadeMenu":"micromag-viewer-fadeMenu","withShadow":"micromag-viewer-withShadow","isOpened":"micromag-viewer-isOpened","menuItem":"micromag-viewer-menuItem","
|
|
1344
|
+
var styles$6 = {"container":"micromag-viewer-container","menuContainer":"micromag-viewer-menuContainer","menuPreview":"micromag-viewer-menuPreview","menuShare":"micromag-viewer-menuShare","screenContainer":"micromag-viewer-screenContainer","screensFrame":"micromag-viewer-screensFrame","landscape":"micromag-viewer-landscape","hideMenu":"micromag-viewer-hideMenu","menuNavContainer":"micromag-viewer-menuNavContainer","dots":"micromag-viewer-dots","menuTopContainer":"micromag-viewer-menuTopContainer","content":"micromag-viewer-content","withoutGestures":"micromag-viewer-withoutGestures","fadeMenu":"micromag-viewer-fadeMenu","withShadow":"micromag-viewer-withShadow","isOpened":"micromag-viewer-isOpened","menuItem":"micromag-viewer-menuItem","menuButton":"micromag-viewer-menuButton","slidingButton":"micromag-viewer-slidingButton","screensMenuButtonToggled":"micromag-viewer-screensMenuButtonToggled","navButton":"micromag-viewer-navButton","previous":"micromag-viewer-previous","next":"micromag-viewer-next","screen":"micromag-viewer-screen","current":"micromag-viewer-current","playbackControls":"micromag-viewer-playbackControls","arrowHint":"micromag-viewer-arrowHint","webView":"micromag-viewer-webView"};
|
|
1312
1345
|
|
|
1313
1346
|
var propTypes$9 = {
|
|
1314
1347
|
story: core.PropTypes.story.isRequired,
|
|
@@ -1413,6 +1446,11 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1413
1446
|
shareOpened = _useState4[0],
|
|
1414
1447
|
setShareOpened = _useState4[1];
|
|
1415
1448
|
|
|
1449
|
+
var _useState5 = React.useState(false),
|
|
1450
|
+
_useState6 = _slicedToArray__default["default"](_useState5, 2),
|
|
1451
|
+
menuMounted = _useState6[0],
|
|
1452
|
+
setMenuMounted = _useState6[1];
|
|
1453
|
+
|
|
1416
1454
|
var _useDimensionObserver = hooks.useDimensionObserver(),
|
|
1417
1455
|
navContainerRef = _useDimensionObserver.ref,
|
|
1418
1456
|
_useDimensionObserver2 = _useDimensionObserver.height,
|
|
@@ -1461,8 +1499,7 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1461
1499
|
var base = typeof window !== 'undefined' ? window.location.host : '';
|
|
1462
1500
|
var path = shareBasePath !== null ? "".concat(base).concat(shareBasePath) : base;
|
|
1463
1501
|
return path;
|
|
1464
|
-
}, [shareBasePath]);
|
|
1465
|
-
|
|
1502
|
+
}, [shareBasePath]);
|
|
1466
1503
|
var onOpenMenu = React.useCallback(function () {
|
|
1467
1504
|
setMenuOpened(true);
|
|
1468
1505
|
setShareOpened(false);
|
|
@@ -1553,6 +1590,7 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1553
1590
|
springParams: springParams
|
|
1554
1591
|
}),
|
|
1555
1592
|
bindShareDrag = _useDragProgress.bind,
|
|
1593
|
+
draggingShare = _useDragProgress.dragging,
|
|
1556
1594
|
shareOpenedProgress = _useDragProgress.progress;
|
|
1557
1595
|
|
|
1558
1596
|
var computeMenuProgress = React.useCallback(function (_ref9) {
|
|
@@ -1600,6 +1638,7 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1600
1638
|
springParams: springParams
|
|
1601
1639
|
}),
|
|
1602
1640
|
bindMenuDrag = _useDragProgress2.bind,
|
|
1641
|
+
draggingMenu = _useDragProgress2.dragging,
|
|
1603
1642
|
menuOpenedProgress = _useDragProgress2.progress;
|
|
1604
1643
|
|
|
1605
1644
|
var keyboardShortcuts = React.useMemo(function () {
|
|
@@ -1615,6 +1654,13 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1615
1654
|
useKeyboardShortcuts(keyboardShortcuts); // should be zero if either screens menu or share menu is opened
|
|
1616
1655
|
|
|
1617
1656
|
var dotsOpacity = Math.min(1, Math.max(0, 1 - (menuOpenedProgress + shareOpenedProgress)));
|
|
1657
|
+
React.useEffect(function () {
|
|
1658
|
+
if ((menuOpened || draggingMenu) && !menuMounted) {
|
|
1659
|
+
setMenuMounted(true);
|
|
1660
|
+
} else if (!menuOpened && !draggingMenu && menuMounted) {
|
|
1661
|
+
setMenuMounted(false);
|
|
1662
|
+
}
|
|
1663
|
+
}, [menuOpened, draggingMenu, menuMounted, setMenuMounted]);
|
|
1618
1664
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1619
1665
|
className: classNames__default["default"]([styles$6.menuNavContainer, (_ref11 = {}, _defineProperty__default["default"](_ref11, styles$6.withShadow, withShadow), _defineProperty__default["default"](_ref11, styles$6.isOpened, menuOpened || shareOpened), _ref11)]),
|
|
1620
1666
|
ref: refDots,
|
|
@@ -1625,38 +1671,42 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1625
1671
|
className: styles$6.menuTopContainer,
|
|
1626
1672
|
ref: navContainerRef
|
|
1627
1673
|
}, !withoutShareMenu ? /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
|
1628
|
-
className:
|
|
1674
|
+
className: styles$6.menuItem
|
|
1629
1675
|
}, bindShareDrag()), /*#__PURE__*/React__default["default"].createElement(ToggleButton, {
|
|
1630
1676
|
className: styles$6.slidingButton,
|
|
1631
1677
|
button: /*#__PURE__*/React__default["default"].createElement(ShareButton, {
|
|
1632
1678
|
className: styles$6.menuButton,
|
|
1633
1679
|
onClick: onOpenShare,
|
|
1634
1680
|
theme: menuTheme,
|
|
1635
|
-
iconPosition: "left"
|
|
1681
|
+
iconPosition: "left",
|
|
1682
|
+
focusable: !shareOpened
|
|
1636
1683
|
}),
|
|
1637
1684
|
toggledButton: /*#__PURE__*/React__default["default"].createElement(CloseButton, {
|
|
1638
1685
|
className: styles$6.menuButton,
|
|
1639
1686
|
onClick: onCloseShare,
|
|
1640
1687
|
theme: menuTheme,
|
|
1641
|
-
iconPosition: "left"
|
|
1688
|
+
iconPosition: "left",
|
|
1689
|
+
focusable: shareOpened
|
|
1642
1690
|
}),
|
|
1643
|
-
|
|
1691
|
+
progressSpring: shareOpenedProgress
|
|
1644
1692
|
})) : null, !withoutScreensMenu ? /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
|
1645
|
-
className:
|
|
1693
|
+
className: styles$6.menuItem
|
|
1646
1694
|
}, bindMenuDrag()), /*#__PURE__*/React__default["default"].createElement(ToggleButton, {
|
|
1647
1695
|
className: styles$6.slidingButton,
|
|
1648
1696
|
button: /*#__PURE__*/React__default["default"].createElement(MenuButton, {
|
|
1649
1697
|
className: styles$6.menuButton,
|
|
1650
1698
|
onClick: onOpenMenu,
|
|
1651
|
-
theme: menuTheme
|
|
1699
|
+
theme: menuTheme,
|
|
1700
|
+
focusable: !menuOpened
|
|
1652
1701
|
}),
|
|
1653
1702
|
toggledButton: /*#__PURE__*/React__default["default"].createElement(CloseButton, {
|
|
1654
1703
|
className: styles$6.menuButton,
|
|
1655
1704
|
onClick: onCloseMenu,
|
|
1656
1705
|
theme: menuTheme,
|
|
1657
|
-
iconPosition: "right"
|
|
1706
|
+
iconPosition: "right",
|
|
1707
|
+
focusable: menuOpened
|
|
1658
1708
|
}),
|
|
1659
|
-
|
|
1709
|
+
progressSpring: menuOpenedProgress,
|
|
1660
1710
|
toggledButtonClassName: styles$6.screensMenuButtonToggled
|
|
1661
1711
|
})) : null), /*#__PURE__*/React__default["default"].createElement(ViewerMenuDots, Object.assign({}, menuTheme, {
|
|
1662
1712
|
direction: "horizontal",
|
|
@@ -1670,15 +1720,14 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1670
1720
|
onClose: onClickCloseViewer,
|
|
1671
1721
|
className: styles$6.dots,
|
|
1672
1722
|
style: {
|
|
1673
|
-
opacity: Math.pow(dotsOpacity, 5),
|
|
1674
|
-
|
|
1675
|
-
pointerEvents: dotsOpacity < 1 ? 'none' : 'auto'
|
|
1723
|
+
opacity: Math.pow(dotsOpacity, 5) // @note this is like a "quint" easing, meaning it'll go towards 1 slowly first and then fast as it approaches 1
|
|
1724
|
+
|
|
1676
1725
|
}
|
|
1677
1726
|
}))), /*#__PURE__*/React__default["default"].createElement(ViewerMenuContainer, {
|
|
1678
1727
|
className: styles$6.menuContainer,
|
|
1679
|
-
|
|
1728
|
+
progressSpring: shareOpenedProgress,
|
|
1680
1729
|
theme: viewerTheme
|
|
1681
|
-
},
|
|
1730
|
+
}, draggingShare || shareOpened ? /*#__PURE__*/React__default["default"].createElement(ViewerMenuShare, {
|
|
1682
1731
|
viewerTheme: viewerTheme,
|
|
1683
1732
|
className: styles$6.menuShare,
|
|
1684
1733
|
title: title,
|
|
@@ -1693,9 +1742,9 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1693
1742
|
onClose: onCloseShare
|
|
1694
1743
|
}) : null), /*#__PURE__*/React__default["default"].createElement(ViewerMenuContainer, {
|
|
1695
1744
|
className: styles$6.menuContainer,
|
|
1696
|
-
|
|
1745
|
+
progressSpring: menuOpenedProgress,
|
|
1697
1746
|
theme: viewerTheme
|
|
1698
|
-
},
|
|
1747
|
+
}, menuMounted ? /*#__PURE__*/React__default["default"].createElement(ViewerMenuPreview, {
|
|
1699
1748
|
viewerTheme: viewerTheme,
|
|
1700
1749
|
className: styles$6.menuPreview,
|
|
1701
1750
|
screenSize: screenSize,
|
|
@@ -1707,6 +1756,7 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1707
1756
|
onShare: onShare,
|
|
1708
1757
|
onClickScreen: onClickScreen,
|
|
1709
1758
|
onClose: onCloseMenu,
|
|
1759
|
+
scrollDisabled: draggingMenu,
|
|
1710
1760
|
toggleFullscreen: toggleFullscreen,
|
|
1711
1761
|
fullscreenActive: fullscreenActive,
|
|
1712
1762
|
fullscreenEnabled: fullscreenEnabled
|
|
@@ -1715,8 +1765,9 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1715
1765
|
|
|
1716
1766
|
ViewerMenu.propTypes = propTypes$9;
|
|
1717
1767
|
ViewerMenu.defaultProps = defaultProps$9;
|
|
1768
|
+
var ViewerMenu$1 = /*#__PURE__*/React__default["default"].memo(ViewerMenu);
|
|
1718
1769
|
|
|
1719
|
-
var styles$5 = {"container":"micromag-viewer-screen-container","navigationHint":"micromag-viewer-screen-navigationHint"};
|
|
1770
|
+
var styles$5 = {"container":"micromag-viewer-screen-container","inner":"micromag-viewer-screen-inner","navigationHint":"micromag-viewer-screen-navigationHint"};
|
|
1720
1771
|
|
|
1721
1772
|
var propTypes$8 = {
|
|
1722
1773
|
screen: core.PropTypes.screenComponent,
|
|
@@ -1726,6 +1777,7 @@ var propTypes$8 = {
|
|
|
1726
1777
|
active: PropTypes__default["default"].bool,
|
|
1727
1778
|
mediaRef: PropTypes__default["default"].func,
|
|
1728
1779
|
width: PropTypes__default["default"].number,
|
|
1780
|
+
index: PropTypes__default["default"].number,
|
|
1729
1781
|
height: PropTypes__default["default"].number,
|
|
1730
1782
|
scale: PropTypes__default["default"].number,
|
|
1731
1783
|
// withNavigationHint: PropTypes.bool, // @todo
|
|
@@ -1737,6 +1789,7 @@ var defaultProps$8 = {
|
|
|
1737
1789
|
screenState: null,
|
|
1738
1790
|
current: false,
|
|
1739
1791
|
active: true,
|
|
1792
|
+
index: null,
|
|
1740
1793
|
mediaRef: null,
|
|
1741
1794
|
width: null,
|
|
1742
1795
|
height: null,
|
|
@@ -1748,6 +1801,7 @@ var defaultProps$8 = {
|
|
|
1748
1801
|
function ViewerScreen(_ref) {
|
|
1749
1802
|
var screen = _ref.screen,
|
|
1750
1803
|
renderContext = _ref.renderContext,
|
|
1804
|
+
index = _ref.index,
|
|
1751
1805
|
screenState = _ref.screenState,
|
|
1752
1806
|
active = _ref.active,
|
|
1753
1807
|
current = _ref.current,
|
|
@@ -1756,23 +1810,47 @@ function ViewerScreen(_ref) {
|
|
|
1756
1810
|
height = _ref.height,
|
|
1757
1811
|
scale = _ref.scale,
|
|
1758
1812
|
className = _ref.className;
|
|
1813
|
+
|
|
1814
|
+
var _useState = React.useState(active || current),
|
|
1815
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
1816
|
+
mounted = _useState2[0],
|
|
1817
|
+
setMounted = _useState2[1];
|
|
1818
|
+
|
|
1819
|
+
React.useEffect(function () {
|
|
1820
|
+
var timeout = null;
|
|
1821
|
+
|
|
1822
|
+
if (active !== mounted) {
|
|
1823
|
+
timeout = setTimeout(function () {
|
|
1824
|
+
setMounted(active);
|
|
1825
|
+
}, 200);
|
|
1826
|
+
}
|
|
1827
|
+
|
|
1828
|
+
return function () {
|
|
1829
|
+
if (timeout !== null) {
|
|
1830
|
+
clearTimeout(timeout);
|
|
1831
|
+
}
|
|
1832
|
+
};
|
|
1833
|
+
}, [active, mounted, setMounted, index]);
|
|
1759
1834
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1760
1835
|
className: classNames__default["default"]([styles$5.container, _defineProperty__default["default"]({}, className, className !== null)])
|
|
1761
1836
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1837
|
+
className: styles$5.inner,
|
|
1762
1838
|
style: {
|
|
1763
1839
|
width: width,
|
|
1764
1840
|
height: height,
|
|
1765
1841
|
transform: scale !== null ? "scale(".concat(scale, ")") : null,
|
|
1766
|
-
transformOrigin: scale !== null ? '0 0' : null
|
|
1842
|
+
transformOrigin: scale !== null ? '0 0' : null,
|
|
1843
|
+
opacity: mounted ? 1 : null
|
|
1767
1844
|
}
|
|
1768
|
-
}, /*#__PURE__*/React__default["default"].createElement(components.Screen, {
|
|
1845
|
+
}, mounted ? /*#__PURE__*/React__default["default"].createElement(components.Screen, {
|
|
1769
1846
|
screen: screen,
|
|
1770
1847
|
renderContext: renderContext,
|
|
1771
1848
|
screenState: screenState,
|
|
1849
|
+
index: index,
|
|
1772
1850
|
active: active,
|
|
1773
1851
|
current: current,
|
|
1774
1852
|
mediaRef: mediaRef
|
|
1775
|
-
})));
|
|
1853
|
+
}) : null));
|
|
1776
1854
|
}
|
|
1777
1855
|
|
|
1778
1856
|
ViewerScreen.propTypes = propTypes$8;
|
|
@@ -1885,9 +1963,10 @@ var stopDragEventsPropagation = {
|
|
|
1885
1963
|
|
|
1886
1964
|
function getFormattedTimestamp(s) {
|
|
1887
1965
|
var withMilliseconds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1888
|
-
var
|
|
1889
|
-
var
|
|
1890
|
-
|
|
1966
|
+
var parts = "".concat(s).split('.');
|
|
1967
|
+
var seconds = parts[0];
|
|
1968
|
+
var ms = withMilliseconds && parts.length > 1 ? ":".concat(parts[1].substring(0, 3)) : '';
|
|
1969
|
+
return (s - (s %= 60)) / 60 + (9 < seconds ? ':' : ':0') + ~~s + ms; // eslint-disable-line
|
|
1891
1970
|
}
|
|
1892
1971
|
|
|
1893
1972
|
var SHOW_MILLISECONDS_THRESHOLD = 5; // show milliseconds when scrubbing if length of video is shorter than 5 seconds
|
|
@@ -2381,7 +2460,6 @@ var propTypes$2 = {
|
|
|
2381
2460
|
screenState: PropTypes__default["default"].string,
|
|
2382
2461
|
deviceScreens: core.PropTypes.deviceScreens,
|
|
2383
2462
|
renderContext: core.PropTypes.renderContext,
|
|
2384
|
-
visitor: core.PropTypes.visitor,
|
|
2385
2463
|
onScreenChange: PropTypes__default["default"].func,
|
|
2386
2464
|
tapNextScreenWidthPercent: PropTypes__default["default"].number,
|
|
2387
2465
|
storyIsParsed: PropTypes__default["default"].bool,
|
|
@@ -2425,11 +2503,10 @@ var defaultProps$2 = {
|
|
|
2425
2503
|
screenState: null,
|
|
2426
2504
|
deviceScreens: utils.getDeviceScreens(),
|
|
2427
2505
|
renderContext: 'view',
|
|
2428
|
-
visitor: null,
|
|
2429
2506
|
onScreenChange: null,
|
|
2430
2507
|
tapNextScreenWidthPercent: 0.8,
|
|
2431
2508
|
storyIsParsed: false,
|
|
2432
|
-
neighborScreensActive:
|
|
2509
|
+
neighborScreensActive: 1,
|
|
2433
2510
|
neighborScreenOffset: 105,
|
|
2434
2511
|
neighborScreenScale: 0.8,
|
|
2435
2512
|
withMetadata: false,
|
|
@@ -2468,7 +2545,6 @@ var Viewer = function Viewer(_ref) {
|
|
|
2468
2545
|
screenState = _ref.screenState,
|
|
2469
2546
|
deviceScreens = _ref.deviceScreens,
|
|
2470
2547
|
renderContext = _ref.renderContext,
|
|
2471
|
-
visitor = _ref.visitor,
|
|
2472
2548
|
tapNextScreenWidthPercent = _ref.tapNextScreenWidthPercent,
|
|
2473
2549
|
storyIsParsed = _ref.storyIsParsed,
|
|
2474
2550
|
neighborScreensActive = _ref.neighborScreensActive,
|
|
@@ -2789,34 +2865,48 @@ var Viewer = function Viewer(_ref) {
|
|
|
2789
2865
|
springParams: springParams
|
|
2790
2866
|
}),
|
|
2791
2867
|
isDragging = _useDragProgress.dragging,
|
|
2792
|
-
|
|
2868
|
+
progressSpring = _useDragProgress.progress,
|
|
2793
2869
|
dragContentBind = _useDragProgress.bind;
|
|
2794
2870
|
|
|
2795
|
-
var getScreenStylesByIndex = function getScreenStylesByIndex(index,
|
|
2871
|
+
var getScreenStylesByIndex = function getScreenStylesByIndex(index, spring) {
|
|
2796
2872
|
if (transitionType === 'stack') {
|
|
2797
|
-
var _t = index - progress;
|
|
2798
|
-
|
|
2799
|
-
var _clamped = Math.min(1, Math.max(0, _t));
|
|
2800
|
-
|
|
2801
|
-
var invert = Math.min(1, Math.max(0, -_t));
|
|
2802
|
-
var opacity = Math.max(0, 1 - 0.75 * invert + (_t + 1)); // just hide other screens
|
|
2803
|
-
|
|
2804
|
-
if (Math.abs(_t) > neighborScreensActive) return {
|
|
2805
|
-
opacity: 0
|
|
2806
|
-
};
|
|
2807
2873
|
return {
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2874
|
+
zIndex: index,
|
|
2875
|
+
opacity: spring.to(function (progress) {
|
|
2876
|
+
var t = index - progress;
|
|
2877
|
+
var invert = Math.min(1, Math.max(0, -t));
|
|
2878
|
+
if (Math.abs(t) > neighborScreensActive) return 0;
|
|
2879
|
+
return Math.max(0, 1 - 0.75 * invert + (t + 1));
|
|
2880
|
+
}),
|
|
2881
|
+
transform: spring.to(function (progress) {
|
|
2882
|
+
var t = index - progress;
|
|
2883
|
+
var clamped = Math.min(1, Math.max(0, t));
|
|
2884
|
+
var invert = Math.min(1, Math.max(0, -t));
|
|
2885
|
+
if (Math.abs(t) > neighborScreensActive) return 'translateX(100%)';
|
|
2886
|
+
return "translateX(".concat(clamped * 100, "%) scale(").concat(1 - 0.2 * invert, ")");
|
|
2887
|
+
}),
|
|
2888
|
+
boxShadow: spring.to(function (progress) {
|
|
2889
|
+
var t = index - progress;
|
|
2890
|
+
if (Math.abs(t) > neighborScreensActive) return null;
|
|
2891
|
+
var clamped = Math.min(1, Math.max(0, t));
|
|
2892
|
+
return "0 0 ".concat(4 * (1 - clamped), "rem ").concat(-0.5 * (1 - clamped), "rem black");
|
|
2893
|
+
})
|
|
2812
2894
|
};
|
|
2813
2895
|
}
|
|
2814
2896
|
|
|
2815
|
-
var t = index - progress;
|
|
2816
|
-
var clamped = Math.min(1, Math.max(0, Math.abs(t)));
|
|
2817
2897
|
return {
|
|
2818
|
-
opacity:
|
|
2819
|
-
|
|
2898
|
+
opacity: spring.to(function (progress) {
|
|
2899
|
+
var t = index - progress;
|
|
2900
|
+
if (Math.abs(t) > neighborScreensActive) return 0;
|
|
2901
|
+
var clamped = Math.min(1, Math.max(0, Math.abs(t)));
|
|
2902
|
+
return 1 - 0.75 * clamped;
|
|
2903
|
+
}),
|
|
2904
|
+
transform: spring.to(function (progress) {
|
|
2905
|
+
var t = index - progress;
|
|
2906
|
+
if (Math.abs(t) > neighborScreensActive) return "translate(100%)";
|
|
2907
|
+
var clamped = Math.min(1, Math.max(0, Math.abs(t)));
|
|
2908
|
+
return "translateX(".concat(t * neighborScreenOffset, "%) scale(").concat(1 - (1 - neighborScreenScale) * clamped, ")");
|
|
2909
|
+
}),
|
|
2820
2910
|
zIndex: screensCount - index
|
|
2821
2911
|
};
|
|
2822
2912
|
};
|
|
@@ -2873,8 +2963,8 @@ var Viewer = function Viewer(_ref) {
|
|
|
2873
2963
|
useKeyboardShortcuts(keyboardShortcuts, {
|
|
2874
2964
|
disabled: renderContext !== 'view'
|
|
2875
2965
|
});
|
|
2876
|
-
return /*#__PURE__*/React__default["default"].createElement(contexts.
|
|
2877
|
-
|
|
2966
|
+
return /*#__PURE__*/React__default["default"].createElement(contexts.StoryProvider, {
|
|
2967
|
+
story: parsedStory
|
|
2878
2968
|
}, /*#__PURE__*/React__default["default"].createElement(contexts.ScreenSizeProvider, {
|
|
2879
2969
|
size: screenSize
|
|
2880
2970
|
}, /*#__PURE__*/React__default["default"].createElement(contexts.ViewerProvider, {
|
|
@@ -2902,7 +2992,7 @@ var Viewer = function Viewer(_ref) {
|
|
|
2902
2992
|
}), (_ref15 = {}, _defineProperty__default["default"](_ref15, styles$6.landscape, landscape), _defineProperty__default["default"](_ref15, styles$6.withoutGestures, withoutGestures), _defineProperty__default["default"](_ref15, styles$6.hideMenu, !menuVisible), _defineProperty__default["default"](_ref15, styles$6.fadeMenu, playing && playbackControls && !playbackcontrolsVisible), _defineProperty__default["default"](_ref15, styles$6.ready, ready || withoutScreensTransforms), _defineProperty__default["default"](_ref15, styles$6.hasInteracted, hasInteracted), _defineProperty__default["default"](_ref15, styles$6.isDragging, isDragging), _defineProperty__default["default"](_ref15, className, className), _ref15)]),
|
|
2903
2993
|
ref: containerRef,
|
|
2904
2994
|
onContextMenu: onContextMenu
|
|
2905
|
-
}, !withoutMenu ? /*#__PURE__*/React__default["default"].createElement(ViewerMenu, {
|
|
2995
|
+
}, !withoutMenu ? /*#__PURE__*/React__default["default"].createElement(ViewerMenu$1, {
|
|
2906
2996
|
story: parsedStory,
|
|
2907
2997
|
currentScreenIndex: screenIndex,
|
|
2908
2998
|
withShadow: menuOverScreen && !withoutMenuShadow,
|
|
@@ -2937,12 +3027,12 @@ var Viewer = function Viewer(_ref) {
|
|
|
2937
3027
|
}, screens.map(function (screen, i) {
|
|
2938
3028
|
var current = screenIndex === i;
|
|
2939
3029
|
var active = i >= screenIndex - neighborScreensActive && i <= screenIndex + neighborScreensActive;
|
|
2940
|
-
var screenStyles = getScreenStylesByIndex(i,
|
|
2941
|
-
return /*#__PURE__*/React__default["default"].createElement(
|
|
3030
|
+
var screenStyles = getScreenStylesByIndex(i, progressSpring);
|
|
3031
|
+
return /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
|
|
2942
3032
|
key: "screen-viewer-".concat(screen.id || '', "-").concat(i + 1),
|
|
2943
3033
|
style: screenStyles,
|
|
2944
3034
|
className: classNames__default["default"]([styles$6.screenContainer, _defineProperty__default["default"]({}, styles$6.current, current)])
|
|
2945
|
-
}, screen !== null
|
|
3035
|
+
}, screen !== null ? /*#__PURE__*/React__default["default"].createElement(ViewerScreen, {
|
|
2946
3036
|
className: styles$6.screen,
|
|
2947
3037
|
screen: screen,
|
|
2948
3038
|
screenState: current ? screenState : null,
|
|
@@ -3056,7 +3146,7 @@ var defaultRoutes = {
|
|
|
3056
3146
|
screen: screen
|
|
3057
3147
|
};
|
|
3058
3148
|
|
|
3059
|
-
var _excluded = ["story", "screenComponents", "memoryRouter", "basePath", "routes", "withoutRouter", "googleApiKey", "trackingVariables", "locale", "locales", "translations", "pathWithIndex"];
|
|
3149
|
+
var _excluded = ["story", "screenComponents", "memoryRouter", "basePath", "routes", "withoutRouter", "googleApiKey", "visitor", "trackingVariables", "locale", "locales", "translations", "pathWithIndex"];
|
|
3060
3150
|
var propTypes = {
|
|
3061
3151
|
story: core.PropTypes.story,
|
|
3062
3152
|
screen: PropTypes__default["default"].string,
|
|
@@ -3066,6 +3156,7 @@ var propTypes = {
|
|
|
3066
3156
|
routes: routes,
|
|
3067
3157
|
withoutRouter: PropTypes__default["default"].bool,
|
|
3068
3158
|
googleApiKey: PropTypes__default["default"].string,
|
|
3159
|
+
visitor: core.PropTypes.visitor,
|
|
3069
3160
|
trackingVariables: core.PropTypes.trackingVariables,
|
|
3070
3161
|
locale: PropTypes__default["default"].string,
|
|
3071
3162
|
locales: PropTypes__default["default"].arrayOf(PropTypes__default["default"].string),
|
|
@@ -3082,6 +3173,7 @@ var defaultProps = {
|
|
|
3082
3173
|
routes: defaultRoutes,
|
|
3083
3174
|
withoutRouter: false,
|
|
3084
3175
|
googleApiKey: null,
|
|
3176
|
+
visitor: null,
|
|
3085
3177
|
trackingVariables: null,
|
|
3086
3178
|
locale: 'en',
|
|
3087
3179
|
locales: ['fr', 'en'],
|
|
@@ -3098,6 +3190,7 @@ var ViewerContainer = function ViewerContainer(_ref) {
|
|
|
3098
3190
|
routes = _ref.routes,
|
|
3099
3191
|
withoutRouter = _ref.withoutRouter,
|
|
3100
3192
|
googleApiKey = _ref.googleApiKey,
|
|
3193
|
+
visitor = _ref.visitor,
|
|
3101
3194
|
trackingVariables = _ref.trackingVariables,
|
|
3102
3195
|
locale = _ref.locale,
|
|
3103
3196
|
locales = _ref.locales,
|
|
@@ -3147,7 +3240,9 @@ var ViewerContainer = function ViewerContainer(_ref) {
|
|
|
3147
3240
|
}, /*#__PURE__*/React__default["default"].createElement(screens.ScreensProvider, null, /*#__PURE__*/React__default["default"].createElement(contexts.ComponentsProvider, {
|
|
3148
3241
|
namespace: contexts.SCREENS_NAMESPACE,
|
|
3149
3242
|
components: screenComponents || {}
|
|
3150
|
-
}, /*#__PURE__*/React__default["default"].createElement(contexts.
|
|
3243
|
+
}, /*#__PURE__*/React__default["default"].createElement(contexts.VisitorProvider, {
|
|
3244
|
+
visitor: visitor
|
|
3245
|
+
}, /*#__PURE__*/React__default["default"].createElement(contexts.PlaybackProvider, null, /*#__PURE__*/React__default["default"].createElement(contexts.TrackingProvider, {
|
|
3151
3246
|
variables: finalTrackingVariables
|
|
3152
3247
|
}, withoutRouter ? /*#__PURE__*/React__default["default"].createElement(Viewer, Object.assign({
|
|
3153
3248
|
story: story,
|