hart-estate-widget 0.0.62 → 0.0.65

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.
Files changed (33) hide show
  1. package/README.md +33 -23
  2. package/build/assets/css/app.css +1 -1
  3. package/build/assets/css/app.css.map +1 -1
  4. package/build/assets/icons/arrow-left.svg +4 -0
  5. package/build/assets/icons/arrow-right.svg +4 -0
  6. package/build/assets/icons/plan.svg +5 -0
  7. package/build/assets/icons/render.svg +7 -0
  8. package/build/assets/icons/surface.svg +5 -0
  9. package/build/assets/sass/components/instructions.sass +10 -10
  10. package/build/assets/sass/components/loader.sass +33 -32
  11. package/build/assets/sass/components/model.sass +1 -1
  12. package/build/assets/sass/components/panorama.sass +14 -16
  13. package/build/assets/sass/components/rotation.sass +202 -0
  14. package/build/assets/sass/components/tabs.sass +6 -112
  15. package/build/assets/sass/index.sass +13 -40
  16. package/build/assets/sass/mixin.sass +37 -1
  17. package/build/assets/sass/vars.sass +4 -5
  18. package/build/components/Application.js +22 -20
  19. package/build/components/PanoramaTab.js +34 -60
  20. package/build/components/RotationTab/DefaultView.js +124 -0
  21. package/build/components/RotationTab/ThreesixtyView.js +45 -0
  22. package/build/components/{RotationTab.js → RotationTab/index.js} +90 -55
  23. package/build/components/Widget.js +38 -22
  24. package/build/config/defaultConfig.js +8 -4
  25. package/build/enums/deviceWidth.js +12 -3
  26. package/build/enums/rotationModes.js +11 -0
  27. package/build/index.js +8 -8
  28. package/build/store/apiStore.js +51 -19
  29. package/build/store/fullScreenStore.js +36 -1
  30. package/build/store/index.js +13 -1
  31. package/build/store/modelStore.js +10 -5
  32. package/package.json +1 -1
  33. package/build/components/ImageTab.js +0 -23
@@ -268,63 +268,55 @@ var PanoramaTab = function PanoramaTab(_ref4) {
268
268
  setLoadingState = _useState6[1];
269
269
 
270
270
  var _useState7 = (0, _react.useState)({
271
- width: 0,
272
- height: 0
273
- }),
274
- _useState8 = _slicedToArray(_useState7, 2),
275
- windowSize = _useState8[0],
276
- setWindowSize = _useState8[1];
277
-
278
- var _useState9 = (0, _react.useState)({
279
271
  width: '200px',
280
272
  height: 'auto'
281
273
  }),
282
- _useState10 = _slicedToArray(_useState9, 2),
283
- mapSize = _useState10[0],
284
- setMapSize = _useState10[1];
274
+ _useState8 = _slicedToArray(_useState7, 2),
275
+ mapSize = _useState8[0],
276
+ setMapSize = _useState8[1];
285
277
 
286
- var _useState11 = (0, _react.useState)(false),
287
- _useState12 = _slicedToArray(_useState11, 2),
288
- mapOpen = _useState12[0],
289
- setMapState = _useState12[1];
278
+ var _useState9 = (0, _react.useState)(false),
279
+ _useState10 = _slicedToArray(_useState9, 2),
280
+ mapOpen = _useState10[0],
281
+ setMapState = _useState10[1];
290
282
 
291
- var _useState13 = (0, _react.useState)({
283
+ var _useState11 = (0, _react.useState)({
292
284
  X: 1,
293
285
  Y: 1
294
286
  }),
287
+ _useState12 = _slicedToArray(_useState11, 2),
288
+ planScale = _useState12[0],
289
+ setPlanScale = _useState12[1];
290
+
291
+ var _useState13 = (0, _react.useState)(true),
295
292
  _useState14 = _slicedToArray(_useState13, 2),
296
- planScale = _useState14[0],
297
- setPlanScale = _useState14[1];
293
+ isMapDisabled = _useState14[0],
294
+ setMapDisabledState = _useState14[1];
298
295
 
299
- var _useState15 = (0, _react.useState)(true),
296
+ var _useState15 = (0, _react.useState)(false),
300
297
  _useState16 = _slicedToArray(_useState15, 2),
301
- isMapDisabled = _useState16[0],
302
- setMapDisabledState = _useState16[1];
298
+ autoplayEnabled = _useState16[0],
299
+ setAutoplayState = _useState16[1];
303
300
 
304
- var _useState17 = (0, _react.useState)(false),
301
+ var _useState17 = (0, _react.useState)(cameraFovValues.x1),
305
302
  _useState18 = _slicedToArray(_useState17, 2),
306
- autoplayEnabled = _useState18[0],
307
- setAutoplayState = _useState18[1];
303
+ cameraFov = _useState18[0],
304
+ setCameraFov = _useState18[1];
308
305
 
309
- var _useState19 = (0, _react.useState)(cameraFovValues.x1),
306
+ var _useState19 = (0, _react.useState)(0),
310
307
  _useState20 = _slicedToArray(_useState19, 2),
311
- cameraFov = _useState20[0],
312
- setCameraFov = _useState20[1];
308
+ currentRoomIndex = _useState20[0],
309
+ setCurrentRoomIndex = _useState20[1];
313
310
 
314
- var _useState21 = (0, _react.useState)(0),
311
+ var _useState21 = (0, _react.useState)([]),
315
312
  _useState22 = _slicedToArray(_useState21, 2),
316
- currentRoomIndex = _useState22[0],
317
- setCurrentRoomIndex = _useState22[1];
313
+ panoramas = _useState22[0],
314
+ setPanoramas = _useState22[1];
318
315
 
319
- var _useState23 = (0, _react.useState)([]),
316
+ var _useState23 = (0, _react.useState)(null),
320
317
  _useState24 = _slicedToArray(_useState23, 2),
321
- panoramas = _useState24[0],
322
- setPanoramas = _useState24[1];
323
-
324
- var _useState25 = (0, _react.useState)(null),
325
- _useState26 = _slicedToArray(_useState25, 2),
326
- viewer = _useState26[0],
327
- setViewer = _useState26[1];
318
+ viewer = _useState24[0],
319
+ setViewer = _useState24[1];
328
320
 
329
321
  var changePanorama = function changePanorama(panorama) {
330
322
  setCurrentRoomIndex(panorama['panorama_index']);
@@ -334,14 +326,11 @@ var PanoramaTab = function PanoramaTab(_ref4) {
334
326
  var setScale = function setScale() {
335
327
  if (!viewer) return;
336
328
  var image = document.querySelector('.widget-tab__panorama-map img');
337
- var _viewer$container = viewer.container,
338
- clientWidth = _viewer$container.clientWidth,
339
- clientHeight = _viewer$container.clientHeight;
340
329
  var imageWidth = image.naturalWidth;
341
330
  var imageHeight = image.naturalHeight;
342
331
  var imageDelta = imageWidth / imageHeight;
343
332
  var maxWidth = 200;
344
- var maxHeight = clientHeight - 200;
333
+ var maxHeight = _store.default.config.height - 200;
345
334
  var width = maxWidth;
346
335
  var height = width / imageDelta;
347
336
 
@@ -358,7 +347,7 @@ var PanoramaTab = function PanoramaTab(_ref4) {
358
347
  width: width,
359
348
  height: height
360
349
  }, json));
361
- viewer.onWindowResize(clientWidth, clientHeight);
350
+ viewer.onWindowResize(_store.default.config.width, _store.default.config.height);
362
351
  };
363
352
 
364
353
  var onImageLoaded = function onImageLoaded() {
@@ -419,21 +408,6 @@ var PanoramaTab = function PanoramaTab(_ref4) {
419
408
  viewer.enableAutoRate();
420
409
  };
421
410
 
422
- (0, _react.useEffect)(function () {
423
- var onResize = function onResize() {
424
- setWindowSize({
425
- width: window.innerWidth,
426
- height: window.innerHeight
427
- });
428
- closeMap();
429
- };
430
-
431
- onResize();
432
- window.addEventListener('resize', onResize);
433
- return function cleanup() {
434
- window.removeEventListener('resize', onResize);
435
- };
436
- }, []);
437
411
  (0, _react.useEffect)(function () {
438
412
  if (!panoramas.length) return;
439
413
  var container = document.querySelector('.widget-tab__panorama-overlay');
@@ -479,7 +453,7 @@ var PanoramaTab = function PanoramaTab(_ref4) {
479
453
 
480
454
  animate();
481
455
  }, [panoramas]);
482
- (0, _react.useEffect)(setScale, [json, windowSize, viewer]);
456
+ (0, _react.useEffect)(setScale, [json, viewer, _store.default.config.width, _store.default.config.height]);
483
457
  (0, _react.useEffect)(function () {
484
458
  return setPanoramas(getPanoramas(json, images, setLoadingState));
485
459
  }, [json, images]);
@@ -546,7 +520,7 @@ var PanoramaTab = function PanoramaTab(_ref4) {
546
520
  var onMapClick = function onMapClick(event) {
547
521
  if (loadingState) return;
548
522
 
549
- if (windowSize.width <= _deviceWidth.deviceWidth.tablet) {
523
+ if (_store.default.config.width <= _deviceWidth.deviceWidth.tablet) {
550
524
  if (!mapOpen) {
551
525
  openMap();
552
526
  return;
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _surface = _interopRequireDefault(require("../../assets/icons/surface.svg"));
11
+
12
+ var _render = _interopRequireDefault(require("../../assets/icons/render.svg"));
13
+
14
+ var _plan = _interopRequireDefault(require("../../assets/icons/plan.svg"));
15
+
16
+ var _arrowRight = _interopRequireDefault(require("../../assets/icons/arrow-right.svg"));
17
+
18
+ var _arrowLeft = _interopRequireDefault(require("../../assets/icons/arrow-left.svg"));
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ var DefaultView = function DefaultView(_ref) {
23
+ var topViewImage = _ref.topViewImage,
24
+ activeIndex = _ref.activeIndex,
25
+ currentStep = _ref.currentStep,
26
+ planImage = _ref.planImage,
27
+ images = _ref.images,
28
+ steps = _ref.steps,
29
+ setCurrentStep = _ref.setCurrentStep,
30
+ setActiveIndex = _ref.setActiveIndex;
31
+
32
+ var getCurrentButtonIcon = function getCurrentButtonIcon() {
33
+ switch (getNextStep()) {
34
+ case 'carousel':
35
+ return _render.default;
36
+
37
+ case 'plan':
38
+ return _surface.default;
39
+
40
+ case 'topView':
41
+ return _plan.default;
42
+
43
+ default:
44
+ return _plan.default;
45
+ }
46
+ };
47
+
48
+ var getNextStep = function getNextStep() {
49
+ var currentStepIndex = steps.findIndex(function (step) {
50
+ return step === currentStep;
51
+ });
52
+ return steps[currentStepIndex + 1] || steps[0];
53
+ };
54
+
55
+ var onNextArrowClick = function onNextArrowClick() {
56
+ var index = activeIndex + 1;
57
+
58
+ if (!images[index]) {
59
+ setActiveIndex(0);
60
+ return;
61
+ }
62
+
63
+ setActiveIndex(index);
64
+ };
65
+
66
+ var onPrevArrowClick = function onPrevArrowClick() {
67
+ var index = activeIndex - 1;
68
+
69
+ if (!images[index]) {
70
+ setActiveIndex(images.length - 1);
71
+ return;
72
+ }
73
+
74
+ setActiveIndex(index);
75
+ };
76
+
77
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
78
+ className: "widget-tab__isometry"
79
+ }, /*#__PURE__*/_react.default.createElement("div", {
80
+ className: "widget-tab__isometry-container"
81
+ }, /*#__PURE__*/_react.default.createElement("img", {
82
+ className: "widget-tab__isometry--plan ".concat(currentStep === 'plan' ? 'active' : ''),
83
+ src: planImage,
84
+ alt: "plan-view"
85
+ }), /*#__PURE__*/_react.default.createElement("img", {
86
+ className: "widget-tab__isometry--top-view ".concat(currentStep === 'topView' ? 'active' : ''),
87
+ src: topViewImage,
88
+ alt: "top-view"
89
+ }), images.map(function (img, index) {
90
+ return /*#__PURE__*/_react.default.createElement("img", {
91
+ className: currentStep === 'carousel' && activeIndex === index ? 'active' : '',
92
+ alt: "rotation-view-".concat(index),
93
+ key: index,
94
+ src: img
95
+ });
96
+ }))), currentStep === 'carousel' && /*#__PURE__*/_react.default.createElement("div", {
97
+ className: "widget-tab__isometry-arrows"
98
+ }, /*#__PURE__*/_react.default.createElement("button", {
99
+ className: "widget-tab__isometry-arrow widget-tab__isometry-arrow--prev",
100
+ onClick: onPrevArrowClick
101
+ }, /*#__PURE__*/_react.default.createElement("img", {
102
+ src: _arrowLeft.default,
103
+ alt: "arrow-left"
104
+ })), /*#__PURE__*/_react.default.createElement("span", null, activeIndex + 1, "/", images.length), /*#__PURE__*/_react.default.createElement("button", {
105
+ className: "widget-tab__isometry-arrow widget-tab__isometry-arrow--next",
106
+ onClick: onNextArrowClick
107
+ }, /*#__PURE__*/_react.default.createElement("img", {
108
+ src: _arrowRight.default,
109
+ alt: "arrow-right"
110
+ }))), /*#__PURE__*/_react.default.createElement("div", {
111
+ className: "widget-tab__isometry-buttons"
112
+ }, steps.length > 1 && /*#__PURE__*/_react.default.createElement("button", {
113
+ className: "widget-tab__isometry-button",
114
+ onClick: function onClick() {
115
+ return setCurrentStep(getNextStep());
116
+ }
117
+ }, /*#__PURE__*/_react.default.createElement("img", {
118
+ src: getCurrentButtonIcon(),
119
+ alt: "".concat(currentStep, "-icon")
120
+ }))));
121
+ };
122
+
123
+ var _default = DefaultView;
124
+ exports.default = _default;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _locale = _interopRequireDefault(require("../../locale"));
11
+
12
+ var _rotation = _interopRequireDefault(require("../../assets/icons/rotation.svg"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ var ThreesixtyView = function ThreesixtyView(_ref) {
17
+ var initialized = _ref.initialized,
18
+ showInstructions = _ref.showInstructions,
19
+ images = _ref.images,
20
+ activeIndex = _ref.activeIndex,
21
+ openInstructions = _ref.openInstructions;
22
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
23
+ className: "widget-tab__threesixty ".concat(initialized ? 'widget-tab__threesixty--active' : '')
24
+ }, /*#__PURE__*/_react.default.createElement("div", {
25
+ className: "widget-tab__threesixty-container"
26
+ }, images.map(function (img, index) {
27
+ return /*#__PURE__*/_react.default.createElement("img", {
28
+ className: activeIndex === index ? 'active' : '',
29
+ alt: "rotation-view-".concat(index),
30
+ key: index,
31
+ src: img
32
+ });
33
+ }))), !initialized && !showInstructions && /*#__PURE__*/_react.default.createElement("button", {
34
+ className: "widget-tab__rotation-start",
35
+ onClick: openInstructions
36
+ }, /*#__PURE__*/_react.default.createElement("div", {
37
+ className: "widget-tab__rotation-start-icon"
38
+ }, /*#__PURE__*/_react.default.createElement("img", {
39
+ src: _rotation.default,
40
+ alt: "start-icon"
41
+ })), /*#__PURE__*/_react.default.createElement("span", null, _locale.default.getLocaleText('rotate'))));
42
+ };
43
+
44
+ var _default = ThreesixtyView;
45
+ exports.default = _default;
@@ -11,17 +11,21 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _panzoom = _interopRequireDefault(require("panzoom"));
13
13
 
14
- var _threesixty = _interopRequireDefault(require("../threesixty"));
14
+ var _threesixty = _interopRequireDefault(require("../../threesixty"));
15
15
 
16
- var _helpers = require("../utils/helpers");
16
+ var _rotationModes = require("../../enums/rotationModes");
17
17
 
18
- var _locale = _interopRequireDefault(require("../locale"));
18
+ var _helpers = require("../../utils/helpers");
19
19
 
20
- var _Instructions = _interopRequireDefault(require("./Instructions"));
20
+ var _locale = _interopRequireDefault(require("../../locale"));
21
21
 
22
- var _handMove = _interopRequireDefault(require("../assets/icons/hand-move.svg"));
22
+ var _ThreesixtyView = _interopRequireDefault(require("./ThreesixtyView"));
23
23
 
24
- var _rotation = _interopRequireDefault(require("../assets/icons/rotation.svg"));
24
+ var _Instructions = _interopRequireDefault(require("../Instructions"));
25
+
26
+ var _DefaultView = _interopRequireDefault(require("./DefaultView"));
27
+
28
+ var _handMove = _interopRequireDefault(require("../../assets/icons/hand-move.svg"));
25
29
 
26
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
31
 
@@ -50,9 +54,21 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
50
54
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
51
55
 
52
56
  var RotationTab = function RotationTab(_ref) {
53
- var images = _ref.images,
57
+ var planImage = _ref.planImage,
58
+ topViewImage = _ref.topViewImage,
59
+ images = _ref.images,
60
+ mode = _ref.mode,
54
61
  _ref$disabled = _ref.disabled,
55
62
  disabled = _ref$disabled === void 0 ? false : _ref$disabled;
63
+
64
+ var getSteps = function getSteps() {
65
+ var availableSteps = [];
66
+ if (images && images.length > 0) availableSteps.push('carousel');
67
+ if (planImage) availableSteps.push('plan');
68
+ if (topViewImage) availableSteps.push('topView');
69
+ return availableSteps;
70
+ };
71
+
56
72
  var instructionSteps = [{
57
73
  icon: _handMove.default,
58
74
  text: _locale.default.getLocaleText('rotate-plan')
@@ -68,25 +84,43 @@ var RotationTab = function RotationTab(_ref) {
68
84
  initialized = _useState4[0],
69
85
  setInitState = _useState4[1];
70
86
 
71
- var _useState5 = (0, _react.useState)(0),
87
+ var _useState5 = (0, _react.useState)(null),
72
88
  _useState6 = _slicedToArray(_useState5, 2),
73
- activeIndex = _useState6[0],
74
- setActiveIndex = _useState6[1];
89
+ controller = _useState6[0],
90
+ setController = _useState6[1];
75
91
 
76
- var _useState7 = (0, _react.useState)(null),
92
+ var _useState7 = (0, _react.useState)(0),
77
93
  _useState8 = _slicedToArray(_useState7, 2),
78
- rotation = _useState8[0],
79
- setRotation = _useState8[1];
94
+ activeIndex = _useState8[0],
95
+ setActiveIndex = _useState8[1];
80
96
 
81
- var updateRotation = function updateRotation() {
82
- setActiveIndex(this.index);
97
+ var _useState9 = (0, _react.useState)(null),
98
+ _useState10 = _slicedToArray(_useState9, 2),
99
+ rotation = _useState10[0],
100
+ setRotation = _useState10[1];
101
+
102
+ var _useState11 = (0, _react.useState)(getSteps()),
103
+ _useState12 = _slicedToArray(_useState11, 1),
104
+ steps = _useState12[0];
105
+
106
+ var _useState13 = (0, _react.useState)(steps[0]),
107
+ _useState14 = _slicedToArray(_useState13, 2),
108
+ currentStep = _useState14[0],
109
+ setCurrentStep = _useState14[1];
110
+
111
+ var openInstructions = function openInstructions() {
112
+ return setInstructionsState(true);
83
113
  };
84
114
 
85
- var onStart = function onStart() {
115
+ function updateRotation() {
116
+ setActiveIndex(this.index);
117
+ }
118
+
119
+ var createThreesixty = function createThreesixty() {
86
120
  setInstructionsState(false);
87
121
  setInitState(true);
88
122
  var container = document.querySelector('.widget-tab__threesixty-container');
89
- var widgetTab = document.querySelector('.widget-tab');
123
+ var widgetTab = document.querySelector('.widget-tab__rotation');
90
124
  var newRotation = new _threesixty.default(container, {
91
125
  image: _toConsumableArray(images),
92
126
  parentElement: widgetTab,
@@ -94,57 +128,58 @@ var RotationTab = function RotationTab(_ref) {
94
128
  speed: 150
95
129
  });
96
130
  newRotation._update = updateRotation;
97
- newRotation.play();
98
- var lastIndex = 0;
99
- var controller = (0, _panzoom.default)(container, {
100
- maxZoom: 3,
101
- minZoom: 0.5,
102
- beforeMouseDown: function beforeMouseDown(event) {
103
- return !event.shiftKey;
104
- }
105
- });
106
- newRotation.controller = controller;
131
+ newRotation.play(true);
107
132
  controller.on('panstart', function () {
108
- lastIndex = newRotation.index;
109
133
  newRotation.stop();
110
134
 
111
135
  newRotation._update = function () {};
112
136
  });
113
137
  controller.on('panend', function () {
114
- newRotation.goto(lastIndex);
138
+ newRotation.goto(newRotation.index);
115
139
  newRotation._update = updateRotation;
116
140
  });
117
141
  setRotation(newRotation);
118
142
  };
119
143
 
120
- var openInstructions = function openInstructions() {
121
- return setInstructionsState(true);
122
- };
123
-
124
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
125
- className: "widget-tab__threesixty ".concat(initialized ? 'widget-tab__threesixty--active' : '')
126
- }, /*#__PURE__*/_react.default.createElement("div", {
127
- className: "widget-tab__threesixty-container",
128
- onContextMenu: _helpers.preventRightClick
129
- }, images.map(function (img, index) {
130
- return /*#__PURE__*/_react.default.createElement("img", {
131
- src: img,
132
- key: index,
133
- alt: "rotation-view-".concat(index),
134
- className: activeIndex === index ? 'active' : ''
144
+ (0, _react.useEffect)(function () {
145
+ var threesixtyContainer = document.querySelector('.widget-tab__threesixty-container');
146
+ var defaultContainer = document.querySelector('.widget-tab__isometry-container');
147
+ var container = mode === _rotationModes.rotationModes.THREESIXTY ? threesixtyContainer : defaultContainer;
148
+ var controller = (0, _panzoom.default)(container, {
149
+ beforeMouseDown: function beforeMouseDown(event) {
150
+ return !event.shiftKey;
151
+ },
152
+ onDoubleClick: function onDoubleClick(e) {
153
+ console.log(e);
154
+ return true;
155
+ },
156
+ minZoom: 0.5,
157
+ maxZoom: 3
135
158
  });
136
- }))), !initialized && !showInstructions && /*#__PURE__*/_react.default.createElement("button", {
137
- className: "widget-tab__threesixty-start",
138
- onClick: openInstructions
139
- }, /*#__PURE__*/_react.default.createElement("div", {
140
- className: "widget-tab__threesixty-start-icon"
141
- }, /*#__PURE__*/_react.default.createElement("img", {
142
- src: _rotation.default,
143
- alt: "start-icon"
144
- })), /*#__PURE__*/_react.default.createElement("span", null, _locale.default.getLocaleText('rotate'))), showInstructions && /*#__PURE__*/_react.default.createElement(_Instructions.default, {
145
- disabled: disabled,
159
+ setController(controller);
160
+ }, []);
161
+ return /*#__PURE__*/_react.default.createElement("div", {
162
+ className: "widget-tab__rotation",
163
+ onContextMenu: _helpers.preventRightClick
164
+ }, mode === _rotationModes.rotationModes.THREESIXTY && /*#__PURE__*/_react.default.createElement(_ThreesixtyView.default, {
165
+ showInstructions: showInstructions,
166
+ openInstructions: openInstructions,
167
+ initialized: initialized,
168
+ activeIndex: activeIndex,
169
+ images: images
170
+ }), mode === _rotationModes.rotationModes.DEFAULT && /*#__PURE__*/_react.default.createElement(_DefaultView.default, {
171
+ setActiveIndex: setActiveIndex,
172
+ setCurrentStep: setCurrentStep,
173
+ topViewImage: topViewImage,
174
+ activeIndex: activeIndex,
175
+ currentStep: currentStep,
176
+ planImage: planImage,
177
+ images: images,
178
+ steps: steps
179
+ }), showInstructions && /*#__PURE__*/_react.default.createElement(_Instructions.default, {
180
+ onClick: createThreesixty,
146
181
  steps: instructionSteps,
147
- onClick: onStart
182
+ disabled: disabled
148
183
  }));
149
184
  };
150
185
 
@@ -11,9 +11,9 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
11
11
 
12
12
  var _store = _interopRequireDefault(require("../store"));
13
13
 
14
- var _modelStore = _interopRequireDefault(require("../store/modelStore"));
14
+ var _fullScreenStore = _interopRequireDefault(require("../store/fullScreenStore"));
15
15
 
16
- var _locale = _interopRequireDefault(require("../locale"));
16
+ var _modelStore = _interopRequireDefault(require("../store/modelStore"));
17
17
 
18
18
  var _Application = _interopRequireDefault(require("./Application"));
19
19
 
@@ -25,36 +25,48 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
25
25
 
26
26
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
27
 
28
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
29
+
28
30
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
29
31
 
30
32
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
31
33
 
32
34
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
33
35
 
34
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
35
-
36
36
  var Widget = /*#__PURE__*/function () {
37
37
  function Widget(container) {
38
+ var _this = this;
39
+
38
40
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
39
41
 
40
42
  _classCallCheck(this, Widget);
41
43
 
42
- _defineProperty(this, "requiredParams", ['tabs', 'width', 'height', 'locale', 'API_URL']);
43
-
44
44
  var config = _objectSpread(_objectSpread({}, _defaultConfig.default), options);
45
45
 
46
46
  var widgetContainer = document.querySelector(container);
47
47
  if (!widgetContainer) throw new Error("\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043D\u0430\u0439\u0442\u0438 \u044D\u043B\u0435\u043C\u0435\u043D\u0442: #".concat(container));
48
+
49
+ if (!options.width) {
50
+ config.width = widgetContainer.offsetWidth;
51
+ }
52
+
53
+ if (!options.height) {
54
+ config.height = widgetContainer.offsetHeight;
55
+ }
56
+
48
57
  config.containerElement = widgetContainer;
49
58
 
50
59
  _store.default.setConfig(config);
51
60
 
52
- _locale.default.setCurrentLocale(config.locale);
61
+ _fullScreenStore.default.resize(config);
62
+
63
+ if (config.resizable) {
64
+ window.addEventListener('resize', function () {
65
+ return _this.onResize();
66
+ });
67
+ }
53
68
 
54
- _reactDom.default.render( /*#__PURE__*/_react.default.createElement(_Application.default, {
55
- width: config.width,
56
- height: config.height
57
- }), widgetContainer);
69
+ _reactDom.default.render( /*#__PURE__*/_react.default.createElement(_Application.default, null), widgetContainer);
58
70
  }
59
71
 
60
72
  _createClass(Widget, [{
@@ -63,22 +75,26 @@ var Widget = /*#__PURE__*/function () {
63
75
  return _store.default.config;
64
76
  }
65
77
  }, {
66
- key: "updateOptions",
67
- value: function updateOptions(config) {
68
- var _this = this;
69
-
70
- var newConfig = _objectSpread({}, config);
71
-
72
- this.requiredParams.forEach(function (param) {
73
- if (config[param]) return;
74
- newConfig[param] = _this.options[param];
75
- });
78
+ key: "updateSize",
79
+ value: function updateSize(size) {
80
+ var newConfig = _objectSpread(_objectSpread({}, this.options), size);
76
81
 
77
82
  _modelStore.default.removeHouse();
78
83
 
79
84
  _store.default.setConfig(newConfig);
80
85
 
81
- _locale.default.setCurrentLocale(config.locale);
86
+ _fullScreenStore.default.resize(newConfig);
87
+ }
88
+ }, {
89
+ key: "onResize",
90
+ value: function onResize() {
91
+ var _this$options$contain = this.options.containerElement,
92
+ width = _this$options$contain.offsetWidth,
93
+ height = _this$options$contain.offsetHeight;
94
+ this.updateSize({
95
+ width: width,
96
+ height: height
97
+ });
82
98
  }
83
99
  }, {
84
100
  key: "on",
@@ -7,17 +7,21 @@ exports.default = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
+ var _rotationModes = require("../enums/rotationModes");
11
+
10
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
13
 
12
14
  var defaultConfig = {
13
15
  tabs: ['rotation', 'panorama'],
16
+ name: null,
14
17
  logo: null,
15
18
  logoUrl: null,
16
- width: null,
17
- height: null,
19
+ resizable: true,
20
+ width: 1920,
21
+ height: 1080,
18
22
  planImage: null,
19
- topView: null,
20
- topDownView: null,
23
+ topViewImage: null,
24
+ rotationMode: _rotationModes.rotationModes.default,
21
25
  rotationImages: [],
22
26
  panoramaImages: [],
23
27
  json: null,