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.
- package/README.md +33 -23
- package/build/assets/css/app.css +1 -1
- package/build/assets/css/app.css.map +1 -1
- package/build/assets/icons/arrow-left.svg +4 -0
- package/build/assets/icons/arrow-right.svg +4 -0
- package/build/assets/icons/plan.svg +5 -0
- package/build/assets/icons/render.svg +7 -0
- package/build/assets/icons/surface.svg +5 -0
- package/build/assets/sass/components/instructions.sass +10 -10
- package/build/assets/sass/components/loader.sass +33 -32
- package/build/assets/sass/components/model.sass +1 -1
- package/build/assets/sass/components/panorama.sass +14 -16
- package/build/assets/sass/components/rotation.sass +202 -0
- package/build/assets/sass/components/tabs.sass +6 -112
- package/build/assets/sass/index.sass +13 -40
- package/build/assets/sass/mixin.sass +37 -1
- package/build/assets/sass/vars.sass +4 -5
- package/build/components/Application.js +22 -20
- package/build/components/PanoramaTab.js +34 -60
- package/build/components/RotationTab/DefaultView.js +124 -0
- package/build/components/RotationTab/ThreesixtyView.js +45 -0
- package/build/components/{RotationTab.js → RotationTab/index.js} +90 -55
- package/build/components/Widget.js +38 -22
- package/build/config/defaultConfig.js +8 -4
- package/build/enums/deviceWidth.js +12 -3
- package/build/enums/rotationModes.js +11 -0
- package/build/index.js +8 -8
- package/build/store/apiStore.js +51 -19
- package/build/store/fullScreenStore.js +36 -1
- package/build/store/index.js +13 -1
- package/build/store/modelStore.js +10 -5
- package/package.json +1 -1
- 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
|
-
|
283
|
-
mapSize =
|
284
|
-
setMapSize =
|
274
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
275
|
+
mapSize = _useState8[0],
|
276
|
+
setMapSize = _useState8[1];
|
285
277
|
|
286
|
-
var
|
287
|
-
|
288
|
-
mapOpen =
|
289
|
-
setMapState =
|
278
|
+
var _useState9 = (0, _react.useState)(false),
|
279
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
280
|
+
mapOpen = _useState10[0],
|
281
|
+
setMapState = _useState10[1];
|
290
282
|
|
291
|
-
var
|
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
|
-
|
297
|
-
|
293
|
+
isMapDisabled = _useState14[0],
|
294
|
+
setMapDisabledState = _useState14[1];
|
298
295
|
|
299
|
-
var _useState15 = (0, _react.useState)(
|
296
|
+
var _useState15 = (0, _react.useState)(false),
|
300
297
|
_useState16 = _slicedToArray(_useState15, 2),
|
301
|
-
|
302
|
-
|
298
|
+
autoplayEnabled = _useState16[0],
|
299
|
+
setAutoplayState = _useState16[1];
|
303
300
|
|
304
|
-
var _useState17 = (0, _react.useState)(
|
301
|
+
var _useState17 = (0, _react.useState)(cameraFovValues.x1),
|
305
302
|
_useState18 = _slicedToArray(_useState17, 2),
|
306
|
-
|
307
|
-
|
303
|
+
cameraFov = _useState18[0],
|
304
|
+
setCameraFov = _useState18[1];
|
308
305
|
|
309
|
-
var _useState19 = (0, _react.useState)(
|
306
|
+
var _useState19 = (0, _react.useState)(0),
|
310
307
|
_useState20 = _slicedToArray(_useState19, 2),
|
311
|
-
|
312
|
-
|
308
|
+
currentRoomIndex = _useState20[0],
|
309
|
+
setCurrentRoomIndex = _useState20[1];
|
313
310
|
|
314
|
-
var _useState21 = (0, _react.useState)(
|
311
|
+
var _useState21 = (0, _react.useState)([]),
|
315
312
|
_useState22 = _slicedToArray(_useState21, 2),
|
316
|
-
|
317
|
-
|
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
|
-
|
322
|
-
|
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 =
|
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(
|
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,
|
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 (
|
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("
|
14
|
+
var _threesixty = _interopRequireDefault(require("../../threesixty"));
|
15
15
|
|
16
|
-
var
|
16
|
+
var _rotationModes = require("../../enums/rotationModes");
|
17
17
|
|
18
|
-
var
|
18
|
+
var _helpers = require("../../utils/helpers");
|
19
19
|
|
20
|
-
var
|
20
|
+
var _locale = _interopRequireDefault(require("../../locale"));
|
21
21
|
|
22
|
-
var
|
22
|
+
var _ThreesixtyView = _interopRequireDefault(require("./ThreesixtyView"));
|
23
23
|
|
24
|
-
var
|
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
|
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)(
|
87
|
+
var _useState5 = (0, _react.useState)(null),
|
72
88
|
_useState6 = _slicedToArray(_useState5, 2),
|
73
|
-
|
74
|
-
|
89
|
+
controller = _useState6[0],
|
90
|
+
setController = _useState6[1];
|
75
91
|
|
76
|
-
var _useState7 = (0, _react.useState)(
|
92
|
+
var _useState7 = (0, _react.useState)(0),
|
77
93
|
_useState8 = _slicedToArray(_useState7, 2),
|
78
|
-
|
79
|
-
|
94
|
+
activeIndex = _useState8[0],
|
95
|
+
setActiveIndex = _useState8[1];
|
80
96
|
|
81
|
-
var
|
82
|
-
|
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
|
-
|
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-
|
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(
|
138
|
+
newRotation.goto(newRotation.index);
|
115
139
|
newRotation._update = updateRotation;
|
116
140
|
});
|
117
141
|
setRotation(newRotation);
|
118
142
|
};
|
119
143
|
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
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
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
}, /*#__PURE__*/_react.default.createElement(
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
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
|
-
|
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
|
14
|
+
var _fullScreenStore = _interopRequireDefault(require("../store/fullScreenStore"));
|
15
15
|
|
16
|
-
var
|
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
|
-
|
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: "
|
67
|
-
value: function
|
68
|
-
var
|
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
|
-
|
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
|
-
|
17
|
-
|
19
|
+
resizable: true,
|
20
|
+
width: 1920,
|
21
|
+
height: 1080,
|
18
22
|
planImage: null,
|
19
|
-
|
20
|
-
|
23
|
+
topViewImage: null,
|
24
|
+
rotationMode: _rotationModes.rotationModes.default,
|
21
25
|
rotationImages: [],
|
22
26
|
panoramaImages: [],
|
23
27
|
json: null,
|