@micromag/viewer 0.3.179 → 0.3.181
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 +12 -11
- package/es/index.js +1236 -1093
- package/lib/index.js +1254 -1111
- package/package.json +10 -10
package/lib/index.js
CHANGED
|
@@ -8,7 +8,7 @@ var PropTypes = require('prop-types');
|
|
|
8
8
|
var React = require('react');
|
|
9
9
|
var reactRouter = require('react-router');
|
|
10
10
|
var reactRouterDom = require('react-router-dom');
|
|
11
|
-
var core
|
|
11
|
+
var core = require('@micromag/core');
|
|
12
12
|
var contexts = require('@micromag/core/contexts');
|
|
13
13
|
var fieldsManager = require('@micromag/fields/manager');
|
|
14
14
|
var intl = require('@micromag/intl');
|
|
@@ -16,28 +16,20 @@ var screens = require('@micromag/screens');
|
|
|
16
16
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
17
17
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
18
18
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
19
|
-
var react = require('@use-gesture/react');
|
|
20
19
|
var classNames = require('classnames');
|
|
21
20
|
var reactHelmet = require('react-helmet');
|
|
22
|
-
var reactIntl = require('react-intl');
|
|
23
21
|
var EventEmitter = require('wolfy87-eventemitter');
|
|
24
22
|
var components = require('@micromag/core/components');
|
|
25
23
|
var hooks = require('@micromag/core/hooks');
|
|
26
24
|
var utils = require('@micromag/core/utils');
|
|
27
|
-
var
|
|
28
|
-
var web = require('@react-spring/web');
|
|
29
|
-
var faShare = require('@fortawesome/free-solid-svg-icons/faShare');
|
|
25
|
+
var reactIntl = require('react-intl');
|
|
30
26
|
var faTimes = require('@fortawesome/free-solid-svg-icons/faTimes');
|
|
31
27
|
var reactFontawesome = require('@fortawesome/react-fontawesome');
|
|
32
|
-
var
|
|
33
|
-
var
|
|
34
|
-
var faExpand = require('@fortawesome/free-solid-svg-icons/faExpand');
|
|
28
|
+
var core$1 = require('@react-spring/core');
|
|
29
|
+
var web = require('@react-spring/web');
|
|
35
30
|
var Scroll = require('@micromag/element-scroll');
|
|
36
|
-
var
|
|
37
|
-
var
|
|
38
|
-
var faPause = require('@fortawesome/free-solid-svg-icons/faPause');
|
|
39
|
-
var faPlay = require('@fortawesome/free-solid-svg-icons/faPlay');
|
|
40
|
-
var faVolumeUp = require('@fortawesome/free-solid-svg-icons/faVolumeUp');
|
|
31
|
+
var ShareOptions = require('@micromag/element-share-options');
|
|
32
|
+
var react = require('@use-gesture/react');
|
|
41
33
|
var WebView = require('@micromag/element-webview');
|
|
42
34
|
|
|
43
35
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -52,8 +44,8 @@ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray)
|
|
|
52
44
|
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
53
45
|
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
|
54
46
|
var EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter);
|
|
55
|
-
var ShareOptions__default = /*#__PURE__*/_interopDefaultLegacy(ShareOptions);
|
|
56
47
|
var Scroll__default = /*#__PURE__*/_interopDefaultLegacy(Scroll);
|
|
48
|
+
var ShareOptions__default = /*#__PURE__*/_interopDefaultLegacy(ShareOptions);
|
|
57
49
|
var WebView__default = /*#__PURE__*/_interopDefaultLegacy(WebView);
|
|
58
50
|
|
|
59
51
|
var routes = PropTypes__default["default"].shape({
|
|
@@ -217,7 +209,7 @@ function useScreenInteraction() {
|
|
|
217
209
|
var relativeX = x - left;
|
|
218
210
|
var direction = relativeX < width * (1 - nextScreenWidthPercent) ? 'previous' : 'next';
|
|
219
211
|
var lastIndex = screensCount - 1;
|
|
220
|
-
var nextIndex = index;
|
|
212
|
+
var nextIndex = index; // @todo investigate what clickOnSiblings is doing
|
|
221
213
|
|
|
222
214
|
if (direction === 'previous' && !clickOnSiblings) {
|
|
223
215
|
nextIndex = Math.max(0, screenIndex - 1);
|
|
@@ -233,7 +225,7 @@ function useScreenInteraction() {
|
|
|
233
225
|
end: index === nextIndex && nextIndex === lastIndex
|
|
234
226
|
});
|
|
235
227
|
}
|
|
236
|
-
}, [screens, screenIndex,
|
|
228
|
+
}, [screens, screenIndex, screensInteractionEnabled, currentScreenInteractionEnabled, nextScreenWidthPercent, disableCurrentScreenNavigation, clickOnSiblings, onInteract, onNavigate]);
|
|
237
229
|
return {
|
|
238
230
|
interact: interact,
|
|
239
231
|
currentScreenInteractionEnabled: currentScreenInteractionEnabled,
|
|
@@ -242,171 +234,139 @@ function useScreenInteraction() {
|
|
|
242
234
|
};
|
|
243
235
|
}
|
|
244
236
|
|
|
245
|
-
var
|
|
246
|
-
|
|
247
|
-
var propTypes$h = {
|
|
248
|
-
url: PropTypes__default["default"].string,
|
|
249
|
-
title: PropTypes__default["default"].string,
|
|
250
|
-
opened: PropTypes__default["default"].bool,
|
|
237
|
+
var _excluded$5 = ["className", "onClick", "theme"];
|
|
238
|
+
var propTypes$k = {
|
|
251
239
|
className: PropTypes__default["default"].string,
|
|
252
|
-
|
|
253
|
-
|
|
240
|
+
onClick: PropTypes__default["default"].func,
|
|
241
|
+
theme: core.PropTypes.viewerTheme
|
|
254
242
|
};
|
|
255
|
-
var defaultProps$
|
|
256
|
-
url: null,
|
|
257
|
-
title: null,
|
|
258
|
-
opened: false,
|
|
243
|
+
var defaultProps$k = {
|
|
259
244
|
className: null,
|
|
260
|
-
|
|
261
|
-
|
|
245
|
+
onClick: null,
|
|
246
|
+
theme: null
|
|
262
247
|
};
|
|
263
248
|
|
|
264
|
-
var
|
|
265
|
-
var
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
opened = _ref.opened,
|
|
270
|
-
className = _ref.className,
|
|
271
|
-
onShare = _ref.onShare,
|
|
272
|
-
onCancel = _ref.onCancel;
|
|
273
|
-
var modalRef = React.useRef();
|
|
274
|
-
var onDocumentClick = React.useCallback(function (e) {
|
|
275
|
-
var _ref2 = e || {},
|
|
276
|
-
target = _ref2.target;
|
|
277
|
-
|
|
278
|
-
if (!modalRef.current || modalRef.current.contains(target)) {
|
|
279
|
-
return;
|
|
280
|
-
}
|
|
249
|
+
var MenuButton = function MenuButton(_ref) {
|
|
250
|
+
var className = _ref.className,
|
|
251
|
+
onClick = _ref.onClick,
|
|
252
|
+
theme = _ref.theme,
|
|
253
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded$5);
|
|
281
254
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
"
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
onClick:
|
|
304
|
-
|
|
305
|
-
}, /*#__PURE__*/React__default["default"].createElement(components.Close, {
|
|
306
|
-
className: styles$c.closeIcon,
|
|
307
|
-
border: "none"
|
|
308
|
-
}))), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
309
|
-
className: styles$c.content
|
|
310
|
-
}, /*#__PURE__*/React__default["default"].createElement(ShareOptions__default["default"], {
|
|
311
|
-
className: styles$c.shareOptions,
|
|
312
|
-
title: title,
|
|
313
|
-
url: url,
|
|
314
|
-
focusable: opened,
|
|
315
|
-
onShare: onShare,
|
|
316
|
-
onClose: onCancel
|
|
317
|
-
}))));
|
|
255
|
+
var intl = reactIntl.useIntl();
|
|
256
|
+
return /*#__PURE__*/React__default["default"].createElement(components.IconButton, Object.assign({
|
|
257
|
+
className: classNames__default["default"]([_defineProperty__default["default"]({}, className, className !== null)]),
|
|
258
|
+
label: intl.formatMessage({
|
|
259
|
+
id: "F/gl4b",
|
|
260
|
+
defaultMessage: [{
|
|
261
|
+
"type": 0,
|
|
262
|
+
"value": "Menu"
|
|
263
|
+
}]
|
|
264
|
+
}),
|
|
265
|
+
iconPosition: "right",
|
|
266
|
+
icon: /*#__PURE__*/React__default["default"].createElement("svg", Object.assign({
|
|
267
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
268
|
+
width: "10",
|
|
269
|
+
height: "16",
|
|
270
|
+
viewBox: "0 0 10 16",
|
|
271
|
+
fill: "currentColor"
|
|
272
|
+
}, theme), /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
273
|
+
width: "10",
|
|
274
|
+
height: "16"
|
|
275
|
+
})),
|
|
276
|
+
onClick: onClick
|
|
277
|
+
}, props));
|
|
318
278
|
};
|
|
319
279
|
|
|
320
|
-
|
|
321
|
-
|
|
280
|
+
MenuButton.propTypes = propTypes$k;
|
|
281
|
+
MenuButton.defaultProps = defaultProps$k;
|
|
322
282
|
|
|
323
|
-
var
|
|
324
|
-
|
|
325
|
-
var propTypes$g = {
|
|
326
|
-
title: PropTypes__default["default"].string,
|
|
327
|
-
url: PropTypes__default["default"].string,
|
|
283
|
+
var _excluded$4 = ["className", "onClick", "theme"];
|
|
284
|
+
var propTypes$j = {
|
|
328
285
|
className: PropTypes__default["default"].string,
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
children: PropTypes__default["default"].node,
|
|
332
|
-
focusable: PropTypes__default["default"].bool
|
|
286
|
+
onClick: PropTypes__default["default"].func,
|
|
287
|
+
theme: core.PropTypes.viewerTheme
|
|
333
288
|
};
|
|
334
|
-
var defaultProps$
|
|
335
|
-
title: null,
|
|
336
|
-
url: null,
|
|
289
|
+
var defaultProps$j = {
|
|
337
290
|
className: null,
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
children: null,
|
|
341
|
-
focusable: false
|
|
291
|
+
onClick: null,
|
|
292
|
+
theme: null
|
|
342
293
|
};
|
|
343
294
|
|
|
344
295
|
var ShareButton = function ShareButton(_ref) {
|
|
345
|
-
var
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
onShare = _ref.onShare,
|
|
350
|
-
children = _ref.children,
|
|
351
|
-
focusable = _ref.focusable;
|
|
352
|
-
var intl = reactIntl.useIntl();
|
|
353
|
-
|
|
354
|
-
var _useState = React.useState(false),
|
|
355
|
-
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
356
|
-
storyShareModalOpened = _useState2[0],
|
|
357
|
-
setStoryShareModalOpened = _useState2[1];
|
|
358
|
-
|
|
359
|
-
var onShareIconClick = React.useCallback(function () {
|
|
360
|
-
setStoryShareModalOpened(function (opened) {
|
|
361
|
-
return !opened;
|
|
362
|
-
});
|
|
363
|
-
}, [setStoryShareModalOpened, storyShareModalOpened]);
|
|
364
|
-
var onStoryShared = React.useCallback(function (type) {
|
|
365
|
-
setStoryShareModalOpened(false);
|
|
296
|
+
var className = _ref.className,
|
|
297
|
+
onClick = _ref.onClick,
|
|
298
|
+
theme = _ref.theme,
|
|
299
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded$4);
|
|
366
300
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
var onStoryShareCanceled = React.useCallback(function () {
|
|
372
|
-
setStoryShareModalOpened(false);
|
|
373
|
-
}, [setStoryShareModalOpened]);
|
|
374
|
-
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
375
|
-
className: classNames__default["default"]([styles$b.container, _defineProperty__default["default"]({}, className, className !== null)])
|
|
376
|
-
}, /*#__PURE__*/React__default["default"].createElement(components.Button, {
|
|
377
|
-
className: classNames__default["default"]([_defineProperty__default["default"]({}, buttonClassName, buttonClassName !== null)]),
|
|
378
|
-
onClick: onShareIconClick,
|
|
379
|
-
title: intl.formatMessage({
|
|
380
|
-
id: "7tw6U2",
|
|
381
|
-
defaultMessage: [{
|
|
382
|
-
"type": 0,
|
|
383
|
-
"value": "Share"
|
|
384
|
-
}]
|
|
385
|
-
}),
|
|
386
|
-
"aria-label": intl.formatMessage({
|
|
301
|
+
var intl = reactIntl.useIntl();
|
|
302
|
+
return /*#__PURE__*/React__default["default"].createElement(components.IconButton, Object.assign({
|
|
303
|
+
className: classNames__default["default"]([_defineProperty__default["default"]({}, className, className !== null)]),
|
|
304
|
+
label: intl.formatMessage({
|
|
387
305
|
id: "7tw6U2",
|
|
388
306
|
defaultMessage: [{
|
|
389
307
|
"type": 0,
|
|
390
308
|
"value": "Share"
|
|
391
309
|
}]
|
|
392
310
|
}),
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
311
|
+
iconPosition: "left",
|
|
312
|
+
icon: /*#__PURE__*/React__default["default"].createElement("svg", Object.assign({
|
|
313
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
314
|
+
width: "10",
|
|
315
|
+
height: "16",
|
|
316
|
+
viewBox: "0 0 10 16",
|
|
317
|
+
fill: "currentColor"
|
|
318
|
+
}, theme), /*#__PURE__*/React__default["default"].createElement("polygon", {
|
|
319
|
+
points: "8.5 14.5 1.5 14.5 1.5 8 0 8 0 16 10 16 10 8 8.5 8 8.5 14.5"
|
|
320
|
+
}), /*#__PURE__*/React__default["default"].createElement("polygon", {
|
|
321
|
+
points: "9.62 4.62 5 0 0.38 4.62 1.44 5.68 4.25 2.87 4.25 11.26 5.75 11.26 5.75 2.87 8.56 5.68 9.62 4.62"
|
|
322
|
+
})),
|
|
323
|
+
onClick: onClick
|
|
324
|
+
}, props));
|
|
402
325
|
};
|
|
403
326
|
|
|
404
|
-
ShareButton.propTypes = propTypes$
|
|
405
|
-
ShareButton.defaultProps = defaultProps$
|
|
327
|
+
ShareButton.propTypes = propTypes$j;
|
|
328
|
+
ShareButton.defaultProps = defaultProps$j;
|
|
406
329
|
|
|
407
|
-
var styles$
|
|
330
|
+
var styles$d = {"container":"micromag-viewer-menus-menu-container-container","heightContainer":"micromag-viewer-menus-menu-container-heightContainer","inner":"micromag-viewer-menus-menu-container-inner"};
|
|
408
331
|
|
|
409
|
-
var propTypes$
|
|
332
|
+
var propTypes$i = {
|
|
333
|
+
className: PropTypes__default["default"].string,
|
|
334
|
+
transitionProgress: PropTypes__default["default"].number,
|
|
335
|
+
children: PropTypes__default["default"].node
|
|
336
|
+
};
|
|
337
|
+
var defaultProps$i = {
|
|
338
|
+
className: null,
|
|
339
|
+
transitionProgress: 0,
|
|
340
|
+
children: null
|
|
341
|
+
};
|
|
342
|
+
|
|
343
|
+
var ViewerMenuContainer = function ViewerMenuContainer(_ref) {
|
|
344
|
+
var className = _ref.className,
|
|
345
|
+
transitionProgress = _ref.transitionProgress,
|
|
346
|
+
children = _ref.children;
|
|
347
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
348
|
+
className: classNames__default["default"]([styles$d.container, _defineProperty__default["default"]({}, className, className !== null)]),
|
|
349
|
+
style: {
|
|
350
|
+
pointerEvents: 'none'
|
|
351
|
+
}
|
|
352
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
353
|
+
className: styles$d.heightContainer,
|
|
354
|
+
style: {
|
|
355
|
+
height: "".concat(transitionProgress * 100, "%"),
|
|
356
|
+
pointerEvents: transitionProgress < 0.25 ? 'none' : 'auto',
|
|
357
|
+
zIndex: Math.round(2 - transitionProgress)
|
|
358
|
+
}
|
|
359
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
360
|
+
className: styles$d.inner
|
|
361
|
+
}, children)));
|
|
362
|
+
};
|
|
363
|
+
|
|
364
|
+
ViewerMenuContainer.propTypes = propTypes$i;
|
|
365
|
+
ViewerMenuContainer.defaultProps = defaultProps$i;
|
|
366
|
+
|
|
367
|
+
var styles$c = {"button":"micromag-viewer-menus-menu-dot-button","progress":"micromag-viewer-menus-menu-dot-progress","dot":"micromag-viewer-menus-menu-dot-dot","container":"micromag-viewer-menus-menu-dot-container","vertical":"micromag-viewer-menus-menu-dot-vertical","subDot":"micromag-viewer-menus-menu-dot-subDot","dots":"micromag-viewer-menus-menu-dot-dots","outlineBounce":"micromag-viewer-menus-menu-dot-outlineBounce"};
|
|
368
|
+
|
|
369
|
+
var propTypes$h = {
|
|
410
370
|
current: PropTypes__default["default"].bool,
|
|
411
371
|
active: PropTypes__default["default"].bool,
|
|
412
372
|
colors: PropTypes__default["default"].shape({
|
|
@@ -419,7 +379,7 @@ var propTypes$f = {
|
|
|
419
379
|
onClick: PropTypes__default["default"].func,
|
|
420
380
|
className: PropTypes__default["default"].string
|
|
421
381
|
};
|
|
422
|
-
var defaultProps$
|
|
382
|
+
var defaultProps$h = {
|
|
423
383
|
current: false,
|
|
424
384
|
active: false,
|
|
425
385
|
colors: null,
|
|
@@ -441,130 +401,67 @@ var ViewerMenuDot = function ViewerMenuDot(_ref) {
|
|
|
441
401
|
vertical = _ref.vertical,
|
|
442
402
|
onClick = _ref.onClick,
|
|
443
403
|
className = _ref.className;
|
|
444
|
-
var currentTime = 0;
|
|
445
|
-
var duration = 1;
|
|
446
|
-
var playing = true;
|
|
447
404
|
|
|
448
405
|
var _ref2 = colors || {},
|
|
449
406
|
_ref2$primary = _ref2.primary,
|
|
450
407
|
primary = _ref2$primary === void 0 ? 'rgba(255, 255, 255, 1)' : _ref2$primary,
|
|
451
408
|
_ref2$secondary = _ref2.secondary,
|
|
452
|
-
secondary = _ref2$secondary === void 0 ? 'rgba(
|
|
409
|
+
secondary = _ref2$secondary === void 0 ? 'rgba(255, 255, 255, 0.25)' : _ref2$secondary;
|
|
453
410
|
|
|
454
|
-
|
|
455
|
-
var _useSpring = core.useSpring(function () {
|
|
411
|
+
var _useSpring = core$1.useSpring(function () {
|
|
456
412
|
return {
|
|
457
|
-
|
|
413
|
+
scaleX: 0,
|
|
458
414
|
config: {
|
|
459
|
-
|
|
415
|
+
tension: 200,
|
|
416
|
+
friction: 30
|
|
460
417
|
}
|
|
461
418
|
};
|
|
462
419
|
}),
|
|
463
|
-
_useSpring2 = _slicedToArray__default["default"](_useSpring, 2)
|
|
464
|
-
_useSpring2[0]
|
|
465
|
-
|
|
420
|
+
_useSpring2 = _slicedToArray__default["default"](_useSpring, 2),
|
|
421
|
+
dotSpringStyles = _useSpring2[0],
|
|
422
|
+
setDotSpringProps = _useSpring2[1];
|
|
466
423
|
|
|
467
424
|
React.useEffect(function () {
|
|
468
|
-
|
|
469
|
-
var
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
x: progress
|
|
475
|
-
},
|
|
476
|
-
to: {
|
|
477
|
-
x: 1
|
|
478
|
-
},
|
|
479
|
-
config: {
|
|
480
|
-
duration: (duration - currentTime) * 1000
|
|
481
|
-
}
|
|
482
|
-
});
|
|
483
|
-
}, [playing, duration, currentTime, setSpringProps]);
|
|
484
|
-
var inner = current && count > 1 ? /*#__PURE__*/React__default["default"].createElement("span", {
|
|
485
|
-
className: styles$a.dots
|
|
486
|
-
}, _toConsumableArray__default["default"](Array(count).keys()).map(function (i) {
|
|
487
|
-
return /*#__PURE__*/React__default["default"].createElement("span", {
|
|
488
|
-
className: classNames__default["default"]([styles$a.dot, styles$a.subDot]),
|
|
489
|
-
style: {
|
|
490
|
-
width: "".concat(parseFloat(1 / count * 100).toFixed(2), "%"),
|
|
491
|
-
backgroundColor: active && i <= subIndex ? primary : secondary
|
|
492
|
-
}
|
|
425
|
+
var activeRatio = active ? 1 : 0;
|
|
426
|
+
var ratio = count > 1 && current ? (subIndex + 1) / count : activeRatio;
|
|
427
|
+
var scaleX = ratio;
|
|
428
|
+
setDotSpringProps.start({
|
|
429
|
+
scaleX: scaleX,
|
|
430
|
+
immediate: !current
|
|
493
431
|
});
|
|
494
|
-
}
|
|
495
|
-
className: styles$a.dot,
|
|
496
|
-
style: {
|
|
497
|
-
backgroundColor: active ? primary : secondary
|
|
498
|
-
}
|
|
499
|
-
});
|
|
432
|
+
}, [active, current, subIndex, count, setDotSpringProps]);
|
|
500
433
|
return /*#__PURE__*/React__default["default"].createElement("li", {
|
|
501
|
-
className: classNames__default["default"]([styles$
|
|
434
|
+
className: classNames__default["default"]([styles$c.container, (_ref3 = {}, _defineProperty__default["default"](_ref3, styles$c.active, current), _defineProperty__default["default"](_ref3, styles$c.vertical, vertical), _defineProperty__default["default"](_ref3, className, className !== null), _ref3)]),
|
|
502
435
|
"aria-hidden": "true"
|
|
503
436
|
}, /*#__PURE__*/React__default["default"].createElement("button", {
|
|
504
437
|
type: "button",
|
|
505
|
-
className: styles$
|
|
438
|
+
className: styles$c.button,
|
|
506
439
|
onClick: onClick,
|
|
507
440
|
tabIndex: "-1"
|
|
508
|
-
},
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
color: PropTypes__default["default"].string,
|
|
520
|
-
className: PropTypes__default["default"].string
|
|
521
|
-
};
|
|
522
|
-
var defaultProps$e = {
|
|
523
|
-
size: 100,
|
|
524
|
-
spacing: 8,
|
|
525
|
-
color: 'white',
|
|
526
|
-
className: null
|
|
527
|
-
};
|
|
528
|
-
|
|
529
|
-
var MenuIcon = function MenuIcon(_ref) {
|
|
530
|
-
var size = _ref.size,
|
|
531
|
-
spacing = _ref.spacing,
|
|
532
|
-
color = _ref.color,
|
|
533
|
-
className = _ref.className;
|
|
534
|
-
var squareSize = (size - 2 * spacing) / 3;
|
|
535
|
-
return /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
536
|
-
className: classNames__default["default"]([styles$9.container, _defineProperty__default["default"]({}, className, className !== null)]),
|
|
537
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
538
|
-
viewBox: "0 0 ".concat(size, " ").concat(size),
|
|
539
|
-
"aria-hidden": "true"
|
|
540
|
-
}, _toConsumableArray__default["default"](new Array(9)).map(function (square, squareI) {
|
|
541
|
-
var x = squareI % 3 * (squareSize + spacing);
|
|
542
|
-
var y = Math.floor(squareI / 3) * (squareSize + spacing);
|
|
543
|
-
return /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
544
|
-
key: "square-".concat(squareI),
|
|
545
|
-
fill: color,
|
|
546
|
-
x: x,
|
|
547
|
-
y: y,
|
|
548
|
-
width: squareSize,
|
|
549
|
-
height: squareSize
|
|
550
|
-
});
|
|
551
|
-
}));
|
|
441
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
442
|
+
className: styles$c.dot,
|
|
443
|
+
style: {
|
|
444
|
+
backgroundColor: secondary
|
|
445
|
+
}
|
|
446
|
+
}, /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
|
|
447
|
+
className: styles$c.progress,
|
|
448
|
+
style: _objectSpread__default["default"](_objectSpread__default["default"]({}, dotSpringStyles), {}, {
|
|
449
|
+
backgroundColor: primary
|
|
450
|
+
})
|
|
451
|
+
}))));
|
|
552
452
|
};
|
|
553
453
|
|
|
554
|
-
|
|
555
|
-
|
|
454
|
+
ViewerMenuDot.propTypes = propTypes$h;
|
|
455
|
+
ViewerMenuDot.defaultProps = defaultProps$h;
|
|
556
456
|
|
|
557
|
-
var styles$
|
|
457
|
+
var styles$b = {"container":"micromag-viewer-menus-menu-dots-container","closeButton":"micromag-viewer-menus-menu-dots-closeButton","item":"micromag-viewer-menus-menu-dots-item","items":"micromag-viewer-menus-menu-dots-items","vertical":"micromag-viewer-menus-menu-dots-vertical"};
|
|
558
458
|
|
|
559
|
-
var
|
|
459
|
+
var _excluded$3 = ["direction", "items", "onClickDot", "onClickScreensMenu", "colors", "closeable", "withItemClick", "withoutScreensMenu", "onClose", "className"];
|
|
460
|
+
var propTypes$g = {
|
|
560
461
|
direction: PropTypes__default["default"].oneOf(['horizontal', 'vertical']),
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
shareUrl: PropTypes__default["default"].string,
|
|
565
|
-
onShare: PropTypes__default["default"].func,
|
|
566
|
-
onClickItem: PropTypes__default["default"].func,
|
|
567
|
-
onClickMenu: PropTypes__default["default"].func,
|
|
462
|
+
items: core.PropTypes.menuItems,
|
|
463
|
+
onClickDot: PropTypes__default["default"].func,
|
|
464
|
+
onClickScreensMenu: PropTypes__default["default"].func,
|
|
568
465
|
colors: PropTypes__default["default"].shape({
|
|
569
466
|
primary: PropTypes__default["default"].string,
|
|
570
467
|
secondary: PropTypes__default["default"].string
|
|
@@ -572,46 +469,36 @@ var propTypes$d = {
|
|
|
572
469
|
closeable: PropTypes__default["default"].bool,
|
|
573
470
|
withItemClick: PropTypes__default["default"].bool,
|
|
574
471
|
withoutScreensMenu: PropTypes__default["default"].bool,
|
|
575
|
-
withoutShareMenu: PropTypes__default["default"].bool,
|
|
576
472
|
onClose: PropTypes__default["default"].func,
|
|
577
473
|
className: PropTypes__default["default"].string
|
|
578
474
|
};
|
|
579
|
-
var defaultProps$
|
|
475
|
+
var defaultProps$g = {
|
|
580
476
|
direction: 'horizontal',
|
|
581
|
-
withShadow: false,
|
|
582
|
-
title: null,
|
|
583
477
|
items: [],
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
onClickItem: null,
|
|
587
|
-
onClickMenu: null,
|
|
478
|
+
onClickDot: null,
|
|
479
|
+
onClickScreensMenu: null,
|
|
588
480
|
colors: null,
|
|
589
481
|
closeable: false,
|
|
590
482
|
withItemClick: false,
|
|
591
483
|
withoutScreensMenu: false,
|
|
592
|
-
withoutShareMenu: false,
|
|
593
484
|
onClose: null,
|
|
594
485
|
className: null
|
|
595
486
|
};
|
|
596
487
|
|
|
597
488
|
var ViewerMenuDots = function ViewerMenuDots(_ref) {
|
|
598
|
-
var
|
|
489
|
+
var _ref5;
|
|
599
490
|
|
|
600
491
|
var direction = _ref.direction,
|
|
601
|
-
withShadow = _ref.withShadow,
|
|
602
|
-
title = _ref.title,
|
|
603
492
|
items = _ref.items,
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
onClickItem = _ref.onClickItem,
|
|
607
|
-
onClickMenu = _ref.onClickMenu,
|
|
493
|
+
onClickDot = _ref.onClickDot,
|
|
494
|
+
onClickScreensMenu = _ref.onClickScreensMenu,
|
|
608
495
|
colors = _ref.colors,
|
|
609
496
|
closeable = _ref.closeable,
|
|
610
497
|
withItemClick = _ref.withItemClick,
|
|
611
498
|
withoutScreensMenu = _ref.withoutScreensMenu,
|
|
612
|
-
withoutShareMenu = _ref.withoutShareMenu,
|
|
613
499
|
onClose = _ref.onClose,
|
|
614
|
-
className = _ref.className
|
|
500
|
+
className = _ref.className,
|
|
501
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded$3);
|
|
615
502
|
|
|
616
503
|
var _ref2 = colors || {},
|
|
617
504
|
_ref2$primary = _ref2.primary,
|
|
@@ -623,8 +510,12 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
|
|
|
623
510
|
current = _ref3$current === void 0 ? false : _ref3$current;
|
|
624
511
|
return current;
|
|
625
512
|
});
|
|
513
|
+
|
|
514
|
+
var _ref4 = props || {},
|
|
515
|
+
style = _ref4.style;
|
|
516
|
+
|
|
626
517
|
return /*#__PURE__*/React__default["default"].createElement("nav", {
|
|
627
|
-
className: classNames__default["default"]([styles$
|
|
518
|
+
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)]),
|
|
628
519
|
"aria-label": intl.formatMessage({
|
|
629
520
|
id: "bLYuuN",
|
|
630
521
|
defaultMessage: [{
|
|
@@ -646,17 +537,18 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
|
|
|
646
537
|
}, {
|
|
647
538
|
current: currentIndex + 1,
|
|
648
539
|
total: items.length
|
|
649
|
-
})
|
|
540
|
+
}),
|
|
541
|
+
style: style
|
|
650
542
|
}, /*#__PURE__*/React__default["default"].createElement("ul", {
|
|
651
|
-
className: styles$
|
|
543
|
+
className: styles$b.items
|
|
652
544
|
}, items.map(function (item, index) {
|
|
653
|
-
var
|
|
654
|
-
|
|
655
|
-
current =
|
|
656
|
-
|
|
657
|
-
count =
|
|
658
|
-
|
|
659
|
-
subIndex =
|
|
545
|
+
var _ref6 = item || {},
|
|
546
|
+
_ref6$current = _ref6.current,
|
|
547
|
+
current = _ref6$current === void 0 ? false : _ref6$current,
|
|
548
|
+
_ref6$count = _ref6.count,
|
|
549
|
+
count = _ref6$count === void 0 ? 1 : _ref6$count,
|
|
550
|
+
_ref6$subIndex = _ref6.subIndex,
|
|
551
|
+
subIndex = _ref6$subIndex === void 0 ? 0 : _ref6$subIndex;
|
|
660
552
|
|
|
661
553
|
return /*#__PURE__*/React__default["default"].createElement(ViewerMenuDot, {
|
|
662
554
|
key: "item-".concat(index + 1),
|
|
@@ -666,56 +558,22 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
|
|
|
666
558
|
count: count,
|
|
667
559
|
subIndex: subIndex,
|
|
668
560
|
onClick: function onClick() {
|
|
669
|
-
if ((withItemClick || withoutScreensMenu) &&
|
|
670
|
-
|
|
671
|
-
} else if (!withItemClick &&
|
|
672
|
-
|
|
561
|
+
if ((withItemClick || withoutScreensMenu) && onClickDot !== null) {
|
|
562
|
+
onClickDot(item);
|
|
563
|
+
} else if (!withItemClick && onClickScreensMenu !== null) {
|
|
564
|
+
onClickScreensMenu();
|
|
673
565
|
}
|
|
674
566
|
},
|
|
675
567
|
vertical: direction === 'vertical'
|
|
676
568
|
});
|
|
677
|
-
}),
|
|
678
|
-
className: styles$
|
|
679
|
-
}, /*#__PURE__*/React__default["default"].createElement(ShareButton, {
|
|
680
|
-
className: styles$8.shareButton,
|
|
681
|
-
buttonClassName: styles$8.menuButton,
|
|
682
|
-
onShare: onShare,
|
|
683
|
-
url: shareUrl,
|
|
684
|
-
title: title
|
|
685
|
-
}, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
|
|
686
|
-
className: styles$8.icon,
|
|
687
|
-
icon: faShare.faShare
|
|
688
|
-
}))) : null, !withoutScreensMenu ? /*#__PURE__*/React__default["default"].createElement("li", {
|
|
689
|
-
className: styles$8.menu
|
|
690
|
-
}, /*#__PURE__*/React__default["default"].createElement(MenuIcon, {
|
|
691
|
-
className: styles$8.menuIcon,
|
|
692
|
-
color: primary
|
|
693
|
-
}), /*#__PURE__*/React__default["default"].createElement("button", {
|
|
694
|
-
type: "button",
|
|
695
|
-
title: intl.formatMessage({
|
|
696
|
-
id: "F/gl4b",
|
|
697
|
-
defaultMessage: [{
|
|
698
|
-
"type": 0,
|
|
699
|
-
"value": "Menu"
|
|
700
|
-
}]
|
|
701
|
-
}),
|
|
702
|
-
"aria-label": intl.formatMessage({
|
|
703
|
-
id: "F/gl4b",
|
|
704
|
-
defaultMessage: [{
|
|
705
|
-
"type": 0,
|
|
706
|
-
"value": "Menu"
|
|
707
|
-
}]
|
|
708
|
-
}),
|
|
709
|
-
className: styles$8.menuButton,
|
|
710
|
-
onClick: onClickMenu
|
|
711
|
-
})) : null, closeable ? /*#__PURE__*/React__default["default"].createElement("li", {
|
|
712
|
-
className: styles$8.closeButton,
|
|
569
|
+
}), closeable ? /*#__PURE__*/React__default["default"].createElement("li", {
|
|
570
|
+
className: styles$b.closeButton,
|
|
713
571
|
style: {
|
|
714
572
|
color: primary
|
|
715
573
|
}
|
|
716
574
|
}, /*#__PURE__*/React__default["default"].createElement("button", {
|
|
717
575
|
type: "button",
|
|
718
|
-
className: styles$
|
|
576
|
+
className: styles$b.closeButton,
|
|
719
577
|
onClick: onClose,
|
|
720
578
|
title: intl.formatMessage({
|
|
721
579
|
id: "dj/p/q",
|
|
@@ -736,64 +594,159 @@ var ViewerMenuDots = function ViewerMenuDots(_ref) {
|
|
|
736
594
|
}))) : null));
|
|
737
595
|
};
|
|
738
596
|
|
|
739
|
-
ViewerMenuDots.propTypes = propTypes$
|
|
740
|
-
ViewerMenuDots.defaultProps = defaultProps$
|
|
597
|
+
ViewerMenuDots.propTypes = propTypes$g;
|
|
598
|
+
ViewerMenuDots.defaultProps = defaultProps$g;
|
|
741
599
|
|
|
742
|
-
var propTypes$
|
|
600
|
+
var propTypes$f = {
|
|
743
601
|
className: PropTypes__default["default"].string
|
|
744
602
|
};
|
|
745
|
-
var defaultProps$
|
|
603
|
+
var defaultProps$f = {
|
|
746
604
|
className: null
|
|
747
605
|
};
|
|
748
606
|
|
|
749
607
|
var StackIcon = function StackIcon(_ref) {
|
|
750
608
|
var className = _ref.className;
|
|
751
609
|
return /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
752
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
610
|
+
xmlns: "http://www.w3.org/2000/svg" // width="32"
|
|
611
|
+
// height="32"
|
|
612
|
+
// viewBox="0 0 32 32"
|
|
613
|
+
,
|
|
614
|
+
width: "11.5",
|
|
615
|
+
height: "17.5",
|
|
616
|
+
viewBox: "0 0 11.5 17.5",
|
|
756
617
|
className: classNames__default["default"]([_defineProperty__default["default"]({}, className, className !== null)])
|
|
757
|
-
}, /*#__PURE__*/React__default["default"].createElement("
|
|
758
|
-
|
|
618
|
+
}, /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
619
|
+
width: "10",
|
|
620
|
+
height: "16"
|
|
621
|
+
}), /*#__PURE__*/React__default["default"].createElement("polygon", {
|
|
622
|
+
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"
|
|
759
623
|
}));
|
|
760
624
|
};
|
|
761
625
|
|
|
762
|
-
StackIcon.propTypes = propTypes$
|
|
763
|
-
StackIcon.defaultProps = defaultProps$
|
|
626
|
+
StackIcon.propTypes = propTypes$f;
|
|
627
|
+
StackIcon.defaultProps = defaultProps$f;
|
|
764
628
|
|
|
765
|
-
var styles$
|
|
629
|
+
var styles$a = {"button":"micromag-viewer-menus-menu-screen-button","container":"micromag-viewer-menus-menu-screen-container","isCurrent":"micromag-viewer-menus-menu-screen-isCurrent","pulse":"micromag-viewer-menus-menu-screen-pulse","inner":"micromag-viewer-menus-menu-screen-inner","subScreenBadge":"micromag-viewer-menus-menu-screen-subScreenBadge","subScreenCount":"micromag-viewer-menus-menu-screen-subScreenCount","subScreenIcon":"micromag-viewer-menus-menu-screen-subScreenIcon"};
|
|
766
630
|
|
|
767
|
-
var propTypes$
|
|
768
|
-
|
|
769
|
-
|
|
631
|
+
var propTypes$e = {
|
|
632
|
+
className: PropTypes__default["default"].string,
|
|
633
|
+
item: core.PropTypes.menuItem,
|
|
634
|
+
index: PropTypes__default["default"].number,
|
|
635
|
+
onClick: PropTypes__default["default"].func,
|
|
636
|
+
screenSize: core.PropTypes.screenSize,
|
|
637
|
+
focusable: PropTypes__default["default"].bool
|
|
638
|
+
};
|
|
639
|
+
var defaultProps$e = {
|
|
640
|
+
className: null,
|
|
641
|
+
item: core.PropTypes.menuItem,
|
|
642
|
+
index: 0,
|
|
643
|
+
onClick: null,
|
|
644
|
+
screenSize: null,
|
|
645
|
+
focusable: true
|
|
646
|
+
};
|
|
647
|
+
|
|
648
|
+
var ViewerMenuScreen = function ViewerMenuScreen(_ref) {
|
|
649
|
+
var _ref4;
|
|
650
|
+
|
|
651
|
+
var className = _ref.className,
|
|
652
|
+
item = _ref.item,
|
|
653
|
+
index = _ref.index,
|
|
654
|
+
_onClick = _ref.onClick,
|
|
655
|
+
screenSize = _ref.screenSize,
|
|
656
|
+
focusable = _ref.focusable;
|
|
657
|
+
var intl = reactIntl.useIntl();
|
|
658
|
+
|
|
659
|
+
var _ref2 = item || {},
|
|
660
|
+
_ref2$current = _ref2.current,
|
|
661
|
+
current = _ref2$current === void 0 ? false : _ref2$current,
|
|
662
|
+
screen = _ref2.screen,
|
|
663
|
+
_ref2$count = _ref2.count,
|
|
664
|
+
count = _ref2$count === void 0 ? 1 : _ref2$count;
|
|
665
|
+
|
|
666
|
+
var _ref3 = screenSize || {},
|
|
667
|
+
screenWidth = _ref3.width,
|
|
668
|
+
screenHeight = _ref3.height;
|
|
669
|
+
|
|
670
|
+
var screenAriaLabel = "".concat(intl.formatMessage({
|
|
671
|
+
id: "LkVfwW",
|
|
672
|
+
defaultMessage: [{
|
|
673
|
+
"type": 0,
|
|
674
|
+
"value": "Screen "
|
|
675
|
+
}, {
|
|
676
|
+
"type": 1,
|
|
677
|
+
"value": "index"
|
|
678
|
+
}]
|
|
679
|
+
}, {
|
|
680
|
+
index: index + 1
|
|
681
|
+
})).concat(current ? " ".concat(intl.formatMessage({
|
|
682
|
+
id: "vmrJ8U",
|
|
683
|
+
defaultMessage: [{
|
|
684
|
+
"type": 0,
|
|
685
|
+
"value": "(current screen)"
|
|
686
|
+
}]
|
|
687
|
+
})) : '');
|
|
688
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
689
|
+
className: classNames__default["default"]([styles$a.container, (_ref4 = {}, _defineProperty__default["default"](_ref4, className, className !== null), _defineProperty__default["default"](_ref4, styles$a.isCurrent, current), _ref4)])
|
|
690
|
+
}, /*#__PURE__*/React__default["default"].createElement("button", {
|
|
691
|
+
type: "button",
|
|
692
|
+
className: styles$a.button,
|
|
693
|
+
onClick: function onClick() {
|
|
694
|
+
if (_onClick !== null) {
|
|
695
|
+
_onClick(item);
|
|
696
|
+
}
|
|
697
|
+
},
|
|
698
|
+
"aria-label": screenAriaLabel,
|
|
699
|
+
tabIndex: focusable ? '0' : '-1'
|
|
700
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
701
|
+
className: styles$a.inner
|
|
702
|
+
}, count > 1 ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
703
|
+
className: styles$a.subScreenBadge
|
|
704
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
705
|
+
className: styles$a.subScreenCount
|
|
706
|
+
}, count), /*#__PURE__*/React__default["default"].createElement(StackIcon, {
|
|
707
|
+
className: styles$a.subScreenIcon
|
|
708
|
+
})) : null, screenWidth > 0 && screenHeight > 0 ? /*#__PURE__*/React__default["default"].createElement(components.ScreenPreview, {
|
|
709
|
+
className: styles$a.screen,
|
|
710
|
+
screenWidth: screenWidth,
|
|
711
|
+
screenHeight: screenHeight,
|
|
712
|
+
screen: screen,
|
|
713
|
+
focusable: focusable,
|
|
714
|
+
active: focusable,
|
|
715
|
+
withSize: true
|
|
716
|
+
}) : null));
|
|
717
|
+
};
|
|
718
|
+
|
|
719
|
+
ViewerMenuScreen.propTypes = propTypes$e;
|
|
720
|
+
ViewerMenuScreen.defaultProps = defaultProps$e;
|
|
721
|
+
|
|
722
|
+
var styles$9 = {"scroll":"micromag-viewer-menus-menu-preview-scroll","container":"micromag-viewer-menus-menu-preview-container","disabled":"micromag-viewer-menus-menu-preview-disabled","screenButton":"micromag-viewer-menus-menu-preview-screenButton","buttons":"micromag-viewer-menus-menu-preview-buttons","organisation":"micromag-viewer-menus-menu-preview-organisation","icon":"micromag-viewer-menus-menu-preview-icon","title":"micromag-viewer-menus-menu-preview-title","content":"micromag-viewer-menus-menu-preview-content","nav":"micromag-viewer-menus-menu-preview-nav","item":"micromag-viewer-menus-menu-preview-item","items":"micromag-viewer-menus-menu-preview-items"};
|
|
723
|
+
|
|
724
|
+
var propTypes$d = {
|
|
725
|
+
viewerTheme: core.PropTypes.viewerTheme,
|
|
726
|
+
screenSize: core.PropTypes.screenSize,
|
|
770
727
|
menuWidth: PropTypes__default["default"].number,
|
|
771
|
-
|
|
772
|
-
items: core$1.PropTypes.menuItems,
|
|
728
|
+
items: core.PropTypes.menuItems,
|
|
773
729
|
focusable: PropTypes__default["default"].bool,
|
|
774
|
-
|
|
775
|
-
onClickItem: PropTypes__default["default"].func,
|
|
776
|
-
onClose: PropTypes__default["default"].func,
|
|
730
|
+
onClickScreen: PropTypes__default["default"].func,
|
|
777
731
|
maxThumbsWidth: PropTypes__default["default"].number,
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
732
|
+
// shouldLoad: PropTypes.bool, // @todo still needed? to re-implement?
|
|
733
|
+
// toggleFullscreen: PropTypes.func,
|
|
734
|
+
// fullscreenActive: PropTypes.bool,
|
|
735
|
+
// fullscreenEnabled: PropTypes.bool,
|
|
781
736
|
className: PropTypes__default["default"].string
|
|
782
737
|
};
|
|
783
|
-
var defaultProps$
|
|
738
|
+
var defaultProps$d = {
|
|
784
739
|
viewerTheme: null,
|
|
785
740
|
screenSize: null,
|
|
786
741
|
menuWidth: null,
|
|
787
|
-
title: null,
|
|
788
742
|
items: [],
|
|
789
743
|
focusable: true,
|
|
790
|
-
shouldLoad: true,
|
|
791
|
-
|
|
792
|
-
onClose: null,
|
|
744
|
+
// shouldLoad: true,
|
|
745
|
+
onClickScreen: null,
|
|
793
746
|
maxThumbsWidth: 140,
|
|
794
|
-
toggleFullscreen: null,
|
|
795
|
-
fullscreenActive: false,
|
|
796
|
-
fullscreenEnabled: false,
|
|
747
|
+
// toggleFullscreen: null,
|
|
748
|
+
// fullscreenActive: false,
|
|
749
|
+
// fullscreenEnabled: false,
|
|
797
750
|
className: null
|
|
798
751
|
};
|
|
799
752
|
|
|
@@ -801,259 +754,313 @@ var ViewerMenuPreview = function ViewerMenuPreview(_ref) {
|
|
|
801
754
|
var viewerTheme = _ref.viewerTheme,
|
|
802
755
|
screenSize = _ref.screenSize,
|
|
803
756
|
menuWidth = _ref.menuWidth,
|
|
804
|
-
title = _ref.title,
|
|
805
757
|
items = _ref.items,
|
|
806
758
|
focusable = _ref.focusable,
|
|
807
|
-
|
|
808
|
-
onClose = _ref.onClose,
|
|
759
|
+
onClickScreen = _ref.onClickScreen,
|
|
809
760
|
maxThumbsWidth = _ref.maxThumbsWidth,
|
|
810
|
-
toggleFullscreen = _ref.toggleFullscreen,
|
|
811
|
-
fullscreenActive = _ref.fullscreenActive,
|
|
812
|
-
fullscreenEnabled = _ref.fullscreenEnabled,
|
|
813
761
|
className = _ref.className;
|
|
814
|
-
var intl = reactIntl.useIntl();
|
|
815
|
-
|
|
816
|
-
var _ref2 = screenSize || {},
|
|
817
|
-
screenWidth = _ref2.width,
|
|
818
|
-
screenHeight = _ref2.height;
|
|
819
762
|
|
|
820
763
|
var _useDimensionObserver = hooks.useDimensionObserver(),
|
|
821
|
-
|
|
764
|
+
containerRef = _useDimensionObserver.ref,
|
|
822
765
|
_useDimensionObserver2 = _useDimensionObserver.width,
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
var _useDimensionObserver3 = hooks.useDimensionObserver(),
|
|
826
|
-
containerRef = _useDimensionObserver3.ref,
|
|
827
|
-
_useDimensionObserver4 = _useDimensionObserver3.width,
|
|
828
|
-
contentWidth = _useDimensionObserver4 === void 0 ? 0 : _useDimensionObserver4;
|
|
766
|
+
contentWidth = _useDimensionObserver2 === void 0 ? 0 : _useDimensionObserver2;
|
|
829
767
|
|
|
830
768
|
var thumbsPerLine = Math.max(Math.floor(contentWidth / maxThumbsWidth), 3); // Viewer theme
|
|
769
|
+
// @todo room for improvement here probably
|
|
770
|
+
// @todo also re-implement!!
|
|
831
771
|
|
|
832
|
-
var
|
|
833
|
-
|
|
834
|
-
colors =
|
|
835
|
-
|
|
836
|
-
background =
|
|
837
|
-
|
|
838
|
-
textStyles = _ref3$textStyles === void 0 ? null : _ref3$textStyles,
|
|
839
|
-
_ref3$logo = _ref3.logo,
|
|
840
|
-
brandLogo = _ref3$logo === void 0 ? null : _ref3$logo;
|
|
841
|
-
|
|
842
|
-
var _ref4 = textStyles || {},
|
|
843
|
-
_ref4$title = _ref4.title,
|
|
844
|
-
brandTextStyle = _ref4$title === void 0 ? null : _ref4$title;
|
|
772
|
+
var _ref2 = viewerTheme || {},
|
|
773
|
+
_ref2$colors = _ref2.colors,
|
|
774
|
+
colors = _ref2$colors === void 0 ? null : _ref2$colors,
|
|
775
|
+
_ref2$background = _ref2.background,
|
|
776
|
+
background = _ref2$background === void 0 ? null : _ref2$background;
|
|
777
|
+
_ref2.logo;
|
|
845
778
|
|
|
846
|
-
var
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
_ref5$secondary = _ref5.secondary,
|
|
850
|
-
brandSecondaryColor = _ref5$secondary === void 0 ? null : _ref5$secondary;
|
|
779
|
+
var _ref3 = colors || {};
|
|
780
|
+
_ref3.primary;
|
|
781
|
+
_ref3.secondary;
|
|
851
782
|
|
|
852
|
-
var
|
|
853
|
-
|
|
854
|
-
brandBackgroundColor =
|
|
855
|
-
|
|
856
|
-
image =
|
|
783
|
+
var _ref4 = background || {},
|
|
784
|
+
_ref4$color = _ref4.color,
|
|
785
|
+
brandBackgroundColor = _ref4$color === void 0 ? null : _ref4$color,
|
|
786
|
+
_ref4$image = _ref4.image,
|
|
787
|
+
image = _ref4$image === void 0 ? null : _ref4$image;
|
|
857
788
|
|
|
858
|
-
var
|
|
859
|
-
|
|
860
|
-
brandImageUrl =
|
|
789
|
+
var _ref5 = image || {},
|
|
790
|
+
_ref5$url = _ref5.url,
|
|
791
|
+
brandImageUrl = _ref5$url === void 0 ? null : _ref5$url; // const borderPrimaryColorStyle = getStyleFromColor(brandPrimaryColor, 'borderColor');
|
|
792
|
+
// const colorSecondaryColorStyle = getStyleFromColor(brandSecondaryColor, 'color');
|
|
861
793
|
|
|
862
|
-
var borderPrimaryColorStyle = utils.getStyleFromColor(brandPrimaryColor, 'borderColor');
|
|
863
|
-
var colorSecondaryColorStyle = utils.getStyleFromColor(brandSecondaryColor, 'color');
|
|
864
|
-
var backgroundColorStyle = utils.getStyleFromColor(brandBackgroundColor, 'backgroundColor');
|
|
865
794
|
|
|
866
|
-
var
|
|
867
|
-
_ref8$url = _ref8.url,
|
|
868
|
-
brandLogoUrl = _ref8$url === void 0 ? null : _ref8$url;
|
|
795
|
+
var backgroundColorStyle = utils.getStyleFromColor(brandBackgroundColor, 'backgroundColor'); // const { url: brandLogoUrl = null } = brandLogo || {};
|
|
869
796
|
|
|
870
797
|
var brandImageStyle = brandImageUrl !== null ? {
|
|
871
798
|
backgroundImage: "url(".concat(brandImageUrl, ")")
|
|
872
|
-
} : null;
|
|
873
|
-
var titleStyle = brandTextStyle !== null ? utils.getStyleFromText(brandTextStyle) : null;
|
|
874
|
-
|
|
875
|
-
var _useState = React.useState(false),
|
|
876
|
-
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
877
|
-
scrolledBottom = _useState2[0],
|
|
878
|
-
setScrolledBottom = _useState2[1];
|
|
879
|
-
|
|
880
|
-
var dragBind = react.useDrag(function (_ref9) {
|
|
881
|
-
var _ref9$direction = _slicedToArray__default["default"](_ref9.direction, 2),
|
|
882
|
-
dy = _ref9$direction[1],
|
|
883
|
-
last = _ref9.last,
|
|
884
|
-
tap = _ref9.tap;
|
|
799
|
+
} : null; // @todo could probably use some work to avoid the visual jump from 3 screens to all of them
|
|
885
800
|
|
|
886
|
-
if (!tap && last && scrolledBottom && dy < 0 && onClose !== null) {
|
|
887
|
-
onClose();
|
|
888
|
-
}
|
|
889
|
-
}, {
|
|
890
|
-
filterTaps: true,
|
|
891
|
-
eventOptions: {
|
|
892
|
-
capture: true
|
|
893
|
-
}
|
|
894
|
-
});
|
|
895
|
-
var onScrolledBottom = React.useCallback(function () {
|
|
896
|
-
setScrolledBottom(true);
|
|
897
|
-
}, [setScrolledBottom]);
|
|
898
|
-
var onScrolledNotBottom = React.useCallback(function () {
|
|
899
|
-
setScrolledBottom(false);
|
|
900
|
-
}, [setScrolledBottom]);
|
|
901
801
|
var finalItems = React.useMemo(function () {
|
|
902
|
-
return !focusable ? items.
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
802
|
+
return !focusable ? items.map(function (s, i) {
|
|
803
|
+
return i > 3 ? {
|
|
804
|
+
screenId: s.screenId
|
|
805
|
+
} : s;
|
|
806
|
+
}) : items;
|
|
807
|
+
}, [items, focusable]); // @todo bookmarks
|
|
808
|
+
// const bookmarks = finalItems.reduce((acc, it) => {
|
|
809
|
+
// const { screen = null } = it || {};
|
|
810
|
+
// const { bookmark = null } = screen || {};
|
|
811
|
+
// return bookmark !== null ? [...acc, bookmark] : acc; // merge with array or return original array
|
|
812
|
+
// }, []);
|
|
813
|
+
|
|
814
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
815
|
+
className: classNames__default["default"]([styles$9.container, _defineProperty__default["default"]({}, className, className !== null)]),
|
|
906
816
|
style: _objectSpread__default["default"](_objectSpread__default["default"](_objectSpread__default["default"]({}, backgroundColorStyle), brandImageStyle), {}, {
|
|
907
817
|
width: menuWidth
|
|
908
818
|
}),
|
|
909
819
|
"aria-hidden": focusable ? null : 'true'
|
|
910
|
-
},
|
|
911
|
-
className: styles$
|
|
912
|
-
}, brandLogoUrl !== null ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
913
|
-
className: styles$7.organisation,
|
|
914
|
-
style: {
|
|
915
|
-
backgroundImage: "url(".concat(brandLogoUrl, ")")
|
|
916
|
-
}
|
|
917
|
-
}) : null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
918
|
-
className: styles$7.title,
|
|
919
|
-
style: titleStyle
|
|
920
|
-
}, title), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
921
|
-
className: styles$7.buttons,
|
|
922
|
-
style: colorSecondaryColorStyle
|
|
923
|
-
}, fullscreenEnabled ? /*#__PURE__*/React__default["default"].createElement(components.Button, {
|
|
924
|
-
className: styles$7.button,
|
|
925
|
-
onClick: toggleFullscreen,
|
|
926
|
-
title: intl.formatMessage({
|
|
927
|
-
id: "AuxqcG",
|
|
928
|
-
defaultMessage: [{
|
|
929
|
-
"type": 0,
|
|
930
|
-
"value": "Fullscreen"
|
|
931
|
-
}]
|
|
932
|
-
}),
|
|
933
|
-
"aria-label": intl.formatMessage({
|
|
934
|
-
id: "AuxqcG",
|
|
935
|
-
defaultMessage: [{
|
|
936
|
-
"type": 0,
|
|
937
|
-
"value": "Fullscreen"
|
|
938
|
-
}]
|
|
939
|
-
}),
|
|
940
|
-
focusable: focusable
|
|
941
|
-
}, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
|
|
942
|
-
className: styles$7.icon,
|
|
943
|
-
icon: fullscreenActive ? faCompress.faCompress : faExpand.faExpand
|
|
944
|
-
})) : null, /*#__PURE__*/React__default["default"].createElement(components.Button, {
|
|
945
|
-
className: styles$7.button,
|
|
946
|
-
onClick: onClose,
|
|
947
|
-
title: intl.formatMessage({
|
|
948
|
-
id: "dj/p/q",
|
|
949
|
-
defaultMessage: [{
|
|
950
|
-
"type": 0,
|
|
951
|
-
"value": "Close"
|
|
952
|
-
}]
|
|
953
|
-
}),
|
|
954
|
-
"aria-label": intl.formatMessage({
|
|
955
|
-
id: "dj/p/q",
|
|
956
|
-
defaultMessage: [{
|
|
957
|
-
"type": 0,
|
|
958
|
-
"value": "Close"
|
|
959
|
-
}]
|
|
960
|
-
}),
|
|
961
|
-
focusable: focusable
|
|
962
|
-
}, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
|
|
963
|
-
className: styles$7.icon,
|
|
964
|
-
icon: faTimes.faTimes
|
|
965
|
-
})))), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
966
|
-
className: styles$7.content,
|
|
820
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
821
|
+
className: styles$9.content,
|
|
967
822
|
ref: containerRef
|
|
968
823
|
}, /*#__PURE__*/React__default["default"].createElement(Scroll__default["default"], {
|
|
969
|
-
className: styles$
|
|
970
|
-
onScrolledBottom: onScrolledBottom,
|
|
971
|
-
onScrolledNotBottom: onScrolledNotBottom
|
|
824
|
+
className: styles$9.scroll
|
|
972
825
|
}, /*#__PURE__*/React__default["default"].createElement("nav", {
|
|
973
|
-
className: styles$
|
|
826
|
+
className: styles$9.nav
|
|
974
827
|
}, /*#__PURE__*/React__default["default"].createElement("ul", {
|
|
975
|
-
className: styles$
|
|
828
|
+
className: styles$9.items
|
|
976
829
|
}, finalItems.map(function (item, index) {
|
|
977
|
-
var
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
var screenAriaLabel = "".concat(intl.formatMessage({
|
|
984
|
-
id: "LkVfwW",
|
|
985
|
-
defaultMessage: [{
|
|
986
|
-
"type": 0,
|
|
987
|
-
"value": "Screen "
|
|
988
|
-
}, {
|
|
989
|
-
"type": 1,
|
|
990
|
-
"value": "index"
|
|
991
|
-
}]
|
|
992
|
-
}, {
|
|
993
|
-
index: index + 1
|
|
994
|
-
})).concat(current ? " ".concat(intl.formatMessage({
|
|
995
|
-
id: "vmrJ8U",
|
|
996
|
-
defaultMessage: [{
|
|
997
|
-
"type": 0,
|
|
998
|
-
"value": "(current screen)"
|
|
999
|
-
}]
|
|
1000
|
-
})) : '');
|
|
830
|
+
var _ref7 = item || {},
|
|
831
|
+
screenId = _ref7.screenId;
|
|
832
|
+
|
|
833
|
+
var itemStyles = {
|
|
834
|
+
width: "".concat(100 / thumbsPerLine, "%")
|
|
835
|
+
};
|
|
1001
836
|
return /*#__PURE__*/React__default["default"].createElement("li", {
|
|
1002
|
-
className: classNames__default["default"]([styles$7.item, _defineProperty__default["default"]({}, styles$7.active, current)]),
|
|
1003
837
|
key: "item-".concat(screenId),
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
className: styles$7.subScreenBadge
|
|
1014
|
-
}, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
1015
|
-
className: styles$7.subScreenCount
|
|
1016
|
-
}, count), /*#__PURE__*/React__default["default"].createElement(StackIcon, {
|
|
1017
|
-
className: styles$7.subScreenIcon
|
|
1018
|
-
})) : null, screenWidth > 0 && screenHeight > 0 ? /*#__PURE__*/React__default["default"].createElement(components.ScreenPreview, {
|
|
1019
|
-
screenWidth: screenWidth,
|
|
1020
|
-
screenHeight: screenHeight,
|
|
1021
|
-
width: thumbWidth,
|
|
1022
|
-
screen: screen,
|
|
1023
|
-
focusable: focusable,
|
|
1024
|
-
active: focusable,
|
|
1025
|
-
withSize: true
|
|
1026
|
-
}) : null, current ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1027
|
-
className: styles$7.activeScreenBorder,
|
|
1028
|
-
style: borderPrimaryColorStyle
|
|
1029
|
-
}) : null)), /*#__PURE__*/React__default["default"].createElement("button", {
|
|
1030
|
-
type: "button",
|
|
1031
|
-
className: styles$7.screenButton,
|
|
1032
|
-
onClick: function onClick() {
|
|
1033
|
-
if (onClickItem !== null) {
|
|
1034
|
-
onClickItem(item);
|
|
1035
|
-
}
|
|
1036
|
-
},
|
|
1037
|
-
"aria-label": screenAriaLabel,
|
|
1038
|
-
onKeyUp: function onKeyUp(e) {
|
|
1039
|
-
if (e.key === 'Enter' && onClickItem !== null) {
|
|
1040
|
-
onClickItem(item);
|
|
1041
|
-
}
|
|
1042
|
-
},
|
|
1043
|
-
tabIndex: focusable ? '0' : '-1'
|
|
838
|
+
className: styles$9.item,
|
|
839
|
+
style: itemStyles
|
|
840
|
+
}, item === null ? 'loading' : /*#__PURE__*/React__default["default"].createElement(ViewerMenuScreen, {
|
|
841
|
+
className: styles$9.screenPreview,
|
|
842
|
+
item: item,
|
|
843
|
+
index: index,
|
|
844
|
+
screenSize: screenSize,
|
|
845
|
+
onClick: onClickScreen,
|
|
846
|
+
focusable: focusable
|
|
1044
847
|
}));
|
|
1045
848
|
}))))));
|
|
1046
849
|
};
|
|
1047
850
|
|
|
1048
|
-
ViewerMenuPreview.propTypes = propTypes$
|
|
1049
|
-
ViewerMenuPreview.defaultProps = defaultProps$
|
|
851
|
+
ViewerMenuPreview.propTypes = propTypes$d;
|
|
852
|
+
ViewerMenuPreview.defaultProps = defaultProps$d;
|
|
1050
853
|
|
|
1051
|
-
var styles$
|
|
854
|
+
var styles$8 = {"container":"micromag-viewer-partials-micromag-preview-container","cover":"micromag-viewer-partials-micromag-preview-cover","info":"micromag-viewer-partials-micromag-preview-info","url":"micromag-viewer-partials-micromag-preview-url","title":"micromag-viewer-partials-micromag-preview-title"};
|
|
855
|
+
|
|
856
|
+
var propTypes$c = {
|
|
857
|
+
screen: core.PropTypes.item,
|
|
858
|
+
title: PropTypes__default["default"].string,
|
|
859
|
+
url: PropTypes__default["default"].string,
|
|
860
|
+
description: PropTypes__default["default"].string,
|
|
861
|
+
className: PropTypes__default["default"].string
|
|
862
|
+
};
|
|
863
|
+
var defaultProps$c = {
|
|
864
|
+
screen: null,
|
|
865
|
+
title: null,
|
|
866
|
+
url: null,
|
|
867
|
+
description: null,
|
|
868
|
+
className: null
|
|
869
|
+
};
|
|
870
|
+
|
|
871
|
+
var MicromagPreview = function MicromagPreview(_ref) {
|
|
872
|
+
var screen = _ref.screen,
|
|
873
|
+
title = _ref.title,
|
|
874
|
+
url = _ref.url,
|
|
875
|
+
description = _ref.description,
|
|
876
|
+
className = _ref.className;
|
|
877
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
878
|
+
className: classNames__default["default"]([styles$8.container, _defineProperty__default["default"]({}, className, className)])
|
|
879
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
880
|
+
className: styles$8.cover
|
|
881
|
+
}, /*#__PURE__*/React__default["default"].createElement(components.ScreenPreview, {
|
|
882
|
+
screen: screen,
|
|
883
|
+
width: 100,
|
|
884
|
+
height: 150,
|
|
885
|
+
withSize: true
|
|
886
|
+
})), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
887
|
+
className: styles$8.info
|
|
888
|
+
}, /*#__PURE__*/React__default["default"].createElement("h3", {
|
|
889
|
+
className: styles$8.title
|
|
890
|
+
}, title), url ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
891
|
+
className: styles$8.url
|
|
892
|
+
}, url) : null, /*#__PURE__*/React__default["default"].createElement("p", null, description)));
|
|
893
|
+
};
|
|
894
|
+
|
|
895
|
+
MicromagPreview.propTypes = propTypes$c;
|
|
896
|
+
MicromagPreview.defaultProps = defaultProps$c;
|
|
897
|
+
|
|
898
|
+
var styles$7 = {"scroll":"micromag-viewer-menus-menu-share-scroll","container":"micromag-viewer-menus-menu-share-container","disabled":"micromag-viewer-menus-menu-share-disabled","screenButton":"micromag-viewer-menus-menu-share-screenButton","organisation":"micromag-viewer-menus-menu-share-organisation","icon":"micromag-viewer-menus-menu-share-icon","header":"micromag-viewer-menus-menu-share-header","mode":"micromag-viewer-menus-menu-share-mode","bump":"micromag-viewer-menus-menu-share-bump","options":"micromag-viewer-menus-menu-share-options","optionButton":"micromag-viewer-menus-menu-share-optionButton","content":"micromag-viewer-menus-menu-share-content"};
|
|
899
|
+
|
|
900
|
+
var propTypes$b = {
|
|
901
|
+
viewerTheme: core.PropTypes.viewerTheme,
|
|
902
|
+
menuWidth: PropTypes__default["default"].number,
|
|
903
|
+
title: PropTypes__default["default"].string,
|
|
904
|
+
description: PropTypes__default["default"].string,
|
|
905
|
+
items: core.PropTypes.menuItems,
|
|
906
|
+
focusable: PropTypes__default["default"].bool,
|
|
907
|
+
// shouldLoad: PropTypes.bool, // @todo still needed? to re-implement?
|
|
908
|
+
currentScreenIndex: PropTypes__default["default"].number,
|
|
909
|
+
shareUrl: PropTypes__default["default"].string,
|
|
910
|
+
onShare: PropTypes__default["default"].func,
|
|
911
|
+
className: PropTypes__default["default"].string
|
|
912
|
+
};
|
|
913
|
+
var defaultProps$b = {
|
|
914
|
+
viewerTheme: null,
|
|
915
|
+
menuWidth: null,
|
|
916
|
+
title: null,
|
|
917
|
+
description: null,
|
|
918
|
+
items: [],
|
|
919
|
+
focusable: true,
|
|
920
|
+
currentScreenIndex: 0,
|
|
921
|
+
shareUrl: null,
|
|
922
|
+
onShare: null,
|
|
923
|
+
className: null
|
|
924
|
+
};
|
|
925
|
+
|
|
926
|
+
var ViewerMenuShare = function ViewerMenuShare(_ref) {
|
|
927
|
+
var viewerTheme = _ref.viewerTheme,
|
|
928
|
+
menuWidth = _ref.menuWidth,
|
|
929
|
+
title = _ref.title,
|
|
930
|
+
description = _ref.description,
|
|
931
|
+
items = _ref.items,
|
|
932
|
+
focusable = _ref.focusable,
|
|
933
|
+
currentScreenIndex = _ref.currentScreenIndex,
|
|
934
|
+
shareUrl = _ref.shareUrl,
|
|
935
|
+
onShare = _ref.onShare,
|
|
936
|
+
className = _ref.className;
|
|
937
|
+
|
|
938
|
+
// Viewer theme
|
|
939
|
+
// @todo room for improvement here probably
|
|
940
|
+
var _ref2 = viewerTheme || {},
|
|
941
|
+
_ref2$colors = _ref2.colors,
|
|
942
|
+
colors = _ref2$colors === void 0 ? null : _ref2$colors,
|
|
943
|
+
_ref2$background = _ref2.background,
|
|
944
|
+
background = _ref2$background === void 0 ? null : _ref2$background;
|
|
945
|
+
_ref2.logo;
|
|
946
|
+
// @todo could get from theme provider? need to re-implement
|
|
947
|
+
|
|
948
|
+
|
|
949
|
+
var _ref3 = colors || {};
|
|
950
|
+
_ref3.primary;
|
|
951
|
+
_ref3.secondary;
|
|
952
|
+
|
|
953
|
+
var _ref4 = background || {},
|
|
954
|
+
_ref4$color = _ref4.color,
|
|
955
|
+
brandBackgroundColor = _ref4$color === void 0 ? null : _ref4$color,
|
|
956
|
+
_ref4$image = _ref4.image,
|
|
957
|
+
image = _ref4$image === void 0 ? null : _ref4$image;
|
|
958
|
+
|
|
959
|
+
var _ref5 = image || {},
|
|
960
|
+
_ref5$url = _ref5.url,
|
|
961
|
+
brandImageUrl = _ref5$url === void 0 ? null : _ref5$url; // const borderPrimaryColorStyle = getStyleFromColor(brandPrimaryColor, 'borderColor');
|
|
962
|
+
// const colorSecondaryColorStyle = getStyleFromColor(brandSecondaryColor, 'color');
|
|
963
|
+
|
|
964
|
+
|
|
965
|
+
var backgroundColorStyle = utils.getStyleFromColor(brandBackgroundColor, 'backgroundColor'); // const { url: brandLogoUrl = null } = brandLogo || {};
|
|
966
|
+
|
|
967
|
+
var brandImageStyle = brandImageUrl !== null ? {
|
|
968
|
+
backgroundImage: "url(".concat(brandImageUrl, ")")
|
|
969
|
+
} : null;
|
|
970
|
+
var coverScreen = React.useMemo(function () {
|
|
971
|
+
var _ref6 = items[0] || {},
|
|
972
|
+
_ref6$screen = _ref6.screen,
|
|
973
|
+
screen = _ref6$screen === void 0 ? null : _ref6$screen;
|
|
974
|
+
|
|
975
|
+
return screen;
|
|
976
|
+
}, [items]);
|
|
977
|
+
var currentScreen = React.useMemo(function () {
|
|
978
|
+
var found = items.find(function (item) {
|
|
979
|
+
var _ref7 = item || {},
|
|
980
|
+
_ref7$current = _ref7.current,
|
|
981
|
+
current = _ref7$current === void 0 ? false : _ref7$current;
|
|
982
|
+
|
|
983
|
+
return current;
|
|
984
|
+
});
|
|
985
|
+
|
|
986
|
+
var _ref8 = found || {},
|
|
987
|
+
_ref8$screen = _ref8.screen,
|
|
988
|
+
screen = _ref8$screen === void 0 ? null : _ref8$screen;
|
|
989
|
+
|
|
990
|
+
return screen;
|
|
991
|
+
}, [items, currentScreenIndex, focusable]);
|
|
992
|
+
|
|
993
|
+
var _useState = React.useState(false),
|
|
994
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
995
|
+
shareCurrentScreen = _useState2[0],
|
|
996
|
+
setShareCurrentScreen = _useState2[1];
|
|
997
|
+
|
|
998
|
+
var onShareModeChange = React.useCallback(function () {
|
|
999
|
+
setShareCurrentScreen(function (value) {
|
|
1000
|
+
return !value;
|
|
1001
|
+
});
|
|
1002
|
+
}, [setShareCurrentScreen]);
|
|
1003
|
+
|
|
1004
|
+
var _useState3 = React.useState(shareUrl),
|
|
1005
|
+
_useState4 = _slicedToArray__default["default"](_useState3, 2),
|
|
1006
|
+
finalShareUrl = _useState4[0],
|
|
1007
|
+
setFinalShareUrl = _useState4[1];
|
|
1008
|
+
|
|
1009
|
+
React.useEffect(function () {
|
|
1010
|
+
setFinalShareUrl(shareCurrentScreen && currentScreenIndex !== 0 ? "".concat(shareUrl, "/").concat(currentScreenIndex) : shareUrl);
|
|
1011
|
+
}, [shareCurrentScreen, currentScreenIndex, setFinalShareUrl]);
|
|
1012
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1013
|
+
className: classNames__default["default"]([styles$7.container, _defineProperty__default["default"]({}, className, className !== null)]),
|
|
1014
|
+
style: _objectSpread__default["default"](_objectSpread__default["default"](_objectSpread__default["default"]({}, backgroundColorStyle), brandImageStyle), {}, {
|
|
1015
|
+
width: menuWidth
|
|
1016
|
+
}),
|
|
1017
|
+
"aria-hidden": focusable ? null : 'true'
|
|
1018
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1019
|
+
className: styles$7.content
|
|
1020
|
+
}, /*#__PURE__*/React__default["default"].createElement(Scroll__default["default"], {
|
|
1021
|
+
className: styles$7.scroll
|
|
1022
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1023
|
+
className: styles$7.header
|
|
1024
|
+
}, /*#__PURE__*/React__default["default"].createElement(MicromagPreview, {
|
|
1025
|
+
className: styles$7.preview,
|
|
1026
|
+
screen: shareCurrentScreen ? currentScreen : coverScreen,
|
|
1027
|
+
title: title,
|
|
1028
|
+
url: finalShareUrl,
|
|
1029
|
+
description: description
|
|
1030
|
+
}), currentScreenIndex !== 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1031
|
+
className: styles$7.mode
|
|
1032
|
+
}, /*#__PURE__*/React__default["default"].createElement("label", null, /*#__PURE__*/React__default["default"].createElement("input", {
|
|
1033
|
+
type: "checkbox",
|
|
1034
|
+
name: "currentScreen",
|
|
1035
|
+
value: "currentScreen",
|
|
1036
|
+
onChange: onShareModeChange,
|
|
1037
|
+
checked: shareCurrentScreen
|
|
1038
|
+
}), /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
|
1039
|
+
id: "xuPbeq",
|
|
1040
|
+
defaultMessage: [{
|
|
1041
|
+
"type": 0,
|
|
1042
|
+
"value": "Start from the current screen"
|
|
1043
|
+
}]
|
|
1044
|
+
}))) : null), /*#__PURE__*/React__default["default"].createElement(ShareOptions__default["default"], {
|
|
1045
|
+
className: styles$7.options,
|
|
1046
|
+
itemClassName: styles$7.optionItem,
|
|
1047
|
+
buttonClassName: styles$7.optionButton,
|
|
1048
|
+
title: title,
|
|
1049
|
+
url: finalShareUrl,
|
|
1050
|
+
focusable: focusable,
|
|
1051
|
+
onShare: onShare,
|
|
1052
|
+
shareCurrentScreen: shareCurrentScreen
|
|
1053
|
+
}))));
|
|
1054
|
+
};
|
|
1055
|
+
|
|
1056
|
+
ViewerMenuShare.propTypes = propTypes$b;
|
|
1057
|
+
ViewerMenuShare.defaultProps = defaultProps$b;
|
|
1058
|
+
|
|
1059
|
+
var styles$6 = {"container":"micromag-viewer-container","screenContainer":"micromag-viewer-screenContainer","screensFrame":"micromag-viewer-screensFrame","landscape":"micromag-viewer-landscape","hideMenu":"micromag-viewer-hideMenu","menuNavContainer":"micromag-viewer-menuNavContainer","dots":"micromag-viewer-dots","menuTopContainer":"micromag-viewer-menuTopContainer","content":"micromag-viewer-content","fadeMenu":"micromag-viewer-fadeMenu","withShadow":"micromag-viewer-withShadow","isOpened":"micromag-viewer-isOpened","menuItem":"micromag-viewer-menuItem","menuScreens":"micromag-viewer-menuScreens","slidingButton":"micromag-viewer-slidingButton","menuButton":"micromag-viewer-menuButton","isHidden":"micromag-viewer-isHidden","navButton":"micromag-viewer-navButton","previous":"micromag-viewer-previous","next":"micromag-viewer-next","isDragging":"micromag-viewer-isDragging","withoutGestures":"micromag-viewer-withoutGestures","screen":"micromag-viewer-screen","current":"micromag-viewer-current","playbackControls":"micromag-viewer-playbackControls","webView":"micromag-viewer-webView"};
|
|
1052
1060
|
|
|
1053
1061
|
var propTypes$a = {
|
|
1054
|
-
story: core
|
|
1062
|
+
story: core.PropTypes.story.isRequired,
|
|
1055
1063
|
currentScreenIndex: PropTypes__default["default"].number,
|
|
1056
|
-
opened: PropTypes__default["default"].bool,
|
|
1057
1064
|
toggleFullscreen: PropTypes__default["default"].func,
|
|
1058
1065
|
fullscreenActive: PropTypes__default["default"].bool,
|
|
1059
1066
|
fullscreenEnabled: PropTypes__default["default"].bool,
|
|
@@ -1061,15 +1068,13 @@ var propTypes$a = {
|
|
|
1061
1068
|
withShadow: PropTypes__default["default"].bool,
|
|
1062
1069
|
trackingEnabled: PropTypes__default["default"].bool,
|
|
1063
1070
|
shareBasePath: PropTypes__default["default"].string,
|
|
1064
|
-
theme: core
|
|
1065
|
-
screenSize: core
|
|
1071
|
+
theme: core.PropTypes.viewerTheme,
|
|
1072
|
+
screenSize: core.PropTypes.screenSize,
|
|
1066
1073
|
menuWidth: PropTypes__default["default"].number,
|
|
1067
1074
|
withDotItemClick: PropTypes__default["default"].bool,
|
|
1068
1075
|
withoutScreensMenu: PropTypes__default["default"].bool,
|
|
1069
1076
|
withoutShareMenu: PropTypes__default["default"].bool,
|
|
1070
|
-
|
|
1071
|
-
onRequestClose: PropTypes__default["default"].func,
|
|
1072
|
-
onClickItem: PropTypes__default["default"].func,
|
|
1077
|
+
onClickScreen: PropTypes__default["default"].func,
|
|
1073
1078
|
onClickMenu: PropTypes__default["default"].func,
|
|
1074
1079
|
onClickCloseViewer: PropTypes__default["default"].func,
|
|
1075
1080
|
refDots: PropTypes__default["default"].shape({
|
|
@@ -1079,7 +1084,6 @@ var propTypes$a = {
|
|
|
1079
1084
|
};
|
|
1080
1085
|
var defaultProps$a = {
|
|
1081
1086
|
currentScreenIndex: 0,
|
|
1082
|
-
opened: false,
|
|
1083
1087
|
toggleFullscreen: null,
|
|
1084
1088
|
fullscreenActive: false,
|
|
1085
1089
|
fullscreenEnabled: false,
|
|
@@ -1093,18 +1097,17 @@ var defaultProps$a = {
|
|
|
1093
1097
|
withDotItemClick: false,
|
|
1094
1098
|
withoutScreensMenu: false,
|
|
1095
1099
|
withoutShareMenu: false,
|
|
1096
|
-
|
|
1097
|
-
onRequestClose: null,
|
|
1098
|
-
onClickItem: null,
|
|
1100
|
+
onClickScreen: null,
|
|
1099
1101
|
onClickMenu: null,
|
|
1100
1102
|
onClickCloseViewer: null,
|
|
1101
1103
|
refDots: null
|
|
1102
1104
|
};
|
|
1103
1105
|
|
|
1104
1106
|
var ViewerMenu = function ViewerMenu(_ref) {
|
|
1107
|
+
var _ref9;
|
|
1108
|
+
|
|
1105
1109
|
var story = _ref.story,
|
|
1106
1110
|
currentScreenIndex = _ref.currentScreenIndex,
|
|
1107
|
-
opened = _ref.opened,
|
|
1108
1111
|
toggleFullscreen = _ref.toggleFullscreen,
|
|
1109
1112
|
fullscreenActive = _ref.fullscreenActive,
|
|
1110
1113
|
fullscreenEnabled = _ref.fullscreenEnabled,
|
|
@@ -1118,23 +1121,42 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1118
1121
|
withDotItemClick = _ref.withDotItemClick,
|
|
1119
1122
|
withoutScreensMenu = _ref.withoutScreensMenu,
|
|
1120
1123
|
withoutShareMenu = _ref.withoutShareMenu,
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
customOnClickMenu = _ref.onClickMenu,
|
|
1125
|
-
onClickCloseViewer = _ref.onClickCloseViewer,
|
|
1124
|
+
customOnClickScreen = _ref.onClickScreen;
|
|
1125
|
+
_ref.onClickMenu;
|
|
1126
|
+
var onClickCloseViewer = _ref.onClickCloseViewer,
|
|
1126
1127
|
refDots = _ref.refDots;
|
|
1127
1128
|
var _story$components = story.components,
|
|
1128
1129
|
screens = _story$components === void 0 ? [] : _story$components,
|
|
1129
1130
|
_story$title = story.title,
|
|
1130
|
-
title = _story$title === void 0 ? null : _story$title
|
|
1131
|
+
title = _story$title === void 0 ? null : _story$title,
|
|
1132
|
+
_story$metadata = story.metadata,
|
|
1133
|
+
metadata = _story$metadata === void 0 ? null : _story$metadata;
|
|
1134
|
+
|
|
1135
|
+
var _ref2 = metadata || {},
|
|
1136
|
+
_ref2$description = _ref2.description,
|
|
1137
|
+
description = _ref2$description === void 0 ? null : _ref2$description;
|
|
1138
|
+
|
|
1131
1139
|
var currentScreen = screens !== null ? screens[currentScreenIndex] || null : null;
|
|
1132
1140
|
|
|
1133
|
-
var
|
|
1134
|
-
|
|
1135
|
-
screenId =
|
|
1136
|
-
|
|
1137
|
-
screenType =
|
|
1141
|
+
var _ref3 = currentScreen || {},
|
|
1142
|
+
_ref3$id = _ref3.id,
|
|
1143
|
+
screenId = _ref3$id === void 0 ? null : _ref3$id,
|
|
1144
|
+
_ref3$type = _ref3.type,
|
|
1145
|
+
screenType = _ref3$type === void 0 ? null : _ref3$type;
|
|
1146
|
+
|
|
1147
|
+
var _ref4 = viewerTheme || {},
|
|
1148
|
+
_ref4$menuTheme = _ref4.menuTheme,
|
|
1149
|
+
menuTheme = _ref4$menuTheme === void 0 ? null : _ref4$menuTheme;
|
|
1150
|
+
|
|
1151
|
+
var _useState = React.useState(false),
|
|
1152
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
1153
|
+
menuOpened = _useState2[0],
|
|
1154
|
+
setMenuOpened = _useState2[1];
|
|
1155
|
+
|
|
1156
|
+
var _useState3 = React.useState(false),
|
|
1157
|
+
_useState4 = _slicedToArray__default["default"](_useState3, 2),
|
|
1158
|
+
shareOpened = _useState4[0],
|
|
1159
|
+
setShareOpened = _useState4[1];
|
|
1138
1160
|
|
|
1139
1161
|
var items = React.useMemo(function () {
|
|
1140
1162
|
return screens.map(function (it) {
|
|
@@ -1155,9 +1177,9 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1155
1177
|
count: children.length + 1 || 1,
|
|
1156
1178
|
subIndex: subIndex || 0
|
|
1157
1179
|
};
|
|
1158
|
-
}).filter(function (
|
|
1159
|
-
var
|
|
1160
|
-
visible =
|
|
1180
|
+
}).filter(function (_ref5) {
|
|
1181
|
+
var _ref5$visible = _ref5.visible,
|
|
1182
|
+
visible = _ref5$visible === void 0 ? true : _ref5$visible;
|
|
1161
1183
|
return visible;
|
|
1162
1184
|
});
|
|
1163
1185
|
}, [screens, screenId]);
|
|
@@ -1172,161 +1194,223 @@ var ViewerMenu = function ViewerMenu(_ref) {
|
|
|
1172
1194
|
}
|
|
1173
1195
|
}, [trackEvent, screenId, currentScreenIndex, screenType]);
|
|
1174
1196
|
var shareUrl = React.useMemo(function () {
|
|
1175
|
-
|
|
1176
|
-
|
|
1197
|
+
// @todo validate this
|
|
1198
|
+
// const base =
|
|
1199
|
+
// typeof window !== 'undefined' ? window.location.origin.replace(/\/+$/, '') : '';
|
|
1200
|
+
// const path = shareBasePath !== null ? `${base}${shareBasePath}` : base;
|
|
1201
|
+
var base = typeof window !== 'undefined' ? window.location.host : '';
|
|
1202
|
+
var path = shareBasePath !== null ? "".concat(base).concat(shareBasePath) : base;
|
|
1177
1203
|
return path;
|
|
1178
|
-
}, [shareBasePath]);
|
|
1179
|
-
|
|
1180
|
-
var _useSpring = core.useSpring(function () {
|
|
1181
|
-
return {
|
|
1182
|
-
y: 0,
|
|
1183
|
-
config: _objectSpread__default["default"](_objectSpread__default["default"]({}, core.config.stiff), {}, {
|
|
1184
|
-
clamp: true
|
|
1185
|
-
})
|
|
1186
|
-
};
|
|
1187
|
-
}),
|
|
1188
|
-
_useSpring2 = _slicedToArray__default["default"](_useSpring, 2),
|
|
1189
|
-
menuY = _useSpring2[0].y,
|
|
1190
|
-
setMenuSpring = _useSpring2[1];
|
|
1191
|
-
|
|
1192
|
-
var refOpened = React.useRef(opened);
|
|
1193
|
-
|
|
1194
|
-
if (refOpened.current !== opened) {
|
|
1195
|
-
refOpened.current = opened;
|
|
1196
|
-
}
|
|
1197
|
-
|
|
1198
|
-
React.useEffect(function () {
|
|
1199
|
-
setMenuSpring.start({
|
|
1200
|
-
y: opened ? 1 : 0
|
|
1201
|
-
});
|
|
1202
|
-
}, [opened]);
|
|
1204
|
+
}, [shareBasePath]); // @todo sorta not super good here
|
|
1203
1205
|
|
|
1204
|
-
var
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
var
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
};
|
|
1214
|
-
var
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1206
|
+
var onOpenMenu = React.useCallback(function () {
|
|
1207
|
+
setMenuOpened(true);
|
|
1208
|
+
setShareOpened(false);
|
|
1209
|
+
trackScreenEvent('viewer_menu', 'open_screens_menu');
|
|
1210
|
+
}, [setMenuOpened, setShareOpened, trackScreenEvent]);
|
|
1211
|
+
var onCloseMenu = React.useCallback(function () {
|
|
1212
|
+
setMenuOpened(false);
|
|
1213
|
+
setShareOpened(false);
|
|
1214
|
+
trackScreenEvent('viewer_menu', 'close_screens_menu');
|
|
1215
|
+
}, [setMenuOpened, setShareOpened, trackScreenEvent]);
|
|
1216
|
+
var onOpenShare = React.useCallback(function () {
|
|
1217
|
+
setShareOpened(true);
|
|
1218
|
+
setMenuOpened(false);
|
|
1219
|
+
trackScreenEvent('viewer_menu', 'open_share_menu');
|
|
1220
|
+
}, [setShareOpened, setMenuOpened, trackScreenEvent]);
|
|
1221
|
+
var onCloseShare = React.useCallback(function () {
|
|
1222
|
+
setShareOpened(false);
|
|
1223
|
+
setMenuOpened(false);
|
|
1224
|
+
trackScreenEvent('viewer_menu', 'close_share_menu');
|
|
1225
|
+
}, [setShareOpened, setMenuOpened, trackScreenEvent]);
|
|
1226
|
+
var onClickScreen = React.useCallback(function (screen) {
|
|
1227
|
+
setMenuOpened(false);
|
|
1228
|
+
|
|
1229
|
+
if (customOnClickScreen !== null) {
|
|
1230
|
+
customOnClickScreen(screen);
|
|
1227
1231
|
}
|
|
1228
1232
|
|
|
1229
|
-
var
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1233
|
+
var index = items.findIndex(function (_ref6) {
|
|
1234
|
+
var id = _ref6.id;
|
|
1235
|
+
return id === screenId;
|
|
1236
|
+
});
|
|
1237
|
+
trackScreenEvent('viewer_menu', 'click_screen_change', "Screen ".concat(index + 1));
|
|
1238
|
+
}, [customOnClickScreen, setMenuOpened, items, screenId, trackScreenEvent]);
|
|
1239
|
+
var onShare = React.useCallback(function (type) {
|
|
1240
|
+
// @todo display something to say thanks for sharing?
|
|
1241
|
+
trackScreenEvent('viewer_menu', 'shared_story', type);
|
|
1242
|
+
}, [trackScreenEvent]);
|
|
1243
|
+
var computeShareProgress = React.useCallback(function (_ref7) {
|
|
1244
|
+
var active = _ref7.active,
|
|
1245
|
+
_ref7$direction = _slicedToArray__default["default"](_ref7.direction, 2),
|
|
1246
|
+
dy = _ref7$direction[1],
|
|
1247
|
+
_ref7$movement = _slicedToArray__default["default"](_ref7.movement, 2),
|
|
1248
|
+
my = _ref7$movement[1],
|
|
1249
|
+
_ref7$velocity = _slicedToArray__default["default"](_ref7.velocity, 2),
|
|
1250
|
+
vy = _ref7$velocity[1];
|
|
1251
|
+
|
|
1252
|
+
var progress = Math.max(0, my) / (window.innerHeight * 0.8);
|
|
1253
|
+
var reachedThreshold = (vy > 0.3 || Math.abs(progress) > 0.3) && dy !== -1;
|
|
1254
|
+
|
|
1255
|
+
if (!active) {
|
|
1256
|
+
if (reachedThreshold) onOpenShare();
|
|
1257
|
+
return reachedThreshold ? 1 : 0;
|
|
1236
1258
|
}
|
|
1237
1259
|
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
if (last) {
|
|
1241
|
-
var menuNowOpened = dy > 0 && yProgress > 0.1;
|
|
1242
|
-
refOpened.current = menuNowOpened;
|
|
1243
|
-
setMenuSpring.start({
|
|
1244
|
-
y: menuNowOpened ? 1 : 0
|
|
1245
|
-
});
|
|
1260
|
+
return progress;
|
|
1261
|
+
}, [menuOpened, onOpenShare]);
|
|
1246
1262
|
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1263
|
+
var _useDragProgress = hooks.useDragProgress({
|
|
1264
|
+
progress: shareOpened ? 1 : 0,
|
|
1265
|
+
computeProgress: computeShareProgress,
|
|
1266
|
+
springParams: {
|
|
1267
|
+
config: {
|
|
1268
|
+
tension: 300,
|
|
1269
|
+
friction: 30
|
|
1251
1270
|
}
|
|
1252
|
-
} else {
|
|
1253
|
-
setMenuSpring.start({
|
|
1254
|
-
y: yProgress
|
|
1255
|
-
});
|
|
1256
1271
|
}
|
|
1257
|
-
},
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
var
|
|
1263
|
-
|
|
1264
|
-
|
|
1272
|
+
}),
|
|
1273
|
+
bindShareDrag = _useDragProgress.bind,
|
|
1274
|
+
isDraggingShare = _useDragProgress.dragging,
|
|
1275
|
+
shareOpenedProgress = _useDragProgress.progress;
|
|
1276
|
+
|
|
1277
|
+
var computeMenuProgress = React.useCallback(function (_ref8) {
|
|
1278
|
+
var active = _ref8.active,
|
|
1279
|
+
_ref8$direction = _slicedToArray__default["default"](_ref8.direction, 2),
|
|
1280
|
+
dy = _ref8$direction[1],
|
|
1281
|
+
_ref8$movement = _slicedToArray__default["default"](_ref8.movement, 2),
|
|
1282
|
+
my = _ref8$movement[1],
|
|
1283
|
+
_ref8$velocity = _slicedToArray__default["default"](_ref8.velocity, 2),
|
|
1284
|
+
vy = _ref8$velocity[1];
|
|
1285
|
+
|
|
1286
|
+
var progress = Math.max(0, my) / (window.innerHeight * 0.8);
|
|
1287
|
+
var reachedThreshold = (vy > 0.3 || Math.abs(progress) > 0.3) && dy !== -1;
|
|
1288
|
+
|
|
1289
|
+
if (!active) {
|
|
1290
|
+
if (reachedThreshold) onOpenMenu();
|
|
1291
|
+
return reachedThreshold ? 1 : 0;
|
|
1265
1292
|
}
|
|
1266
1293
|
|
|
1267
|
-
|
|
1268
|
-
}, [
|
|
1269
|
-
var onClickItem = React.useCallback(function (item) {
|
|
1270
|
-
if (customOnClickItem !== null) {
|
|
1271
|
-
customOnClickItem(item);
|
|
1272
|
-
}
|
|
1294
|
+
return progress;
|
|
1295
|
+
}, [menuOpened, onOpenMenu]);
|
|
1273
1296
|
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
onRequestClose();
|
|
1297
|
+
var _useDragProgress2 = hooks.useDragProgress({
|
|
1298
|
+
progress: menuOpened ? 1 : 0,
|
|
1299
|
+
computeProgress: computeMenuProgress,
|
|
1300
|
+
springParams: {
|
|
1301
|
+
config: {
|
|
1302
|
+
tension: 300,
|
|
1303
|
+
friction: 30
|
|
1304
|
+
}
|
|
1283
1305
|
}
|
|
1306
|
+
}),
|
|
1307
|
+
bindMenuDrag = _useDragProgress2.bind,
|
|
1308
|
+
isDraggingMenu = _useDragProgress2.dragging,
|
|
1309
|
+
menuOpenedProgress = _useDragProgress2.progress;
|
|
1284
1310
|
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1311
|
+
var keyboardShortcuts = React.useMemo(function () {
|
|
1312
|
+
return {
|
|
1313
|
+
m: function m() {
|
|
1314
|
+
return !menuOpened ? onOpenMenu() : onCloseMenu();
|
|
1315
|
+
},
|
|
1316
|
+
escape: function escape() {
|
|
1317
|
+
return onCloseMenu();
|
|
1318
|
+
}
|
|
1319
|
+
};
|
|
1320
|
+
}, [menuOpened, onOpenMenu, onCloseMenu]);
|
|
1321
|
+
useKeyboardShortcuts(keyboardShortcuts); // should be zero if either screens menu or share menu is opened
|
|
1295
1322
|
|
|
1296
|
-
|
|
1297
|
-
|
|
1323
|
+
var dotsOpacity = Math.min(1, Math.max(0, 1 - (menuOpenedProgress + shareOpenedProgress)));
|
|
1324
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1325
|
+
className: classNames__default["default"]([styles$6.menuNavContainer, (_ref9 = {}, _defineProperty__default["default"](_ref9, styles$6.withShadow, withShadow), _defineProperty__default["default"](_ref9, styles$6.isOpened, menuOpened || shareOpened), _ref9)]),
|
|
1298
1326
|
ref: refDots,
|
|
1299
1327
|
style: {
|
|
1300
1328
|
width: menuWidth
|
|
1301
1329
|
}
|
|
1302
|
-
},
|
|
1330
|
+
}, /*#__PURE__*/React__default["default"].createElement("nav", {
|
|
1331
|
+
className: styles$6.menuTopContainer
|
|
1332
|
+
}, !withoutShareMenu ? /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
|
1333
|
+
className: classNames__default["default"]([styles$6.menuItem, styles$6.menuShare])
|
|
1334
|
+
}, bindShareDrag()), /*#__PURE__*/React__default["default"].createElement(components.SlidingButtons, {
|
|
1335
|
+
className: styles$6.slidingButton,
|
|
1336
|
+
current: shareOpenedProgress,
|
|
1337
|
+
immediate: isDraggingShare,
|
|
1338
|
+
buttons: [ShareButton, components.CloseButton],
|
|
1339
|
+
buttonsProps: [{
|
|
1340
|
+
key: 'share',
|
|
1341
|
+
className: styles$6.menuButton,
|
|
1342
|
+
onClick: onOpenShare,
|
|
1343
|
+
theme: menuTheme
|
|
1344
|
+
}, {
|
|
1345
|
+
key: 'close-share',
|
|
1346
|
+
className: styles$6.menuButton,
|
|
1347
|
+
onClick: onCloseShare,
|
|
1348
|
+
theme: menuTheme,
|
|
1349
|
+
iconPosition: 'left'
|
|
1350
|
+
}]
|
|
1351
|
+
})) : null, !withoutScreensMenu ? /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
|
1352
|
+
className: classNames__default["default"]([styles$6.menuItem, styles$6.menuScreens])
|
|
1353
|
+
}, bindMenuDrag()), /*#__PURE__*/React__default["default"].createElement(components.SlidingButtons, {
|
|
1354
|
+
className: styles$6.slidingButton,
|
|
1355
|
+
current: menuOpenedProgress,
|
|
1356
|
+
immediate: isDraggingMenu,
|
|
1357
|
+
buttons: [MenuButton, components.CloseButton],
|
|
1358
|
+
buttonsProps: [{
|
|
1359
|
+
key: 'menu',
|
|
1360
|
+
className: styles$6.menuButton,
|
|
1361
|
+
onClick: onOpenMenu,
|
|
1362
|
+
theme: menuTheme
|
|
1363
|
+
}, {
|
|
1364
|
+
key: 'close-menu',
|
|
1365
|
+
className: styles$6.menuButton,
|
|
1366
|
+
onClick: onCloseMenu,
|
|
1367
|
+
theme: menuTheme,
|
|
1368
|
+
iconPosition: 'right'
|
|
1369
|
+
}]
|
|
1370
|
+
})) : null), /*#__PURE__*/React__default["default"].createElement(ViewerMenuDots, Object.assign({}, menuTheme, {
|
|
1303
1371
|
direction: "horizontal",
|
|
1304
|
-
withShadow: withShadow,
|
|
1305
1372
|
items: items,
|
|
1306
|
-
|
|
1373
|
+
onClickDot: onClickScreen,
|
|
1374
|
+
onClickMenu: onOpenMenu,
|
|
1375
|
+
closeable: closeable,
|
|
1376
|
+
withItemClick: withDotItemClick,
|
|
1377
|
+
withoutScreensMenu: withoutScreensMenu,
|
|
1378
|
+
withoutShareMenu: withoutShareMenu,
|
|
1379
|
+
onClose: onClickCloseViewer,
|
|
1380
|
+
className: styles$6.dots,
|
|
1381
|
+
style: {
|
|
1382
|
+
opacity: dotsOpacity
|
|
1383
|
+
}
|
|
1384
|
+
}))), /*#__PURE__*/React__default["default"].createElement(ViewerMenuContainer, {
|
|
1385
|
+
className: styles$6.menuContainerShare,
|
|
1386
|
+
transitionProgress: shareOpenedProgress
|
|
1387
|
+
}, /*#__PURE__*/React__default["default"].createElement(ViewerMenuShare, {
|
|
1388
|
+
viewerTheme: viewerTheme,
|
|
1389
|
+
className: styles$6.menuShare,
|
|
1390
|
+
title: title,
|
|
1391
|
+
description: description,
|
|
1392
|
+
menuWidth: menuWidth,
|
|
1393
|
+
focusable: shareOpened,
|
|
1394
|
+
items: items,
|
|
1395
|
+
currentScreenIndex: currentScreenIndex,
|
|
1307
1396
|
shareUrl: shareUrl,
|
|
1308
|
-
onShare:
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
withoutScreensMenu: withoutScreensMenu,
|
|
1314
|
-
withoutShareMenu: withoutShareMenu,
|
|
1315
|
-
onClose: onClickCloseViewer,
|
|
1316
|
-
className: styles$6.menuDots
|
|
1317
|
-
}))), /*#__PURE__*/React__default["default"].createElement(web.animated.div, {
|
|
1318
|
-
className: styles$6.menuPreviewContainer,
|
|
1319
|
-
style: menuPreviewStyle,
|
|
1320
|
-
ref: menuPreviewContainerRef
|
|
1397
|
+
onShare: onShare,
|
|
1398
|
+
onClose: onCloseShare
|
|
1399
|
+
})), /*#__PURE__*/React__default["default"].createElement(ViewerMenuContainer, {
|
|
1400
|
+
className: styles$6.menuContainerScreens,
|
|
1401
|
+
transitionProgress: menuOpenedProgress
|
|
1321
1402
|
}, /*#__PURE__*/React__default["default"].createElement(ViewerMenuPreview, {
|
|
1322
1403
|
viewerTheme: viewerTheme,
|
|
1323
1404
|
className: styles$6.menuPreview,
|
|
1324
1405
|
screenSize: screenSize,
|
|
1325
1406
|
menuWidth: menuWidth,
|
|
1326
|
-
focusable:
|
|
1407
|
+
focusable: menuOpened,
|
|
1327
1408
|
items: items,
|
|
1328
|
-
|
|
1329
|
-
|
|
1409
|
+
currentScreenIndex: currentScreenIndex,
|
|
1410
|
+
shareUrl: shareUrl,
|
|
1411
|
+
onShare: onShare,
|
|
1412
|
+
onClickScreen: onClickScreen,
|
|
1413
|
+
onClose: onCloseMenu,
|
|
1330
1414
|
toggleFullscreen: toggleFullscreen,
|
|
1331
1415
|
fullscreenActive: fullscreenActive,
|
|
1332
1416
|
fullscreenEnabled: fullscreenEnabled
|
|
@@ -1391,8 +1475,8 @@ HandTap.defaultProps = defaultProps$8;
|
|
|
1391
1475
|
var styles$4 = {"container":"micromag-viewer-screen-container","handTap":"micromag-viewer-screen-handTap"};
|
|
1392
1476
|
|
|
1393
1477
|
var propTypes$7 = {
|
|
1394
|
-
screen: core
|
|
1395
|
-
renderContext: core
|
|
1478
|
+
screen: core.PropTypes.screenComponent,
|
|
1479
|
+
renderContext: core.PropTypes.renderContext,
|
|
1396
1480
|
screenState: PropTypes__default["default"].string,
|
|
1397
1481
|
current: PropTypes__default["default"].bool,
|
|
1398
1482
|
active: PropTypes__default["default"].bool,
|
|
@@ -1400,7 +1484,7 @@ var propTypes$7 = {
|
|
|
1400
1484
|
width: PropTypes__default["default"].number,
|
|
1401
1485
|
height: PropTypes__default["default"].number,
|
|
1402
1486
|
scale: PropTypes__default["default"].number,
|
|
1403
|
-
withNavigationHint: PropTypes__default["default"].
|
|
1487
|
+
withNavigationHint: PropTypes__default["default"].bool,
|
|
1404
1488
|
className: PropTypes__default["default"].string
|
|
1405
1489
|
};
|
|
1406
1490
|
var defaultProps$7 = {
|
|
@@ -1453,11 +1537,11 @@ function ViewerScreen(_ref) {
|
|
|
1453
1537
|
ViewerScreen.propTypes = propTypes$7;
|
|
1454
1538
|
ViewerScreen.defaultProps = defaultProps$7;
|
|
1455
1539
|
|
|
1456
|
-
var styles$3 = {"
|
|
1540
|
+
var styles$3 = {"arrow":"micromag-viewer-buttons-navigation-button-arrow","next":"micromag-viewer-buttons-navigation-button-next","previous":"micromag-viewer-buttons-navigation-button-previous"};
|
|
1457
1541
|
|
|
1458
1542
|
var propTypes$6 = {
|
|
1459
1543
|
direction: PropTypes__default["default"].oneOf(['previous', 'next']),
|
|
1460
|
-
onClick:
|
|
1544
|
+
onClick: PropTypes__default["default"].func,
|
|
1461
1545
|
className: PropTypes__default["default"].string
|
|
1462
1546
|
};
|
|
1463
1547
|
var defaultProps$6 = {
|
|
@@ -1470,37 +1554,57 @@ var NavigationButton = function NavigationButton(_ref) {
|
|
|
1470
1554
|
var direction = _ref.direction,
|
|
1471
1555
|
onClick = _ref.onClick,
|
|
1472
1556
|
className = _ref.className;
|
|
1473
|
-
return /*#__PURE__*/React__default["default"].createElement(
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1557
|
+
return /*#__PURE__*/React__default["default"].createElement(components.Button, {
|
|
1558
|
+
className: classNames__default["default"]([styles$3.container, styles$3[direction], _defineProperty__default["default"]({}, className, className !== null)]),
|
|
1559
|
+
onClick: onClick,
|
|
1560
|
+
iconPosition: direction === 'next' ? 'right' : 'left',
|
|
1561
|
+
icon: /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
1562
|
+
className: styles$3.arrow,
|
|
1563
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1564
|
+
width: "10",
|
|
1565
|
+
height: "16",
|
|
1566
|
+
viewBox: "0 0 10 16",
|
|
1567
|
+
fill: "currentColor"
|
|
1568
|
+
}, /*#__PURE__*/React__default["default"].createElement("polygon", {
|
|
1569
|
+
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"
|
|
1570
|
+
})),
|
|
1571
|
+
label: /*#__PURE__*/React__default["default"].createElement("span", {
|
|
1572
|
+
className: "sr-only"
|
|
1573
|
+
}, direction === 'previous' ? /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
|
1574
|
+
id: "zYH/31",
|
|
1575
|
+
defaultMessage: [{
|
|
1576
|
+
"type": 0,
|
|
1577
|
+
"value": "Go to previous screen"
|
|
1578
|
+
}]
|
|
1579
|
+
}) : /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
|
1580
|
+
id: "v9bqYj",
|
|
1581
|
+
defaultMessage: [{
|
|
1582
|
+
"type": 0,
|
|
1583
|
+
"value": "Go to next screen"
|
|
1584
|
+
}]
|
|
1585
|
+
}))
|
|
1586
|
+
});
|
|
1495
1587
|
};
|
|
1496
1588
|
|
|
1497
1589
|
NavigationButton.propTypes = propTypes$6;
|
|
1498
1590
|
NavigationButton.defaultProps = defaultProps$6;
|
|
1499
1591
|
|
|
1500
|
-
var styles$2 = {"track":"micromag-viewer-partials-seek-bar-track","progress":"micromag-viewer-partials-seek-bar-progress","inner":"micromag-viewer-partials-seek-bar-inner","progressBar":"micromag-viewer-partials-seek-bar-progressBar","playHead":"micromag-viewer-partials-seek-bar-playHead","withSeekHead":"micromag-viewer-partials-seek-bar-withSeekHead","
|
|
1592
|
+
var styles$2 = {"track":"micromag-viewer-partials-seek-bar-track","progress":"micromag-viewer-partials-seek-bar-progress","inner":"micromag-viewer-partials-seek-bar-inner","progressBar":"micromag-viewer-partials-seek-bar-progressBar","playHead":"micromag-viewer-partials-seek-bar-playHead","withSeekHead":"micromag-viewer-partials-seek-bar-withSeekHead","scrubbedTime":"micromag-viewer-partials-seek-bar-scrubbedTime","showTimestamp":"micromag-viewer-partials-seek-bar-showTimestamp"};
|
|
1593
|
+
|
|
1594
|
+
function getFormattedTimestamp(s) {
|
|
1595
|
+
var withMilliseconds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1596
|
+
var sparts = withMilliseconds ? "".concat(s).split('.') : [];
|
|
1597
|
+
var ms = sparts.length > 1 ? ":".concat(sparts[1].substring(0, 3)) : '';
|
|
1598
|
+
return (s - (s %= 60)) / 60 + (9 < s ? ':' : ':0') + ~~s + ms; // eslint-disable-line
|
|
1599
|
+
}
|
|
1600
|
+
|
|
1601
|
+
var SHOW_MILLISECONDS_THRESHOLD = 5; // show milliseconds when scrubbing if length of video is shorter than 5 seconds
|
|
1501
1602
|
|
|
1502
1603
|
var propTypes$5 = {
|
|
1503
|
-
media: PropTypes__default["default"].
|
|
1604
|
+
media: PropTypes__default["default"].oneOfType([PropTypes__default["default"].func, PropTypes__default["default"].shape({
|
|
1605
|
+
current: PropTypes__default["default"].any
|
|
1606
|
+
}) // eslint-disable-line
|
|
1607
|
+
]),
|
|
1504
1608
|
playing: PropTypes__default["default"].bool,
|
|
1505
1609
|
backgroundColor: PropTypes__default["default"].string,
|
|
1506
1610
|
progressColor: PropTypes__default["default"].string,
|
|
@@ -1525,7 +1629,7 @@ var defaultProps$5 = {
|
|
|
1525
1629
|
};
|
|
1526
1630
|
|
|
1527
1631
|
var SeekBar = function SeekBar(_ref) {
|
|
1528
|
-
var
|
|
1632
|
+
var _ref4;
|
|
1529
1633
|
|
|
1530
1634
|
var media = _ref.media,
|
|
1531
1635
|
playing = _ref.playing,
|
|
@@ -1541,13 +1645,28 @@ var SeekBar = function SeekBar(_ref) {
|
|
|
1541
1645
|
var progress = hooks.useMediaProgress(media, {
|
|
1542
1646
|
disabled: !playing
|
|
1543
1647
|
});
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1648
|
+
|
|
1649
|
+
var _ref2 = media || {},
|
|
1650
|
+
_ref2$currentTime = _ref2.currentTime,
|
|
1651
|
+
currentTime = _ref2$currentTime === void 0 ? null : _ref2$currentTime,
|
|
1652
|
+
_ref2$duration = _ref2.duration,
|
|
1653
|
+
duration = _ref2$duration === void 0 ? null : _ref2$duration;
|
|
1654
|
+
|
|
1655
|
+
var _useState = React.useState(false),
|
|
1656
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
1657
|
+
showTimestamp = _useState2[0],
|
|
1658
|
+
setShowTimestamp = _useState2[1];
|
|
1659
|
+
|
|
1660
|
+
var onDrag = React.useCallback(function (_ref3) {
|
|
1661
|
+
var event = _ref3.event,
|
|
1662
|
+
_ref3$xy = _slicedToArray__default["default"](_ref3.xy, 1),
|
|
1663
|
+
x = _ref3$xy[0],
|
|
1664
|
+
elapsedTime = _ref3.elapsedTime,
|
|
1665
|
+
active = _ref3.active,
|
|
1666
|
+
tap = _ref3.tap,
|
|
1667
|
+
currentTarget = _ref3.currentTarget;
|
|
1668
|
+
|
|
1669
|
+
event.stopPropagation();
|
|
1551
1670
|
|
|
1552
1671
|
if (!active && elapsedTime > 300) {
|
|
1553
1672
|
return;
|
|
@@ -1563,16 +1682,21 @@ var SeekBar = function SeekBar(_ref) {
|
|
|
1563
1682
|
onSeek(newProgress, tap);
|
|
1564
1683
|
}
|
|
1565
1684
|
}, [onSeek]);
|
|
1566
|
-
var onDragStart = React.useCallback(function () {
|
|
1685
|
+
var onDragStart = React.useCallback(function (event) {
|
|
1686
|
+
setShowTimestamp(true);
|
|
1687
|
+
|
|
1567
1688
|
if (onSeekStart !== null) {
|
|
1568
1689
|
onSeekStart();
|
|
1569
1690
|
}
|
|
1570
|
-
|
|
1691
|
+
|
|
1692
|
+
event.stopPropagation();
|
|
1693
|
+
}, [onSeekStart, setShowTimestamp]);
|
|
1571
1694
|
var onDragEnd = React.useCallback(function () {
|
|
1572
1695
|
if (onSeekEnd !== null) {
|
|
1696
|
+
setShowTimestamp(false);
|
|
1573
1697
|
onSeekEnd();
|
|
1574
1698
|
}
|
|
1575
|
-
}, [onSeekEnd]);
|
|
1699
|
+
}, [onSeekEnd, setShowTimestamp]);
|
|
1576
1700
|
var bind = react.useGesture({
|
|
1577
1701
|
onDrag: onDrag,
|
|
1578
1702
|
onDragStart: onDragStart,
|
|
@@ -1584,7 +1708,7 @@ var SeekBar = function SeekBar(_ref) {
|
|
|
1584
1708
|
}
|
|
1585
1709
|
});
|
|
1586
1710
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1587
|
-
className: classNames__default["default"]([styles$2.container, (
|
|
1711
|
+
className: classNames__default["default"]([styles$2.container, (_ref4 = {}, _defineProperty__default["default"](_ref4, className, className !== null), _defineProperty__default["default"](_ref4, styles$2.withSeekHead, withSeekHead), _defineProperty__default["default"](_ref4, styles$2.showTimestamp, showTimestamp), _ref4)])
|
|
1588
1712
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1589
1713
|
className: styles$2.inner
|
|
1590
1714
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
@@ -1598,7 +1722,12 @@ var SeekBar = function SeekBar(_ref) {
|
|
|
1598
1722
|
left: "".concat(progress * 100, "%"),
|
|
1599
1723
|
backgroundColor: progressColor
|
|
1600
1724
|
}
|
|
1601
|
-
}
|
|
1725
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1726
|
+
className: styles$2.scrubbedTime,
|
|
1727
|
+
style: {
|
|
1728
|
+
borderColor: progressColor
|
|
1729
|
+
}
|
|
1730
|
+
}, getFormattedTimestamp(currentTime, duration < SHOW_MILLISECONDS_THRESHOLD))), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1602
1731
|
className: styles$2.progress,
|
|
1603
1732
|
style: {
|
|
1604
1733
|
transform: "scaleX(".concat(progress, ")"),
|
|
@@ -1628,7 +1757,7 @@ var SeekBar = function SeekBar(_ref) {
|
|
|
1628
1757
|
SeekBar.propTypes = propTypes$5;
|
|
1629
1758
|
SeekBar.defaultProps = defaultProps$5;
|
|
1630
1759
|
|
|
1631
|
-
var styles$1 = {"muteButton":"micromag-viewer-partials-playback-controls-muteButton","playPauseButton":"micromag-viewer-partials-playback-controls-playPauseButton","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","
|
|
1760
|
+
var styles$1 = {"muteButton":"micromag-viewer-partials-playback-controls-muteButton","playPauseButton":"micromag-viewer-partials-playback-controls-playPauseButton","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"};
|
|
1632
1761
|
|
|
1633
1762
|
var propTypes$4 = {
|
|
1634
1763
|
className: PropTypes__default["default"].string,
|
|
@@ -1733,7 +1862,8 @@ function PlaybackControls(_ref) {
|
|
|
1733
1862
|
setPlaying(true);
|
|
1734
1863
|
}
|
|
1735
1864
|
}, [setPlaying, wasPlaying]);
|
|
1736
|
-
var
|
|
1865
|
+
var hasMedia = mediaElement !== null;
|
|
1866
|
+
var mediaHasAudio = hasMedia && (hasAudio === null || hasAudio === true);
|
|
1737
1867
|
|
|
1738
1868
|
var _ref3 = customControlsTheme || {},
|
|
1739
1869
|
color = _ref3.color,
|
|
@@ -1742,33 +1872,55 @@ function PlaybackControls(_ref) {
|
|
|
1742
1872
|
|
|
1743
1873
|
var isCollapsed = controls && !controlsVisible && playing || !controls && mediaHasAudio;
|
|
1744
1874
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1745
|
-
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,
|
|
1746
|
-
}, /*#__PURE__*/React__default["default"].createElement(
|
|
1747
|
-
type: "button",
|
|
1875
|
+
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)])
|
|
1876
|
+
}, /*#__PURE__*/React__default["default"].createElement(components.Button, {
|
|
1748
1877
|
className: styles$1.playPauseButton,
|
|
1749
1878
|
style: {
|
|
1750
1879
|
color: color
|
|
1751
1880
|
},
|
|
1752
1881
|
onClick: playing ? onPause : onPlay,
|
|
1753
|
-
|
|
1754
|
-
|
|
1882
|
+
focusable: controlsVisible,
|
|
1883
|
+
icon: playing ? /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
1884
|
+
className: styles$1.icon,
|
|
1885
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1886
|
+
width: "10",
|
|
1887
|
+
height: "16",
|
|
1888
|
+
viewBox: "0 0 10 16",
|
|
1889
|
+
fill: "currentColor"
|
|
1890
|
+
}, /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
1891
|
+
x: "1",
|
|
1892
|
+
y: "3.27",
|
|
1893
|
+
width: "3",
|
|
1894
|
+
height: "9.69"
|
|
1895
|
+
}), /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
1896
|
+
x: "6",
|
|
1897
|
+
y: "3.27",
|
|
1898
|
+
width: "3",
|
|
1899
|
+
height: "9.69"
|
|
1900
|
+
})) : /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
1901
|
+
className: styles$1.icon,
|
|
1902
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1903
|
+
width: "10",
|
|
1904
|
+
height: "16",
|
|
1905
|
+
viewBox: "0 0 10 16",
|
|
1906
|
+
fill: "currentColor"
|
|
1907
|
+
}, /*#__PURE__*/React__default["default"].createElement("path", {
|
|
1908
|
+
d: "M1,3.16V12.84l8-4.84L1,3.16"
|
|
1909
|
+
})),
|
|
1910
|
+
"aria-label": playing ? intl.formatMessage({
|
|
1911
|
+
id: "mTqcmA",
|
|
1755
1912
|
defaultMessage: [{
|
|
1756
1913
|
"type": 0,
|
|
1757
|
-
"value": "
|
|
1914
|
+
"value": "Pause"
|
|
1758
1915
|
}]
|
|
1759
|
-
})
|
|
1760
|
-
"aria-label": intl.formatMessage({
|
|
1916
|
+
}) : intl.formatMessage({
|
|
1761
1917
|
id: "ahSpiH",
|
|
1762
1918
|
defaultMessage: [{
|
|
1763
1919
|
"type": 0,
|
|
1764
1920
|
"value": "Play"
|
|
1765
1921
|
}]
|
|
1766
|
-
})
|
|
1767
|
-
|
|
1768
|
-
}, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
|
|
1769
|
-
className: styles$1.icon,
|
|
1770
|
-
icon: playing ? faPause.faPause : faPlay.faPlay
|
|
1771
|
-
})), /*#__PURE__*/React__default["default"].createElement(SeekBar, {
|
|
1922
|
+
})
|
|
1923
|
+
}), /*#__PURE__*/React__default["default"].createElement(SeekBar, {
|
|
1772
1924
|
className: styles$1.seekBar,
|
|
1773
1925
|
media: mediaElement,
|
|
1774
1926
|
playing: playing,
|
|
@@ -1779,32 +1931,54 @@ function PlaybackControls(_ref) {
|
|
|
1779
1931
|
withSeekHead: !isCollapsed && !seekBarOnly,
|
|
1780
1932
|
backgroundColor: color,
|
|
1781
1933
|
progressColor: progressColor
|
|
1782
|
-
}), /*#__PURE__*/React__default["default"].createElement(
|
|
1783
|
-
|
|
1784
|
-
className: classNames__default["default"]([styles$1.muteButton, _defineProperty__default["default"]({}, styles$1.isMuted, muted)]),
|
|
1934
|
+
}), /*#__PURE__*/React__default["default"].createElement(components.Button, {
|
|
1935
|
+
className: styles$1.muteButton,
|
|
1785
1936
|
style: {
|
|
1786
1937
|
color: color
|
|
1787
1938
|
},
|
|
1788
1939
|
onClick: muted ? onUnmute : onMute,
|
|
1789
|
-
|
|
1790
|
-
|
|
1940
|
+
focusable: controlsVisible || mediaHasAudio,
|
|
1941
|
+
icon: muted ? /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
1942
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1943
|
+
width: "10",
|
|
1944
|
+
height: "16",
|
|
1945
|
+
viewBox: "0 0 10 16",
|
|
1946
|
+
className: styles$1.icon,
|
|
1947
|
+
fill: "currentColor"
|
|
1948
|
+
}, /*#__PURE__*/React__default["default"].createElement("polygon", {
|
|
1949
|
+
points: "2.75 4.63 1.24 6 0 6 0 10 1.24 10 4.54 13 4.54 3 2.75 4.63"
|
|
1950
|
+
}), /*#__PURE__*/React__default["default"].createElement("polygon", {
|
|
1951
|
+
points: "10 6.63 8.94 5.57 7.58 6.93 6.21 5.57 5.15 6.63 6.52 7.99 5.15 9.35 6.21 10.43 7.58 9.06 8.94 10.43 10 9.35 8.64 7.99 10 6.63"
|
|
1952
|
+
})) : /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
1953
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1954
|
+
width: "10",
|
|
1955
|
+
height: "16",
|
|
1956
|
+
viewBox: "0 0 10 16",
|
|
1957
|
+
className: styles$1.icon,
|
|
1958
|
+
fill: "currentColor"
|
|
1959
|
+
}, /*#__PURE__*/React__default["default"].createElement("polygon", {
|
|
1960
|
+
points: "2.75 4.63 1.24 6 0 6 0 10 1.24 10 4.54 13 4.54 3 2.75 4.63"
|
|
1961
|
+
}), /*#__PURE__*/React__default["default"].createElement("circle", {
|
|
1962
|
+
cx: "6.14",
|
|
1963
|
+
cy: "8",
|
|
1964
|
+
r: ".99"
|
|
1965
|
+
}), /*#__PURE__*/React__default["default"].createElement("path", {
|
|
1966
|
+
d: "M6.14,11.88v-1.5c1.31,0,2.38-1.07,2.38-2.38s-1.07-2.38-2.38-2.38v-1.5c2.14,0,3.88,1.74,3.88,3.88s-1.74,3.88-3.88,3.88Z"
|
|
1967
|
+
})),
|
|
1968
|
+
"aria-label": muted ? intl.formatMessage({
|
|
1969
|
+
id: "RK/QEY",
|
|
1791
1970
|
defaultMessage: [{
|
|
1792
1971
|
"type": 0,
|
|
1793
|
-
"value": "
|
|
1972
|
+
"value": "Unmute"
|
|
1794
1973
|
}]
|
|
1795
|
-
})
|
|
1796
|
-
"aria-label": intl.formatMessage({
|
|
1974
|
+
}) : intl.formatMessage({
|
|
1797
1975
|
id: "vzg8Es",
|
|
1798
1976
|
defaultMessage: [{
|
|
1799
1977
|
"type": 0,
|
|
1800
1978
|
"value": "Mute"
|
|
1801
1979
|
}]
|
|
1802
|
-
})
|
|
1803
|
-
|
|
1804
|
-
}, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
|
|
1805
|
-
className: styles$1.icon,
|
|
1806
|
-
icon: faVolumeUp.faVolumeUp
|
|
1807
|
-
})));
|
|
1980
|
+
})
|
|
1981
|
+
}));
|
|
1808
1982
|
}
|
|
1809
1983
|
|
|
1810
1984
|
PlaybackControls.propTypes = propTypes$4;
|
|
@@ -1897,32 +2071,43 @@ function WebViewContainer(_ref) {
|
|
|
1897
2071
|
WebViewContainer.propTypes = propTypes$3;
|
|
1898
2072
|
WebViewContainer.defaultProps = defaultProps$3;
|
|
1899
2073
|
|
|
2074
|
+
var SPRING_CONFIG_TIGHT = {
|
|
2075
|
+
tension: 300,
|
|
2076
|
+
friction: 35
|
|
2077
|
+
}; // tight
|
|
2078
|
+
|
|
2079
|
+
var DRAG_PROGRESS_ACTIVATION_THRESHOLD = 0.3;
|
|
2080
|
+
var DRAG_VELOCITY_ACTIVATION_THRESHOLD = 0.3;
|
|
2081
|
+
var DEFAULT_TRANSITION_TYPE_LANDSCAPE = 'carousel';
|
|
2082
|
+
var DEFAULT_TRANSITION_TYPE_PORTRAIT = 'stack';
|
|
1900
2083
|
var propTypes$2 = {
|
|
1901
|
-
story: core
|
|
2084
|
+
story: core.PropTypes.story,
|
|
1902
2085
|
// .isRequired,
|
|
1903
2086
|
basePath: PropTypes__default["default"].string,
|
|
1904
|
-
theme: core
|
|
2087
|
+
theme: core.PropTypes.viewerTheme,
|
|
1905
2088
|
width: PropTypes__default["default"].number,
|
|
1906
2089
|
height: PropTypes__default["default"].number,
|
|
1907
2090
|
screen: PropTypes__default["default"].string,
|
|
1908
2091
|
screenState: PropTypes__default["default"].string,
|
|
1909
|
-
deviceScreens: core
|
|
1910
|
-
renderContext: core
|
|
1911
|
-
visitor: core
|
|
2092
|
+
deviceScreens: core.PropTypes.deviceScreens,
|
|
2093
|
+
renderContext: core.PropTypes.renderContext,
|
|
2094
|
+
visitor: core.PropTypes.visitor,
|
|
1912
2095
|
onScreenChange: PropTypes__default["default"].func,
|
|
1913
2096
|
tapNextScreenWidthPercent: PropTypes__default["default"].number,
|
|
1914
2097
|
neighborScreensActive: PropTypes__default["default"].number,
|
|
1915
|
-
neighborScreensMounted: PropTypes__default["default"].number,
|
|
1916
2098
|
storyIsParsed: PropTypes__default["default"].bool,
|
|
1917
|
-
landscapeScreenMargin:
|
|
1918
|
-
landscapeSmallScreenScale:
|
|
2099
|
+
// landscapeScreenMargin: PropTypes.number,
|
|
2100
|
+
// landscapeSmallScreenScale: PropTypes.number,
|
|
1919
2101
|
withMetadata: PropTypes__default["default"].bool,
|
|
2102
|
+
withoutGestures: PropTypes__default["default"].bool,
|
|
1920
2103
|
withoutMenu: PropTypes__default["default"].bool,
|
|
1921
2104
|
withoutScreensMenu: PropTypes__default["default"].bool,
|
|
1922
2105
|
withoutShareMenu: PropTypes__default["default"].bool,
|
|
1923
2106
|
withoutMenuShadow: PropTypes__default["default"].bool,
|
|
1924
2107
|
withoutFullscreen: PropTypes__default["default"].bool,
|
|
1925
|
-
|
|
2108
|
+
withoutNavigationArrow: PropTypes__default["default"].bool,
|
|
2109
|
+
withoutTransitions: PropTypes__default["default"].bool,
|
|
2110
|
+
withNeighborScreens: PropTypes__default["default"].bool,
|
|
1926
2111
|
withNavigationHint: PropTypes__default["default"].bool,
|
|
1927
2112
|
withoutPlaybackControls: PropTypes__default["default"].bool,
|
|
1928
2113
|
closeable: PropTypes__default["default"].bool,
|
|
@@ -1930,9 +2115,9 @@ var propTypes$2 = {
|
|
|
1930
2115
|
onInteraction: PropTypes__default["default"].func,
|
|
1931
2116
|
onEnd: PropTypes__default["default"].func,
|
|
1932
2117
|
onViewModeChange: PropTypes__default["default"].func,
|
|
1933
|
-
currentScreenMedia: core
|
|
2118
|
+
currentScreenMedia: core.PropTypes.ref,
|
|
1934
2119
|
menuIsScreenWidth: PropTypes__default["default"].bool,
|
|
1935
|
-
screensMedias: core
|
|
2120
|
+
screensMedias: core.PropTypes.ref,
|
|
1936
2121
|
screenSizeOptions: PropTypes__default["default"].shape({
|
|
1937
2122
|
withoutMaxSize: PropTypes__default["default"].bool,
|
|
1938
2123
|
desktopHeightRatio: PropTypes__default["default"].number,
|
|
@@ -1954,18 +2139,20 @@ var defaultProps$2 = {
|
|
|
1954
2139
|
onScreenChange: null,
|
|
1955
2140
|
tapNextScreenWidthPercent: 0.8,
|
|
1956
2141
|
neighborScreensActive: 1,
|
|
1957
|
-
neighborScreensMounted: 1,
|
|
1958
2142
|
storyIsParsed: false,
|
|
1959
|
-
landscapeScreenMargin: 20,
|
|
1960
|
-
landscapeSmallScreenScale: 0.9,
|
|
2143
|
+
// landscapeScreenMargin: 20,
|
|
2144
|
+
// landscapeSmallScreenScale: 0.9,
|
|
1961
2145
|
withMetadata: false,
|
|
2146
|
+
withNeighborScreens: false,
|
|
2147
|
+
withNavigationHint: false,
|
|
2148
|
+
withoutGestures: false,
|
|
1962
2149
|
withoutMenu: false,
|
|
1963
2150
|
withoutScreensMenu: false,
|
|
1964
2151
|
withoutShareMenu: false,
|
|
1965
2152
|
withoutMenuShadow: false,
|
|
1966
2153
|
withoutFullscreen: false,
|
|
1967
|
-
|
|
1968
|
-
|
|
2154
|
+
withoutTransitions: false,
|
|
2155
|
+
withoutNavigationArrow: false,
|
|
1969
2156
|
withoutPlaybackControls: false,
|
|
1970
2157
|
menuIsScreenWidth: false,
|
|
1971
2158
|
closeable: false,
|
|
@@ -1994,17 +2181,17 @@ var Viewer = function Viewer(_ref) {
|
|
|
1994
2181
|
visitor = _ref.visitor,
|
|
1995
2182
|
tapNextScreenWidthPercent = _ref.tapNextScreenWidthPercent,
|
|
1996
2183
|
neighborScreensActive = _ref.neighborScreensActive,
|
|
1997
|
-
neighborScreensMounted = _ref.neighborScreensMounted,
|
|
1998
2184
|
storyIsParsed = _ref.storyIsParsed,
|
|
1999
|
-
landscapeScreenMargin = _ref.landscapeScreenMargin,
|
|
2000
|
-
landscapeSmallScreenScale = _ref.landscapeSmallScreenScale,
|
|
2001
2185
|
withMetadata = _ref.withMetadata,
|
|
2186
|
+
withoutGestures = _ref.withoutGestures,
|
|
2002
2187
|
withoutMenu = _ref.withoutMenu,
|
|
2003
2188
|
withoutScreensMenu = _ref.withoutScreensMenu,
|
|
2004
2189
|
withoutShareMenu = _ref.withoutShareMenu,
|
|
2005
2190
|
withoutMenuShadow = _ref.withoutMenuShadow;
|
|
2006
2191
|
_ref.withoutFullscreen;
|
|
2007
|
-
var
|
|
2192
|
+
var withoutNavigationArrow = _ref.withoutNavigationArrow;
|
|
2193
|
+
_ref.withoutTransitions;
|
|
2194
|
+
var withNeighborScreens = _ref.withNeighborScreens,
|
|
2008
2195
|
withNavigationHint = _ref.withNavigationHint,
|
|
2009
2196
|
withoutPlaybackControls = _ref.withoutPlaybackControls,
|
|
2010
2197
|
menuIsScreenWidth = _ref.menuIsScreenWidth,
|
|
@@ -2018,7 +2205,10 @@ var Viewer = function Viewer(_ref) {
|
|
|
2018
2205
|
screensMedias = _ref.screensMedias,
|
|
2019
2206
|
screenSizeOptions = _ref.screenSizeOptions,
|
|
2020
2207
|
className = _ref.className;
|
|
2021
|
-
|
|
2208
|
+
|
|
2209
|
+
/**
|
|
2210
|
+
* Screen Data + Processing
|
|
2211
|
+
*/
|
|
2022
2212
|
var parsedStory = hooks.useParsedStory(story, {
|
|
2023
2213
|
disabled: storyIsParsed
|
|
2024
2214
|
}) || {};
|
|
@@ -2030,20 +2220,59 @@ var Viewer = function Viewer(_ref) {
|
|
|
2030
2220
|
metadata = _parsedStory$metadata === void 0 ? null : _parsedStory$metadata,
|
|
2031
2221
|
_parsedStory$fonts = parsedStory.fonts,
|
|
2032
2222
|
fonts = _parsedStory$fonts === void 0 ? null : _parsedStory$fonts;
|
|
2223
|
+
var screensCount = screens.length;
|
|
2033
2224
|
var eventsManager = React.useMemo(function () {
|
|
2034
2225
|
return new EventEmitter__default["default"]();
|
|
2035
|
-
}, [parsedStory]);
|
|
2226
|
+
}, [parsedStory]);
|
|
2227
|
+
var screenIndex = React.useMemo(function () {
|
|
2228
|
+
return Math.max(0, screens.findIndex(function (it) {
|
|
2229
|
+
return "".concat(it.id) === "".concat(screenId);
|
|
2230
|
+
}));
|
|
2231
|
+
}, [screenId, screens]);
|
|
2232
|
+
var currentScreen = screens[screenIndex] || null;
|
|
2036
2233
|
|
|
2037
|
-
var _ref2 =
|
|
2038
|
-
|
|
2234
|
+
var _ref2 = currentScreen || {},
|
|
2235
|
+
screenParameters = _ref2.parameters;
|
|
2236
|
+
|
|
2237
|
+
var _ref3 = screenParameters || {},
|
|
2238
|
+
screenMetadata = _ref3.metadata;
|
|
2239
|
+
|
|
2240
|
+
var _ref4 = screenMetadata || {},
|
|
2241
|
+
_ref4$title = _ref4.title,
|
|
2242
|
+
screenTitle = _ref4$title === void 0 ? null : _ref4$title,
|
|
2243
|
+
_ref4$description = _ref4.description,
|
|
2244
|
+
screenDescription = _ref4$description === void 0 ? null : _ref4$description;
|
|
2245
|
+
|
|
2246
|
+
var finalTitle = screenTitle !== null ? screenTitle : title;
|
|
2247
|
+
var finalMetadata = React.useMemo(function () {
|
|
2248
|
+
return screenDescription !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, metadata), {}, {
|
|
2249
|
+
description: screenDescription
|
|
2250
|
+
}) : metadata;
|
|
2251
|
+
}, [metadata, screenDescription]);
|
|
2252
|
+
var screensMediasRef = React.useRef([]);
|
|
2253
|
+
|
|
2254
|
+
if (currentScreenMedia !== null) {
|
|
2255
|
+
currentScreenMedia.current = screensMediasRef.current[screenIndex] || null;
|
|
2256
|
+
}
|
|
2257
|
+
|
|
2258
|
+
if (screensMedias !== null) {
|
|
2259
|
+
screensMedias.current = screensMediasRef.current;
|
|
2260
|
+
}
|
|
2261
|
+
/**
|
|
2262
|
+
* Screen Layout
|
|
2263
|
+
*/
|
|
2039
2264
|
|
|
2040
|
-
var _ref3 = textStyles || {},
|
|
2041
|
-
_ref3$title = _ref3.title,
|
|
2042
|
-
themeTextStyle = _ref3$title === void 0 ? null : _ref3$title;
|
|
2043
2265
|
|
|
2044
|
-
var
|
|
2045
|
-
|
|
2046
|
-
|
|
2266
|
+
var _ref5 = viewerTheme || {},
|
|
2267
|
+
textStyles = _ref5.textStyles;
|
|
2268
|
+
|
|
2269
|
+
var _ref6 = textStyles || {},
|
|
2270
|
+
_ref6$title = _ref6.title,
|
|
2271
|
+
themeTextStyle = _ref6$title === void 0 ? null : _ref6$title;
|
|
2272
|
+
|
|
2273
|
+
var _ref7 = themeTextStyle || {},
|
|
2274
|
+
_ref7$fontFamily = _ref7.fontFamily,
|
|
2275
|
+
themeFont = _ref7$fontFamily === void 0 ? null : _ref7$fontFamily; // Fonts
|
|
2047
2276
|
|
|
2048
2277
|
|
|
2049
2278
|
var finalFonts = React.useMemo(function () {
|
|
@@ -2070,8 +2299,12 @@ var Viewer = function Viewer(_ref) {
|
|
|
2070
2299
|
_usePlaybackContext$m = _usePlaybackContext.media,
|
|
2071
2300
|
playbackMedia = _usePlaybackContext$m === void 0 ? null : _usePlaybackContext$m;
|
|
2072
2301
|
|
|
2073
|
-
var
|
|
2074
|
-
|
|
2302
|
+
var _useDimensionObserver = hooks.useDimensionObserver(),
|
|
2303
|
+
playbackControlsContainerRef = _useDimensionObserver.ref,
|
|
2304
|
+
_useDimensionObserver2 = _useDimensionObserver.height,
|
|
2305
|
+
playbackControlsContainerHeight = _useDimensionObserver2 === void 0 ? 0 : _useDimensionObserver2;
|
|
2306
|
+
|
|
2307
|
+
var trackScreenView = hooks.useTrackScreenView(); // Get screen size
|
|
2075
2308
|
|
|
2076
2309
|
var _useScreenSizeFromEle = hooks.useScreenSizeFromElement(_objectSpread__default["default"]({
|
|
2077
2310
|
width: width,
|
|
@@ -2082,21 +2315,26 @@ var Viewer = function Viewer(_ref) {
|
|
|
2082
2315
|
screenSize = _useScreenSizeFromEle.screenSize,
|
|
2083
2316
|
screenScale = _useScreenSizeFromEle.scale;
|
|
2084
2317
|
|
|
2085
|
-
var
|
|
2086
|
-
|
|
2087
|
-
screenWidth =
|
|
2088
|
-
|
|
2089
|
-
screenHeight =
|
|
2090
|
-
|
|
2091
|
-
landscape =
|
|
2092
|
-
|
|
2093
|
-
menuOverScreen =
|
|
2318
|
+
var _ref8 = screenSize || {},
|
|
2319
|
+
_ref8$width = _ref8.width,
|
|
2320
|
+
screenWidth = _ref8$width === void 0 ? null : _ref8$width,
|
|
2321
|
+
_ref8$height = _ref8.height,
|
|
2322
|
+
screenHeight = _ref8$height === void 0 ? null : _ref8$height,
|
|
2323
|
+
_ref8$landscape = _ref8.landscape,
|
|
2324
|
+
landscape = _ref8$landscape === void 0 ? false : _ref8$landscape,
|
|
2325
|
+
_ref8$menuOverScreen = _ref8.menuOverScreen,
|
|
2326
|
+
menuOverScreen = _ref8$menuOverScreen === void 0 ? false : _ref8$menuOverScreen;
|
|
2094
2327
|
|
|
2095
2328
|
var screenContainerWidth = screenScale !== null ? screenWidth * screenScale : screenWidth;
|
|
2096
2329
|
var screenContainerHeight = screenScale !== null ? screenHeight * screenScale : screenHeight;
|
|
2097
2330
|
var hasSize = screenWidth > 0 && screenHeight > 0;
|
|
2098
|
-
var ready = hasSize;
|
|
2099
|
-
|
|
2331
|
+
var ready = hasSize;
|
|
2332
|
+
var trackingEnabled = isView;
|
|
2333
|
+
React.useEffect(function () {
|
|
2334
|
+
if (trackingEnabled && currentScreen !== null) {
|
|
2335
|
+
trackScreenView(currentScreen, screenIndex);
|
|
2336
|
+
}
|
|
2337
|
+
}, [currentScreen, trackScreenView, trackingEnabled]);
|
|
2100
2338
|
React.useEffect(function () {
|
|
2101
2339
|
if (ready && onViewModeChange !== null) {
|
|
2102
2340
|
onViewModeChange({
|
|
@@ -2105,21 +2343,14 @@ var Viewer = function Viewer(_ref) {
|
|
|
2105
2343
|
});
|
|
2106
2344
|
}
|
|
2107
2345
|
}, [ready, landscape, menuOverScreen, onViewModeChange]);
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
return Math.max(0, screens.findIndex(function (it) {
|
|
2112
|
-
return "".concat(it.id) === "".concat(screenId);
|
|
2113
|
-
}));
|
|
2114
|
-
}, [screenId, screens]);
|
|
2115
|
-
|
|
2116
|
-
if (currentScreenMedia !== null) {
|
|
2117
|
-
currentScreenMedia.current = screensMediasRef.current[screenIndex] || null;
|
|
2118
|
-
}
|
|
2346
|
+
/**
|
|
2347
|
+
* Screen Transitions
|
|
2348
|
+
*/
|
|
2119
2349
|
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2350
|
+
var transitionType = landscape && withNeighborScreens ? DEFAULT_TRANSITION_TYPE_LANDSCAPE : DEFAULT_TRANSITION_TYPE_PORTRAIT;
|
|
2351
|
+
/**
|
|
2352
|
+
* Screen Navigation
|
|
2353
|
+
*/
|
|
2123
2354
|
|
|
2124
2355
|
var changeIndex = React.useCallback(function (index) {
|
|
2125
2356
|
if (index === screenIndex) {
|
|
@@ -2133,23 +2364,37 @@ var Viewer = function Viewer(_ref) {
|
|
|
2133
2364
|
if (onScreenChange !== null) {
|
|
2134
2365
|
onScreenChange(screens[index], index);
|
|
2135
2366
|
}
|
|
2136
|
-
}, [screenIndex, screens, onScreenChange]);
|
|
2367
|
+
}, [screenIndex, screens, onScreenChange]);
|
|
2368
|
+
var onScreenNavigate = React.useCallback(function (_ref9) {
|
|
2369
|
+
var index = _ref9.index,
|
|
2370
|
+
newIndex = _ref9.newIndex,
|
|
2371
|
+
end = _ref9.end,
|
|
2372
|
+
direction = _ref9.direction;
|
|
2137
2373
|
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
React.useEffect(function () {
|
|
2141
|
-
if (trackingEnabled && currentScreen !== null) {
|
|
2142
|
-
trackScreenView(currentScreen, screenIndex);
|
|
2374
|
+
if (end && onEnd !== null) {
|
|
2375
|
+
onEnd();
|
|
2143
2376
|
}
|
|
2144
|
-
}, [currentScreen, trackScreenView, trackingEnabled]); // Handle interaction enable
|
|
2145
2377
|
|
|
2378
|
+
changeIndex(newIndex);
|
|
2379
|
+
eventsManager.emit('navigate', {
|
|
2380
|
+
index: index,
|
|
2381
|
+
newIndex: newIndex,
|
|
2382
|
+
direction: direction,
|
|
2383
|
+
end: end
|
|
2384
|
+
});
|
|
2385
|
+
|
|
2386
|
+
if (end) {
|
|
2387
|
+
eventsManager.emit('navigate_end');
|
|
2388
|
+
} else {
|
|
2389
|
+
eventsManager.emit("navigate_".concat(direction), newIndex);
|
|
2390
|
+
}
|
|
2391
|
+
}, [onEnd, changeIndex]);
|
|
2146
2392
|
var gotoPreviousScreen = React.useCallback(function () {
|
|
2147
2393
|
changeIndex(Math.max(0, screenIndex - 1));
|
|
2148
|
-
}, [changeIndex]);
|
|
2394
|
+
}, [changeIndex, screenIndex]);
|
|
2149
2395
|
var gotoNextScreen = React.useCallback(function () {
|
|
2150
2396
|
changeIndex(Math.min(screens.length - 1, screenIndex + 1));
|
|
2151
|
-
}, [changeIndex]);
|
|
2152
|
-
var screensCount = screens.length;
|
|
2397
|
+
}, [changeIndex, screenIndex]);
|
|
2153
2398
|
|
|
2154
2399
|
var _useState = React.useState(false),
|
|
2155
2400
|
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
@@ -2165,37 +2410,12 @@ var Viewer = function Viewer(_ref) {
|
|
|
2165
2410
|
setHasInteracted(true);
|
|
2166
2411
|
}
|
|
2167
2412
|
}, [onInteraction, hasInteracted, setHasInteracted]);
|
|
2168
|
-
var onScreenNavigate = React.useCallback(function (_ref6) {
|
|
2169
|
-
var index = _ref6.index,
|
|
2170
|
-
newIndex = _ref6.newIndex,
|
|
2171
|
-
end = _ref6.end,
|
|
2172
|
-
direction = _ref6.direction;
|
|
2173
|
-
|
|
2174
|
-
if (end && onEnd !== null) {
|
|
2175
|
-
onEnd();
|
|
2176
|
-
}
|
|
2177
|
-
|
|
2178
|
-
changeIndex(newIndex);
|
|
2179
|
-
eventsManager.emit('navigate', {
|
|
2180
|
-
newIndex: newIndex,
|
|
2181
|
-
index: index,
|
|
2182
|
-
direction: direction,
|
|
2183
|
-
end: end
|
|
2184
|
-
});
|
|
2185
|
-
|
|
2186
|
-
if (end) {
|
|
2187
|
-
eventsManager.emit('navigate_end');
|
|
2188
|
-
} else {
|
|
2189
|
-
eventsManager.emit("navigate_".concat(direction), newIndex);
|
|
2190
|
-
}
|
|
2191
|
-
}, [onEnd, changeIndex]);
|
|
2192
2413
|
|
|
2193
2414
|
var _useScreenInteraction = useScreenInteraction({
|
|
2194
2415
|
screens: screens,
|
|
2195
2416
|
screenIndex: screenIndex,
|
|
2196
2417
|
screenWidth: screenContainerWidth,
|
|
2197
2418
|
disableCurrentScreenNavigation: !isView,
|
|
2198
|
-
clickOnSiblings: landscape && withLandscapeSiblingsScreens,
|
|
2199
2419
|
nextScreenWidthPercent: tapNextScreenWidthPercent,
|
|
2200
2420
|
onInteract: onInteractionPrivate,
|
|
2201
2421
|
onNavigate: onScreenNavigate
|
|
@@ -2203,102 +2423,127 @@ var Viewer = function Viewer(_ref) {
|
|
|
2203
2423
|
interactWithScreen = _useScreenInteraction.interact,
|
|
2204
2424
|
currentScreenInteractionEnabled = _useScreenInteraction.currentScreenInteractionEnabled,
|
|
2205
2425
|
enableInteraction = _useScreenInteraction.enableInteraction,
|
|
2206
|
-
disableInteraction = _useScreenInteraction.disableInteraction;
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
var
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2426
|
+
disableInteraction = _useScreenInteraction.disableInteraction;
|
|
2427
|
+
|
|
2428
|
+
var onTap = React.useCallback(function (_ref10) {
|
|
2429
|
+
var currentTarget = _ref10.currentTarget,
|
|
2430
|
+
event = _ref10.event,
|
|
2431
|
+
target = _ref10.target,
|
|
2432
|
+
_ref10$xy = _slicedToArray__default["default"](_ref10.xy, 2),
|
|
2433
|
+
x = _ref10$xy[0],
|
|
2434
|
+
y = _ref10$xy[1];
|
|
2435
|
+
|
|
2436
|
+
interactWithScreen({
|
|
2437
|
+
event: event,
|
|
2438
|
+
target: target,
|
|
2439
|
+
currentTarget: currentTarget,
|
|
2440
|
+
index: screenIndex,
|
|
2441
|
+
x: x,
|
|
2442
|
+
y: y
|
|
2443
|
+
});
|
|
2444
|
+
}, [interactWithScreen, screenIndex]);
|
|
2445
|
+
var computeScreenProgress = React.useCallback(function (_ref11) {
|
|
2446
|
+
var active = _ref11.active,
|
|
2447
|
+
_ref11$movement = _slicedToArray__default["default"](_ref11.movement, 1),
|
|
2448
|
+
mx = _ref11$movement[0],
|
|
2449
|
+
_ref11$velocity = _slicedToArray__default["default"](_ref11.velocity, 1),
|
|
2450
|
+
vx = _ref11$velocity[0];
|
|
2451
|
+
|
|
2452
|
+
var p = mx / screenContainerWidth; // drag "ratio": how much of the screen width has been swiped?
|
|
2453
|
+
|
|
2454
|
+
var forwards = mx < 0; // true if swiping to left (to navigate forwards)
|
|
2455
|
+
|
|
2456
|
+
var newIndex = !forwards ? screenIndex - 1 : screenIndex + 1; // which item index are we moving towards?
|
|
2457
|
+
|
|
2458
|
+
var reachedThreshold = vx > DRAG_VELOCITY_ACTIVATION_THRESHOLD || Math.abs(p) > DRAG_PROGRESS_ACTIVATION_THRESHOLD;
|
|
2459
|
+
var reachedBounds = newIndex < 0 || newIndex >= screensCount; // have we reached the end of the stack?
|
|
2460
|
+
|
|
2461
|
+
var damper = reachedBounds ? 0.1 : 1;
|
|
2462
|
+
var progress = Math.max(-1, Math.min(1, p * damper));
|
|
2463
|
+
|
|
2464
|
+
if (!active) {
|
|
2465
|
+
return reachedThreshold && !reachedBounds ? newIndex : screenIndex;
|
|
2244
2466
|
}
|
|
2245
2467
|
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2468
|
+
return screenIndex - progress;
|
|
2469
|
+
}, [screenContainerWidth, screenIndex]);
|
|
2470
|
+
var onScreenProgress = React.useCallback(function (progress, _ref12) {
|
|
2471
|
+
var active = _ref12.active;
|
|
2472
|
+
var delta = Math.abs(progress - screenIndex);
|
|
2473
|
+
var reachedBounds = progress < 0 || progress >= screensCount; // have we reached the end of the stack?
|
|
2252
2474
|
|
|
2253
|
-
|
|
2254
|
-
var nextIndex = hasTappedLeft ? Math.max(0, screenIndex - 1) : Math.min(screensCount - 1, screenIndex + 1);
|
|
2475
|
+
if (!active && delta === 1 && !reachedBounds) {
|
|
2255
2476
|
onScreenNavigate({
|
|
2256
2477
|
index: screenIndex,
|
|
2257
|
-
newIndex:
|
|
2478
|
+
newIndex: progress
|
|
2258
2479
|
});
|
|
2259
2480
|
}
|
|
2260
|
-
}, [
|
|
2261
|
-
var
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2481
|
+
}, [onScreenNavigate, screenIndex]);
|
|
2482
|
+
var springParams = React.useMemo(function () {
|
|
2483
|
+
return {
|
|
2484
|
+
config: SPRING_CONFIG_TIGHT
|
|
2485
|
+
};
|
|
2486
|
+
}, []);
|
|
2487
|
+
|
|
2488
|
+
var _useDragProgress = hooks.useDragProgress({
|
|
2489
|
+
progress: screenIndex,
|
|
2490
|
+
disabled: !isView,
|
|
2491
|
+
dragDisabled: withoutGestures,
|
|
2492
|
+
computeProgress: computeScreenProgress,
|
|
2493
|
+
onProgress: onScreenProgress,
|
|
2494
|
+
onTap: onTap,
|
|
2495
|
+
springParams: springParams
|
|
2496
|
+
}),
|
|
2497
|
+
isDragging = _useDragProgress.dragging,
|
|
2498
|
+
screenIndexProgress = _useDragProgress.progress,
|
|
2499
|
+
dragContentBind = _useDragProgress.bind;
|
|
2500
|
+
|
|
2501
|
+
var getScreenStylesByIndex = function getScreenStylesByIndex(index, progress) {
|
|
2502
|
+
if (transitionType === 'stack') {
|
|
2503
|
+
var _t = index - progress;
|
|
2266
2504
|
|
|
2267
|
-
|
|
2268
|
-
|
|
2505
|
+
var _clamped = Math.min(1, Math.max(0, _t));
|
|
2506
|
+
|
|
2507
|
+
var invert = Math.min(1, Math.max(0, -_t));
|
|
2508
|
+
var opacity = Math.max(0, 1 - 0.75 * invert + (_t + 1));
|
|
2509
|
+
return {
|
|
2510
|
+
opacity: opacity,
|
|
2511
|
+
transform: "translateX(".concat(_clamped * 100, "%) scale(").concat(1 - 0.2 * invert, ")"),
|
|
2512
|
+
boxShadow: "0 0 ".concat(4 * (1 - _clamped), "rem ").concat(-0.5 * (1 - _clamped), "rem black"),
|
|
2513
|
+
zIndex: index
|
|
2514
|
+
};
|
|
2269
2515
|
}
|
|
2270
|
-
}, [withLandscapeSiblingsScreens, changeIndex, landscape, screenIndex]); // swipe menu open
|
|
2271
2516
|
|
|
2272
|
-
|
|
2517
|
+
var t = index - progress;
|
|
2518
|
+
var clamped = Math.min(1, Math.max(0, Math.abs(t)));
|
|
2519
|
+
return {
|
|
2520
|
+
opacity: 1 - 0.75 * clamped,
|
|
2521
|
+
transform: "translateX(".concat(t * 105, "%) scale(").concat(1 - 0.2 * clamped, ")"),
|
|
2522
|
+
zIndex: screensCount - index
|
|
2523
|
+
};
|
|
2524
|
+
};
|
|
2525
|
+
|
|
2526
|
+
var _useFullscreen = hooks.useFullscreen(containerRef.current || null),
|
|
2527
|
+
toggleFullscreen = _useFullscreen.toggle,
|
|
2528
|
+
fullscreenActive = _useFullscreen.active,
|
|
2529
|
+
fullscreenEnabled = _useFullscreen.enabled;
|
|
2273
2530
|
|
|
2274
|
-
var
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
return setMenuOpened(false);
|
|
2284
|
-
}, [setMenuOpened]);
|
|
2285
|
-
var onClickMenu = React.useCallback(function () {
|
|
2286
|
-
onInteractionPrivate();
|
|
2287
|
-
setMenuOpened(true);
|
|
2288
|
-
}, [changeIndex, onInteractionPrivate, setMenuOpened]);
|
|
2289
|
-
var onClickMenuItem = React.useCallback(function (_ref10) {
|
|
2290
|
-
var itemScreenId = _ref10.screenId;
|
|
2531
|
+
var menuVisible = screensCount === 0 || currentScreenInteractionEnabled; // Get element height
|
|
2532
|
+
|
|
2533
|
+
var _useDimensionObserver3 = hooks.useDimensionObserver(),
|
|
2534
|
+
menuDotsContainerRef = _useDimensionObserver3.ref,
|
|
2535
|
+
_useDimensionObserver4 = _useDimensionObserver3.height,
|
|
2536
|
+
menuDotsContainerHeight = _useDimensionObserver4 === void 0 ? 0 : _useDimensionObserver4;
|
|
2537
|
+
|
|
2538
|
+
var onClickScreen = React.useCallback(function (_ref13) {
|
|
2539
|
+
var itemScreenId = _ref13.screenId;
|
|
2291
2540
|
onInteractionPrivate();
|
|
2292
|
-
var index = screens.findIndex(function (
|
|
2293
|
-
var id =
|
|
2541
|
+
var index = screens.findIndex(function (_ref14) {
|
|
2542
|
+
var id = _ref14.id;
|
|
2294
2543
|
return id === itemScreenId;
|
|
2295
2544
|
});
|
|
2296
2545
|
changeIndex(index);
|
|
2297
|
-
|
|
2298
|
-
if (menuOpened) {
|
|
2299
|
-
setMenuOpened(false);
|
|
2300
|
-
}
|
|
2301
|
-
}, [onInteractionPrivate, changeIndex, menuOpened, setMenuOpened]);
|
|
2546
|
+
}, [onInteractionPrivate, changeIndex]);
|
|
2302
2547
|
var onContextMenu = React.useCallback(function (e) {
|
|
2303
2548
|
if (!landscape) {
|
|
2304
2549
|
e.preventDefault();
|
|
@@ -2306,28 +2551,16 @@ var Viewer = function Viewer(_ref) {
|
|
|
2306
2551
|
}
|
|
2307
2552
|
|
|
2308
2553
|
return true;
|
|
2309
|
-
}, [landscape]);
|
|
2554
|
+
}, [landscape]); // hmm?
|
|
2555
|
+
|
|
2310
2556
|
var overscrollStyle = /*#__PURE__*/React__default["default"].createElement("style", {
|
|
2311
2557
|
type: "text/css"
|
|
2312
|
-
}, "body { overscroll-behavior: contain; }");
|
|
2313
|
-
|
|
2314
|
-
var _useFullscreen = hooks.useFullscreen(containerRef.current || null),
|
|
2315
|
-
toggleFullscreen = _useFullscreen.toggle,
|
|
2316
|
-
fullscreenActive = _useFullscreen.active,
|
|
2317
|
-
fullscreenEnabled = _useFullscreen.enabled; // Keyboard Events
|
|
2318
|
-
|
|
2319
|
-
|
|
2558
|
+
}, "body { overscroll-behavior: contain; }");
|
|
2320
2559
|
var keyboardShortcuts = React.useMemo(function () {
|
|
2321
2560
|
return {
|
|
2322
2561
|
f: function f() {
|
|
2323
2562
|
return toggleFullscreen();
|
|
2324
2563
|
},
|
|
2325
|
-
m: function m() {
|
|
2326
|
-
return setMenuOpened(!menuOpened);
|
|
2327
|
-
},
|
|
2328
|
-
escape: function escape() {
|
|
2329
|
-
return setMenuOpened(false);
|
|
2330
|
-
},
|
|
2331
2564
|
arrowleft: function arrowleft() {
|
|
2332
2565
|
return gotoPreviousScreen();
|
|
2333
2566
|
},
|
|
@@ -2338,55 +2571,10 @@ var Viewer = function Viewer(_ref) {
|
|
|
2338
2571
|
return gotoNextScreen();
|
|
2339
2572
|
}
|
|
2340
2573
|
};
|
|
2341
|
-
}, [
|
|
2574
|
+
}, [gotoPreviousScreen, gotoNextScreen]);
|
|
2342
2575
|
useKeyboardShortcuts(keyboardShortcuts, {
|
|
2343
2576
|
disabled: renderContext !== 'view'
|
|
2344
2577
|
});
|
|
2345
|
-
|
|
2346
|
-
var _ref12 = currentScreen || {},
|
|
2347
|
-
screenParameters = _ref12.parameters;
|
|
2348
|
-
|
|
2349
|
-
var _ref13 = screenParameters || {},
|
|
2350
|
-
screenMetadata = _ref13.metadata;
|
|
2351
|
-
|
|
2352
|
-
var _ref14 = screenMetadata || {},
|
|
2353
|
-
_ref14$title = _ref14.title,
|
|
2354
|
-
screenTitle = _ref14$title === void 0 ? null : _ref14$title,
|
|
2355
|
-
_ref14$description = _ref14.description,
|
|
2356
|
-
screenDescription = _ref14$description === void 0 ? null : _ref14$description;
|
|
2357
|
-
|
|
2358
|
-
var finalTitle = screenTitle !== null ? screenTitle : title;
|
|
2359
|
-
var finalMetadata = React.useMemo(function () {
|
|
2360
|
-
return screenDescription !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, metadata), {}, {
|
|
2361
|
-
description: screenDescription
|
|
2362
|
-
}) : metadata;
|
|
2363
|
-
}, [metadata, screenDescription]); // Get element height
|
|
2364
|
-
|
|
2365
|
-
var _useDimensionObserver = hooks.useDimensionObserver(),
|
|
2366
|
-
menuDotsContainerRef = _useDimensionObserver.ref,
|
|
2367
|
-
_useDimensionObserver2 = _useDimensionObserver.height,
|
|
2368
|
-
menuDotsContainerHeight = _useDimensionObserver2 === void 0 ? 0 : _useDimensionObserver2;
|
|
2369
|
-
|
|
2370
|
-
var _useDimensionObserver3 = hooks.useDimensionObserver(),
|
|
2371
|
-
playbackControlsContainerRef = _useDimensionObserver3.ref,
|
|
2372
|
-
_useDimensionObserver4 = _useDimensionObserver3.height,
|
|
2373
|
-
playbackControlsContainerHeight = _useDimensionObserver4 === void 0 ? 0 : _useDimensionObserver4;
|
|
2374
|
-
|
|
2375
|
-
var _useMemo = React.useMemo(function () {
|
|
2376
|
-
return neighborScreensMounted !== null ? {
|
|
2377
|
-
startIndex: Math.max(screenIndex - (neighborScreensActive + neighborScreensMounted), 0),
|
|
2378
|
-
endIndex: Math.min(screenIndex + (neighborScreensActive + neighborScreensMounted), screensCount)
|
|
2379
|
-
} : {
|
|
2380
|
-
startIndex: 0,
|
|
2381
|
-
endIndex: screensCount - 1
|
|
2382
|
-
};
|
|
2383
|
-
}, [screenIndex, neighborScreensActive, neighborScreensMounted, screensCount]),
|
|
2384
|
-
mountedScreenStartIndex = _useMemo.startIndex,
|
|
2385
|
-
mountedScreenEndIndex = _useMemo.endIndex;
|
|
2386
|
-
|
|
2387
|
-
var mountedScreens = React.useMemo(function () {
|
|
2388
|
-
return neighborScreensMounted != null ? screens.slice(mountedScreenStartIndex, mountedScreenEndIndex) : screens;
|
|
2389
|
-
}, [screens, mountedScreenStartIndex, mountedScreenEndIndex, neighborScreensActive, neighborScreensMounted]);
|
|
2390
2578
|
return /*#__PURE__*/React__default["default"].createElement(contexts.VisitorProvider, {
|
|
2391
2579
|
visitor: visitor
|
|
2392
2580
|
}, /*#__PURE__*/React__default["default"].createElement(contexts.ScreenSizeProvider, {
|
|
@@ -2411,13 +2599,12 @@ var Viewer = function Viewer(_ref) {
|
|
|
2411
2599
|
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
2412
2600
|
className: classNames__default["default"]([styles$6.container, screenSize.screens.map(function (screenName) {
|
|
2413
2601
|
return "story-screen-".concat(screenName);
|
|
2414
|
-
}), (_ref15 = {}, _defineProperty__default["default"](_ref15, styles$6.landscape, landscape), _defineProperty__default["default"](_ref15, styles$6.
|
|
2602
|
+
}), (_ref15 = {}, _defineProperty__default["default"](_ref15, styles$6.landscape, landscape), _defineProperty__default["default"](_ref15, styles$6.withoutGestures, withoutGestures), _defineProperty__default["default"](_ref15, styles$6.hideMenu, !menuVisible), _defineProperty__default["default"](_ref15, styles$6.fadeMenu, playing && playbackControls && !playbackcontrolsVisible), _defineProperty__default["default"](_ref15, styles$6.ready, ready || withoutScreensTransforms), _defineProperty__default["default"](_ref15, styles$6.hasInteracted, hasInteracted), _defineProperty__default["default"](_ref15, styles$6.isDragging, isDragging), _defineProperty__default["default"](_ref15, className, className), _ref15)]),
|
|
2415
2603
|
ref: containerRef,
|
|
2416
2604
|
onContextMenu: onContextMenu
|
|
2417
2605
|
}, !withoutMenu ? /*#__PURE__*/React__default["default"].createElement(ViewerMenu, {
|
|
2418
2606
|
story: parsedStory,
|
|
2419
2607
|
currentScreenIndex: screenIndex,
|
|
2420
|
-
opened: menuOpened,
|
|
2421
2608
|
withShadow: menuOverScreen && !withoutMenuShadow,
|
|
2422
2609
|
toggleFullscreen: toggleFullscreen,
|
|
2423
2610
|
fullscreenActive: fullscreenActive,
|
|
@@ -2427,108 +2614,64 @@ var Viewer = function Viewer(_ref) {
|
|
|
2427
2614
|
screenSize: screenSize,
|
|
2428
2615
|
menuWidth: menuIsScreenWidth ? screenContainerWidth : null,
|
|
2429
2616
|
trackingEnabled: trackingEnabled,
|
|
2430
|
-
|
|
2431
|
-
onClickMenu: onClickMenu,
|
|
2617
|
+
onClickScreen: onClickScreen,
|
|
2432
2618
|
onClickCloseViewer: onCloseViewer,
|
|
2433
|
-
onRequestOpen: onMenuRequestOpen,
|
|
2434
|
-
onRequestClose: onMenuRequestClose,
|
|
2435
2619
|
withDotItemClick: screenContainerWidth > 400,
|
|
2436
2620
|
withoutScreensMenu: withoutScreensMenu,
|
|
2437
2621
|
withoutShareMenu: withoutShareMenu,
|
|
2438
2622
|
refDots: menuDotsContainerRef
|
|
2439
2623
|
}) : null, ready || withoutScreensTransforms ? /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
|
2440
|
-
ref: contentRef,
|
|
2441
2624
|
className: styles$6.content
|
|
2442
|
-
}, dragContentBind()),
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
var distance = (screenContainerWidth + landscapeScreenMargin) * max; // Compensates for scaling
|
|
2453
|
-
|
|
2454
|
-
if (max !== 0) {
|
|
2455
|
-
var halfMargin = screenContainerWidth * (1 - landscapeSmallScreenScale) / 2;
|
|
2456
|
-
distance -= halfMargin * max;
|
|
2457
|
-
|
|
2458
|
-
if (max < -1) {
|
|
2459
|
-
distance -= halfMargin * (max + 1);
|
|
2460
|
-
} else if (max > 1) {
|
|
2461
|
-
distance -= halfMargin * (max - 1);
|
|
2462
|
-
}
|
|
2463
|
-
}
|
|
2464
|
-
|
|
2465
|
-
screenTransform = withLandscapeSiblingsScreens ? "translateX(calc(".concat(distance, "px - 50%)) scale(").concat(current ? 1 : landscapeSmallScreenScale, ")") : null;
|
|
2466
|
-
} else {
|
|
2467
|
-
screenTransform = "translateX(".concat(current ? 0 : '100%', ")");
|
|
2625
|
+
}, dragContentBind()), !withoutNavigationArrow && !withNeighborScreens && screenIndex > 0 && screens.length > 1 ? /*#__PURE__*/React__default["default"].createElement(NavigationButton, {
|
|
2626
|
+
direction: "previous",
|
|
2627
|
+
className: classNames__default["default"]([styles$6.navButton, styles$6.previous]),
|
|
2628
|
+
onClick: gotoPreviousScreen
|
|
2629
|
+
}) : null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
2630
|
+
className: styles$6.screensFrame,
|
|
2631
|
+
style: {
|
|
2632
|
+
width: screenContainerWidth,
|
|
2633
|
+
height: screenContainerHeight,
|
|
2634
|
+
overflow: !withNeighborScreens ? 'hidden' : null
|
|
2468
2635
|
}
|
|
2636
|
+
}, screens.map(function (screen, i) {
|
|
2637
|
+
// const current = i === parseInt(screenIndex, 10);
|
|
2638
|
+
var current = i === Math.round(screenIndexProgress); // base current on transition
|
|
2469
2639
|
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
className: classNames__default["default"]([styles$6.screenContainer,
|
|
2479
|
-
|
|
2480
|
-
tabIndex: !active ? -1 : null,
|
|
2481
|
-
"aria-hidden": !current,
|
|
2482
|
-
"aria-label": intl.formatMessage({
|
|
2483
|
-
id: "LkVfwW",
|
|
2484
|
-
defaultMessage: [{
|
|
2485
|
-
"type": 0,
|
|
2486
|
-
"value": "Screen "
|
|
2487
|
-
}, {
|
|
2488
|
-
"type": 1,
|
|
2489
|
-
"value": "index"
|
|
2490
|
-
}]
|
|
2491
|
-
}, {
|
|
2492
|
-
index: i + 1
|
|
2493
|
-
}),
|
|
2494
|
-
onKeyUp: function onKeyUp(e) {
|
|
2495
|
-
return onScreenKeyUp(e, i);
|
|
2496
|
-
}
|
|
2497
|
-
}, dragScreenBind(i)), current && screenIndex > 0 ? /*#__PURE__*/React__default["default"].createElement(NavigationButton, {
|
|
2498
|
-
direction: "previous",
|
|
2499
|
-
className: classNames__default["default"]([styles$6.navButton, styles$6.previous]),
|
|
2500
|
-
onClick: gotoPreviousScreen
|
|
2501
|
-
}) : null, mountedScreen !== null ? /*#__PURE__*/React__default["default"].createElement(ViewerScreen, {
|
|
2640
|
+
var active = i >= screenIndex - neighborScreensActive && i <= screenIndex + neighborScreensActive;
|
|
2641
|
+
var defaultStyles = {
|
|
2642
|
+
opacity: current ? 1 : 0
|
|
2643
|
+
};
|
|
2644
|
+
var screenStyles = active ? getScreenStylesByIndex(i, screenIndexProgress) : defaultStyles;
|
|
2645
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
2646
|
+
key: "screen-viewer-".concat(screen.id || '', "-").concat(i + 1),
|
|
2647
|
+
style: screenStyles,
|
|
2648
|
+
className: classNames__default["default"]([styles$6.screenContainer, _defineProperty__default["default"]({}, styles$6.current, current)])
|
|
2649
|
+
}, screen !== null && active ? /*#__PURE__*/React__default["default"].createElement(ViewerScreen, {
|
|
2502
2650
|
className: styles$6.screen,
|
|
2503
|
-
screen:
|
|
2651
|
+
screen: screen,
|
|
2504
2652
|
screenState: current ? screenState : null,
|
|
2505
|
-
renderContext: renderContext,
|
|
2506
2653
|
index: i,
|
|
2507
2654
|
current: current,
|
|
2508
2655
|
active: active,
|
|
2509
2656
|
mediaRef: function mediaRef(ref) {
|
|
2510
2657
|
screensMediasRef.current[i] = ref;
|
|
2511
2658
|
},
|
|
2659
|
+
renderContext: renderContext,
|
|
2512
2660
|
width: screenWidth,
|
|
2513
2661
|
height: screenHeight,
|
|
2514
2662
|
scale: screenScale,
|
|
2515
|
-
withNavigationHint: withNavigationHint && !
|
|
2516
|
-
}) : null
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
}), !withoutPlaybackControls ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
2663
|
+
withNavigationHint: withNavigationHint && !withNeighborScreens && current && screenIndex === 0 && !hasInteracted
|
|
2664
|
+
}) : null);
|
|
2665
|
+
})), !withoutNavigationArrow && !withNeighborScreens && screenIndex < screens.length - 1 ? /*#__PURE__*/React__default["default"].createElement(NavigationButton, {
|
|
2666
|
+
direction: "next",
|
|
2667
|
+
className: classNames__default["default"]([styles$6.navButton, styles$6.next]),
|
|
2668
|
+
onClick: gotoNextScreen
|
|
2669
|
+
}) : null, !withoutPlaybackControls ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
2522
2670
|
className: styles$6.playbackControls,
|
|
2523
2671
|
ref: playbackControlsContainerRef
|
|
2524
|
-
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
2525
|
-
className: styles$6.playbackControlsContainer,
|
|
2526
|
-
style: {
|
|
2527
|
-
width: screenContainerWidth
|
|
2528
|
-
}
|
|
2529
2672
|
}, /*#__PURE__*/React__default["default"].createElement(PlaybackControls, {
|
|
2530
2673
|
className: styles$6.controls
|
|
2531
|
-
}))
|
|
2674
|
+
})) : null) : null, /*#__PURE__*/React__default["default"].createElement(WebViewContainer, {
|
|
2532
2675
|
className: styles$6.webView,
|
|
2533
2676
|
style: {
|
|
2534
2677
|
maxWidth: Math.max(screenContainerWidth, 600)
|
|
@@ -2541,7 +2684,7 @@ Viewer.defaultProps = defaultProps$2;
|
|
|
2541
2684
|
|
|
2542
2685
|
var _excluded$1 = ["story", "pathWithIndex", "children", "onScreenChange"];
|
|
2543
2686
|
var propTypes$1 = {
|
|
2544
|
-
story: core
|
|
2687
|
+
story: core.PropTypes.story,
|
|
2545
2688
|
// .isRequired,
|
|
2546
2689
|
pathWithIndex: PropTypes__default["default"].bool,
|
|
2547
2690
|
children: PropTypes__default["default"].func,
|
|
@@ -2618,7 +2761,7 @@ var defaultRoutes = {
|
|
|
2618
2761
|
|
|
2619
2762
|
var _excluded = ["story", "screenComponents", "memoryRouter", "basePath", "routes", "withoutRouter", "googleApiKey", "trackingVariables", "locale", "locales", "translations", "pathWithIndex"];
|
|
2620
2763
|
var propTypes = {
|
|
2621
|
-
story: core
|
|
2764
|
+
story: core.PropTypes.story,
|
|
2622
2765
|
screen: PropTypes__default["default"].string,
|
|
2623
2766
|
screenComponents: PropTypes__default["default"].objectOf(PropTypes__default["default"].elementType),
|
|
2624
2767
|
memoryRouter: PropTypes__default["default"].bool,
|
|
@@ -2626,7 +2769,7 @@ var propTypes = {
|
|
|
2626
2769
|
routes: routes,
|
|
2627
2770
|
withoutRouter: PropTypes__default["default"].bool,
|
|
2628
2771
|
googleApiKey: PropTypes__default["default"].string,
|
|
2629
|
-
trackingVariables: core
|
|
2772
|
+
trackingVariables: core.PropTypes.trackingVariables,
|
|
2630
2773
|
locale: PropTypes__default["default"].string,
|
|
2631
2774
|
locales: PropTypes__default["default"].arrayOf(PropTypes__default["default"].string),
|
|
2632
2775
|
translations: PropTypes__default["default"].objectOf(PropTypes__default["default"].string),
|