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,67 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.createPopup = void 0;
9
+
10
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
+
12
+ var _createHotspotPopupLink = require("./create-hotspot-popup-link");
13
+
14
+ var _getPopupNode = require("../get-popup-node");
15
+
16
+ var _createPopupArrow = require("./create-popup-arrow");
17
+
18
+ var _createModelElements = require("./create-model-elements");
19
+
20
+ var createPopup = function createPopup(container, hotspotConfig, popupProps) {
21
+ var variant = hotspotConfig.variant;
22
+ var popupSelector = popupProps.popupSelector,
23
+ arrow = popupProps.arrow;
24
+ var url = variant.url,
25
+ images = variant.images,
26
+ title = variant.title,
27
+ anchorId = variant.anchorId,
28
+ description = variant.description,
29
+ moreDetailsUrl = variant.moreDetailsUrl;
30
+ var popup = document.createElement('div');
31
+ popup.className = "cloudimage-360-hotspot-popup ".concat(popupSelector);
32
+ popup.setAttribute('data-hotspot-popup-id', anchorId);
33
+ popup.setAttribute('data-cloudimage-360-hotspot', '');
34
+ popup.style.minHeight = 16;
35
+ popup.style.minWidth = 16;
36
+ popup.style.cursor = 'default';
37
+
38
+ popup.onclick = function (e) {
39
+ return e.stopPropagation();
40
+ };
41
+
42
+ if ((0, _typeof2.default)(variant) === 'object' && images || description || moreDetailsUrl || title && !url) {
43
+ (0, _createModelElements.createModalElements)(variant, container, popup);
44
+ } else if (url) {
45
+ var hotspotPopupLink = (0, _createHotspotPopupLink.createHotspotPopupLink)(variant);
46
+ popup.appendChild(hotspotPopupLink);
47
+ } else if (typeof variant === 'string') {
48
+ try {
49
+ var popupNode = (0, _getPopupNode.getPopupNode)(variant);
50
+ var userPopup = popupNode.cloneNode(true);
51
+ popup.appendChild(userPopup);
52
+ popupNode.parentNode.removeChild(popupNode);
53
+ } catch (_unused) {
54
+ console.error("Cloudimage-360: Element with anchorId '".concat(anchorId, "' not exist in the DOM"));
55
+ }
56
+ }
57
+
58
+ if (arrow) {
59
+ var popupArrow = (0, _createPopupArrow.createPopupArrow)();
60
+ popup.appendChild(popupArrow);
61
+ }
62
+
63
+ container.appendChild(popup);
64
+ return popup;
65
+ };
66
+
67
+ exports.createPopup = createPopup;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createReadMoreBtn = void 0;
7
+
8
+ var createReadMoreBtn = function createReadMoreBtn(moreDetailsUrl, moreDetailsTitle) {
9
+ var readMoreBtn = document.createElement('a');
10
+ readMoreBtn.href = moreDetailsUrl;
11
+ readMoreBtn.innerText = moreDetailsTitle;
12
+ readMoreBtn.className = 'cloudimage-360-modal-more-details';
13
+ readMoreBtn.target = '_blank';
14
+ return readMoreBtn;
15
+ };
16
+
17
+ exports.createReadMoreBtn = createReadMoreBtn;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fillEmptyCoordWithPrevious = void 0;
7
+
8
+ /* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
9
+ var fillEmptyCoordWithPrevious = function fillEmptyCoordWithPrevious(positions, hotspotIndex, coord) {
10
+ var coordIndexes = new Array(hotspotIndex);
11
+ var intialValue = '0%';
12
+
13
+ for (var i = coordIndexes.length - 1; i > -1; i--) {
14
+ var _positions$i;
15
+
16
+ var previousXCoord = (_positions$i = positions[i]) === null || _positions$i === void 0 ? void 0 : _positions$i[coord];
17
+
18
+ if (previousXCoord) {
19
+ return previousXCoord;
20
+ }
21
+ }
22
+
23
+ return intialValue;
24
+ };
25
+
26
+ exports.fillEmptyCoordWithPrevious = fillEmptyCoordWithPrevious;
@@ -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.generateHotspotsConfigs = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _configsErrorHandler = require("./configs-error-handler");
13
+
14
+ var _generatePopupConfig = require("./generate-popup-config");
15
+
16
+ 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; }
17
+
18
+ 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; }
19
+
20
+ var generateHotspotsConfigs = function generateHotspotsConfigs(hotspotsProps) {
21
+ var hotspotsConfigs = hotspotsProps.map(function (hotspotProps) {
22
+ var _hotspotProps$variant = hotspotProps.variant,
23
+ variant = _hotspotProps$variant === void 0 ? {} : _hotspotProps$variant,
24
+ _hotspotProps$positio = hotspotProps.positions,
25
+ positions = _hotspotProps$positio === void 0 ? [] : _hotspotProps$positio,
26
+ _hotspotProps$indicat = hotspotProps.indicatorSelector,
27
+ indicatorSelector = _hotspotProps$indicat === void 0 ? '' : _hotspotProps$indicat,
28
+ _hotspotProps$popupPr = hotspotProps.popupProps,
29
+ popupProps = _hotspotProps$popupPr === void 0 ? {} : _hotspotProps$popupPr,
30
+ _hotspotProps$orienta = hotspotProps.orientation,
31
+ orientation = _hotspotProps$orienta === void 0 ? 'x' : _hotspotProps$orienta,
32
+ _hotspotProps$initial = hotspotProps.initialDimensions,
33
+ initialDimensions = _hotspotProps$initial === void 0 ? [500, 500] : _hotspotProps$initial;
34
+ (0, _configsErrorHandler.configsErrorHandler)(hotspotProps);
35
+ var popupConfig = (0, _generatePopupConfig.generatePopupConfig)(popupProps);
36
+ var anchorId = variant === null || variant === void 0 ? void 0 : variant.anchorId;
37
+
38
+ if (!anchorId) {
39
+ var uniqueID = Math.floor(Math.random() * 10000);
40
+ anchorId = "cloudimage-360-".concat(uniqueID);
41
+ }
42
+
43
+ var hotspotConfig = {
44
+ variant: _objectSpread(_objectSpread({}, variant), {}, {
45
+ anchorId: anchorId
46
+ }),
47
+ popupProps: popupConfig,
48
+ positions: positions,
49
+ indicatorSelector: indicatorSelector,
50
+ initialDimensions: initialDimensions,
51
+ orientation: orientation.toLowerCase()
52
+ };
53
+ return hotspotConfig;
54
+ });
55
+ return hotspotsConfigs;
56
+ };
57
+
58
+ exports.generateHotspotsConfigs = generateHotspotsConfigs;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.generatePopupConfig = void 0;
7
+
8
+ var generatePopupConfig = function generatePopupConfig(popupProps) {
9
+ var _popupProps$popupSele = popupProps.popupSelector,
10
+ popupSelector = _popupProps$popupSele === void 0 ? '' : _popupProps$popupSele,
11
+ _popupProps$arrow = popupProps.arrow,
12
+ arrow = _popupProps$arrow === void 0 ? true : _popupProps$arrow,
13
+ _popupProps$offset = popupProps.offset,
14
+ offset = _popupProps$offset === void 0 ? [0, 10] : _popupProps$offset,
15
+ _popupProps$placement = popupProps.placement,
16
+ placement = _popupProps$placement === void 0 ? 'auto' : _popupProps$placement,
17
+ _popupProps$open = popupProps.open,
18
+ open = _popupProps$open === void 0 ? false : _popupProps$open;
19
+ var popupConfig = {
20
+ popupSelector: popupSelector,
21
+ arrow: arrow,
22
+ offset: offset,
23
+ placement: placement,
24
+ open: open
25
+ };
26
+ return popupConfig;
27
+ };
28
+
29
+ exports.generatePopupConfig = generatePopupConfig;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getHotspotIcon = void 0;
7
+
8
+ var getHotspotIcon = function getHotspotIcon(anchorId) {
9
+ var hotspotIconSelector = "[data-hotspot-icon-id=".concat(anchorId, "]");
10
+ var hotspotIcon = document.querySelector(hotspotIconSelector);
11
+ return hotspotIcon;
12
+ };
13
+
14
+ exports.getHotspotIcon = getHotspotIcon;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getHotspotOriantaion = void 0;
7
+
8
+ var getHotspotOriantaion = function getHotspotOriantaion(orientation) {
9
+ switch (orientation.toLowerCase()) {
10
+ case 'x-axis':
11
+ return 'x';
12
+
13
+ case 'y-axis':
14
+ return 'y';
15
+
16
+ default:
17
+ return 'x';
18
+ }
19
+ };
20
+
21
+ exports.getHotspotOriantaion = getHotspotOriantaion;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getHotspotPopupNode = void 0;
7
+
8
+ var getHotspotPopupNode = function getHotspotPopupNode(anchorId) {
9
+ var hotspotPopupSelector = "[data-hotspot-popup-id=".concat(anchorId, "]");
10
+ var hotspotPopup = document.querySelector(hotspotPopupSelector);
11
+ return hotspotPopup;
12
+ };
13
+
14
+ exports.getHotspotPopupNode = getHotspotPopupNode;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getPopupNode = void 0;
7
+
8
+ var getPopupNode = function getPopupNode(popupId) {
9
+ var popupSelector = 'data-cloudimage-360-hotspots';
10
+ var popupNode = document.querySelector("[".concat(popupSelector, "=").concat(popupId, "]"));
11
+ return popupNode;
12
+ };
13
+
14
+ exports.getPopupNode = getPopupNode;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.hideHotspotIcon = void 0;
7
+
8
+ var hideHotspotIcon = function hideHotspotIcon(icon) {
9
+ icon.style.visibility = 'hidden';
10
+ icon.style.opacity = 0;
11
+ };
12
+
13
+ exports.hideHotspotIcon = hideHotspotIcon;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.hideHotspotsIcons = void 0;
7
+
8
+ var _hideHotspotIcon = require("./hide-hotspot-icon");
9
+
10
+ var hideHotspotsIcons = function hideHotspotsIcons() {
11
+ var hotspotIconSelector = '[data-hotspot-icon-id]';
12
+ var hotspotIcons = document.querySelectorAll(hotspotIconSelector) || [];
13
+ hotspotIcons.forEach(function (hotspotIcon) {
14
+ (0, _hideHotspotIcon.hideHotspotIcon)(hotspotIcon);
15
+ });
16
+ };
17
+
18
+ exports.hideHotspotsIcons = hideHotspotsIcons;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isMouseOnHotspot = void 0;
7
+
8
+ var isMouseOnHotspot = function isMouseOnHotspot() {
9
+ var hotspotElementsSelector = '[data-cloudimage-360-show]';
10
+ var hostpotElements = document.querySelectorAll(hotspotElementsSelector);
11
+ return !!hostpotElements.length;
12
+ };
13
+
14
+ exports.isMouseOnHotspot = isMouseOnHotspot;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.prepareHotspotsPositions = void 0;
7
+
8
+ var _fillEmptyCoordWithPrevious = require("./fill-empty-coord-with-previous");
9
+
10
+ var prepareHotspotsPositions = function prepareHotspotsPositions(positions) {
11
+ return positions.reduce(function (accumulate, current, currentIndex) {
12
+ var isIncludesXcoord = !!(current !== null && current !== void 0 && current.xCoord);
13
+ var isIncludesYcoord = !!(current !== null && current !== void 0 && current.yCoord);
14
+
15
+ if (!isIncludesXcoord) {
16
+ current.xCoord = (0, _fillEmptyCoordWithPrevious.fillEmptyCoordWithPrevious)(positions, currentIndex, 'xCoord');
17
+ }
18
+
19
+ if (!isIncludesYcoord) {
20
+ current.yCoord = (0, _fillEmptyCoordWithPrevious.fillEmptyCoordWithPrevious)(positions, currentIndex, 'yCoord');
21
+ }
22
+
23
+ accumulate.push(current);
24
+ return accumulate;
25
+ }, []);
26
+ };
27
+
28
+ exports.prepareHotspotsPositions = prepareHotspotsPositions;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.setCurrentSlide = void 0;
7
+
8
+ var setCurrentSlide = function setCurrentSlide(image, imageDot, popup) {
9
+ var activeDotSelector = '[data-active-dot]';
10
+ var activeImageSelector = '[data-active-image]';
11
+ var previousActiveDot = popup.querySelector(activeDotSelector);
12
+ var previousActiveImage = popup.querySelector(activeImageSelector);
13
+ previousActiveDot.classList.remove('active-dot');
14
+ previousActiveDot.removeAttribute('data-active-dot');
15
+ previousActiveImage.classList.remove('active-image');
16
+ previousActiveImage.removeAttribute('data-active-image');
17
+ image.className += ' active-image';
18
+ image.setAttribute('data-active-image', '');
19
+ imageDot.className += ' active-dot';
20
+ imageDot.setAttribute('data-active-dot', '');
21
+ };
22
+
23
+ exports.setCurrentSlide = setCurrentSlide;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.togglePopupEvents = void 0;
7
+
8
+ var _ci = require("../../ci360.utils");
9
+
10
+ var _getHotspotIcon = require("./get-hotspot-icon");
11
+
12
+ var togglePopupEvents = function togglePopupEvents(hotspotsProps, event, isMouseDown) {
13
+ var iClickOnHotspotIcon = event && (0, _ci.isTrue)(event.target, 'data-cloudimage-360-hotspot');
14
+ if (iClickOnHotspotIcon) return;
15
+ hotspotsProps.forEach(function (hotspotProps) {
16
+ var variant = hotspotProps.variant;
17
+ var anchorId = variant.anchorId;
18
+ var hotspotIcon = (0, _getHotspotIcon.getHotspotIcon)(anchorId);
19
+ hotspotIcon.style.pointerEvents = isMouseDown ? 'none' : 'all';
20
+ });
21
+ };
22
+
23
+ exports.togglePopupEvents = togglePopupEvents;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.updateHotspotIconPosition = void 0;
7
+
8
+ var updateHotspotIconPosition = function updateHotspotIconPosition(container, initialDimensions, icon, xCoord, yCoord) {
9
+ icon.style.visibility = 'visible';
10
+ icon.style.opacity = 1;
11
+ icon.style.zIndex = 100;
12
+ icon.style.left = "".concat(-icon.offsetWidth / 2, "px");
13
+ icon.style.top = "".concat(-icon.offsetHeight / 2, "px");
14
+ var positionXRatio = container.offsetWidth / initialDimensions[0];
15
+ var positionYRatio = container.offsetHeight / initialDimensions[1];
16
+ var translateX = "".concat(positionXRatio * xCoord, "px");
17
+ var translateY = "".concat(positionYRatio * yCoord, "px");
18
+ icon.style.transform = "translate3d(".concat(translateX, ", ").concat(translateY, ", 0)");
19
+ };
20
+
21
+ exports.updateHotspotIconPosition = updateHotspotIconPosition;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.updateHotspots = void 0;
7
+
8
+ var _prepareHotspotsPositions = require("./prepare-hotspots-positions");
9
+
10
+ var _getHotspotIcon = require("./get-hotspot-icon");
11
+
12
+ var _updateHotspotIconPosition = require("./update-hotspot-icon-position");
13
+
14
+ var _hideHotspotIcon = require("./hide-hotspot-icon");
15
+
16
+ var _getHotspotOrientation = require("./get-hotspot-orientation");
17
+
18
+ var updateHotspots = function updateHotspots(container, hotspotsProps) {
19
+ var activeImageX = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
20
+ var activeImageY = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
21
+ var movingDirection = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'x-axis';
22
+ hotspotsProps.forEach(function (hotspotProps) {
23
+ var positions = hotspotProps.positions,
24
+ initialDimensions = hotspotProps.initialDimensions,
25
+ orientation = hotspotProps.orientation,
26
+ variant = hotspotProps.variant;
27
+ var anchorId = variant.anchorId;
28
+ var hotspotOriantaion = (0, _getHotspotOrientation.getHotspotOriantaion)(movingDirection);
29
+ var currentImageIndex = orientation === 'x' ? activeImageX : activeImageY;
30
+ var hotspotsPositions = (0, _prepareHotspotsPositions.prepareHotspotsPositions)(positions);
31
+ var currentPosition = hotspotsPositions.find(function (hotspotPosition) {
32
+ return hotspotPosition.imageIndex === currentImageIndex;
33
+ });
34
+ var hotspotIcon = (0, _getHotspotIcon.getHotspotIcon)(anchorId);
35
+
36
+ if (currentPosition && hotspotOriantaion === orientation) {
37
+ var _currentPosition$xCoo = currentPosition.xCoord,
38
+ xCoord = _currentPosition$xCoo === void 0 ? 0 : _currentPosition$xCoo,
39
+ _currentPosition$yCoo = currentPosition.yCoord,
40
+ yCoord = _currentPosition$yCoo === void 0 ? 0 : _currentPosition$yCoo;
41
+ (0, _updateHotspotIconPosition.updateHotspotIconPosition)(container, initialDimensions, hotspotIcon, xCoord, yCoord);
42
+ } else {
43
+ (0, _hideHotspotIcon.hideHotspotIcon)(hotspotIcon);
44
+ }
45
+ });
46
+ };
47
+
48
+ exports.updateHotspots = updateHotspots;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.generateImagesPath = void 0;
7
+
8
+ var _falsyValues = require("../../constants/falsy-values");
9
+
10
+ var _getResponsiveWidthOfContainer = require("../responsive/get-responsive-width-of-container");
11
+
12
+ var _getSizeAccordingToPixelRatio = require("../responsive/get-size-according-to-pixel-ratio");
13
+
14
+ var generateImagesPath = function generateImagesPath(srcConfig) {
15
+ var container = srcConfig.container,
16
+ folder = srcConfig.folder,
17
+ apiVersion = srcConfig.apiVersion,
18
+ _srcConfig$filename = srcConfig.filename,
19
+ filename = _srcConfig$filename === void 0 ? '' : _srcConfig$filename,
20
+ ciParams = srcConfig.ciParams;
21
+
22
+ var _ref = ciParams || {},
23
+ ciToken = _ref.ciToken,
24
+ ciFilters = _ref.ciFilters,
25
+ ciTransformation = _ref.ciTransformation;
26
+
27
+ var src = "".concat(folder).concat(filename);
28
+
29
+ if (ciToken) {
30
+ var imageOffsetWidth = container.offsetWidth;
31
+ var version = !(_falsyValues.FALSY_VALUES.indexOf(apiVersion) !== -1) ? apiVersion : null;
32
+ var finalApiVersion = version ? "".concat(version, "/") : '';
33
+ var ciSizeNext = (0, _getSizeAccordingToPixelRatio.getSizeAccordingToPixelRatio)((0, _getResponsiveWidthOfContainer.getResponsiveWidthOfContainer)(imageOffsetWidth));
34
+ var isCloudImageUrl = new URL(src).origin.indexOf('cloudimg') !== -1;
35
+ var cdn = isCloudImageUrl ? src : "https://".concat(ciToken, ".cloudimg.io/").concat(finalApiVersion).concat(src);
36
+ src = "".concat(cdn, "?").concat(ciTransformation || "width=".concat(ciSizeNext)).concat(ciFilters ? "&f=".concat(ciFilters) : '');
37
+ }
38
+
39
+ return src;
40
+ };
41
+
42
+ exports.generateImagesPath = generateImagesPath;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isPropsChangeRequireReload = void 0;
7
+
8
+ var _propsRequireReload = require("../../constants/props-require-reload");
9
+
10
+ var isPropsChangeRequireReload = function isPropsChangeRequireReload(currentProps, changedProps) {
11
+ return Object.keys(changedProps).reduce(function (acc, current) {
12
+ var isPropChanged = currentProps[current] !== changedProps[current];
13
+ var isSrcProp = _propsRequireReload.PROPS_REQUIRE_RELOAD.indexOf(current) !== -1;
14
+
15
+ if (isSrcProp && isPropChanged) {
16
+ acc = true;
17
+ }
18
+
19
+ return acc;
20
+ }, false);
21
+ };
22
+
23
+ exports.isPropsChangeRequireReload = isPropsChangeRequireReload;