js-cloudimage-360-view 3.0.0-beta.0 → 3.0.1

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 (95) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/LICENSE +13 -1
  3. package/README.md +360 -131
  4. package/dist/ci360.service.js +924 -1116
  5. package/dist/ci360.utils.js +36 -196
  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/props-require-reload.js +21 -0
  11. package/dist/constants/regex.js +10 -0
  12. package/dist/index.js +73 -12
  13. package/dist/static/css/hotspots.css +222 -0
  14. package/dist/static/css/style.css +113 -4
  15. package/dist/utils/auto-play/get-speed-factor.js +14 -0
  16. package/dist/utils/auto-play/is-completed-one-cycle.js +32 -0
  17. package/dist/utils/auto-play/loop.js +67 -0
  18. package/dist/utils/class-names/add-class.js +18 -0
  19. package/dist/utils/class-names/remove-class.js +16 -0
  20. package/dist/utils/container-elements/apply-styles-to-container.js +16 -0
  21. package/dist/utils/container-elements/create-360-view-circle-icon.js +16 -0
  22. package/dist/utils/container-elements/create-360-view-icon.js +15 -0
  23. package/dist/utils/container-elements/create-box-shadow.js +16 -0
  24. package/dist/utils/container-elements/create-canvas.js +16 -0
  25. package/dist/utils/container-elements/create-close-fullscreen-icon.js +14 -0
  26. package/dist/utils/container-elements/create-fullscreen-icon.js +14 -0
  27. package/dist/utils/container-elements/create-fullscreen-modal.js +20 -0
  28. package/dist/utils/container-elements/create-icons-container.js +15 -0
  29. package/dist/utils/container-elements/create-inner-box.js +15 -0
  30. package/dist/utils/container-elements/create-loader.js +15 -0
  31. package/dist/utils/container-elements/create-magnifier-icon.js +14 -0
  32. package/dist/utils/container-elements/index.js +109 -0
  33. package/dist/utils/container-elements/remove-child-from-parent.js +16 -0
  34. package/dist/utils/controls/get-item-skipped.js +13 -0
  35. package/dist/utils/controls/init-controls.js +77 -0
  36. package/dist/utils/hotspots/attach-events/hide-popup.js +15 -0
  37. package/dist/utils/hotspots/attach-events/show-popup.js +14 -0
  38. package/dist/utils/hotspots/configs-error-handler.js +27 -0
  39. package/dist/utils/hotspots/create-popper-instace.js +32 -0
  40. package/dist/utils/hotspots/elements/create-carousel-dot.js +26 -0
  41. package/dist/utils/hotspots/elements/create-carousel-image.js +22 -0
  42. package/dist/utils/hotspots/elements/create-hotspot-icon.js +66 -0
  43. package/dist/utils/hotspots/elements/create-hotspot-popup-link.js +23 -0
  44. package/dist/utils/hotspots/elements/create-hotspots.js +25 -0
  45. package/dist/utils/hotspots/elements/create-images-carousel.js +27 -0
  46. package/dist/utils/hotspots/elements/create-modal-description.js +15 -0
  47. package/dist/utils/hotspots/elements/create-modal-title.js +15 -0
  48. package/dist/utils/hotspots/elements/create-model-elements.js +66 -0
  49. package/dist/utils/hotspots/elements/create-popup-arrow.js +16 -0
  50. package/dist/utils/hotspots/elements/create-popup.js +67 -0
  51. package/dist/utils/hotspots/elements/create-read-more-btn.js +17 -0
  52. package/dist/utils/hotspots/fill-empty-coord-with-previous.js +26 -0
  53. package/dist/utils/hotspots/generate-hotspots-configs.js +58 -0
  54. package/dist/utils/hotspots/generate-popup-config.js +29 -0
  55. package/dist/utils/hotspots/get-hotspot-icon.js +14 -0
  56. package/dist/utils/hotspots/get-hotspot-orientation.js +21 -0
  57. package/dist/utils/hotspots/get-hotspot-popup-node.js +14 -0
  58. package/dist/utils/hotspots/get-popup-node.js +14 -0
  59. package/dist/utils/hotspots/hide-hotspot-icon.js +13 -0
  60. package/dist/utils/hotspots/hide-hotspots-icons.js +18 -0
  61. package/dist/utils/hotspots/is-mouse-on-hotspot.js +14 -0
  62. package/dist/utils/hotspots/prepare-hotspots-positions.js +28 -0
  63. package/dist/utils/hotspots/set-current-slide.js +23 -0
  64. package/dist/utils/hotspots/toggle-popup-events.js +23 -0
  65. package/dist/utils/hotspots/update-hotspot-icon-position.js +21 -0
  66. package/dist/utils/hotspots/update-hotspots.js +48 -0
  67. package/dist/utils/image-src/generate-images-path.js +42 -0
  68. package/dist/utils/image-src/is-props-change-require-reload.js +23 -0
  69. package/dist/utils/index.js +237 -0
  70. package/dist/utils/load-images/images-from-folder/prepare-images-from-folder.js +34 -0
  71. package/dist/utils/load-images/images-from-list/prepare-images-from-list.js +35 -0
  72. package/dist/utils/load-images/lazyload/init-lazyload.js +49 -0
  73. package/dist/utils/load-images/lazyload/prepare-first-image/prepare-first-image-from-folder.js +18 -0
  74. package/dist/utils/load-images/lazyload/prepare-first-image/prepare-first-image-from-list.js +29 -0
  75. package/dist/utils/load-images/load-image-as-promise.js +54 -0
  76. package/dist/utils/load-images/load-images-relative-to-container-size.js +58 -0
  77. package/dist/utils/load-images/load-original-images.js +58 -0
  78. package/dist/utils/load-images/pad.js +14 -0
  79. package/dist/utils/load-images/preload-images.js +35 -0
  80. package/dist/utils/load-images/preload-original-images.js +35 -0
  81. package/dist/utils/magnify/get-current-original-image.js +29 -0
  82. package/dist/utils/magnify/get-cursor-position.js +24 -0
  83. package/dist/utils/magnify/magnify.js +54 -0
  84. package/dist/utils/magnify/move-magnifier.js +47 -0
  85. package/dist/utils/responsive/contain.js +11 -0
  86. package/dist/utils/responsive/fit.js +33 -0
  87. package/dist/utils/responsive/get-image-aspect-ratio.js +39 -0
  88. package/dist/utils/responsive/get-responsive-width-of-container.js +14 -0
  89. package/dist/utils/responsive/get-size-according-to-pixel-ratio.js +17 -0
  90. package/dist/utils/responsive/get-size-limit.js +14 -0
  91. package/dist/utils/spin-y/get-moving-direction.js +21 -0
  92. package/dist/utils/zoom/generate-zoom-in-steps.js +20 -0
  93. package/dist/utils/zoom/generate-zoom-out-steps.js +20 -0
  94. package/package.json +13 -10
  95. package/dist/ci360.constants.js +0 -31
@@ -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,109 @@
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
+ Object.defineProperty(exports, "removeChildFromParent", {
79
+ enumerable: true,
80
+ get: function get() {
81
+ return _removeChildFromParent.removeChildFromParent;
82
+ }
83
+ });
84
+
85
+ var _create360ViewCircleIcon = require("./create-360-view-circle-icon");
86
+
87
+ var _create360ViewIcon = require("./create-360-view-icon");
88
+
89
+ var _createCanvas = require("./create-canvas");
90
+
91
+ var _createCloseFullscreenIcon = require("./create-close-fullscreen-icon");
92
+
93
+ var _createFullscreenIcon = require("./create-fullscreen-icon");
94
+
95
+ var _createIconsContainer = require("./create-icons-container");
96
+
97
+ var _createInnerBox = require("./create-inner-box");
98
+
99
+ var _createMagnifierIcon = require("./create-magnifier-icon");
100
+
101
+ var _createBoxShadow = require("./create-box-shadow");
102
+
103
+ var _createLoader = require("./create-loader");
104
+
105
+ var _applyStylesToContainer = require("./apply-styles-to-container");
106
+
107
+ var _createFullscreenModal = require("./create-fullscreen-modal");
108
+
109
+ var _removeChildFromParent = require("./remove-child-from-parent");
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.removeChildFromParent = void 0;
7
+
8
+ var removeChildFromParent = function removeChildFromParent(parent, child) {
9
+ if (parent && child) {
10
+ try {
11
+ parent.removeChild(child);
12
+ } catch (_unused) {}
13
+ }
14
+ };
15
+
16
+ exports.removeChildFromParent = removeChildFromParent;
@@ -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("../class-names/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,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.hidePopup = void 0;
7
+
8
+ var hidePopup = function hidePopup(popup, isVisible) {
9
+ if (!isVisible) {
10
+ popup.removeAttribute('data-show');
11
+ popup.removeAttribute('data-cloudimage-360-show');
12
+ }
13
+ };
14
+
15
+ exports.hidePopup = hidePopup;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.showPopup = void 0;
7
+
8
+ var showPopup = function showPopup(popup, popperInstance) {
9
+ popup.setAttribute('data-show', '');
10
+ popup.setAttribute('data-cloudimage-360-show', '');
11
+ popperInstance.update();
12
+ };
13
+
14
+ exports.showPopup = showPopup;
@@ -0,0 +1,27 @@
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
+ var url = variant.url,
12
+ title = variant.title,
13
+ anchorId = variant.anchorId,
14
+ images = variant.images,
15
+ description = variant.description,
16
+ moreDetailsUrl = variant.moreDetailsUrl;
17
+
18
+ if (url && !title) {
19
+ console.error('Cloudimage-360: Hotspot config with variant link must have title for the link');
20
+ }
21
+
22
+ if (!title && !url && !anchorId && !images && !description && !moreDetailsUrl) {
23
+ console.error('Cloudimage-360: Hotspot config with custom variant must provide anchorId');
24
+ }
25
+ };
26
+
27
+ 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;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createCarouselDot = void 0;
7
+
8
+ var _setCurrentSlide = require("../set-current-slide");
9
+
10
+ var createCarouselDot = function createCarouselDot(image, imageIndex, popup) {
11
+ var imageDot = document.createElement('button');
12
+ imageDot.className = 'cloudimage-360-carousel-dot';
13
+
14
+ imageDot.onclick = function () {
15
+ return (0, _setCurrentSlide.setCurrentSlide)(image, imageDot, popup);
16
+ };
17
+
18
+ if (!imageIndex) {
19
+ imageDot.className += ' active-dot';
20
+ imageDot.setAttribute('data-active-dot', '');
21
+ }
22
+
23
+ return imageDot;
24
+ };
25
+
26
+ exports.createCarouselDot = createCarouselDot;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createCarouselImage = void 0;
7
+
8
+ var createCarouselImage = function createCarouselImage(image, imageIndex) {
9
+ var carouselImage = document.createElement('img');
10
+ carouselImage.className = 'cloudimage-360-carousel-image';
11
+ carouselImage.setAttribute('src', image.src || '');
12
+ carouselImage.setAttribute('alt', image.alt || 'more-info');
13
+
14
+ if (!imageIndex) {
15
+ carouselImage.setAttribute('data-active-image', '');
16
+ carouselImage.className += ' active-image';
17
+ }
18
+
19
+ return carouselImage;
20
+ };
21
+
22
+ exports.createCarouselImage = createCarouselImage;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createHotspotIcon = void 0;
7
+
8
+ var _hidePopup = require("../attach-events/hide-popup");
9
+
10
+ var _showPopup = require("../attach-events/show-popup");
11
+
12
+ var _hideHotspotIcon = require("../hide-hotspot-icon");
13
+
14
+ var createHotspotIcon = function createHotspotIcon(container, hotspotConfig, popup, popperInstance) {
15
+ var indicatorSelector = hotspotConfig.indicatorSelector,
16
+ variant = hotspotConfig.variant;
17
+ var url = variant.url,
18
+ anchorId = variant.anchorId;
19
+ var _hotspotConfig$popupP = hotspotConfig.popupProps.open,
20
+ open = _hotspotConfig$popupP === void 0 ? false : _hotspotConfig$popupP;
21
+ var isVisible;
22
+ var hotspotIcon = document.createElement('div');
23
+ hotspotIcon.style.position = 'absolute';
24
+ hotspotIcon.className = "cloudimage-360-hotspot-".concat(url ? 'link' : 'custom', "-icon ").concat(indicatorSelector);
25
+ hotspotIcon.setAttribute('data-hotspot-icon-id', anchorId);
26
+ hotspotIcon.setAttribute('data-cloudimage-360-hotspot', '');
27
+
28
+ var popupMouseEnter = function popupMouseEnter() {
29
+ isVisible = true;
30
+ };
31
+
32
+ var popupMouseLeave = function popupMouseLeave() {
33
+ isVisible = false;
34
+ !open && (0, _hidePopup.hidePopup)(popup, isVisible);
35
+ };
36
+
37
+ hotspotIcon.onclick = function (e) {
38
+ return e.stopPropagation();
39
+ };
40
+
41
+ var showEvents = ['mouseenter', 'touchstart', 'focus'];
42
+ var hideEvents = ['mouseleave', 'blur'];
43
+ showEvents.forEach(function (event) {
44
+ hotspotIcon.addEventListener(event, function () {
45
+ return (0, _showPopup.showPopup)(popup, popperInstance);
46
+ });
47
+ });
48
+
49
+ if (!open) {
50
+ hideEvents.forEach(function (event) {
51
+ hotspotIcon.addEventListener(event, function () {
52
+ return setTimeout(function () {
53
+ return (0, _hidePopup.hidePopup)(popup, isVisible);
54
+ }, 160);
55
+ });
56
+ });
57
+ }
58
+
59
+ popup.addEventListener('mouseenter', popupMouseEnter);
60
+ popup.addEventListener('mouseleave', popupMouseLeave);
61
+ (0, _hideHotspotIcon.hideHotspotIcon)(hotspotIcon);
62
+ container.appendChild(hotspotIcon);
63
+ return hotspotIcon;
64
+ };
65
+
66
+ exports.createHotspotIcon = createHotspotIcon;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createHotspotPopupLink = void 0;
7
+
8
+ var createHotspotPopupLink = function createHotspotPopupLink(variant) {
9
+ var url = variant.url,
10
+ title = variant.title,
11
+ newTab = variant.newTab;
12
+ var hyperLink = document.createElement('a');
13
+ hyperLink.href = url;
14
+ hyperLink.innerText = title;
15
+
16
+ if (newTab) {
17
+ hyperLink.target = '_blank';
18
+ }
19
+
20
+ return hyperLink;
21
+ };
22
+
23
+ exports.createHotspotPopupLink = createHotspotPopupLink;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createHotspots = void 0;
7
+
8
+ var _createPopperInstace = require("../create-popper-instace");
9
+
10
+ var _createHotspotIcon = require("./create-hotspot-icon");
11
+
12
+ var _createPopup = require("./create-popup");
13
+
14
+ var createHotspots = function createHotspots(container, hotspotsProps) {
15
+ hotspotsProps.forEach(function (hotspotProps) {
16
+ var popupProps = hotspotProps.popupProps;
17
+ var popup = (0, _createPopup.createPopup)(container, hotspotProps, popupProps);
18
+ var popperInstance = (0, _createPopperInstace.createPopperInstance)(popup, popupProps, container);
19
+ var hotspotIcon = (0, _createHotspotIcon.createHotspotIcon)(container, hotspotProps, popup, popperInstance);
20
+ popperInstance.state.elements.reference = hotspotIcon;
21
+ popperInstance.update();
22
+ });
23
+ };
24
+
25
+ exports.createHotspots = createHotspots;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createImagesCarousel = void 0;
7
+
8
+ var _createCarouselDot = require("./create-carousel-dot");
9
+
10
+ var _createCarouselImage = require("./create-carousel-image");
11
+
12
+ var createImagesCarousel = function createImagesCarousel(images, popup, container) {
13
+ var imagesCarousel = document.createElement('div');
14
+ var carouselDots = document.createElement('div');
15
+ imagesCarousel.className = 'cloudimage-360-images-carousel';
16
+ imagesCarousel.style.maxWidth = "".concat(container.offsetWidth, "px");
17
+ carouselDots.className = 'cloudimage-360-carousel-dots';
18
+ images.forEach(function (image, imageIndex) {
19
+ var carouselImage = (0, _createCarouselImage.createCarouselImage)(image, imageIndex);
20
+ var carouselDot = (0, _createCarouselDot.createCarouselDot)(carouselImage, imageIndex, popup);
21
+ carouselDots.appendChild(carouselDot);
22
+ imagesCarousel.appendChild(carouselImage);
23
+ });
24
+ return [imagesCarousel, carouselDots];
25
+ };
26
+
27
+ exports.createImagesCarousel = createImagesCarousel;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createModalDescription = void 0;
7
+
8
+ var createModalDescription = function createModalDescription(description) {
9
+ var modalDescription = document.createElement('p');
10
+ modalDescription.innerText = description;
11
+ modalDescription.className = 'cloudimage-360-modal-description';
12
+ return modalDescription;
13
+ };
14
+
15
+ exports.createModalDescription = createModalDescription;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createModalTitle = void 0;
7
+
8
+ var createModalTitle = function createModalTitle(title) {
9
+ var modalTitle = document.createElement('h4');
10
+ modalTitle.innerText = title;
11
+ modalTitle.className = 'cloudimage-360-modal-title';
12
+ return modalTitle;
13
+ };
14
+
15
+ exports.createModalTitle = createModalTitle;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.createModalElements = void 0;
9
+
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
12
+ var _createImagesCarousel3 = require("./create-images-carousel");
13
+
14
+ var _createModalDescription = require("./create-modal-description");
15
+
16
+ var _createModalTitle = require("./create-modal-title");
17
+
18
+ var _createReadMoreBtn = require("./create-read-more-btn");
19
+
20
+ var createModalElements = function createModalElements(variant, container, popup) {
21
+ var images = variant.images,
22
+ title = variant.title,
23
+ description = variant.description,
24
+ moreDetailsUrl = variant.moreDetailsUrl,
25
+ _variant$moreDetailsT = variant.moreDetailsTitle,
26
+ moreDetailsTitle = _variant$moreDetailsT === void 0 ? 'Read more' : _variant$moreDetailsT;
27
+ var modalWrapper = document.createElement('div');
28
+ modalWrapper.className = 'cloudimage-360-modal-wrapper';
29
+
30
+ if (images) {
31
+ var imagesCarouselWrapper = document.createElement('div');
32
+
33
+ var _createImagesCarousel = (0, _createImagesCarousel3.createImagesCarousel)(images, popup, container),
34
+ _createImagesCarousel2 = (0, _slicedToArray2.default)(_createImagesCarousel, 2),
35
+ imagesCarousel = _createImagesCarousel2[0],
36
+ carouselDots = _createImagesCarousel2[1];
37
+
38
+ imagesCarouselWrapper.appendChild(imagesCarousel);
39
+
40
+ if (images.length > 1) {
41
+ imagesCarouselWrapper.appendChild(carouselDots);
42
+ }
43
+
44
+ modalWrapper.appendChild(imagesCarouselWrapper);
45
+ imagesCarouselWrapper.className = 'cloudimage-360-images-carousel-wrapper';
46
+ }
47
+
48
+ if (title) {
49
+ var modalTitle = (0, _createModalTitle.createModalTitle)(title);
50
+ modalWrapper.appendChild(modalTitle);
51
+ }
52
+
53
+ if (description) {
54
+ var modalDescription = (0, _createModalDescription.createModalDescription)(description);
55
+ modalWrapper.appendChild(modalDescription);
56
+ }
57
+
58
+ if (moreDetailsUrl) {
59
+ var readMoreBtn = (0, _createReadMoreBtn.createReadMoreBtn)(moreDetailsUrl, moreDetailsTitle);
60
+ modalWrapper.appendChild(readMoreBtn);
61
+ }
62
+
63
+ popup.appendChild(modalWrapper);
64
+ };
65
+
66
+ exports.createModalElements = createModalElements;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createPopupArrow = void 0;
7
+
8
+ var createPopupArrow = function createPopupArrow() {
9
+ var popupArrow = document.createElement('div');
10
+ popupArrow.setAttribute('data-popper-arrow', '');
11
+ popupArrow.setAttribute('data-cloudimage-360-hotspot', '');
12
+ popupArrow.className = 'cloudimage-360-popup-arrow';
13
+ return popupArrow;
14
+ };
15
+
16
+ exports.createPopupArrow = createPopupArrow;