js-cloudimage-360-view 2.7.2-beta.7 → 2.7.5
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/CHANGELOG.md +27 -3
- package/LICENSE +13 -1
- package/README.md +154 -90
- package/dist/ci360.service.js +123 -88
- package/dist/ci360.utils.js +3 -4
- package/dist/constants/auto-play-behavior.js +13 -0
- package/dist/constants/falsy-values.js +8 -0
- package/dist/constants/image-src-props.js +8 -0
- package/dist/constants/index.js +43 -0
- package/dist/constants/orientations.js +12 -0
- package/dist/constants/regex.js +10 -0
- package/dist/index.js +28 -2
- package/dist/utils/auto-play/get-speed-factor.js +14 -0
- package/dist/utils/auto-play/is-completed-one-cycle.js +32 -0
- package/dist/utils/auto-play/loop.js +67 -0
- package/dist/utils/common/add-class.js +18 -0
- package/dist/utils/common/remove-class.js +16 -0
- package/dist/utils/container-elements/apply-styles-to-container.js +16 -0
- package/dist/utils/container-elements/create-360-view-circle-icon.js +16 -0
- package/dist/utils/container-elements/create-360-view-icon.js +15 -0
- package/dist/utils/container-elements/create-box-shadow.js +16 -0
- package/dist/utils/container-elements/create-canvas.js +16 -0
- package/dist/utils/container-elements/create-close-fullscreen-icon.js +14 -0
- package/dist/utils/container-elements/create-fullscreen-icon.js +14 -0
- package/dist/utils/container-elements/create-fullscreen-modal.js +20 -0
- package/dist/utils/container-elements/create-icons-container.js +15 -0
- package/dist/utils/container-elements/create-inner-box.js +15 -0
- package/dist/utils/container-elements/create-loader.js +15 -0
- package/dist/utils/container-elements/create-magnifier-icon.js +14 -0
- package/dist/utils/container-elements/index.js +101 -0
- package/dist/utils/controls/get-item-skipped.js +13 -0
- package/dist/utils/controls/init-controls.js +77 -0
- package/dist/utils/hotspot/attach-popup-events.js +63 -0
- package/dist/utils/hotspot/configs-error-handler.js +30 -0
- package/dist/utils/hotspot/create-popper-instace.js +32 -0
- package/dist/utils/hotspot/elements/create-carousel-dot.js +26 -0
- package/dist/utils/hotspot/elements/create-carousel-image.js +21 -0
- package/dist/utils/hotspot/elements/create-hotspot-icon.js +42 -0
- package/dist/utils/hotspot/elements/create-hotspot-popup-link.js +23 -0
- package/dist/utils/hotspot/elements/create-hotspots.js +20 -0
- package/dist/utils/hotspot/elements/create-images-carousel.js +27 -0
- package/dist/utils/hotspot/elements/create-modal-description.js +15 -0
- package/dist/utils/hotspot/elements/create-modal-title.js +15 -0
- package/dist/utils/hotspot/elements/create-model-elements.js +49 -0
- package/dist/utils/hotspot/elements/create-popup-arrow.js +16 -0
- package/dist/utils/hotspot/elements/create-popup.js +60 -0
- package/dist/utils/hotspot/fill-previous-coord-with-previous.js +26 -0
- package/dist/utils/hotspot/generate-hotspots-configs.js +41 -0
- package/dist/utils/hotspot/generate-popup-config.js +34 -0
- package/dist/utils/hotspot/get-hotspot-icon.js +14 -0
- package/dist/utils/hotspot/get-hotspot-orientation.js +21 -0
- package/dist/utils/hotspot/get-hotspot-popup-node.js +19 -0
- package/dist/utils/hotspot/get-hotspot-variant.js +20 -0
- package/dist/utils/hotspot/get-popup-node.js +14 -0
- package/dist/utils/hotspot/hide-hotspot-icon.js +13 -0
- package/dist/utils/hotspot/hide-hotspots-icons.js +18 -0
- package/dist/utils/hotspot/is-mouse-on-hotspot.js +14 -0
- package/dist/utils/hotspot/prepare-hotspots-positions.js +28 -0
- package/dist/utils/hotspot/set-current-slide.js +23 -0
- package/dist/utils/hotspot/update-hotspot-icon-position.js +21 -0
- package/dist/utils/hotspot/update-hotspots.js +60 -0
- package/dist/utils/image-src/generate-images-path.js +40 -0
- package/dist/utils/image-src/is-src-props-changed.js +23 -0
- package/dist/utils/index.js +237 -0
- package/dist/utils/load-images/images-from-folder/prepare-images-from-folder.js +36 -0
- package/dist/utils/load-images/images-from-list/prepare-images-from-list.js +37 -0
- package/dist/utils/load-images/load-image-as-promise.js +79 -0
- package/dist/utils/load-images/load-image.js +26 -0
- package/dist/utils/load-images/load-images-relative-to-container-size.js +58 -0
- package/dist/utils/load-images/load-original-images.js +58 -0
- package/dist/utils/load-images/pad.js +14 -0
- package/dist/utils/load-images/preload-images.js +38 -0
- package/dist/utils/load-images/preload-original-images.js +38 -0
- package/dist/utils/magnify/get-current-original-image.js +29 -0
- package/dist/utils/magnify/get-cursor-position.js +24 -0
- package/dist/utils/magnify/magnify.js +54 -0
- package/dist/utils/magnify/move-magnifier.js +47 -0
- package/dist/utils/responsive/contain.js +11 -0
- package/dist/utils/responsive/fit.js +33 -0
- package/dist/utils/responsive/get-container-responsive-height.js +20 -0
- package/dist/utils/responsive/get-container-responsive-width.js +20 -0
- package/dist/utils/responsive/get-responsive-width-of-container.js +14 -0
- package/dist/utils/responsive/get-size-according-to-pixel-ratio.js +17 -0
- package/dist/utils/responsive/get-size-limit.js +14 -0
- package/dist/utils/spin-y/get-moving-direction.js +21 -0
- package/dist/utils/zoom/generate-zoom-in-steps.js +20 -0
- package/dist/utils/zoom/generate-zoom-out-steps.js +20 -0
- package/package.json +4 -3
- package/.vscode/settings.json +0 -2
- package/dist/ci360.constants.js +0 -34
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.loadImageAsPromise = void 0;
|
|
9
|
+
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
+
|
|
14
|
+
var _orientations = require("../../constants/orientations");
|
|
15
|
+
|
|
16
|
+
var loadImageAsPromise = /*#__PURE__*/function () {
|
|
17
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(src, index, srcConfig) {
|
|
18
|
+
var onImageLoadCallback,
|
|
19
|
+
_ref2,
|
|
20
|
+
lazyload,
|
|
21
|
+
lazySelector,
|
|
22
|
+
fullscreenView,
|
|
23
|
+
innerBox,
|
|
24
|
+
orientation,
|
|
25
|
+
image,
|
|
26
|
+
_args = arguments;
|
|
27
|
+
|
|
28
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
29
|
+
while (1) {
|
|
30
|
+
switch (_context.prev = _context.next) {
|
|
31
|
+
case 0:
|
|
32
|
+
onImageLoadCallback = _args.length > 3 && _args[3] !== undefined ? _args[3] : function () {};
|
|
33
|
+
_ref2 = srcConfig || {}, lazyload = _ref2.lazyload, lazySelector = _ref2.lazySelector, fullscreenView = _ref2.fullscreenView, innerBox = _ref2.innerBox, orientation = _ref2.orientation;
|
|
34
|
+
image = new Image();
|
|
35
|
+
|
|
36
|
+
if (lazyload && !fullscreenView) {
|
|
37
|
+
image.setAttribute('data-src', src);
|
|
38
|
+
image.className = image.className.length ? "".concat(image.className, " ").concat(lazySelector) : lazySelector;
|
|
39
|
+
|
|
40
|
+
if (index === 0 && orientation !== _orientations.ORIENTATIONS.Y) {
|
|
41
|
+
image.style.position = 'absolute';
|
|
42
|
+
image.style.top = '0';
|
|
43
|
+
image.style.left = '0';
|
|
44
|
+
innerBox.appendChild(image);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
image.onload = function () {
|
|
48
|
+
return onImageLoadCallback(image, index);
|
|
49
|
+
};
|
|
50
|
+
} else {
|
|
51
|
+
image.src = src;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return _context.abrupt("return", new Promise(function (reslove) {
|
|
55
|
+
image.onload = function () {
|
|
56
|
+
onImageLoadCallback(image, index);
|
|
57
|
+
reslove(image);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
image.onerror = function () {
|
|
61
|
+
onImageLoadCallback(image, index);
|
|
62
|
+
reslove(image);
|
|
63
|
+
};
|
|
64
|
+
}));
|
|
65
|
+
|
|
66
|
+
case 5:
|
|
67
|
+
case "end":
|
|
68
|
+
return _context.stop();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}, _callee);
|
|
72
|
+
}));
|
|
73
|
+
|
|
74
|
+
return function loadImageAsPromise(_x, _x2, _x3) {
|
|
75
|
+
return _ref.apply(this, arguments);
|
|
76
|
+
};
|
|
77
|
+
}();
|
|
78
|
+
|
|
79
|
+
exports.loadImageAsPromise = loadImageAsPromise;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.loadImage = void 0;
|
|
7
|
+
|
|
8
|
+
var loadImage = function loadImage(src, index, srcConfig) {
|
|
9
|
+
var _ref = srcConfig || {},
|
|
10
|
+
lazyload = _ref.lazyload,
|
|
11
|
+
lazySelector = _ref.lazySelector,
|
|
12
|
+
fullscreenView = _ref.fullscreenView;
|
|
13
|
+
|
|
14
|
+
var image = new Image();
|
|
15
|
+
|
|
16
|
+
if (lazyload && !fullscreenView) {
|
|
17
|
+
image.setAttribute('data-src', src);
|
|
18
|
+
image.className = image.className.length ? "".concat(image.className, " ").concat(lazySelector) : lazySelector;
|
|
19
|
+
} else {
|
|
20
|
+
image.src = src;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return image;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
exports.loadImage = loadImage;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.loadImagesRelativeToContainerSize = void 0;
|
|
9
|
+
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
+
|
|
14
|
+
var _loadImageAsPromise = require("./load-image-as-promise");
|
|
15
|
+
|
|
16
|
+
var loadImagesRelativeToContainerSize = /*#__PURE__*/function () {
|
|
17
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(imagesSrcs, srcConfig, onImageLoadCallback) {
|
|
18
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
19
|
+
while (1) {
|
|
20
|
+
switch (_context2.prev = _context2.next) {
|
|
21
|
+
case 0:
|
|
22
|
+
_context2.next = 2;
|
|
23
|
+
return Promise.all(imagesSrcs.map( /*#__PURE__*/function () {
|
|
24
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(src, index) {
|
|
25
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
26
|
+
while (1) {
|
|
27
|
+
switch (_context.prev = _context.next) {
|
|
28
|
+
case 0:
|
|
29
|
+
_context.next = 2;
|
|
30
|
+
return (0, _loadImageAsPromise.loadImageAsPromise)(src, index, srcConfig, onImageLoadCallback);
|
|
31
|
+
|
|
32
|
+
case 2:
|
|
33
|
+
case "end":
|
|
34
|
+
return _context.stop();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}, _callee);
|
|
38
|
+
}));
|
|
39
|
+
|
|
40
|
+
return function (_x4, _x5) {
|
|
41
|
+
return _ref2.apply(this, arguments);
|
|
42
|
+
};
|
|
43
|
+
}()));
|
|
44
|
+
|
|
45
|
+
case 2:
|
|
46
|
+
case "end":
|
|
47
|
+
return _context2.stop();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}, _callee2);
|
|
51
|
+
}));
|
|
52
|
+
|
|
53
|
+
return function loadImagesRelativeToContainerSize(_x, _x2, _x3) {
|
|
54
|
+
return _ref.apply(this, arguments);
|
|
55
|
+
};
|
|
56
|
+
}();
|
|
57
|
+
|
|
58
|
+
exports.loadImagesRelativeToContainerSize = loadImagesRelativeToContainerSize;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.loadOriginalImages = void 0;
|
|
9
|
+
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
+
|
|
14
|
+
var _loadImageAsPromise = require("./load-image-as-promise");
|
|
15
|
+
|
|
16
|
+
var loadOriginalImages = /*#__PURE__*/function () {
|
|
17
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(imagesSrcs, onImageLoadCallback) {
|
|
18
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
19
|
+
while (1) {
|
|
20
|
+
switch (_context2.prev = _context2.next) {
|
|
21
|
+
case 0:
|
|
22
|
+
_context2.next = 2;
|
|
23
|
+
return Promise.all(imagesSrcs.map( /*#__PURE__*/function () {
|
|
24
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(src, index) {
|
|
25
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
26
|
+
while (1) {
|
|
27
|
+
switch (_context.prev = _context.next) {
|
|
28
|
+
case 0:
|
|
29
|
+
_context.next = 2;
|
|
30
|
+
return (0, _loadImageAsPromise.loadImageAsPromise)(src, index, null, onImageLoadCallback);
|
|
31
|
+
|
|
32
|
+
case 2:
|
|
33
|
+
case "end":
|
|
34
|
+
return _context.stop();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}, _callee);
|
|
38
|
+
}));
|
|
39
|
+
|
|
40
|
+
return function (_x3, _x4) {
|
|
41
|
+
return _ref2.apply(this, arguments);
|
|
42
|
+
};
|
|
43
|
+
}()));
|
|
44
|
+
|
|
45
|
+
case 2:
|
|
46
|
+
case "end":
|
|
47
|
+
return _context2.stop();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}, _callee2);
|
|
51
|
+
}));
|
|
52
|
+
|
|
53
|
+
return function loadOriginalImages(_x, _x2) {
|
|
54
|
+
return _ref.apply(this, arguments);
|
|
55
|
+
};
|
|
56
|
+
}();
|
|
57
|
+
|
|
58
|
+
exports.loadOriginalImages = loadOriginalImages;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.pad = void 0;
|
|
7
|
+
|
|
8
|
+
var pad = function pad(n) {
|
|
9
|
+
var width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
10
|
+
n += '';
|
|
11
|
+
return n.length >= width ? n : new Array(width - n.length + 1).join('0') + n;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
exports.pad = pad;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.preloadImages = void 0;
|
|
7
|
+
|
|
8
|
+
var _loadImagesRelativeToContainerSize = require("./load-images-relative-to-container-size");
|
|
9
|
+
|
|
10
|
+
var _prepareImagesFromFolder = require("./images-from-folder/prepare-images-from-folder");
|
|
11
|
+
|
|
12
|
+
var _prepareImagesFromList = require("./images-from-list/prepare-images-from-list");
|
|
13
|
+
|
|
14
|
+
/* eslint-disable no-console */
|
|
15
|
+
var preloadImages = function preloadImages(srcConfig, imagesSrc, onImageLoadCallback) {
|
|
16
|
+
var _ref = srcConfig || {},
|
|
17
|
+
imageList = _ref.imageList;
|
|
18
|
+
|
|
19
|
+
var imagesSets = {};
|
|
20
|
+
|
|
21
|
+
if (imageList) {
|
|
22
|
+
try {
|
|
23
|
+
var images = JSON.parse(imageList);
|
|
24
|
+
imagesSets = (0, _prepareImagesFromList.prepareImagesFromList)(images, srcConfig);
|
|
25
|
+
} catch (error) {
|
|
26
|
+
console.error("Wrong format in image-list attribute: ".concat(error.message));
|
|
27
|
+
}
|
|
28
|
+
} else {
|
|
29
|
+
imagesSets = (0, _prepareImagesFromFolder.prepareImagesFromFolder)(imagesSrc, srcConfig);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
var _ref2 = imagesSets || {},
|
|
33
|
+
resultSrc = _ref2.resultSrc;
|
|
34
|
+
|
|
35
|
+
(0, _loadImagesRelativeToContainerSize.loadImagesRelativeToContainerSize)(resultSrc, srcConfig, onImageLoadCallback);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
exports.preloadImages = preloadImages;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.preloadOriginalImages = void 0;
|
|
7
|
+
|
|
8
|
+
var _prepareImagesFromFolder = require("./images-from-folder/prepare-images-from-folder");
|
|
9
|
+
|
|
10
|
+
var _prepareImagesFromList = require("./images-from-list/prepare-images-from-list");
|
|
11
|
+
|
|
12
|
+
var _loadOriginalImages = require("./load-original-images");
|
|
13
|
+
|
|
14
|
+
/* eslint-disable no-console */
|
|
15
|
+
var preloadOriginalImages = function preloadOriginalImages(srcConfig, imagesSrc, onImageLoadCallback) {
|
|
16
|
+
var _ref = srcConfig || {},
|
|
17
|
+
imageList = _ref.imageList;
|
|
18
|
+
|
|
19
|
+
var imagesSets = {};
|
|
20
|
+
|
|
21
|
+
if (imageList) {
|
|
22
|
+
try {
|
|
23
|
+
var images = JSON.parse(imageList);
|
|
24
|
+
imagesSets = (0, _prepareImagesFromList.prepareImagesFromList)(images, srcConfig);
|
|
25
|
+
} catch (error) {
|
|
26
|
+
console.error("Wrong format in image-list attribute: ".concat(error.message));
|
|
27
|
+
}
|
|
28
|
+
} else {
|
|
29
|
+
imagesSets = (0, _prepareImagesFromFolder.prepareImagesFromFolder)(imagesSrc, srcConfig);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
var _ref2 = imagesSets || {},
|
|
33
|
+
originalSrc = _ref2.originalSrc;
|
|
34
|
+
|
|
35
|
+
(0, _loadOriginalImages.loadOriginalImages)(originalSrc, onImageLoadCallback);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
exports.preloadOriginalImages = preloadOriginalImages;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getCurrentOriginalImage = void 0;
|
|
7
|
+
|
|
8
|
+
var _orientations = require("../../constants/orientations");
|
|
9
|
+
|
|
10
|
+
var _regex = require("../../constants/regex");
|
|
11
|
+
|
|
12
|
+
var getCurrentOriginalImage = function getCurrentOriginalImage(movingDirection, imagesX, imagesY, activeImageX, activeImageY) {
|
|
13
|
+
var currentImage = new Image();
|
|
14
|
+
var originalImagesXSrcs = imagesX.map(function (image) {
|
|
15
|
+
return image.src.replace(_regex.ORGINAL_SIZE_REGEX, '').replace(_regex.AND_SYMBOL_REGEX, '?');
|
|
16
|
+
});
|
|
17
|
+
var originalImagesYSrcs = imagesY.map(function (image) {
|
|
18
|
+
return image.src.replace(_regex.ORGINAL_SIZE_REGEX, '').replace(_regex.AND_SYMBOL_REGEX, '?');
|
|
19
|
+
});
|
|
20
|
+
currentImage.src = originalImagesXSrcs[activeImageX - 1];
|
|
21
|
+
|
|
22
|
+
if (movingDirection === _orientations.ORIENTATIONS.Y) {
|
|
23
|
+
currentImage.src = originalImagesYSrcs[activeImageY - 1];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return currentImage;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
exports.getCurrentOriginalImage = getCurrentOriginalImage;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getCursorPosition = void 0;
|
|
7
|
+
|
|
8
|
+
var getCursorPosition = function getCursorPosition() {
|
|
9
|
+
var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.event;
|
|
10
|
+
var container = arguments.length > 1 ? arguments[1] : undefined;
|
|
11
|
+
var x = 0;
|
|
12
|
+
var y = 0;
|
|
13
|
+
var a = container.getBoundingClientRect();
|
|
14
|
+
x = event.pageX - a.left;
|
|
15
|
+
y = event.pageY - a.top;
|
|
16
|
+
x -= window.pageXOffset;
|
|
17
|
+
y -= window.pageYOffset;
|
|
18
|
+
return {
|
|
19
|
+
x: x,
|
|
20
|
+
y: y
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
exports.getCursorPosition = getCursorPosition;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.magnify = void 0;
|
|
7
|
+
|
|
8
|
+
var _moveMagnifier = require("./move-magnifier");
|
|
9
|
+
|
|
10
|
+
var magnify = function magnify(container, offset, currentImage, glass, zoom) {
|
|
11
|
+
var _ref = offset || {},
|
|
12
|
+
_ref$x = _ref.x,
|
|
13
|
+
offsetX = _ref$x === void 0 ? 0 : _ref$x,
|
|
14
|
+
_ref$y = _ref.y,
|
|
15
|
+
offsetY = _ref$y === void 0 ? 0 : _ref$y;
|
|
16
|
+
|
|
17
|
+
var backgroundSizeX = (container.offsetWidth - offsetX * 2) * zoom;
|
|
18
|
+
var backgroundSizeY = (container.offsetHeight - offsetY * 2) * zoom;
|
|
19
|
+
glass.setAttribute('class', 'cloudimage-360-img-magnifier-glass');
|
|
20
|
+
container.prepend(glass);
|
|
21
|
+
glass.style.backgroundImage = "url('".concat(currentImage.src, "')");
|
|
22
|
+
glass.style.backgroundSize = "".concat(backgroundSizeX, "px ").concat(backgroundSizeY, "px");
|
|
23
|
+
var bw = 3;
|
|
24
|
+
var w = glass.offsetWidth / 2;
|
|
25
|
+
var h = glass.offsetHeight / 2;
|
|
26
|
+
var containerConfig = {
|
|
27
|
+
container: container,
|
|
28
|
+
w: w,
|
|
29
|
+
h: h,
|
|
30
|
+
zoom: zoom,
|
|
31
|
+
bw: bw,
|
|
32
|
+
offsetX: offsetX,
|
|
33
|
+
offsetY: offsetY
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var MouseMoveHandler = function MouseMoveHandler(event) {
|
|
37
|
+
(0, _moveMagnifier.moveMagnifier)(event, containerConfig, glass);
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
var touchHandler = function touchHandler(event) {
|
|
41
|
+
(0, _moveMagnifier.moveMagnifier)(event, containerConfig, glass);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
glass.addEventListener('mousemove', MouseMoveHandler);
|
|
45
|
+
container.addEventListener('mousemove', MouseMoveHandler);
|
|
46
|
+
glass.addEventListener('touchmove', touchHandler, {
|
|
47
|
+
passive: true
|
|
48
|
+
});
|
|
49
|
+
container.addEventListener('touchmove', touchHandler, {
|
|
50
|
+
passive: true
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
exports.magnify = magnify;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.moveMagnifier = void 0;
|
|
7
|
+
|
|
8
|
+
var _getCursorPosition = require("./get-cursor-position");
|
|
9
|
+
|
|
10
|
+
var moveMagnifier = function moveMagnifier(e, containerConfig, glass) {
|
|
11
|
+
var container = containerConfig.container,
|
|
12
|
+
w = containerConfig.w,
|
|
13
|
+
h = containerConfig.h,
|
|
14
|
+
zoom = containerConfig.zoom,
|
|
15
|
+
bw = containerConfig.bw,
|
|
16
|
+
offsetX = containerConfig.offsetX,
|
|
17
|
+
offsetY = containerConfig.offsetY;
|
|
18
|
+
var x;
|
|
19
|
+
var y;
|
|
20
|
+
var pos = (0, _getCursorPosition.getCursorPosition)(e, container);
|
|
21
|
+
x = pos.x;
|
|
22
|
+
y = pos.y;
|
|
23
|
+
|
|
24
|
+
if (x > container.offsetWidth - w / zoom) {
|
|
25
|
+
x = container.offsetWidth - w / zoom;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (x < w / zoom) {
|
|
29
|
+
x = w / zoom;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (y > container.offsetHeight - h / zoom) {
|
|
33
|
+
y = container.offsetHeight - h / zoom;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (y < h / zoom) {
|
|
37
|
+
y = h / zoom;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
glass.style.left = "".concat(x - w, "px");
|
|
41
|
+
glass.style.top = "".concat(y - h, "px");
|
|
42
|
+
var backgroundPosX = (x - offsetX) * zoom - w + bw;
|
|
43
|
+
var backgroundPosY = (y - offsetY) * zoom - h + bw;
|
|
44
|
+
glass.style.backgroundPosition = "-".concat(backgroundPosX, "px -").concat(backgroundPosY, "px");
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
exports.moveMagnifier = moveMagnifier;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.fit = void 0;
|
|
7
|
+
|
|
8
|
+
var fit = function fit(contains) {
|
|
9
|
+
return function (parentWidth, parentHeight, childWidth, childHeight) {
|
|
10
|
+
var scale = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
|
|
11
|
+
var offsetX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0.5;
|
|
12
|
+
var offsetY = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 0.5;
|
|
13
|
+
var childRatio = childWidth / childHeight;
|
|
14
|
+
var parentRatio = parentWidth / parentHeight;
|
|
15
|
+
var width = parentWidth * scale;
|
|
16
|
+
var height = parentHeight * scale;
|
|
17
|
+
|
|
18
|
+
if (contains ? childRatio > parentRatio : childRatio < parentRatio) {
|
|
19
|
+
height = width / childRatio;
|
|
20
|
+
} else {
|
|
21
|
+
width = height * childRatio;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return {
|
|
25
|
+
width: width,
|
|
26
|
+
height: height,
|
|
27
|
+
offsetX: (parentWidth - width) * offsetX,
|
|
28
|
+
offsetY: (parentHeight - height) * offsetY
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
exports.fit = fit;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getContainerResponsiveHeight = void 0;
|
|
7
|
+
|
|
8
|
+
var getContainerResponsiveHeight = function getContainerResponsiveHeight(container, width, containerHeight) {
|
|
9
|
+
if (containerHeight) {
|
|
10
|
+
if (width < containerHeight) {
|
|
11
|
+
return width;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return containerHeight;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return container.offsetWidth;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
exports.getContainerResponsiveHeight = getContainerResponsiveHeight;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getContainerResponsiveWidth = void 0;
|
|
7
|
+
|
|
8
|
+
var getContainerResponsiveWidth = function getContainerResponsiveWidth(parentEl, containerWidth) {
|
|
9
|
+
if (containerWidth) {
|
|
10
|
+
if (parentEl.offsetWidth < containerWidth) {
|
|
11
|
+
return parentEl.offsetWidth;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return containerWidth;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return parentEl.offsetWidth;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
exports.getContainerResponsiveWidth = getContainerResponsiveWidth;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getResponsiveWidthOfContainer = void 0;
|
|
7
|
+
|
|
8
|
+
var _getSizeLimit = require("./get-size-limit");
|
|
9
|
+
|
|
10
|
+
var getResponsiveWidthOfContainer = function getResponsiveWidthOfContainer(width) {
|
|
11
|
+
return (0, _getSizeLimit.getSizeLimit)(width);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
exports.getResponsiveWidthOfContainer = getResponsiveWidthOfContainer;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getSizeAccordingToPixelRatio = void 0;
|
|
7
|
+
|
|
8
|
+
var getSizeAccordingToPixelRatio = function getSizeAccordingToPixelRatio(size) {
|
|
9
|
+
var splittedSizes = size.toString().split('x');
|
|
10
|
+
var result = [];
|
|
11
|
+
[].forEach.call(splittedSizes, function (splittedSize) {
|
|
12
|
+
result.push(splittedSize * Math.round(window.devicePixelRatio || 1));
|
|
13
|
+
});
|
|
14
|
+
return result.join('x');
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
exports.getSizeAccordingToPixelRatio = getSizeAccordingToPixelRatio;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getSizeLimit = void 0;
|
|
7
|
+
|
|
8
|
+
var getSizeLimit = function getSizeLimit(currentSize) {
|
|
9
|
+
if (currentSize <= 25) return '25';
|
|
10
|
+
if (currentSize <= 50) return '50';
|
|
11
|
+
return (Math.ceil(currentSize / 100) * 100).toString();
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
exports.getSizeLimit = getSizeLimit;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getMovingDirection = void 0;
|
|
7
|
+
|
|
8
|
+
var _orientations = require("../../constants/orientations");
|
|
9
|
+
|
|
10
|
+
var getMovingDirection = function getMovingDirection(isStartSpin, allowSpinY, prevPosition, nextPositions, currentMovingDirection) {
|
|
11
|
+
var movingDirection = _orientations.ORIENTATIONS.CENTER;
|
|
12
|
+
if (isStartSpin) return currentMovingDirection;
|
|
13
|
+
var differenceInPositionX = Math.abs(prevPosition.x - nextPositions.x);
|
|
14
|
+
var differenceInPositionY = Math.abs(prevPosition.y - nextPositions.y);
|
|
15
|
+
var sensitivity = 10;
|
|
16
|
+
if (differenceInPositionX > sensitivity) movingDirection = _orientations.ORIENTATIONS.X;
|
|
17
|
+
if (differenceInPositionY > sensitivity && allowSpinY) movingDirection = _orientations.ORIENTATIONS.Y;
|
|
18
|
+
return movingDirection;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
exports.getMovingDirection = getMovingDirection;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.generateZoomInSteps = void 0;
|
|
7
|
+
|
|
8
|
+
var generateZoomInSteps = function generateZoomInSteps(zoomIntenisty) {
|
|
9
|
+
var transitionStepsFactor = 20;
|
|
10
|
+
return Array.from(Array(transitionStepsFactor)).reduce(function (acc, _, index) {
|
|
11
|
+
var previousIndex = index - 1;
|
|
12
|
+
var previousValue = previousIndex < 0 ? 1 : acc[index - 1];
|
|
13
|
+
var step = previousValue + (zoomIntenisty - 1) / transitionStepsFactor;
|
|
14
|
+
var stepFixedValue = +step.toFixed(2);
|
|
15
|
+
(acc || []).push(stepFixedValue);
|
|
16
|
+
return acc;
|
|
17
|
+
}, []);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
exports.generateZoomInSteps = generateZoomInSteps;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.generateZoomOutSteps = void 0;
|
|
7
|
+
|
|
8
|
+
var generateZoomOutSteps = function generateZoomOutSteps(zoomIntenisty) {
|
|
9
|
+
var transitionStepsFactor = 20;
|
|
10
|
+
return Array.from(Array(transitionStepsFactor)).reduce(function (acc, _, index) {
|
|
11
|
+
var previousIndex = index - 1;
|
|
12
|
+
var previousValue = previousIndex < 0 ? zoomIntenisty : acc[index - 1];
|
|
13
|
+
var step = previousValue - (zoomIntenisty - 1) / transitionStepsFactor;
|
|
14
|
+
var stepFixedValue = +step.toFixed(2);
|
|
15
|
+
(acc || []).push(stepFixedValue);
|
|
16
|
+
return acc;
|
|
17
|
+
}, []);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
exports.generateZoomOutSteps = generateZoomOutSteps;
|