@micromag/viewer 0.3.207 → 0.3.213
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 +3 -3
- package/es/index.js +134 -73
- package/lib/index.js +134 -73
- package/package.json +11 -10
package/lib/index.js
CHANGED
|
@@ -18,6 +18,7 @@ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
|
18
18
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
19
19
|
var classNames = require('classnames');
|
|
20
20
|
var reactHelmet = require('react-helmet');
|
|
21
|
+
var web = require('@react-spring/web');
|
|
21
22
|
var EventEmitter = require('wolfy87-eventemitter');
|
|
22
23
|
var components = require('@micromag/core/components');
|
|
23
24
|
var hooks = require('@micromag/core/hooks');
|
|
@@ -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');
|
|
@@ -531,14 +531,14 @@ var styles$e = {"container":"micromag-viewer-buttons-toggle-button-container","n
|
|
|
531
531
|
|
|
532
532
|
var propTypes$i = {
|
|
533
533
|
className: PropTypes__default["default"].string,
|
|
534
|
-
|
|
534
|
+
progressSpring: PropTypes__default["default"].number,
|
|
535
535
|
button: PropTypes__default["default"].node,
|
|
536
536
|
toggledButton: PropTypes__default["default"].node,
|
|
537
537
|
toggledButtonClassName: PropTypes__default["default"].string
|
|
538
538
|
};
|
|
539
539
|
var defaultProps$i = {
|
|
540
540
|
className: null,
|
|
541
|
-
|
|
541
|
+
progressSpring: 0,
|
|
542
542
|
button: null,
|
|
543
543
|
toggledButton: null,
|
|
544
544
|
toggledButtonClassName: null
|
|
@@ -546,26 +546,27 @@ var defaultProps$i = {
|
|
|
546
546
|
|
|
547
547
|
var ToggleButton = function ToggleButton(_ref) {
|
|
548
548
|
var className = _ref.className,
|
|
549
|
-
|
|
549
|
+
progressSpring = _ref.progressSpring,
|
|
550
550
|
button = _ref.button,
|
|
551
551
|
toggledButton = _ref.toggledButton,
|
|
552
552
|
toggledButtonClassName = _ref.toggledButtonClassName;
|
|
553
553
|
if (button === null) return false;
|
|
554
|
-
|
|
555
|
-
var getToggleButtonStyles = function getToggleButtonStyles(t) {
|
|
556
|
-
return {
|
|
557
|
-
transform: "translateY(".concat(t * -100, "%)")
|
|
558
|
-
};
|
|
559
|
-
};
|
|
560
|
-
|
|
561
554
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
562
555
|
className: classNames__default["default"]([styles$e.container, _defineProperty__default["default"]({}, className, className !== null)])
|
|
563
|
-
}, /*#__PURE__*/React__default["default"].createElement(
|
|
556
|
+
}, /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
|
|
564
557
|
className: styles$e.normal,
|
|
565
|
-
style:
|
|
566
|
-
|
|
558
|
+
style: {
|
|
559
|
+
transform: progressSpring.to(function (p) {
|
|
560
|
+
return "translateY(".concat(p * -100, "%)");
|
|
561
|
+
})
|
|
562
|
+
}
|
|
563
|
+
}, button), /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
|
|
567
564
|
className: classNames__default["default"]([styles$e.toggled, _defineProperty__default["default"]({}, toggledButtonClassName, toggledButtonClassName !== null)]),
|
|
568
|
-
style:
|
|
565
|
+
style: {
|
|
566
|
+
transform: progressSpring.to(function (p) {
|
|
567
|
+
return "translateY(".concat((p - 1) * -100, "%)");
|
|
568
|
+
})
|
|
569
|
+
}
|
|
569
570
|
}, toggledButton));
|
|
570
571
|
};
|
|
571
572
|
|
|
@@ -576,20 +577,20 @@ var styles$d = {"backdrop":"micromag-viewer-menus-menu-container-backdrop","heig
|
|
|
576
577
|
|
|
577
578
|
var propTypes$h = {
|
|
578
579
|
className: PropTypes__default["default"].string,
|
|
579
|
-
|
|
580
|
+
progressSpring: PropTypes__default["default"].number,
|
|
580
581
|
theme: core.PropTypes.viewerTheme,
|
|
581
582
|
children: PropTypes__default["default"].node
|
|
582
583
|
};
|
|
583
584
|
var defaultProps$h = {
|
|
584
585
|
className: null,
|
|
585
|
-
|
|
586
|
+
progressSpring: 0,
|
|
586
587
|
theme: null,
|
|
587
588
|
children: null
|
|
588
589
|
};
|
|
589
590
|
|
|
590
591
|
var ViewerMenuContainer = function ViewerMenuContainer(_ref) {
|
|
591
592
|
var className = _ref.className,
|
|
592
|
-
|
|
593
|
+
progressSpring = _ref.progressSpring,
|
|
593
594
|
viewerTheme = _ref.theme,
|
|
594
595
|
children = _ref.children;
|
|
595
596
|
|
|
@@ -607,17 +608,25 @@ var ViewerMenuContainer = function ViewerMenuContainer(_ref) {
|
|
|
607
608
|
style: {
|
|
608
609
|
pointerEvents: 'none'
|
|
609
610
|
}
|
|
610
|
-
}, /*#__PURE__*/React__default["default"].createElement(
|
|
611
|
+
}, /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
|
|
611
612
|
className: styles$d.heightContainer,
|
|
612
613
|
style: _objectSpread__default["default"]({
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
614
|
+
opacity: progressSpring,
|
|
615
|
+
// transform: progressSpring.to((p) => `translateY(${(1 - p) * -100}%)`),
|
|
616
|
+
// height: progressSpring.to((p) => `${p * 100}%`),
|
|
617
|
+
pointerEvents: progressSpring.to(function (p) {
|
|
618
|
+
return p < 0.25 ? 'none' : 'auto';
|
|
619
|
+
}),
|
|
620
|
+
zIndex: progressSpring.to(function (p) {
|
|
621
|
+
return Math.round(2 + p);
|
|
622
|
+
})
|
|
616
623
|
}, backgroundColorStyle)
|
|
617
|
-
}, children), /*#__PURE__*/React__default["default"].createElement(
|
|
624
|
+
}, children), /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
|
|
618
625
|
className: styles$d.backdrop,
|
|
619
626
|
style: {
|
|
620
|
-
opacity:
|
|
627
|
+
opacity: progressSpring.to(function (p) {
|
|
628
|
+
return utils.easings.easeOutQuint(p);
|
|
629
|
+
})
|
|
621
630
|
}
|
|
622
631
|
}));
|
|
623
632
|
};
|
|
@@ -944,7 +953,10 @@ var ViewerMenuScreen = function ViewerMenuScreen(_ref) {
|
|
|
944
953
|
}]
|
|
945
954
|
})) : '');
|
|
946
955
|
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)])
|
|
956
|
+
className: classNames__default["default"]([styles$a.container, (_ref4 = {}, _defineProperty__default["default"](_ref4, className, className !== null), _defineProperty__default["default"](_ref4, styles$a.isCurrent, current), _ref4)]),
|
|
957
|
+
style: {
|
|
958
|
+
paddingBottom: "".concat(screenHeight / screenWidth * 100, "%")
|
|
959
|
+
}
|
|
948
960
|
}, /*#__PURE__*/React__default["default"].createElement("button", {
|
|
949
961
|
type: "button",
|
|
950
962
|
className: styles$a.button,
|
|
@@ -977,7 +989,7 @@ var ViewerMenuScreen = function ViewerMenuScreen(_ref) {
|
|
|
977
989
|
ViewerMenuScreen.propTypes = propTypes$d;
|
|
978
990
|
ViewerMenuScreen.defaultProps = defaultProps$d;
|
|
979
991
|
|
|
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","buttons":"micromag-viewer-menus-menu-preview-buttons","content":"micromag-viewer-menus-menu-preview-content","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","
|
|
992
|
+
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","buttons":"micromag-viewer-menus-menu-preview-buttons","content":"micromag-viewer-menus-menu-preview-content","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","fillPulse":"micromag-viewer-menus-menu-preview-fillPulse","isLoading":"micromag-viewer-menus-menu-preview-isLoading","screen":"micromag-viewer-menus-menu-preview-screen","intro":"micromag-viewer-menus-menu-preview-intro"};
|
|
981
993
|
|
|
982
994
|
var propTypes$c = {
|
|
983
995
|
viewerTheme: core.PropTypes.viewerTheme,
|
|
@@ -988,6 +1000,7 @@ var propTypes$c = {
|
|
|
988
1000
|
onClickScreen: PropTypes__default["default"].func,
|
|
989
1001
|
maxThumbsWidth: PropTypes__default["default"].number,
|
|
990
1002
|
paddingTop: PropTypes__default["default"].number,
|
|
1003
|
+
scrollDisabled: PropTypes__default["default"].bool,
|
|
991
1004
|
// @todo to reimplement:
|
|
992
1005
|
// shouldLoad: PropTypes.bool,
|
|
993
1006
|
// toggleFullscreen: PropTypes.func,
|
|
@@ -1005,6 +1018,7 @@ var defaultProps$c = {
|
|
|
1005
1018
|
onClickScreen: null,
|
|
1006
1019
|
maxThumbsWidth: 140,
|
|
1007
1020
|
paddingTop: null,
|
|
1021
|
+
scrollDisabled: false,
|
|
1008
1022
|
// toggleFullscreen: null,
|
|
1009
1023
|
// fullscreenActive: false,
|
|
1010
1024
|
// fullscreenEnabled: false,
|
|
@@ -1020,6 +1034,7 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
|
1020
1034
|
onClickScreen = _ref.onClickScreen,
|
|
1021
1035
|
maxThumbsWidth = _ref.maxThumbsWidth,
|
|
1022
1036
|
paddingTop = _ref.paddingTop,
|
|
1037
|
+
scrollDisabled = _ref.scrollDisabled,
|
|
1023
1038
|
className = _ref.className;
|
|
1024
1039
|
|
|
1025
1040
|
var _useDimensionObserver = hooks.useDimensionObserver(),
|
|
@@ -1046,12 +1061,29 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
|
1046
1061
|
var brandImageStyle = brandImageUrl !== null ? {
|
|
1047
1062
|
backgroundImage: "url(".concat(brandImageUrl, ")")
|
|
1048
1063
|
} : null; // const { url: brandLogoUrl = null } = brandLogo || {};
|
|
1049
|
-
|
|
1064
|
+
|
|
1065
|
+
var _useState = React.useState([]),
|
|
1066
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
1067
|
+
screensMounted = _useState2[0],
|
|
1068
|
+
setScreensMounted = _useState2[1]; // @todo optimize all of this the proper way
|
|
1050
1069
|
// const finalItems = useMemo(
|
|
1051
1070
|
// () => (!focusable ? items.map((s, i) => (i > 6 ? { screenId: s.screenId } : s)) : items),
|
|
1052
1071
|
// [items, focusable],
|
|
1053
1072
|
// );
|
|
1054
1073
|
|
|
1074
|
+
|
|
1075
|
+
React.useEffect(function () {
|
|
1076
|
+
if (items.length === screensMounted.length) {
|
|
1077
|
+
return null;
|
|
1078
|
+
}
|
|
1079
|
+
|
|
1080
|
+
var timeout = setTimeout(function () {
|
|
1081
|
+
setScreensMounted([].concat(_toConsumableArray__default["default"](screensMounted), [true]));
|
|
1082
|
+
}, 40);
|
|
1083
|
+
return function () {
|
|
1084
|
+
clearTimeout(timeout);
|
|
1085
|
+
};
|
|
1086
|
+
}, [items, screensMounted, setScreensMounted]);
|
|
1055
1087
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1056
1088
|
className: classNames__default["default"]([styles$9.container, _defineProperty__default["default"]({}, className, className !== null)]),
|
|
1057
1089
|
style: _objectSpread__default["default"](_objectSpread__default["default"]({}, brandImageStyle), {}, {
|
|
@@ -1062,7 +1094,8 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
|
1062
1094
|
className: styles$9.content,
|
|
1063
1095
|
ref: containerRef
|
|
1064
1096
|
}, /*#__PURE__*/React__default["default"].createElement(Scroll__default["default"], {
|
|
1065
|
-
className: styles$9.scroll
|
|
1097
|
+
className: styles$9.scroll,
|
|
1098
|
+
disabled: scrollDisabled
|
|
1066
1099
|
}, /*#__PURE__*/React__default["default"].createElement("nav", {
|
|
1067
1100
|
className: styles$9.nav,
|
|
1068
1101
|
style: {
|
|
@@ -1072,38 +1105,36 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
|
1072
1105
|
className: styles$9.items
|
|
1073
1106
|
}, items.map(function (item, index) {
|
|
1074
1107
|
var _ref6 = item || {},
|
|
1075
|
-
screenId = _ref6.screenId
|
|
1076
|
-
_ref6$screen = _ref6.screen,
|
|
1077
|
-
screen = _ref6$screen === void 0 ? null : _ref6$screen;
|
|
1108
|
+
screenId = _ref6.screenId;
|
|
1078
1109
|
|
|
1079
1110
|
var itemStyles = {
|
|
1080
1111
|
width: "".concat(100 / thumbsPerLine, "%")
|
|
1081
1112
|
};
|
|
1113
|
+
|
|
1114
|
+
var _ref7 = screenSize || {},
|
|
1115
|
+
screenWidth = _ref7.width,
|
|
1116
|
+
screenHeight = _ref7.height;
|
|
1117
|
+
|
|
1118
|
+
var screenMounted = screensMounted[index] || false;
|
|
1082
1119
|
return /*#__PURE__*/React__default["default"].createElement("li", {
|
|
1083
1120
|
key: "item-".concat(screenId),
|
|
1084
1121
|
className: styles$9.item,
|
|
1085
1122
|
style: itemStyles
|
|
1086
1123
|
}, /*#__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",
|
|
1124
|
+
className: styles$9.inner
|
|
1125
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1126
|
+
className: classNames__default["default"]([styles$9.frame, _defineProperty__default["default"]({}, styles$9.isLoading, !screenMounted)]),
|
|
1094
1127
|
style: {
|
|
1095
|
-
|
|
1128
|
+
paddingBottom: "".concat(screenHeight / screenWidth * 100, "%")
|
|
1096
1129
|
}
|
|
1097
|
-
}, /*#__PURE__*/React__default["default"].createElement(
|
|
1098
|
-
|
|
1099
|
-
height: "16"
|
|
1100
|
-
})) : /*#__PURE__*/React__default["default"].createElement(ViewerMenuScreen, {
|
|
1130
|
+
}, screenMounted ? /*#__PURE__*/React__default["default"].createElement(ViewerMenuScreen, {
|
|
1131
|
+
className: styles$9.screen,
|
|
1101
1132
|
item: item,
|
|
1102
1133
|
index: index,
|
|
1103
1134
|
screenSize: screenSize,
|
|
1104
1135
|
onClick: onClickScreen,
|
|
1105
1136
|
focusable: focusable
|
|
1106
|
-
})));
|
|
1137
|
+
}) : null)));
|
|
1107
1138
|
}))))));
|
|
1108
1139
|
};
|
|
1109
1140
|
|
|
@@ -1413,6 +1444,11 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1413
1444
|
shareOpened = _useState4[0],
|
|
1414
1445
|
setShareOpened = _useState4[1];
|
|
1415
1446
|
|
|
1447
|
+
var _useState5 = React.useState(false),
|
|
1448
|
+
_useState6 = _slicedToArray__default["default"](_useState5, 2),
|
|
1449
|
+
menuMounted = _useState6[0],
|
|
1450
|
+
setMenuMounted = _useState6[1];
|
|
1451
|
+
|
|
1416
1452
|
var _useDimensionObserver = hooks.useDimensionObserver(),
|
|
1417
1453
|
navContainerRef = _useDimensionObserver.ref,
|
|
1418
1454
|
_useDimensionObserver2 = _useDimensionObserver.height,
|
|
@@ -1553,6 +1589,7 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1553
1589
|
springParams: springParams
|
|
1554
1590
|
}),
|
|
1555
1591
|
bindShareDrag = _useDragProgress.bind,
|
|
1592
|
+
draggingShare = _useDragProgress.dragging,
|
|
1556
1593
|
shareOpenedProgress = _useDragProgress.progress;
|
|
1557
1594
|
|
|
1558
1595
|
var computeMenuProgress = React.useCallback(function (_ref9) {
|
|
@@ -1600,6 +1637,7 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1600
1637
|
springParams: springParams
|
|
1601
1638
|
}),
|
|
1602
1639
|
bindMenuDrag = _useDragProgress2.bind,
|
|
1640
|
+
draggingMenu = _useDragProgress2.dragging,
|
|
1603
1641
|
menuOpenedProgress = _useDragProgress2.progress;
|
|
1604
1642
|
|
|
1605
1643
|
var keyboardShortcuts = React.useMemo(function () {
|
|
@@ -1615,6 +1653,13 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1615
1653
|
useKeyboardShortcuts(keyboardShortcuts); // should be zero if either screens menu or share menu is opened
|
|
1616
1654
|
|
|
1617
1655
|
var dotsOpacity = Math.min(1, Math.max(0, 1 - (menuOpenedProgress + shareOpenedProgress)));
|
|
1656
|
+
React.useEffect(function () {
|
|
1657
|
+
if ((menuOpened || draggingMenu) && !menuMounted) {
|
|
1658
|
+
setMenuMounted(true);
|
|
1659
|
+
} else if (!menuOpened && !draggingMenu && menuMounted) {
|
|
1660
|
+
setMenuMounted(false);
|
|
1661
|
+
}
|
|
1662
|
+
}, [menuOpened, draggingMenu, menuMounted, setMenuMounted]);
|
|
1618
1663
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1619
1664
|
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
1665
|
ref: refDots,
|
|
@@ -1640,7 +1685,7 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1640
1685
|
theme: menuTheme,
|
|
1641
1686
|
iconPosition: "left"
|
|
1642
1687
|
}),
|
|
1643
|
-
|
|
1688
|
+
progressSpring: shareOpenedProgress
|
|
1644
1689
|
})) : null, !withoutScreensMenu ? /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
|
1645
1690
|
className: classNames__default["default"]([styles$6.menuItem, styles$6.menuItemScreens])
|
|
1646
1691
|
}, bindMenuDrag()), /*#__PURE__*/React__default["default"].createElement(ToggleButton, {
|
|
@@ -1656,7 +1701,7 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1656
1701
|
theme: menuTheme,
|
|
1657
1702
|
iconPosition: "right"
|
|
1658
1703
|
}),
|
|
1659
|
-
|
|
1704
|
+
progressSpring: menuOpenedProgress,
|
|
1660
1705
|
toggledButtonClassName: styles$6.screensMenuButtonToggled
|
|
1661
1706
|
})) : null), /*#__PURE__*/React__default["default"].createElement(ViewerMenuDots, Object.assign({}, menuTheme, {
|
|
1662
1707
|
direction: "horizontal",
|
|
@@ -1676,9 +1721,9 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1676
1721
|
}
|
|
1677
1722
|
}))), /*#__PURE__*/React__default["default"].createElement(ViewerMenuContainer, {
|
|
1678
1723
|
className: styles$6.menuContainer,
|
|
1679
|
-
|
|
1724
|
+
progressSpring: shareOpenedProgress,
|
|
1680
1725
|
theme: viewerTheme
|
|
1681
|
-
},
|
|
1726
|
+
}, draggingShare || shareOpened ? /*#__PURE__*/React__default["default"].createElement(ViewerMenuShare, {
|
|
1682
1727
|
viewerTheme: viewerTheme,
|
|
1683
1728
|
className: styles$6.menuShare,
|
|
1684
1729
|
title: title,
|
|
@@ -1693,9 +1738,9 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1693
1738
|
onClose: onCloseShare
|
|
1694
1739
|
}) : null), /*#__PURE__*/React__default["default"].createElement(ViewerMenuContainer, {
|
|
1695
1740
|
className: styles$6.menuContainer,
|
|
1696
|
-
|
|
1741
|
+
progressSpring: menuOpenedProgress,
|
|
1697
1742
|
theme: viewerTheme
|
|
1698
|
-
},
|
|
1743
|
+
}, menuMounted ? /*#__PURE__*/React__default["default"].createElement(ViewerMenuPreview, {
|
|
1699
1744
|
viewerTheme: viewerTheme,
|
|
1700
1745
|
className: styles$6.menuPreview,
|
|
1701
1746
|
screenSize: screenSize,
|
|
@@ -1707,6 +1752,7 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1707
1752
|
onShare: onShare,
|
|
1708
1753
|
onClickScreen: onClickScreen,
|
|
1709
1754
|
onClose: onCloseMenu,
|
|
1755
|
+
scrollDisabled: draggingMenu,
|
|
1710
1756
|
toggleFullscreen: toggleFullscreen,
|
|
1711
1757
|
fullscreenActive: fullscreenActive,
|
|
1712
1758
|
fullscreenEnabled: fullscreenEnabled
|
|
@@ -1715,6 +1761,7 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1715
1761
|
|
|
1716
1762
|
ViewerMenu.propTypes = propTypes$9;
|
|
1717
1763
|
ViewerMenu.defaultProps = defaultProps$9;
|
|
1764
|
+
var ViewerMenu$1 = /*#__PURE__*/React__default["default"].memo(ViewerMenu);
|
|
1718
1765
|
|
|
1719
1766
|
var styles$5 = {"container":"micromag-viewer-screen-container","navigationHint":"micromag-viewer-screen-navigationHint"};
|
|
1720
1767
|
|
|
@@ -2789,34 +2836,48 @@ var Viewer = function Viewer(_ref) {
|
|
|
2789
2836
|
springParams: springParams
|
|
2790
2837
|
}),
|
|
2791
2838
|
isDragging = _useDragProgress.dragging,
|
|
2792
|
-
|
|
2839
|
+
progressSpring = _useDragProgress.progress,
|
|
2793
2840
|
dragContentBind = _useDragProgress.bind;
|
|
2794
2841
|
|
|
2795
|
-
var getScreenStylesByIndex = function getScreenStylesByIndex(index,
|
|
2842
|
+
var getScreenStylesByIndex = function getScreenStylesByIndex(index, spring) {
|
|
2796
2843
|
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
2844
|
return {
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2845
|
+
zIndex: index,
|
|
2846
|
+
opacity: spring.to(function (progress) {
|
|
2847
|
+
var t = index - progress;
|
|
2848
|
+
var invert = Math.min(1, Math.max(0, -t));
|
|
2849
|
+
if (Math.abs(t) > neighborScreensActive) return 0;
|
|
2850
|
+
return Math.max(0, 1 - 0.75 * invert + (t + 1));
|
|
2851
|
+
}),
|
|
2852
|
+
transform: spring.to(function (progress) {
|
|
2853
|
+
var t = index - progress;
|
|
2854
|
+
var clamped = Math.min(1, Math.max(0, t));
|
|
2855
|
+
var invert = Math.min(1, Math.max(0, -t));
|
|
2856
|
+
if (Math.abs(t) > neighborScreensActive) return 'translateX(100%)';
|
|
2857
|
+
return "translateX(".concat(clamped * 100, "%) scale(").concat(1 - 0.2 * invert, ")");
|
|
2858
|
+
}),
|
|
2859
|
+
boxShadow: spring.to(function (progress) {
|
|
2860
|
+
var t = index - progress;
|
|
2861
|
+
if (Math.abs(t) > neighborScreensActive) return null;
|
|
2862
|
+
var clamped = Math.min(1, Math.max(0, t));
|
|
2863
|
+
return "0 0 ".concat(4 * (1 - clamped), "rem ").concat(-0.5 * (1 - clamped), "rem black");
|
|
2864
|
+
})
|
|
2812
2865
|
};
|
|
2813
2866
|
}
|
|
2814
2867
|
|
|
2815
|
-
var t = index - progress;
|
|
2816
|
-
var clamped = Math.min(1, Math.max(0, Math.abs(t)));
|
|
2817
2868
|
return {
|
|
2818
|
-
opacity:
|
|
2819
|
-
|
|
2869
|
+
opacity: spring.to(function (progress) {
|
|
2870
|
+
var t = index - progress;
|
|
2871
|
+
if (Math.abs(t) > neighborScreensActive) return 0;
|
|
2872
|
+
var clamped = Math.min(1, Math.max(0, Math.abs(t)));
|
|
2873
|
+
return 1 - 0.75 * clamped;
|
|
2874
|
+
}),
|
|
2875
|
+
transform: spring.to(function (progress) {
|
|
2876
|
+
var t = index - progress;
|
|
2877
|
+
if (Math.abs(t) > neighborScreensActive) return "translate(100%)";
|
|
2878
|
+
var clamped = Math.min(1, Math.max(0, Math.abs(t)));
|
|
2879
|
+
return "translateX(".concat(t * neighborScreenOffset, "%) scale(").concat(1 - (1 - neighborScreenScale) * clamped, ")");
|
|
2880
|
+
}),
|
|
2820
2881
|
zIndex: screensCount - index
|
|
2821
2882
|
};
|
|
2822
2883
|
};
|
|
@@ -2902,7 +2963,7 @@ var Viewer = function Viewer(_ref) {
|
|
|
2902
2963
|
}), (_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
2964
|
ref: containerRef,
|
|
2904
2965
|
onContextMenu: onContextMenu
|
|
2905
|
-
}, !withoutMenu ? /*#__PURE__*/React__default["default"].createElement(ViewerMenu, {
|
|
2966
|
+
}, !withoutMenu ? /*#__PURE__*/React__default["default"].createElement(ViewerMenu$1, {
|
|
2906
2967
|
story: parsedStory,
|
|
2907
2968
|
currentScreenIndex: screenIndex,
|
|
2908
2969
|
withShadow: menuOverScreen && !withoutMenuShadow,
|
|
@@ -2937,8 +2998,8 @@ var Viewer = function Viewer(_ref) {
|
|
|
2937
2998
|
}, screens.map(function (screen, i) {
|
|
2938
2999
|
var current = screenIndex === i;
|
|
2939
3000
|
var active = i >= screenIndex - neighborScreensActive && i <= screenIndex + neighborScreensActive;
|
|
2940
|
-
var screenStyles = getScreenStylesByIndex(i,
|
|
2941
|
-
return /*#__PURE__*/React__default["default"].createElement(
|
|
3001
|
+
var screenStyles = getScreenStylesByIndex(i, progressSpring);
|
|
3002
|
+
return /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
|
|
2942
3003
|
key: "screen-viewer-".concat(screen.id || '', "-").concat(i + 1),
|
|
2943
3004
|
style: screenStyles,
|
|
2944
3005
|
className: classNames__default["default"]([styles$6.screenContainer, _defineProperty__default["default"]({}, styles$6.current, current)])
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@micromag/viewer",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.213",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"javascript"
|
|
@@ -59,14 +59,14 @@
|
|
|
59
59
|
"@fortawesome/fontawesome-svg-core": "^1.2.32",
|
|
60
60
|
"@fortawesome/free-solid-svg-icons": "^5.15.1",
|
|
61
61
|
"@fortawesome/react-fontawesome": "^0.1.13",
|
|
62
|
-
"@micromag/core": "^0.3.
|
|
63
|
-
"@micromag/element-scroll": "^0.3.
|
|
64
|
-
"@micromag/element-share-options": "^0.3.
|
|
65
|
-
"@micromag/element-webview": "^0.3.
|
|
66
|
-
"@micromag/elements": "^0.3.
|
|
67
|
-
"@micromag/fields": "^0.3.
|
|
68
|
-
"@micromag/intl": "^0.3.
|
|
69
|
-
"@micromag/screens": "^0.3.
|
|
62
|
+
"@micromag/core": "^0.3.213",
|
|
63
|
+
"@micromag/element-scroll": "^0.3.213",
|
|
64
|
+
"@micromag/element-share-options": "^0.3.213",
|
|
65
|
+
"@micromag/element-webview": "^0.3.213",
|
|
66
|
+
"@micromag/elements": "^0.3.213",
|
|
67
|
+
"@micromag/fields": "^0.3.213",
|
|
68
|
+
"@micromag/intl": "^0.3.213",
|
|
69
|
+
"@micromag/screens": "^0.3.213",
|
|
70
70
|
"@react-spring/core": "^9.1.1",
|
|
71
71
|
"@react-spring/web": "^9.1.1",
|
|
72
72
|
"@use-gesture/react": "^10.2.4",
|
|
@@ -79,10 +79,11 @@
|
|
|
79
79
|
"react-router": "^5.2.0",
|
|
80
80
|
"react-router-dom": "^5.2.0",
|
|
81
81
|
"react-share": "^4.3.1",
|
|
82
|
+
"react-spring": "^9.5.2",
|
|
82
83
|
"wolfy87-eventemitter": "^5.2.9"
|
|
83
84
|
},
|
|
84
85
|
"publishConfig": {
|
|
85
86
|
"access": "public"
|
|
86
87
|
},
|
|
87
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "e7dcbfd9c59763758e35c37bacf6749e95c1cbac"
|
|
88
89
|
}
|