@micromag/viewer 0.2.409 → 0.3.0
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 +901 -579
- package/lib/index.js +914 -591
- package/package.json +8 -8
package/lib/index.js
CHANGED
|
@@ -4,63 +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 classNames = require('classnames');
|
|
20
|
+
var reactHelmet = require('react-helmet');
|
|
21
|
+
var reactIntl = require('react-intl');
|
|
19
22
|
var components = require('@micromag/core/components');
|
|
20
23
|
var hooks = require('@micromag/core/hooks');
|
|
21
24
|
var utils = require('@micromag/core/utils');
|
|
22
|
-
var core
|
|
25
|
+
var core = require('@react-spring/core');
|
|
23
26
|
var web = require('@react-spring/web');
|
|
24
27
|
var react = require('@use-gesture/react');
|
|
25
|
-
var classNames = require('classnames');
|
|
26
|
-
var reactHelmet = require('react-helmet');
|
|
27
|
-
var reactIntl = require('react-intl');
|
|
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] : {};
|
|
62
|
+
|
|
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;
|
|
66
|
+
|
|
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 = {
|
|
234
|
+
current: PropTypes__default["default"].bool,
|
|
235
|
+
active: PropTypes__default["default"].bool,
|
|
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
|
|
243
|
+
};
|
|
244
|
+
var defaultProps$a = {
|
|
245
|
+
current: false,
|
|
246
|
+
active: false,
|
|
247
|
+
colors: null,
|
|
248
|
+
vertical: false,
|
|
249
|
+
onClick: null,
|
|
250
|
+
className: null
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
var ViewerMenuDot = function ViewerMenuDot(_ref) {
|
|
254
|
+
var _ref3;
|
|
255
|
+
|
|
256
|
+
var current = _ref.current,
|
|
257
|
+
active = _ref.active,
|
|
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;
|
|
265
|
+
|
|
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
|
|
271
|
+
|
|
272
|
+
|
|
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];
|
|
284
|
+
|
|
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
|
+
};
|
|
52
317
|
|
|
53
|
-
|
|
318
|
+
ViewerMenuDot.propTypes = propTypes$a;
|
|
319
|
+
ViewerMenuDot.defaultProps = defaultProps$a;
|
|
54
320
|
|
|
55
321
|
var styles$4 = {};
|
|
56
322
|
|
|
57
|
-
var propTypes$
|
|
323
|
+
var propTypes$9 = {
|
|
58
324
|
size: PropTypes__default["default"].number,
|
|
59
325
|
spacing: PropTypes__default["default"].number,
|
|
60
326
|
color: PropTypes__default["default"].string,
|
|
61
327
|
className: PropTypes__default["default"].string
|
|
62
328
|
};
|
|
63
|
-
var defaultProps$
|
|
329
|
+
var defaultProps$9 = {
|
|
64
330
|
size: 100,
|
|
65
331
|
spacing: 8,
|
|
66
332
|
color: 'white',
|
|
@@ -92,57 +358,66 @@ var MenuIcon = function MenuIcon(_ref) {
|
|
|
92
358
|
}));
|
|
93
359
|
};
|
|
94
360
|
|
|
95
|
-
MenuIcon.propTypes = propTypes$
|
|
96
|
-
MenuIcon.defaultProps = defaultProps$
|
|
361
|
+
MenuIcon.propTypes = propTypes$9;
|
|
362
|
+
MenuIcon.defaultProps = defaultProps$9;
|
|
97
363
|
|
|
98
|
-
var propTypes$
|
|
364
|
+
var propTypes$8 = {
|
|
99
365
|
direction: PropTypes__default["default"].oneOf(['horizontal', 'vertical']),
|
|
100
366
|
withShadow: PropTypes__default["default"].bool,
|
|
101
|
-
items: core.PropTypes.menuItems,
|
|
102
|
-
current: PropTypes__default["default"].number,
|
|
367
|
+
items: core$1.PropTypes.menuItems,
|
|
103
368
|
onClickItem: PropTypes__default["default"].func,
|
|
369
|
+
onClickMenu: PropTypes__default["default"].func,
|
|
104
370
|
colors: PropTypes__default["default"].shape({
|
|
105
371
|
primary: PropTypes__default["default"].string,
|
|
106
372
|
secondary: PropTypes__default["default"].string
|
|
107
373
|
}),
|
|
108
374
|
closeable: PropTypes__default["default"].bool,
|
|
375
|
+
withItemClick: PropTypes__default["default"].bool,
|
|
376
|
+
withoutScreensMenu: PropTypes__default["default"].bool,
|
|
109
377
|
onClose: PropTypes__default["default"].func,
|
|
110
378
|
className: PropTypes__default["default"].string
|
|
111
379
|
};
|
|
112
|
-
var defaultProps$
|
|
380
|
+
var defaultProps$8 = {
|
|
113
381
|
direction: 'horizontal',
|
|
114
382
|
withShadow: false,
|
|
115
383
|
items: [],
|
|
116
|
-
current: 0,
|
|
117
384
|
onClickItem: null,
|
|
385
|
+
onClickMenu: null,
|
|
118
386
|
colors: null,
|
|
119
387
|
closeable: false,
|
|
388
|
+
withItemClick: false,
|
|
389
|
+
withoutScreensMenu: false,
|
|
120
390
|
onClose: null,
|
|
121
391
|
className: null
|
|
122
392
|
};
|
|
123
393
|
|
|
124
394
|
var ViewerMenuDots = function ViewerMenuDots(_ref) {
|
|
125
|
-
var
|
|
395
|
+
var _ref4;
|
|
126
396
|
|
|
127
397
|
var direction = _ref.direction,
|
|
128
398
|
withShadow = _ref.withShadow,
|
|
129
399
|
items = _ref.items,
|
|
130
|
-
current = _ref.current,
|
|
131
400
|
onClickItem = _ref.onClickItem,
|
|
401
|
+
onClickMenu = _ref.onClickMenu,
|
|
132
402
|
colors = _ref.colors,
|
|
133
403
|
closeable = _ref.closeable,
|
|
404
|
+
withItemClick = _ref.withItemClick,
|
|
405
|
+
withoutScreensMenu = _ref.withoutScreensMenu,
|
|
134
406
|
onClose = _ref.onClose,
|
|
135
407
|
className = _ref.className;
|
|
136
408
|
|
|
137
409
|
var _ref2 = colors || {},
|
|
138
410
|
_ref2$primary = _ref2.primary,
|
|
139
|
-
primary = _ref2$primary === void 0 ? 'rgba(255, 255, 255, 1)' : _ref2$primary
|
|
140
|
-
_ref2$secondary = _ref2.secondary,
|
|
141
|
-
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;
|
|
142
412
|
|
|
143
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
|
+
});
|
|
144
419
|
return /*#__PURE__*/React__default["default"].createElement("nav", {
|
|
145
|
-
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)]),
|
|
146
421
|
"aria-label": intl.formatMessage({
|
|
147
422
|
id: "bLYuuN",
|
|
148
423
|
defaultMessage: [{
|
|
@@ -162,35 +437,32 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
|
|
|
162
437
|
"value": "."
|
|
163
438
|
}]
|
|
164
439
|
}, {
|
|
165
|
-
current:
|
|
440
|
+
current: currentIndex + 1,
|
|
166
441
|
total: items.length
|
|
167
442
|
})
|
|
168
443
|
}, /*#__PURE__*/React__default["default"].createElement("ul", {
|
|
169
|
-
className: styles$
|
|
444
|
+
className: styles$6.items
|
|
170
445
|
}, items.map(function (item, index) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
"
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
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,
|
|
178
453
|
onClick: function onClick() {
|
|
179
|
-
if (onClickItem !== null) {
|
|
180
|
-
onClickItem(
|
|
454
|
+
if ((withItemClick || withoutScreensMenu) && onClickItem !== null) {
|
|
455
|
+
onClickItem(item);
|
|
456
|
+
} else if (!withItemClick && onClickMenu !== null) {
|
|
457
|
+
onClickMenu();
|
|
181
458
|
}
|
|
182
459
|
},
|
|
183
|
-
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
backgroundColor: index <= current ? primary : secondary
|
|
188
|
-
}
|
|
189
|
-
})));
|
|
190
|
-
}), /*#__PURE__*/React__default["default"].createElement("li", {
|
|
191
|
-
className: styles$5.menu
|
|
460
|
+
vertical: direction === 'vertical'
|
|
461
|
+
});
|
|
462
|
+
}), !withoutScreensMenu ? /*#__PURE__*/React__default["default"].createElement("li", {
|
|
463
|
+
className: styles$6.menu
|
|
192
464
|
}, /*#__PURE__*/React__default["default"].createElement(MenuIcon, {
|
|
193
|
-
className: styles$
|
|
465
|
+
className: styles$6.menuIcon,
|
|
194
466
|
color: primary
|
|
195
467
|
}), /*#__PURE__*/React__default["default"].createElement("button", {
|
|
196
468
|
type: "button",
|
|
@@ -208,20 +480,16 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
|
|
|
208
480
|
"value": "Menu"
|
|
209
481
|
}]
|
|
210
482
|
}),
|
|
211
|
-
className: styles$
|
|
212
|
-
onClick:
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
})), closeable ? /*#__PURE__*/React__default["default"].createElement("li", {
|
|
218
|
-
className: styles$5.closeButton,
|
|
483
|
+
className: styles$6.menuButton,
|
|
484
|
+
onClick: onClickMenu
|
|
485
|
+
})) : null, closeable ? /*#__PURE__*/React__default["default"].createElement("li", {
|
|
486
|
+
className: styles$6.closeButton,
|
|
219
487
|
style: {
|
|
220
488
|
color: primary
|
|
221
489
|
}
|
|
222
490
|
}, /*#__PURE__*/React__default["default"].createElement("button", {
|
|
223
491
|
type: "button",
|
|
224
|
-
className: styles$
|
|
492
|
+
className: styles$6.closeButton,
|
|
225
493
|
onClick: onClose,
|
|
226
494
|
title: intl.formatMessage({
|
|
227
495
|
id: "dj/p/q",
|
|
@@ -242,14 +510,14 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
|
|
|
242
510
|
}))) : null));
|
|
243
511
|
};
|
|
244
512
|
|
|
245
|
-
ViewerMenuDots.propTypes = propTypes$
|
|
246
|
-
ViewerMenuDots.defaultProps = defaultProps$
|
|
513
|
+
ViewerMenuDots.propTypes = propTypes$8;
|
|
514
|
+
ViewerMenuDots.defaultProps = defaultProps$8;
|
|
247
515
|
|
|
248
|
-
var styles$3 = {"container":"micromag-viewer-menus-menu-preview-container","screenButton":"micromag-viewer-menus-menu-preview-screenButton","activeScreenBorder":"micromag-viewer-menus-menu-preview-activeScreenBorder","
|
|
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"};
|
|
249
517
|
|
|
250
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"};
|
|
251
519
|
|
|
252
|
-
var propTypes$
|
|
520
|
+
var propTypes$7 = {
|
|
253
521
|
url: PropTypes__default["default"].string,
|
|
254
522
|
title: PropTypes__default["default"].string,
|
|
255
523
|
opened: PropTypes__default["default"].bool,
|
|
@@ -257,7 +525,7 @@ var propTypes$6 = {
|
|
|
257
525
|
onShare: PropTypes__default["default"].func,
|
|
258
526
|
onCancel: PropTypes__default["default"].func
|
|
259
527
|
};
|
|
260
|
-
var defaultProps$
|
|
528
|
+
var defaultProps$7 = {
|
|
261
529
|
url: null,
|
|
262
530
|
title: null,
|
|
263
531
|
opened: false,
|
|
@@ -341,12 +609,12 @@ var ShareModal = function ShareModal(_ref) {
|
|
|
341
609
|
}), /*#__PURE__*/React__default["default"].createElement(reactShare.EmailIcon, shareIconProps)))));
|
|
342
610
|
};
|
|
343
611
|
|
|
344
|
-
ShareModal.propTypes = propTypes$
|
|
345
|
-
ShareModal.defaultProps = defaultProps$
|
|
612
|
+
ShareModal.propTypes = propTypes$7;
|
|
613
|
+
ShareModal.defaultProps = defaultProps$7;
|
|
346
614
|
|
|
347
615
|
var styles$1 = {"container":"micromag-viewer-partials-share-button-container","shareModal":"micromag-viewer-partials-share-button-shareModal"};
|
|
348
616
|
|
|
349
|
-
var propTypes$
|
|
617
|
+
var propTypes$6 = {
|
|
350
618
|
title: PropTypes__default["default"].string,
|
|
351
619
|
url: PropTypes__default["default"].string,
|
|
352
620
|
className: PropTypes__default["default"].string,
|
|
@@ -355,7 +623,7 @@ var propTypes$5 = {
|
|
|
355
623
|
children: PropTypes__default["default"].node,
|
|
356
624
|
focusable: PropTypes__default["default"].bool
|
|
357
625
|
};
|
|
358
|
-
var defaultProps$
|
|
626
|
+
var defaultProps$6 = {
|
|
359
627
|
title: null,
|
|
360
628
|
url: null,
|
|
361
629
|
className: null,
|
|
@@ -425,16 +693,16 @@ var ShareButton = function ShareButton(_ref) {
|
|
|
425
693
|
}));
|
|
426
694
|
};
|
|
427
695
|
|
|
428
|
-
ShareButton.propTypes = propTypes$
|
|
429
|
-
ShareButton.defaultProps = defaultProps$
|
|
696
|
+
ShareButton.propTypes = propTypes$6;
|
|
697
|
+
ShareButton.defaultProps = defaultProps$6;
|
|
430
698
|
|
|
431
|
-
var propTypes$
|
|
432
|
-
viewerTheme: core.PropTypes.viewerTheme,
|
|
433
|
-
|
|
699
|
+
var propTypes$5 = {
|
|
700
|
+
viewerTheme: core$1.PropTypes.viewerTheme,
|
|
701
|
+
screenSize: core$1.PropTypes.screenSize,
|
|
702
|
+
menuWidth: PropTypes__default["default"].number,
|
|
434
703
|
title: PropTypes__default["default"].string,
|
|
435
704
|
shareUrl: PropTypes__default["default"].string,
|
|
436
|
-
items: core.PropTypes.menuItems,
|
|
437
|
-
current: PropTypes__default["default"].number,
|
|
705
|
+
items: core$1.PropTypes.menuItems,
|
|
438
706
|
focusable: PropTypes__default["default"].bool,
|
|
439
707
|
onClickItem: PropTypes__default["default"].func,
|
|
440
708
|
onClose: PropTypes__default["default"].func,
|
|
@@ -445,13 +713,13 @@ var propTypes$4 = {
|
|
|
445
713
|
fullscreenEnabled: PropTypes__default["default"].bool,
|
|
446
714
|
className: PropTypes__default["default"].string
|
|
447
715
|
};
|
|
448
|
-
var defaultProps$
|
|
716
|
+
var defaultProps$5 = {
|
|
449
717
|
viewerTheme: null,
|
|
450
|
-
|
|
718
|
+
screenSize: null,
|
|
719
|
+
menuWidth: null,
|
|
451
720
|
title: null,
|
|
452
721
|
shareUrl: null,
|
|
453
722
|
items: [],
|
|
454
|
-
current: 0,
|
|
455
723
|
focusable: true,
|
|
456
724
|
onClickItem: null,
|
|
457
725
|
onClose: null,
|
|
@@ -463,13 +731,13 @@ var defaultProps$4 = {
|
|
|
463
731
|
className: null
|
|
464
732
|
};
|
|
465
733
|
|
|
466
|
-
function ViewerMenuPreview(_ref) {
|
|
734
|
+
var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
467
735
|
var viewerTheme = _ref.viewerTheme,
|
|
468
|
-
|
|
736
|
+
screenSize = _ref.screenSize,
|
|
737
|
+
menuWidth = _ref.menuWidth,
|
|
469
738
|
title = _ref.title,
|
|
470
739
|
shareUrl = _ref.shareUrl,
|
|
471
740
|
items = _ref.items,
|
|
472
|
-
current = _ref.current,
|
|
473
741
|
focusable = _ref.focusable,
|
|
474
742
|
onClickItem = _ref.onClickItem,
|
|
475
743
|
onClose = _ref.onClose,
|
|
@@ -480,82 +748,74 @@ function ViewerMenuPreview(_ref) {
|
|
|
480
748
|
fullscreenEnabled = _ref.fullscreenEnabled,
|
|
481
749
|
className = _ref.className;
|
|
482
750
|
var intl = reactIntl.useIntl();
|
|
483
|
-
var screenSizeRatio = "".concat(3 / 2 / thumbsPerLine * 100, "%");
|
|
484
|
-
var screenRatioHeight = screenWidth * 3 / 2;
|
|
485
|
-
var hasSize = screenWidth > 0;
|
|
486
|
-
var hasItems = items !== null && items.length > 0;
|
|
487
|
-
|
|
488
|
-
var _useState = React.useState(null),
|
|
489
|
-
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
490
|
-
thumbSize = _useState2[0],
|
|
491
|
-
setThumbSize = _useState2[1];
|
|
492
|
-
|
|
493
|
-
var firstScreenContainerRef = React.useRef(null);
|
|
494
|
-
React.useEffect(function () {
|
|
495
|
-
if (hasItems && hasSize && firstScreenContainerRef.current !== null) {
|
|
496
|
-
var _firstScreenContainer = firstScreenContainerRef.current,
|
|
497
|
-
offsetWidth = _firstScreenContainer.offsetWidth,
|
|
498
|
-
offsetHeight = _firstScreenContainer.offsetHeight;
|
|
499
|
-
setThumbSize({
|
|
500
|
-
width: offsetWidth,
|
|
501
|
-
height: offsetHeight
|
|
502
|
-
});
|
|
503
|
-
}
|
|
504
|
-
}, [screenWidth, hasItems, hasSize]); // Viewer theme
|
|
505
|
-
|
|
506
|
-
var _ref2 = viewerTheme || {},
|
|
507
|
-
_ref2$colors = _ref2.colors,
|
|
508
|
-
colors = _ref2$colors === void 0 ? null : _ref2$colors,
|
|
509
|
-
_ref2$background = _ref2.background,
|
|
510
|
-
background = _ref2$background === void 0 ? null : _ref2$background,
|
|
511
|
-
_ref2$textStyles = _ref2.textStyles,
|
|
512
|
-
textStyles = _ref2$textStyles === void 0 ? null : _ref2$textStyles,
|
|
513
|
-
_ref2$logo = _ref2.logo,
|
|
514
|
-
brandLogo = _ref2$logo === void 0 ? null : _ref2$logo;
|
|
515
|
-
|
|
516
|
-
var _ref3 = textStyles || {},
|
|
517
|
-
_ref3$title = _ref3.title,
|
|
518
|
-
brandTextStyle = _ref3$title === void 0 ? null : _ref3$title;
|
|
519
751
|
|
|
520
|
-
var
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
_ref4$secondary = _ref4.secondary,
|
|
524
|
-
brandSecondaryColor = _ref4$secondary === void 0 ? null : _ref4$secondary;
|
|
752
|
+
var _ref2 = screenSize || {},
|
|
753
|
+
screenWidth = _ref2.width,
|
|
754
|
+
screenHeight = _ref2.height;
|
|
525
755
|
|
|
526
|
-
var
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
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;
|
|
535
795
|
|
|
536
796
|
var borderPrimaryColorStyle = utils.getStyleFromColor(brandPrimaryColor, 'borderColor');
|
|
537
797
|
var colorSecondaryColorStyle = utils.getStyleFromColor(brandSecondaryColor, 'color');
|
|
538
798
|
var backgroundColorStyle = utils.getStyleFromColor(brandBackgroundColor, 'backgroundColor');
|
|
539
799
|
|
|
540
|
-
var
|
|
541
|
-
|
|
542
|
-
brandLogoUrl =
|
|
800
|
+
var _ref9 = brandLogo || {},
|
|
801
|
+
_ref9$url = _ref9.url,
|
|
802
|
+
brandLogoUrl = _ref9$url === void 0 ? null : _ref9$url;
|
|
543
803
|
|
|
544
804
|
var brandImageStyle = brandImageUrl !== null ? {
|
|
545
805
|
backgroundImage: "url(".concat(brandImageUrl, ")")
|
|
546
806
|
} : null;
|
|
547
807
|
var titleStyle = brandTextStyle !== null ? utils.getStyleFromText(brandTextStyle) : null;
|
|
548
808
|
|
|
549
|
-
var
|
|
550
|
-
|
|
551
|
-
scrolledBottom =
|
|
552
|
-
setScrolledBottom =
|
|
809
|
+
var _useState = React.useState(false),
|
|
810
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
811
|
+
scrolledBottom = _useState2[0],
|
|
812
|
+
setScrolledBottom = _useState2[1];
|
|
553
813
|
|
|
554
|
-
var dragBind = react.useDrag(function (
|
|
555
|
-
var
|
|
556
|
-
dy =
|
|
557
|
-
last =
|
|
558
|
-
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;
|
|
559
819
|
|
|
560
820
|
if (!tap && last && scrolledBottom && dy < 0 && onClose !== null) {
|
|
561
821
|
onClose();
|
|
@@ -572,10 +832,10 @@ function ViewerMenuPreview(_ref) {
|
|
|
572
832
|
var onScrolledNotBottom = React.useCallback(function () {
|
|
573
833
|
setScrolledBottom(false);
|
|
574
834
|
}, [setScrolledBottom]);
|
|
575
|
-
return
|
|
835
|
+
return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
|
576
836
|
className: classNames__default["default"]([styles$3.container, _defineProperty__default["default"]({}, className, className !== null)]),
|
|
577
837
|
style: _objectSpread__default["default"](_objectSpread__default["default"](_objectSpread__default["default"]({}, backgroundColorStyle), brandImageStyle), {}, {
|
|
578
|
-
width:
|
|
838
|
+
width: menuWidth
|
|
579
839
|
}),
|
|
580
840
|
"aria-hidden": focusable ? null : 'true'
|
|
581
841
|
}, dragBind()), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
@@ -654,7 +914,10 @@ function ViewerMenuPreview(_ref) {
|
|
|
654
914
|
}, /*#__PURE__*/React__default["default"].createElement("ul", {
|
|
655
915
|
className: styles$3.items
|
|
656
916
|
}, items.map(function (item, index) {
|
|
657
|
-
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({
|
|
658
921
|
id: "LkVfwW",
|
|
659
922
|
defaultMessage: [{
|
|
660
923
|
"type": 0,
|
|
@@ -665,106 +928,385 @@ function ViewerMenuPreview(_ref) {
|
|
|
665
928
|
}]
|
|
666
929
|
}, {
|
|
667
930
|
index: index + 1
|
|
668
|
-
})
|
|
669
|
-
var isCurrentScreenLabel = current === index ? " ".concat(intl.formatMessage({
|
|
931
|
+
})).concat(current ? " ".concat(intl.formatMessage({
|
|
670
932
|
id: "vmrJ8U",
|
|
671
933
|
defaultMessage: [{
|
|
672
934
|
"type": 0,
|
|
673
935
|
"value": "(current screen)"
|
|
674
936
|
}]
|
|
675
|
-
})) : '';
|
|
676
|
-
var screenAriaLabel = screenIndexLabel + isCurrentScreenLabel;
|
|
937
|
+
})) : '');
|
|
677
938
|
return /*#__PURE__*/React__default["default"].createElement("li", {
|
|
678
|
-
className: classNames__default["default"]([styles$3.item, _defineProperty__default["default"]({}, styles$3.active, current
|
|
939
|
+
className: classNames__default["default"]([styles$3.item, _defineProperty__default["default"]({}, styles$3.active, current)]),
|
|
679
940
|
key: "item-".concat(index),
|
|
680
941
|
style: {
|
|
681
|
-
paddingBottom: screenSizeRatio,
|
|
682
942
|
width: "".concat(100 / thumbsPerLine, "%")
|
|
683
943
|
}
|
|
684
944
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
685
945
|
className: styles$3.itemContent
|
|
686
946
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
687
947
|
className: styles$3.screenContainer,
|
|
688
|
-
ref: index === 0 ? firstScreenContainerRef : null
|
|
689
|
-
|
|
948
|
+
ref: index === 0 ? firstScreenContainerRef : null,
|
|
949
|
+
style: {
|
|
950
|
+
height: screenHeight * screenScale
|
|
951
|
+
}
|
|
952
|
+
}, screenWidth > 0 && screenHeight > 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
690
953
|
className: styles$3.screenContent,
|
|
691
|
-
style:
|
|
954
|
+
style: {
|
|
692
955
|
width: screenWidth,
|
|
693
|
-
height:
|
|
694
|
-
transform: "scale(".concat(
|
|
695
|
-
}
|
|
956
|
+
height: screenHeight,
|
|
957
|
+
transform: "scale(".concat(screenScale)
|
|
958
|
+
},
|
|
696
959
|
"aria-hidden": "true"
|
|
697
960
|
}, /*#__PURE__*/React__default["default"].createElement(components.ScreenPreview, {
|
|
698
961
|
width: screenWidth,
|
|
699
|
-
height:
|
|
700
|
-
screen:
|
|
962
|
+
height: screenHeight,
|
|
963
|
+
screen: screen,
|
|
701
964
|
focusable: false
|
|
702
|
-
})), current
|
|
965
|
+
})) : null, current ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
703
966
|
className: styles$3.activeScreenBorder,
|
|
704
967
|
style: borderPrimaryColorStyle
|
|
705
968
|
}) : null)), /*#__PURE__*/React__default["default"].createElement("button", {
|
|
706
969
|
type: "button",
|
|
707
970
|
className: styles$3.screenButton,
|
|
708
971
|
onClick: function onClick() {
|
|
709
|
-
onClickItem
|
|
972
|
+
if (onClickItem !== null) {
|
|
973
|
+
onClickItem(item);
|
|
974
|
+
}
|
|
710
975
|
},
|
|
711
976
|
"aria-label": screenAriaLabel,
|
|
712
977
|
onKeyUp: function onKeyUp(e) {
|
|
713
|
-
if (e.key === 'Enter') {
|
|
714
|
-
onClickItem(
|
|
978
|
+
if (e.key === 'Enter' && onClickItem !== null) {
|
|
979
|
+
onClickItem(item);
|
|
715
980
|
}
|
|
716
981
|
},
|
|
717
982
|
tabIndex: focusable ? '0' : '-1'
|
|
718
983
|
}));
|
|
719
|
-
}))))))
|
|
720
|
-
}
|
|
984
|
+
}))))));
|
|
985
|
+
};
|
|
721
986
|
|
|
722
|
-
ViewerMenuPreview.propTypes = propTypes$
|
|
723
|
-
ViewerMenuPreview.defaultProps = defaultProps$
|
|
987
|
+
ViewerMenuPreview.propTypes = propTypes$5;
|
|
988
|
+
ViewerMenuPreview.defaultProps = defaultProps$5;
|
|
724
989
|
|
|
725
|
-
var
|
|
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,
|
|
997
|
+
closeable: PropTypes__default["default"].bool,
|
|
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
|
|
726
1013
|
|
|
727
|
-
|
|
728
|
-
screen: core.PropTypes.screenComponent,
|
|
729
|
-
renderContext: core.PropTypes.renderContext,
|
|
730
|
-
current: PropTypes__default["default"].bool,
|
|
731
|
-
active: PropTypes__default["default"].bool,
|
|
732
|
-
onPrevious: PropTypes__default["default"].func,
|
|
733
|
-
onNext: PropTypes__default["default"].func,
|
|
734
|
-
onEnableInteraction: PropTypes__default["default"].func,
|
|
735
|
-
onDisableInteraction: PropTypes__default["default"].func,
|
|
736
|
-
getMediaRef: PropTypes__default["default"].func
|
|
1014
|
+
})
|
|
737
1015
|
};
|
|
738
|
-
var defaultProps$
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
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
|
|
748
1037
|
};
|
|
749
1038
|
|
|
750
|
-
var
|
|
751
|
-
var
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
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, {
|
|
766
1307
|
screen: screen,
|
|
767
1308
|
renderContext: renderContext,
|
|
1309
|
+
screenState: screenState,
|
|
768
1310
|
active: active,
|
|
769
1311
|
current: current,
|
|
770
1312
|
onPrevious: onPrevious,
|
|
@@ -779,15 +1321,16 @@ ViewerScreen.propTypes = propTypes$3;
|
|
|
779
1321
|
ViewerScreen.defaultProps = defaultProps$3;
|
|
780
1322
|
|
|
781
1323
|
var propTypes$2 = {
|
|
782
|
-
story: core.PropTypes.story,
|
|
1324
|
+
story: core$1.PropTypes.story,
|
|
783
1325
|
// .isRequired,
|
|
784
1326
|
basePath: PropTypes__default["default"].string,
|
|
785
|
-
theme: core.PropTypes.viewerTheme,
|
|
1327
|
+
theme: core$1.PropTypes.viewerTheme,
|
|
786
1328
|
width: PropTypes__default["default"].number,
|
|
787
1329
|
height: PropTypes__default["default"].number,
|
|
788
1330
|
screen: PropTypes__default["default"].string,
|
|
789
|
-
|
|
790
|
-
|
|
1331
|
+
screenState: PropTypes__default["default"].string,
|
|
1332
|
+
deviceScreens: core$1.PropTypes.deviceScreens,
|
|
1333
|
+
renderContext: core$1.PropTypes.renderContext,
|
|
791
1334
|
onScreenChange: PropTypes__default["default"].func,
|
|
792
1335
|
tapNextScreenWidthPercent: PropTypes__default["default"].number,
|
|
793
1336
|
neighborScreensActive: PropTypes__default["default"].number,
|
|
@@ -795,14 +1338,16 @@ var propTypes$2 = {
|
|
|
795
1338
|
landscapeScreenMargin: PropTypes__default["default"].number,
|
|
796
1339
|
withMetadata: PropTypes__default["default"].bool,
|
|
797
1340
|
withoutMenu: PropTypes__default["default"].bool,
|
|
1341
|
+
withoutScreensMenu: PropTypes__default["default"].bool,
|
|
798
1342
|
withoutFullscreen: PropTypes__default["default"].bool,
|
|
1343
|
+
withLandscapeSiblingsScreens: PropTypes__default["default"].bool,
|
|
799
1344
|
closeable: PropTypes__default["default"].bool,
|
|
800
1345
|
onClose: PropTypes__default["default"].func,
|
|
801
1346
|
onInteraction: PropTypes__default["default"].func,
|
|
802
1347
|
onEnd: PropTypes__default["default"].func,
|
|
803
1348
|
onViewModeChange: PropTypes__default["default"].func,
|
|
804
|
-
currentScreenMedia: core.PropTypes.ref,
|
|
805
|
-
screensMedias: core.PropTypes.ref,
|
|
1349
|
+
currentScreenMedia: core$1.PropTypes.ref,
|
|
1350
|
+
screensMedias: core$1.PropTypes.ref,
|
|
806
1351
|
screenSizeOptions: PropTypes__default["default"].shape({
|
|
807
1352
|
withoutMaxSize: PropTypes__default["default"].bool,
|
|
808
1353
|
desktopHeightRatio: PropTypes__default["default"].number,
|
|
@@ -817,16 +1362,19 @@ var defaultProps$2 = {
|
|
|
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,
|
|
@@ -838,8 +1386,8 @@ var defaultProps$2 = {
|
|
|
838
1386
|
className: null
|
|
839
1387
|
};
|
|
840
1388
|
|
|
841
|
-
function Viewer(_ref) {
|
|
842
|
-
var
|
|
1389
|
+
var Viewer = function Viewer(_ref) {
|
|
1390
|
+
var _ref12;
|
|
843
1391
|
|
|
844
1392
|
var story = _ref.story,
|
|
845
1393
|
basePath = _ref.basePath,
|
|
@@ -847,6 +1395,7 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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);
|
|
@@ -1005,256 +1529,69 @@ function Viewer(_ref) {
|
|
|
1005
1529
|
}, [currentScreen, trackScreenView, trackingEnabled]); // Handle interaction enable
|
|
1006
1530
|
|
|
1007
1531
|
var currentScreenRef = React.useRef(null);
|
|
1008
|
-
var
|
|
1532
|
+
var gotoPreviousScreen = React.useCallback(function () {
|
|
1009
1533
|
changeIndex(Math.max(0, screenIndex - 1));
|
|
1010
1534
|
currentScreenRef.current.focus();
|
|
1011
1535
|
}, [changeIndex]);
|
|
1012
|
-
var
|
|
1536
|
+
var gotoNextScreen = React.useCallback(function () {
|
|
1013
1537
|
changeIndex(Math.min(screens.length - 1, screenIndex + 1));
|
|
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
|
-
|
|
1112
|
-
if (isLastScreen && onEnd !== null) {
|
|
1113
|
-
onEnd();
|
|
1114
|
-
}
|
|
1115
|
-
}
|
|
1116
|
-
|
|
1117
|
-
changeIndex(nextIndex);
|
|
1118
|
-
}, [onScreenChange, screenWidth, screens, changeIndex, screenIndex, screensInteractionEnabled, isView, onInteractionPrivate, onEnd]); // swipe menu open
|
|
1119
1546
|
|
|
1120
|
-
var
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
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
|
-
|
|
1559
|
+
onScreenClick = _useScreenInteraction.onClick,
|
|
1560
|
+
currentScreenInteractionEnabled = _useScreenInteraction.currentScreenInteractionEnabled,
|
|
1561
|
+
enableInteraction = _useScreenInteraction.enableInteraction,
|
|
1562
|
+
disableInteraction = _useScreenInteraction.disableInteraction; // swipe menu open
|
|
1138
1563
|
|
|
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
1564
|
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
if (first) {
|
|
1162
|
-
if (isMenuOpened) {
|
|
1163
|
-
cancel();
|
|
1164
|
-
return;
|
|
1165
|
-
}
|
|
1166
|
-
}
|
|
1167
|
-
|
|
1168
|
-
var yProgress = Math.max(0, Math.min(1, my / menuPreviewContainerHeight + (isMenuOpened ? 1 : 0)));
|
|
1169
|
-
|
|
1170
|
-
if (last) {
|
|
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
|
-
|
|
1237
|
-
var onClickPreviewMenuClose = React.useCallback(function () {
|
|
1238
|
-
closePreviewMenu();
|
|
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
1590
|
|
|
1249
|
-
|
|
1250
|
-
|
|
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 @@ 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
|
-
onScreenPrevious();
|
|
1302
|
-
break;
|
|
1303
|
-
|
|
1304
|
-
case 'arrowright':
|
|
1305
|
-
case ' ':
|
|
1306
|
-
// spacebar
|
|
1307
|
-
onScreenNext();
|
|
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, onScreenPrevious, onScreenNext]);
|
|
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,88 +1655,94 @@ 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
|
-
menuSize: menuDotsContainerHeight
|
|
1671
|
+
menuSize: menuDotsContainerHeight,
|
|
1672
|
+
gotoPreviousScreen: gotoPreviousScreen,
|
|
1673
|
+
gotoNextScreen: gotoNextScreen,
|
|
1674
|
+
disableInteraction: disableInteraction,
|
|
1675
|
+
enableInteraction: enableInteraction
|
|
1349
1676
|
}, withMetadata ? /*#__PURE__*/React__default["default"].createElement(components.Meta, {
|
|
1350
1677
|
title: finalTitle,
|
|
1351
1678
|
metadata: finalMetadata
|
|
1352
1679
|
}, overscrollStyle) : /*#__PURE__*/React__default["default"].createElement(reactHelmet.Helmet, null, overscrollStyle), /*#__PURE__*/React__default["default"].createElement(components.FontFaces, {
|
|
1353
1680
|
fonts: finalFonts
|
|
1354
1681
|
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1355
|
-
className: classNames__default["default"]([styles$
|
|
1682
|
+
className: classNames__default["default"]([styles$7.container, screenSize.screens.map(function (screenName) {
|
|
1356
1683
|
return "story-screen-".concat(screenName);
|
|
1357
|
-
}), (
|
|
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)]),
|
|
1358
1685
|
ref: containerRef,
|
|
1359
1686
|
onContextMenu: onContextMenu
|
|
1360
|
-
}, !withoutMenu ? /*#__PURE__*/React__default["default"].createElement(
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
width: screenWidth
|
|
1365
|
-
}
|
|
1366
|
-
}, menuDragBind()), /*#__PURE__*/React__default["default"].createElement(ViewerMenuDots, Object.assign({}, menuTheme, {
|
|
1367
|
-
direction: "horizontal",
|
|
1687
|
+
}, !withoutMenu ? /*#__PURE__*/React__default["default"].createElement(ViewerMenu, {
|
|
1688
|
+
story: parsedStory,
|
|
1689
|
+
currentScreenIndex: screenIndex,
|
|
1690
|
+
opened: menuOpened,
|
|
1368
1691
|
withShadow: menuOverScreen,
|
|
1369
|
-
items: screens,
|
|
1370
|
-
current: screenIndex,
|
|
1371
|
-
onClickItem: onClickDotsMenuItem,
|
|
1372
|
-
closeable: closeable,
|
|
1373
|
-
onClose: onClose,
|
|
1374
|
-
className: styles$6.menuDots
|
|
1375
|
-
}))), /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
|
|
1376
|
-
className: styles$6.menuPreviewContainer,
|
|
1377
|
-
style: menuPreviewStyle,
|
|
1378
|
-
ref: menuPreviewContainerRef
|
|
1379
|
-
}, /*#__PURE__*/React__default["default"].createElement(ViewerMenuPreview, {
|
|
1380
|
-
viewerTheme: viewerTheme,
|
|
1381
|
-
title: title,
|
|
1382
|
-
shareUrl: shareUrl,
|
|
1383
|
-
className: styles$6.menuPreview,
|
|
1384
|
-
screenWidth: screenWidth,
|
|
1385
|
-
focusable: previewMenuOpen,
|
|
1386
|
-
items: screens,
|
|
1387
|
-
current: screenIndex,
|
|
1388
|
-
onClickItem: onClickPreviewMenuItem,
|
|
1389
|
-
onClose: onClickPreviewMenuClose,
|
|
1390
|
-
onShare: onClickShare,
|
|
1391
1692
|
toggleFullscreen: toggleFullscreen,
|
|
1392
1693
|
fullscreenActive: fullscreenActive,
|
|
1393
|
-
fullscreenEnabled: fullscreenEnabled
|
|
1394
|
-
|
|
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", {
|
|
1395
1709
|
ref: contentRef,
|
|
1396
|
-
className: styles$
|
|
1710
|
+
className: styles$7.content
|
|
1397
1711
|
}, screens.map(function (scr, i) {
|
|
1712
|
+
var _ref13;
|
|
1713
|
+
|
|
1398
1714
|
var current = i === screenIndex;
|
|
1399
1715
|
var active = i > screenIndex - neighborScreensActive && i < screenIndex + neighborScreensActive;
|
|
1400
1716
|
var viewerScreen = /*#__PURE__*/React__default["default"].createElement(ViewerScreen, {
|
|
1401
1717
|
screen: scr,
|
|
1718
|
+
screenState: current ? screenState : null,
|
|
1402
1719
|
renderContext: renderContext,
|
|
1403
1720
|
index: i,
|
|
1404
1721
|
current: current,
|
|
1405
1722
|
active: active,
|
|
1406
|
-
onPrevious:
|
|
1407
|
-
onNext:
|
|
1408
|
-
onEnableInteraction:
|
|
1409
|
-
onDisableInteraction:
|
|
1723
|
+
onPrevious: gotoPreviousScreen,
|
|
1724
|
+
onNext: gotoNextScreen,
|
|
1725
|
+
onEnableInteraction: enableInteraction,
|
|
1726
|
+
onDisableInteraction: disableInteraction,
|
|
1410
1727
|
getMediaRef: function getMediaRef(mediaRef) {
|
|
1411
1728
|
screensMediasRef.current[i] = mediaRef;
|
|
1412
1729
|
}
|
|
1413
1730
|
});
|
|
1414
1731
|
var key = "screen-viewer-".concat(scr.id || '', "-").concat(i + 1);
|
|
1415
|
-
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
|
+
|
|
1416
1740
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
|
|
1417
1741
|
key: key
|
|
1418
1742
|
}, current && screenIndex > 0 ? /*#__PURE__*/React__default["default"].createElement("button", {
|
|
1419
1743
|
type: "button",
|
|
1420
1744
|
className: "sr-only",
|
|
1421
|
-
onClick:
|
|
1745
|
+
onClick: gotoPreviousScreen,
|
|
1422
1746
|
tabIndex: "-1"
|
|
1423
1747
|
}, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
|
1424
1748
|
id: "zYH/31",
|
|
@@ -1433,7 +1757,7 @@ function Viewer(_ref) {
|
|
|
1433
1757
|
height: landscape ? screenHeight : null,
|
|
1434
1758
|
transform: !withoutScreensTransforms ? screenTransform : null
|
|
1435
1759
|
},
|
|
1436
|
-
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)]),
|
|
1437
1761
|
tabIndex: active ? '0' : '-1'
|
|
1438
1762
|
/* eslint-disable-line */
|
|
1439
1763
|
,
|
|
@@ -1456,12 +1780,12 @@ function Viewer(_ref) {
|
|
|
1456
1780
|
}
|
|
1457
1781
|
},
|
|
1458
1782
|
onClick: function onClick(e) {
|
|
1459
|
-
onScreenClick(e, i);
|
|
1783
|
+
return onScreenClick(e, i);
|
|
1460
1784
|
}
|
|
1461
1785
|
}, viewerScreen), current && screenIndex < screens.length ? /*#__PURE__*/React__default["default"].createElement("button", {
|
|
1462
1786
|
type: "button",
|
|
1463
1787
|
className: "sr-only",
|
|
1464
|
-
onClick:
|
|
1788
|
+
onClick: gotoNextScreen,
|
|
1465
1789
|
tabIndex: "-1"
|
|
1466
1790
|
}, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
|
1467
1791
|
id: "v9bqYj",
|
|
@@ -1471,7 +1795,7 @@ function Viewer(_ref) {
|
|
|
1471
1795
|
}]
|
|
1472
1796
|
})) : null);
|
|
1473
1797
|
})) : null)));
|
|
1474
|
-
}
|
|
1798
|
+
};
|
|
1475
1799
|
|
|
1476
1800
|
Viewer.propTypes = propTypes$2;
|
|
1477
1801
|
Viewer.defaultProps = defaultProps$2;
|
|
@@ -1525,23 +1849,17 @@ var ViewerRoutes = function ViewerRoutes(_ref) {
|
|
|
1525
1849
|
ViewerRoutes.propTypes = propTypes$1;
|
|
1526
1850
|
ViewerRoutes.defaultProps = defaultProps$1;
|
|
1527
1851
|
|
|
1528
|
-
var
|
|
1529
|
-
var screen = "/:screen";
|
|
1530
|
-
var defaultRoutes = {
|
|
1531
|
-
home: home,
|
|
1532
|
-
screen: screen
|
|
1533
|
-
};
|
|
1534
|
-
|
|
1535
|
-
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"];
|
|
1536
1853
|
var propTypes = {
|
|
1537
|
-
story: core.PropTypes.story,
|
|
1854
|
+
story: core$1.PropTypes.story,
|
|
1538
1855
|
screen: PropTypes__default["default"].string,
|
|
1856
|
+
screenComponents: PropTypes__default["default"].objectOf(PropTypes__default["default"].elementType),
|
|
1539
1857
|
memoryRouter: PropTypes__default["default"].bool,
|
|
1540
1858
|
basePath: PropTypes__default["default"].string,
|
|
1541
1859
|
routes: routes,
|
|
1542
1860
|
withoutRouter: PropTypes__default["default"].bool,
|
|
1543
1861
|
googleApiKey: PropTypes__default["default"].string,
|
|
1544
|
-
trackingVariables: core.PropTypes.trackingVariables,
|
|
1862
|
+
trackingVariables: core$1.PropTypes.trackingVariables,
|
|
1545
1863
|
locale: PropTypes__default["default"].string,
|
|
1546
1864
|
locales: PropTypes__default["default"].arrayOf(PropTypes__default["default"].string),
|
|
1547
1865
|
translations: PropTypes__default["default"].objectOf(PropTypes__default["default"].string),
|
|
@@ -1550,6 +1868,7 @@ var propTypes = {
|
|
|
1550
1868
|
var defaultProps = {
|
|
1551
1869
|
story: null,
|
|
1552
1870
|
screen: null,
|
|
1871
|
+
screenComponents: null,
|
|
1553
1872
|
memoryRouter: false,
|
|
1554
1873
|
basePath: null,
|
|
1555
1874
|
routes: defaultRoutes,
|
|
@@ -1564,6 +1883,7 @@ var defaultProps = {
|
|
|
1564
1883
|
|
|
1565
1884
|
var ViewerContainer = function ViewerContainer(_ref) {
|
|
1566
1885
|
var story = _ref.story,
|
|
1886
|
+
screenComponents = _ref.screenComponents,
|
|
1567
1887
|
memoryRouter = _ref.memoryRouter,
|
|
1568
1888
|
basePath = _ref.basePath,
|
|
1569
1889
|
routes = _ref.routes,
|
|
@@ -1614,7 +1934,10 @@ var ViewerContainer = function ViewerContainer(_ref) {
|
|
|
1614
1934
|
locale: finalLocale
|
|
1615
1935
|
}, /*#__PURE__*/React__default["default"].createElement(contexts.FieldsProvider, {
|
|
1616
1936
|
manager: fieldsManager__default["default"]
|
|
1617
|
-
}, /*#__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, {
|
|
1618
1941
|
variables: finalTrackingVariables
|
|
1619
1942
|
}, withoutRouter ? /*#__PURE__*/React__default["default"].createElement(Viewer, Object.assign({
|
|
1620
1943
|
story: story,
|
|
@@ -1622,7 +1945,7 @@ var ViewerContainer = function ViewerContainer(_ref) {
|
|
|
1622
1945
|
}, otherProps)) : /*#__PURE__*/React__default["default"].createElement(ViewerRoutes, Object.assign({
|
|
1623
1946
|
story: story,
|
|
1624
1947
|
basePath: basePath
|
|
1625
|
-
}, otherProps)))))))));
|
|
1948
|
+
}, otherProps))))))))));
|
|
1626
1949
|
return withoutRouter ? content : /*#__PURE__*/React__default["default"].createElement(Router, {
|
|
1627
1950
|
basename: !memoryRouter ? basePath : null
|
|
1628
1951
|
}, /*#__PURE__*/React__default["default"].createElement(contexts.RoutesProvider, {
|