js-cloudimage-360-view 2.7.2-beta.5 → 2.7.3

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 (87) hide show
  1. package/CHANGELOG.md +16 -3
  2. package/LICENSE +13 -1
  3. package/README.md +117 -90
  4. package/dist/ci360.service.js +82 -81
  5. package/dist/ci360.utils.js +2 -2
  6. package/dist/constants/auto-play-behavior.js +13 -0
  7. package/dist/constants/falsy-values.js +8 -0
  8. package/dist/constants/index.js +43 -0
  9. package/dist/constants/orientations.js +12 -0
  10. package/dist/constants/regex.js +10 -0
  11. package/dist/index.js +6 -2
  12. package/dist/utils/auto-play/get-speed-factor.js +14 -0
  13. package/dist/utils/auto-play/is-completed-one-cycle.js +32 -0
  14. package/dist/utils/auto-play/loop.js +67 -0
  15. package/dist/utils/common/add-class.js +18 -0
  16. package/dist/utils/common/remove-class.js +16 -0
  17. package/dist/utils/container-elements/apply-styles-to-container.js +16 -0
  18. package/dist/utils/container-elements/create-360-view-circle-icon.js +16 -0
  19. package/dist/utils/container-elements/create-360-view-icon.js +15 -0
  20. package/dist/utils/container-elements/create-box-shadow.js +16 -0
  21. package/dist/utils/container-elements/create-canvas.js +16 -0
  22. package/dist/utils/container-elements/create-close-fullscreen-icon.js +14 -0
  23. package/dist/utils/container-elements/create-fullscreen-icon.js +14 -0
  24. package/dist/utils/container-elements/create-fullscreen-modal.js +20 -0
  25. package/dist/utils/container-elements/create-icons-container.js +15 -0
  26. package/dist/utils/container-elements/create-inner-box.js +15 -0
  27. package/dist/utils/container-elements/create-loader.js +15 -0
  28. package/dist/utils/container-elements/create-magnifier-icon.js +14 -0
  29. package/dist/utils/container-elements/index.js +101 -0
  30. package/dist/utils/controls/get-item-skipped.js +13 -0
  31. package/dist/utils/controls/init-controls.js +77 -0
  32. package/dist/utils/hotspot/attach-popup-events.js +63 -0
  33. package/dist/utils/hotspot/configs-error-handler.js +30 -0
  34. package/dist/utils/hotspot/create-popper-instace.js +32 -0
  35. package/dist/utils/hotspot/elements/create-carousel-dot.js +26 -0
  36. package/dist/utils/hotspot/elements/create-carousel-image.js +21 -0
  37. package/dist/utils/hotspot/elements/create-hotspot-icon.js +42 -0
  38. package/dist/utils/hotspot/elements/create-hotspot-popup-link.js +23 -0
  39. package/dist/utils/hotspot/elements/create-hotspots.js +20 -0
  40. package/dist/utils/hotspot/elements/create-images-carousel.js +27 -0
  41. package/dist/utils/hotspot/elements/create-modal-description.js +15 -0
  42. package/dist/utils/hotspot/elements/create-modal-title.js +15 -0
  43. package/dist/utils/hotspot/elements/create-model-elements.js +49 -0
  44. package/dist/utils/hotspot/elements/create-popup-arrow.js +16 -0
  45. package/dist/utils/hotspot/elements/create-popup.js +60 -0
  46. package/dist/utils/hotspot/fill-previous-coord-with-previous.js +26 -0
  47. package/dist/utils/hotspot/generate-hotspots-configs.js +41 -0
  48. package/dist/utils/hotspot/generate-popup-config.js +34 -0
  49. package/dist/utils/hotspot/get-hotspot-icon.js +14 -0
  50. package/dist/utils/hotspot/get-hotspot-orientation.js +21 -0
  51. package/dist/utils/hotspot/get-hotspot-popup-node.js +19 -0
  52. package/dist/utils/hotspot/get-hotspot-variant.js +20 -0
  53. package/dist/utils/hotspot/get-popup-node.js +14 -0
  54. package/dist/utils/hotspot/hide-hotspot-icon.js +13 -0
  55. package/dist/utils/hotspot/hide-hotspots-icons.js +18 -0
  56. package/dist/utils/hotspot/is-mouse-on-hotspot.js +14 -0
  57. package/dist/utils/hotspot/prepare-hotspots-positions.js +28 -0
  58. package/dist/utils/hotspot/set-current-slide.js +23 -0
  59. package/dist/utils/hotspot/update-hotspot-icon-position.js +21 -0
  60. package/dist/utils/hotspot/update-hotspots.js +60 -0
  61. package/dist/utils/image-src/generate-images-path.js +40 -0
  62. package/dist/utils/index.js +228 -0
  63. package/dist/utils/load-images/images-from-folder/prepare-images-from-folder.js +36 -0
  64. package/dist/utils/load-images/images-from-list/prepare-images-from-list.js +37 -0
  65. package/dist/utils/load-images/load-image-as-promise.js +79 -0
  66. package/dist/utils/load-images/load-image.js +26 -0
  67. package/dist/utils/load-images/load-images-relative-to-container-size.js +58 -0
  68. package/dist/utils/load-images/load-original-images.js +58 -0
  69. package/dist/utils/load-images/pad.js +14 -0
  70. package/dist/utils/load-images/preload-images.js +38 -0
  71. package/dist/utils/load-images/preload-original-images.js +38 -0
  72. package/dist/utils/magnify/get-current-original-image.js +29 -0
  73. package/dist/utils/magnify/get-cursor-position.js +24 -0
  74. package/dist/utils/magnify/magnify.js +54 -0
  75. package/dist/utils/magnify/move-magnifier.js +47 -0
  76. package/dist/utils/responsive/contain.js +11 -0
  77. package/dist/utils/responsive/fit.js +33 -0
  78. package/dist/utils/responsive/get-container-responsive-height.js +20 -0
  79. package/dist/utils/responsive/get-container-responsive-width.js +20 -0
  80. package/dist/utils/responsive/get-responsive-width-of-container.js +14 -0
  81. package/dist/utils/responsive/get-size-according-to-pixel-ratio.js +17 -0
  82. package/dist/utils/responsive/get-size-limit.js +14 -0
  83. package/dist/utils/spin-y/get-moving-direction.js +21 -0
  84. package/dist/utils/zoom/generate-zoom-in-steps.js +20 -0
  85. package/dist/utils/zoom/generate-zoom-out-steps.js +20 -0
  86. package/package.json +3 -3
  87. package/dist/ci360.constants.js +0 -34
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getSpeedFactor = void 0;
7
+
8
+ var getSpeedFactor = function getSpeedFactor(dragSpeed, amount, containerOffset) {
9
+ var containerOffsetWidth = Math.max(containerOffset, 600);
10
+ var speedFactor = dragSpeed / 150 * (36 / amount) * 25 * (containerOffsetWidth / 1500) || 1;
11
+ return Math.floor(speedFactor);
12
+ };
13
+
14
+ exports.getSpeedFactor = getSpeedFactor;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isCompletedOneCycle = void 0;
7
+
8
+ var _autoPlayBehavior = require("../../constants/auto-play-behavior");
9
+
10
+ var isCompletedOneCycle = function isCompletedOneCycle(autoplayBehavior, activeImageX, activeImageY, amountX, amountY, isReversed) {
11
+ switch (autoplayBehavior) {
12
+ case _autoPlayBehavior.AUTOPLAY_BEHAVIOR.SPIN_XY:
13
+ case _autoPlayBehavior.AUTOPLAY_BEHAVIOR.SPIN_Y:
14
+ {
15
+ var isReachedTheEdge = isReversed ? activeImageY === 1 : activeImageY === amountY;
16
+ if (isReachedTheEdge) return true;
17
+ return false;
18
+ }
19
+
20
+ case _autoPlayBehavior.AUTOPLAY_BEHAVIOR.SPIN_X:
21
+ case _autoPlayBehavior.AUTOPLAY_BEHAVIOR.SPIN_YX:
22
+ default:
23
+ {
24
+ var _isReachedTheEdge = isReversed ? activeImageX === 1 : activeImageX === amountX;
25
+
26
+ if (_isReachedTheEdge) return true;
27
+ return false;
28
+ }
29
+ }
30
+ };
31
+
32
+ exports.isCompletedOneCycle = isCompletedOneCycle;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.loop = void 0;
7
+
8
+ var _autoPlayBehavior = require("../../constants/auto-play-behavior");
9
+
10
+ var loop = function loop(autoplayBehavior, spinY, reversed, loopTriggers) {
11
+ var bottom = loopTriggers.bottom,
12
+ top = loopTriggers.top,
13
+ left = loopTriggers.left,
14
+ right = loopTriggers.right;
15
+
16
+ switch (autoplayBehavior) {
17
+ case _autoPlayBehavior.AUTOPLAY_BEHAVIOR.SPIN_Y:
18
+ if (reversed) {
19
+ bottom();
20
+ } else {
21
+ top();
22
+ }
23
+
24
+ break;
25
+
26
+ case _autoPlayBehavior.AUTOPLAY_BEHAVIOR.SPIN_XY:
27
+ if (spinY) {
28
+ if (reversed) {
29
+ bottom();
30
+ } else {
31
+ top();
32
+ }
33
+ } else if (reversed) {
34
+ left();
35
+ } else {
36
+ right();
37
+ }
38
+
39
+ break;
40
+
41
+ case _autoPlayBehavior.AUTOPLAY_BEHAVIOR.SPIN_YX:
42
+ if (spinY) {
43
+ if (reversed) {
44
+ bottom();
45
+ } else {
46
+ top();
47
+ }
48
+ } else if (reversed) {
49
+ left();
50
+ } else {
51
+ right();
52
+ }
53
+
54
+ break;
55
+
56
+ case _autoPlayBehavior.AUTOPLAY_BEHAVIOR.SPIN_X:
57
+ default:
58
+ if (reversed) {
59
+ left();
60
+ } else {
61
+ right();
62
+ }
63
+
64
+ }
65
+ };
66
+
67
+ exports.loop = loop;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.addClass = void 0;
7
+
8
+ var addClass = function addClass(el, className) {
9
+ var element = el || {};
10
+
11
+ if (element.classList) {
12
+ element.classList.add(className);
13
+ } else {
14
+ element.className += " ".concat(className);
15
+ }
16
+ };
17
+
18
+ exports.addClass = addClass;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.removeClass = void 0;
7
+
8
+ var removeClass = function removeClass(el, className) {
9
+ if (el.classList) {
10
+ el.classList.remove(className);
11
+ } else {
12
+ el.className = el.className.replace(new RegExp("(^|\\b)".concat(className.split(' ').join('|'), "(\\b|$)"), 'gi'), ' ');
13
+ }
14
+ };
15
+
16
+ exports.removeClass = removeClass;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.applyStylesToContainer = void 0;
7
+
8
+ var applyStylesToContainer = function applyStylesToContainer(container) {
9
+ container.style.position = 'relative';
10
+ container.style.width = '100%';
11
+ container.style.cursor = 'wait';
12
+ container.setAttribute('draggable', 'false');
13
+ container.className = "".concat(container.className, " initialized");
14
+ };
15
+
16
+ exports.applyStylesToContainer = applyStylesToContainer;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.create360ViewCircleIcon = void 0;
7
+
8
+ var create360ViewCircleIcon = function create360ViewCircleIcon(circleOffset) {
9
+ var view360CircleIcon = new Image();
10
+ view360CircleIcon.src = 'https://scaleflex.ultrafast.io/https://scaleflex.api.airstore.io/v1/get/_/2236d56f-914a-5a8b-a3ae-f7bde1c50000/360.svg';
11
+ view360CircleIcon.style.bottom = "".concat(circleOffset, "%");
12
+ view360CircleIcon.className = 'cloudimage-360-view-360-circle';
13
+ return view360CircleIcon;
14
+ };
15
+
16
+ exports.create360ViewCircleIcon = create360ViewCircleIcon;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.create360ViewIcon = void 0;
7
+
8
+ var create360ViewIcon = function create360ViewIcon() {
9
+ var view360Icon = document.createElement('div');
10
+ view360Icon.className = 'cloudimage-360-view-360-icon';
11
+ view360Icon.innerText = '0%';
12
+ return view360Icon;
13
+ };
14
+
15
+ exports.create360ViewIcon = create360ViewIcon;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createBoxShadow = void 0;
7
+
8
+ var createBoxShadow = function createBoxShadow(boxShadow, innerBox) {
9
+ var nextBoxShadow = document.createElement('div');
10
+ nextBoxShadow.className = 'cloudimage-360-box-shadow';
11
+ nextBoxShadow.style.boxShadow = boxShadow;
12
+ innerBox.appendChild(nextBoxShadow);
13
+ return nextBoxShadow;
14
+ };
15
+
16
+ exports.createBoxShadow = createBoxShadow;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createCanvas = void 0;
7
+
8
+ var createCanvas = function createCanvas(innerBox) {
9
+ var canvas = document.createElement('canvas');
10
+ canvas.style.width = '100%';
11
+ canvas.style.fontSize = '0';
12
+ innerBox.appendChild(canvas);
13
+ return canvas;
14
+ };
15
+
16
+ exports.createCanvas = createCanvas;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createCloseFullscreenIcon = void 0;
7
+
8
+ var createCloseFullscreenIcon = function createCloseFullscreenIcon() {
9
+ var closeFullscreenIcon = document.createElement('div');
10
+ closeFullscreenIcon.className = 'cloudimage-360-close-fullscreen-icon';
11
+ return closeFullscreenIcon;
12
+ };
13
+
14
+ exports.createCloseFullscreenIcon = createCloseFullscreenIcon;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFullscreenIcon = void 0;
7
+
8
+ var createFullscreenIcon = function createFullscreenIcon() {
9
+ var fullscreenIcon = document.createElement('div');
10
+ fullscreenIcon.className = 'cloudimage-360-fullscreen-icon';
11
+ return fullscreenIcon;
12
+ };
13
+
14
+ exports.createFullscreenIcon = createFullscreenIcon;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFullscreenModal = void 0;
7
+
8
+ var createFullscreenModal = function createFullscreenModal(container) {
9
+ var fullscreenModal = document.createElement('div');
10
+ fullscreenModal.className = 'cloudimage-360-fullscreen-modal';
11
+ var fullscreenContainer = container.cloneNode();
12
+ fullscreenContainer.style.height = '100%';
13
+ fullscreenContainer.style.maxHeight = '100%';
14
+ fullscreenModal.appendChild(fullscreenContainer);
15
+ window.document.body.style.overflow = 'hidden';
16
+ window.document.body.appendChild(fullscreenModal);
17
+ return fullscreenContainer;
18
+ };
19
+
20
+ exports.createFullscreenModal = createFullscreenModal;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createIconsContainer = void 0;
7
+
8
+ var createIconsContainer = function createIconsContainer(innerBox) {
9
+ var iconsContainer = document.createElement('div');
10
+ iconsContainer.className = 'cloudimage-360-icons-container';
11
+ innerBox.appendChild(iconsContainer);
12
+ return iconsContainer;
13
+ };
14
+
15
+ exports.createIconsContainer = createIconsContainer;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createInnerBox = void 0;
7
+
8
+ var createInnerBox = function createInnerBox(container) {
9
+ var innerBox = document.createElement('div');
10
+ innerBox.className = 'cloudimage-360-inner-box';
11
+ container.appendChild(innerBox);
12
+ return innerBox;
13
+ };
14
+
15
+ exports.createInnerBox = createInnerBox;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createLoader = void 0;
7
+
8
+ var createLoader = function createLoader(innerBox) {
9
+ var loader = document.createElement('div');
10
+ loader.className = 'cloudimage-360-loader';
11
+ innerBox.appendChild(loader);
12
+ return loader;
13
+ };
14
+
15
+ exports.createLoader = createLoader;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createMagnifierIcon = void 0;
7
+
8
+ var createMagnifierIcon = function createMagnifierIcon() {
9
+ var magnifyIcon = document.createElement('div');
10
+ magnifyIcon.className = 'cloudimage-360-magnifier-icon';
11
+ return magnifyIcon;
12
+ };
13
+
14
+ exports.createMagnifierIcon = createMagnifierIcon;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "applyStylesToContainer", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _applyStylesToContainer.applyStylesToContainer;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "create360ViewCircleIcon", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _create360ViewCircleIcon.create360ViewCircleIcon;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "create360ViewIcon", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _create360ViewIcon.create360ViewIcon;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "createBoxShadow", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _createBoxShadow.createBoxShadow;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "createCanvas", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _createCanvas.createCanvas;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "createCloseFullscreenIcon", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _createCloseFullscreenIcon.createCloseFullscreenIcon;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "createFullscreenIcon", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _createFullscreenIcon.createFullscreenIcon;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "createFullscreenModal", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _createFullscreenModal.createFullscreenModal;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "createIconsContainer", {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _createIconsContainer.createIconsContainer;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "createInnerBox", {
61
+ enumerable: true,
62
+ get: function get() {
63
+ return _createInnerBox.createInnerBox;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "createLoader", {
67
+ enumerable: true,
68
+ get: function get() {
69
+ return _createLoader.createLoader;
70
+ }
71
+ });
72
+ Object.defineProperty(exports, "createMagnifierIcon", {
73
+ enumerable: true,
74
+ get: function get() {
75
+ return _createMagnifierIcon.createMagnifierIcon;
76
+ }
77
+ });
78
+
79
+ var _create360ViewCircleIcon = require("./create-360-view-circle-icon");
80
+
81
+ var _create360ViewIcon = require("./create-360-view-icon");
82
+
83
+ var _createCanvas = require("./create-canvas");
84
+
85
+ var _createCloseFullscreenIcon = require("./create-close-fullscreen-icon");
86
+
87
+ var _createFullscreenIcon = require("./create-fullscreen-icon");
88
+
89
+ var _createIconsContainer = require("./create-icons-container");
90
+
91
+ var _createInnerBox = require("./create-inner-box");
92
+
93
+ var _createMagnifierIcon = require("./create-magnifier-icon");
94
+
95
+ var _createBoxShadow = require("./create-box-shadow");
96
+
97
+ var _createLoader = require("./create-loader");
98
+
99
+ var _applyStylesToContainer = require("./apply-styles-to-container");
100
+
101
+ var _createFullscreenModal = require("./create-fullscreen-modal");
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getItemSkipped = void 0;
7
+
8
+ var getItemSkipped = function getItemSkipped(currentPosition, movementStart, speedFactor) {
9
+ var itemsSkipped = Math.floor((currentPosition - movementStart) / speedFactor) || 1;
10
+ return itemsSkipped;
11
+ };
12
+
13
+ exports.getItemSkipped = getItemSkipped;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.initControls = void 0;
7
+
8
+ var _addClass = require("../common/add-class");
9
+
10
+ var initControls = function initControls(controlsConfig, controlsTriggers) {
11
+ var container = controlsConfig.container,
12
+ controlReverse = controlsConfig.controlReverse,
13
+ spinReverse = controlsConfig.spinReverse,
14
+ stopAtEdges = controlsConfig.stopAtEdges;
15
+ var onRightStart = controlsTriggers.onRightStart,
16
+ onLeftStart = controlsTriggers.onLeftStart,
17
+ onTopStart = controlsTriggers.onTopStart,
18
+ onBottomStart = controlsTriggers.onBottomStart,
19
+ onEventEnd = controlsTriggers.onEventEnd;
20
+ var controlElements = {};
21
+ var isReverse = controlReverse ? !spinReverse : spinReverse;
22
+ var left = container.querySelectorAll('.cloudimage-360-left, .cloudimage-360-prev')[0];
23
+ var right = container.querySelectorAll('.cloudimage-360-right, .cloudimage-360-next')[0];
24
+ var top = container.querySelector('.cloudimage-360-top');
25
+ var bottom = container.querySelector('.cloudimage-360-bottom');
26
+
27
+ if (left) {
28
+ left.style.display = 'block';
29
+ left.addEventListener('mousedown', isReverse ? onRightStart : onLeftStart);
30
+ left.addEventListener('touchstart', isReverse ? onRightStart : onLeftStart, {
31
+ passive: true
32
+ });
33
+ left.addEventListener('mouseup', isReverse ? onEventEnd : onEventEnd);
34
+ left.addEventListener('touchend', isReverse ? onEventEnd : onEventEnd);
35
+ controlElements.left = left;
36
+ }
37
+
38
+ if (right) {
39
+ right.style.display = 'block';
40
+ right.addEventListener('mousedown', isReverse ? onLeftStart : onRightStart);
41
+ right.addEventListener('touchstart', isReverse ? onLeftStart : onRightStart, {
42
+ passive: true
43
+ });
44
+ right.addEventListener('mouseup', onEventEnd);
45
+ right.addEventListener('touchend', onEventEnd);
46
+ controlElements.right = right;
47
+ }
48
+
49
+ if (top) {
50
+ top.style.display = 'block';
51
+ top.addEventListener('mousedown', isReverse ? onBottomStart : onTopStart);
52
+ top.addEventListener('touchstart', isReverse ? onBottomStart : onTopStart);
53
+ top.addEventListener('mouseup', isReverse ? onEventEnd : onEventEnd);
54
+ top.addEventListener('touchend', isReverse ? onEventEnd : onEventEnd);
55
+ controlElements.top = top;
56
+ }
57
+
58
+ if (bottom) {
59
+ bottom.style.display = 'block';
60
+ bottom.addEventListener('mousedown', isReverse ? onTopStart : onBottomStart);
61
+ bottom.addEventListener('touchstart', isReverse ? onTopStart : onBottomStart);
62
+ bottom.addEventListener('mouseup', isReverse ? onEventEnd : onEventEnd);
63
+ bottom.addEventListener('touchend', isReverse ? onEventEnd : onEventEnd);
64
+ controlElements.bottom = bottom;
65
+ }
66
+
67
+ if (isReverse ? right : left) {
68
+ if (stopAtEdges) {
69
+ (0, _addClass.addClass)(isReverse ? right : left, 'not-active');
70
+ (0, _addClass.addClass)(isReverse ? top : bottom, 'not-active');
71
+ }
72
+ }
73
+
74
+ return controlElements;
75
+ };
76
+
77
+ exports.initControls = initControls;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.attachPopupEvents = void 0;
9
+
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ 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) { (0, _defineProperty2.default)(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; }
17
+
18
+ var attachPopupEvents = function attachPopupEvents(reference, popper, popperInstance, open) {
19
+ if (open) return;
20
+ var showEvents = ['mouseenter', 'focus'];
21
+ var hideEvents = ['mouseleave', 'blur'];
22
+ var isVisible;
23
+
24
+ var showPopup = function showPopup() {
25
+ popper.setAttribute('data-show', '');
26
+ popper.setAttribute('data-cloudimage-360-show', '');
27
+ popperInstance.update();
28
+ };
29
+
30
+ var hidePopup = function hidePopup() {
31
+ setTimeout(function () {
32
+ if (!isVisible) {
33
+ popper.removeAttribute('data-show');
34
+ popper.removeAttribute('data-cloudimage-360-show');
35
+ popperInstance.setOptions(function (options) {
36
+ return _objectSpread(_objectSpread({}, options), {}, {
37
+ modifiers: [].concat((0, _toConsumableArray2.default)(options.modifiers), [{
38
+ name: 'eventListeners',
39
+ enabled: false
40
+ }])
41
+ });
42
+ });
43
+ } else {
44
+ isVisible = false;
45
+ }
46
+ }, 160);
47
+ };
48
+
49
+ var keepPopupShown = function keepPopupShown() {
50
+ isVisible = true;
51
+ };
52
+
53
+ showEvents.forEach(function (event) {
54
+ reference.addEventListener(event, showPopup);
55
+ });
56
+ hideEvents.forEach(function (event) {
57
+ reference.addEventListener(event, hidePopup);
58
+ });
59
+ popper.addEventListener('mouseenter', keepPopupShown);
60
+ popper.addEventListener('mouseleave', hidePopup);
61
+ };
62
+
63
+ exports.attachPopupEvents = attachPopupEvents;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configsErrorHandler = void 0;
7
+
8
+ var configsErrorHandler = function configsErrorHandler(hotspotProps) {
9
+ var _hotspotProps$variant = hotspotProps.variant,
10
+ variant = _hotspotProps$variant === void 0 ? {} : _hotspotProps$variant,
11
+ _hotspotProps$popupPr = hotspotProps.popupProps,
12
+ popupProps = _hotspotProps$popupPr === void 0 ? {} : _hotspotProps$popupPr;
13
+ var anchorId = popupProps.anchorId;
14
+ var url = variant.url,
15
+ title = variant.title;
16
+
17
+ if (url && !title) {
18
+ console.error('Cloudimage-360: Hotspot config with variant link must have title for the link');
19
+ }
20
+
21
+ if (title && !url) {
22
+ console.error('Cloudimage-360: Hotspot config with variant link must have url for the link');
23
+ }
24
+
25
+ if (!title && !url && !anchorId) {
26
+ console.error('Cloudimage-360: Hotspot config with custom variant must provide anchorId');
27
+ }
28
+ };
29
+
30
+ exports.configsErrorHandler = configsErrorHandler;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createPopperInstance = void 0;
7
+
8
+ var _core = require("@popperjs/core");
9
+
10
+ var createPopperInstance = function createPopperInstance(popper, popupProps, container) {
11
+ var placement = popupProps.placement,
12
+ offset = popupProps.offset;
13
+ var virtualReference = document.createElement('div');
14
+ var popperInstance = (0, _core.createPopper)(virtualReference, popper);
15
+ popperInstance.setOptions({
16
+ placement: placement,
17
+ modifiers: [{
18
+ name: 'offset',
19
+ options: {
20
+ offset: offset
21
+ }
22
+ }, {
23
+ name: 'preventOverflow',
24
+ options: {
25
+ boundary: container
26
+ }
27
+ }]
28
+ });
29
+ return popperInstance;
30
+ };
31
+
32
+ exports.createPopperInstance = createPopperInstance;