@micromag/viewer 0.3.317 → 0.3.319
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 +18 -18
- package/es/index.js +597 -823
- package/lib/index.js +597 -823
- package/package.json +12 -12
package/lib/index.js
CHANGED
|
@@ -49,6 +49,7 @@ var Scroll__default = /*#__PURE__*/_interopDefaultLegacy(Scroll);
|
|
|
49
49
|
var ShareOptions__default = /*#__PURE__*/_interopDefaultLegacy(ShareOptions);
|
|
50
50
|
var WebView__default = /*#__PURE__*/_interopDefaultLegacy(WebView);
|
|
51
51
|
|
|
52
|
+
// eslint-disable-next-line import/prefer-default-export
|
|
52
53
|
var routes = PropTypes__default["default"].shape({
|
|
53
54
|
home: PropTypes__default["default"].string.isRequired,
|
|
54
55
|
screen: PropTypes__default["default"].string.isRequired
|
|
@@ -56,11 +57,9 @@ var routes = PropTypes__default["default"].shape({
|
|
|
56
57
|
|
|
57
58
|
function useKeyboardShortcuts() {
|
|
58
59
|
var shortcuts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
59
|
-
|
|
60
60
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
_ref$disabled = _ref.disabled,
|
|
62
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled;
|
|
64
63
|
React.useEffect(function () {
|
|
65
64
|
var onKey = function onKey(e) {
|
|
66
65
|
if (['input', 'textarea'].reduce(function (foundMatch, match) {
|
|
@@ -68,19 +67,15 @@ function useKeyboardShortcuts() {
|
|
|
68
67
|
}, false)) {
|
|
69
68
|
return;
|
|
70
69
|
}
|
|
71
|
-
|
|
72
70
|
var key = e.key;
|
|
73
71
|
var lowercaseKey = key.toLowerCase();
|
|
74
|
-
|
|
75
72
|
if (typeof shortcuts[lowercaseKey] !== 'undefined') {
|
|
76
73
|
shortcuts[lowercaseKey]();
|
|
77
74
|
}
|
|
78
75
|
};
|
|
79
|
-
|
|
80
76
|
if (!disabled) {
|
|
81
77
|
window.addEventListener('keydown', onKey);
|
|
82
78
|
}
|
|
83
|
-
|
|
84
79
|
return function () {
|
|
85
80
|
if (!disabled) {
|
|
86
81
|
window.removeEventListener('keydown', onKey);
|
|
@@ -92,23 +87,22 @@ function useKeyboardShortcuts() {
|
|
|
92
87
|
function checkClickable(el) {
|
|
93
88
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
94
89
|
var parentDistance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
95
|
-
|
|
96
90
|
var _ref = options || {},
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
91
|
+
_ref$maxParentDistanc = _ref.maxParentDistance,
|
|
92
|
+
maxParentDistance = _ref$maxParentDistanc === void 0 ? 5 : _ref$maxParentDistanc,
|
|
93
|
+
_ref$tags = _ref.tags,
|
|
94
|
+
tags = _ref$tags === void 0 ? ['BUTTON', 'A', 'INPUT', 'TEXTAREA'] : _ref$tags;
|
|
102
95
|
var _ref2 = el || {},
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
96
|
+
_ref2$tagName = _ref2.tagName,
|
|
97
|
+
tagName = _ref2$tagName === void 0 ? null : _ref2$tagName,
|
|
98
|
+
_ref2$parentNode = _ref2.parentNode,
|
|
99
|
+
parentNode = _ref2$parentNode === void 0 ? null : _ref2$parentNode;
|
|
100
|
+
_ref2.dataset;
|
|
109
101
|
if (tagName === 'BODY') {
|
|
110
102
|
return false;
|
|
111
|
-
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Check if video is suspended
|
|
112
106
|
// if (
|
|
113
107
|
// tagName === 'VIDEO' &&
|
|
114
108
|
// typeof dataset.isSuspended !== 'undefined' &&
|
|
@@ -117,54 +111,47 @@ function checkClickable(el) {
|
|
|
117
111
|
// return true;
|
|
118
112
|
// }
|
|
119
113
|
|
|
120
|
-
|
|
121
114
|
if (tags.map(function (it) {
|
|
122
115
|
return it.toLowerCase();
|
|
123
116
|
}).indexOf(tagName.toLowerCase()) !== -1) {
|
|
124
117
|
return true;
|
|
125
118
|
}
|
|
126
|
-
|
|
127
119
|
if (parentDistance < maxParentDistance) {
|
|
128
120
|
return checkClickable(parentNode, options, parentDistance + 1);
|
|
129
121
|
}
|
|
130
|
-
|
|
131
122
|
return false;
|
|
132
123
|
}
|
|
133
124
|
|
|
134
125
|
function useScreenInteraction() {
|
|
135
126
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
127
|
+
screens = _ref.screens,
|
|
128
|
+
screenIndex = _ref.screenIndex,
|
|
129
|
+
screenWidth = _ref.screenWidth,
|
|
130
|
+
_ref$disableCurrentSc = _ref.disableCurrentScreenNavigation,
|
|
131
|
+
disableCurrentScreenNavigation = _ref$disableCurrentSc === void 0 ? false : _ref$disableCurrentSc,
|
|
132
|
+
_ref$clickOnSiblings = _ref.clickOnSiblings,
|
|
133
|
+
clickOnSiblings = _ref$clickOnSiblings === void 0 ? false : _ref$clickOnSiblings,
|
|
134
|
+
_ref$nextScreenWidthP = _ref.nextScreenWidthPercent,
|
|
135
|
+
nextScreenWidthPercent = _ref$nextScreenWidthP === void 0 ? 0.5 : _ref$nextScreenWidthP,
|
|
136
|
+
_ref$onInteract = _ref.onInteract,
|
|
137
|
+
onInteract = _ref$onInteract === void 0 ? null : _ref$onInteract,
|
|
138
|
+
_ref$onNavigate = _ref.onNavigate,
|
|
139
|
+
onNavigate = _ref$onNavigate === void 0 ? null : _ref$onNavigate;
|
|
150
140
|
var _useState = React.useState(screens.reduce(function (map, _ref2) {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
141
|
+
var id = _ref2.id;
|
|
142
|
+
return _objectSpread__default["default"](_objectSpread__default["default"]({}, map), {}, _defineProperty__default["default"]({}, id, true));
|
|
143
|
+
}, {})),
|
|
144
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
145
|
+
screensInteractionEnabled = _useState2[0],
|
|
146
|
+
setScreensInteractionEnabled = _useState2[1];
|
|
158
147
|
var _ref3 = screens[screenIndex] || {},
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
148
|
+
_ref3$id = _ref3.id,
|
|
149
|
+
screenId = _ref3$id === void 0 ? screenIndex : _ref3$id;
|
|
162
150
|
var _screensInteractionEn = screensInteractionEnabled[screenId],
|
|
163
|
-
|
|
151
|
+
currentScreenInteractionEnabled = _screensInteractionEn === void 0 ? true : _screensInteractionEn;
|
|
164
152
|
var updateInteraction = React.useCallback(function (newValue) {
|
|
165
153
|
var _screensInteractionEn2 = screensInteractionEnabled[screenId],
|
|
166
|
-
|
|
167
|
-
|
|
154
|
+
currentValue = _screensInteractionEn2 === void 0 ? true : _screensInteractionEn2;
|
|
168
155
|
if (currentValue !== newValue) {
|
|
169
156
|
setScreensInteractionEnabled(screens.reduce(function (map, _ref4) {
|
|
170
157
|
var id = _ref4.id;
|
|
@@ -180,12 +167,11 @@ function useScreenInteraction() {
|
|
|
180
167
|
}, [updateInteraction]);
|
|
181
168
|
var interact = React.useCallback(function (_ref5) {
|
|
182
169
|
var event = _ref5.event,
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
170
|
+
target = _ref5.target,
|
|
171
|
+
currentTarget = _ref5.currentTarget,
|
|
172
|
+
x = _ref5.x,
|
|
173
|
+
y = _ref5.y,
|
|
174
|
+
index = _ref5.index;
|
|
189
175
|
if (onInteract !== null) {
|
|
190
176
|
onInteract({
|
|
191
177
|
event: event,
|
|
@@ -196,30 +182,24 @@ function useScreenInteraction() {
|
|
|
196
182
|
y: y
|
|
197
183
|
});
|
|
198
184
|
}
|
|
199
|
-
|
|
200
185
|
var screensCount = screens.length;
|
|
201
186
|
var tappedCurrent = screenIndex === index;
|
|
202
|
-
|
|
203
187
|
if (disableCurrentScreenNavigation && tappedCurrent || checkClickable(target) || tappedCurrent && !currentScreenInteractionEnabled) {
|
|
204
188
|
return;
|
|
205
189
|
}
|
|
206
|
-
|
|
207
190
|
var _currentTarget$getBou = currentTarget.getBoundingClientRect(),
|
|
208
|
-
|
|
209
|
-
|
|
191
|
+
width = _currentTarget$getBou.width;
|
|
210
192
|
var margin = (width - screenWidth) / 2;
|
|
211
193
|
var screenPreviousZone = screenWidth * (1 - nextScreenWidthPercent);
|
|
212
194
|
var previousZone = margin + screenPreviousZone;
|
|
213
195
|
var direction = x < previousZone ? 'previous' : 'next';
|
|
214
196
|
var lastIndex = screensCount - 1;
|
|
215
197
|
var nextIndex = index;
|
|
216
|
-
|
|
217
198
|
if (direction === 'previous' && !clickOnSiblings) {
|
|
218
199
|
nextIndex = Math.max(0, screenIndex - 1);
|
|
219
200
|
} else if (direction === 'next' && !clickOnSiblings) {
|
|
220
201
|
nextIndex = Math.min(lastIndex, screenIndex + 1);
|
|
221
202
|
}
|
|
222
|
-
|
|
223
203
|
if (onNavigate !== null) {
|
|
224
204
|
onNavigate({
|
|
225
205
|
index: index,
|
|
@@ -265,9 +245,9 @@ var propTypes$n = {
|
|
|
265
245
|
onClick: PropTypes__default["default"].func,
|
|
266
246
|
refButton: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].shape({
|
|
267
247
|
current: PropTypes__default["default"].any // eslint-disable-line
|
|
268
|
-
|
|
269
248
|
})])
|
|
270
249
|
};
|
|
250
|
+
|
|
271
251
|
var defaultProps$n = {
|
|
272
252
|
type: 'button',
|
|
273
253
|
theme: null,
|
|
@@ -293,35 +273,32 @@ var defaultProps$n = {
|
|
|
293
273
|
onClick: null,
|
|
294
274
|
refButton: null
|
|
295
275
|
};
|
|
296
|
-
|
|
297
276
|
var Button = function Button(_ref) {
|
|
298
277
|
var _ref2;
|
|
299
|
-
|
|
300
278
|
var type = _ref.type,
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
279
|
+
theme = _ref.theme;
|
|
280
|
+
_ref.size;
|
|
281
|
+
var href = _ref.href,
|
|
282
|
+
external = _ref.external,
|
|
283
|
+
direct = _ref.direct,
|
|
284
|
+
target = _ref.target,
|
|
285
|
+
label = _ref.label,
|
|
286
|
+
children = _ref.children,
|
|
287
|
+
focusable = _ref.focusable;
|
|
288
|
+
_ref.active;
|
|
289
|
+
var icon = _ref.icon,
|
|
290
|
+
iconPosition = _ref.iconPosition,
|
|
291
|
+
disabled = _ref.disabled,
|
|
292
|
+
loading = _ref.loading,
|
|
293
|
+
disableOnLoading = _ref.disableOnLoading;
|
|
294
|
+
_ref.withoutTheme;
|
|
295
|
+
var asLink = _ref.asLink,
|
|
296
|
+
onClick = _ref.onClick,
|
|
297
|
+
className = _ref.className,
|
|
298
|
+
iconClassName = _ref.iconClassName,
|
|
299
|
+
labelClassName = _ref.labelClassName,
|
|
300
|
+
refButton = _ref.refButton,
|
|
301
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded$8);
|
|
325
302
|
var finalLabel = label || children;
|
|
326
303
|
var text = finalLabel !== null ? /*#__PURE__*/React__default["default"].createElement(components.Label, null, finalLabel) : null;
|
|
327
304
|
var hasChildren = label !== null && children !== null;
|
|
@@ -329,19 +306,14 @@ var Button = function Button(_ref) {
|
|
|
329
306
|
var hasInlineIcon = hasIcon && (iconPosition === 'inline' || text === null);
|
|
330
307
|
var hasIconColumns = hasIcon && !hasInlineIcon;
|
|
331
308
|
var buttonClassNames = classNames__default["default"]([styles$g.container, styles$g["icon-".concat(iconPosition)], (_ref2 = {}, _defineProperty__default["default"](_ref2, styles$g.withIcon, hasIcon), _defineProperty__default["default"](_ref2, styles$g.withIconColumns, hasIconColumns), _defineProperty__default["default"](_ref2, styles$g.withText, text !== null), _defineProperty__default["default"](_ref2, styles$g.isLink, href !== null), _defineProperty__default["default"](_ref2, styles$g.asLink, asLink), _defineProperty__default["default"](_ref2, styles$g.isDisabled, disabled), _defineProperty__default["default"](_ref2, styles$g.isLoading, loading), _defineProperty__default["default"](_ref2, className, className !== null), _ref2)]);
|
|
332
|
-
|
|
333
309
|
var _ref3 = theme || {},
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
310
|
+
_ref3$colors = _ref3.colors,
|
|
311
|
+
colors = _ref3$colors === void 0 ? null : _ref3$colors;
|
|
337
312
|
var _ref4 = colors || {},
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
313
|
+
_ref4$primary = _ref4.primary,
|
|
314
|
+
brandPrimaryColor = _ref4$primary === void 0 ? null : _ref4$primary;
|
|
341
315
|
var primaryColor = utils.getStyleFromColor(brandPrimaryColor, 'color');
|
|
342
|
-
|
|
343
316
|
var buttonStyles = _objectSpread__default["default"]({}, primaryColor);
|
|
344
|
-
|
|
345
317
|
var content = /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, hasInlineIcon ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
346
318
|
className: classNames__default["default"]([styles$g.icon, _defineProperty__default["default"]({}, iconClassName, iconClassName !== null)])
|
|
347
319
|
}, icon), text !== null ? /*#__PURE__*/React__default["default"].createElement("span", {
|
|
@@ -353,7 +325,6 @@ var Button = function Button(_ref) {
|
|
|
353
325
|
}, text), iconPosition === 'right' ? /*#__PURE__*/React__default["default"].createElement("span", {
|
|
354
326
|
className: classNames__default["default"]([styles$g.icon, styles$g.right, _defineProperty__default["default"]({}, iconClassName, iconClassName !== null && iconPosition === 'right')])
|
|
355
327
|
}, icon) : null, hasChildren ? children : null) : null, !hasIcon ? text : null, hasChildren ? children : null);
|
|
356
|
-
|
|
357
328
|
if (href !== null) {
|
|
358
329
|
var linkClassNames = classNames__default["default"]([buttonClassNames, _defineProperty__default["default"]({
|
|
359
330
|
disabled: disabled
|
|
@@ -375,7 +346,6 @@ var Button = function Button(_ref) {
|
|
|
375
346
|
tabIndex: focusable ? '' : '-1'
|
|
376
347
|
}), content);
|
|
377
348
|
}
|
|
378
|
-
|
|
379
349
|
return /*#__PURE__*/React__default["default"].createElement("button", Object.assign({}, props, {
|
|
380
350
|
type: type,
|
|
381
351
|
className: buttonClassNames,
|
|
@@ -386,7 +356,6 @@ var Button = function Button(_ref) {
|
|
|
386
356
|
tabIndex: focusable ? '0' : '-1'
|
|
387
357
|
}), content);
|
|
388
358
|
};
|
|
389
|
-
|
|
390
359
|
Button.propTypes = propTypes$n;
|
|
391
360
|
Button.defaultProps = defaultProps$n;
|
|
392
361
|
|
|
@@ -399,18 +368,15 @@ var propTypes$m = {
|
|
|
399
368
|
var defaultProps$m = {
|
|
400
369
|
className: null
|
|
401
370
|
};
|
|
402
|
-
|
|
403
371
|
var IconButton = function IconButton(_ref) {
|
|
404
372
|
var className = _ref.className,
|
|
405
|
-
|
|
406
|
-
|
|
373
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded$7);
|
|
407
374
|
return /*#__PURE__*/React__default["default"].createElement(Button, Object.assign({
|
|
408
375
|
className: classNames__default["default"]([styles$f.container, _defineProperty__default["default"]({}, className, className !== null)]),
|
|
409
376
|
labelClassName: styles$f.label,
|
|
410
377
|
iconClassName: styles$f.icon
|
|
411
378
|
}, props));
|
|
412
379
|
};
|
|
413
|
-
|
|
414
380
|
IconButton.propTypes = propTypes$m;
|
|
415
381
|
IconButton.defaultProps = defaultProps$m;
|
|
416
382
|
|
|
@@ -421,11 +387,9 @@ var propTypes$l = {
|
|
|
421
387
|
var defaultProps$l = {
|
|
422
388
|
className: null
|
|
423
389
|
};
|
|
424
|
-
|
|
425
390
|
var CloseButton = function CloseButton(_ref) {
|
|
426
391
|
var className = _ref.className,
|
|
427
|
-
|
|
428
|
-
|
|
392
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded$6);
|
|
429
393
|
var intl = reactIntl.useIntl();
|
|
430
394
|
return /*#__PURE__*/React__default["default"].createElement(IconButton, Object.assign({
|
|
431
395
|
className: classNames__default["default"]([_defineProperty__default["default"]({}, className, className !== null)]),
|
|
@@ -447,7 +411,6 @@ var CloseButton = function CloseButton(_ref) {
|
|
|
447
411
|
}))
|
|
448
412
|
}, props));
|
|
449
413
|
};
|
|
450
|
-
|
|
451
414
|
CloseButton.propTypes = propTypes$l;
|
|
452
415
|
CloseButton.defaultProps = defaultProps$l;
|
|
453
416
|
|
|
@@ -458,11 +421,9 @@ var propTypes$k = {
|
|
|
458
421
|
var defaultProps$k = {
|
|
459
422
|
className: null
|
|
460
423
|
};
|
|
461
|
-
|
|
462
424
|
var MenuButton = function MenuButton(_ref) {
|
|
463
425
|
var className = _ref.className,
|
|
464
|
-
|
|
465
|
-
|
|
426
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded$5);
|
|
466
427
|
var intl = reactIntl.useIntl();
|
|
467
428
|
return /*#__PURE__*/React__default["default"].createElement(IconButton, Object.assign({
|
|
468
429
|
className: classNames__default["default"]([_defineProperty__default["default"]({}, className, className !== null)]),
|
|
@@ -486,7 +447,6 @@ var MenuButton = function MenuButton(_ref) {
|
|
|
486
447
|
}))
|
|
487
448
|
}, props));
|
|
488
449
|
};
|
|
489
|
-
|
|
490
450
|
MenuButton.propTypes = propTypes$k;
|
|
491
451
|
MenuButton.defaultProps = defaultProps$k;
|
|
492
452
|
|
|
@@ -497,11 +457,9 @@ var propTypes$j = {
|
|
|
497
457
|
var defaultProps$j = {
|
|
498
458
|
className: null
|
|
499
459
|
};
|
|
500
|
-
|
|
501
460
|
var ShareButton = function ShareButton(_ref) {
|
|
502
461
|
var className = _ref.className,
|
|
503
|
-
|
|
504
|
-
|
|
462
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded$4);
|
|
505
463
|
var intl = reactIntl.useIntl();
|
|
506
464
|
return /*#__PURE__*/React__default["default"].createElement(IconButton, Object.assign({
|
|
507
465
|
className: classNames__default["default"]([_defineProperty__default["default"]({}, className, className !== null)]),
|
|
@@ -526,7 +484,6 @@ var ShareButton = function ShareButton(_ref) {
|
|
|
526
484
|
}))
|
|
527
485
|
}, props));
|
|
528
486
|
};
|
|
529
|
-
|
|
530
487
|
ShareButton.propTypes = propTypes$j;
|
|
531
488
|
ShareButton.defaultProps = defaultProps$j;
|
|
532
489
|
|
|
@@ -547,13 +504,12 @@ var defaultProps$i = {
|
|
|
547
504
|
toggledButton: null,
|
|
548
505
|
toggledButtonClassName: null
|
|
549
506
|
};
|
|
550
|
-
|
|
551
507
|
var ToggleButton = function ToggleButton(_ref) {
|
|
552
508
|
var className = _ref.className,
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
509
|
+
progressSpring = _ref.progressSpring,
|
|
510
|
+
button = _ref.button,
|
|
511
|
+
toggledButton = _ref.toggledButton,
|
|
512
|
+
toggledButtonClassName = _ref.toggledButtonClassName;
|
|
557
513
|
if (button === null) return false;
|
|
558
514
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
559
515
|
className: classNames__default["default"]([styles$e.container, _defineProperty__default["default"]({}, className, className !== null)])
|
|
@@ -573,7 +529,6 @@ var ToggleButton = function ToggleButton(_ref) {
|
|
|
573
529
|
}
|
|
574
530
|
}, toggledButton));
|
|
575
531
|
};
|
|
576
|
-
|
|
577
532
|
ToggleButton.propTypes = propTypes$i;
|
|
578
533
|
ToggleButton.defaultProps = defaultProps$i;
|
|
579
534
|
|
|
@@ -592,21 +547,17 @@ var defaultProps$h = {
|
|
|
592
547
|
theme: null,
|
|
593
548
|
children: null
|
|
594
549
|
};
|
|
595
|
-
|
|
596
550
|
var ViewerMenuContainer = function ViewerMenuContainer(_ref) {
|
|
597
551
|
var className = _ref.className,
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
552
|
+
progressSpring = _ref.progressSpring,
|
|
553
|
+
viewerTheme = _ref.theme,
|
|
554
|
+
children = _ref.children;
|
|
602
555
|
var _ref2 = viewerTheme || {},
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
556
|
+
_ref2$background = _ref2.background,
|
|
557
|
+
background = _ref2$background === void 0 ? null : _ref2$background;
|
|
606
558
|
var _ref3 = background || {},
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
559
|
+
_ref3$color = _ref3.color,
|
|
560
|
+
brandBackgroundColor = _ref3$color === void 0 ? null : _ref3$color;
|
|
610
561
|
var backgroundColorStyle = utils.getStyleFromColor(brandBackgroundColor, 'backgroundColor');
|
|
611
562
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
612
563
|
className: classNames__default["default"]([styles$d.container, _defineProperty__default["default"]({}, className, className !== null)]),
|
|
@@ -636,7 +587,6 @@ var ViewerMenuContainer = function ViewerMenuContainer(_ref) {
|
|
|
636
587
|
}
|
|
637
588
|
}));
|
|
638
589
|
};
|
|
639
|
-
|
|
640
590
|
ViewerMenuContainer.propTypes = propTypes$h;
|
|
641
591
|
ViewerMenuContainer.defaultProps = defaultProps$h;
|
|
642
592
|
|
|
@@ -665,38 +615,33 @@ var defaultProps$g = {
|
|
|
665
615
|
onClick: null,
|
|
666
616
|
className: null
|
|
667
617
|
};
|
|
668
|
-
|
|
669
618
|
var ViewerMenuDot = function ViewerMenuDot(_ref) {
|
|
670
619
|
var _ref3;
|
|
671
|
-
|
|
672
620
|
var current = _ref.current,
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
621
|
+
active = _ref.active,
|
|
622
|
+
colors = _ref.colors,
|
|
623
|
+
count = _ref.count,
|
|
624
|
+
subIndex = _ref.subIndex,
|
|
625
|
+
vertical = _ref.vertical,
|
|
626
|
+
onClick = _ref.onClick,
|
|
627
|
+
className = _ref.className;
|
|
681
628
|
var _ref2 = colors || {},
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
629
|
+
_ref2$primary = _ref2.primary,
|
|
630
|
+
primary = _ref2$primary === void 0 ? 'rgba(255, 255, 255, 1)' : _ref2$primary,
|
|
631
|
+
_ref2$secondary = _ref2.secondary,
|
|
632
|
+
secondary = _ref2$secondary === void 0 ? 'rgba(255, 255, 255, 0.25)' : _ref2$secondary;
|
|
687
633
|
var _useSpring = core$1.useSpring(function () {
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
634
|
+
return {
|
|
635
|
+
scaleX: 0,
|
|
636
|
+
config: {
|
|
637
|
+
tension: 200,
|
|
638
|
+
friction: 30
|
|
639
|
+
}
|
|
640
|
+
};
|
|
641
|
+
}),
|
|
642
|
+
_useSpring2 = _slicedToArray__default["default"](_useSpring, 2),
|
|
643
|
+
dotSpringStyles = _useSpring2[0],
|
|
644
|
+
setDotSpringProps = _useSpring2[1];
|
|
700
645
|
React.useEffect(function () {
|
|
701
646
|
var activeRatio = active ? 1 : 0;
|
|
702
647
|
var ratio = count > 1 && current ? (subIndex + 1) / count : activeRatio;
|
|
@@ -726,11 +671,10 @@ var ViewerMenuDot = function ViewerMenuDot(_ref) {
|
|
|
726
671
|
})
|
|
727
672
|
}))));
|
|
728
673
|
};
|
|
729
|
-
|
|
730
674
|
ViewerMenuDot.propTypes = propTypes$g;
|
|
731
675
|
ViewerMenuDot.defaultProps = defaultProps$g;
|
|
732
676
|
|
|
733
|
-
var styles$b = {"container":"micromag-viewer-menus-menu-dots-container","closeButton":"micromag-viewer-menus-menu-dots-closeButton","
|
|
677
|
+
var styles$b = {"container":"micromag-viewer-menus-menu-dots-container","closeButton":"micromag-viewer-menus-menu-dots-closeButton","items":"micromag-viewer-menus-menu-dots-items","item":"micromag-viewer-menus-menu-dots-item","vertical":"micromag-viewer-menus-menu-dots-vertical"};
|
|
734
678
|
|
|
735
679
|
var _excluded$3 = ["direction", "items", "onClickDot", "onClickScreensMenu", "colors", "closeable", "withItemClick", "withoutScreensMenu", "onClose", "className"];
|
|
736
680
|
var propTypes$f = {
|
|
@@ -760,36 +704,30 @@ var defaultProps$f = {
|
|
|
760
704
|
onClose: null,
|
|
761
705
|
className: null
|
|
762
706
|
};
|
|
763
|
-
|
|
764
707
|
var ViewerMenuDots = function ViewerMenuDots(_ref) {
|
|
765
708
|
var _ref5;
|
|
766
|
-
|
|
767
709
|
var direction = _ref.direction,
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
710
|
+
items = _ref.items,
|
|
711
|
+
onClickDot = _ref.onClickDot,
|
|
712
|
+
onClickScreensMenu = _ref.onClickScreensMenu,
|
|
713
|
+
colors = _ref.colors,
|
|
714
|
+
closeable = _ref.closeable,
|
|
715
|
+
withItemClick = _ref.withItemClick,
|
|
716
|
+
withoutScreensMenu = _ref.withoutScreensMenu,
|
|
717
|
+
onClose = _ref.onClose,
|
|
718
|
+
className = _ref.className,
|
|
719
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded$3);
|
|
779
720
|
var _ref2 = colors || {},
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
721
|
+
_ref2$primary = _ref2.primary,
|
|
722
|
+
primary = _ref2$primary === void 0 ? 'rgba(255, 255, 255, 1)' : _ref2$primary;
|
|
783
723
|
var intl = reactIntl.useIntl();
|
|
784
724
|
var currentIndex = items.findIndex(function (_ref3) {
|
|
785
725
|
var _ref3$current = _ref3.current,
|
|
786
|
-
|
|
726
|
+
current = _ref3$current === void 0 ? false : _ref3$current;
|
|
787
727
|
return current;
|
|
788
728
|
});
|
|
789
|
-
|
|
790
729
|
var _ref4 = props || {},
|
|
791
|
-
|
|
792
|
-
|
|
730
|
+
style = _ref4.style;
|
|
793
731
|
return /*#__PURE__*/React__default["default"].createElement("nav", {
|
|
794
732
|
className: classNames__default["default"]([styles$b.container, (_ref5 = {}, _defineProperty__default["default"](_ref5, className, className !== null), _defineProperty__default["default"](_ref5, styles$b.vertical, direction === 'vertical'), _ref5)]),
|
|
795
733
|
"aria-label": intl.formatMessage({
|
|
@@ -819,13 +757,12 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
|
|
|
819
757
|
className: styles$b.items
|
|
820
758
|
}, items.map(function (item, index) {
|
|
821
759
|
var _ref6 = item || {},
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
760
|
+
_ref6$current = _ref6.current,
|
|
761
|
+
current = _ref6$current === void 0 ? false : _ref6$current,
|
|
762
|
+
_ref6$count = _ref6.count,
|
|
763
|
+
count = _ref6$count === void 0 ? 1 : _ref6$count,
|
|
764
|
+
_ref6$subIndex = _ref6.subIndex,
|
|
765
|
+
subIndex = _ref6$subIndex === void 0 ? 0 : _ref6$subIndex;
|
|
829
766
|
return /*#__PURE__*/React__default["default"].createElement(ViewerMenuDot, {
|
|
830
767
|
key: "item-".concat(index + 1),
|
|
831
768
|
current: current,
|
|
@@ -869,7 +806,6 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
|
|
|
869
806
|
icon: faTimes.faTimes
|
|
870
807
|
}))) : null));
|
|
871
808
|
};
|
|
872
|
-
|
|
873
809
|
ViewerMenuDots.propTypes = propTypes$f;
|
|
874
810
|
ViewerMenuDots.defaultProps = defaultProps$f;
|
|
875
811
|
|
|
@@ -879,7 +815,6 @@ var propTypes$e = {
|
|
|
879
815
|
var defaultProps$e = {
|
|
880
816
|
className: null
|
|
881
817
|
};
|
|
882
|
-
|
|
883
818
|
var StackIcon = function StackIcon(_ref) {
|
|
884
819
|
var className = _ref.className;
|
|
885
820
|
return /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
@@ -895,7 +830,6 @@ var StackIcon = function StackIcon(_ref) {
|
|
|
895
830
|
points: "10.5 1.5 10.5 16.5 1.5 16.5 1.5 17.5 11.5 17.5 11.5 1.5 10.5 1.5"
|
|
896
831
|
}));
|
|
897
832
|
};
|
|
898
|
-
|
|
899
833
|
StackIcon.propTypes = propTypes$e;
|
|
900
834
|
StackIcon.defaultProps = defaultProps$e;
|
|
901
835
|
|
|
@@ -917,29 +851,24 @@ var defaultProps$d = {
|
|
|
917
851
|
screenSize: null,
|
|
918
852
|
focusable: true
|
|
919
853
|
};
|
|
920
|
-
|
|
921
854
|
var ViewerMenuScreen = function ViewerMenuScreen(_ref) {
|
|
922
855
|
var _ref4;
|
|
923
|
-
|
|
924
856
|
var className = _ref.className,
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
857
|
+
item = _ref.item,
|
|
858
|
+
index = _ref.index,
|
|
859
|
+
_onClick = _ref.onClick,
|
|
860
|
+
screenSize = _ref.screenSize,
|
|
861
|
+
focusable = _ref.focusable;
|
|
930
862
|
var intl = reactIntl.useIntl();
|
|
931
|
-
|
|
932
863
|
var _ref2 = item || {},
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
864
|
+
_ref2$current = _ref2.current,
|
|
865
|
+
current = _ref2$current === void 0 ? false : _ref2$current,
|
|
866
|
+
screen = _ref2.screen,
|
|
867
|
+
_ref2$count = _ref2.count,
|
|
868
|
+
count = _ref2$count === void 0 ? 1 : _ref2$count;
|
|
939
869
|
var _ref3 = screenSize || {},
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
870
|
+
screenWidth = _ref3.width,
|
|
871
|
+
screenHeight = _ref3.height;
|
|
943
872
|
var screenAriaLabel = "".concat(intl.formatMessage({
|
|
944
873
|
id: "LkVfwW",
|
|
945
874
|
defaultMessage: [{
|
|
@@ -991,11 +920,10 @@ var ViewerMenuScreen = function ViewerMenuScreen(_ref) {
|
|
|
991
920
|
withSize: true
|
|
992
921
|
}) : null));
|
|
993
922
|
};
|
|
994
|
-
|
|
995
923
|
ViewerMenuScreen.propTypes = propTypes$d;
|
|
996
924
|
ViewerMenuScreen.defaultProps = defaultProps$d;
|
|
997
925
|
|
|
998
|
-
var styles$9 = {"scroll":"micromag-viewer-menus-menu-preview-scroll","container":"micromag-viewer-menus-menu-preview-container","disabled":"micromag-viewer-menus-menu-preview-disabled","screenButton":"micromag-viewer-menus-menu-preview-screenButton","content":"micromag-viewer-menus-menu-preview-content","buttons":"micromag-viewer-menus-menu-preview-buttons","organisation":"micromag-viewer-menus-menu-preview-organisation","icon":"micromag-viewer-menus-menu-preview-icon","title":"micromag-viewer-menus-menu-preview-title","nav":"micromag-viewer-menus-menu-preview-nav","
|
|
926
|
+
var styles$9 = {"scroll":"micromag-viewer-menus-menu-preview-scroll","container":"micromag-viewer-menus-menu-preview-container","disabled":"micromag-viewer-menus-menu-preview-disabled","screenButton":"micromag-viewer-menus-menu-preview-screenButton","content":"micromag-viewer-menus-menu-preview-content","buttons":"micromag-viewer-menus-menu-preview-buttons","organisation":"micromag-viewer-menus-menu-preview-organisation","icon":"micromag-viewer-menus-menu-preview-icon","title":"micromag-viewer-menus-menu-preview-title","nav":"micromag-viewer-menus-menu-preview-nav","items":"micromag-viewer-menus-menu-preview-items","item":"micromag-viewer-menus-menu-preview-item","inner":"micromag-viewer-menus-menu-preview-inner","frame":"micromag-viewer-menus-menu-preview-frame","screen":"micromag-viewer-menus-menu-preview-screen","intro":"micromag-viewer-menus-menu-preview-intro"};
|
|
999
927
|
|
|
1000
928
|
var propTypes$c = {
|
|
1001
929
|
viewerTheme: core.PropTypes.viewerTheme,
|
|
@@ -1030,59 +958,54 @@ var defaultProps$c = {
|
|
|
1030
958
|
// fullscreenEnabled: false,
|
|
1031
959
|
className: null
|
|
1032
960
|
};
|
|
1033
|
-
|
|
1034
961
|
var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
1035
962
|
var viewerTheme = _ref.viewerTheme,
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
963
|
+
screenSize = _ref.screenSize,
|
|
964
|
+
menuWidth = _ref.menuWidth,
|
|
965
|
+
items = _ref.items,
|
|
966
|
+
focusable = _ref.focusable,
|
|
967
|
+
onClickScreen = _ref.onClickScreen,
|
|
968
|
+
maxThumbsWidth = _ref.maxThumbsWidth,
|
|
969
|
+
paddingTop = _ref.paddingTop,
|
|
970
|
+
scrollDisabled = _ref.scrollDisabled,
|
|
971
|
+
className = _ref.className;
|
|
1046
972
|
var _useDimensionObserver = hooks.useDimensionObserver(),
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
973
|
+
containerRef = _useDimensionObserver.ref,
|
|
974
|
+
_useDimensionObserver2 = _useDimensionObserver.width,
|
|
975
|
+
contentWidth = _useDimensionObserver2 === void 0 ? 0 : _useDimensionObserver2;
|
|
1051
976
|
var thumbsPerLine = Math.max(Math.floor(contentWidth / maxThumbsWidth), 3); // @note cool, should be in recipes
|
|
977
|
+
|
|
1052
978
|
// @todo reimplement the brand logo
|
|
1053
979
|
// const { background = null, logo: brandLogo = null } = viewerTheme || {};
|
|
1054
|
-
|
|
1055
980
|
var _ref2 = viewerTheme || {},
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
981
|
+
_ref2$background = _ref2.background,
|
|
982
|
+
background = _ref2$background === void 0 ? null : _ref2$background;
|
|
1059
983
|
var _ref3 = background || {},
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
984
|
+
_ref3$image = _ref3.image,
|
|
985
|
+
image = _ref3$image === void 0 ? null : _ref3$image;
|
|
1063
986
|
var _ref4 = image || {},
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
987
|
+
_ref4$url = _ref4.url,
|
|
988
|
+
brandImageUrl = _ref4$url === void 0 ? null : _ref4$url;
|
|
1067
989
|
var brandImageStyle = brandImageUrl !== null ? {
|
|
1068
990
|
backgroundImage: "url(".concat(brandImageUrl, ")")
|
|
1069
|
-
} : null;
|
|
991
|
+
} : null;
|
|
1070
992
|
|
|
993
|
+
// const { url: brandLogoUrl = null } = brandLogo || {};
|
|
1071
994
|
var _useState = React.useState([]),
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
995
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
996
|
+
screensMounted = _useState2[0],
|
|
997
|
+
setScreensMounted = _useState2[1];
|
|
998
|
+
|
|
999
|
+
// @todo optimize all of this the proper way
|
|
1075
1000
|
// const finalItems = useMemo(
|
|
1076
1001
|
// () => (!focusable ? items.map((s, i) => (i > 6 ? { screenId: s.screenId } : s)) : items),
|
|
1077
1002
|
// [items, focusable],
|
|
1078
1003
|
// );
|
|
1079
1004
|
|
|
1080
|
-
|
|
1081
1005
|
React.useEffect(function () {
|
|
1082
1006
|
if (items.length === screensMounted.length) {
|
|
1083
1007
|
return function () {};
|
|
1084
1008
|
}
|
|
1085
|
-
|
|
1086
1009
|
var timeout = setTimeout(function () {
|
|
1087
1010
|
setScreensMounted([].concat(_toConsumableArray__default["default"](screensMounted), [true]));
|
|
1088
1011
|
}, 40);
|
|
@@ -1111,16 +1034,13 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
|
1111
1034
|
className: styles$9.items
|
|
1112
1035
|
}, items.map(function (item, index) {
|
|
1113
1036
|
var _ref6 = item || {},
|
|
1114
|
-
|
|
1115
|
-
|
|
1037
|
+
screenId = _ref6.screenId;
|
|
1116
1038
|
var itemStyles = {
|
|
1117
1039
|
width: "".concat(100 / thumbsPerLine, "%")
|
|
1118
1040
|
};
|
|
1119
|
-
|
|
1120
1041
|
var _ref7 = screenSize || {},
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1042
|
+
screenWidth = _ref7.width,
|
|
1043
|
+
screenHeight = _ref7.height;
|
|
1124
1044
|
var screenMounted = screensMounted[index] || false;
|
|
1125
1045
|
return /*#__PURE__*/React__default["default"].createElement("li", {
|
|
1126
1046
|
key: "item-".concat(screenId),
|
|
@@ -1143,7 +1063,6 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
|
1143
1063
|
}) : null)));
|
|
1144
1064
|
}))))));
|
|
1145
1065
|
};
|
|
1146
|
-
|
|
1147
1066
|
ViewerMenuPreview.propTypes = propTypes$c;
|
|
1148
1067
|
ViewerMenuPreview.defaultProps = defaultProps$c;
|
|
1149
1068
|
|
|
@@ -1163,13 +1082,12 @@ var defaultProps$b = {
|
|
|
1163
1082
|
description: null,
|
|
1164
1083
|
className: null
|
|
1165
1084
|
};
|
|
1166
|
-
|
|
1167
1085
|
var MicromagPreview = function MicromagPreview(_ref) {
|
|
1168
1086
|
var screen = _ref.screen,
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1087
|
+
title = _ref.title,
|
|
1088
|
+
url = _ref.url,
|
|
1089
|
+
description = _ref.description,
|
|
1090
|
+
className = _ref.className;
|
|
1173
1091
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1174
1092
|
className: classNames__default["default"]([styles$8.container, _defineProperty__default["default"]({}, className, className)])
|
|
1175
1093
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
@@ -1187,7 +1105,6 @@ var MicromagPreview = function MicromagPreview(_ref) {
|
|
|
1187
1105
|
className: styles$8.url
|
|
1188
1106
|
}, url) : null, /*#__PURE__*/React__default["default"].createElement("p", null, description)));
|
|
1189
1107
|
};
|
|
1190
|
-
|
|
1191
1108
|
MicromagPreview.propTypes = propTypes$b;
|
|
1192
1109
|
MicromagPreview.defaultProps = defaultProps$b;
|
|
1193
1110
|
|
|
@@ -1219,75 +1136,62 @@ var defaultProps$a = {
|
|
|
1219
1136
|
onShare: null,
|
|
1220
1137
|
className: null
|
|
1221
1138
|
};
|
|
1222
|
-
|
|
1223
1139
|
var ViewerMenuShare = function ViewerMenuShare(_ref) {
|
|
1224
1140
|
var viewerTheme = _ref.viewerTheme,
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1141
|
+
menuWidth = _ref.menuWidth,
|
|
1142
|
+
title = _ref.title,
|
|
1143
|
+
description = _ref.description,
|
|
1144
|
+
items = _ref.items,
|
|
1145
|
+
focusable = _ref.focusable,
|
|
1146
|
+
paddingTop = _ref.paddingTop,
|
|
1147
|
+
currentScreenIndex = _ref.currentScreenIndex,
|
|
1148
|
+
shareUrl = _ref.shareUrl,
|
|
1149
|
+
onShare = _ref.onShare,
|
|
1150
|
+
className = _ref.className;
|
|
1236
1151
|
// Viewer theme
|
|
1237
1152
|
var _ref2 = viewerTheme || {},
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1153
|
+
_ref2$background = _ref2.background,
|
|
1154
|
+
background = _ref2$background === void 0 ? null : _ref2$background;
|
|
1241
1155
|
var _ref3 = background || {},
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1156
|
+
_ref3$image = _ref3.image,
|
|
1157
|
+
image = _ref3$image === void 0 ? null : _ref3$image;
|
|
1245
1158
|
var _ref4 = image || {},
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1159
|
+
_ref4$url = _ref4.url,
|
|
1160
|
+
brandImageUrl = _ref4$url === void 0 ? null : _ref4$url;
|
|
1249
1161
|
var brandImageStyle = brandImageUrl !== null ? {
|
|
1250
1162
|
backgroundImage: "url(".concat(brandImageUrl, ")")
|
|
1251
1163
|
} : null;
|
|
1252
1164
|
var coverScreen = React.useMemo(function () {
|
|
1253
1165
|
var _ref5 = items[0] || {},
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1166
|
+
_ref5$screen = _ref5.screen,
|
|
1167
|
+
screen = _ref5$screen === void 0 ? null : _ref5$screen;
|
|
1257
1168
|
return screen;
|
|
1258
1169
|
}, [items]);
|
|
1259
1170
|
var currentScreen = React.useMemo(function () {
|
|
1260
1171
|
var found = items.find(function (item) {
|
|
1261
1172
|
var _ref6 = item || {},
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1173
|
+
_ref6$current = _ref6.current,
|
|
1174
|
+
current = _ref6$current === void 0 ? false : _ref6$current;
|
|
1265
1175
|
return current;
|
|
1266
1176
|
});
|
|
1267
|
-
|
|
1268
1177
|
var _ref7 = found || {},
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1178
|
+
_ref7$screen = _ref7.screen,
|
|
1179
|
+
screen = _ref7$screen === void 0 ? null : _ref7$screen;
|
|
1272
1180
|
return screen;
|
|
1273
1181
|
}, [items, currentScreenIndex, focusable]);
|
|
1274
|
-
|
|
1275
1182
|
var _useState = React.useState(false),
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1183
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
1184
|
+
shareCurrentScreen = _useState2[0],
|
|
1185
|
+
setShareCurrentScreen = _useState2[1];
|
|
1280
1186
|
var onShareModeChange = React.useCallback(function () {
|
|
1281
1187
|
setShareCurrentScreen(function (value) {
|
|
1282
1188
|
return !value;
|
|
1283
1189
|
});
|
|
1284
1190
|
}, [setShareCurrentScreen]);
|
|
1285
|
-
|
|
1286
1191
|
var _useState3 = React.useState(shareUrl),
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1192
|
+
_useState4 = _slicedToArray__default["default"](_useState3, 2),
|
|
1193
|
+
finalShareUrl = _useState4[0],
|
|
1194
|
+
setFinalShareUrl = _useState4[1];
|
|
1291
1195
|
React.useEffect(function () {
|
|
1292
1196
|
setFinalShareUrl(shareCurrentScreen && currentScreenIndex !== 0 ? "".concat(shareUrl, "/").concat(currentScreenIndex + 1) : shareUrl);
|
|
1293
1197
|
}, [shareCurrentScreen, currentScreenIndex, setFinalShareUrl]);
|
|
@@ -1340,11 +1244,10 @@ var ViewerMenuShare = function ViewerMenuShare(_ref) {
|
|
|
1340
1244
|
shareCurrentScreen: shareCurrentScreen
|
|
1341
1245
|
})))));
|
|
1342
1246
|
};
|
|
1343
|
-
|
|
1344
1247
|
ViewerMenuShare.propTypes = propTypes$a;
|
|
1345
1248
|
ViewerMenuShare.defaultProps = defaultProps$a;
|
|
1346
1249
|
|
|
1347
|
-
var styles$6 = {"container":"micromag-viewer-container","
|
|
1250
|
+
var styles$6 = {"container":"micromag-viewer-container","screenContainer":"micromag-viewer-screenContainer","screensFrame":"micromag-viewer-screensFrame","menuShare":"micromag-viewer-menuShare","menuPreview":"micromag-viewer-menuPreview","menuContainer":"micromag-viewer-menuContainer","landscape":"micromag-viewer-landscape","hideMenu":"micromag-viewer-hideMenu","menuNavContainer":"micromag-viewer-menuNavContainer","menuTopContainer":"micromag-viewer-menuTopContainer","dots":"micromag-viewer-dots","disableMenu":"micromag-viewer-disableMenu","content":"micromag-viewer-content","withoutGestures":"micromag-viewer-withoutGestures","fadeMenu":"micromag-viewer-fadeMenu","withShadow":"micromag-viewer-withShadow","isOpened":"micromag-viewer-isOpened","menuItem":"micromag-viewer-menuItem","menuButton":"micromag-viewer-menuButton","slidingButton":"micromag-viewer-slidingButton","screensMenuButtonToggled":"micromag-viewer-screensMenuButtonToggled","navButton":"micromag-viewer-navButton","previous":"micromag-viewer-previous","next":"micromag-viewer-next","screen":"micromag-viewer-screen","current":"micromag-viewer-current","playbackControls":"micromag-viewer-playbackControls","arrowHint":"micromag-viewer-arrowHint","webView":"micromag-viewer-webView","shareIncentiveContainer":"micromag-viewer-shareIncentiveContainer","shareIncentive":"micromag-viewer-shareIncentive","shareIncentiveVisible":"micromag-viewer-shareIncentiveVisible"};
|
|
1348
1251
|
|
|
1349
1252
|
var propTypes$9 = {
|
|
1350
1253
|
story: core.PropTypes.story.isRequired,
|
|
@@ -1367,9 +1270,9 @@ var propTypes$9 = {
|
|
|
1367
1270
|
onClickCloseViewer: PropTypes__default["default"].func,
|
|
1368
1271
|
refDots: PropTypes__default["default"].shape({
|
|
1369
1272
|
current: PropTypes__default["default"].any // eslint-disable-line
|
|
1370
|
-
|
|
1371
1273
|
})
|
|
1372
1274
|
};
|
|
1275
|
+
|
|
1373
1276
|
var defaultProps$9 = {
|
|
1374
1277
|
currentScreenIndex: 0,
|
|
1375
1278
|
toggleFullscreen: null,
|
|
@@ -1390,75 +1293,63 @@ var defaultProps$9 = {
|
|
|
1390
1293
|
onClickCloseViewer: null,
|
|
1391
1294
|
refDots: null
|
|
1392
1295
|
};
|
|
1393
|
-
|
|
1394
1296
|
var ViewerMenu = function ViewerMenu(_ref) {
|
|
1395
1297
|
var _ref11;
|
|
1396
|
-
|
|
1397
1298
|
var story = _ref.story,
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1299
|
+
currentScreenIndex = _ref.currentScreenIndex,
|
|
1300
|
+
toggleFullscreen = _ref.toggleFullscreen,
|
|
1301
|
+
fullscreenActive = _ref.fullscreenActive,
|
|
1302
|
+
fullscreenEnabled = _ref.fullscreenEnabled,
|
|
1303
|
+
closeable = _ref.closeable,
|
|
1304
|
+
withShadow = _ref.withShadow,
|
|
1305
|
+
shareBasePath = _ref.shareBasePath,
|
|
1306
|
+
trackingEnabled = _ref.trackingEnabled,
|
|
1307
|
+
viewerTheme = _ref.theme,
|
|
1308
|
+
screenSize = _ref.screenSize,
|
|
1309
|
+
menuWidth = _ref.menuWidth,
|
|
1310
|
+
withDotItemClick = _ref.withDotItemClick,
|
|
1311
|
+
withoutScreensMenu = _ref.withoutScreensMenu,
|
|
1312
|
+
withoutShareMenu = _ref.withoutShareMenu,
|
|
1313
|
+
customOnClickScreen = _ref.onClickScreen;
|
|
1314
|
+
_ref.onClickMenu;
|
|
1315
|
+
var onClickCloseViewer = _ref.onClickCloseViewer,
|
|
1316
|
+
refDots = _ref.refDots;
|
|
1416
1317
|
var _story$components = story.components,
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1318
|
+
screens = _story$components === void 0 ? [] : _story$components,
|
|
1319
|
+
_story$title = story.title,
|
|
1320
|
+
title = _story$title === void 0 ? null : _story$title,
|
|
1321
|
+
_story$metadata = story.metadata,
|
|
1322
|
+
metadata = _story$metadata === void 0 ? null : _story$metadata;
|
|
1423
1323
|
var _ref2 = metadata || {},
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1324
|
+
_ref2$description = _ref2.description,
|
|
1325
|
+
description = _ref2$description === void 0 ? null : _ref2$description;
|
|
1427
1326
|
var currentScreen = screens !== null ? screens[currentScreenIndex] || null : null;
|
|
1428
|
-
|
|
1429
1327
|
var _ref3 = currentScreen || {},
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1328
|
+
_ref3$id = _ref3.id,
|
|
1329
|
+
screenId = _ref3$id === void 0 ? null : _ref3$id,
|
|
1330
|
+
_ref3$type = _ref3.type,
|
|
1331
|
+
screenType = _ref3$type === void 0 ? null : _ref3$type;
|
|
1435
1332
|
var _ref4 = viewerTheme || {},
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1333
|
+
_ref4$menuTheme = _ref4.menuTheme,
|
|
1334
|
+
menuTheme = _ref4$menuTheme === void 0 ? null : _ref4$menuTheme;
|
|
1439
1335
|
var _useViewerSize = contexts.useViewerSize(),
|
|
1440
|
-
|
|
1441
|
-
|
|
1336
|
+
viewerHeight = _useViewerSize.height;
|
|
1442
1337
|
var _useState = React.useState(false),
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1338
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
1339
|
+
menuOpened = _useState2[0],
|
|
1340
|
+
setMenuOpened = _useState2[1];
|
|
1447
1341
|
var _useState3 = React.useState(false),
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1342
|
+
_useState4 = _slicedToArray__default["default"](_useState3, 2),
|
|
1343
|
+
shareOpened = _useState4[0],
|
|
1344
|
+
setShareOpened = _useState4[1];
|
|
1452
1345
|
var _useState5 = React.useState(false),
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1346
|
+
_useState6 = _slicedToArray__default["default"](_useState5, 2),
|
|
1347
|
+
menuMounted = _useState6[0],
|
|
1348
|
+
setMenuMounted = _useState6[1];
|
|
1457
1349
|
var _useDimensionObserver = hooks.useDimensionObserver(),
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1350
|
+
navContainerRef = _useDimensionObserver.ref,
|
|
1351
|
+
_useDimensionObserver2 = _useDimensionObserver.height,
|
|
1352
|
+
navContainerHeight = _useDimensionObserver2 === void 0 ? 0 : _useDimensionObserver2;
|
|
1462
1353
|
var items = React.useMemo(function () {
|
|
1463
1354
|
return screens.map(function (it) {
|
|
1464
1355
|
var children = screens.filter(function (s) {
|
|
@@ -1480,7 +1371,7 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1480
1371
|
};
|
|
1481
1372
|
}).filter(function (_ref5) {
|
|
1482
1373
|
var _ref5$visible = _ref5.visible,
|
|
1483
|
-
|
|
1374
|
+
visible = _ref5$visible === void 0 ? true : _ref5$visible;
|
|
1484
1375
|
return visible;
|
|
1485
1376
|
});
|
|
1486
1377
|
}, [screens, screenId]);
|
|
@@ -1525,11 +1416,9 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1525
1416
|
}, [setShareOpened, setMenuOpened, trackScreenEvent]);
|
|
1526
1417
|
var onClickScreen = React.useCallback(function (screen) {
|
|
1527
1418
|
setMenuOpened(false);
|
|
1528
|
-
|
|
1529
1419
|
if (customOnClickScreen !== null) {
|
|
1530
1420
|
customOnClickScreen(screen);
|
|
1531
1421
|
}
|
|
1532
|
-
|
|
1533
1422
|
var index = items.findIndex(function (_ref6) {
|
|
1534
1423
|
var id = _ref6.id;
|
|
1535
1424
|
return id === screenId;
|
|
@@ -1542,40 +1431,34 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1542
1431
|
}, [trackScreenEvent]);
|
|
1543
1432
|
var computeShareProgress = React.useCallback(function (_ref7) {
|
|
1544
1433
|
var active = _ref7.active,
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1434
|
+
_ref7$direction = _slicedToArray__default["default"](_ref7.direction, 2),
|
|
1435
|
+
dy = _ref7$direction[1],
|
|
1436
|
+
_ref7$movement = _slicedToArray__default["default"](_ref7.movement, 2),
|
|
1437
|
+
my = _ref7$movement[1],
|
|
1438
|
+
_ref7$velocity = _slicedToArray__default["default"](_ref7.velocity, 2),
|
|
1439
|
+
vy = _ref7$velocity[1];
|
|
1552
1440
|
var progress = Math.max(0, my) / (viewerHeight * 0.8);
|
|
1553
1441
|
var reachedThreshold = (vy > 0.3 || Math.abs(progress) > 0.3) && dy !== -1;
|
|
1554
|
-
|
|
1555
1442
|
if (!active) {
|
|
1556
1443
|
if (reachedThreshold) onOpenShare();
|
|
1557
1444
|
return reachedThreshold ? 1 : 0;
|
|
1558
1445
|
}
|
|
1559
|
-
|
|
1560
1446
|
return progress;
|
|
1561
1447
|
}, [onOpenShare, viewerHeight]);
|
|
1562
1448
|
var computeShareProgressClose = React.useCallback(function (_ref8) {
|
|
1563
1449
|
var active = _ref8.active,
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1450
|
+
_ref8$direction = _slicedToArray__default["default"](_ref8.direction, 2),
|
|
1451
|
+
dy = _ref8$direction[1],
|
|
1452
|
+
_ref8$movement = _slicedToArray__default["default"](_ref8.movement, 2),
|
|
1453
|
+
my = _ref8$movement[1],
|
|
1454
|
+
_ref8$velocity = _slicedToArray__default["default"](_ref8.velocity, 2),
|
|
1455
|
+
vy = _ref8$velocity[1];
|
|
1571
1456
|
var progress = Math.max(0, my) / (viewerHeight * 0.8);
|
|
1572
1457
|
var reachedThreshold = (vy > 0.3 || Math.abs(progress) > 0.3) && dy !== -1;
|
|
1573
|
-
|
|
1574
1458
|
if (!active) {
|
|
1575
1459
|
if (reachedThreshold) onCloseShare();
|
|
1576
1460
|
return reachedThreshold ? 0 : 1;
|
|
1577
1461
|
}
|
|
1578
|
-
|
|
1579
1462
|
return 1 - progress;
|
|
1580
1463
|
}, [onCloseShare, viewerHeight]);
|
|
1581
1464
|
var springParams = React.useMemo(function () {
|
|
@@ -1586,64 +1469,54 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1586
1469
|
}
|
|
1587
1470
|
};
|
|
1588
1471
|
}, []);
|
|
1589
|
-
|
|
1590
1472
|
var _useDragProgress = hooks.useDragProgress({
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1473
|
+
progress: shareOpened ? 1 : 0,
|
|
1474
|
+
computeProgress: shareOpened ? computeShareProgressClose : computeShareProgress,
|
|
1475
|
+
springParams: springParams
|
|
1476
|
+
}),
|
|
1477
|
+
bindShareDrag = _useDragProgress.bind,
|
|
1478
|
+
draggingShare = _useDragProgress.dragging,
|
|
1479
|
+
shareOpenedProgress = _useDragProgress.progress;
|
|
1599
1480
|
var computeMenuProgress = React.useCallback(function (_ref9) {
|
|
1600
1481
|
var active = _ref9.active,
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1482
|
+
_ref9$direction = _slicedToArray__default["default"](_ref9.direction, 2),
|
|
1483
|
+
dy = _ref9$direction[1],
|
|
1484
|
+
_ref9$movement = _slicedToArray__default["default"](_ref9.movement, 2),
|
|
1485
|
+
my = _ref9$movement[1],
|
|
1486
|
+
_ref9$velocity = _slicedToArray__default["default"](_ref9.velocity, 2),
|
|
1487
|
+
vy = _ref9$velocity[1];
|
|
1608
1488
|
var progress = Math.max(0, my) / (window.innerHeight * 0.8);
|
|
1609
1489
|
var reachedThreshold = (vy > 0.3 || Math.abs(progress) > 0.3) && dy !== -1;
|
|
1610
|
-
|
|
1611
1490
|
if (!active) {
|
|
1612
1491
|
if (reachedThreshold) onOpenMenu();
|
|
1613
1492
|
return reachedThreshold ? 1 : 0;
|
|
1614
1493
|
}
|
|
1615
|
-
|
|
1616
1494
|
return progress;
|
|
1617
1495
|
}, [onOpenMenu]);
|
|
1618
1496
|
var computeMenuProgressClose = React.useCallback(function (_ref10) {
|
|
1619
1497
|
var active = _ref10.active,
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1498
|
+
_ref10$direction = _slicedToArray__default["default"](_ref10.direction, 2),
|
|
1499
|
+
dy = _ref10$direction[1],
|
|
1500
|
+
_ref10$movement = _slicedToArray__default["default"](_ref10.movement, 2),
|
|
1501
|
+
my = _ref10$movement[1],
|
|
1502
|
+
_ref10$velocity = _slicedToArray__default["default"](_ref10.velocity, 2),
|
|
1503
|
+
vy = _ref10$velocity[1];
|
|
1627
1504
|
var progress = Math.max(0, my) / (window.innerHeight * 0.8);
|
|
1628
1505
|
var reachedThreshold = (vy > 0.3 || Math.abs(progress) > 0.3) && dy !== -1;
|
|
1629
|
-
|
|
1630
1506
|
if (!active) {
|
|
1631
1507
|
if (reachedThreshold) onCloseMenu();
|
|
1632
1508
|
return reachedThreshold ? 0 : 1;
|
|
1633
1509
|
}
|
|
1634
|
-
|
|
1635
1510
|
return 1 - progress;
|
|
1636
1511
|
}, [onCloseMenu]);
|
|
1637
|
-
|
|
1638
1512
|
var _useDragProgress2 = hooks.useDragProgress({
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1513
|
+
progress: menuOpened ? 1 : 0,
|
|
1514
|
+
computeProgress: menuOpened ? computeMenuProgressClose : computeMenuProgress,
|
|
1515
|
+
springParams: springParams
|
|
1516
|
+
}),
|
|
1517
|
+
bindMenuDrag = _useDragProgress2.bind,
|
|
1518
|
+
draggingMenu = _useDragProgress2.dragging,
|
|
1519
|
+
menuOpenedProgress = _useDragProgress2.progress;
|
|
1647
1520
|
var keyboardShortcuts = React.useMemo(function () {
|
|
1648
1521
|
return {
|
|
1649
1522
|
m: function m() {
|
|
@@ -1656,9 +1529,12 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1656
1529
|
}, [menuOpened, onOpenMenu, onCloseMenu]);
|
|
1657
1530
|
useKeyboardShortcuts(keyboardShortcuts);
|
|
1658
1531
|
var menuOpenedProgressValue = menuOpenedProgress ? menuOpenedProgress.value || 0 : 0;
|
|
1659
|
-
var shareOpenedProgressValue = shareOpenedProgress ? shareOpenedProgress.value || 0 : 0;
|
|
1532
|
+
var shareOpenedProgressValue = shareOpenedProgress ? shareOpenedProgress.value || 0 : 0;
|
|
1533
|
+
|
|
1534
|
+
// should be zero if either screens menu or share menu is opened
|
|
1535
|
+
var dotsOpacity = Math.min(1, Math.max(0, 1 - (menuOpenedProgressValue + shareOpenedProgressValue)));
|
|
1660
1536
|
|
|
1661
|
-
|
|
1537
|
+
// console.log(dotsOpacity, menuProgressValue, shareProgressValue);
|
|
1662
1538
|
|
|
1663
1539
|
React.useEffect(function () {
|
|
1664
1540
|
if ((menuOpened || draggingMenu) && !menuMounted) {
|
|
@@ -1727,7 +1603,6 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1727
1603
|
className: styles$6.dots,
|
|
1728
1604
|
style: {
|
|
1729
1605
|
opacity: Math.pow(dotsOpacity, 5) // @note this is like a "quint" easing, meaning it'll go towards 1 slowly first and then fast as it approaches 1
|
|
1730
|
-
|
|
1731
1606
|
}
|
|
1732
1607
|
}))), /*#__PURE__*/React__default["default"].createElement(ViewerMenuContainer, {
|
|
1733
1608
|
className: styles$6.menuContainer,
|
|
@@ -1768,7 +1643,6 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1768
1643
|
fullscreenEnabled: fullscreenEnabled
|
|
1769
1644
|
}) : null));
|
|
1770
1645
|
};
|
|
1771
|
-
|
|
1772
1646
|
ViewerMenu.propTypes = propTypes$9;
|
|
1773
1647
|
ViewerMenu.defaultProps = defaultProps$9;
|
|
1774
1648
|
var ViewerMenu$1 = /*#__PURE__*/React__default["default"].memo(ViewerMenu);
|
|
@@ -1803,34 +1677,29 @@ var defaultProps$8 = {
|
|
|
1803
1677
|
// withNavigationHint: false,
|
|
1804
1678
|
className: null
|
|
1805
1679
|
};
|
|
1806
|
-
|
|
1807
1680
|
function ViewerScreen(_ref) {
|
|
1808
1681
|
var screen = _ref.screen,
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1682
|
+
renderContext = _ref.renderContext,
|
|
1683
|
+
index = _ref.index,
|
|
1684
|
+
screenState = _ref.screenState,
|
|
1685
|
+
active = _ref.active,
|
|
1686
|
+
current = _ref.current,
|
|
1687
|
+
mediaRef = _ref.mediaRef,
|
|
1688
|
+
width = _ref.width,
|
|
1689
|
+
height = _ref.height,
|
|
1690
|
+
scale = _ref.scale,
|
|
1691
|
+
className = _ref.className;
|
|
1820
1692
|
var _useState = React.useState(active || current),
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1693
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
1694
|
+
mounted = _useState2[0],
|
|
1695
|
+
setMounted = _useState2[1];
|
|
1825
1696
|
React.useEffect(function () {
|
|
1826
1697
|
var timeout = null;
|
|
1827
|
-
|
|
1828
1698
|
if (active !== mounted) {
|
|
1829
1699
|
timeout = setTimeout(function () {
|
|
1830
1700
|
setMounted(active);
|
|
1831
1701
|
}, 200);
|
|
1832
1702
|
}
|
|
1833
|
-
|
|
1834
1703
|
return function () {
|
|
1835
1704
|
if (timeout !== null) {
|
|
1836
1705
|
clearTimeout(timeout);
|
|
@@ -1858,7 +1727,6 @@ function ViewerScreen(_ref) {
|
|
|
1858
1727
|
mediaRef: mediaRef
|
|
1859
1728
|
}) : null));
|
|
1860
1729
|
}
|
|
1861
|
-
|
|
1862
1730
|
ViewerScreen.propTypes = propTypes$8;
|
|
1863
1731
|
ViewerScreen.defaultProps = defaultProps$8;
|
|
1864
1732
|
|
|
@@ -1874,11 +1742,10 @@ var defaultProps$7 = {
|
|
|
1874
1742
|
onClick: null,
|
|
1875
1743
|
className: null
|
|
1876
1744
|
};
|
|
1877
|
-
|
|
1878
1745
|
var NavigationButton = function NavigationButton(_ref) {
|
|
1879
1746
|
var direction = _ref.direction,
|
|
1880
|
-
|
|
1881
|
-
|
|
1747
|
+
onClick = _ref.onClick,
|
|
1748
|
+
className = _ref.className;
|
|
1882
1749
|
return /*#__PURE__*/React__default["default"].createElement(IconButton, {
|
|
1883
1750
|
className: classNames__default["default"]([styles$4.container, styles$4[direction], _defineProperty__default["default"]({}, className, className !== null)]),
|
|
1884
1751
|
onClick: onClick,
|
|
@@ -1910,7 +1777,6 @@ var NavigationButton = function NavigationButton(_ref) {
|
|
|
1910
1777
|
}))
|
|
1911
1778
|
});
|
|
1912
1779
|
};
|
|
1913
|
-
|
|
1914
1780
|
NavigationButton.propTypes = propTypes$7;
|
|
1915
1781
|
NavigationButton.defaultProps = defaultProps$7;
|
|
1916
1782
|
|
|
@@ -1922,7 +1788,6 @@ var propTypes$6 = {
|
|
|
1922
1788
|
var defaultProps$6 = {
|
|
1923
1789
|
className: null
|
|
1924
1790
|
};
|
|
1925
|
-
|
|
1926
1791
|
var ArrowHint = function ArrowHint(_ref) {
|
|
1927
1792
|
var className = _ref.className;
|
|
1928
1793
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
@@ -1943,7 +1808,6 @@ var ArrowHint = function ArrowHint(_ref) {
|
|
|
1943
1808
|
points: "9.62 4.62 5 0 0.38 4.62 1.44 5.68 4.25 2.87 4.25 14.39 5.75 14.39 5.75 2.87 8.56 5.68 9.62 4.62"
|
|
1944
1809
|
}))));
|
|
1945
1810
|
};
|
|
1946
|
-
|
|
1947
1811
|
ArrowHint.propTypes = propTypes$6;
|
|
1948
1812
|
ArrowHint.defaultProps = defaultProps$6;
|
|
1949
1813
|
|
|
@@ -1969,28 +1833,22 @@ var stopDragEventsPropagation = {
|
|
|
1969
1833
|
return e.stopPropagation();
|
|
1970
1834
|
}
|
|
1971
1835
|
};
|
|
1972
|
-
|
|
1973
1836
|
function getFormattedTimestamp() {
|
|
1974
1837
|
var secondsWithMs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
1975
|
-
|
|
1976
1838
|
if (secondsWithMs === null || secondsWithMs <= 0) {
|
|
1977
1839
|
return '00:00';
|
|
1978
1840
|
}
|
|
1979
|
-
|
|
1980
1841
|
var parts = "".concat(secondsWithMs).split('.');
|
|
1981
|
-
|
|
1982
1842
|
var _ref = parts || [],
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1843
|
+
_ref2 = _slicedToArray__default["default"](_ref, 1),
|
|
1844
|
+
_ref2$ = _ref2[0],
|
|
1845
|
+
fullSeconds = _ref2$ === void 0 ? 0 : _ref2$;
|
|
1987
1846
|
var finalFullSeconds = Math.round(fullSeconds);
|
|
1988
1847
|
var seconds = finalFullSeconds % 60;
|
|
1989
1848
|
var diff = finalFullSeconds - seconds;
|
|
1990
1849
|
var minutes = diff > 0 ? diff / 60 : 0;
|
|
1991
1850
|
return "".concat(String(Math.round(minutes)).padStart(2, '0'), ":").concat(String(Math.round(seconds)).padStart(2, '0'));
|
|
1992
1851
|
}
|
|
1993
|
-
|
|
1994
1852
|
var SHOW_MILLISECONDS_THRESHOLD = 5; // show milliseconds when scrubbing if length of video is shorter than 5 seconds
|
|
1995
1853
|
|
|
1996
1854
|
var propTypes$5 = {
|
|
@@ -1998,6 +1856,7 @@ var propTypes$5 = {
|
|
|
1998
1856
|
current: PropTypes__default["default"].any
|
|
1999
1857
|
}) // eslint-disable-line
|
|
2000
1858
|
]),
|
|
1859
|
+
|
|
2001
1860
|
playing: PropTypes__default["default"].bool,
|
|
2002
1861
|
backgroundColor: PropTypes__default["default"].string,
|
|
2003
1862
|
progressColor: PropTypes__default["default"].string,
|
|
@@ -2020,63 +1879,53 @@ var defaultProps$5 = {
|
|
|
2020
1879
|
className: null,
|
|
2021
1880
|
withSeekHead: true
|
|
2022
1881
|
};
|
|
2023
|
-
|
|
2024
1882
|
var SeekBar = function SeekBar(_ref3) {
|
|
2025
1883
|
var _ref6;
|
|
2026
|
-
|
|
2027
1884
|
var media = _ref3.media,
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
1885
|
+
playing = _ref3.playing,
|
|
1886
|
+
backgroundColor = _ref3.backgroundColor,
|
|
1887
|
+
progressColor = _ref3.progressColor,
|
|
1888
|
+
onSeek = _ref3.onSeek,
|
|
1889
|
+
onSeekStart = _ref3.onSeekStart,
|
|
1890
|
+
onSeekEnd = _ref3.onSeekEnd,
|
|
1891
|
+
focusable = _ref3.focusable,
|
|
1892
|
+
className = _ref3.className,
|
|
1893
|
+
withSeekHead = _ref3.withSeekHead;
|
|
2037
1894
|
var intl = reactIntl.useIntl();
|
|
2038
1895
|
var progress = hooks.useMediaProgress(media, {
|
|
2039
1896
|
disabled: !playing
|
|
2040
1897
|
});
|
|
2041
|
-
|
|
2042
1898
|
var _ref4 = media || {},
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
1899
|
+
_ref4$currentTime = _ref4.currentTime,
|
|
1900
|
+
currentTime = _ref4$currentTime === void 0 ? null : _ref4$currentTime,
|
|
1901
|
+
_ref4$duration = _ref4.duration,
|
|
1902
|
+
duration = _ref4$duration === void 0 ? null : _ref4$duration;
|
|
2048
1903
|
var _useState = React.useState(false),
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
1904
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
1905
|
+
showTimestamp = _useState2[0],
|
|
1906
|
+
setShowTimestamp = _useState2[1];
|
|
2053
1907
|
var onDrag = React.useCallback(function (_ref5) {
|
|
2054
1908
|
var _ref5$xy = _slicedToArray__default["default"](_ref5.xy, 1),
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
1909
|
+
x = _ref5$xy[0],
|
|
1910
|
+
elapsedTime = _ref5.elapsedTime,
|
|
1911
|
+
active = _ref5.active,
|
|
1912
|
+
tap = _ref5.tap,
|
|
1913
|
+
currentTarget = _ref5.currentTarget;
|
|
2061
1914
|
if (!active && elapsedTime > 300) {
|
|
2062
1915
|
return;
|
|
2063
1916
|
}
|
|
2064
|
-
|
|
2065
1917
|
var _currentTarget$getBou = currentTarget.getBoundingClientRect(),
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
1918
|
+
_currentTarget$getBou2 = _currentTarget$getBou.left,
|
|
1919
|
+
elX = _currentTarget$getBou2 === void 0 ? 0 : _currentTarget$getBou2,
|
|
1920
|
+
_currentTarget$getBou3 = _currentTarget$getBou.width,
|
|
1921
|
+
elWidth = _currentTarget$getBou3 === void 0 ? 0 : _currentTarget$getBou3;
|
|
2071
1922
|
var newProgress = Math.max(0, Math.min(1, (x - elX) / elWidth));
|
|
2072
|
-
|
|
2073
1923
|
if (onSeek !== null) {
|
|
2074
1924
|
onSeek(newProgress, tap);
|
|
2075
1925
|
}
|
|
2076
1926
|
}, [onSeek]);
|
|
2077
1927
|
var onDragStart = React.useCallback(function () {
|
|
2078
1928
|
setShowTimestamp(true);
|
|
2079
|
-
|
|
2080
1929
|
if (onSeekStart !== null) {
|
|
2081
1930
|
onSeekStart();
|
|
2082
1931
|
}
|
|
@@ -2143,11 +1992,10 @@ var SeekBar = function SeekBar(_ref3) {
|
|
|
2143
1992
|
tabIndex: focusable ? '0' : '-1'
|
|
2144
1993
|
}))));
|
|
2145
1994
|
};
|
|
2146
|
-
|
|
2147
1995
|
SeekBar.propTypes = propTypes$5;
|
|
2148
1996
|
SeekBar.defaultProps = defaultProps$5;
|
|
2149
1997
|
|
|
2150
|
-
var styles$1 = {"
|
|
1998
|
+
var styles$1 = {"playPauseButton":"micromag-viewer-partials-playback-controls-playPauseButton","muteButton":"micromag-viewer-partials-playback-controls-muteButton","container":"micromag-viewer-partials-playback-controls-container","icon":"micromag-viewer-partials-playback-controls-icon","withPlayPause":"micromag-viewer-partials-playback-controls-withPlayPause","isCollapsed":"micromag-viewer-partials-playback-controls-isCollapsed","isMuted":"micromag-viewer-partials-playback-controls-isMuted","withMute":"micromag-viewer-partials-playback-controls-withMute","withSeekBar":"micromag-viewer-partials-playback-controls-withSeekBar","seekBar":"micromag-viewer-partials-playback-controls-seekBar","withSeekBarOnly":"micromag-viewer-partials-playback-controls-withSeekBarOnly"};
|
|
2151
1999
|
|
|
2152
2000
|
var propTypes$4 = {
|
|
2153
2001
|
className: PropTypes__default["default"].string,
|
|
@@ -2157,46 +2005,39 @@ var defaultProps$4 = {
|
|
|
2157
2005
|
className: null,
|
|
2158
2006
|
collapsedClassName: null
|
|
2159
2007
|
};
|
|
2160
|
-
|
|
2161
2008
|
function PlaybackControls(_ref) {
|
|
2162
2009
|
var _ref4;
|
|
2163
|
-
|
|
2164
2010
|
var className = _ref.className,
|
|
2165
|
-
|
|
2011
|
+
collapsedClassName = _ref.collapsedClassName;
|
|
2166
2012
|
var intl = reactIntl.useIntl();
|
|
2167
|
-
|
|
2168
2013
|
var _usePlaybackContext = contexts.usePlaybackContext(),
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2014
|
+
_usePlaybackContext$m = _usePlaybackContext.media,
|
|
2015
|
+
mediaElement = _usePlaybackContext$m === void 0 ? null : _usePlaybackContext$m,
|
|
2016
|
+
_usePlaybackContext$h = _usePlaybackContext.hasAudio,
|
|
2017
|
+
hasAudio = _usePlaybackContext$h === void 0 ? null : _usePlaybackContext$h,
|
|
2018
|
+
_usePlaybackContext$p = _usePlaybackContext.playing,
|
|
2019
|
+
playing = _usePlaybackContext$p === void 0 ? false : _usePlaybackContext$p,
|
|
2020
|
+
_usePlaybackContext$m2 = _usePlaybackContext.muted,
|
|
2021
|
+
muted = _usePlaybackContext$m2 === void 0 ? true : _usePlaybackContext$m2,
|
|
2022
|
+
setPlaying = _usePlaybackContext.setPlaying,
|
|
2023
|
+
setMuted = _usePlaybackContext.setMuted,
|
|
2024
|
+
controls = _usePlaybackContext.controls,
|
|
2025
|
+
controlsVisible = _usePlaybackContext.controlsVisible,
|
|
2026
|
+
controlsTheme = _usePlaybackContext.controlsTheme,
|
|
2027
|
+
showControls = _usePlaybackContext.showControls;
|
|
2184
2028
|
var _useState = React.useState(null),
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2029
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
2030
|
+
customControlsTheme = _useState2[0],
|
|
2031
|
+
setCustomControlsTheme = _useState2[1];
|
|
2189
2032
|
var _useState3 = React.useState(false),
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2033
|
+
_useState4 = _slicedToArray__default["default"](_useState3, 2),
|
|
2034
|
+
wasPlaying = _useState4[0],
|
|
2035
|
+
setWasPlaying = _useState4[1];
|
|
2194
2036
|
React.useEffect(function () {
|
|
2195
2037
|
var _ref2 = controlsTheme || {},
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2038
|
+
color = _ref2.color,
|
|
2039
|
+
progressColor = _ref2.progressColor,
|
|
2040
|
+
seekBarOnly = _ref2.seekBarOnly;
|
|
2200
2041
|
setCustomControlsTheme({
|
|
2201
2042
|
color: utils.getColorAsString(color),
|
|
2202
2043
|
progressColor: utils.getColorAsString(progressColor),
|
|
@@ -2205,35 +2046,30 @@ function PlaybackControls(_ref) {
|
|
|
2205
2046
|
}, [controlsTheme, setCustomControlsTheme]);
|
|
2206
2047
|
var onPlay = React.useCallback(function () {
|
|
2207
2048
|
setPlaying(true);
|
|
2208
|
-
|
|
2209
2049
|
if (!controlsVisible && controls) {
|
|
2210
2050
|
showControls();
|
|
2211
2051
|
}
|
|
2212
2052
|
}, [setPlaying, controlsVisible, showControls]);
|
|
2213
2053
|
var onPause = React.useCallback(function () {
|
|
2214
2054
|
setPlaying(false);
|
|
2215
|
-
|
|
2216
2055
|
if (!controlsVisible && controls) {
|
|
2217
2056
|
showControls();
|
|
2218
2057
|
}
|
|
2219
2058
|
}, [setPlaying, controlsVisible, controls, showControls]);
|
|
2220
2059
|
var onMute = React.useCallback(function () {
|
|
2221
2060
|
setMuted(true);
|
|
2222
|
-
|
|
2223
2061
|
if (!controlsVisible && controls) {
|
|
2224
2062
|
showControls();
|
|
2225
2063
|
}
|
|
2226
2064
|
}, [setMuted, controlsVisible, showControls]);
|
|
2227
2065
|
var onUnmute = React.useCallback(function () {
|
|
2228
2066
|
setMuted(false);
|
|
2229
|
-
|
|
2230
2067
|
if (!controlsVisible && controls) {
|
|
2231
2068
|
showControls();
|
|
2232
2069
|
}
|
|
2233
2070
|
}, [setMuted, controlsVisible, showControls]);
|
|
2234
2071
|
var onSeekStart = React.useCallback(function () {
|
|
2235
2072
|
setWasPlaying(playing);
|
|
2236
|
-
|
|
2237
2073
|
if (playing) {
|
|
2238
2074
|
setPlaying(false);
|
|
2239
2075
|
}
|
|
@@ -2242,7 +2078,6 @@ function PlaybackControls(_ref) {
|
|
|
2242
2078
|
if (mediaElement !== null) {
|
|
2243
2079
|
mediaElement.currentTime = progress * mediaElement.duration;
|
|
2244
2080
|
}
|
|
2245
|
-
|
|
2246
2081
|
if (!controlsVisible && controls) {
|
|
2247
2082
|
showControls();
|
|
2248
2083
|
}
|
|
@@ -2254,12 +2089,10 @@ function PlaybackControls(_ref) {
|
|
|
2254
2089
|
}, [setPlaying, wasPlaying]);
|
|
2255
2090
|
var hasMedia = mediaElement !== null;
|
|
2256
2091
|
var mediaHasAudio = hasMedia && (hasAudio === null || hasAudio === true);
|
|
2257
|
-
|
|
2258
2092
|
var _ref3 = customControlsTheme || {},
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2093
|
+
color = _ref3.color,
|
|
2094
|
+
progressColor = _ref3.progressColor,
|
|
2095
|
+
seekBarOnly = _ref3.seekBarOnly;
|
|
2263
2096
|
var isCollapsed = controls && !controlsVisible && playing || !controls && mediaHasAudio;
|
|
2264
2097
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
2265
2098
|
className: classNames__default["default"]([styles$1.container, (_ref4 = {}, _defineProperty__default["default"](_ref4, className, className !== null), _defineProperty__default["default"](_ref4, styles$1.withPlayPause, controls && !seekBarOnly), _defineProperty__default["default"](_ref4, styles$1.withMute, hasMedia || controls), _defineProperty__default["default"](_ref4, styles$1.withSeekBar, controls), _defineProperty__default["default"](_ref4, styles$1.withSeekBarOnly, seekBarOnly), _defineProperty__default["default"](_ref4, styles$1.isCollapsed, isCollapsed), _defineProperty__default["default"](_ref4, styles$1.isMuted, muted), _defineProperty__default["default"](_ref4, collapsedClassName, collapsedClassName !== null && isCollapsed), _ref4)])
|
|
@@ -2388,7 +2221,6 @@ function PlaybackControls(_ref) {
|
|
|
2388
2221
|
withoutBootstrapStyles: true
|
|
2389
2222
|
}));
|
|
2390
2223
|
}
|
|
2391
|
-
|
|
2392
2224
|
PlaybackControls.propTypes = propTypes$4;
|
|
2393
2225
|
PlaybackControls.defaultProps = defaultProps$4;
|
|
2394
2226
|
|
|
@@ -2403,38 +2235,31 @@ var defaultProps$3 = {
|
|
|
2403
2235
|
className: null,
|
|
2404
2236
|
style: null
|
|
2405
2237
|
};
|
|
2406
|
-
|
|
2407
2238
|
function WebViewContainer(_ref) {
|
|
2408
2239
|
var _ref2;
|
|
2409
|
-
|
|
2410
2240
|
var className = _ref.className,
|
|
2411
|
-
|
|
2412
|
-
|
|
2241
|
+
style = _ref.style;
|
|
2413
2242
|
var _useViewerWebView = contexts.useViewerWebView(),
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2243
|
+
opened = _useViewerWebView.opened,
|
|
2244
|
+
close = _useViewerWebView.close;
|
|
2245
|
+
_useViewerWebView.open;
|
|
2246
|
+
_useViewerWebView.update;
|
|
2247
|
+
var _useViewerWebView$url = _useViewerWebView.url,
|
|
2248
|
+
url = _useViewerWebView$url === void 0 ? null : _useViewerWebView$url,
|
|
2249
|
+
webViewProps = _objectWithoutProperties__default["default"](_useViewerWebView, _excluded$2);
|
|
2422
2250
|
var _useViewerInteraction = contexts.useViewerInteraction(),
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2251
|
+
disableInteraction = _useViewerInteraction.disableInteraction,
|
|
2252
|
+
enableInteraction = _useViewerInteraction.enableInteraction;
|
|
2426
2253
|
var _usePlaybackContext = contexts.usePlaybackContext(),
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2254
|
+
playing = _usePlaybackContext.playing,
|
|
2255
|
+
setPlaying = _usePlaybackContext.setPlaying;
|
|
2430
2256
|
var wasPlayingRef = React.useRef(playing);
|
|
2431
|
-
|
|
2432
2257
|
var _useState = React.useState(url),
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2258
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
2259
|
+
currentUrl = _useState2[0],
|
|
2260
|
+
setCurrentUrl = _useState2[1];
|
|
2437
2261
|
|
|
2262
|
+
// Handle current webview url
|
|
2438
2263
|
React.useEffect(function () {
|
|
2439
2264
|
if (url !== null) {
|
|
2440
2265
|
setCurrentUrl(url);
|
|
@@ -2444,19 +2269,18 @@ function WebViewContainer(_ref) {
|
|
|
2444
2269
|
if (url === null) {
|
|
2445
2270
|
setCurrentUrl(null);
|
|
2446
2271
|
}
|
|
2447
|
-
}, [url]);
|
|
2272
|
+
}, [url]);
|
|
2448
2273
|
|
|
2274
|
+
// Disable interaction and pause playback
|
|
2449
2275
|
React.useEffect(function () {
|
|
2450
2276
|
if (opened) {
|
|
2451
2277
|
disableInteraction();
|
|
2452
2278
|
wasPlayingRef.current = playing;
|
|
2453
|
-
|
|
2454
2279
|
if (playing) {
|
|
2455
2280
|
setPlaying(false);
|
|
2456
2281
|
}
|
|
2457
2282
|
} else {
|
|
2458
2283
|
enableInteraction();
|
|
2459
|
-
|
|
2460
2284
|
if (wasPlayingRef.current && !playing) {
|
|
2461
2285
|
wasPlayingRef.current = false;
|
|
2462
2286
|
setPlaying(true);
|
|
@@ -2475,15 +2299,14 @@ function WebViewContainer(_ref) {
|
|
|
2475
2299
|
onClose: close
|
|
2476
2300
|
})));
|
|
2477
2301
|
}
|
|
2478
|
-
|
|
2479
2302
|
WebViewContainer.propTypes = propTypes$3;
|
|
2480
2303
|
WebViewContainer.defaultProps = defaultProps$3;
|
|
2481
2304
|
|
|
2305
|
+
// @todo export from somewhere else; or use as props in possible component for screen transitions
|
|
2482
2306
|
var SPRING_CONFIG_TIGHT = {
|
|
2483
2307
|
tension: 300,
|
|
2484
2308
|
friction: 35
|
|
2485
2309
|
}; // tight
|
|
2486
|
-
|
|
2487
2310
|
var DRAG_PROGRESS_ACTIVATION_THRESHOLD = 0.3;
|
|
2488
2311
|
var DRAG_VELOCITY_ACTIVATION_THRESHOLD = 0.3;
|
|
2489
2312
|
var DEFAULT_TRANSITION_TYPE_LANDSCAPE = 'carousel';
|
|
@@ -2572,48 +2395,45 @@ var defaultProps$2 = {
|
|
|
2572
2395
|
screenSizeOptions: null,
|
|
2573
2396
|
className: null
|
|
2574
2397
|
};
|
|
2575
|
-
|
|
2576
2398
|
var Viewer = function Viewer(_ref) {
|
|
2577
2399
|
var _ref20;
|
|
2578
|
-
|
|
2579
2400
|
var story = _ref.story,
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2401
|
+
basePath = _ref.basePath,
|
|
2402
|
+
viewerTheme = _ref.theme,
|
|
2403
|
+
width = _ref.width,
|
|
2404
|
+
height = _ref.height,
|
|
2405
|
+
screenId = _ref.screen,
|
|
2406
|
+
screenState = _ref.screenState,
|
|
2407
|
+
deviceScreens = _ref.deviceScreens,
|
|
2408
|
+
renderContext = _ref.renderContext,
|
|
2409
|
+
tapNextScreenWidthPercent = _ref.tapNextScreenWidthPercent,
|
|
2410
|
+
storyIsParsed = _ref.storyIsParsed,
|
|
2411
|
+
neighborScreensActive = _ref.neighborScreensActive,
|
|
2412
|
+
neighborScreenOffset = _ref.neighborScreenOffset,
|
|
2413
|
+
neighborScreenScale = _ref.neighborScreenScale,
|
|
2414
|
+
withMetadata = _ref.withMetadata,
|
|
2415
|
+
withoutGestures = _ref.withoutGestures,
|
|
2416
|
+
withoutMenu = _ref.withoutMenu,
|
|
2417
|
+
withoutScreensMenu = _ref.withoutScreensMenu,
|
|
2418
|
+
withoutShareMenu = _ref.withoutShareMenu,
|
|
2419
|
+
withoutMenuShadow = _ref.withoutMenuShadow;
|
|
2420
|
+
_ref.withoutFullscreen;
|
|
2421
|
+
var withoutNavigationArrow = _ref.withoutNavigationArrow,
|
|
2422
|
+
withoutTransitions = _ref.withoutTransitions,
|
|
2423
|
+
withNeighborScreens = _ref.withNeighborScreens,
|
|
2424
|
+
withNavigationHint = _ref.withNavigationHint,
|
|
2425
|
+
withoutPlaybackControls = _ref.withoutPlaybackControls,
|
|
2426
|
+
menuIsScreenWidth = _ref.menuIsScreenWidth,
|
|
2427
|
+
closeable = _ref.closeable,
|
|
2428
|
+
onCloseViewer = _ref.onClose,
|
|
2429
|
+
onInteraction = _ref.onInteraction,
|
|
2430
|
+
onEnd = _ref.onEnd,
|
|
2431
|
+
onScreenChange = _ref.onScreenChange,
|
|
2432
|
+
onViewModeChange = _ref.onViewModeChange,
|
|
2433
|
+
currentScreenMedia = _ref.currentScreenMedia,
|
|
2434
|
+
screensMedias = _ref.screensMedias,
|
|
2435
|
+
screenSizeOptions = _ref.screenSizeOptions,
|
|
2436
|
+
className = _ref.className;
|
|
2617
2437
|
/**
|
|
2618
2438
|
* Screen Data + Processing
|
|
2619
2439
|
*/
|
|
@@ -2621,13 +2441,13 @@ var Viewer = function Viewer(_ref) {
|
|
|
2621
2441
|
disabled: storyIsParsed
|
|
2622
2442
|
}) || {};
|
|
2623
2443
|
var _parsedStory$componen = parsedStory.components,
|
|
2624
|
-
|
|
2625
|
-
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2444
|
+
screens = _parsedStory$componen === void 0 ? [] : _parsedStory$componen,
|
|
2445
|
+
_parsedStory$title = parsedStory.title,
|
|
2446
|
+
title = _parsedStory$title === void 0 ? null : _parsedStory$title,
|
|
2447
|
+
_parsedStory$metadata = parsedStory.metadata,
|
|
2448
|
+
metadata = _parsedStory$metadata === void 0 ? null : _parsedStory$metadata,
|
|
2449
|
+
_parsedStory$fonts = parsedStory.fonts,
|
|
2450
|
+
fonts = _parsedStory$fonts === void 0 ? null : _parsedStory$fonts;
|
|
2631
2451
|
var screensCount = screens.length;
|
|
2632
2452
|
var eventsManager = React.useMemo(function () {
|
|
2633
2453
|
return new EventEmitter__default["default"]();
|
|
@@ -2638,19 +2458,15 @@ var Viewer = function Viewer(_ref) {
|
|
|
2638
2458
|
}));
|
|
2639
2459
|
}, [screenId, screens]);
|
|
2640
2460
|
var currentScreen = screens[screenIndex] || null;
|
|
2641
|
-
|
|
2642
2461
|
var _ref2 = currentScreen || {},
|
|
2643
|
-
|
|
2644
|
-
|
|
2462
|
+
screenParameters = _ref2.parameters;
|
|
2645
2463
|
var _ref3 = screenParameters || {},
|
|
2646
|
-
|
|
2647
|
-
|
|
2464
|
+
screenMetadata = _ref3.metadata;
|
|
2648
2465
|
var _ref4 = screenMetadata || {},
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2466
|
+
_ref4$title = _ref4.title,
|
|
2467
|
+
screenTitle = _ref4$title === void 0 ? null : _ref4$title,
|
|
2468
|
+
_ref4$description = _ref4.description,
|
|
2469
|
+
screenDescription = _ref4$description === void 0 ? null : _ref4$description;
|
|
2654
2470
|
var finalTitle = screenTitle !== null ? screenTitle : title;
|
|
2655
2471
|
var finalMetadata = React.useMemo(function () {
|
|
2656
2472
|
return screenDescription !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, metadata), {}, {
|
|
@@ -2658,84 +2474,71 @@ var Viewer = function Viewer(_ref) {
|
|
|
2658
2474
|
}) : metadata;
|
|
2659
2475
|
}, [metadata, screenDescription]);
|
|
2660
2476
|
var screensMediasRef = React.useRef([]);
|
|
2661
|
-
|
|
2662
2477
|
if (currentScreenMedia !== null) {
|
|
2663
2478
|
currentScreenMedia.current = screensMediasRef.current[screenIndex] || null;
|
|
2664
2479
|
}
|
|
2665
|
-
|
|
2666
2480
|
if (screensMedias !== null) {
|
|
2667
2481
|
screensMedias.current = screensMediasRef.current;
|
|
2668
2482
|
}
|
|
2483
|
+
|
|
2669
2484
|
/**
|
|
2670
2485
|
* Screen Layout
|
|
2671
2486
|
*/
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
2487
|
var _ref5 = viewerTheme || {},
|
|
2675
|
-
|
|
2676
|
-
|
|
2488
|
+
textStyles = _ref5.textStyles;
|
|
2677
2489
|
var _ref6 = textStyles || {},
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2490
|
+
_ref6$title = _ref6.title,
|
|
2491
|
+
themeTextStyle = _ref6$title === void 0 ? null : _ref6$title;
|
|
2681
2492
|
var _ref7 = themeTextStyle || {},
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2493
|
+
_ref7$fontFamily = _ref7.fontFamily,
|
|
2494
|
+
themeFont = _ref7$fontFamily === void 0 ? null : _ref7$fontFamily;
|
|
2685
2495
|
|
|
2496
|
+
// Fonts
|
|
2686
2497
|
var finalFonts = React.useMemo(function () {
|
|
2687
2498
|
return [].concat(_toConsumableArray__default["default"](fonts || []), [themeFont]).filter(function (font) {
|
|
2688
2499
|
return font !== null;
|
|
2689
2500
|
});
|
|
2690
2501
|
}, [fonts]);
|
|
2691
|
-
|
|
2692
2502
|
var _useLoadedFonts = hooks.useLoadedFonts(finalFonts);
|
|
2693
|
-
|
|
2694
|
-
|
|
2503
|
+
_useLoadedFonts.loaded; // eslint-disable-line
|
|
2695
2504
|
|
|
2696
2505
|
var isView = renderContext === 'view';
|
|
2697
2506
|
var isStatic = renderContext === 'static';
|
|
2698
2507
|
var isCapture = renderContext === 'capture';
|
|
2699
2508
|
var isEditor = renderContext === 'edit';
|
|
2700
2509
|
var withoutScreensTransforms = isStatic || isCapture;
|
|
2701
|
-
|
|
2702
2510
|
var _usePlaybackContext = contexts.usePlaybackContext(),
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2511
|
+
playing = _usePlaybackContext.playing,
|
|
2512
|
+
_usePlaybackContext$c = _usePlaybackContext.controls,
|
|
2513
|
+
playbackControls = _usePlaybackContext$c === void 0 ? false : _usePlaybackContext$c,
|
|
2514
|
+
_usePlaybackContext$c2 = _usePlaybackContext.controlsVisible,
|
|
2515
|
+
playbackcontrolsVisible = _usePlaybackContext$c2 === void 0 ? false : _usePlaybackContext$c2,
|
|
2516
|
+
_usePlaybackContext$m = _usePlaybackContext.media,
|
|
2517
|
+
playbackMedia = _usePlaybackContext$m === void 0 ? null : _usePlaybackContext$m;
|
|
2711
2518
|
var _useDimensionObserver = hooks.useDimensionObserver(),
|
|
2712
|
-
|
|
2713
|
-
|
|
2714
|
-
|
|
2715
|
-
|
|
2519
|
+
playbackControlsContainerRef = _useDimensionObserver.ref,
|
|
2520
|
+
_useDimensionObserver2 = _useDimensionObserver.height,
|
|
2521
|
+
playbackControlsContainerHeight = _useDimensionObserver2 === void 0 ? 0 : _useDimensionObserver2;
|
|
2716
2522
|
var trackScreenView = hooks.useTrackScreenView();
|
|
2717
|
-
|
|
2718
2523
|
var _useScreenSizeFromEle = hooks.useScreenSizeFromElement(_objectSpread__default["default"]({
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
|
|
2524
|
+
width: width,
|
|
2525
|
+
height: height,
|
|
2526
|
+
screens: deviceScreens
|
|
2527
|
+
}, screenSizeOptions)),
|
|
2528
|
+
containerRef = _useScreenSizeFromEle.ref,
|
|
2529
|
+
viewerWidth = _useScreenSizeFromEle.fullWidth,
|
|
2530
|
+
viewerHeight = _useScreenSizeFromEle.fullHeight,
|
|
2531
|
+
screenSize = _useScreenSizeFromEle.screenSize,
|
|
2532
|
+
screenScale = _useScreenSizeFromEle.scale;
|
|
2729
2533
|
var _ref8 = screenSize || {},
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2534
|
+
_ref8$width = _ref8.width,
|
|
2535
|
+
screenWidth = _ref8$width === void 0 ? null : _ref8$width,
|
|
2536
|
+
_ref8$height = _ref8.height,
|
|
2537
|
+
screenHeight = _ref8$height === void 0 ? null : _ref8$height,
|
|
2538
|
+
_ref8$landscape = _ref8.landscape,
|
|
2539
|
+
landscape = _ref8$landscape === void 0 ? false : _ref8$landscape,
|
|
2540
|
+
_ref8$menuOverScreen = _ref8.menuOverScreen,
|
|
2541
|
+
menuOverScreen = _ref8$menuOverScreen === void 0 ? false : _ref8$menuOverScreen;
|
|
2739
2542
|
var screenContainerWidth = screenScale !== null ? screenWidth * screenScale : screenWidth;
|
|
2740
2543
|
var screenContainerHeight = screenScale !== null ? screenHeight * screenScale : screenHeight;
|
|
2741
2544
|
var hasSize = screenWidth > 0 && screenHeight > 0;
|
|
@@ -2754,38 +2557,34 @@ var Viewer = function Viewer(_ref) {
|
|
|
2754
2557
|
});
|
|
2755
2558
|
}
|
|
2756
2559
|
}, [ready, landscape, menuOverScreen, onViewModeChange]);
|
|
2560
|
+
|
|
2757
2561
|
/**
|
|
2758
2562
|
* Screen Transitions
|
|
2759
2563
|
*/
|
|
2760
|
-
|
|
2761
2564
|
var transitionType = landscape && withNeighborScreens ? DEFAULT_TRANSITION_TYPE_LANDSCAPE : DEFAULT_TRANSITION_TYPE_PORTRAIT;
|
|
2565
|
+
|
|
2762
2566
|
/**
|
|
2763
2567
|
* Screen Navigation
|
|
2764
2568
|
*/
|
|
2765
|
-
|
|
2766
2569
|
var changeIndex = React.useCallback(function (index) {
|
|
2767
2570
|
if (index === screenIndex) {
|
|
2768
2571
|
return;
|
|
2769
2572
|
}
|
|
2770
|
-
|
|
2771
2573
|
if (currentScreenMedia !== null) {
|
|
2772
2574
|
currentScreenMedia.current = screensMediasRef.current[index] || null;
|
|
2773
2575
|
}
|
|
2774
|
-
|
|
2775
2576
|
if (onScreenChange !== null) {
|
|
2776
2577
|
onScreenChange(screens[index], index);
|
|
2777
2578
|
}
|
|
2778
2579
|
}, [screenIndex, screens, onScreenChange]);
|
|
2779
2580
|
var onScreenNavigate = React.useCallback(function (_ref9) {
|
|
2780
2581
|
var index = _ref9.index,
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2582
|
+
newIndex = _ref9.newIndex,
|
|
2583
|
+
end = _ref9.end,
|
|
2584
|
+
direction = _ref9.direction;
|
|
2785
2585
|
if (end && onEnd !== null) {
|
|
2786
2586
|
onEnd();
|
|
2787
2587
|
}
|
|
2788
|
-
|
|
2789
2588
|
changeIndex(newIndex);
|
|
2790
2589
|
eventsManager.emit('navigate', {
|
|
2791
2590
|
index: index,
|
|
@@ -2793,57 +2592,52 @@ var Viewer = function Viewer(_ref) {
|
|
|
2793
2592
|
direction: direction,
|
|
2794
2593
|
end: end
|
|
2795
2594
|
});
|
|
2796
|
-
|
|
2797
2595
|
if (end) {
|
|
2798
2596
|
eventsManager.emit('navigate_end');
|
|
2799
2597
|
} else {
|
|
2800
2598
|
eventsManager.emit("navigate_".concat(direction), newIndex);
|
|
2801
2599
|
}
|
|
2802
2600
|
}, [onEnd, changeIndex]);
|
|
2803
|
-
var gotoPreviousScreen = React.useCallback(function () {
|
|
2601
|
+
var gotoPreviousScreen = React.useCallback(function (e) {
|
|
2602
|
+
e.stopPropagation();
|
|
2804
2603
|
changeIndex(Math.max(0, screenIndex - 1));
|
|
2805
2604
|
}, [changeIndex, screenIndex]);
|
|
2806
|
-
var gotoNextScreen = React.useCallback(function () {
|
|
2605
|
+
var gotoNextScreen = React.useCallback(function (e) {
|
|
2606
|
+
e.stopPropagation();
|
|
2807
2607
|
changeIndex(Math.min(screens.length - 1, screenIndex + 1));
|
|
2808
2608
|
}, [changeIndex, screenIndex]);
|
|
2809
|
-
|
|
2810
2609
|
var _useState = React.useState(false),
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2610
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
2611
|
+
hasInteracted = _useState2[0],
|
|
2612
|
+
setHasInteracted = _useState2[1];
|
|
2815
2613
|
var onInteractionPrivate = React.useCallback(function () {
|
|
2816
2614
|
if (onInteraction !== null) {
|
|
2817
2615
|
onInteraction();
|
|
2818
2616
|
}
|
|
2819
|
-
|
|
2820
2617
|
if (!hasInteracted) {
|
|
2821
2618
|
setHasInteracted(true);
|
|
2822
2619
|
}
|
|
2823
2620
|
}, [onInteraction, hasInteracted, setHasInteracted]);
|
|
2824
|
-
|
|
2825
2621
|
var _useScreenInteraction = useScreenInteraction({
|
|
2826
|
-
|
|
2827
|
-
|
|
2828
|
-
|
|
2829
|
-
|
|
2830
|
-
|
|
2831
|
-
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2622
|
+
screens: screens,
|
|
2623
|
+
screenIndex: screenIndex,
|
|
2624
|
+
screenWidth: screenContainerWidth,
|
|
2625
|
+
disableCurrentScreenNavigation: !isView,
|
|
2626
|
+
nextScreenWidthPercent: tapNextScreenWidthPercent,
|
|
2627
|
+
onInteract: onInteractionPrivate,
|
|
2628
|
+
onNavigate: onScreenNavigate
|
|
2629
|
+
}),
|
|
2630
|
+
interactWithScreen = _useScreenInteraction.interact,
|
|
2631
|
+
currentScreenInteractionEnabled = _useScreenInteraction.currentScreenInteractionEnabled,
|
|
2632
|
+
enableInteraction = _useScreenInteraction.enableInteraction,
|
|
2633
|
+
disableInteraction = _useScreenInteraction.disableInteraction;
|
|
2839
2634
|
var onTap = React.useCallback(function (_ref10) {
|
|
2840
2635
|
var currentTarget = _ref10.currentTarget,
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2636
|
+
event = _ref10.event,
|
|
2637
|
+
target = _ref10.target,
|
|
2638
|
+
_ref10$xy = _slicedToArray__default["default"](_ref10.xy, 2),
|
|
2639
|
+
x = _ref10$xy[0],
|
|
2640
|
+
y = _ref10$xy[1];
|
|
2847
2641
|
interactWithScreen({
|
|
2848
2642
|
event: event,
|
|
2849
2643
|
target: target,
|
|
@@ -2855,34 +2649,26 @@ var Viewer = function Viewer(_ref) {
|
|
|
2855
2649
|
}, [interactWithScreen, screenIndex]);
|
|
2856
2650
|
var computeScreenProgress = React.useCallback(function (_ref11) {
|
|
2857
2651
|
var active = _ref11.active,
|
|
2858
|
-
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2652
|
+
_ref11$movement = _slicedToArray__default["default"](_ref11.movement, 1),
|
|
2653
|
+
mx = _ref11$movement[0],
|
|
2654
|
+
_ref11$velocity = _slicedToArray__default["default"](_ref11.velocity, 1),
|
|
2655
|
+
vx = _ref11$velocity[0];
|
|
2863
2656
|
var p = mx / screenContainerWidth; // drag "ratio": how much of the screen width has been swiped?
|
|
2864
|
-
|
|
2865
2657
|
var forwards = mx < 0; // true if swiping to left (to navigate forwards)
|
|
2866
|
-
|
|
2867
2658
|
var newIndex = !forwards ? screenIndex - 1 : screenIndex + 1; // which item index are we moving towards?
|
|
2868
|
-
|
|
2869
2659
|
var reachedThreshold = vx > DRAG_VELOCITY_ACTIVATION_THRESHOLD || Math.abs(p) > DRAG_PROGRESS_ACTIVATION_THRESHOLD;
|
|
2870
2660
|
var reachedBounds = newIndex < 0 || newIndex >= screensCount; // have we reached the end of the stack?
|
|
2871
|
-
|
|
2872
2661
|
var damper = reachedBounds ? 0.1 : 1;
|
|
2873
2662
|
var progress = Math.max(-1, Math.min(1, p * damper));
|
|
2874
|
-
|
|
2875
2663
|
if (!active) {
|
|
2876
2664
|
return reachedThreshold && !reachedBounds ? newIndex : screenIndex;
|
|
2877
2665
|
}
|
|
2878
|
-
|
|
2879
2666
|
return screenIndex - progress;
|
|
2880
2667
|
}, [screenContainerWidth, screenIndex]);
|
|
2881
2668
|
var onScreenProgress = React.useCallback(function (progress, _ref12) {
|
|
2882
2669
|
var active = _ref12.active;
|
|
2883
2670
|
var delta = Math.abs(progress - screenIndex);
|
|
2884
2671
|
var reachedBounds = progress < 0 || progress >= screensCount; // have we reached the end of the stack?
|
|
2885
|
-
|
|
2886
2672
|
if (!active && delta === 1 && !reachedBounds) {
|
|
2887
2673
|
onScreenNavigate({
|
|
2888
2674
|
index: screenIndex,
|
|
@@ -2890,25 +2676,38 @@ var Viewer = function Viewer(_ref) {
|
|
|
2890
2676
|
});
|
|
2891
2677
|
}
|
|
2892
2678
|
}, [onScreenNavigate, screenIndex]);
|
|
2679
|
+
var _useState3 = React.useState(true),
|
|
2680
|
+
_useState4 = _slicedToArray__default["default"](_useState3, 2),
|
|
2681
|
+
transitioned = _useState4[0],
|
|
2682
|
+
setTransitioned = _useState4[1];
|
|
2683
|
+
var onTransitionStart = React.useCallback(function () {
|
|
2684
|
+
setTransitioned(false);
|
|
2685
|
+
}, [setTransitioned]);
|
|
2686
|
+
var onTransitionComplete = React.useCallback(function () {
|
|
2687
|
+
setTransitioned(true);
|
|
2688
|
+
}, [setTransitioned]);
|
|
2689
|
+
|
|
2690
|
+
// console.log({ transitioned });
|
|
2691
|
+
|
|
2893
2692
|
var springParams = React.useMemo(function () {
|
|
2894
2693
|
return {
|
|
2895
|
-
config: SPRING_CONFIG_TIGHT
|
|
2694
|
+
config: SPRING_CONFIG_TIGHT,
|
|
2695
|
+
onStart: onTransitionStart,
|
|
2696
|
+
onRest: onTransitionComplete
|
|
2896
2697
|
};
|
|
2897
|
-
}, []);
|
|
2898
|
-
|
|
2698
|
+
}, [onTransitionStart, onTransitionComplete]);
|
|
2899
2699
|
var _useDragProgress = hooks.useDragProgress({
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2700
|
+
progress: screenIndex,
|
|
2701
|
+
disabled: !isView || withoutTransitions,
|
|
2702
|
+
dragDisabled: withoutGestures,
|
|
2703
|
+
computeProgress: computeScreenProgress,
|
|
2704
|
+
onProgress: onScreenProgress,
|
|
2705
|
+
onTap: onTap,
|
|
2706
|
+
springParams: springParams
|
|
2707
|
+
}),
|
|
2708
|
+
isDragging = _useDragProgress.dragging,
|
|
2709
|
+
progressSpring = _useDragProgress.progress,
|
|
2710
|
+
dragContentBind = _useDragProgress.bind;
|
|
2912
2711
|
var getScreenStylesByIndex = function getScreenStylesByIndex(index, spring) {
|
|
2913
2712
|
if (transitionType === 'stack') {
|
|
2914
2713
|
return {
|
|
@@ -2934,7 +2733,6 @@ var Viewer = function Viewer(_ref) {
|
|
|
2934
2733
|
})
|
|
2935
2734
|
};
|
|
2936
2735
|
}
|
|
2937
|
-
|
|
2938
2736
|
return {
|
|
2939
2737
|
opacity: spring.to(function (progress) {
|
|
2940
2738
|
var t = index - progress;
|
|
@@ -2951,19 +2749,18 @@ var Viewer = function Viewer(_ref) {
|
|
|
2951
2749
|
zIndex: screensCount - index
|
|
2952
2750
|
};
|
|
2953
2751
|
};
|
|
2954
|
-
|
|
2955
2752
|
var _useFullscreen = hooks.useFullscreen(containerRef.current || null),
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
var
|
|
2753
|
+
toggleFullscreen = _useFullscreen.toggle,
|
|
2754
|
+
fullscreenActive = _useFullscreen.active,
|
|
2755
|
+
fullscreenEnabled = _useFullscreen.enabled;
|
|
2756
|
+
var menuVisible = screensCount === 0 || currentScreenInteractionEnabled;
|
|
2757
|
+
var navigationDisabled = currentScreenInteractionEnabled === false;
|
|
2961
2758
|
|
|
2759
|
+
// Get element height
|
|
2962
2760
|
var _useDimensionObserver3 = hooks.useDimensionObserver(),
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
|
|
2966
|
-
|
|
2761
|
+
menuDotsContainerRef = _useDimensionObserver3.ref,
|
|
2762
|
+
_useDimensionObserver4 = _useDimensionObserver3.height,
|
|
2763
|
+
menuDotsContainerHeight = _useDimensionObserver4 === void 0 ? 0 : _useDimensionObserver4;
|
|
2967
2764
|
var onClickScreen = React.useCallback(function (_ref13) {
|
|
2968
2765
|
var itemScreenId = _ref13.screenId;
|
|
2969
2766
|
onInteractionPrivate();
|
|
@@ -2978,10 +2775,10 @@ var Viewer = function Viewer(_ref) {
|
|
|
2978
2775
|
e.preventDefault();
|
|
2979
2776
|
return false;
|
|
2980
2777
|
}
|
|
2981
|
-
|
|
2982
2778
|
return true;
|
|
2983
|
-
}, [landscape]);
|
|
2779
|
+
}, [landscape]);
|
|
2984
2780
|
|
|
2781
|
+
// hmm?
|
|
2985
2782
|
var overscrollStyle = /*#__PURE__*/React__default["default"].createElement("style", {
|
|
2986
2783
|
type: "text/css"
|
|
2987
2784
|
}, "body { overscroll-behavior: contain; }");
|
|
@@ -3004,46 +2801,36 @@ var Viewer = function Viewer(_ref) {
|
|
|
3004
2801
|
useKeyboardShortcuts(keyboardShortcuts, {
|
|
3005
2802
|
disabled: renderContext !== 'view'
|
|
3006
2803
|
});
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
shareIncentiveVisible = _useState6[0],
|
|
3016
|
-
setShareIncentiveVisible = _useState6[1];
|
|
3017
|
-
|
|
2804
|
+
var _useState5 = React.useState(null),
|
|
2805
|
+
_useState6 = _slicedToArray__default["default"](_useState5, 2),
|
|
2806
|
+
currentShareIncentive = _useState6[0],
|
|
2807
|
+
setCurrentShareIncentive = _useState6[1];
|
|
2808
|
+
var _useState7 = React.useState(false),
|
|
2809
|
+
_useState8 = _slicedToArray__default["default"](_useState7, 2),
|
|
2810
|
+
shareIncentiveVisible = _useState8[0],
|
|
2811
|
+
setShareIncentiveVisible = _useState8[1];
|
|
3018
2812
|
var _ref15 = currentScreen || {},
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
2813
|
+
_ref15$shareIncentive = _ref15.shareIncentive,
|
|
2814
|
+
shareIncentive = _ref15$shareIncentive === void 0 ? null : _ref15$shareIncentive;
|
|
3022
2815
|
var _ref16 = shareIncentive || {},
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
2816
|
+
_ref16$active = _ref16.active,
|
|
2817
|
+
hasShareIncentive = _ref16$active === void 0 ? false : _ref16$active,
|
|
2818
|
+
_ref16$label = _ref16.label,
|
|
2819
|
+
shareIncentiveLabel = _ref16$label === void 0 ? null : _ref16$label;
|
|
3028
2820
|
var _ref17 = currentShareIncentive || {},
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
2821
|
+
_ref17$label = _ref17.label,
|
|
2822
|
+
currentShareIncentiveLabel = _ref17$label === void 0 ? null : _ref17$label;
|
|
3032
2823
|
var _ref18 = shareIncentiveLabel || {},
|
|
3033
|
-
|
|
3034
|
-
|
|
3035
|
-
|
|
2824
|
+
_ref18$body = _ref18.body,
|
|
2825
|
+
incentiveLabel = _ref18$body === void 0 ? null : _ref18$body;
|
|
3036
2826
|
var _ref19 = currentShareIncentiveLabel || {},
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
2827
|
+
_ref19$body = _ref19.body,
|
|
2828
|
+
currentIncentiveLabel = _ref19$body === void 0 ? null : _ref19$body;
|
|
3040
2829
|
React.useEffect(function () {
|
|
3041
2830
|
setShareIncentiveVisible(true);
|
|
3042
|
-
|
|
3043
2831
|
if (hasShareIncentive && shareIncentiveLabel !== currentShareIncentiveLabel) {
|
|
3044
2832
|
setCurrentShareIncentive(shareIncentive);
|
|
3045
2833
|
}
|
|
3046
|
-
|
|
3047
2834
|
var timeout = setTimeout(function () {
|
|
3048
2835
|
if (isView) {
|
|
3049
2836
|
setShareIncentiveVisible(false);
|
|
@@ -3079,7 +2866,7 @@ var Viewer = function Viewer(_ref) {
|
|
|
3079
2866
|
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
3080
2867
|
className: classNames__default["default"]([styles$6.container, screenSize.screens.map(function (screenName) {
|
|
3081
2868
|
return "story-screen-".concat(screenName);
|
|
3082
|
-
}), (_ref20 = {}, _defineProperty__default["default"](_ref20, styles$6.landscape, landscape), _defineProperty__default["default"](_ref20, styles$6.withoutGestures, withoutGestures), _defineProperty__default["default"](_ref20, styles$6.hideMenu, !menuVisible), _defineProperty__default["default"](_ref20, styles$6.fadeMenu, playing && playbackControls && !playbackcontrolsVisible), _defineProperty__default["default"](_ref20, styles$6.ready, ready || withoutScreensTransforms), _defineProperty__default["default"](_ref20, styles$6.hasInteracted, hasInteracted), _defineProperty__default["default"](_ref20, styles$6.isDragging, isDragging), _defineProperty__default["default"](_ref20, className, className), _ref20)]),
|
|
2869
|
+
}), (_ref20 = {}, _defineProperty__default["default"](_ref20, styles$6.landscape, landscape), _defineProperty__default["default"](_ref20, styles$6.withoutGestures, withoutGestures), _defineProperty__default["default"](_ref20, styles$6.hideMenu, !menuVisible), _defineProperty__default["default"](_ref20, styles$6.disableMenu, navigationDisabled), _defineProperty__default["default"](_ref20, styles$6.fadeMenu, playing && playbackControls && !playbackcontrolsVisible), _defineProperty__default["default"](_ref20, styles$6.ready, ready || withoutScreensTransforms), _defineProperty__default["default"](_ref20, styles$6.hasInteracted, hasInteracted), _defineProperty__default["default"](_ref20, styles$6.isDragging, isDragging), _defineProperty__default["default"](_ref20, className, className), _ref20)]),
|
|
3083
2870
|
ref: containerRef,
|
|
3084
2871
|
onContextMenu: onContextMenu
|
|
3085
2872
|
}, !withoutMenu ? /*#__PURE__*/React__default["default"].createElement(ViewerMenu$1, {
|
|
@@ -3103,7 +2890,7 @@ var Viewer = function Viewer(_ref) {
|
|
|
3103
2890
|
refDots: menuDotsContainerRef
|
|
3104
2891
|
}) : null, ready || withoutScreensTransforms ? /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
|
3105
2892
|
className: styles$6.content
|
|
3106
|
-
}, dragContentBind()), !withoutNavigationArrow && !withNeighborScreens && screenIndex > 0 && screens.length > 1 ? /*#__PURE__*/React__default["default"].createElement(NavigationButton, {
|
|
2893
|
+
}, dragContentBind()), !withoutNavigationArrow && !withNeighborScreens && !navigationDisabled && screenIndex > 0 && screens.length > 1 ? /*#__PURE__*/React__default["default"].createElement(NavigationButton, {
|
|
3107
2894
|
direction: "previous",
|
|
3108
2895
|
className: classNames__default["default"]([styles$6.navButton, styles$6.previous]),
|
|
3109
2896
|
onClick: gotoPreviousScreen
|
|
@@ -3129,6 +2916,7 @@ var Viewer = function Viewer(_ref) {
|
|
|
3129
2916
|
index: i,
|
|
3130
2917
|
current: current,
|
|
3131
2918
|
active: active,
|
|
2919
|
+
ready: current && transitioned,
|
|
3132
2920
|
mediaRef: function mediaRef(ref) {
|
|
3133
2921
|
screensMediasRef.current[i] = ref;
|
|
3134
2922
|
},
|
|
@@ -3137,7 +2925,7 @@ var Viewer = function Viewer(_ref) {
|
|
|
3137
2925
|
height: screenHeight,
|
|
3138
2926
|
scale: screenScale
|
|
3139
2927
|
}) : null);
|
|
3140
|
-
})), !withoutNavigationArrow && !withNeighborScreens && screenIndex < screens.length - 1 ? /*#__PURE__*/React__default["default"].createElement(NavigationButton, {
|
|
2928
|
+
})), !withoutNavigationArrow && !withNeighborScreens && !navigationDisabled && screenIndex < screens.length - 1 ? /*#__PURE__*/React__default["default"].createElement(NavigationButton, {
|
|
3141
2929
|
direction: "next",
|
|
3142
2930
|
className: classNames__default["default"]([styles$6.navButton, styles$6.next]),
|
|
3143
2931
|
onClick: gotoNextScreen
|
|
@@ -3146,7 +2934,7 @@ var Viewer = function Viewer(_ref) {
|
|
|
3146
2934
|
ref: playbackControlsContainerRef
|
|
3147
2935
|
}, /*#__PURE__*/React__default["default"].createElement(PlaybackControls, {
|
|
3148
2936
|
className: styles$6.controls
|
|
3149
|
-
})) : null, withNavigationHint && !withNeighborScreens && screenIndex === 0 && !hasInteracted ? /*#__PURE__*/React__default["default"].createElement(ArrowHint, {
|
|
2937
|
+
})) : null, withNavigationHint && !withNeighborScreens && !navigationDisabled && screenIndex === 0 && !hasInteracted ? /*#__PURE__*/React__default["default"].createElement(ArrowHint, {
|
|
3150
2938
|
className: styles$6.arrowHint
|
|
3151
2939
|
}) : null) : null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
3152
2940
|
className: classNames__default["default"]([styles$6.shareIncentiveContainer, _defineProperty__default["default"]({}, styles$6.shareIncentiveVisible, hasShareIncentive && shareIncentiveVisible)]),
|
|
@@ -3162,7 +2950,6 @@ var Viewer = function Viewer(_ref) {
|
|
|
3162
2950
|
}
|
|
3163
2951
|
})))));
|
|
3164
2952
|
};
|
|
3165
|
-
|
|
3166
2953
|
Viewer.propTypes = propTypes$2;
|
|
3167
2954
|
Viewer.defaultProps = defaultProps$2;
|
|
3168
2955
|
|
|
@@ -3180,21 +2967,17 @@ var defaultProps$1 = {
|
|
|
3180
2967
|
children: null,
|
|
3181
2968
|
onScreenChange: null
|
|
3182
2969
|
};
|
|
3183
|
-
|
|
3184
2970
|
var ViewerRoutes = function ViewerRoutes(_ref) {
|
|
3185
2971
|
var story = _ref.story,
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
2972
|
+
pathWithIndex = _ref.pathWithIndex;
|
|
2973
|
+
_ref.children;
|
|
2974
|
+
var onScreenChange = _ref.onScreenChange,
|
|
2975
|
+
otherProps = _objectWithoutProperties__default["default"](_ref, _excluded$1);
|
|
3191
2976
|
var routes = contexts.useRoutes();
|
|
3192
2977
|
var push = contexts.useRoutePush();
|
|
3193
|
-
|
|
3194
2978
|
var _ref2 = story || {},
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
2979
|
+
_ref2$components = _ref2.components,
|
|
2980
|
+
screens = _ref2$components === void 0 ? [] : _ref2$components;
|
|
3198
2981
|
var finalOnScreenChange = React.useCallback(function (it) {
|
|
3199
2982
|
var screenIndex = screens.findIndex(function (screen) {
|
|
3200
2983
|
var screenId = screen.id;
|
|
@@ -3203,7 +2986,6 @@ var ViewerRoutes = function ViewerRoutes(_ref) {
|
|
|
3203
2986
|
push('screen', {
|
|
3204
2987
|
screen: pathWithIndex ? screenIndex + 1 : it.id
|
|
3205
2988
|
});
|
|
3206
|
-
|
|
3207
2989
|
if (onScreenChange !== null) {
|
|
3208
2990
|
onScreenChange(it);
|
|
3209
2991
|
}
|
|
@@ -3221,7 +3003,7 @@ var ViewerRoutes = function ViewerRoutes(_ref) {
|
|
|
3221
3003
|
path: routes.screen,
|
|
3222
3004
|
render: function render(_ref3) {
|
|
3223
3005
|
var _ref3$match$params$sc = _ref3.match.params.screen,
|
|
3224
|
-
|
|
3006
|
+
screenParam = _ref3$match$params$sc === void 0 ? null : _ref3$match$params$sc;
|
|
3225
3007
|
var screenFromIndex = pathWithIndex && screenParam !== null ? screens[parseInt(screenParam, 10) - 1] || null : null;
|
|
3226
3008
|
var screenId = pathWithIndex ? (screenFromIndex || {}).id || null : screenParam;
|
|
3227
3009
|
return /*#__PURE__*/React__default["default"].createElement(Viewer, Object.assign({}, otherProps, {
|
|
@@ -3232,7 +3014,6 @@ var ViewerRoutes = function ViewerRoutes(_ref) {
|
|
|
3232
3014
|
}
|
|
3233
3015
|
}));
|
|
3234
3016
|
};
|
|
3235
|
-
|
|
3236
3017
|
ViewerRoutes.propTypes = propTypes$1;
|
|
3237
3018
|
ViewerRoutes.defaultProps = defaultProps$1;
|
|
3238
3019
|
|
|
@@ -3280,38 +3061,35 @@ var defaultProps = {
|
|
|
3280
3061
|
pathWithIndex: false,
|
|
3281
3062
|
children: null
|
|
3282
3063
|
};
|
|
3283
|
-
|
|
3284
3064
|
var ViewerContainer = function ViewerContainer(_ref) {
|
|
3285
3065
|
var story = _ref.story,
|
|
3286
|
-
|
|
3287
|
-
|
|
3288
|
-
|
|
3289
|
-
|
|
3290
|
-
|
|
3291
|
-
|
|
3292
|
-
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
|
|
3296
|
-
|
|
3297
|
-
|
|
3298
|
-
|
|
3299
|
-
|
|
3300
|
-
|
|
3066
|
+
paused = _ref.paused,
|
|
3067
|
+
screenComponents = _ref.screenComponents,
|
|
3068
|
+
memoryRouter = _ref.memoryRouter,
|
|
3069
|
+
basePath = _ref.basePath,
|
|
3070
|
+
routes = _ref.routes,
|
|
3071
|
+
withoutRouter = _ref.withoutRouter,
|
|
3072
|
+
googleApiKey = _ref.googleApiKey,
|
|
3073
|
+
visitor = _ref.visitor,
|
|
3074
|
+
trackingVariables = _ref.trackingVariables,
|
|
3075
|
+
locale = _ref.locale,
|
|
3076
|
+
locales = _ref.locales,
|
|
3077
|
+
translations = _ref.translations,
|
|
3078
|
+
pathWithIndex = _ref.pathWithIndex,
|
|
3079
|
+
otherProps = _objectWithoutProperties__default["default"](_ref, _excluded);
|
|
3301
3080
|
var Router = memoryRouter ? reactRouter.MemoryRouter : reactRouterDom.BrowserRouter;
|
|
3302
3081
|
var finalTrackingVariables = React.useMemo(function () {
|
|
3303
3082
|
if (story === null && trackingVariables === null) {
|
|
3304
3083
|
return null;
|
|
3305
3084
|
}
|
|
3306
|
-
|
|
3307
3085
|
var _story$id = story.id,
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3086
|
+
id = _story$id === void 0 ? null : _story$id,
|
|
3087
|
+
_story$slug = story.slug,
|
|
3088
|
+
slug = _story$slug === void 0 ? null : _story$slug,
|
|
3089
|
+
_story$title = story.title,
|
|
3090
|
+
title = _story$title === void 0 ? null : _story$title,
|
|
3091
|
+
_story$components = story.components,
|
|
3092
|
+
components = _story$components === void 0 ? [] : _story$components;
|
|
3315
3093
|
return _objectSpread__default["default"]({
|
|
3316
3094
|
storyId: id,
|
|
3317
3095
|
storySlug: slug,
|
|
@@ -3319,14 +3097,11 @@ var ViewerContainer = function ViewerContainer(_ref) {
|
|
|
3319
3097
|
screensCount: (components || []).length
|
|
3320
3098
|
}, trackingVariables);
|
|
3321
3099
|
}, [story, trackingVariables]);
|
|
3322
|
-
|
|
3323
3100
|
var _ref2 = story || {},
|
|
3324
|
-
|
|
3325
|
-
|
|
3101
|
+
metadata = _ref2.metadata;
|
|
3326
3102
|
var _ref3 = metadata || {},
|
|
3327
|
-
|
|
3328
|
-
|
|
3329
|
-
|
|
3103
|
+
_ref3$language = _ref3.language,
|
|
3104
|
+
finalLocale = _ref3$language === void 0 ? locale : _ref3$language;
|
|
3330
3105
|
var content = /*#__PURE__*/React__default["default"].createElement(intl.IntlProvider, {
|
|
3331
3106
|
locale: finalLocale,
|
|
3332
3107
|
locales: locales,
|
|
@@ -3360,7 +3135,6 @@ var ViewerContainer = function ViewerContainer(_ref) {
|
|
|
3360
3135
|
routes: routes
|
|
3361
3136
|
}, content));
|
|
3362
3137
|
};
|
|
3363
|
-
|
|
3364
3138
|
ViewerContainer.propTypes = propTypes;
|
|
3365
3139
|
ViewerContainer.defaultProps = defaultProps;
|
|
3366
3140
|
|