@micromag/viewer 0.2.412 → 0.3.2
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 +7 -6
- package/es/index.js +954 -634
- package/lib/index.js +966 -645
- package/package.json +8 -8
package/lib/index.js
CHANGED
|
@@ -4,119 +4,329 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
6
6
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
7
|
-
var React = require('react');
|
|
8
7
|
var PropTypes = require('prop-types');
|
|
8
|
+
var React = require('react');
|
|
9
9
|
var reactRouter = require('react-router');
|
|
10
10
|
var reactRouterDom = require('react-router-dom');
|
|
11
|
-
var
|
|
12
|
-
var intl = require('@micromag/intl');
|
|
13
|
-
var fieldsManager = require('@micromag/fields/manager');
|
|
14
|
-
var core = require('@micromag/core');
|
|
11
|
+
var core$1 = require('@micromag/core');
|
|
15
12
|
var contexts = require('@micromag/core/contexts');
|
|
13
|
+
var fieldsManager = require('@micromag/fields/manager');
|
|
14
|
+
var intl = require('@micromag/intl');
|
|
15
|
+
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 core$1 = require('@react-spring/core');
|
|
20
|
-
var web = require('@react-spring/web');
|
|
21
|
-
var react = require('@use-gesture/react');
|
|
22
19
|
var classNames = require('classnames');
|
|
23
20
|
var reactHelmet = require('react-helmet');
|
|
24
21
|
var reactIntl = require('react-intl');
|
|
25
22
|
var components = require('@micromag/core/components');
|
|
26
23
|
var hooks = require('@micromag/core/hooks');
|
|
27
24
|
var utils = require('@micromag/core/utils');
|
|
25
|
+
var core = require('@react-spring/core');
|
|
26
|
+
var web = require('@react-spring/web');
|
|
27
|
+
var react = require('@use-gesture/react');
|
|
28
28
|
var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
|
|
29
29
|
var reactFontawesome = require('@fortawesome/react-fontawesome');
|
|
30
30
|
var Scroll = require('@micromag/element-scroll');
|
|
31
31
|
var reactShare = require('react-share');
|
|
32
|
+
var EventEmitter = require('wolfy87-eventemitter');
|
|
32
33
|
|
|
33
34
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
34
35
|
|
|
35
36
|
var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
|
|
36
37
|
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
37
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
38
38
|
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
39
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
39
40
|
var fieldsManager__default = /*#__PURE__*/_interopDefaultLegacy(fieldsManager);
|
|
40
41
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
41
42
|
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
42
43
|
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
43
44
|
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
|
44
45
|
var Scroll__default = /*#__PURE__*/_interopDefaultLegacy(Scroll);
|
|
46
|
+
var EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter);
|
|
47
|
+
|
|
48
|
+
var home = "/";
|
|
49
|
+
var screen = "/:screen";
|
|
50
|
+
var defaultRoutes = {
|
|
51
|
+
home: home,
|
|
52
|
+
screen: screen
|
|
53
|
+
};
|
|
45
54
|
|
|
46
55
|
var routes = PropTypes__default["default"].shape({
|
|
47
56
|
home: PropTypes__default["default"].string.isRequired,
|
|
48
57
|
screen: PropTypes__default["default"].string.isRequired
|
|
49
58
|
});
|
|
50
59
|
|
|
51
|
-
|
|
60
|
+
function useKeyboardShortcuts() {
|
|
61
|
+
var shortcuts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
52
62
|
|
|
53
|
-
var
|
|
63
|
+
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
64
|
+
_ref$disabled = _ref.disabled,
|
|
65
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled;
|
|
54
66
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
67
|
+
React.useEffect(function () {
|
|
68
|
+
var onKey = function onKey(e) {
|
|
69
|
+
if (['input', 'textarea'].reduce(function (foundMatch, match) {
|
|
70
|
+
return foundMatch || e.target.matches(match);
|
|
71
|
+
}, false)) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
var key = e.key;
|
|
76
|
+
var lowercaseKey = key.toLowerCase();
|
|
77
|
+
|
|
78
|
+
if (typeof shortcuts[lowercaseKey] !== 'undefined') {
|
|
79
|
+
shortcuts[lowercaseKey]();
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
if (!disabled) {
|
|
84
|
+
window.addEventListener('keydown', onKey);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return function () {
|
|
88
|
+
if (!disabled) {
|
|
89
|
+
window.removeEventListener('keydown', onKey);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}, [disabled]);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function checkClickable(el) {
|
|
96
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
97
|
+
var distance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
98
|
+
|
|
99
|
+
var _ref = options || {},
|
|
100
|
+
_ref$maxDistance = _ref.maxDistance,
|
|
101
|
+
maxDistance = _ref$maxDistance === void 0 ? 5 : _ref$maxDistance,
|
|
102
|
+
_ref$tags = _ref.tags,
|
|
103
|
+
tags = _ref$tags === void 0 ? ['BUTTON', 'A', 'INPUT', 'TEXTAREA'] : _ref$tags;
|
|
104
|
+
|
|
105
|
+
var _ref2 = el || {},
|
|
106
|
+
_ref2$tagName = _ref2.tagName,
|
|
107
|
+
tagName = _ref2$tagName === void 0 ? null : _ref2$tagName,
|
|
108
|
+
_ref2$parentNode = _ref2.parentNode,
|
|
109
|
+
parentNode = _ref2$parentNode === void 0 ? null : _ref2$parentNode;
|
|
110
|
+
|
|
111
|
+
if (tagName === 'BODY') {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (tags.map(function (it) {
|
|
116
|
+
return it.toLowerCase();
|
|
117
|
+
}).indexOf(tagName.toLowerCase()) > -1) {
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (distance < maxDistance) {
|
|
122
|
+
return checkClickable(parentNode, options, distance + 1);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
function useScreenInteraction() {
|
|
129
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
130
|
+
screens = _ref.screens,
|
|
131
|
+
screenId = _ref.screenId,
|
|
132
|
+
screenWidth = _ref.screenWidth,
|
|
133
|
+
_ref$isView = _ref.isView,
|
|
134
|
+
isView = _ref$isView === void 0 ? false : _ref$isView,
|
|
135
|
+
_ref$clickOnSiblings = _ref.clickOnSiblings,
|
|
136
|
+
clickOnSiblings = _ref$clickOnSiblings === void 0 ? false : _ref$clickOnSiblings,
|
|
137
|
+
_ref$nextScreenWidthP = _ref.nextScreenWidthPercent,
|
|
138
|
+
nextScreenWidthPercent = _ref$nextScreenWidthP === void 0 ? 0.5 : _ref$nextScreenWidthP,
|
|
139
|
+
_ref$eventsManager = _ref.eventsManager,
|
|
140
|
+
eventsManager = _ref$eventsManager === void 0 ? null : _ref$eventsManager,
|
|
141
|
+
_ref$onClick = _ref.onClick,
|
|
142
|
+
onClick = _ref$onClick === void 0 ? null : _ref$onClick,
|
|
143
|
+
_ref$onEnd = _ref.onEnd,
|
|
144
|
+
onEnd = _ref$onEnd === void 0 ? null : _ref$onEnd,
|
|
145
|
+
_ref$onChangeScreen = _ref.onChangeScreen,
|
|
146
|
+
onChangeScreen = _ref$onChangeScreen === void 0 ? null : _ref$onChangeScreen;
|
|
147
|
+
|
|
148
|
+
var _useState = React.useState(screens.reduce(function (map, _ref2) {
|
|
149
|
+
var id = _ref2.id;
|
|
150
|
+
return _objectSpread__default["default"](_objectSpread__default["default"]({}, map), {}, _defineProperty__default["default"]({}, id, true));
|
|
151
|
+
}, {})),
|
|
152
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
153
|
+
screensInteractionEnabled = _useState2[0],
|
|
154
|
+
setScreensInteractionEnabled = _useState2[1];
|
|
155
|
+
|
|
156
|
+
var screenIndex = screens.findIndex(function (_ref3) {
|
|
157
|
+
var id = _ref3.id;
|
|
158
|
+
return id === screenId;
|
|
159
|
+
});
|
|
160
|
+
var _screensInteractionEn = screensInteractionEnabled[screenId],
|
|
161
|
+
currentScreenInteractionEnabled = _screensInteractionEn === void 0 ? true : _screensInteractionEn;
|
|
162
|
+
var updateInteraction = React.useCallback(function (newValue) {
|
|
163
|
+
var _screensInteractionEn2 = screensInteractionEnabled[screenId],
|
|
164
|
+
currentValue = _screensInteractionEn2 === void 0 ? true : _screensInteractionEn2;
|
|
165
|
+
|
|
166
|
+
if (currentValue !== newValue) {
|
|
167
|
+
setScreensInteractionEnabled(screens.reduce(function (map, _ref4) {
|
|
168
|
+
var id = _ref4.id;
|
|
169
|
+
return screenId === id ? _objectSpread__default["default"](_objectSpread__default["default"]({}, map), {}, _defineProperty__default["default"]({}, id, newValue)) : _objectSpread__default["default"](_objectSpread__default["default"]({}, map), {}, _defineProperty__default["default"]({}, id, typeof screensInteractionEnabled[id] === 'undefined' || screensInteractionEnabled[id] === true));
|
|
170
|
+
}, {}));
|
|
171
|
+
}
|
|
172
|
+
}, [screens, screenId, screensInteractionEnabled, setScreensInteractionEnabled]);
|
|
173
|
+
var enableInteraction = React.useCallback(function () {
|
|
174
|
+
return updateInteraction(true);
|
|
175
|
+
}, [updateInteraction]);
|
|
176
|
+
var disableInteraction = React.useCallback(function () {
|
|
177
|
+
return updateInteraction(false);
|
|
178
|
+
}, [updateInteraction]);
|
|
179
|
+
var onScreenClick = React.useCallback(function (e, index) {
|
|
180
|
+
if (onClick !== null) {
|
|
181
|
+
onClick(e, index);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
var screensCount = screens.length;
|
|
185
|
+
var tappedCurrent = screenIndex === index;
|
|
186
|
+
eventsManager.emit('tap', e, index);
|
|
187
|
+
|
|
188
|
+
if (!isView && tappedCurrent || checkClickable(e.target) || tappedCurrent && !currentScreenInteractionEnabled) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
var nextIndex = screenIndex;
|
|
193
|
+
|
|
194
|
+
var _e$currentTarget$getB = e.currentTarget.getBoundingClientRect(),
|
|
195
|
+
_e$currentTarget$getB2 = _e$currentTarget$getB.left,
|
|
196
|
+
contentX = _e$currentTarget$getB2 === void 0 ? 0 : _e$currentTarget$getB2;
|
|
197
|
+
|
|
198
|
+
var tapX = e.clientX;
|
|
199
|
+
var hasTappedLeft = tappedCurrent ? tapX - contentX < screenWidth * (1 - nextScreenWidthPercent) : screenIndex > index;
|
|
200
|
+
|
|
201
|
+
if (hasTappedLeft) {
|
|
202
|
+
nextIndex = clickOnSiblings ? index : Math.max(0, screenIndex - 1);
|
|
203
|
+
eventsManager.emit('tap_previous', nextIndex);
|
|
204
|
+
} else {
|
|
205
|
+
nextIndex = clickOnSiblings ? index : Math.min(screensCount - 1, screenIndex + 1);
|
|
206
|
+
var isLastScreen = screenIndex === screensCount - 1;
|
|
207
|
+
|
|
208
|
+
if (isLastScreen && onEnd !== null) {
|
|
209
|
+
eventsManager.emit('tap_end');
|
|
210
|
+
onEnd();
|
|
211
|
+
} else {
|
|
212
|
+
eventsManager.emit('tap_next', nextIndex);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
eventsManager.emit('change_screen', nextIndex);
|
|
217
|
+
onChangeScreen(nextIndex);
|
|
218
|
+
}, [screenWidth, screens, screenIndex, eventsManager, onClick, onEnd, onChangeScreen, screenIndex, screensInteractionEnabled, currentScreenInteractionEnabled, nextScreenWidthPercent, isView, clickOnSiblings]);
|
|
219
|
+
return {
|
|
220
|
+
onClick: onScreenClick,
|
|
221
|
+
currentScreenInteractionEnabled: currentScreenInteractionEnabled,
|
|
222
|
+
enableInteraction: enableInteraction,
|
|
223
|
+
disableInteraction: disableInteraction
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
var styles$7 = {"container":"micromag-viewer-container","menuPreview":"micromag-viewer-menuPreview","menuPreviewContainer":"micromag-viewer-menuPreviewContainer","screen":"micromag-viewer-screen","screenInner":"micromag-viewer-screenInner","content":"micromag-viewer-content","menuDotsContainer":"micromag-viewer-menuDotsContainer","menuDots":"micromag-viewer-menuDots","current":"micromag-viewer-current","landscape":"micromag-viewer-landscape","visible":"micromag-viewer-visible","withSibblings":"micromag-viewer-withSibblings","hideMenu":"micromag-viewer-hideMenu","ready":"micromag-viewer-ready"};
|
|
228
|
+
|
|
229
|
+
var styles$6 = {"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"};
|
|
230
|
+
|
|
231
|
+
var styles$5 = {"container":"micromag-viewer-menus-menu-dot-container","button":"micromag-viewer-menus-menu-dot-button","dot":"micromag-viewer-menus-menu-dot-dot","vertical":"micromag-viewer-menus-menu-dot-vertical"};
|
|
232
|
+
|
|
233
|
+
var propTypes$a = {
|
|
58
234
|
current: PropTypes__default["default"].bool,
|
|
59
235
|
active: PropTypes__default["default"].bool,
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
236
|
+
colors: PropTypes__default["default"].shape({
|
|
237
|
+
primary: PropTypes__default["default"].string,
|
|
238
|
+
secondary: PropTypes__default["default"].string
|
|
239
|
+
}),
|
|
240
|
+
vertical: PropTypes__default["default"].bool,
|
|
241
|
+
onClick: PropTypes__default["default"].func,
|
|
242
|
+
className: PropTypes__default["default"].string
|
|
65
243
|
};
|
|
66
|
-
var defaultProps$
|
|
67
|
-
screen: null,
|
|
68
|
-
renderContext: null,
|
|
244
|
+
var defaultProps$a = {
|
|
69
245
|
current: false,
|
|
70
|
-
active:
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
getMediaRef: null
|
|
246
|
+
active: false,
|
|
247
|
+
colors: null,
|
|
248
|
+
vertical: false,
|
|
249
|
+
onClick: null,
|
|
250
|
+
className: null
|
|
76
251
|
};
|
|
77
252
|
|
|
78
|
-
var
|
|
79
|
-
var
|
|
253
|
+
var ViewerMenuDot = function ViewerMenuDot(_ref) {
|
|
254
|
+
var _ref3;
|
|
80
255
|
|
|
81
|
-
var
|
|
82
|
-
renderContext = _ref.renderContext,
|
|
256
|
+
var current = _ref.current,
|
|
83
257
|
active = _ref.active,
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
className: classNames__default["default"]([styles$5.container, (_ref2 = {}, _defineProperty__default["default"](_ref2, styles$5.active, active), _defineProperty__default["default"](_ref2, styles$5.current, current), _ref2)]),
|
|
92
|
-
"aria-hidden": current ? null : 'true'
|
|
93
|
-
}, /*#__PURE__*/React__default["default"].createElement(components.Screen, {
|
|
94
|
-
screen: screen,
|
|
95
|
-
renderContext: renderContext,
|
|
96
|
-
active: active,
|
|
97
|
-
current: current,
|
|
98
|
-
onPrevious: onPrevious,
|
|
99
|
-
onNext: onNext,
|
|
100
|
-
onEnableInteraction: onEnableInteraction,
|
|
101
|
-
onDisableInteraction: onDisableInteraction,
|
|
102
|
-
getMediaRef: getMediaRef
|
|
103
|
-
})) : null;
|
|
104
|
-
};
|
|
258
|
+
colors = _ref.colors,
|
|
259
|
+
vertical = _ref.vertical,
|
|
260
|
+
onClick = _ref.onClick,
|
|
261
|
+
className = _ref.className;
|
|
262
|
+
var currentTime = 0;
|
|
263
|
+
var duration = 1;
|
|
264
|
+
var playing = true;
|
|
105
265
|
|
|
106
|
-
|
|
107
|
-
|
|
266
|
+
var _ref2 = colors || {},
|
|
267
|
+
_ref2$primary = _ref2.primary,
|
|
268
|
+
primary = _ref2$primary === void 0 ? 'rgba(255, 255, 255, 1)' : _ref2$primary,
|
|
269
|
+
_ref2$secondary = _ref2.secondary,
|
|
270
|
+
secondary = _ref2$secondary === void 0 ? 'rgba(200, 200, 200, 0.5)' : _ref2$secondary; // TODO: if approved animate progress
|
|
108
271
|
|
|
109
|
-
var styles$4 = {"container":"micromag-viewer-menus-menu-dots-container","closeButton":"micromag-viewer-menus-menu-dots-closeButton","item":"micromag-viewer-menus-menu-dots-item","button":"micromag-viewer-menus-menu-dots-button","menuButton":"micromag-viewer-menus-menu-dots-menuButton","items":"micromag-viewer-menus-menu-dots-items","dot":"micromag-viewer-menus-menu-dots-dot","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"};
|
|
110
272
|
|
|
111
|
-
var
|
|
273
|
+
var _useSpring = core.useSpring(function () {
|
|
274
|
+
return {
|
|
275
|
+
x: 0,
|
|
276
|
+
config: {
|
|
277
|
+
duration: 0
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
}),
|
|
281
|
+
_useSpring2 = _slicedToArray__default["default"](_useSpring, 2);
|
|
282
|
+
_useSpring2[0];
|
|
283
|
+
var setSpringProps = _useSpring2[1];
|
|
112
284
|
|
|
113
|
-
|
|
285
|
+
React.useEffect(function () {
|
|
286
|
+
|
|
287
|
+
var progress = currentTime / duration;
|
|
288
|
+
setSpringProps.start({
|
|
289
|
+
reset: true,
|
|
290
|
+
immediate: !playing,
|
|
291
|
+
from: {
|
|
292
|
+
x: progress
|
|
293
|
+
},
|
|
294
|
+
to: {
|
|
295
|
+
x: 1
|
|
296
|
+
},
|
|
297
|
+
config: {
|
|
298
|
+
duration: (duration - currentTime) * 1000
|
|
299
|
+
}
|
|
300
|
+
});
|
|
301
|
+
}, [playing, duration, currentTime, setSpringProps]);
|
|
302
|
+
return /*#__PURE__*/React__default["default"].createElement("li", {
|
|
303
|
+
className: classNames__default["default"]([styles$5.container, (_ref3 = {}, _defineProperty__default["default"](_ref3, styles$5.active, current), _defineProperty__default["default"](_ref3, styles$5.vertical, vertical), _defineProperty__default["default"](_ref3, className, className !== null), _ref3)]),
|
|
304
|
+
"aria-hidden": "true"
|
|
305
|
+
}, /*#__PURE__*/React__default["default"].createElement("button", {
|
|
306
|
+
type: "button",
|
|
307
|
+
className: styles$5.button,
|
|
308
|
+
onClick: onClick,
|
|
309
|
+
tabIndex: "-1"
|
|
310
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
311
|
+
className: styles$5.dot,
|
|
312
|
+
style: {
|
|
313
|
+
backgroundColor: active ? primary : secondary
|
|
314
|
+
}
|
|
315
|
+
})));
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
ViewerMenuDot.propTypes = propTypes$a;
|
|
319
|
+
ViewerMenuDot.defaultProps = defaultProps$a;
|
|
320
|
+
|
|
321
|
+
var styles$4 = {};
|
|
322
|
+
|
|
323
|
+
var propTypes$9 = {
|
|
114
324
|
size: PropTypes__default["default"].number,
|
|
115
325
|
spacing: PropTypes__default["default"].number,
|
|
116
326
|
color: PropTypes__default["default"].string,
|
|
117
327
|
className: PropTypes__default["default"].string
|
|
118
328
|
};
|
|
119
|
-
var defaultProps$
|
|
329
|
+
var defaultProps$9 = {
|
|
120
330
|
size: 100,
|
|
121
331
|
spacing: 8,
|
|
122
332
|
color: 'white',
|
|
@@ -130,7 +340,7 @@ var MenuIcon = function MenuIcon(_ref) {
|
|
|
130
340
|
className = _ref.className;
|
|
131
341
|
var squareSize = (size - 2 * spacing) / 3;
|
|
132
342
|
return /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
133
|
-
className: classNames__default["default"]([styles$
|
|
343
|
+
className: classNames__default["default"]([styles$4.container, _defineProperty__default["default"]({}, className, className !== null)]),
|
|
134
344
|
xmlns: "http://www.w3.org/2000/svg",
|
|
135
345
|
viewBox: "0 0 ".concat(size, " ").concat(size),
|
|
136
346
|
"aria-hidden": "true"
|
|
@@ -148,57 +358,66 @@ var MenuIcon = function MenuIcon(_ref) {
|
|
|
148
358
|
}));
|
|
149
359
|
};
|
|
150
360
|
|
|
151
|
-
MenuIcon.propTypes = propTypes$
|
|
152
|
-
MenuIcon.defaultProps = defaultProps$
|
|
361
|
+
MenuIcon.propTypes = propTypes$9;
|
|
362
|
+
MenuIcon.defaultProps = defaultProps$9;
|
|
153
363
|
|
|
154
|
-
var propTypes$
|
|
364
|
+
var propTypes$8 = {
|
|
155
365
|
direction: PropTypes__default["default"].oneOf(['horizontal', 'vertical']),
|
|
156
366
|
withShadow: PropTypes__default["default"].bool,
|
|
157
|
-
items: core.PropTypes.menuItems,
|
|
158
|
-
current: PropTypes__default["default"].number,
|
|
367
|
+
items: core$1.PropTypes.menuItems,
|
|
159
368
|
onClickItem: PropTypes__default["default"].func,
|
|
369
|
+
onClickMenu: PropTypes__default["default"].func,
|
|
160
370
|
colors: PropTypes__default["default"].shape({
|
|
161
371
|
primary: PropTypes__default["default"].string,
|
|
162
372
|
secondary: PropTypes__default["default"].string
|
|
163
373
|
}),
|
|
164
374
|
closeable: PropTypes__default["default"].bool,
|
|
375
|
+
withItemClick: PropTypes__default["default"].bool,
|
|
376
|
+
withoutScreensMenu: PropTypes__default["default"].bool,
|
|
165
377
|
onClose: PropTypes__default["default"].func,
|
|
166
378
|
className: PropTypes__default["default"].string
|
|
167
379
|
};
|
|
168
|
-
var defaultProps$
|
|
380
|
+
var defaultProps$8 = {
|
|
169
381
|
direction: 'horizontal',
|
|
170
382
|
withShadow: false,
|
|
171
383
|
items: [],
|
|
172
|
-
current: 0,
|
|
173
384
|
onClickItem: null,
|
|
385
|
+
onClickMenu: null,
|
|
174
386
|
colors: null,
|
|
175
387
|
closeable: false,
|
|
388
|
+
withItemClick: false,
|
|
389
|
+
withoutScreensMenu: false,
|
|
176
390
|
onClose: null,
|
|
177
391
|
className: null
|
|
178
392
|
};
|
|
179
393
|
|
|
180
394
|
var ViewerMenuDots = function ViewerMenuDots(_ref) {
|
|
181
|
-
var
|
|
395
|
+
var _ref4;
|
|
182
396
|
|
|
183
397
|
var direction = _ref.direction,
|
|
184
398
|
withShadow = _ref.withShadow,
|
|
185
399
|
items = _ref.items,
|
|
186
|
-
current = _ref.current,
|
|
187
400
|
onClickItem = _ref.onClickItem,
|
|
401
|
+
onClickMenu = _ref.onClickMenu,
|
|
188
402
|
colors = _ref.colors,
|
|
189
403
|
closeable = _ref.closeable,
|
|
404
|
+
withItemClick = _ref.withItemClick,
|
|
405
|
+
withoutScreensMenu = _ref.withoutScreensMenu,
|
|
190
406
|
onClose = _ref.onClose,
|
|
191
407
|
className = _ref.className;
|
|
192
408
|
|
|
193
409
|
var _ref2 = colors || {},
|
|
194
410
|
_ref2$primary = _ref2.primary,
|
|
195
|
-
primary = _ref2$primary === void 0 ? 'rgba(255, 255, 255, 1)' : _ref2$primary
|
|
196
|
-
_ref2$secondary = _ref2.secondary,
|
|
197
|
-
secondary = _ref2$secondary === void 0 ? 'rgba(200, 200, 200, 0.5)' : _ref2$secondary;
|
|
411
|
+
primary = _ref2$primary === void 0 ? 'rgba(255, 255, 255, 1)' : _ref2$primary;
|
|
198
412
|
|
|
199
413
|
var intl = reactIntl.useIntl();
|
|
414
|
+
var currentIndex = items.findIndex(function (_ref3) {
|
|
415
|
+
var _ref3$current = _ref3.current,
|
|
416
|
+
current = _ref3$current === void 0 ? false : _ref3$current;
|
|
417
|
+
return current;
|
|
418
|
+
});
|
|
200
419
|
return /*#__PURE__*/React__default["default"].createElement("nav", {
|
|
201
|
-
className: classNames__default["default"]([styles$
|
|
420
|
+
className: classNames__default["default"]([styles$6.container, (_ref4 = {}, _defineProperty__default["default"](_ref4, className, className !== null), _defineProperty__default["default"](_ref4, styles$6.vertical, direction === 'vertical'), _defineProperty__default["default"](_ref4, styles$6.withShadow, withShadow), _ref4)]),
|
|
202
421
|
"aria-label": intl.formatMessage({
|
|
203
422
|
id: "bLYuuN",
|
|
204
423
|
defaultMessage: [{
|
|
@@ -218,35 +437,32 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
|
|
|
218
437
|
"value": "."
|
|
219
438
|
}]
|
|
220
439
|
}, {
|
|
221
|
-
current:
|
|
440
|
+
current: currentIndex + 1,
|
|
222
441
|
total: items.length
|
|
223
442
|
})
|
|
224
443
|
}, /*#__PURE__*/React__default["default"].createElement("ul", {
|
|
225
|
-
className: styles$
|
|
444
|
+
className: styles$6.items
|
|
226
445
|
}, items.map(function (item, index) {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
"
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
446
|
+
var _item$current = item.current,
|
|
447
|
+
current = _item$current === void 0 ? false : _item$current;
|
|
448
|
+
return /*#__PURE__*/React__default["default"].createElement(ViewerMenuDot, {
|
|
449
|
+
key: "item-".concat(index + 1),
|
|
450
|
+
current: current,
|
|
451
|
+
active: index <= currentIndex,
|
|
452
|
+
colors: colors,
|
|
234
453
|
onClick: function onClick() {
|
|
235
|
-
if (onClickItem !== null) {
|
|
236
|
-
onClickItem(
|
|
454
|
+
if ((withItemClick || withoutScreensMenu) && onClickItem !== null) {
|
|
455
|
+
onClickItem(item);
|
|
456
|
+
} else if (!withItemClick && onClickMenu !== null) {
|
|
457
|
+
onClickMenu();
|
|
237
458
|
}
|
|
238
459
|
},
|
|
239
|
-
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
backgroundColor: index <= current ? primary : secondary
|
|
244
|
-
}
|
|
245
|
-
}))) : null;
|
|
246
|
-
}), /*#__PURE__*/React__default["default"].createElement("li", {
|
|
247
|
-
className: styles$4.menu
|
|
460
|
+
vertical: direction === 'vertical'
|
|
461
|
+
});
|
|
462
|
+
}), !withoutScreensMenu ? /*#__PURE__*/React__default["default"].createElement("li", {
|
|
463
|
+
className: styles$6.menu
|
|
248
464
|
}, /*#__PURE__*/React__default["default"].createElement(MenuIcon, {
|
|
249
|
-
className: styles$
|
|
465
|
+
className: styles$6.menuIcon,
|
|
250
466
|
color: primary
|
|
251
467
|
}), /*#__PURE__*/React__default["default"].createElement("button", {
|
|
252
468
|
type: "button",
|
|
@@ -264,20 +480,16 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
|
|
|
264
480
|
"value": "Menu"
|
|
265
481
|
}]
|
|
266
482
|
}),
|
|
267
|
-
className: styles$
|
|
268
|
-
onClick:
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
})), closeable ? /*#__PURE__*/React__default["default"].createElement("li", {
|
|
274
|
-
className: styles$4.closeButton,
|
|
483
|
+
className: styles$6.menuButton,
|
|
484
|
+
onClick: onClickMenu
|
|
485
|
+
})) : null, closeable ? /*#__PURE__*/React__default["default"].createElement("li", {
|
|
486
|
+
className: styles$6.closeButton,
|
|
275
487
|
style: {
|
|
276
488
|
color: primary
|
|
277
489
|
}
|
|
278
490
|
}, /*#__PURE__*/React__default["default"].createElement("button", {
|
|
279
491
|
type: "button",
|
|
280
|
-
className: styles$
|
|
492
|
+
className: styles$6.closeButton,
|
|
281
493
|
onClick: onClose,
|
|
282
494
|
title: intl.formatMessage({
|
|
283
495
|
id: "dj/p/q",
|
|
@@ -298,14 +510,14 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
|
|
|
298
510
|
}))) : null));
|
|
299
511
|
};
|
|
300
512
|
|
|
301
|
-
ViewerMenuDots.propTypes = propTypes$
|
|
302
|
-
ViewerMenuDots.defaultProps = defaultProps$
|
|
513
|
+
ViewerMenuDots.propTypes = propTypes$8;
|
|
514
|
+
ViewerMenuDots.defaultProps = defaultProps$8;
|
|
303
515
|
|
|
304
|
-
var styles$
|
|
516
|
+
var styles$3 = {"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","screenContent":"micromag-viewer-menus-menu-preview-screenContent"};
|
|
305
517
|
|
|
306
|
-
var styles$
|
|
518
|
+
var styles$2 = {"container":"micromag-viewer-partials-share-modal-container","content":"micromag-viewer-partials-share-modal-content","opened":"micromag-viewer-partials-share-modal-opened"};
|
|
307
519
|
|
|
308
|
-
var propTypes$
|
|
520
|
+
var propTypes$7 = {
|
|
309
521
|
url: PropTypes__default["default"].string,
|
|
310
522
|
title: PropTypes__default["default"].string,
|
|
311
523
|
opened: PropTypes__default["default"].bool,
|
|
@@ -313,7 +525,7 @@ var propTypes$5 = {
|
|
|
313
525
|
onShare: PropTypes__default["default"].func,
|
|
314
526
|
onCancel: PropTypes__default["default"].func
|
|
315
527
|
};
|
|
316
|
-
var defaultProps$
|
|
528
|
+
var defaultProps$7 = {
|
|
317
529
|
url: null,
|
|
318
530
|
title: null,
|
|
319
531
|
opened: false,
|
|
@@ -366,13 +578,13 @@ var ShareModal = function ShareModal(_ref) {
|
|
|
366
578
|
}, [opened, onCancel]);
|
|
367
579
|
hooks.useDocumentEvent('click', onDocumentClick, opened);
|
|
368
580
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
369
|
-
className: classNames__default["default"]([styles$
|
|
581
|
+
className: classNames__default["default"]([styles$2.container, (_ref2 = {}, _defineProperty__default["default"](_ref2, className, className), _defineProperty__default["default"](_ref2, styles$2.opened, opened), _ref2)]),
|
|
370
582
|
ref: containerRef,
|
|
371
583
|
"aria-hidden": opened ? null : '-1'
|
|
372
584
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
373
|
-
className: styles$
|
|
585
|
+
className: styles$2.content
|
|
374
586
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
375
|
-
className: styles$
|
|
587
|
+
className: styles$2.buttons
|
|
376
588
|
}, /*#__PURE__*/React__default["default"].createElement(reactShare.FacebookShareButton, Object.assign({}, shareButtonProps, {
|
|
377
589
|
quote: title,
|
|
378
590
|
beforeOnClick: function beforeOnClick() {
|
|
@@ -397,12 +609,12 @@ var ShareModal = function ShareModal(_ref) {
|
|
|
397
609
|
}), /*#__PURE__*/React__default["default"].createElement(reactShare.EmailIcon, shareIconProps)))));
|
|
398
610
|
};
|
|
399
611
|
|
|
400
|
-
ShareModal.propTypes = propTypes$
|
|
401
|
-
ShareModal.defaultProps = defaultProps$
|
|
612
|
+
ShareModal.propTypes = propTypes$7;
|
|
613
|
+
ShareModal.defaultProps = defaultProps$7;
|
|
402
614
|
|
|
403
|
-
var styles = {"container":"micromag-viewer-partials-share-button-container","shareModal":"micromag-viewer-partials-share-button-shareModal"};
|
|
615
|
+
var styles$1 = {"container":"micromag-viewer-partials-share-button-container","shareModal":"micromag-viewer-partials-share-button-shareModal"};
|
|
404
616
|
|
|
405
|
-
var propTypes$
|
|
617
|
+
var propTypes$6 = {
|
|
406
618
|
title: PropTypes__default["default"].string,
|
|
407
619
|
url: PropTypes__default["default"].string,
|
|
408
620
|
className: PropTypes__default["default"].string,
|
|
@@ -411,7 +623,7 @@ var propTypes$4 = {
|
|
|
411
623
|
children: PropTypes__default["default"].node,
|
|
412
624
|
focusable: PropTypes__default["default"].bool
|
|
413
625
|
};
|
|
414
|
-
var defaultProps$
|
|
626
|
+
var defaultProps$6 = {
|
|
415
627
|
title: null,
|
|
416
628
|
url: null,
|
|
417
629
|
className: null,
|
|
@@ -452,7 +664,7 @@ var ShareButton = function ShareButton(_ref) {
|
|
|
452
664
|
setStoryShareModalOpened(false);
|
|
453
665
|
}, [setStoryShareModalOpened]);
|
|
454
666
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
455
|
-
className: classNames__default["default"]([styles.container, _defineProperty__default["default"]({}, className, className !== null)])
|
|
667
|
+
className: classNames__default["default"]([styles$1.container, _defineProperty__default["default"]({}, className, className !== null)])
|
|
456
668
|
}, /*#__PURE__*/React__default["default"].createElement(components.Button, {
|
|
457
669
|
className: classNames__default["default"]([_defineProperty__default["default"]({}, buttonClassName, buttonClassName !== null)]),
|
|
458
670
|
onClick: onShareIconClick,
|
|
@@ -472,7 +684,7 @@ var ShareButton = function ShareButton(_ref) {
|
|
|
472
684
|
}),
|
|
473
685
|
focusable: focusable
|
|
474
686
|
}, children), /*#__PURE__*/React__default["default"].createElement(ShareModal, {
|
|
475
|
-
className: styles.shareModal,
|
|
687
|
+
className: styles$1.shareModal,
|
|
476
688
|
opened: storyShareModalOpened,
|
|
477
689
|
title: title,
|
|
478
690
|
url: url,
|
|
@@ -481,16 +693,16 @@ var ShareButton = function ShareButton(_ref) {
|
|
|
481
693
|
}));
|
|
482
694
|
};
|
|
483
695
|
|
|
484
|
-
ShareButton.propTypes = propTypes$
|
|
485
|
-
ShareButton.defaultProps = defaultProps$
|
|
696
|
+
ShareButton.propTypes = propTypes$6;
|
|
697
|
+
ShareButton.defaultProps = defaultProps$6;
|
|
486
698
|
|
|
487
|
-
var propTypes$
|
|
488
|
-
viewerTheme: core.PropTypes.viewerTheme,
|
|
489
|
-
|
|
699
|
+
var propTypes$5 = {
|
|
700
|
+
viewerTheme: core$1.PropTypes.viewerTheme,
|
|
701
|
+
screenSize: core$1.PropTypes.screenSize,
|
|
702
|
+
menuWidth: PropTypes__default["default"].number,
|
|
490
703
|
title: PropTypes__default["default"].string,
|
|
491
704
|
shareUrl: PropTypes__default["default"].string,
|
|
492
|
-
items: core.PropTypes.menuItems,
|
|
493
|
-
current: PropTypes__default["default"].number,
|
|
705
|
+
items: core$1.PropTypes.menuItems,
|
|
494
706
|
focusable: PropTypes__default["default"].bool,
|
|
495
707
|
onClickItem: PropTypes__default["default"].func,
|
|
496
708
|
onClose: PropTypes__default["default"].func,
|
|
@@ -501,13 +713,13 @@ var propTypes$3 = {
|
|
|
501
713
|
fullscreenEnabled: PropTypes__default["default"].bool,
|
|
502
714
|
className: PropTypes__default["default"].string
|
|
503
715
|
};
|
|
504
|
-
var defaultProps$
|
|
716
|
+
var defaultProps$5 = {
|
|
505
717
|
viewerTheme: null,
|
|
506
|
-
|
|
718
|
+
screenSize: null,
|
|
719
|
+
menuWidth: null,
|
|
507
720
|
title: null,
|
|
508
721
|
shareUrl: null,
|
|
509
722
|
items: [],
|
|
510
|
-
current: 0,
|
|
511
723
|
focusable: true,
|
|
512
724
|
onClickItem: null,
|
|
513
725
|
onClose: null,
|
|
@@ -521,11 +733,11 @@ var defaultProps$3 = {
|
|
|
521
733
|
|
|
522
734
|
var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
523
735
|
var viewerTheme = _ref.viewerTheme,
|
|
524
|
-
|
|
736
|
+
screenSize = _ref.screenSize,
|
|
737
|
+
menuWidth = _ref.menuWidth,
|
|
525
738
|
title = _ref.title,
|
|
526
739
|
shareUrl = _ref.shareUrl,
|
|
527
740
|
items = _ref.items,
|
|
528
|
-
current = _ref.current,
|
|
529
741
|
focusable = _ref.focusable,
|
|
530
742
|
onClickItem = _ref.onClickItem,
|
|
531
743
|
onClose = _ref.onClose,
|
|
@@ -536,82 +748,74 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
|
536
748
|
fullscreenEnabled = _ref.fullscreenEnabled,
|
|
537
749
|
className = _ref.className;
|
|
538
750
|
var intl = reactIntl.useIntl();
|
|
539
|
-
var screenSizeRatio = "".concat(3 / 2 / thumbsPerLine * 100, "%");
|
|
540
|
-
var screenRatioHeight = screenWidth * 3 / 2;
|
|
541
|
-
var hasSize = screenWidth > 0;
|
|
542
|
-
var hasItems = items !== null && items.length > 0;
|
|
543
|
-
|
|
544
|
-
var _useState = React.useState(null),
|
|
545
|
-
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
546
|
-
thumbSize = _useState2[0],
|
|
547
|
-
setThumbSize = _useState2[1];
|
|
548
|
-
|
|
549
|
-
var firstScreenContainerRef = React.useRef(null);
|
|
550
|
-
React.useEffect(function () {
|
|
551
|
-
if (hasItems && hasSize && firstScreenContainerRef.current !== null) {
|
|
552
|
-
var _firstScreenContainer = firstScreenContainerRef.current,
|
|
553
|
-
offsetWidth = _firstScreenContainer.offsetWidth,
|
|
554
|
-
offsetHeight = _firstScreenContainer.offsetHeight;
|
|
555
|
-
setThumbSize({
|
|
556
|
-
width: offsetWidth,
|
|
557
|
-
height: offsetHeight
|
|
558
|
-
});
|
|
559
|
-
}
|
|
560
|
-
}, [screenWidth, hasItems, hasSize]); // Viewer theme
|
|
561
|
-
|
|
562
|
-
var _ref2 = viewerTheme || {},
|
|
563
|
-
_ref2$colors = _ref2.colors,
|
|
564
|
-
colors = _ref2$colors === void 0 ? null : _ref2$colors,
|
|
565
|
-
_ref2$background = _ref2.background,
|
|
566
|
-
background = _ref2$background === void 0 ? null : _ref2$background,
|
|
567
|
-
_ref2$textStyles = _ref2.textStyles,
|
|
568
|
-
textStyles = _ref2$textStyles === void 0 ? null : _ref2$textStyles,
|
|
569
|
-
_ref2$logo = _ref2.logo,
|
|
570
|
-
brandLogo = _ref2$logo === void 0 ? null : _ref2$logo;
|
|
571
|
-
|
|
572
|
-
var _ref3 = textStyles || {},
|
|
573
|
-
_ref3$title = _ref3.title,
|
|
574
|
-
brandTextStyle = _ref3$title === void 0 ? null : _ref3$title;
|
|
575
751
|
|
|
576
|
-
var
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
_ref4$secondary = _ref4.secondary,
|
|
580
|
-
brandSecondaryColor = _ref4$secondary === void 0 ? null : _ref4$secondary;
|
|
752
|
+
var _ref2 = screenSize || {},
|
|
753
|
+
screenWidth = _ref2.width,
|
|
754
|
+
screenHeight = _ref2.height;
|
|
581
755
|
|
|
582
|
-
var
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
756
|
+
var _useResizeObserver = hooks.useResizeObserver(),
|
|
757
|
+
firstScreenContainerRef = _useResizeObserver.ref,
|
|
758
|
+
firstScreenContentRect = _useResizeObserver.entry.contentRect;
|
|
759
|
+
|
|
760
|
+
var _ref3 = firstScreenContentRect || {},
|
|
761
|
+
_ref3$width = _ref3.width,
|
|
762
|
+
thumbWidth = _ref3$width === void 0 ? 0 : _ref3$width;
|
|
763
|
+
|
|
764
|
+
var screenScale = thumbWidth / screenWidth; // Viewer theme
|
|
765
|
+
|
|
766
|
+
var _ref4 = viewerTheme || {},
|
|
767
|
+
_ref4$colors = _ref4.colors,
|
|
768
|
+
colors = _ref4$colors === void 0 ? null : _ref4$colors,
|
|
769
|
+
_ref4$background = _ref4.background,
|
|
770
|
+
background = _ref4$background === void 0 ? null : _ref4$background,
|
|
771
|
+
_ref4$textStyles = _ref4.textStyles,
|
|
772
|
+
textStyles = _ref4$textStyles === void 0 ? null : _ref4$textStyles,
|
|
773
|
+
_ref4$logo = _ref4.logo,
|
|
774
|
+
brandLogo = _ref4$logo === void 0 ? null : _ref4$logo;
|
|
775
|
+
|
|
776
|
+
var _ref5 = textStyles || {},
|
|
777
|
+
_ref5$title = _ref5.title,
|
|
778
|
+
brandTextStyle = _ref5$title === void 0 ? null : _ref5$title;
|
|
779
|
+
|
|
780
|
+
var _ref6 = colors || {},
|
|
781
|
+
_ref6$primary = _ref6.primary,
|
|
782
|
+
brandPrimaryColor = _ref6$primary === void 0 ? null : _ref6$primary,
|
|
783
|
+
_ref6$secondary = _ref6.secondary,
|
|
784
|
+
brandSecondaryColor = _ref6$secondary === void 0 ? null : _ref6$secondary;
|
|
785
|
+
|
|
786
|
+
var _ref7 = background || {},
|
|
787
|
+
_ref7$color = _ref7.color,
|
|
788
|
+
brandBackgroundColor = _ref7$color === void 0 ? null : _ref7$color,
|
|
789
|
+
_ref7$image = _ref7.image,
|
|
790
|
+
image = _ref7$image === void 0 ? null : _ref7$image;
|
|
791
|
+
|
|
792
|
+
var _ref8 = image || {},
|
|
793
|
+
_ref8$url = _ref8.url,
|
|
794
|
+
brandImageUrl = _ref8$url === void 0 ? null : _ref8$url;
|
|
591
795
|
|
|
592
796
|
var borderPrimaryColorStyle = utils.getStyleFromColor(brandPrimaryColor, 'borderColor');
|
|
593
797
|
var colorSecondaryColorStyle = utils.getStyleFromColor(brandSecondaryColor, 'color');
|
|
594
798
|
var backgroundColorStyle = utils.getStyleFromColor(brandBackgroundColor, 'backgroundColor');
|
|
595
799
|
|
|
596
|
-
var
|
|
597
|
-
|
|
598
|
-
brandLogoUrl =
|
|
800
|
+
var _ref9 = brandLogo || {},
|
|
801
|
+
_ref9$url = _ref9.url,
|
|
802
|
+
brandLogoUrl = _ref9$url === void 0 ? null : _ref9$url;
|
|
599
803
|
|
|
600
804
|
var brandImageStyle = brandImageUrl !== null ? {
|
|
601
805
|
backgroundImage: "url(".concat(brandImageUrl, ")")
|
|
602
806
|
} : null;
|
|
603
807
|
var titleStyle = brandTextStyle !== null ? utils.getStyleFromText(brandTextStyle) : null;
|
|
604
808
|
|
|
605
|
-
var
|
|
606
|
-
|
|
607
|
-
scrolledBottom =
|
|
608
|
-
setScrolledBottom =
|
|
809
|
+
var _useState = React.useState(false),
|
|
810
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
811
|
+
scrolledBottom = _useState2[0],
|
|
812
|
+
setScrolledBottom = _useState2[1];
|
|
609
813
|
|
|
610
|
-
var dragBind = react.useDrag(function (
|
|
611
|
-
var
|
|
612
|
-
dy =
|
|
613
|
-
last =
|
|
614
|
-
tap =
|
|
814
|
+
var dragBind = react.useDrag(function (_ref10) {
|
|
815
|
+
var _ref10$direction = _slicedToArray__default["default"](_ref10.direction, 2),
|
|
816
|
+
dy = _ref10$direction[1],
|
|
817
|
+
last = _ref10.last,
|
|
818
|
+
tap = _ref10.tap;
|
|
615
819
|
|
|
616
820
|
if (!tap && last && scrolledBottom && dy < 0 && onClose !== null) {
|
|
617
821
|
onClose();
|
|
@@ -628,37 +832,37 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
|
628
832
|
var onScrolledNotBottom = React.useCallback(function () {
|
|
629
833
|
setScrolledBottom(false);
|
|
630
834
|
}, [setScrolledBottom]);
|
|
631
|
-
return
|
|
632
|
-
className: classNames__default["default"]([styles$
|
|
835
|
+
return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
|
836
|
+
className: classNames__default["default"]([styles$3.container, _defineProperty__default["default"]({}, className, className !== null)]),
|
|
633
837
|
style: _objectSpread__default["default"](_objectSpread__default["default"](_objectSpread__default["default"]({}, backgroundColorStyle), brandImageStyle), {}, {
|
|
634
|
-
width:
|
|
838
|
+
width: menuWidth
|
|
635
839
|
}),
|
|
636
840
|
"aria-hidden": focusable ? null : 'true'
|
|
637
841
|
}, dragBind()), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
638
|
-
className: styles$
|
|
842
|
+
className: styles$3.header
|
|
639
843
|
}, brandLogoUrl !== null ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
640
|
-
className: styles$
|
|
844
|
+
className: styles$3.organisation,
|
|
641
845
|
style: {
|
|
642
846
|
backgroundImage: "url(".concat(brandLogoUrl, ")")
|
|
643
847
|
}
|
|
644
848
|
}) : null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
645
|
-
className: styles$
|
|
849
|
+
className: styles$3.title,
|
|
646
850
|
style: titleStyle
|
|
647
851
|
}, title), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
648
|
-
className: styles$
|
|
852
|
+
className: styles$3.buttons,
|
|
649
853
|
style: colorSecondaryColorStyle
|
|
650
854
|
}, /*#__PURE__*/React__default["default"].createElement(ShareButton, {
|
|
651
|
-
className: styles$
|
|
652
|
-
buttonClassName: styles$
|
|
855
|
+
className: styles$3.shareButton,
|
|
856
|
+
buttonClassName: styles$3.button,
|
|
653
857
|
onShare: onShare,
|
|
654
858
|
url: shareUrl,
|
|
655
859
|
title: title,
|
|
656
860
|
focusable: focusable
|
|
657
861
|
}, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
|
|
658
|
-
className: styles$
|
|
862
|
+
className: styles$3.icon,
|
|
659
863
|
icon: freeSolidSvgIcons.faShare
|
|
660
864
|
})), fullscreenEnabled ? /*#__PURE__*/React__default["default"].createElement(components.Button, {
|
|
661
|
-
className: styles$
|
|
865
|
+
className: styles$3.button,
|
|
662
866
|
onClick: toggleFullscreen,
|
|
663
867
|
title: intl.formatMessage({
|
|
664
868
|
id: "AuxqcG",
|
|
@@ -676,10 +880,10 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
|
676
880
|
}),
|
|
677
881
|
focusable: focusable
|
|
678
882
|
}, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
|
|
679
|
-
className: styles$
|
|
883
|
+
className: styles$3.icon,
|
|
680
884
|
icon: fullscreenActive ? freeSolidSvgIcons.faCompress : freeSolidSvgIcons.faExpand
|
|
681
885
|
})) : null, /*#__PURE__*/React__default["default"].createElement(components.Button, {
|
|
682
|
-
className: styles$
|
|
886
|
+
className: styles$3.button,
|
|
683
887
|
onClick: onClose,
|
|
684
888
|
title: intl.formatMessage({
|
|
685
889
|
id: "dj/p/q",
|
|
@@ -697,20 +901,23 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
|
697
901
|
}),
|
|
698
902
|
focusable: focusable
|
|
699
903
|
}, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
|
|
700
|
-
className: styles$
|
|
904
|
+
className: styles$3.icon,
|
|
701
905
|
icon: freeSolidSvgIcons.faTimes
|
|
702
906
|
})))), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
703
|
-
className: styles$
|
|
907
|
+
className: styles$3.content
|
|
704
908
|
}, /*#__PURE__*/React__default["default"].createElement(Scroll__default["default"], {
|
|
705
|
-
className: styles$
|
|
909
|
+
className: styles$3.scroll,
|
|
706
910
|
onScrolledBottom: onScrolledBottom,
|
|
707
911
|
onScrolledNotBottom: onScrolledNotBottom
|
|
708
912
|
}, /*#__PURE__*/React__default["default"].createElement("nav", {
|
|
709
|
-
className: styles$
|
|
913
|
+
className: styles$3.nav
|
|
710
914
|
}, /*#__PURE__*/React__default["default"].createElement("ul", {
|
|
711
|
-
className: styles$
|
|
915
|
+
className: styles$3.items
|
|
712
916
|
}, items.map(function (item, index) {
|
|
713
|
-
var
|
|
917
|
+
var _item$current = item.current,
|
|
918
|
+
current = _item$current === void 0 ? false : _item$current,
|
|
919
|
+
screen = item.screen;
|
|
920
|
+
var screenAriaLabel = "".concat(intl.formatMessage({
|
|
714
921
|
id: "LkVfwW",
|
|
715
922
|
defaultMessage: [{
|
|
716
923
|
"type": 0,
|
|
@@ -721,112 +928,453 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
|
721
928
|
}]
|
|
722
929
|
}, {
|
|
723
930
|
index: index + 1
|
|
724
|
-
})
|
|
725
|
-
var isCurrentScreenLabel = current === index ? " ".concat(intl.formatMessage({
|
|
931
|
+
})).concat(current ? " ".concat(intl.formatMessage({
|
|
726
932
|
id: "vmrJ8U",
|
|
727
933
|
defaultMessage: [{
|
|
728
934
|
"type": 0,
|
|
729
935
|
"value": "(current screen)"
|
|
730
936
|
}]
|
|
731
|
-
})) : '';
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
className: classNames__default["default"]([styles$2.item, _defineProperty__default["default"]({}, styles$2.active, current === index)]),
|
|
937
|
+
})) : '');
|
|
938
|
+
return /*#__PURE__*/React__default["default"].createElement("li", {
|
|
939
|
+
className: classNames__default["default"]([styles$3.item, _defineProperty__default["default"]({}, styles$3.active, current)]),
|
|
735
940
|
key: "item-".concat(index),
|
|
736
941
|
style: {
|
|
737
|
-
paddingBottom: screenSizeRatio,
|
|
738
942
|
width: "".concat(100 / thumbsPerLine, "%")
|
|
739
943
|
}
|
|
740
944
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
741
|
-
className: styles$
|
|
945
|
+
className: styles$3.itemContent
|
|
742
946
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
743
|
-
className: styles$
|
|
744
|
-
ref: index === 0 ? firstScreenContainerRef : null
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
947
|
+
className: styles$3.screenContainer,
|
|
948
|
+
ref: index === 0 ? firstScreenContainerRef : null,
|
|
949
|
+
style: {
|
|
950
|
+
height: screenHeight * screenScale
|
|
951
|
+
}
|
|
952
|
+
}, screenWidth > 0 && screenHeight > 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
953
|
+
className: styles$3.screenContent,
|
|
954
|
+
style: {
|
|
748
955
|
width: screenWidth,
|
|
749
|
-
height:
|
|
750
|
-
transform: "scale(".concat(
|
|
751
|
-
}
|
|
956
|
+
height: screenHeight,
|
|
957
|
+
transform: "scale(".concat(screenScale)
|
|
958
|
+
},
|
|
752
959
|
"aria-hidden": "true"
|
|
753
960
|
}, /*#__PURE__*/React__default["default"].createElement(components.ScreenPreview, {
|
|
754
961
|
width: screenWidth,
|
|
755
|
-
height:
|
|
756
|
-
screen:
|
|
962
|
+
height: screenHeight,
|
|
963
|
+
screen: screen,
|
|
757
964
|
focusable: false
|
|
758
|
-
})), current
|
|
759
|
-
className: styles$
|
|
965
|
+
})) : null, current ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
966
|
+
className: styles$3.activeScreenBorder,
|
|
760
967
|
style: borderPrimaryColorStyle
|
|
761
968
|
}) : null)), /*#__PURE__*/React__default["default"].createElement("button", {
|
|
762
969
|
type: "button",
|
|
763
|
-
className: styles$
|
|
970
|
+
className: styles$3.screenButton,
|
|
764
971
|
onClick: function onClick() {
|
|
765
|
-
onClickItem
|
|
972
|
+
if (onClickItem !== null) {
|
|
973
|
+
onClickItem(item);
|
|
974
|
+
}
|
|
766
975
|
},
|
|
767
976
|
"aria-label": screenAriaLabel,
|
|
768
977
|
onKeyUp: function onKeyUp(e) {
|
|
769
|
-
if (e.key === 'Enter') {
|
|
770
|
-
onClickItem(
|
|
978
|
+
if (e.key === 'Enter' && onClickItem !== null) {
|
|
979
|
+
onClickItem(item);
|
|
771
980
|
}
|
|
772
981
|
},
|
|
773
982
|
tabIndex: focusable ? '0' : '-1'
|
|
774
|
-
}))
|
|
775
|
-
}))))))
|
|
983
|
+
}));
|
|
984
|
+
}))))));
|
|
776
985
|
};
|
|
777
986
|
|
|
778
|
-
ViewerMenuPreview.propTypes = propTypes$
|
|
779
|
-
ViewerMenuPreview.defaultProps = defaultProps$
|
|
987
|
+
ViewerMenuPreview.propTypes = propTypes$5;
|
|
988
|
+
ViewerMenuPreview.defaultProps = defaultProps$5;
|
|
780
989
|
|
|
781
|
-
var propTypes$
|
|
782
|
-
story: core.PropTypes.story,
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
screen: PropTypes__default["default"].string,
|
|
789
|
-
deviceScreens: core.PropTypes.deviceScreens,
|
|
790
|
-
renderContext: core.PropTypes.renderContext,
|
|
791
|
-
onScreenChange: PropTypes__default["default"].func,
|
|
792
|
-
tapNextScreenWidthPercent: PropTypes__default["default"].number,
|
|
793
|
-
neighborScreensActive: PropTypes__default["default"].number,
|
|
794
|
-
storyIsParsed: PropTypes__default["default"].bool,
|
|
795
|
-
landscapeScreenMargin: PropTypes__default["default"].number,
|
|
796
|
-
withMetadata: PropTypes__default["default"].bool,
|
|
797
|
-
withoutMenu: PropTypes__default["default"].bool,
|
|
798
|
-
withoutFullscreen: PropTypes__default["default"].bool,
|
|
990
|
+
var propTypes$4 = {
|
|
991
|
+
story: core$1.PropTypes.story.isRequired,
|
|
992
|
+
currentScreenIndex: PropTypes__default["default"].number,
|
|
993
|
+
opened: PropTypes__default["default"].bool,
|
|
994
|
+
toggleFullscreen: PropTypes__default["default"].func,
|
|
995
|
+
fullscreenActive: PropTypes__default["default"].bool,
|
|
996
|
+
fullscreenEnabled: PropTypes__default["default"].bool,
|
|
799
997
|
closeable: PropTypes__default["default"].bool,
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
998
|
+
withShadow: PropTypes__default["default"].bool,
|
|
999
|
+
trackingEnabled: PropTypes__default["default"].bool,
|
|
1000
|
+
shareBasePath: PropTypes__default["default"].string,
|
|
1001
|
+
theme: core$1.PropTypes.viewerTheme,
|
|
1002
|
+
screenSize: core$1.PropTypes.screenSize,
|
|
1003
|
+
menuWidth: PropTypes__default["default"].number,
|
|
1004
|
+
withDotItemClick: PropTypes__default["default"].bool,
|
|
1005
|
+
withoutScreensMenu: PropTypes__default["default"].bool,
|
|
1006
|
+
onRequestOpen: PropTypes__default["default"].func,
|
|
1007
|
+
onRequestClose: PropTypes__default["default"].func,
|
|
1008
|
+
onClickItem: PropTypes__default["default"].func,
|
|
1009
|
+
onClickMenu: PropTypes__default["default"].func,
|
|
1010
|
+
onClickCloseViewer: PropTypes__default["default"].func,
|
|
1011
|
+
refDots: PropTypes__default["default"].shape({
|
|
1012
|
+
current: PropTypes__default["default"].any // eslint-disable-line
|
|
1013
|
+
|
|
1014
|
+
})
|
|
1015
|
+
};
|
|
1016
|
+
var defaultProps$4 = {
|
|
1017
|
+
currentScreenIndex: 0,
|
|
1018
|
+
opened: false,
|
|
1019
|
+
toggleFullscreen: null,
|
|
1020
|
+
fullscreenActive: false,
|
|
1021
|
+
fullscreenEnabled: false,
|
|
1022
|
+
closeable: false,
|
|
1023
|
+
withShadow: false,
|
|
1024
|
+
trackingEnabled: false,
|
|
1025
|
+
shareBasePath: null,
|
|
1026
|
+
theme: null,
|
|
1027
|
+
screenSize: null,
|
|
1028
|
+
menuWidth: null,
|
|
1029
|
+
withDotItemClick: false,
|
|
1030
|
+
withoutScreensMenu: false,
|
|
1031
|
+
onRequestOpen: null,
|
|
1032
|
+
onRequestClose: null,
|
|
1033
|
+
onClickItem: null,
|
|
1034
|
+
onClickMenu: null,
|
|
1035
|
+
onClickCloseViewer: null,
|
|
1036
|
+
refDots: null
|
|
1037
|
+
};
|
|
1038
|
+
|
|
1039
|
+
var ViewerMenu = function ViewerMenu(_ref) {
|
|
1040
|
+
var story = _ref.story,
|
|
1041
|
+
currentScreenIndex = _ref.currentScreenIndex,
|
|
1042
|
+
opened = _ref.opened,
|
|
1043
|
+
toggleFullscreen = _ref.toggleFullscreen,
|
|
1044
|
+
fullscreenActive = _ref.fullscreenActive,
|
|
1045
|
+
fullscreenEnabled = _ref.fullscreenEnabled,
|
|
1046
|
+
closeable = _ref.closeable,
|
|
1047
|
+
withShadow = _ref.withShadow,
|
|
1048
|
+
shareBasePath = _ref.shareBasePath,
|
|
1049
|
+
trackingEnabled = _ref.trackingEnabled,
|
|
1050
|
+
viewerTheme = _ref.theme,
|
|
1051
|
+
screenSize = _ref.screenSize,
|
|
1052
|
+
menuWidth = _ref.menuWidth,
|
|
1053
|
+
withDotItemClick = _ref.withDotItemClick,
|
|
1054
|
+
withoutScreensMenu = _ref.withoutScreensMenu,
|
|
1055
|
+
onRequestOpen = _ref.onRequestOpen,
|
|
1056
|
+
onRequestClose = _ref.onRequestClose,
|
|
1057
|
+
customOnClickItem = _ref.onClickItem,
|
|
1058
|
+
customOnClickMenu = _ref.onClickMenu,
|
|
1059
|
+
onClickCloseViewer = _ref.onClickCloseViewer,
|
|
1060
|
+
refDots = _ref.refDots;
|
|
1061
|
+
var _story$components = story.components,
|
|
1062
|
+
screens = _story$components === void 0 ? [] : _story$components,
|
|
1063
|
+
_story$title = story.title,
|
|
1064
|
+
title = _story$title === void 0 ? null : _story$title;
|
|
1065
|
+
var currentScreen = screens !== null ? screens[currentScreenIndex] || null : null;
|
|
1066
|
+
|
|
1067
|
+
var _ref2 = currentScreen || {},
|
|
1068
|
+
_ref2$id = _ref2.id,
|
|
1069
|
+
screenId = _ref2$id === void 0 ? null : _ref2$id,
|
|
1070
|
+
_ref2$type = _ref2.type,
|
|
1071
|
+
screenType = _ref2$type === void 0 ? null : _ref2$type;
|
|
1072
|
+
|
|
1073
|
+
var items = React.useMemo(function () {
|
|
1074
|
+
return screens.filter(function (_ref3) {
|
|
1075
|
+
var _ref3$parentId = _ref3.parentId,
|
|
1076
|
+
parentId = _ref3$parentId === void 0 ? null : _ref3$parentId;
|
|
1077
|
+
return parentId === null;
|
|
1078
|
+
}).map(function (it) {
|
|
1079
|
+
return {
|
|
1080
|
+
screen: it,
|
|
1081
|
+
screenId: it.id,
|
|
1082
|
+
current: screenId === it.id
|
|
1083
|
+
};
|
|
1084
|
+
});
|
|
1085
|
+
}, [screens, screenId]);
|
|
1086
|
+
var trackEvent = hooks.useTrackEvent();
|
|
1087
|
+
var trackScreenEvent = React.useCallback(function (cat, action, label) {
|
|
1088
|
+
if (trackingEnabled) {
|
|
1089
|
+
trackEvent(cat, action, label, {
|
|
1090
|
+
screenId: screenId,
|
|
1091
|
+
screenIndex: currentScreenIndex,
|
|
1092
|
+
screenType: screenType
|
|
1093
|
+
});
|
|
1094
|
+
}
|
|
1095
|
+
}, [trackEvent, screenId, currentScreenIndex, screenType]);
|
|
1096
|
+
var shareUrl = React.useMemo(function () {
|
|
1097
|
+
var origin = typeof window !== 'undefined' ? window.location.origin.replace(/\/+$/, '') : '';
|
|
1098
|
+
var path = shareBasePath !== null ? "".concat(origin).concat(shareBasePath) : origin;
|
|
1099
|
+
return path;
|
|
1100
|
+
}, [shareBasePath]);
|
|
1101
|
+
|
|
1102
|
+
var _useSpring = core.useSpring(function () {
|
|
1103
|
+
return {
|
|
1104
|
+
y: 0,
|
|
1105
|
+
config: _objectSpread__default["default"](_objectSpread__default["default"]({}, core.config.stiff), {}, {
|
|
1106
|
+
clamp: true
|
|
1107
|
+
})
|
|
1108
|
+
};
|
|
1109
|
+
}),
|
|
1110
|
+
_useSpring2 = _slicedToArray__default["default"](_useSpring, 2),
|
|
1111
|
+
menuY = _useSpring2[0].y,
|
|
1112
|
+
setMenuSpring = _useSpring2[1];
|
|
1113
|
+
|
|
1114
|
+
var refOpened = React.useRef(opened);
|
|
1115
|
+
|
|
1116
|
+
if (refOpened.current !== opened) {
|
|
1117
|
+
refOpened.current = opened;
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
React.useEffect(function () {
|
|
1121
|
+
setMenuSpring.start({
|
|
1122
|
+
y: opened ? 1 : 0
|
|
1123
|
+
});
|
|
1124
|
+
}, [opened]);
|
|
1125
|
+
|
|
1126
|
+
var _useResizeObserver = hooks.useResizeObserver(),
|
|
1127
|
+
menuPreviewContainerRef = _useResizeObserver.ref,
|
|
1128
|
+
menuPreviewContainerRect = _useResizeObserver.entry.contentRect;
|
|
1129
|
+
|
|
1130
|
+
var _ref4 = menuPreviewContainerRect || {},
|
|
1131
|
+
_ref4$height = _ref4.height,
|
|
1132
|
+
menuPreviewContainerHeight = _ref4$height === void 0 ? 0 : _ref4$height;
|
|
1133
|
+
|
|
1134
|
+
var menuPreviewStyle = {
|
|
1135
|
+
transform: menuY.to(function (y) {
|
|
1136
|
+
return "translateY(".concat(y * menuPreviewContainerHeight, "px)");
|
|
1137
|
+
})
|
|
1138
|
+
};
|
|
1139
|
+
var menuDragBind = react.useDrag(function (_ref5) {
|
|
1140
|
+
var _ref5$movement = _slicedToArray__default["default"](_ref5.movement, 2),
|
|
1141
|
+
my = _ref5$movement[1],
|
|
1142
|
+
first = _ref5.first,
|
|
1143
|
+
last = _ref5.last,
|
|
1144
|
+
_ref5$direction = _slicedToArray__default["default"](_ref5.direction, 2),
|
|
1145
|
+
dy = _ref5$direction[1],
|
|
1146
|
+
cancel = _ref5.cancel,
|
|
1147
|
+
canceled = _ref5.canceled,
|
|
1148
|
+
tap = _ref5.tap;
|
|
1149
|
+
|
|
1150
|
+
if (canceled || tap) {
|
|
1151
|
+
return;
|
|
1152
|
+
}
|
|
1153
|
+
|
|
1154
|
+
var isMenuOpened = refOpened.current;
|
|
1155
|
+
|
|
1156
|
+
if (first) {
|
|
1157
|
+
if (isMenuOpened) {
|
|
1158
|
+
cancel();
|
|
1159
|
+
return;
|
|
1160
|
+
}
|
|
1161
|
+
}
|
|
1162
|
+
|
|
1163
|
+
var yProgress = Math.max(0, Math.min(1, my / menuPreviewContainerHeight + (isMenuOpened ? 1 : 0)));
|
|
1164
|
+
|
|
1165
|
+
if (last) {
|
|
1166
|
+
var menuNowOpened = dy > 0 && yProgress > 0.1;
|
|
1167
|
+
refOpened.current = menuNowOpened;
|
|
1168
|
+
setMenuSpring.start({
|
|
1169
|
+
y: menuNowOpened ? 1 : 0
|
|
1170
|
+
});
|
|
1171
|
+
|
|
1172
|
+
if (menuNowOpened && onRequestOpen !== null) {
|
|
1173
|
+
onRequestOpen();
|
|
1174
|
+
} else if (!menuNowOpened && onRequestClose !== null) {
|
|
1175
|
+
onRequestClose();
|
|
1176
|
+
}
|
|
1177
|
+
} else {
|
|
1178
|
+
setMenuSpring.start({
|
|
1179
|
+
y: yProgress
|
|
1180
|
+
});
|
|
1181
|
+
}
|
|
1182
|
+
}, {
|
|
1183
|
+
axis: 'y',
|
|
1184
|
+
filterTaps: true
|
|
1185
|
+
}); // handle preview menu item click
|
|
1186
|
+
|
|
1187
|
+
var onClickMenu = React.useCallback(function (index) {
|
|
1188
|
+
if (customOnClickMenu !== null) {
|
|
1189
|
+
customOnClickMenu(index);
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
trackScreenEvent('viewer_menu', 'click_open', 'Menu icon');
|
|
1193
|
+
}, [customOnClickMenu, trackScreenEvent]);
|
|
1194
|
+
var onClickItem = React.useCallback(function (item) {
|
|
1195
|
+
if (customOnClickItem !== null) {
|
|
1196
|
+
customOnClickItem(item);
|
|
1197
|
+
}
|
|
1198
|
+
|
|
1199
|
+
var index = items.findIndex(function (_ref6) {
|
|
1200
|
+
var id = _ref6.id;
|
|
1201
|
+
return id === screenId;
|
|
1202
|
+
});
|
|
1203
|
+
trackScreenEvent('viewer_menu', 'click_screen_change', "Screen ".concat(index + 1));
|
|
1204
|
+
}, [customOnClickItem, items, screenId, trackScreenEvent]);
|
|
1205
|
+
var onClickClose = React.useCallback(function () {
|
|
1206
|
+
if (onRequestClose !== null) {
|
|
1207
|
+
onRequestClose();
|
|
1208
|
+
}
|
|
1209
|
+
|
|
1210
|
+
trackScreenEvent('viewer_menu', 'click_close', 'Close icon');
|
|
1211
|
+
}, [onRequestClose, trackScreenEvent]); // Handle preview menu share click
|
|
1212
|
+
|
|
1213
|
+
var onClickShare = React.useCallback(function (type) {
|
|
1214
|
+
return trackScreenEvent('viewer_menu', 'click_share', type);
|
|
1215
|
+
}, [trackScreenEvent]);
|
|
1216
|
+
|
|
1217
|
+
var _ref7 = viewerTheme || {},
|
|
1218
|
+
_ref7$menuTheme = _ref7.menuTheme,
|
|
1219
|
+
menuTheme = _ref7$menuTheme === void 0 ? null : _ref7$menuTheme;
|
|
1220
|
+
|
|
1221
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
|
1222
|
+
className: styles$7.menuDotsContainer,
|
|
1223
|
+
ref: refDots,
|
|
1224
|
+
style: {
|
|
1225
|
+
width: menuWidth
|
|
1226
|
+
}
|
|
1227
|
+
}, menuDragBind()), /*#__PURE__*/React__default["default"].createElement(ViewerMenuDots, Object.assign({}, menuTheme, {
|
|
1228
|
+
direction: "horizontal",
|
|
1229
|
+
withShadow: withShadow,
|
|
1230
|
+
items: items,
|
|
1231
|
+
onClickItem: onClickItem,
|
|
1232
|
+
onClickMenu: onClickMenu,
|
|
1233
|
+
closeable: closeable,
|
|
1234
|
+
withItemClick: withDotItemClick,
|
|
1235
|
+
withoutScreensMenu: withoutScreensMenu,
|
|
1236
|
+
onClose: onClickCloseViewer,
|
|
1237
|
+
className: styles$7.menuDots
|
|
1238
|
+
}))), /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
|
|
1239
|
+
className: styles$7.menuPreviewContainer,
|
|
1240
|
+
style: menuPreviewStyle,
|
|
1241
|
+
ref: menuPreviewContainerRef
|
|
1242
|
+
}, /*#__PURE__*/React__default["default"].createElement(ViewerMenuPreview, {
|
|
1243
|
+
viewerTheme: viewerTheme,
|
|
1244
|
+
title: title,
|
|
1245
|
+
shareUrl: shareUrl,
|
|
1246
|
+
className: styles$7.menuPreview,
|
|
1247
|
+
screenSize: screenSize,
|
|
1248
|
+
menuWidth: menuWidth,
|
|
1249
|
+
focusable: opened,
|
|
1250
|
+
items: items,
|
|
1251
|
+
onClickItem: onClickItem,
|
|
1252
|
+
onClose: onClickClose,
|
|
1253
|
+
onShare: onClickShare,
|
|
1254
|
+
toggleFullscreen: toggleFullscreen,
|
|
1255
|
+
fullscreenActive: fullscreenActive,
|
|
1256
|
+
fullscreenEnabled: fullscreenEnabled
|
|
1257
|
+
})));
|
|
1258
|
+
};
|
|
1259
|
+
|
|
1260
|
+
ViewerMenu.propTypes = propTypes$4;
|
|
1261
|
+
ViewerMenu.defaultProps = defaultProps$4;
|
|
1262
|
+
|
|
1263
|
+
var styles = {"container":"micromag-viewer-screen-container","current":"micromag-viewer-screen-current"};
|
|
1264
|
+
|
|
1265
|
+
var propTypes$3 = {
|
|
1266
|
+
screen: core$1.PropTypes.screenComponent,
|
|
1267
|
+
renderContext: core$1.PropTypes.renderContext,
|
|
1268
|
+
screenState: PropTypes__default["default"].string,
|
|
1269
|
+
current: PropTypes__default["default"].bool,
|
|
1270
|
+
active: PropTypes__default["default"].bool,
|
|
1271
|
+
onPrevious: PropTypes__default["default"].func,
|
|
1272
|
+
onNext: PropTypes__default["default"].func,
|
|
1273
|
+
onEnableInteraction: PropTypes__default["default"].func,
|
|
1274
|
+
onDisableInteraction: PropTypes__default["default"].func,
|
|
1275
|
+
getMediaRef: PropTypes__default["default"].func
|
|
1276
|
+
};
|
|
1277
|
+
var defaultProps$3 = {
|
|
1278
|
+
screen: null,
|
|
1279
|
+
renderContext: null,
|
|
1280
|
+
screenState: null,
|
|
1281
|
+
current: false,
|
|
1282
|
+
active: true,
|
|
1283
|
+
onPrevious: null,
|
|
1284
|
+
onNext: null,
|
|
1285
|
+
onEnableInteraction: null,
|
|
1286
|
+
onDisableInteraction: null,
|
|
1287
|
+
getMediaRef: null
|
|
1288
|
+
};
|
|
1289
|
+
|
|
1290
|
+
var ViewerScreen = function ViewerScreen(_ref) {
|
|
1291
|
+
var _ref2;
|
|
1292
|
+
|
|
1293
|
+
var screen = _ref.screen,
|
|
1294
|
+
renderContext = _ref.renderContext,
|
|
1295
|
+
screenState = _ref.screenState,
|
|
1296
|
+
active = _ref.active,
|
|
1297
|
+
current = _ref.current,
|
|
1298
|
+
onPrevious = _ref.onPrevious,
|
|
1299
|
+
onNext = _ref.onNext,
|
|
1300
|
+
onEnableInteraction = _ref.onEnableInteraction,
|
|
1301
|
+
onDisableInteraction = _ref.onDisableInteraction,
|
|
1302
|
+
getMediaRef = _ref.getMediaRef;
|
|
1303
|
+
return screen !== null ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1304
|
+
className: classNames__default["default"]([styles.container, (_ref2 = {}, _defineProperty__default["default"](_ref2, styles.active, active), _defineProperty__default["default"](_ref2, styles.current, current), _ref2)]),
|
|
1305
|
+
"aria-hidden": current ? null : 'true'
|
|
1306
|
+
}, /*#__PURE__*/React__default["default"].createElement(components.Screen, {
|
|
1307
|
+
screen: screen,
|
|
1308
|
+
renderContext: renderContext,
|
|
1309
|
+
screenState: screenState,
|
|
1310
|
+
active: active,
|
|
1311
|
+
current: current,
|
|
1312
|
+
onPrevious: onPrevious,
|
|
1313
|
+
onNext: onNext,
|
|
1314
|
+
onEnableInteraction: onEnableInteraction,
|
|
1315
|
+
onDisableInteraction: onDisableInteraction,
|
|
1316
|
+
getMediaRef: getMediaRef
|
|
1317
|
+
})) : null;
|
|
1318
|
+
};
|
|
1319
|
+
|
|
1320
|
+
ViewerScreen.propTypes = propTypes$3;
|
|
1321
|
+
ViewerScreen.defaultProps = defaultProps$3;
|
|
1322
|
+
|
|
1323
|
+
var propTypes$2 = {
|
|
1324
|
+
story: core$1.PropTypes.story,
|
|
1325
|
+
// .isRequired,
|
|
1326
|
+
basePath: PropTypes__default["default"].string,
|
|
1327
|
+
theme: core$1.PropTypes.viewerTheme,
|
|
1328
|
+
width: PropTypes__default["default"].number,
|
|
1329
|
+
height: PropTypes__default["default"].number,
|
|
1330
|
+
screen: PropTypes__default["default"].string,
|
|
1331
|
+
screenState: PropTypes__default["default"].string,
|
|
1332
|
+
deviceScreens: core$1.PropTypes.deviceScreens,
|
|
1333
|
+
renderContext: core$1.PropTypes.renderContext,
|
|
1334
|
+
onScreenChange: PropTypes__default["default"].func,
|
|
1335
|
+
tapNextScreenWidthPercent: PropTypes__default["default"].number,
|
|
1336
|
+
neighborScreensActive: PropTypes__default["default"].number,
|
|
1337
|
+
storyIsParsed: PropTypes__default["default"].bool,
|
|
1338
|
+
landscapeScreenMargin: PropTypes__default["default"].number,
|
|
1339
|
+
withMetadata: PropTypes__default["default"].bool,
|
|
1340
|
+
withoutMenu: PropTypes__default["default"].bool,
|
|
1341
|
+
withoutScreensMenu: PropTypes__default["default"].bool,
|
|
1342
|
+
withoutFullscreen: PropTypes__default["default"].bool,
|
|
1343
|
+
withLandscapeSiblingsScreens: PropTypes__default["default"].bool,
|
|
1344
|
+
closeable: PropTypes__default["default"].bool,
|
|
1345
|
+
onClose: PropTypes__default["default"].func,
|
|
1346
|
+
onInteraction: PropTypes__default["default"].func,
|
|
1347
|
+
onEnd: PropTypes__default["default"].func,
|
|
1348
|
+
onViewModeChange: PropTypes__default["default"].func,
|
|
1349
|
+
currentScreenMedia: core$1.PropTypes.ref,
|
|
1350
|
+
screensMedias: core$1.PropTypes.ref,
|
|
1351
|
+
screenSizeOptions: PropTypes__default["default"].shape({
|
|
1352
|
+
withoutMaxSize: PropTypes__default["default"].bool,
|
|
1353
|
+
desktopHeightRatio: PropTypes__default["default"].number,
|
|
1354
|
+
screenRatio: PropTypes__default["default"].number
|
|
1355
|
+
}),
|
|
1356
|
+
className: PropTypes__default["default"].string
|
|
1357
|
+
};
|
|
1358
|
+
var defaultProps$2 = {
|
|
814
1359
|
story: null,
|
|
815
1360
|
theme: null,
|
|
816
1361
|
basePath: null,
|
|
817
1362
|
width: null,
|
|
818
1363
|
height: null,
|
|
819
1364
|
screen: null,
|
|
1365
|
+
screenState: null,
|
|
820
1366
|
deviceScreens: utils.getDeviceScreens(),
|
|
821
1367
|
renderContext: 'view',
|
|
822
1368
|
onScreenChange: null,
|
|
823
|
-
tapNextScreenWidthPercent: 0.
|
|
1369
|
+
tapNextScreenWidthPercent: 0.8,
|
|
824
1370
|
neighborScreensActive: 2,
|
|
825
1371
|
storyIsParsed: false,
|
|
826
|
-
landscapeScreenMargin:
|
|
1372
|
+
landscapeScreenMargin: 20,
|
|
827
1373
|
withMetadata: false,
|
|
828
1374
|
withoutMenu: false,
|
|
1375
|
+
withoutScreensMenu: false,
|
|
829
1376
|
withoutFullscreen: false,
|
|
1377
|
+
withLandscapeSiblingsScreens: false,
|
|
830
1378
|
closeable: false,
|
|
831
1379
|
onClose: null,
|
|
832
1380
|
onInteraction: null,
|
|
@@ -839,7 +1387,7 @@ var defaultProps$2 = {
|
|
|
839
1387
|
};
|
|
840
1388
|
|
|
841
1389
|
var Viewer = function Viewer(_ref) {
|
|
842
|
-
var
|
|
1390
|
+
var _ref12;
|
|
843
1391
|
|
|
844
1392
|
var story = _ref.story,
|
|
845
1393
|
basePath = _ref.basePath,
|
|
@@ -847,6 +1395,7 @@ var Viewer = function Viewer(_ref) {
|
|
|
847
1395
|
width = _ref.width,
|
|
848
1396
|
height = _ref.height,
|
|
849
1397
|
screenId = _ref.screen,
|
|
1398
|
+
screenState = _ref.screenState,
|
|
850
1399
|
deviceScreens = _ref.deviceScreens,
|
|
851
1400
|
renderContext = _ref.renderContext,
|
|
852
1401
|
onScreenChange = _ref.onScreenChange,
|
|
@@ -855,10 +1404,12 @@ var Viewer = function Viewer(_ref) {
|
|
|
855
1404
|
storyIsParsed = _ref.storyIsParsed,
|
|
856
1405
|
landscapeScreenMargin = _ref.landscapeScreenMargin,
|
|
857
1406
|
withMetadata = _ref.withMetadata,
|
|
858
|
-
withoutMenu = _ref.withoutMenu
|
|
1407
|
+
withoutMenu = _ref.withoutMenu,
|
|
1408
|
+
withoutScreensMenu = _ref.withoutScreensMenu;
|
|
859
1409
|
_ref.withoutFullscreen;
|
|
860
|
-
var
|
|
861
|
-
|
|
1410
|
+
var withLandscapeSiblingsScreens = _ref.withLandscapeSiblingsScreens,
|
|
1411
|
+
closeable = _ref.closeable,
|
|
1412
|
+
onCloseViewer = _ref.onClose,
|
|
862
1413
|
onInteraction = _ref.onInteraction,
|
|
863
1414
|
onEnd = _ref.onEnd,
|
|
864
1415
|
onViewModeChange = _ref.onViewModeChange,
|
|
@@ -877,7 +1428,10 @@ var Viewer = function Viewer(_ref) {
|
|
|
877
1428
|
_parsedStory$metadata = parsedStory.metadata,
|
|
878
1429
|
metadata = _parsedStory$metadata === void 0 ? null : _parsedStory$metadata,
|
|
879
1430
|
_parsedStory$fonts = parsedStory.fonts,
|
|
880
|
-
fonts = _parsedStory$fonts === void 0 ? null : _parsedStory$fonts;
|
|
1431
|
+
fonts = _parsedStory$fonts === void 0 ? null : _parsedStory$fonts;
|
|
1432
|
+
var eventsManager = React.useMemo(function () {
|
|
1433
|
+
return new EventEmitter__default["default"]();
|
|
1434
|
+
}, [parsedStory]); // Viewer Theme
|
|
881
1435
|
|
|
882
1436
|
var _ref2 = viewerTheme || {},
|
|
883
1437
|
textStyles = _ref2.textStyles;
|
|
@@ -901,17 +1455,11 @@ var Viewer = function Viewer(_ref) {
|
|
|
901
1455
|
_useLoadedFonts.loaded; // eslint-disable-line
|
|
902
1456
|
|
|
903
1457
|
|
|
904
|
-
var shareUrl = React.useMemo(function () {
|
|
905
|
-
var origin = typeof window !== 'undefined' ? window.location.origin.replace(/\/+$/, '') : '';
|
|
906
|
-
var path = basePath !== null ? "".concat(origin).concat(basePath) : origin;
|
|
907
|
-
return path;
|
|
908
|
-
}, [basePath]);
|
|
909
1458
|
var isView = renderContext === 'view';
|
|
910
1459
|
var isStatic = renderContext === 'static';
|
|
911
1460
|
var isCapture = renderContext === 'capture';
|
|
912
1461
|
var withoutScreensTransforms = isStatic || isCapture;
|
|
913
1462
|
var trackScreenView = hooks.useTrackScreenView();
|
|
914
|
-
var trackEvent = hooks.useTrackEvent();
|
|
915
1463
|
var contentRef = React.useRef(null); // Get screen size
|
|
916
1464
|
|
|
917
1465
|
var _useScreenSizeFromEle = hooks.useScreenSizeFromElement(_objectSpread__default["default"]({
|
|
@@ -941,30 +1489,12 @@ var Viewer = function Viewer(_ref) {
|
|
|
941
1489
|
landscape: landscape
|
|
942
1490
|
});
|
|
943
1491
|
}
|
|
944
|
-
}, [ready, landscape, onViewModeChange]);
|
|
945
|
-
|
|
946
|
-
var _useResizeObserver = hooks.useResizeObserver(),
|
|
947
|
-
menuDotsContainerRef = _useResizeObserver.ref,
|
|
948
|
-
menuDotsContainerRect = _useResizeObserver.entry.contentRect;
|
|
949
|
-
|
|
950
|
-
var _ref6 = menuDotsContainerRect || {},
|
|
951
|
-
_ref6$height = _ref6.height,
|
|
952
|
-
menuDotsContainerHeight = _ref6$height === void 0 ? 0 : _ref6$height; // Get preview menu height
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
var _useResizeObserver2 = hooks.useResizeObserver(),
|
|
956
|
-
menuPreviewContainerRef = _useResizeObserver2.ref,
|
|
957
|
-
menuPreviewContainerRect = _useResizeObserver2.entry.contentRect;
|
|
958
|
-
|
|
959
|
-
var _ref7 = menuPreviewContainerRect || {},
|
|
960
|
-
_ref7$height = _ref7.height,
|
|
961
|
-
menuPreviewContainerHeight = _ref7$height === void 0 ? 0 : _ref7$height;
|
|
962
|
-
|
|
1492
|
+
}, [ready, landscape, onViewModeChange]);
|
|
963
1493
|
var screensMediasRef = React.useRef([]); // Screen index
|
|
964
1494
|
|
|
965
1495
|
var screenIndex = React.useMemo(function () {
|
|
966
1496
|
return Math.max(0, screens.findIndex(function (it) {
|
|
967
|
-
return
|
|
1497
|
+
return "".concat(it.id) === "".concat(screenId);
|
|
968
1498
|
}));
|
|
969
1499
|
}, [screenId, screens]);
|
|
970
1500
|
|
|
@@ -991,13 +1521,7 @@ var Viewer = function Viewer(_ref) {
|
|
|
991
1521
|
}, [screenIndex, screens, onScreenChange]); // Track screen view
|
|
992
1522
|
|
|
993
1523
|
var trackingEnabled = isView;
|
|
994
|
-
var
|
|
995
|
-
var currentScreen = validIndex ? screens[screenIndex] : null;
|
|
996
|
-
|
|
997
|
-
var _ref8 = currentScreen || {},
|
|
998
|
-
_ref8$type = _ref8.type,
|
|
999
|
-
screenType = _ref8$type === void 0 ? null : _ref8$type;
|
|
1000
|
-
|
|
1524
|
+
var currentScreen = screens[screenIndex] || null;
|
|
1001
1525
|
React.useEffect(function () {
|
|
1002
1526
|
if (trackingEnabled && currentScreen !== null) {
|
|
1003
1527
|
trackScreenView(currentScreen, screenIndex);
|
|
@@ -1014,247 +1538,60 @@ var Viewer = function Viewer(_ref) {
|
|
|
1014
1538
|
currentScreenRef.current.focus();
|
|
1015
1539
|
}, [changeIndex]);
|
|
1016
1540
|
var screensCount = screens.length;
|
|
1017
|
-
|
|
1018
|
-
var _useState = React.useState(screens.map(function () {
|
|
1019
|
-
return true;
|
|
1020
|
-
})),
|
|
1021
|
-
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
1022
|
-
screensInteractionEnabled = _useState2[0],
|
|
1023
|
-
setScreensInteractionEnabled = _useState2[1];
|
|
1024
|
-
|
|
1025
|
-
var currentScreenInteractionEnabled = screensInteractionEnabled[screenIndex];
|
|
1026
|
-
var menuVisible = screensCount === 0 || currentScreenInteractionEnabled;
|
|
1027
|
-
React.useEffect(function () {
|
|
1028
|
-
setScreensInteractionEnabled(_toConsumableArray__default["default"](Array(screensCount).keys()).map(function () {
|
|
1029
|
-
return true;
|
|
1030
|
-
}));
|
|
1031
|
-
}, [screensCount]);
|
|
1032
|
-
var onEnableInteraction = React.useCallback(function () {
|
|
1033
|
-
if (!screensInteractionEnabled[screenIndex]) {
|
|
1034
|
-
var newArray = _toConsumableArray__default["default"](screensInteractionEnabled);
|
|
1035
|
-
|
|
1036
|
-
newArray[screenIndex] = true;
|
|
1037
|
-
setScreensInteractionEnabled(newArray);
|
|
1038
|
-
}
|
|
1039
|
-
}, [screenIndex, screensInteractionEnabled, setScreensInteractionEnabled]);
|
|
1040
|
-
var onDisableInteraction = React.useCallback(function () {
|
|
1041
|
-
if (screensInteractionEnabled[screenIndex]) {
|
|
1042
|
-
var newArray = _toConsumableArray__default["default"](screensInteractionEnabled);
|
|
1043
|
-
|
|
1044
|
-
newArray[screenIndex] = false;
|
|
1045
|
-
setScreensInteractionEnabled(newArray);
|
|
1046
|
-
}
|
|
1047
|
-
}, [screenIndex, screensInteractionEnabled, setScreensInteractionEnabled]); // handle screenClick
|
|
1048
|
-
|
|
1049
1541
|
var onInteractionPrivate = React.useCallback(function () {
|
|
1050
1542
|
if (onInteraction !== null) {
|
|
1051
1543
|
onInteraction();
|
|
1052
1544
|
}
|
|
1053
1545
|
}, [onInteraction]);
|
|
1054
|
-
var onScreenClick = React.useCallback(function (e, index) {
|
|
1055
|
-
onInteractionPrivate();
|
|
1056
|
-
|
|
1057
|
-
var checkClickable = function checkClickable(el) {
|
|
1058
|
-
var maxDistance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
|
|
1059
|
-
var distance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
1060
|
-
|
|
1061
|
-
var _ref9 = el || {},
|
|
1062
|
-
_ref9$tagName = _ref9.tagName,
|
|
1063
|
-
tagName = _ref9$tagName === void 0 ? null : _ref9$tagName,
|
|
1064
|
-
_ref9$parentNode = _ref9.parentNode,
|
|
1065
|
-
parentNode = _ref9$parentNode === void 0 ? null : _ref9$parentNode;
|
|
1066
|
-
|
|
1067
|
-
if (tagName === 'BODY') {
|
|
1068
|
-
return false;
|
|
1069
|
-
}
|
|
1070
|
-
|
|
1071
|
-
var tags = ['BUTTON', 'A', 'INPUT', 'TEXTAREA'];
|
|
1072
|
-
|
|
1073
|
-
if (tags.indexOf(tagName) > -1) {
|
|
1074
|
-
return true;
|
|
1075
|
-
}
|
|
1076
|
-
|
|
1077
|
-
if (distance < maxDistance) {
|
|
1078
|
-
return checkClickable(parentNode, maxDistance, distance + 1);
|
|
1079
|
-
}
|
|
1080
|
-
|
|
1081
|
-
return false;
|
|
1082
|
-
};
|
|
1083
|
-
|
|
1084
|
-
var tappedCurrent = screenIndex === index;
|
|
1085
|
-
|
|
1086
|
-
if (!isView && tappedCurrent || checkClickable(e.target)) {
|
|
1087
|
-
return;
|
|
1088
|
-
}
|
|
1089
|
-
|
|
1090
|
-
var it = screens[screenIndex] || null;
|
|
1091
|
-
var interactionEnabled = screensInteractionEnabled[screenIndex];
|
|
1092
|
-
|
|
1093
|
-
if (it === null || tappedCurrent && !interactionEnabled) {
|
|
1094
|
-
return;
|
|
1095
|
-
}
|
|
1096
|
-
|
|
1097
|
-
var nextIndex = screenIndex;
|
|
1098
|
-
|
|
1099
|
-
var _e$currentTarget$getB = e.currentTarget.getBoundingClientRect(),
|
|
1100
|
-
_e$currentTarget$getB2 = _e$currentTarget$getB.left,
|
|
1101
|
-
contentX = _e$currentTarget$getB2 === void 0 ? 0 : _e$currentTarget$getB2;
|
|
1102
|
-
|
|
1103
|
-
var tapX = e.clientX;
|
|
1104
|
-
var hasTappedLeft = tappedCurrent ? tapX - contentX < screenWidth * (1 - tapNextScreenWidthPercent) : screenIndex > index;
|
|
1105
|
-
|
|
1106
|
-
if (hasTappedLeft) {
|
|
1107
|
-
nextIndex = landscape ? index : Math.max(0, screenIndex - 1);
|
|
1108
|
-
} else {
|
|
1109
|
-
nextIndex = landscape ? index : Math.min(screens.length - 1, screenIndex + 1);
|
|
1110
|
-
var isLastScreen = screenIndex === screens.length - 1;
|
|
1111
1546
|
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
_useState4 = _slicedToArray__default["default"](_useState3, 2),
|
|
1124
|
-
previewMenuOpen = _useState4[0],
|
|
1125
|
-
setPreviewMenuOpen = _useState4[1];
|
|
1126
|
-
|
|
1127
|
-
var _useSpring = core$1.useSpring(function () {
|
|
1128
|
-
return {
|
|
1129
|
-
y: 0,
|
|
1130
|
-
config: _objectSpread__default["default"](_objectSpread__default["default"]({}, core$1.config.stiff), {}, {
|
|
1131
|
-
clamp: true
|
|
1132
|
-
})
|
|
1133
|
-
};
|
|
1547
|
+
var _useScreenInteraction = useScreenInteraction({
|
|
1548
|
+
screens: screens,
|
|
1549
|
+
screenId: screenId,
|
|
1550
|
+
screenWidth: screenWidth,
|
|
1551
|
+
isView: isView,
|
|
1552
|
+
clickOnSiblings: landscape && withLandscapeSiblingsScreens,
|
|
1553
|
+
nextScreenWidthPercent: tapNextScreenWidthPercent,
|
|
1554
|
+
events: eventsManager,
|
|
1555
|
+
onClick: onInteractionPrivate,
|
|
1556
|
+
onEnd: onEnd,
|
|
1557
|
+
onChangeScreen: changeIndex
|
|
1134
1558
|
}),
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
var menuPreviewStyle = {
|
|
1140
|
-
transform: menuY.to(function (y) {
|
|
1141
|
-
return "translateY(".concat(y * menuPreviewContainerHeight, "px)");
|
|
1142
|
-
})
|
|
1143
|
-
};
|
|
1144
|
-
var menuDragBind = react.useDrag(function (_ref10) {
|
|
1145
|
-
var _ref10$movement = _slicedToArray__default["default"](_ref10.movement, 2),
|
|
1146
|
-
my = _ref10$movement[1],
|
|
1147
|
-
first = _ref10.first,
|
|
1148
|
-
last = _ref10.last,
|
|
1149
|
-
_ref10$direction = _slicedToArray__default["default"](_ref10.direction, 2),
|
|
1150
|
-
dy = _ref10$direction[1],
|
|
1151
|
-
cancel = _ref10.cancel,
|
|
1152
|
-
canceled = _ref10.canceled,
|
|
1153
|
-
tap = _ref10.tap;
|
|
1154
|
-
|
|
1155
|
-
if (canceled || tap) {
|
|
1156
|
-
return;
|
|
1157
|
-
}
|
|
1158
|
-
|
|
1159
|
-
var isMenuOpened = menuOpened.current;
|
|
1160
|
-
|
|
1161
|
-
if (first) {
|
|
1162
|
-
if (isMenuOpened) {
|
|
1163
|
-
cancel();
|
|
1164
|
-
return;
|
|
1165
|
-
}
|
|
1166
|
-
}
|
|
1559
|
+
onScreenClick = _useScreenInteraction.onClick,
|
|
1560
|
+
currentScreenInteractionEnabled = _useScreenInteraction.currentScreenInteractionEnabled,
|
|
1561
|
+
enableInteraction = _useScreenInteraction.enableInteraction,
|
|
1562
|
+
disableInteraction = _useScreenInteraction.disableInteraction; // swipe menu open
|
|
1167
1563
|
|
|
1168
|
-
var yProgress = Math.max(0, Math.min(1, my / menuPreviewContainerHeight + (isMenuOpened ? 1 : 0)));
|
|
1169
1564
|
|
|
1170
|
-
|
|
1171
|
-
var menuNowOpened = dy > 0 && yProgress > 0.1;
|
|
1172
|
-
menuOpened.current = menuNowOpened;
|
|
1173
|
-
setMenuSpring.start({
|
|
1174
|
-
y: menuNowOpened ? 1 : 0
|
|
1175
|
-
});
|
|
1176
|
-
setPreviewMenuOpen(menuNowOpened);
|
|
1177
|
-
} else {
|
|
1178
|
-
setMenuSpring.start({
|
|
1179
|
-
y: yProgress
|
|
1180
|
-
});
|
|
1181
|
-
}
|
|
1182
|
-
}, {
|
|
1183
|
-
axis: 'y',
|
|
1184
|
-
filterTaps: true
|
|
1185
|
-
});
|
|
1186
|
-
|
|
1187
|
-
var setPreviewMenu = function setPreviewMenu(opened) {
|
|
1188
|
-
setMenuSpring.start({
|
|
1189
|
-
y: opened ? 1 : 0
|
|
1190
|
-
});
|
|
1191
|
-
menuOpened.current = opened;
|
|
1192
|
-
setPreviewMenuOpen(opened);
|
|
1193
|
-
};
|
|
1194
|
-
|
|
1195
|
-
var openPreviewMenu = React.useCallback(function () {
|
|
1196
|
-
setPreviewMenu(true);
|
|
1197
|
-
}, [setMenuSpring, setPreviewMenuOpen]);
|
|
1198
|
-
var closePreviewMenu = React.useCallback(function () {
|
|
1199
|
-
setPreviewMenu(false);
|
|
1200
|
-
}, [setMenuSpring, setPreviewMenuOpen]); // Handle dot menu item click
|
|
1565
|
+
var menuVisible = screensCount === 0 || currentScreenInteractionEnabled;
|
|
1201
1566
|
|
|
1202
|
-
var
|
|
1567
|
+
var _useState = React.useState(false),
|
|
1568
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
1569
|
+
menuOpened = _useState2[0],
|
|
1570
|
+
setMenuOpened = _useState2[1];
|
|
1571
|
+
|
|
1572
|
+
var onMenuRequestOpen = React.useCallback(function () {
|
|
1573
|
+
return setMenuOpened(true);
|
|
1574
|
+
}, [setMenuOpened]);
|
|
1575
|
+
var onMenuRequestClose = React.useCallback(function () {
|
|
1576
|
+
return setMenuOpened(false);
|
|
1577
|
+
}, [setMenuOpened]);
|
|
1578
|
+
var onClickMenu = React.useCallback(function () {
|
|
1203
1579
|
onInteractionPrivate();
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
if (trackingEnabled) {
|
|
1214
|
-
var trackAction = goToScreen ? 'click_screen_change' : 'click_open';
|
|
1215
|
-
var trackLabel = clickedOnDot ? "Screen ".concat(index + 1) : 'Menu icon';
|
|
1216
|
-
trackEvent('viewer_menu', trackAction, trackLabel, {
|
|
1217
|
-
screenId: screenId,
|
|
1218
|
-
screenType: screenType,
|
|
1219
|
-
screenIndex: index
|
|
1220
|
-
});
|
|
1221
|
-
}
|
|
1222
|
-
}, [changeIndex, landscape, trackingEnabled, trackEvent, screenType, onInteractionPrivate]); // handle preview menu item click
|
|
1223
|
-
|
|
1224
|
-
var onClickPreviewMenuItem = React.useCallback(function (index) {
|
|
1580
|
+
setMenuOpened(true);
|
|
1581
|
+
}, [changeIndex, onInteractionPrivate, setMenuOpened]);
|
|
1582
|
+
var onClickMenuItem = React.useCallback(function (_ref6) {
|
|
1583
|
+
var itemScreenId = _ref6.screenId;
|
|
1584
|
+
onInteractionPrivate();
|
|
1585
|
+
var index = screens.findIndex(function (_ref7) {
|
|
1586
|
+
var id = _ref7.id;
|
|
1587
|
+
return id === itemScreenId;
|
|
1588
|
+
});
|
|
1225
1589
|
changeIndex(index);
|
|
1226
|
-
closePreviewMenu();
|
|
1227
|
-
|
|
1228
|
-
if (trackingEnabled) {
|
|
1229
|
-
trackEvent('viewer_menu', 'click_screen_change', "Screen ".concat(index + 1), {
|
|
1230
|
-
screenId: screenId,
|
|
1231
|
-
screenType: screenType,
|
|
1232
|
-
screenIndex: index
|
|
1233
|
-
});
|
|
1234
|
-
}
|
|
1235
|
-
}, [changeIndex, trackingEnabled, trackEvent, screenId, screenType]); // Handle preview menu close click
|
|
1236
1590
|
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
if (trackingEnabled) {
|
|
1241
|
-
trackEvent('viewer_menu', 'click_close', 'Close icon', {
|
|
1242
|
-
screenId: screenId,
|
|
1243
|
-
screenIndex: screenIndex,
|
|
1244
|
-
screenType: screenType
|
|
1245
|
-
});
|
|
1246
|
-
}
|
|
1247
|
-
}, [closePreviewMenu, trackingEnabled, trackEvent, screenId, screenIndex, screenType]); // Handle preview menu share click
|
|
1248
|
-
|
|
1249
|
-
var onClickShare = React.useCallback(function (type) {
|
|
1250
|
-
if (trackingEnabled) {
|
|
1251
|
-
trackEvent('viewer_menu', 'click_share', type, {
|
|
1252
|
-
screenId: screenId,
|
|
1253
|
-
screenIndex: screenIndex,
|
|
1254
|
-
screenType: screenType
|
|
1255
|
-
});
|
|
1591
|
+
if (menuOpened) {
|
|
1592
|
+
setMenuOpened(false);
|
|
1256
1593
|
}
|
|
1257
|
-
}, [
|
|
1594
|
+
}, [onInteractionPrivate, changeIndex, menuOpened, setMenuOpened]);
|
|
1258
1595
|
var onContextMenu = React.useCallback(function (e) {
|
|
1259
1596
|
if (!landscape) {
|
|
1260
1597
|
e.preventDefault();
|
|
@@ -1273,62 +1610,43 @@ var Viewer = function Viewer(_ref) {
|
|
|
1273
1610
|
fullscreenEnabled = _useFullscreen.enabled; // Keyboard Events
|
|
1274
1611
|
|
|
1275
1612
|
|
|
1276
|
-
React.
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
return
|
|
1280
|
-
},
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
case 'escape':
|
|
1297
|
-
closePreviewMenu();
|
|
1298
|
-
break;
|
|
1299
|
-
|
|
1300
|
-
case 'arrowleft':
|
|
1301
|
-
gotoPreviousScreen();
|
|
1302
|
-
break;
|
|
1303
|
-
|
|
1304
|
-
case 'arrowright':
|
|
1305
|
-
case ' ':
|
|
1306
|
-
// spacebar
|
|
1307
|
-
gotoNextScreen();
|
|
1308
|
-
break;
|
|
1613
|
+
var keyboardShortcuts = React.useMemo(function () {
|
|
1614
|
+
return {
|
|
1615
|
+
f: function f() {
|
|
1616
|
+
return toggleFullscreen();
|
|
1617
|
+
},
|
|
1618
|
+
m: function m() {
|
|
1619
|
+
return setMenuOpened(!menuOpened);
|
|
1620
|
+
},
|
|
1621
|
+
escape: function escape() {
|
|
1622
|
+
return setMenuOpened(false);
|
|
1623
|
+
},
|
|
1624
|
+
arrowleft: function arrowleft() {
|
|
1625
|
+
return gotoPreviousScreen();
|
|
1626
|
+
},
|
|
1627
|
+
arrowright: function arrowright() {
|
|
1628
|
+
return gotoNextScreen();
|
|
1629
|
+
},
|
|
1630
|
+
' ': function _() {
|
|
1631
|
+
return gotoNextScreen();
|
|
1309
1632
|
}
|
|
1310
1633
|
};
|
|
1634
|
+
}, [menuOpened, setMenuOpened, gotoPreviousScreen, gotoNextScreen]);
|
|
1635
|
+
useKeyboardShortcuts(keyboardShortcuts, {
|
|
1636
|
+
disabled: renderContext !== 'view'
|
|
1637
|
+
});
|
|
1311
1638
|
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
}
|
|
1315
|
-
|
|
1316
|
-
return function () {
|
|
1317
|
-
window.removeEventListener('keydown', onKey);
|
|
1318
|
-
};
|
|
1319
|
-
}, [renderContext, closePreviewMenu, gotoPreviousScreen, gotoNextScreen]);
|
|
1320
|
-
|
|
1321
|
-
var _ref11 = currentScreen || {},
|
|
1322
|
-
screenParameters = _ref11.parameters;
|
|
1639
|
+
var _ref8 = currentScreen || {},
|
|
1640
|
+
screenParameters = _ref8.parameters;
|
|
1323
1641
|
|
|
1324
|
-
var
|
|
1325
|
-
screenMetadata =
|
|
1642
|
+
var _ref9 = screenParameters || {},
|
|
1643
|
+
screenMetadata = _ref9.metadata;
|
|
1326
1644
|
|
|
1327
|
-
var
|
|
1328
|
-
|
|
1329
|
-
screenTitle =
|
|
1330
|
-
|
|
1331
|
-
screenDescription =
|
|
1645
|
+
var _ref10 = screenMetadata || {},
|
|
1646
|
+
_ref10$title = _ref10.title,
|
|
1647
|
+
screenTitle = _ref10$title === void 0 ? null : _ref10$title,
|
|
1648
|
+
_ref10$description = _ref10.description,
|
|
1649
|
+
screenDescription = _ref10$description === void 0 ? null : _ref10$description;
|
|
1332
1650
|
|
|
1333
1651
|
var finalTitle = screenTitle !== null ? screenTitle : title;
|
|
1334
1652
|
var finalMetadata = React.useMemo(function () {
|
|
@@ -1337,84 +1655,88 @@ var Viewer = function Viewer(_ref) {
|
|
|
1337
1655
|
}) : metadata;
|
|
1338
1656
|
}, [metadata]);
|
|
1339
1657
|
|
|
1340
|
-
var
|
|
1341
|
-
|
|
1342
|
-
|
|
1658
|
+
var _useResizeObserver = hooks.useResizeObserver(),
|
|
1659
|
+
menuDotsContainerRef = _useResizeObserver.ref,
|
|
1660
|
+
menuDotsContainerRect = _useResizeObserver.entry.contentRect;
|
|
1661
|
+
|
|
1662
|
+
var _ref11 = menuDotsContainerRect || {},
|
|
1663
|
+
_ref11$height = _ref11.height,
|
|
1664
|
+
menuDotsContainerHeight = _ref11$height === void 0 ? 0 : _ref11$height;
|
|
1343
1665
|
|
|
1344
1666
|
return /*#__PURE__*/React__default["default"].createElement(contexts.ScreenSizeProvider, {
|
|
1345
1667
|
size: screenSize
|
|
1346
1668
|
}, /*#__PURE__*/React__default["default"].createElement(contexts.ViewerProvider, {
|
|
1669
|
+
events: eventsManager,
|
|
1347
1670
|
menuVisible: menuVisible,
|
|
1348
1671
|
menuSize: menuDotsContainerHeight,
|
|
1349
1672
|
gotoPreviousScreen: gotoPreviousScreen,
|
|
1350
|
-
gotoNextScreen: gotoNextScreen
|
|
1673
|
+
gotoNextScreen: gotoNextScreen,
|
|
1674
|
+
disableInteraction: disableInteraction,
|
|
1675
|
+
enableInteraction: enableInteraction
|
|
1351
1676
|
}, withMetadata ? /*#__PURE__*/React__default["default"].createElement(components.Meta, {
|
|
1352
1677
|
title: finalTitle,
|
|
1353
1678
|
metadata: finalMetadata
|
|
1354
1679
|
}, overscrollStyle) : /*#__PURE__*/React__default["default"].createElement(reactHelmet.Helmet, null, overscrollStyle), /*#__PURE__*/React__default["default"].createElement(components.FontFaces, {
|
|
1355
1680
|
fonts: finalFonts
|
|
1356
1681
|
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1357
|
-
className: classNames__default["default"]([styles$
|
|
1682
|
+
className: classNames__default["default"]([styles$7.container, screenSize.screens.map(function (screenName) {
|
|
1358
1683
|
return "story-screen-".concat(screenName);
|
|
1359
|
-
}), (
|
|
1684
|
+
}), (_ref12 = {}, _defineProperty__default["default"](_ref12, styles$7.landscape, landscape), _defineProperty__default["default"](_ref12, styles$7.withSibblings, withLandscapeSiblingsScreens), _defineProperty__default["default"](_ref12, styles$7.hideMenu, !menuVisible), _defineProperty__default["default"](_ref12, styles$7.ready, ready || withoutScreensTransforms), _defineProperty__default["default"](_ref12, className, className), _ref12)]),
|
|
1360
1685
|
ref: containerRef,
|
|
1361
1686
|
onContextMenu: onContextMenu
|
|
1362
|
-
}, !withoutMenu ? /*#__PURE__*/React__default["default"].createElement(
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
width: screenWidth
|
|
1367
|
-
}
|
|
1368
|
-
}, menuDragBind()), /*#__PURE__*/React__default["default"].createElement(ViewerMenuDots, Object.assign({}, menuTheme, {
|
|
1369
|
-
direction: "horizontal",
|
|
1687
|
+
}, !withoutMenu ? /*#__PURE__*/React__default["default"].createElement(ViewerMenu, {
|
|
1688
|
+
story: parsedStory,
|
|
1689
|
+
currentScreenIndex: screenIndex,
|
|
1690
|
+
opened: menuOpened,
|
|
1370
1691
|
withShadow: menuOverScreen,
|
|
1371
|
-
items: screens,
|
|
1372
|
-
current: screenIndex,
|
|
1373
|
-
onClickItem: onClickDotsMenuItem,
|
|
1374
|
-
closeable: closeable,
|
|
1375
|
-
onClose: onClose,
|
|
1376
|
-
className: styles$6.menuDots
|
|
1377
|
-
}))), /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
|
|
1378
|
-
className: styles$6.menuPreviewContainer,
|
|
1379
|
-
style: menuPreviewStyle,
|
|
1380
|
-
ref: menuPreviewContainerRef
|
|
1381
|
-
}, /*#__PURE__*/React__default["default"].createElement(ViewerMenuPreview, {
|
|
1382
|
-
viewerTheme: viewerTheme,
|
|
1383
|
-
title: title,
|
|
1384
|
-
shareUrl: shareUrl,
|
|
1385
|
-
className: styles$6.menuPreview,
|
|
1386
|
-
screenWidth: screenWidth,
|
|
1387
|
-
focusable: previewMenuOpen,
|
|
1388
|
-
items: screens,
|
|
1389
|
-
current: screenIndex,
|
|
1390
|
-
onClickItem: onClickPreviewMenuItem,
|
|
1391
|
-
onClose: onClickPreviewMenuClose,
|
|
1392
|
-
onShare: onClickShare,
|
|
1393
1692
|
toggleFullscreen: toggleFullscreen,
|
|
1394
1693
|
fullscreenActive: fullscreenActive,
|
|
1395
|
-
fullscreenEnabled: fullscreenEnabled
|
|
1396
|
-
|
|
1694
|
+
fullscreenEnabled: fullscreenEnabled,
|
|
1695
|
+
closeable: closeable,
|
|
1696
|
+
shareBasePath: basePath,
|
|
1697
|
+
screenSize: screenSize,
|
|
1698
|
+
menuWidth: screenWidth,
|
|
1699
|
+
trackingEnabled: trackingEnabled,
|
|
1700
|
+
onClickItem: onClickMenuItem,
|
|
1701
|
+
onClickMenu: onClickMenu,
|
|
1702
|
+
onClickCloseViewer: onCloseViewer,
|
|
1703
|
+
onRequestOpen: onMenuRequestOpen,
|
|
1704
|
+
onRequestClose: onMenuRequestClose,
|
|
1705
|
+
withDotItemClick: screenWidth > 400,
|
|
1706
|
+
withoutScreensMenu: withoutScreensMenu,
|
|
1707
|
+
refDots: menuDotsContainerRef
|
|
1708
|
+
}) : null, ready || withoutScreensTransforms ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1397
1709
|
ref: contentRef,
|
|
1398
|
-
className: styles$
|
|
1710
|
+
className: styles$7.content
|
|
1399
1711
|
}, screens.map(function (scr, i) {
|
|
1712
|
+
var _ref13;
|
|
1713
|
+
|
|
1400
1714
|
var current = i === screenIndex;
|
|
1401
1715
|
var active = i > screenIndex - neighborScreensActive && i < screenIndex + neighborScreensActive;
|
|
1402
1716
|
var viewerScreen = /*#__PURE__*/React__default["default"].createElement(ViewerScreen, {
|
|
1403
1717
|
screen: scr,
|
|
1718
|
+
screenState: current ? screenState : null,
|
|
1404
1719
|
renderContext: renderContext,
|
|
1405
1720
|
index: i,
|
|
1406
1721
|
current: current,
|
|
1407
1722
|
active: active,
|
|
1408
1723
|
onPrevious: gotoPreviousScreen,
|
|
1409
1724
|
onNext: gotoNextScreen,
|
|
1410
|
-
onEnableInteraction:
|
|
1411
|
-
onDisableInteraction:
|
|
1725
|
+
onEnableInteraction: enableInteraction,
|
|
1726
|
+
onDisableInteraction: disableInteraction,
|
|
1412
1727
|
getMediaRef: function getMediaRef(mediaRef) {
|
|
1413
1728
|
screensMediasRef.current[i] = mediaRef;
|
|
1414
1729
|
}
|
|
1415
1730
|
});
|
|
1416
1731
|
var key = "screen-viewer-".concat(scr.id || '', "-").concat(i + 1);
|
|
1417
|
-
var screenTransform =
|
|
1732
|
+
var screenTransform = null;
|
|
1733
|
+
|
|
1734
|
+
if (landscape) {
|
|
1735
|
+
screenTransform = withLandscapeSiblingsScreens ? "translateX(calc(".concat((screenWidth + landscapeScreenMargin) * (i - screenIndex), "px - 50%)) scale(").concat(current ? 1 : 0.9, ")") : null;
|
|
1736
|
+
} else {
|
|
1737
|
+
screenTransform = "translateX(".concat(current ? 0 : '100%', ")");
|
|
1738
|
+
}
|
|
1739
|
+
|
|
1418
1740
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
|
|
1419
1741
|
key: key
|
|
1420
1742
|
}, current && screenIndex > 0 ? /*#__PURE__*/React__default["default"].createElement("button", {
|
|
@@ -1435,7 +1757,7 @@ var Viewer = function Viewer(_ref) {
|
|
|
1435
1757
|
height: landscape ? screenHeight : null,
|
|
1436
1758
|
transform: !withoutScreensTransforms ? screenTransform : null
|
|
1437
1759
|
},
|
|
1438
|
-
className: classNames__default["default"]([styles$
|
|
1760
|
+
className: classNames__default["default"]([styles$7.screen, (_ref13 = {}, _defineProperty__default["default"](_ref13, styles$7.current, current), _defineProperty__default["default"](_ref13, styles$7.visible, current || withLandscapeSiblingsScreens), _ref13)]),
|
|
1439
1761
|
tabIndex: active ? '0' : '-1'
|
|
1440
1762
|
/* eslint-disable-line */
|
|
1441
1763
|
,
|
|
@@ -1527,23 +1849,17 @@ var ViewerRoutes = function ViewerRoutes(_ref) {
|
|
|
1527
1849
|
ViewerRoutes.propTypes = propTypes$1;
|
|
1528
1850
|
ViewerRoutes.defaultProps = defaultProps$1;
|
|
1529
1851
|
|
|
1530
|
-
var
|
|
1531
|
-
var screen = "/:screen";
|
|
1532
|
-
var defaultRoutes = {
|
|
1533
|
-
home: home,
|
|
1534
|
-
screen: screen
|
|
1535
|
-
};
|
|
1536
|
-
|
|
1537
|
-
var _excluded = ["story", "memoryRouter", "basePath", "routes", "withoutRouter", "googleApiKey", "trackingVariables", "locale", "locales", "translations"];
|
|
1852
|
+
var _excluded = ["story", "screenComponents", "memoryRouter", "basePath", "routes", "withoutRouter", "googleApiKey", "trackingVariables", "locale", "locales", "translations"];
|
|
1538
1853
|
var propTypes = {
|
|
1539
|
-
story: core.PropTypes.story,
|
|
1854
|
+
story: core$1.PropTypes.story,
|
|
1540
1855
|
screen: PropTypes__default["default"].string,
|
|
1856
|
+
screenComponents: PropTypes__default["default"].objectOf(PropTypes__default["default"].elementType),
|
|
1541
1857
|
memoryRouter: PropTypes__default["default"].bool,
|
|
1542
1858
|
basePath: PropTypes__default["default"].string,
|
|
1543
1859
|
routes: routes,
|
|
1544
1860
|
withoutRouter: PropTypes__default["default"].bool,
|
|
1545
1861
|
googleApiKey: PropTypes__default["default"].string,
|
|
1546
|
-
trackingVariables: core.PropTypes.trackingVariables,
|
|
1862
|
+
trackingVariables: core$1.PropTypes.trackingVariables,
|
|
1547
1863
|
locale: PropTypes__default["default"].string,
|
|
1548
1864
|
locales: PropTypes__default["default"].arrayOf(PropTypes__default["default"].string),
|
|
1549
1865
|
translations: PropTypes__default["default"].objectOf(PropTypes__default["default"].string),
|
|
@@ -1552,6 +1868,7 @@ var propTypes = {
|
|
|
1552
1868
|
var defaultProps = {
|
|
1553
1869
|
story: null,
|
|
1554
1870
|
screen: null,
|
|
1871
|
+
screenComponents: null,
|
|
1555
1872
|
memoryRouter: false,
|
|
1556
1873
|
basePath: null,
|
|
1557
1874
|
routes: defaultRoutes,
|
|
@@ -1566,6 +1883,7 @@ var defaultProps = {
|
|
|
1566
1883
|
|
|
1567
1884
|
var ViewerContainer = function ViewerContainer(_ref) {
|
|
1568
1885
|
var story = _ref.story,
|
|
1886
|
+
screenComponents = _ref.screenComponents,
|
|
1569
1887
|
memoryRouter = _ref.memoryRouter,
|
|
1570
1888
|
basePath = _ref.basePath,
|
|
1571
1889
|
routes = _ref.routes,
|
|
@@ -1616,7 +1934,10 @@ var ViewerContainer = function ViewerContainer(_ref) {
|
|
|
1616
1934
|
locale: finalLocale
|
|
1617
1935
|
}, /*#__PURE__*/React__default["default"].createElement(contexts.FieldsProvider, {
|
|
1618
1936
|
manager: fieldsManager__default["default"]
|
|
1619
|
-
}, /*#__PURE__*/React__default["default"].createElement(screens.ScreensProvider, null, /*#__PURE__*/React__default["default"].createElement(contexts.
|
|
1937
|
+
}, /*#__PURE__*/React__default["default"].createElement(screens.ScreensProvider, null, /*#__PURE__*/React__default["default"].createElement(contexts.ComponentsProvider, {
|
|
1938
|
+
namespace: contexts.SCREENS_NAMESPACE,
|
|
1939
|
+
components: screenComponents || {}
|
|
1940
|
+
}, /*#__PURE__*/React__default["default"].createElement(contexts.UserInteractionProvider, null, /*#__PURE__*/React__default["default"].createElement(contexts.TrackingProvider, {
|
|
1620
1941
|
variables: finalTrackingVariables
|
|
1621
1942
|
}, withoutRouter ? /*#__PURE__*/React__default["default"].createElement(Viewer, Object.assign({
|
|
1622
1943
|
story: story,
|
|
@@ -1624,7 +1945,7 @@ var ViewerContainer = function ViewerContainer(_ref) {
|
|
|
1624
1945
|
}, otherProps)) : /*#__PURE__*/React__default["default"].createElement(ViewerRoutes, Object.assign({
|
|
1625
1946
|
story: story,
|
|
1626
1947
|
basePath: basePath
|
|
1627
|
-
}, otherProps)))))))));
|
|
1948
|
+
}, otherProps))))))))));
|
|
1628
1949
|
return withoutRouter ? content : /*#__PURE__*/React__default["default"].createElement(Router, {
|
|
1629
1950
|
basename: !memoryRouter ? basePath : null
|
|
1630
1951
|
}, /*#__PURE__*/React__default["default"].createElement(contexts.RoutesProvider, {
|