@micromag/screen-image-360 0.3.348 → 0.3.354

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.
@@ -1 +1 @@
1
- .micromag-screen-image-360-container .micromag-screen-image-360-canvasButton{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-block;font-family:inherit;padding:0;position:relative}.micromag-screen-image-360-container .micromag-screen-image-360-background,.micromag-screen-image-360-container .micromag-screen-image-360-canvas,.micromag-screen-image-360-container .micromag-screen-image-360-canvasButton,.micromag-screen-image-360-container .micromag-screen-image-360-inner,.micromag-screen-image-360-container .micromag-screen-image-360-placeholder,.micromag-screen-image-360-container .micromag-screen-image-360-video{height:100%;left:0;position:absolute;top:0;width:100%}.micromag-screen-image-360-container{height:100%;overflow:hidden;position:relative;width:100%}.micromag-screen-image-360-disabled.micromag-screen-image-360-container{overflow:hidden;pointer-events:none}.micromag-screen-image-360-hidden.micromag-screen-image-360-container{display:none;visibility:hidden}.micromag-screen-image-360-placeholder.micromag-screen-image-360-container .micromag-screen-image-360-content{padding:6px;position:relative}.micromag-screen-image-360-container .micromag-screen-image-360-empty{border:2px dashed #343434;color:#343434;margin:5px auto}.micromag-screen-image-360-container .micromag-screen-image-360-background{z-index:0}.micromag-screen-image-360-container .micromag-screen-image-360-content{z-index:1}.micromag-screen-image-360-container .micromag-screen-image-360-empty{height:100%;margin:0}.micromag-screen-image-360-container .micromag-screen-image-360-canvasButton{-ms-touch-action:none;touch-action:none}.micromag-screen-image-360-container .micromag-screen-image-360-videoContainer{position:absolute}.micromag-screen-image-360-container .micromag-screen-image-360-video{visibility:hidden}.micromag-screen-image-360-container .micromag-screen-image-360-video video{height:100%}.micromag-screen-image-360-container .micromag-screen-image-360-mediaControls{padding:10px 20px 20px}.micromag-screen-image-360-container .micromag-screen-image-360-placeholder{-ms-flex-pack:center;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100%;justify-content:center}.micromag-screen-image-360-container .micromag-screen-image-360-callToAction{bottom:0;left:0;position:absolute;width:100%}.micromag-screen-image-360-container.micromag-screen-image-360-showVideo .micromag-screen-image-360-video{visibility:visible}
1
+ .micromag-screen-image-360-container .micromag-screen-image-360-canvasButton{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-block;font-family:inherit;padding:0;position:relative}.micromag-screen-image-360-container .micromag-screen-image-360-background,.micromag-screen-image-360-container .micromag-screen-image-360-canvas,.micromag-screen-image-360-container .micromag-screen-image-360-canvasButton,.micromag-screen-image-360-container .micromag-screen-image-360-inner,.micromag-screen-image-360-container .micromag-screen-image-360-placeholder,.micromag-screen-image-360-container .micromag-screen-image-360-video{height:100%;left:0;position:absolute;top:0;width:100%}.micromag-screen-image-360-container{height:100%;overflow:hidden;position:relative;width:100%}.micromag-screen-image-360-disabled.micromag-screen-image-360-container{overflow:hidden;pointer-events:none}.micromag-screen-image-360-hidden.micromag-screen-image-360-container{display:none;visibility:hidden}.micromag-screen-image-360-placeholder.micromag-screen-image-360-container .micromag-screen-image-360-content{padding:6px;position:relative}.micromag-screen-image-360-container .micromag-screen-image-360-empty{border:2px dashed #343434;color:#343434;margin:5px auto}.micromag-screen-image-360-container .micromag-screen-image-360-background{z-index:0}.micromag-screen-image-360-container .micromag-screen-image-360-content{z-index:1}.micromag-screen-image-360-container .micromag-screen-image-360-empty{height:100%;margin:0}.micromag-screen-image-360-container .micromag-screen-image-360-canvasButton{-ms-touch-action:none;touch-action:none}.micromag-screen-image-360-container .micromag-screen-image-360-videoContainer{position:absolute}.micromag-screen-image-360-container .micromag-screen-image-360-video{visibility:hidden}.micromag-screen-image-360-container .micromag-screen-image-360-video video{height:100%}.micromag-screen-image-360-container .micromag-screen-image-360-mediaControls{padding:10px 20px 20px}.micromag-screen-image-360-container .micromag-screen-image-360-placeholder{-ms-flex-pack:center;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100%;justify-content:center}.micromag-screen-image-360-container .micromag-screen-image-360-header{left:0;position:absolute;top:0;width:100%;z-index:1}.micromag-screen-image-360-container .micromag-screen-image-360-callToAction{bottom:0;left:0;position:absolute;width:100%;z-index:1}.micromag-screen-image-360-container.micromag-screen-image-360-showVideo .micromag-screen-image-360-video{visibility:visible}
package/es/index.js CHANGED
@@ -10,9 +10,11 @@ import { PropTypes as PropTypes$1 } from '@micromag/core';
10
10
  import { ScreenElement, PlaceholderVideo360, Transitions } from '@micromag/core/components';
11
11
  import { useScreenRenderContext, useScreenSize, useViewerNavigation, useViewerWebView, useViewerContext, usePlaybackContext, usePlaybackMediaRef } from '@micromag/core/contexts';
12
12
  import { useTrackScreenEvent, useAnimationFrame } from '@micromag/core/hooks';
13
+ import { isHeaderFilled, isFooterFilled, getFooterProps } from '@micromag/core/utils';
13
14
  import Background from '@micromag/element-background';
14
- import CallToAction from '@micromag/element-call-to-action';
15
15
  import Container from '@micromag/element-container';
16
+ import Footer from '@micromag/element-footer';
17
+ import Header from '@micromag/element-header';
16
18
  import Image from '@micromag/element-image';
17
19
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
18
20
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
@@ -71,13 +73,14 @@ var useThree = function useThree() {
71
73
  return loadedPackage;
72
74
  };
73
75
 
74
- var styles = {"container":"micromag-screen-image-360-container","canvasButton":"micromag-screen-image-360-canvasButton","placeholder":"micromag-screen-image-360-placeholder","inner":"micromag-screen-image-360-inner","canvas":"micromag-screen-image-360-canvas","video":"micromag-screen-image-360-video","background":"micromag-screen-image-360-background","disabled":"micromag-screen-image-360-disabled","hidden":"micromag-screen-image-360-hidden","content":"micromag-screen-image-360-content","empty":"micromag-screen-image-360-empty","videoContainer":"micromag-screen-image-360-videoContainer","mediaControls":"micromag-screen-image-360-mediaControls","callToAction":"micromag-screen-image-360-callToAction","showVideo":"micromag-screen-image-360-showVideo"};
76
+ var styles = {"container":"micromag-screen-image-360-container","canvasButton":"micromag-screen-image-360-canvasButton","placeholder":"micromag-screen-image-360-placeholder","inner":"micromag-screen-image-360-inner","canvas":"micromag-screen-image-360-canvas","video":"micromag-screen-image-360-video","background":"micromag-screen-image-360-background","disabled":"micromag-screen-image-360-disabled","hidden":"micromag-screen-image-360-hidden","content":"micromag-screen-image-360-content","empty":"micromag-screen-image-360-empty","videoContainer":"micromag-screen-image-360-videoContainer","mediaControls":"micromag-screen-image-360-mediaControls","header":"micromag-screen-image-360-header","callToAction":"micromag-screen-image-360-callToAction","showVideo":"micromag-screen-image-360-showVideo"};
75
77
 
76
78
  var propTypes = {
77
79
  layout: PropTypes.oneOf(['full']),
78
80
  image: PropTypes$1.imageMedia,
79
81
  background: PropTypes$1.backgroundElement,
80
- callToAction: PropTypes$1.callToAction,
82
+ header: PropTypes$1.header,
83
+ footer: PropTypes$1.footer,
81
84
  current: PropTypes.bool,
82
85
  active: PropTypes.bool,
83
86
  transitions: PropTypes$1.transitions,
@@ -89,7 +92,8 @@ var defaultProps = {
89
92
  layout: 'full',
90
93
  image: null,
91
94
  background: null,
92
- callToAction: null,
95
+ header: null,
96
+ footer: null,
93
97
  current: true,
94
98
  active: true,
95
99
  transitions: null,
@@ -98,11 +102,12 @@ var defaultProps = {
98
102
  className: null
99
103
  };
100
104
  var Image360Screen = function Image360Screen(_ref) {
101
- var _ref7;
105
+ var _ref6;
102
106
  _ref.layout;
103
107
  var image = _ref.image,
104
108
  background = _ref.background,
105
- callToAction = _ref.callToAction,
109
+ header = _ref.header,
110
+ footer = _ref.footer,
106
111
  current = _ref.current,
107
112
  active = _ref.active,
108
113
  transitions = _ref.transitions,
@@ -141,28 +146,33 @@ var Image360Screen = function Image360Screen(_ref) {
141
146
  // ------------------------------------
142
147
 
143
148
  var hasMedia = image !== null;
144
- var _ref2 = callToAction || {},
145
- _ref2$active = _ref2.active,
146
- hasCallToAction = _ref2$active === void 0 ? false : _ref2$active;
149
+ var hasHeader = isHeaderFilled(header);
150
+ var hasFooter = isFooterFilled(footer);
151
+ var footerProps = getFooterProps(footer, {
152
+ isView: isView,
153
+ current: current,
154
+ openWebView: openWebView,
155
+ isPreview: isPreview
156
+ });
147
157
  var _useState = useState(!hasMedia),
148
158
  _useState2 = _slicedToArray(_useState, 2),
149
159
  ready = _useState2[0],
150
160
  setReady = _useState2[1];
151
161
  var transitionPlaying = current && ready;
152
162
  var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;
153
- var _ref3 = image || {},
154
- _ref3$metadata = _ref3.metadata,
155
- imageMetadata = _ref3$metadata === void 0 ? null : _ref3$metadata,
156
- _ref3$url = _ref3.url,
157
- imageUrl = _ref3$url === void 0 ? null : _ref3$url,
158
- _ref3$thumbnail_url = _ref3.thumbnail_url,
159
- thumbnailUrl = _ref3$thumbnail_url === void 0 ? null : _ref3$thumbnail_url;
163
+ var _ref2 = image || {},
164
+ _ref2$metadata = _ref2.metadata,
165
+ imageMetadata = _ref2$metadata === void 0 ? null : _ref2$metadata,
166
+ _ref2$url = _ref2.url,
167
+ imageUrl = _ref2$url === void 0 ? null : _ref2$url,
168
+ _ref2$thumbnail_url = _ref2.thumbnail_url,
169
+ thumbnailUrl = _ref2$thumbnail_url === void 0 ? null : _ref2$thumbnail_url;
160
170
  var hasMediaUrl = imageUrl !== null;
161
- var _ref4 = imageMetadata || {},
162
- _ref4$width = _ref4.width,
163
- imageWidth = _ref4$width === void 0 ? 0 : _ref4$width,
164
- _ref4$height = _ref4.height,
165
- imageHeight = _ref4$height === void 0 ? 0 : _ref4$height;
171
+ var _ref3 = imageMetadata || {},
172
+ _ref3$width = _ref3.width,
173
+ imageWidth = _ref3$width === void 0 ? 0 : _ref3$width,
174
+ _ref3$height = _ref3.height,
175
+ imageHeight = _ref3$height === void 0 ? 0 : _ref3$height;
166
176
  var hasThumbnail = thumbnailUrl !== null;
167
177
  var _useState3 = useState(!hasThumbnail),
168
178
  _useState4 = _slicedToArray(_useState3, 2),
@@ -296,20 +306,20 @@ var Image360Screen = function Image360Screen(_ref) {
296
306
  var pixelsMovedTracked = useRef(false);
297
307
  var onPointerMove = useCallback(function (e) {
298
308
  if (pointerDown.current) {
299
- var _ref5 = e || {},
300
- _ref5$clientX = _ref5.clientX,
301
- clientX = _ref5$clientX === void 0 ? null : _ref5$clientX,
302
- _ref5$clientY = _ref5.clientY,
303
- clientY = _ref5$clientY === void 0 ? null : _ref5$clientY;
309
+ var _ref4 = e || {},
310
+ _ref4$clientX = _ref4.clientX,
311
+ clientX = _ref4$clientX === void 0 ? null : _ref4$clientX,
312
+ _ref4$clientY = _ref4.clientY,
313
+ clientY = _ref4$clientY === void 0 ? null : _ref4$clientY;
304
314
  var downDeltaX = pointerDownX.current - clientX;
305
315
  var downDeltaY = pointerDownY.current - clientY;
306
316
  lon.current = downDeltaX * 0.2 + pointerLon.current;
307
317
  lat.current = downDeltaY * 0.2 + pointerLat.current;
308
- var _ref6 = lastPointerClient.current || {},
309
- _ref6$x = _ref6.x,
310
- lastX = _ref6$x === void 0 ? clientX : _ref6$x,
311
- _ref6$y = _ref6.y,
312
- lastY = _ref6$y === void 0 ? clientY : _ref6$y;
318
+ var _ref5 = lastPointerClient.current || {},
319
+ _ref5$x = _ref5.x,
320
+ lastX = _ref5$x === void 0 ? clientX : _ref5$x,
321
+ _ref5$y = _ref5.y,
322
+ lastY = _ref5$y === void 0 ? clientY : _ref5$y;
313
323
  var deltaX = Math.abs(lastX - clientX) || 0;
314
324
  var deltaY = Math.abs(lastY - clientY) || 0;
315
325
  pixelsMoved.current += deltaX + deltaY;
@@ -359,10 +369,33 @@ var Image360Screen = function Image360Screen(_ref) {
359
369
  }
360
370
  pointerDown.current = false;
361
371
  }, [gotoPreviousScreen, gotoNextScreen, landscape]);
362
-
363
- // Building elements ------------------
364
-
365
- var items = [/*#__PURE__*/React.createElement(ScreenElement, {
372
+ return /*#__PURE__*/React.createElement("div", {
373
+ className: classNames([styles.container, (_ref6 = {}, _defineProperty(_ref6, className, className !== null), _defineProperty(_ref6, styles.showVideo, isPreview || isStatic || isCapture), _ref6)]),
374
+ "data-screen-ready": (isStatic || isCapture) && posterReady || ready
375
+ }, /*#__PURE__*/React.createElement(Container, {
376
+ width: width,
377
+ height: height,
378
+ className: styles.content
379
+ }, /*#__PURE__*/React.createElement("div", {
380
+ ref: canvasContainerRef,
381
+ className: styles.videoContainer,
382
+ style: {
383
+ width: resizedImageWidth,
384
+ height: resizedImageHeight,
385
+ left: resizedImageLeft,
386
+ top: resizedImageTop
387
+ }
388
+ }), /*#__PURE__*/React.createElement("div", {
389
+ className: styles.inner
390
+ }, !isPlaceholder && hasHeader ? /*#__PURE__*/React.createElement("div", {
391
+ key: "header",
392
+ className: styles.header,
393
+ style: {
394
+ paddingTop: spacing,
395
+ paddingLeft: spacing,
396
+ paddingRight: spacing
397
+ }
398
+ }, /*#__PURE__*/React.createElement(Header, header)) : null, /*#__PURE__*/React.createElement(ScreenElement, {
366
399
  key: "video",
367
400
  placeholder: /*#__PURE__*/React.createElement(PlaceholderVideo360, {
368
401
  className: styles.placeholder,
@@ -415,7 +448,7 @@ var Image360Screen = function Image360Screen(_ref) {
415
448
  height: resizedImageHeight,
416
449
  resolution: resolution,
417
450
  shouldLoad: mediaShouldLoad
418
- })))), !isPlaceholder && hasCallToAction ? /*#__PURE__*/React.createElement("div", {
451
+ })))), !isPlaceholder && hasFooter ? /*#__PURE__*/React.createElement("div", {
419
452
  key: "callToAction",
420
453
  className: styles.callToAction,
421
454
  style: {
@@ -425,30 +458,7 @@ var Image360Screen = function Image360Screen(_ref) {
425
458
  paddingBottom: spacing / 2,
426
459
  paddingTop: 0
427
460
  }
428
- }, /*#__PURE__*/React.createElement(CallToAction, Object.assign({}, callToAction, {
429
- animationDisabled: isPreview,
430
- focusable: current && isView,
431
- openWebView: openWebView
432
- }))) : null];
433
- return /*#__PURE__*/React.createElement("div", {
434
- className: classNames([styles.container, (_ref7 = {}, _defineProperty(_ref7, className, className !== null), _defineProperty(_ref7, styles.showVideo, isPreview || isStatic || isCapture), _ref7)]),
435
- "data-screen-ready": (isStatic || isCapture) && posterReady || ready
436
- }, /*#__PURE__*/React.createElement(Container, {
437
- width: width,
438
- height: height,
439
- className: styles.content
440
- }, /*#__PURE__*/React.createElement("div", {
441
- ref: canvasContainerRef,
442
- className: styles.videoContainer,
443
- style: {
444
- width: resizedImageWidth,
445
- height: resizedImageHeight,
446
- left: resizedImageLeft,
447
- top: resizedImageTop
448
- }
449
- }), /*#__PURE__*/React.createElement("div", {
450
- className: styles.inner
451
- }, items)), !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {
461
+ }, /*#__PURE__*/React.createElement(Footer, footerProps)) : null)), !isPlaceholder ? /*#__PURE__*/React.createElement(Background, {
452
462
  background: background,
453
463
  width: width,
454
464
  height: height,
@@ -538,17 +548,25 @@ var definition = {
538
548
  }]
539
549
  })
540
550
  }, {
541
- name: 'callToAction',
542
- type: 'call-to-action',
543
- theme: {
544
- boxStyle: 'cta',
545
- label: {
546
- textStyle: 'cta'
547
- }
548
- }
551
+ name: 'header',
552
+ type: 'header',
553
+ label: defineMessage({
554
+ id: "rhuDxI",
555
+ defaultMessage: [{
556
+ "type": 0,
557
+ "value": "Header"
558
+ }]
559
+ })
549
560
  }, {
550
- name: 'shareIncentive',
551
- type: 'share-incentive'
561
+ name: 'footer',
562
+ type: 'footer',
563
+ label: defineMessage({
564
+ id: "g4nybp",
565
+ defaultMessage: [{
566
+ "type": 0,
567
+ "value": "Footer"
568
+ }]
569
+ })
552
570
  }]
553
571
  };
554
572
 
package/lib/index.js CHANGED
@@ -14,9 +14,11 @@ var core = require('@micromag/core');
14
14
  var components = require('@micromag/core/components');
15
15
  var contexts = require('@micromag/core/contexts');
16
16
  var hooks = require('@micromag/core/hooks');
17
+ var utils = require('@micromag/core/utils');
17
18
  var Background = require('@micromag/element-background');
18
- var CallToAction = require('@micromag/element-call-to-action');
19
19
  var Container = require('@micromag/element-container');
20
+ var Footer = require('@micromag/element-footer');
21
+ var Header = require('@micromag/element-header');
20
22
  var Image = require('@micromag/element-image');
21
23
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
22
24
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
@@ -48,8 +50,9 @@ var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
48
50
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
49
51
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
50
52
  var Background__default = /*#__PURE__*/_interopDefaultLegacy(Background);
51
- var CallToAction__default = /*#__PURE__*/_interopDefaultLegacy(CallToAction);
52
53
  var Container__default = /*#__PURE__*/_interopDefaultLegacy(Container);
54
+ var Footer__default = /*#__PURE__*/_interopDefaultLegacy(Footer);
55
+ var Header__default = /*#__PURE__*/_interopDefaultLegacy(Header);
53
56
  var Image__default = /*#__PURE__*/_interopDefaultLegacy(Image);
54
57
  var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
55
58
  var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
@@ -107,13 +110,14 @@ var useThree = function useThree() {
107
110
  return loadedPackage;
108
111
  };
109
112
 
110
- var styles = {"container":"micromag-screen-image-360-container","canvasButton":"micromag-screen-image-360-canvasButton","placeholder":"micromag-screen-image-360-placeholder","inner":"micromag-screen-image-360-inner","canvas":"micromag-screen-image-360-canvas","video":"micromag-screen-image-360-video","background":"micromag-screen-image-360-background","disabled":"micromag-screen-image-360-disabled","hidden":"micromag-screen-image-360-hidden","content":"micromag-screen-image-360-content","empty":"micromag-screen-image-360-empty","videoContainer":"micromag-screen-image-360-videoContainer","mediaControls":"micromag-screen-image-360-mediaControls","callToAction":"micromag-screen-image-360-callToAction","showVideo":"micromag-screen-image-360-showVideo"};
113
+ var styles = {"container":"micromag-screen-image-360-container","canvasButton":"micromag-screen-image-360-canvasButton","placeholder":"micromag-screen-image-360-placeholder","inner":"micromag-screen-image-360-inner","canvas":"micromag-screen-image-360-canvas","video":"micromag-screen-image-360-video","background":"micromag-screen-image-360-background","disabled":"micromag-screen-image-360-disabled","hidden":"micromag-screen-image-360-hidden","content":"micromag-screen-image-360-content","empty":"micromag-screen-image-360-empty","videoContainer":"micromag-screen-image-360-videoContainer","mediaControls":"micromag-screen-image-360-mediaControls","header":"micromag-screen-image-360-header","callToAction":"micromag-screen-image-360-callToAction","showVideo":"micromag-screen-image-360-showVideo"};
111
114
 
112
115
  var propTypes = {
113
116
  layout: PropTypes__default["default"].oneOf(['full']),
114
117
  image: core.PropTypes.imageMedia,
115
118
  background: core.PropTypes.backgroundElement,
116
- callToAction: core.PropTypes.callToAction,
119
+ header: core.PropTypes.header,
120
+ footer: core.PropTypes.footer,
117
121
  current: PropTypes__default["default"].bool,
118
122
  active: PropTypes__default["default"].bool,
119
123
  transitions: core.PropTypes.transitions,
@@ -125,7 +129,8 @@ var defaultProps = {
125
129
  layout: 'full',
126
130
  image: null,
127
131
  background: null,
128
- callToAction: null,
132
+ header: null,
133
+ footer: null,
129
134
  current: true,
130
135
  active: true,
131
136
  transitions: null,
@@ -134,11 +139,12 @@ var defaultProps = {
134
139
  className: null
135
140
  };
136
141
  var Image360Screen = function Image360Screen(_ref) {
137
- var _ref7;
142
+ var _ref6;
138
143
  _ref.layout;
139
144
  var image = _ref.image,
140
145
  background = _ref.background,
141
- callToAction = _ref.callToAction,
146
+ header = _ref.header,
147
+ footer = _ref.footer,
142
148
  current = _ref.current,
143
149
  active = _ref.active,
144
150
  transitions = _ref.transitions,
@@ -177,28 +183,33 @@ var Image360Screen = function Image360Screen(_ref) {
177
183
  // ------------------------------------
178
184
 
179
185
  var hasMedia = image !== null;
180
- var _ref2 = callToAction || {},
181
- _ref2$active = _ref2.active,
182
- hasCallToAction = _ref2$active === void 0 ? false : _ref2$active;
186
+ var hasHeader = utils.isHeaderFilled(header);
187
+ var hasFooter = utils.isFooterFilled(footer);
188
+ var footerProps = utils.getFooterProps(footer, {
189
+ isView: isView,
190
+ current: current,
191
+ openWebView: openWebView,
192
+ isPreview: isPreview
193
+ });
183
194
  var _useState = React.useState(!hasMedia),
184
195
  _useState2 = _slicedToArray__default["default"](_useState, 2),
185
196
  ready = _useState2[0],
186
197
  setReady = _useState2[1];
187
198
  var transitionPlaying = current && ready;
188
199
  var transitionDisabled = isStatic || isCapture || isPlaceholder || isPreview || isEdit;
189
- var _ref3 = image || {},
190
- _ref3$metadata = _ref3.metadata,
191
- imageMetadata = _ref3$metadata === void 0 ? null : _ref3$metadata,
192
- _ref3$url = _ref3.url,
193
- imageUrl = _ref3$url === void 0 ? null : _ref3$url,
194
- _ref3$thumbnail_url = _ref3.thumbnail_url,
195
- thumbnailUrl = _ref3$thumbnail_url === void 0 ? null : _ref3$thumbnail_url;
200
+ var _ref2 = image || {},
201
+ _ref2$metadata = _ref2.metadata,
202
+ imageMetadata = _ref2$metadata === void 0 ? null : _ref2$metadata,
203
+ _ref2$url = _ref2.url,
204
+ imageUrl = _ref2$url === void 0 ? null : _ref2$url,
205
+ _ref2$thumbnail_url = _ref2.thumbnail_url,
206
+ thumbnailUrl = _ref2$thumbnail_url === void 0 ? null : _ref2$thumbnail_url;
196
207
  var hasMediaUrl = imageUrl !== null;
197
- var _ref4 = imageMetadata || {},
198
- _ref4$width = _ref4.width,
199
- imageWidth = _ref4$width === void 0 ? 0 : _ref4$width,
200
- _ref4$height = _ref4.height,
201
- imageHeight = _ref4$height === void 0 ? 0 : _ref4$height;
208
+ var _ref3 = imageMetadata || {},
209
+ _ref3$width = _ref3.width,
210
+ imageWidth = _ref3$width === void 0 ? 0 : _ref3$width,
211
+ _ref3$height = _ref3.height,
212
+ imageHeight = _ref3$height === void 0 ? 0 : _ref3$height;
202
213
  var hasThumbnail = thumbnailUrl !== null;
203
214
  var _useState3 = React.useState(!hasThumbnail),
204
215
  _useState4 = _slicedToArray__default["default"](_useState3, 2),
@@ -332,20 +343,20 @@ var Image360Screen = function Image360Screen(_ref) {
332
343
  var pixelsMovedTracked = React.useRef(false);
333
344
  var onPointerMove = React.useCallback(function (e) {
334
345
  if (pointerDown.current) {
335
- var _ref5 = e || {},
336
- _ref5$clientX = _ref5.clientX,
337
- clientX = _ref5$clientX === void 0 ? null : _ref5$clientX,
338
- _ref5$clientY = _ref5.clientY,
339
- clientY = _ref5$clientY === void 0 ? null : _ref5$clientY;
346
+ var _ref4 = e || {},
347
+ _ref4$clientX = _ref4.clientX,
348
+ clientX = _ref4$clientX === void 0 ? null : _ref4$clientX,
349
+ _ref4$clientY = _ref4.clientY,
350
+ clientY = _ref4$clientY === void 0 ? null : _ref4$clientY;
340
351
  var downDeltaX = pointerDownX.current - clientX;
341
352
  var downDeltaY = pointerDownY.current - clientY;
342
353
  lon.current = downDeltaX * 0.2 + pointerLon.current;
343
354
  lat.current = downDeltaY * 0.2 + pointerLat.current;
344
- var _ref6 = lastPointerClient.current || {},
345
- _ref6$x = _ref6.x,
346
- lastX = _ref6$x === void 0 ? clientX : _ref6$x,
347
- _ref6$y = _ref6.y,
348
- lastY = _ref6$y === void 0 ? clientY : _ref6$y;
355
+ var _ref5 = lastPointerClient.current || {},
356
+ _ref5$x = _ref5.x,
357
+ lastX = _ref5$x === void 0 ? clientX : _ref5$x,
358
+ _ref5$y = _ref5.y,
359
+ lastY = _ref5$y === void 0 ? clientY : _ref5$y;
349
360
  var deltaX = Math.abs(lastX - clientX) || 0;
350
361
  var deltaY = Math.abs(lastY - clientY) || 0;
351
362
  pixelsMoved.current += deltaX + deltaY;
@@ -395,10 +406,33 @@ var Image360Screen = function Image360Screen(_ref) {
395
406
  }
396
407
  pointerDown.current = false;
397
408
  }, [gotoPreviousScreen, gotoNextScreen, landscape]);
398
-
399
- // Building elements ------------------
400
-
401
- var items = [/*#__PURE__*/React__default["default"].createElement(components.ScreenElement, {
409
+ return /*#__PURE__*/React__default["default"].createElement("div", {
410
+ className: classNames__default["default"]([styles.container, (_ref6 = {}, _defineProperty__default["default"](_ref6, className, className !== null), _defineProperty__default["default"](_ref6, styles.showVideo, isPreview || isStatic || isCapture), _ref6)]),
411
+ "data-screen-ready": (isStatic || isCapture) && posterReady || ready
412
+ }, /*#__PURE__*/React__default["default"].createElement(Container__default["default"], {
413
+ width: width,
414
+ height: height,
415
+ className: styles.content
416
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
417
+ ref: canvasContainerRef,
418
+ className: styles.videoContainer,
419
+ style: {
420
+ width: resizedImageWidth,
421
+ height: resizedImageHeight,
422
+ left: resizedImageLeft,
423
+ top: resizedImageTop
424
+ }
425
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
426
+ className: styles.inner
427
+ }, !isPlaceholder && hasHeader ? /*#__PURE__*/React__default["default"].createElement("div", {
428
+ key: "header",
429
+ className: styles.header,
430
+ style: {
431
+ paddingTop: spacing,
432
+ paddingLeft: spacing,
433
+ paddingRight: spacing
434
+ }
435
+ }, /*#__PURE__*/React__default["default"].createElement(Header__default["default"], header)) : null, /*#__PURE__*/React__default["default"].createElement(components.ScreenElement, {
402
436
  key: "video",
403
437
  placeholder: /*#__PURE__*/React__default["default"].createElement(components.PlaceholderVideo360, {
404
438
  className: styles.placeholder,
@@ -451,7 +485,7 @@ var Image360Screen = function Image360Screen(_ref) {
451
485
  height: resizedImageHeight,
452
486
  resolution: resolution,
453
487
  shouldLoad: mediaShouldLoad
454
- })))), !isPlaceholder && hasCallToAction ? /*#__PURE__*/React__default["default"].createElement("div", {
488
+ })))), !isPlaceholder && hasFooter ? /*#__PURE__*/React__default["default"].createElement("div", {
455
489
  key: "callToAction",
456
490
  className: styles.callToAction,
457
491
  style: {
@@ -461,30 +495,7 @@ var Image360Screen = function Image360Screen(_ref) {
461
495
  paddingBottom: spacing / 2,
462
496
  paddingTop: 0
463
497
  }
464
- }, /*#__PURE__*/React__default["default"].createElement(CallToAction__default["default"], Object.assign({}, callToAction, {
465
- animationDisabled: isPreview,
466
- focusable: current && isView,
467
- openWebView: openWebView
468
- }))) : null];
469
- return /*#__PURE__*/React__default["default"].createElement("div", {
470
- className: classNames__default["default"]([styles.container, (_ref7 = {}, _defineProperty__default["default"](_ref7, className, className !== null), _defineProperty__default["default"](_ref7, styles.showVideo, isPreview || isStatic || isCapture), _ref7)]),
471
- "data-screen-ready": (isStatic || isCapture) && posterReady || ready
472
- }, /*#__PURE__*/React__default["default"].createElement(Container__default["default"], {
473
- width: width,
474
- height: height,
475
- className: styles.content
476
- }, /*#__PURE__*/React__default["default"].createElement("div", {
477
- ref: canvasContainerRef,
478
- className: styles.videoContainer,
479
- style: {
480
- width: resizedImageWidth,
481
- height: resizedImageHeight,
482
- left: resizedImageLeft,
483
- top: resizedImageTop
484
- }
485
- }), /*#__PURE__*/React__default["default"].createElement("div", {
486
- className: styles.inner
487
- }, items)), !isPlaceholder ? /*#__PURE__*/React__default["default"].createElement(Background__default["default"], {
498
+ }, /*#__PURE__*/React__default["default"].createElement(Footer__default["default"], footerProps)) : null)), !isPlaceholder ? /*#__PURE__*/React__default["default"].createElement(Background__default["default"], {
488
499
  background: background,
489
500
  width: width,
490
501
  height: height,
@@ -574,17 +585,25 @@ var definition = {
574
585
  }]
575
586
  })
576
587
  }, {
577
- name: 'callToAction',
578
- type: 'call-to-action',
579
- theme: {
580
- boxStyle: 'cta',
581
- label: {
582
- textStyle: 'cta'
583
- }
584
- }
588
+ name: 'header',
589
+ type: 'header',
590
+ label: reactIntl.defineMessage({
591
+ id: "rhuDxI",
592
+ defaultMessage: [{
593
+ "type": 0,
594
+ "value": "Header"
595
+ }]
596
+ })
585
597
  }, {
586
- name: 'shareIncentive',
587
- type: 'share-incentive'
598
+ name: 'footer',
599
+ type: 'footer',
600
+ label: reactIntl.defineMessage({
601
+ id: "g4nybp",
602
+ defaultMessage: [{
603
+ "type": 0,
604
+ "value": "Footer"
605
+ }]
606
+ })
588
607
  }]
589
608
  };
590
609
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/screen-image-360",
3
- "version": "0.3.348",
3
+ "version": "0.3.354",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -50,15 +50,15 @@
50
50
  "dependencies": {
51
51
  "@babel/runtime": "^7.13.10",
52
52
  "@folklore/size": "^0.1.20",
53
- "@micromag/core": "^0.3.348",
54
- "@micromag/element-background": "^0.3.348",
55
- "@micromag/element-call-to-action": "^0.3.348",
56
- "@micromag/element-closed-captions": "^0.3.348",
57
- "@micromag/element-container": "^0.3.348",
58
- "@micromag/element-image": "^0.3.348",
59
- "@micromag/element-media-controls": "^0.3.348",
60
- "@micromag/element-video": "^0.3.348",
61
- "@micromag/transforms": "^0.3.348",
53
+ "@micromag/core": "^0.3.354",
54
+ "@micromag/element-background": "^0.3.354",
55
+ "@micromag/element-closed-captions": "^0.3.354",
56
+ "@micromag/element-container": "^0.3.354",
57
+ "@micromag/element-footer": "^0.3.354",
58
+ "@micromag/element-header": "^0.3.354",
59
+ "@micromag/element-image": "^0.3.354",
60
+ "@micromag/element-video": "^0.3.354",
61
+ "@micromag/transforms": "^0.3.354",
62
62
  "classnames": "^2.2.6",
63
63
  "lodash": "^4.17.21",
64
64
  "prop-types": "^15.7.2",
@@ -70,5 +70,5 @@
70
70
  "publishConfig": {
71
71
  "access": "public"
72
72
  },
73
- "gitHead": "20ef008fdf5c678004b740f395f51cb548591dad"
73
+ "gitHead": "ccf852d0a7df8f222365088e7de3843492e720e7"
74
74
  }