@blaze-cms/react-page-builder 0.141.0-core-styles.16 → 0.141.0-core-styles.20

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 (42) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/lib/variants/ThumbnailCarousel/ThumbnailCarousel.js +65 -0
  3. package/lib/variants/ThumbnailCarousel/ThumbnailCarousel.js.map +1 -0
  4. package/lib/variants/ThumbnailCarousel/ThumbnailImage/ThumbnailImage.js +41 -0
  5. package/lib/variants/ThumbnailCarousel/ThumbnailImage/ThumbnailImage.js.map +1 -0
  6. package/lib/variants/ThumbnailCarousel/ThumbnailImage/index.js +11 -0
  7. package/lib/variants/ThumbnailCarousel/ThumbnailImage/index.js.map +1 -0
  8. package/lib/variants/ThumbnailCarousel/ThumbnailImage/useThumbnailImage.js +82 -0
  9. package/lib/variants/ThumbnailCarousel/ThumbnailImage/useThumbnailImage.js.map +1 -0
  10. package/lib/variants/ThumbnailCarousel/index.js +29 -0
  11. package/lib/variants/ThumbnailCarousel/index.js.map +1 -0
  12. package/lib/variants/ThumbnailCarousel/useThumbnailCarousel.js +62 -0
  13. package/lib/variants/ThumbnailCarousel/useThumbnailCarousel.js.map +1 -0
  14. package/lib/variants/index.js +5 -1
  15. package/lib/variants/index.js.map +1 -1
  16. package/lib-es/variants/ThumbnailCarousel/ThumbnailCarousel.js +51 -0
  17. package/lib-es/variants/ThumbnailCarousel/ThumbnailCarousel.js.map +1 -0
  18. package/lib-es/variants/ThumbnailCarousel/ThumbnailImage/ThumbnailImage.js +34 -0
  19. package/lib-es/variants/ThumbnailCarousel/ThumbnailImage/ThumbnailImage.js.map +1 -0
  20. package/lib-es/variants/ThumbnailCarousel/ThumbnailImage/index.js +3 -0
  21. package/lib-es/variants/ThumbnailCarousel/ThumbnailImage/index.js.map +1 -0
  22. package/lib-es/variants/ThumbnailCarousel/ThumbnailImage/useThumbnailImage.js +75 -0
  23. package/lib-es/variants/ThumbnailCarousel/ThumbnailImage/useThumbnailImage.js.map +1 -0
  24. package/lib-es/variants/ThumbnailCarousel/index.js +10 -0
  25. package/lib-es/variants/ThumbnailCarousel/index.js.map +1 -0
  26. package/lib-es/variants/ThumbnailCarousel/useThumbnailCarousel.js +42 -0
  27. package/lib-es/variants/ThumbnailCarousel/useThumbnailCarousel.js.map +1 -0
  28. package/lib-es/variants/index.js +4 -1
  29. package/lib-es/variants/index.js.map +1 -1
  30. package/package.json +2 -2
  31. package/src/variants/ThumbnailCarousel/ThumbnailCarousel.js +55 -0
  32. package/src/variants/ThumbnailCarousel/ThumbnailImage/ThumbnailImage.js +40 -0
  33. package/src/variants/ThumbnailCarousel/ThumbnailImage/index.js +3 -0
  34. package/src/variants/ThumbnailCarousel/ThumbnailImage/useThumbnailImage.js +75 -0
  35. package/src/variants/ThumbnailCarousel/index.js +10 -0
  36. package/src/variants/ThumbnailCarousel/useThumbnailCarousel.js +37 -0
  37. package/src/variants/index.js +5 -1
  38. package/tests/unit/src/variants/ThumbnailCarousel/ThumbnailCarousel.test.js +29 -0
  39. package/tests/unit/src/variants/ThumbnailCarousel/ThumbnailImage.test.js +45 -0
  40. package/tests/unit/src/variants/ThumbnailCarousel/__snapshots__/ThumbnailCarousel.test.js.snap +76 -0
  41. package/tests/unit/src/variants/ThumbnailCarousel/__snapshots__/ThumbnailImage.test.js.snap +19 -0
  42. package/tests/unit/src/variants/ThumbnailCarousel/mocks.js +64 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.141.0-core-styles.20](https://github.com/thebyte9/blaze/compare/v0.141.0-core-styles.19...v0.141.0-core-styles.20) (2024-05-01)
7
+
8
+
9
+ ### Features
10
+
11
+ * added thumbnail carousel variant ([#4343](https://github.com/thebyte9/blaze/issues/4343)) ([69beb66](https://github.com/thebyte9/blaze/commit/69beb66445c35f3ff67d5002aa96fe60aa8cae50))
12
+
13
+
14
+
15
+
16
+
6
17
  # [0.141.0-core-styles.16](https://github.com/thebyte9/blaze/compare/v0.141.0-core-styles.15...v0.141.0-core-styles.16) (2024-04-25)
7
18
 
8
19
 
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ require("core-js/modules/es.array.map.js");
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _useThumbnailCarousel2 = _interopRequireDefault(require("./useThumbnailCarousel"));
13
+ var _ThumbnailImage = _interopRequireDefault(require("./ThumbnailImage"));
14
+ var ThumbnailCarousel = function ThumbnailCarousel(props) {
15
+ var _useThumbnailCarousel = (0, _useThumbnailCarousel2["default"])(props),
16
+ thumbnailsListRef = _useThumbnailCarousel.thumbnailsListRef,
17
+ imageIds = _useThumbnailCarousel.imageIds,
18
+ selectedImageId = _useThumbnailCarousel.selectedImageId,
19
+ priorityLimit = _useThumbnailCarousel.priorityLimit,
20
+ mainImageButtonClick = _useThumbnailCarousel.mainImageButtonClick,
21
+ thumbnailImageClick = _useThumbnailCarousel.thumbnailImageClick;
22
+ return /*#__PURE__*/_react["default"].createElement("div", {
23
+ className: "thumbnail-carousel",
24
+ "data-testid": "thumbnail-carousel"
25
+ }, /*#__PURE__*/_react["default"].createElement("div", {
26
+ className: "thumbnail-carousel__main_image_container"
27
+ }, /*#__PURE__*/_react["default"].createElement("div", {
28
+ id: "previous-button",
29
+ className: "thumbnail-carousel__main_image_container__button",
30
+ role: "button",
31
+ onClick: function onClick() {
32
+ return mainImageButtonClick();
33
+ }
34
+ }, /*#__PURE__*/_react["default"].createElement("div", {
35
+ className: "arrow arrow--left"
36
+ })), /*#__PURE__*/_react["default"].createElement("div", {
37
+ className: "thumbnail-carousel__main_image_container__main-image",
38
+ "data-testid": "thumbnail-main-image",
39
+ ref: thumbnailsListRef
40
+ }, /*#__PURE__*/_react["default"].createElement(_ThumbnailImage["default"], (0, _extends2["default"])({}, props, {
41
+ priority: true,
42
+ imageId: selectedImageId
43
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
44
+ id: "next-button",
45
+ className: "thumbnail-carousel__main_image_container__button next",
46
+ role: "button",
47
+ onClick: function onClick() {
48
+ return mainImageButtonClick(true);
49
+ }
50
+ }, /*#__PURE__*/_react["default"].createElement("div", {
51
+ className: "arrow arrow--right"
52
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
53
+ className: "thumbnail-carousel__list"
54
+ }, imageIds.map(function (imageId, index) {
55
+ return /*#__PURE__*/_react["default"].createElement(_ThumbnailImage["default"], (0, _extends2["default"])({}, props, {
56
+ key: imageId,
57
+ priority: index < priorityLimit,
58
+ imageId: imageId,
59
+ selectedImageId: selectedImageId,
60
+ handleOnClick: thumbnailImageClick
61
+ }));
62
+ })));
63
+ };
64
+ var _default = exports["default"] = ThumbnailCarousel;
65
+ //# sourceMappingURL=ThumbnailCarousel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThumbnailCarousel.js","names":["_react","_interopRequireDefault","require","_useThumbnailCarousel2","_ThumbnailImage","ThumbnailCarousel","props","_useThumbnailCarousel","useThumbnailCarousel","thumbnailsListRef","imageIds","selectedImageId","priorityLimit","mainImageButtonClick","thumbnailImageClick","createElement","className","id","role","onClick","ref","_extends2","priority","imageId","map","index","key","handleOnClick","_default","exports"],"sources":["../../../src/variants/ThumbnailCarousel/ThumbnailCarousel.js"],"sourcesContent":["import React from 'react';\nimport useThumbnailCarousel from './useThumbnailCarousel';\nimport ThumbnailImage from './ThumbnailImage';\n\nconst ThumbnailCarousel = props => {\n const {\n thumbnailsListRef,\n imageIds,\n selectedImageId,\n priorityLimit,\n mainImageButtonClick,\n thumbnailImageClick\n } = useThumbnailCarousel(props);\n\n return (\n <div className=\"thumbnail-carousel\" data-testid=\"thumbnail-carousel\">\n <div className=\"thumbnail-carousel__main_image_container\">\n <div\n id=\"previous-button\"\n className=\"thumbnail-carousel__main_image_container__button\"\n role=\"button\"\n onClick={() => mainImageButtonClick()}>\n <div className=\"arrow arrow--left\" />\n </div>\n <div\n className=\"thumbnail-carousel__main_image_container__main-image\"\n data-testid=\"thumbnail-main-image\"\n ref={thumbnailsListRef}>\n <ThumbnailImage {...props} priority imageId={selectedImageId} />\n </div>\n <div\n id=\"next-button\"\n className=\"thumbnail-carousel__main_image_container__button next\"\n role=\"button\"\n onClick={() => mainImageButtonClick(true)}>\n <div className=\"arrow arrow--right\" />\n </div>\n </div>\n <div className=\"thumbnail-carousel__list\">\n {imageIds.map((imageId, index) => (\n <ThumbnailImage\n {...props}\n key={imageId}\n priority={index < priorityLimit}\n imageId={imageId}\n selectedImageId={selectedImageId}\n handleOnClick={thumbnailImageClick}\n />\n ))}\n </div>\n </div>\n );\n};\n\nexport default ThumbnailCarousel;\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,eAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,KAAK,EAAI;EACjC,IAAAC,qBAAA,GAOI,IAAAC,iCAAoB,EAACF,KAAK,CAAC;IAN7BG,iBAAiB,GAAAF,qBAAA,CAAjBE,iBAAiB;IACjBC,QAAQ,GAAAH,qBAAA,CAARG,QAAQ;IACRC,eAAe,GAAAJ,qBAAA,CAAfI,eAAe;IACfC,aAAa,GAAAL,qBAAA,CAAbK,aAAa;IACbC,oBAAoB,GAAAN,qBAAA,CAApBM,oBAAoB;IACpBC,mBAAmB,GAAAP,qBAAA,CAAnBO,mBAAmB;EAGrB,oBACEd,MAAA,YAAAe,aAAA;IAAKC,SAAS,EAAC,oBAAoB;IAAC,eAAY;EAAoB,gBAClEhB,MAAA,YAAAe,aAAA;IAAKC,SAAS,EAAC;EAA0C,gBACvDhB,MAAA,YAAAe,aAAA;IACEE,EAAE,EAAC,iBAAiB;IACpBD,SAAS,EAAC,kDAAkD;IAC5DE,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAE,SAAAA,QAAA;MAAA,OAAMN,oBAAoB,CAAC,CAAC;IAAA;EAAC,gBACtCb,MAAA,YAAAe,aAAA;IAAKC,SAAS,EAAC;EAAmB,CAAE,CACjC,CAAC,eACNhB,MAAA,YAAAe,aAAA;IACEC,SAAS,EAAC,sDAAsD;IAChE,eAAY,sBAAsB;IAClCI,GAAG,EAAEX;EAAkB,gBACvBT,MAAA,YAAAe,aAAA,CAACX,eAAA,WAAc,MAAAiB,SAAA,iBAAKf,KAAK;IAAEgB,QAAQ;IAACC,OAAO,EAAEZ;EAAgB,EAAE,CAC5D,CAAC,eACNX,MAAA,YAAAe,aAAA;IACEE,EAAE,EAAC,aAAa;IAChBD,SAAS,EAAC,uDAAuD;IACjEE,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAE,SAAAA,QAAA;MAAA,OAAMN,oBAAoB,CAAC,IAAI,CAAC;IAAA;EAAC,gBAC1Cb,MAAA,YAAAe,aAAA;IAAKC,SAAS,EAAC;EAAoB,CAAE,CAClC,CACF,CAAC,eACNhB,MAAA,YAAAe,aAAA;IAAKC,SAAS,EAAC;EAA0B,GACtCN,QAAQ,CAACc,GAAG,CAAC,UAACD,OAAO,EAAEE,KAAK;IAAA,oBAC3BzB,MAAA,YAAAe,aAAA,CAACX,eAAA,WAAc,MAAAiB,SAAA,iBACTf,KAAK;MACToB,GAAG,EAAEH,OAAQ;MACbD,QAAQ,EAAEG,KAAK,GAAGb,aAAc;MAChCW,OAAO,EAAEA,OAAQ;MACjBZ,eAAe,EAAEA,eAAgB;MACjCgB,aAAa,EAAEb;IAAoB,EACpC,CAAC;EAAA,CACH,CACE,CACF,CAAC;AAEV,CAAC;AAAC,IAAAc,QAAA,GAAAC,OAAA,cAEaxB,iBAAiB"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _LazyImage = _interopRequireDefault(require("../../../components/LazyImage"));
11
+ var _useThumbnailImage2 = _interopRequireDefault(require("./useThumbnailImage"));
12
+ var ThumbnailImage = function ThumbnailImage(props) {
13
+ var _useThumbnailImage = (0, _useThumbnailImage2["default"])(props),
14
+ loading = _useThumbnailImage.loading,
15
+ error = _useThumbnailImage.error,
16
+ className = _useThumbnailImage.className,
17
+ imageRef = _useThumbnailImage.imageRef,
18
+ imageUrl = _useThumbnailImage.imageUrl,
19
+ altText = _useThumbnailImage.altText,
20
+ priority = _useThumbnailImage.priority,
21
+ handleClick = _useThumbnailImage.handleClick,
22
+ handleEnableLightbox = _useThumbnailImage.handleEnableLightbox;
23
+ if (error) return error.message;
24
+ if (loading) return null;
25
+ return /*#__PURE__*/_react["default"].createElement("div", {
26
+ ref: imageRef,
27
+ className: className,
28
+ onClick: handleClick,
29
+ role: "button",
30
+ "data-testid": "thumbnail-image"
31
+ }, /*#__PURE__*/_react["default"].createElement(_LazyImage["default"], {
32
+ src: imageUrl,
33
+ alt: altText,
34
+ sizeKey: "carousel",
35
+ onClick: handleEnableLightbox,
36
+ role: "button",
37
+ priority: priority
38
+ }));
39
+ };
40
+ var _default = exports["default"] = ThumbnailImage;
41
+ //# sourceMappingURL=ThumbnailImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThumbnailImage.js","names":["_react","_interopRequireDefault","require","_LazyImage","_useThumbnailImage2","ThumbnailImage","props","_useThumbnailImage","useThumbnailImage","loading","error","className","imageRef","imageUrl","altText","priority","handleClick","handleEnableLightbox","message","createElement","ref","onClick","role","src","alt","sizeKey","_default","exports"],"sources":["../../../../src/variants/ThumbnailCarousel/ThumbnailImage/ThumbnailImage.js"],"sourcesContent":["import React from 'react';\nimport LazyImage from '../../../components/LazyImage';\nimport useThumbnailImage from './useThumbnailImage';\n\nconst ThumbnailImage = props => {\n const {\n loading,\n error,\n className,\n imageRef,\n imageUrl,\n altText,\n priority,\n handleClick,\n handleEnableLightbox\n } = useThumbnailImage(props);\n\n if (error) return error.message;\n if (loading) return null;\n\n return (\n <div\n ref={imageRef}\n className={className}\n onClick={handleClick}\n role=\"button\"\n data-testid=\"thumbnail-image\">\n <LazyImage\n src={imageUrl}\n alt={altText}\n sizeKey=\"carousel\"\n onClick={handleEnableLightbox}\n role=\"button\"\n priority={priority}\n />\n </div>\n );\n};\n\nexport default ThumbnailImage;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,mBAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAMG,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,KAAK,EAAI;EAC9B,IAAAC,kBAAA,GAUI,IAAAC,8BAAiB,EAACF,KAAK,CAAC;IAT1BG,OAAO,GAAAF,kBAAA,CAAPE,OAAO;IACPC,KAAK,GAAAH,kBAAA,CAALG,KAAK;IACLC,SAAS,GAAAJ,kBAAA,CAATI,SAAS;IACTC,QAAQ,GAAAL,kBAAA,CAARK,QAAQ;IACRC,QAAQ,GAAAN,kBAAA,CAARM,QAAQ;IACRC,OAAO,GAAAP,kBAAA,CAAPO,OAAO;IACPC,QAAQ,GAAAR,kBAAA,CAARQ,QAAQ;IACRC,WAAW,GAAAT,kBAAA,CAAXS,WAAW;IACXC,oBAAoB,GAAAV,kBAAA,CAApBU,oBAAoB;EAGtB,IAAIP,KAAK,EAAE,OAAOA,KAAK,CAACQ,OAAO;EAC/B,IAAIT,OAAO,EAAE,OAAO,IAAI;EAExB,oBACET,MAAA,YAAAmB,aAAA;IACEC,GAAG,EAAER,QAAS;IACdD,SAAS,EAAEA,SAAU;IACrBU,OAAO,EAAEL,WAAY;IACrBM,IAAI,EAAC,QAAQ;IACb,eAAY;EAAiB,gBAC7BtB,MAAA,YAAAmB,aAAA,CAAChB,UAAA,WAAS;IACRoB,GAAG,EAAEV,QAAS;IACdW,GAAG,EAAEV,OAAQ;IACbW,OAAO,EAAC,UAAU;IAClBJ,OAAO,EAAEJ,oBAAqB;IAC9BK,IAAI,EAAC,QAAQ;IACbP,QAAQ,EAAEA;EAAS,CACpB,CACE,CAAC;AAEV,CAAC;AAAC,IAAAW,QAAA,GAAAC,OAAA,cAEatB,cAAc"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _ThumbnailImage = _interopRequireDefault(require("./ThumbnailImage"));
10
+ var _default = exports["default"] = _ThumbnailImage["default"];
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_ThumbnailImage","_interopRequireDefault","require","_default","exports","ThumbnailImage"],"sources":["../../../../src/variants/ThumbnailCarousel/ThumbnailImage/index.js"],"sourcesContent":["import ThumbnailImage from './ThumbnailImage';\n\nexport default ThumbnailImage;\n"],"mappings":";;;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8C,IAAAC,QAAA,GAAAC,OAAA,cAE/BC,0BAAc"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _react = require("react");
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _hooks = require("../../../hooks");
12
+ var _utils = require("../../../utils");
13
+ var useThumbnailImage = function useThumbnailImage(_ref) {
14
+ var imageId = _ref.imageId,
15
+ enableLightbox = _ref.enableLightbox,
16
+ toggleModal = _ref.toggleModal,
17
+ handleSelectedImage = _ref.handleSelectedImage,
18
+ priority = _ref.priority,
19
+ selectedImageId = _ref.selectedImageId,
20
+ handleOnClick = _ref.handleOnClick;
21
+ var imageRef = (0, _react.useRef)(null);
22
+ var isSelected = selectedImageId === imageId;
23
+ var _useGetImages = (0, _hooks.useGetImages)(imageId),
24
+ _useGetImages$data = _useGetImages.data,
25
+ data = _useGetImages$data === void 0 ? {} : _useGetImages$data,
26
+ loading = _useGetImages.loading,
27
+ error = _useGetImages.error;
28
+ (0, _react.useEffect)(function () {
29
+ if (imageRef.current && isSelected) {
30
+ imageRef.current.scrollIntoView({
31
+ behavior: 'smooth',
32
+ block: 'start'
33
+ });
34
+ }
35
+ }, [isSelected]);
36
+ var handleEnableLightbox = function handleEnableLightbox() {
37
+ if (!enableLightbox) return;
38
+ toggleModal();
39
+ handleSelectedImage(imageId);
40
+ };
41
+ var handleClick = function handleClick() {
42
+ handleOnClick(imageId);
43
+ };
44
+ var _ref2 = data.getFile || {
45
+ getFile: {
46
+ url: '',
47
+ data: {}
48
+ }
49
+ },
50
+ _ref2$url = _ref2.url,
51
+ imageUrl = _ref2$url === void 0 ? '' : _ref2$url,
52
+ _ref2$data = _ref2.data,
53
+ imageData = _ref2$data === void 0 ? {} : _ref2$data;
54
+ var _getImageData = (0, _utils.getImageData)({}, imageData),
55
+ altText = _getImageData.altText;
56
+ var className = selectedImageId === imageId ? 'thumbnail-carousel-image thumbnail-carousel-image--selected' : 'thumbnail-carousel-image';
57
+ return {
58
+ loading: loading,
59
+ error: error,
60
+ className: className,
61
+ imageRef: imageRef,
62
+ imageUrl: imageUrl,
63
+ altText: altText,
64
+ priority: priority,
65
+ handleClick: handleClick,
66
+ handleEnableLightbox: handleEnableLightbox
67
+ };
68
+ };
69
+ useThumbnailImage.propTypes = {
70
+ imageId: _propTypes["default"].string.isRequired,
71
+ selectedImageId: _propTypes["default"].string.isRequired,
72
+ enableLightbox: _propTypes["default"].bool.isRequired,
73
+ toggleModal: _propTypes["default"].func.isRequired,
74
+ handleSelectedImage: _propTypes["default"].func.isRequired,
75
+ priority: _propTypes["default"].bool.isRequired,
76
+ handleOnClick: _propTypes["default"].func
77
+ };
78
+ useThumbnailImage.defaultProps = {
79
+ handleOnClick: function handleOnClick() {}
80
+ };
81
+ var _default = exports["default"] = useThumbnailImage;
82
+ //# sourceMappingURL=useThumbnailImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThumbnailImage.js","names":["_react","require","_propTypes","_interopRequireDefault","_hooks","_utils","useThumbnailImage","_ref","imageId","enableLightbox","toggleModal","handleSelectedImage","priority","selectedImageId","handleOnClick","imageRef","useRef","isSelected","_useGetImages","useGetImages","_useGetImages$data","data","loading","error","useEffect","current","scrollIntoView","behavior","block","handleEnableLightbox","handleClick","_ref2","getFile","url","_ref2$url","imageUrl","_ref2$data","imageData","_getImageData","getImageData","altText","className","propTypes","PropTypes","string","isRequired","bool","func","defaultProps","_default","exports"],"sources":["../../../../src/variants/ThumbnailCarousel/ThumbnailImage/useThumbnailImage.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useGetImages } from '../../../hooks';\nimport { getImageData } from '../../../utils';\n\nconst useThumbnailImage = ({\n imageId,\n enableLightbox,\n toggleModal,\n handleSelectedImage,\n priority,\n selectedImageId,\n handleOnClick\n}) => {\n const imageRef = useRef(null);\n const isSelected = selectedImageId === imageId;\n const { data = {}, loading, error } = useGetImages(imageId);\n\n useEffect(\n () => {\n if (imageRef.current && isSelected) {\n imageRef.current.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n },\n [isSelected]\n );\n\n const handleEnableLightbox = () => {\n if (!enableLightbox) return;\n toggleModal();\n handleSelectedImage(imageId);\n };\n\n const handleClick = () => {\n handleOnClick(imageId);\n };\n\n const { url: imageUrl = '', data: imageData = {} } = data.getFile || {\n getFile: { url: '', data: {} }\n };\n const { altText } = getImageData({}, imageData);\n\n const className =\n selectedImageId === imageId\n ? 'thumbnail-carousel-image thumbnail-carousel-image--selected'\n : 'thumbnail-carousel-image';\n\n return {\n loading,\n error,\n className,\n imageRef,\n imageUrl,\n altText,\n priority,\n handleClick,\n handleEnableLightbox\n };\n};\n\nuseThumbnailImage.propTypes = {\n imageId: PropTypes.string.isRequired,\n selectedImageId: PropTypes.string.isRequired,\n enableLightbox: PropTypes.bool.isRequired,\n toggleModal: PropTypes.func.isRequired,\n handleSelectedImage: PropTypes.func.isRequired,\n priority: PropTypes.bool.isRequired,\n handleOnClick: PropTypes.func\n};\n\nuseThumbnailImage.defaultProps = {\n handleOnClick: () => {}\n};\n\nexport default useThumbnailImage;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAEA,IAAMK,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA,EAQjB;EAAA,IAPJC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IACPC,cAAc,GAAAF,IAAA,CAAdE,cAAc;IACdC,WAAW,GAAAH,IAAA,CAAXG,WAAW;IACXC,mBAAmB,GAAAJ,IAAA,CAAnBI,mBAAmB;IACnBC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,eAAe,GAAAN,IAAA,CAAfM,eAAe;IACfC,aAAa,GAAAP,IAAA,CAAbO,aAAa;EAEb,IAAMC,QAAQ,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAC7B,IAAMC,UAAU,GAAGJ,eAAe,KAAKL,OAAO;EAC9C,IAAAU,aAAA,GAAsC,IAAAC,mBAAY,EAACX,OAAO,CAAC;IAAAY,kBAAA,GAAAF,aAAA,CAAnDG,IAAI;IAAJA,IAAI,GAAAD,kBAAA,cAAG,CAAC,CAAC,GAAAA,kBAAA;IAAEE,OAAO,GAAAJ,aAAA,CAAPI,OAAO;IAAEC,KAAK,GAAAL,aAAA,CAALK,KAAK;EAEjC,IAAAC,gBAAS,EACP,YAAM;IACJ,IAAIT,QAAQ,CAACU,OAAO,IAAIR,UAAU,EAAE;MAClCF,QAAQ,CAACU,OAAO,CAACC,cAAc,CAAC;QAAEC,QAAQ,EAAE,QAAQ;QAAEC,KAAK,EAAE;MAAQ,CAAC,CAAC;IACzE;EACF,CAAC,EACD,CAACX,UAAU,CACb,CAAC;EAED,IAAMY,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA,EAAS;IACjC,IAAI,CAACpB,cAAc,EAAE;IACrBC,WAAW,CAAC,CAAC;IACbC,mBAAmB,CAACH,OAAO,CAAC;EAC9B,CAAC;EAED,IAAMsB,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACxBhB,aAAa,CAACN,OAAO,CAAC;EACxB,CAAC;EAED,IAAAuB,KAAA,GAAqDV,IAAI,CAACW,OAAO,IAAI;MACnEA,OAAO,EAAE;QAAEC,GAAG,EAAE,EAAE;QAAEZ,IAAI,EAAE,CAAC;MAAE;IAC/B,CAAC;IAAAa,SAAA,GAAAH,KAAA,CAFOE,GAAG;IAAEE,QAAQ,GAAAD,SAAA,cAAG,EAAE,GAAAA,SAAA;IAAAE,UAAA,GAAAL,KAAA,CAAEV,IAAI;IAAEgB,SAAS,GAAAD,UAAA,cAAG,CAAC,CAAC,GAAAA,UAAA;EAGhD,IAAAE,aAAA,GAAoB,IAAAC,mBAAY,EAAC,CAAC,CAAC,EAAEF,SAAS,CAAC;IAAvCG,OAAO,GAAAF,aAAA,CAAPE,OAAO;EAEf,IAAMC,SAAS,GACb5B,eAAe,KAAKL,OAAO,GACvB,6DAA6D,GAC7D,0BAA0B;EAEhC,OAAO;IACLc,OAAO,EAAPA,OAAO;IACPC,KAAK,EAALA,KAAK;IACLkB,SAAS,EAATA,SAAS;IACT1B,QAAQ,EAARA,QAAQ;IACRoB,QAAQ,EAARA,QAAQ;IACRK,OAAO,EAAPA,OAAO;IACP5B,QAAQ,EAARA,QAAQ;IACRkB,WAAW,EAAXA,WAAW;IACXD,oBAAoB,EAApBA;EACF,CAAC;AACH,CAAC;AAEDvB,iBAAiB,CAACoC,SAAS,GAAG;EAC5BlC,OAAO,EAAEmC,qBAAS,CAACC,MAAM,CAACC,UAAU;EACpChC,eAAe,EAAE8B,qBAAS,CAACC,MAAM,CAACC,UAAU;EAC5CpC,cAAc,EAAEkC,qBAAS,CAACG,IAAI,CAACD,UAAU;EACzCnC,WAAW,EAAEiC,qBAAS,CAACI,IAAI,CAACF,UAAU;EACtClC,mBAAmB,EAAEgC,qBAAS,CAACI,IAAI,CAACF,UAAU;EAC9CjC,QAAQ,EAAE+B,qBAAS,CAACG,IAAI,CAACD,UAAU;EACnC/B,aAAa,EAAE6B,qBAAS,CAACI;AAC3B,CAAC;AAEDzC,iBAAiB,CAAC0C,YAAY,GAAG;EAC/BlC,aAAa,EAAE,SAAAA,cAAA,EAAM,CAAC;AACxB,CAAC;AAAC,IAAAmC,QAAA,GAAAC,OAAA,cAEa5C,iBAAiB"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.keys.js");
4
+ require("core-js/modules/es.symbol.js");
5
+ require("core-js/modules/es.array.filter.js");
6
+ require("core-js/modules/es.object.to-string.js");
7
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
8
+ require("core-js/modules/es.array.for-each.js");
9
+ require("core-js/modules/web.dom-collections.for-each.js");
10
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
11
+ require("core-js/modules/es.object.define-properties.js");
12
+ require("core-js/modules/es.object.define-property.js");
13
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
14
+ Object.defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
17
+ exports["default"] = void 0;
18
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
+ var _ThumbnailCarousel = _interopRequireDefault(require("./ThumbnailCarousel"));
20
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
+ var ThumbnailCarousel = {
23
+ getSettings: function getSettings(componentSettings) {
24
+ return _objectSpread({}, componentSettings);
25
+ },
26
+ VariantComponent: _ThumbnailCarousel["default"]
27
+ };
28
+ var _default = exports["default"] = ThumbnailCarousel;
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_ThumbnailCarousel","_interopRequireDefault","require","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","ThumbnailCarousel","getSettings","componentSettings","VariantComponent","ThumbnailCarouselComponent","_default","exports"],"sources":["../../../src/variants/ThumbnailCarousel/index.js"],"sourcesContent":["import ThumbnailCarouselComponent from './ThumbnailCarousel';\n\nconst ThumbnailCarousel = {\n getSettings: componentSettings => ({\n ...componentSettings\n }),\n VariantComponent: ThumbnailCarouselComponent\n};\n\nexport default ThumbnailCarousel;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,kBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6D,SAAAC,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAE7D,IAAMoB,iBAAiB,GAAG;EACxBC,WAAW,EAAE,SAAAA,YAAAC,iBAAiB;IAAA,OAAAV,aAAA,KACzBU,iBAAiB;EAAA,CACpB;EACFC,gBAAgB,EAAEC;AACpB,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,cAEaN,iBAAiB"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.keys.js");
4
+ require("core-js/modules/es.symbol.js");
5
+ require("core-js/modules/es.array.filter.js");
6
+ require("core-js/modules/es.object.to-string.js");
7
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
8
+ require("core-js/modules/es.array.for-each.js");
9
+ require("core-js/modules/web.dom-collections.for-each.js");
10
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
11
+ require("core-js/modules/es.object.define-properties.js");
12
+ require("core-js/modules/es.object.define-property.js");
13
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
14
+ Object.defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
17
+ exports["default"] = void 0;
18
+ require("core-js/modules/es.array.index-of.js");
19
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
20
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
21
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
22
+ var _react = require("react");
23
+ var _excluded = ["imageIds", "priorityLimit"];
24
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26
+ var useThumbnailCarousel = function useThumbnailCarousel(_ref) {
27
+ var imageIds = _ref.imageIds,
28
+ priorityLimit = _ref.priorityLimit,
29
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
30
+ var _useState = (0, _react.useState)(0),
31
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
32
+ selectedImageIndex = _useState2[0],
33
+ setSelectedImageIndex = _useState2[1];
34
+ var thumbnailsListRef = (0, _react.useRef)(null);
35
+ var selectedImageId = imageIds[selectedImageIndex];
36
+ var mainImageButtonClick = function mainImageButtonClick(next) {
37
+ if (next) {
38
+ var isLast = imageIds.length - 1 === selectedImageIndex;
39
+ var newIndex = isLast ? 0 : selectedImageIndex + 1;
40
+ setSelectedImageIndex(newIndex);
41
+ } else {
42
+ var isFirst = selectedImageIndex === 0;
43
+ var _newIndex = isFirst ? imageIds.length - 1 : selectedImageIndex - 1;
44
+ setSelectedImageIndex(_newIndex);
45
+ }
46
+ };
47
+ var thumbnailImageClick = function thumbnailImageClick(id) {
48
+ var newIndex = imageIds.indexOf(id);
49
+ if (newIndex !== -1) setSelectedImageIndex(newIndex);
50
+ };
51
+ return _objectSpread(_objectSpread({}, props), {}, {
52
+ imageIds: imageIds,
53
+ selectedImageId: selectedImageId,
54
+ selectedImageIndex: selectedImageIndex,
55
+ thumbnailsListRef: thumbnailsListRef,
56
+ priorityLimit: priorityLimit,
57
+ thumbnailImageClick: thumbnailImageClick,
58
+ mainImageButtonClick: mainImageButtonClick
59
+ });
60
+ };
61
+ var _default = exports["default"] = useThumbnailCarousel;
62
+ //# sourceMappingURL=useThumbnailCarousel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThumbnailCarousel.js","names":["_react","require","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","useThumbnailCarousel","_ref","imageIds","priorityLimit","props","_objectWithoutProperties2","_useState","useState","_useState2","_slicedToArray2","selectedImageIndex","setSelectedImageIndex","thumbnailsListRef","useRef","selectedImageId","mainImageButtonClick","next","isLast","newIndex","isFirst","thumbnailImageClick","id","indexOf","_default","exports"],"sources":["../../../src/variants/ThumbnailCarousel/useThumbnailCarousel.js"],"sourcesContent":["import { useState, useRef } from 'react';\n\nconst useThumbnailCarousel = ({ imageIds, priorityLimit, ...props }) => {\n const [selectedImageIndex, setSelectedImageIndex] = useState(0);\n const thumbnailsListRef = useRef(null);\n const selectedImageId = imageIds[selectedImageIndex];\n\n const mainImageButtonClick = next => {\n if (next) {\n const isLast = imageIds.length - 1 === selectedImageIndex;\n const newIndex = isLast ? 0 : selectedImageIndex + 1;\n setSelectedImageIndex(newIndex);\n } else {\n const isFirst = selectedImageIndex === 0;\n const newIndex = isFirst ? imageIds.length - 1 : selectedImageIndex - 1;\n setSelectedImageIndex(newIndex);\n }\n };\n\n const thumbnailImageClick = id => {\n const newIndex = imageIds.indexOf(id);\n if (newIndex !== -1) setSelectedImageIndex(newIndex);\n };\n\n return {\n ...props,\n imageIds,\n selectedImageId,\n selectedImageIndex,\n thumbnailsListRef,\n priorityLimit,\n thumbnailImageClick,\n mainImageButtonClick\n };\n};\n\nexport default useThumbnailCarousel;\n"],"mappings":"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"}
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports["default"] = void 0;
8
- var _default = exports["default"] = {};
9
+ var _ThumbnailCarousel = _interopRequireDefault(require("./ThumbnailCarousel"));
10
+ var _default = exports["default"] = {
11
+ thumbnailCarousel: _ThumbnailCarousel["default"]
12
+ };
9
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/variants/index.js"],"sourcesContent":["export default {};\n"],"mappings":";;;;;;;oCAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","names":["_ThumbnailCarousel","_interopRequireDefault","require","_default","exports","thumbnailCarousel"],"sources":["../../src/variants/index.js"],"sourcesContent":["import thumbnailCarousel from './ThumbnailCarousel';\n\nexport default {\n thumbnailCarousel\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,kBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAoD,IAAAC,QAAA,GAAAC,OAAA,cAErC;EACbC,iBAAiB,EAAjBA;AACF,CAAC"}
@@ -0,0 +1,51 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React from 'react';
3
+ import useThumbnailCarousel from './useThumbnailCarousel';
4
+ import ThumbnailImage from './ThumbnailImage';
5
+ const ThumbnailCarousel = props => {
6
+ const {
7
+ thumbnailsListRef,
8
+ imageIds,
9
+ selectedImageId,
10
+ priorityLimit,
11
+ mainImageButtonClick,
12
+ thumbnailImageClick
13
+ } = useThumbnailCarousel(props);
14
+ return /*#__PURE__*/React.createElement("div", {
15
+ className: "thumbnail-carousel",
16
+ "data-testid": "thumbnail-carousel"
17
+ }, /*#__PURE__*/React.createElement("div", {
18
+ className: "thumbnail-carousel__main_image_container"
19
+ }, /*#__PURE__*/React.createElement("div", {
20
+ id: "previous-button",
21
+ className: "thumbnail-carousel__main_image_container__button",
22
+ role: "button",
23
+ onClick: () => mainImageButtonClick()
24
+ }, /*#__PURE__*/React.createElement("div", {
25
+ className: "arrow arrow--left"
26
+ })), /*#__PURE__*/React.createElement("div", {
27
+ className: "thumbnail-carousel__main_image_container__main-image",
28
+ "data-testid": "thumbnail-main-image",
29
+ ref: thumbnailsListRef
30
+ }, /*#__PURE__*/React.createElement(ThumbnailImage, _extends({}, props, {
31
+ priority: true,
32
+ imageId: selectedImageId
33
+ }))), /*#__PURE__*/React.createElement("div", {
34
+ id: "next-button",
35
+ className: "thumbnail-carousel__main_image_container__button next",
36
+ role: "button",
37
+ onClick: () => mainImageButtonClick(true)
38
+ }, /*#__PURE__*/React.createElement("div", {
39
+ className: "arrow arrow--right"
40
+ }))), /*#__PURE__*/React.createElement("div", {
41
+ className: "thumbnail-carousel__list"
42
+ }, imageIds.map((imageId, index) => /*#__PURE__*/React.createElement(ThumbnailImage, _extends({}, props, {
43
+ key: imageId,
44
+ priority: index < priorityLimit,
45
+ imageId: imageId,
46
+ selectedImageId: selectedImageId,
47
+ handleOnClick: thumbnailImageClick
48
+ })))));
49
+ };
50
+ export default ThumbnailCarousel;
51
+ //# sourceMappingURL=ThumbnailCarousel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThumbnailCarousel.js","names":["React","useThumbnailCarousel","ThumbnailImage","ThumbnailCarousel","props","thumbnailsListRef","imageIds","selectedImageId","priorityLimit","mainImageButtonClick","thumbnailImageClick","createElement","className","id","role","onClick","ref","_extends","priority","imageId","map","index","key","handleOnClick"],"sources":["../../../src/variants/ThumbnailCarousel/ThumbnailCarousel.js"],"sourcesContent":["import React from 'react';\nimport useThumbnailCarousel from './useThumbnailCarousel';\nimport ThumbnailImage from './ThumbnailImage';\n\nconst ThumbnailCarousel = props => {\n const {\n thumbnailsListRef,\n imageIds,\n selectedImageId,\n priorityLimit,\n mainImageButtonClick,\n thumbnailImageClick\n } = useThumbnailCarousel(props);\n\n return (\n <div className=\"thumbnail-carousel\" data-testid=\"thumbnail-carousel\">\n <div className=\"thumbnail-carousel__main_image_container\">\n <div\n id=\"previous-button\"\n className=\"thumbnail-carousel__main_image_container__button\"\n role=\"button\"\n onClick={() => mainImageButtonClick()}>\n <div className=\"arrow arrow--left\" />\n </div>\n <div\n className=\"thumbnail-carousel__main_image_container__main-image\"\n data-testid=\"thumbnail-main-image\"\n ref={thumbnailsListRef}>\n <ThumbnailImage {...props} priority imageId={selectedImageId} />\n </div>\n <div\n id=\"next-button\"\n className=\"thumbnail-carousel__main_image_container__button next\"\n role=\"button\"\n onClick={() => mainImageButtonClick(true)}>\n <div className=\"arrow arrow--right\" />\n </div>\n </div>\n <div className=\"thumbnail-carousel__list\">\n {imageIds.map((imageId, index) => (\n <ThumbnailImage\n {...props}\n key={imageId}\n priority={index < priorityLimit}\n imageId={imageId}\n selectedImageId={selectedImageId}\n handleOnClick={thumbnailImageClick}\n />\n ))}\n </div>\n </div>\n );\n};\n\nexport default ThumbnailCarousel;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,OAAOC,cAAc,MAAM,kBAAkB;AAE7C,MAAMC,iBAAiB,GAAGC,KAAK,IAAI;EACjC,MAAM;IACJC,iBAAiB;IACjBC,QAAQ;IACRC,eAAe;IACfC,aAAa;IACbC,oBAAoB;IACpBC;EACF,CAAC,GAAGT,oBAAoB,CAACG,KAAK,CAAC;EAE/B,oBACEJ,KAAA,CAAAW,aAAA;IAAKC,SAAS,EAAC,oBAAoB;IAAC,eAAY;EAAoB,gBAClEZ,KAAA,CAAAW,aAAA;IAAKC,SAAS,EAAC;EAA0C,gBACvDZ,KAAA,CAAAW,aAAA;IACEE,EAAE,EAAC,iBAAiB;IACpBD,SAAS,EAAC,kDAAkD;IAC5DE,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAEA,CAAA,KAAMN,oBAAoB,CAAC;EAAE,gBACtCT,KAAA,CAAAW,aAAA;IAAKC,SAAS,EAAC;EAAmB,CAAE,CACjC,CAAC,eACNZ,KAAA,CAAAW,aAAA;IACEC,SAAS,EAAC,sDAAsD;IAChE,eAAY,sBAAsB;IAClCI,GAAG,EAAEX;EAAkB,gBACvBL,KAAA,CAAAW,aAAA,CAACT,cAAc,EAAAe,QAAA,KAAKb,KAAK;IAAEc,QAAQ;IAACC,OAAO,EAAEZ;EAAgB,EAAE,CAC5D,CAAC,eACNP,KAAA,CAAAW,aAAA;IACEE,EAAE,EAAC,aAAa;IAChBD,SAAS,EAAC,uDAAuD;IACjEE,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAEA,CAAA,KAAMN,oBAAoB,CAAC,IAAI;EAAE,gBAC1CT,KAAA,CAAAW,aAAA;IAAKC,SAAS,EAAC;EAAoB,CAAE,CAClC,CACF,CAAC,eACNZ,KAAA,CAAAW,aAAA;IAAKC,SAAS,EAAC;EAA0B,GACtCN,QAAQ,CAACc,GAAG,CAAC,CAACD,OAAO,EAAEE,KAAK,kBAC3BrB,KAAA,CAAAW,aAAA,CAACT,cAAc,EAAAe,QAAA,KACTb,KAAK;IACTkB,GAAG,EAAEH,OAAQ;IACbD,QAAQ,EAAEG,KAAK,GAAGb,aAAc;IAChCW,OAAO,EAAEA,OAAQ;IACjBZ,eAAe,EAAEA,eAAgB;IACjCgB,aAAa,EAAEb;EAAoB,EACpC,CACF,CACE,CACF,CAAC;AAEV,CAAC;AAED,eAAeP,iBAAiB"}
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import LazyImage from '../../../components/LazyImage';
3
+ import useThumbnailImage from './useThumbnailImage';
4
+ const ThumbnailImage = props => {
5
+ const {
6
+ loading,
7
+ error,
8
+ className,
9
+ imageRef,
10
+ imageUrl,
11
+ altText,
12
+ priority,
13
+ handleClick,
14
+ handleEnableLightbox
15
+ } = useThumbnailImage(props);
16
+ if (error) return error.message;
17
+ if (loading) return null;
18
+ return /*#__PURE__*/React.createElement("div", {
19
+ ref: imageRef,
20
+ className: className,
21
+ onClick: handleClick,
22
+ role: "button",
23
+ "data-testid": "thumbnail-image"
24
+ }, /*#__PURE__*/React.createElement(LazyImage, {
25
+ src: imageUrl,
26
+ alt: altText,
27
+ sizeKey: "carousel",
28
+ onClick: handleEnableLightbox,
29
+ role: "button",
30
+ priority: priority
31
+ }));
32
+ };
33
+ export default ThumbnailImage;
34
+ //# sourceMappingURL=ThumbnailImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThumbnailImage.js","names":["React","LazyImage","useThumbnailImage","ThumbnailImage","props","loading","error","className","imageRef","imageUrl","altText","priority","handleClick","handleEnableLightbox","message","createElement","ref","onClick","role","src","alt","sizeKey"],"sources":["../../../../src/variants/ThumbnailCarousel/ThumbnailImage/ThumbnailImage.js"],"sourcesContent":["import React from 'react';\nimport LazyImage from '../../../components/LazyImage';\nimport useThumbnailImage from './useThumbnailImage';\n\nconst ThumbnailImage = props => {\n const {\n loading,\n error,\n className,\n imageRef,\n imageUrl,\n altText,\n priority,\n handleClick,\n handleEnableLightbox\n } = useThumbnailImage(props);\n\n if (error) return error.message;\n if (loading) return null;\n\n return (\n <div\n ref={imageRef}\n className={className}\n onClick={handleClick}\n role=\"button\"\n data-testid=\"thumbnail-image\">\n <LazyImage\n src={imageUrl}\n alt={altText}\n sizeKey=\"carousel\"\n onClick={handleEnableLightbox}\n role=\"button\"\n priority={priority}\n />\n </div>\n );\n};\n\nexport default ThumbnailImage;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,+BAA+B;AACrD,OAAOC,iBAAiB,MAAM,qBAAqB;AAEnD,MAAMC,cAAc,GAAGC,KAAK,IAAI;EAC9B,MAAM;IACJC,OAAO;IACPC,KAAK;IACLC,SAAS;IACTC,QAAQ;IACRC,QAAQ;IACRC,OAAO;IACPC,QAAQ;IACRC,WAAW;IACXC;EACF,CAAC,GAAGX,iBAAiB,CAACE,KAAK,CAAC;EAE5B,IAAIE,KAAK,EAAE,OAAOA,KAAK,CAACQ,OAAO;EAC/B,IAAIT,OAAO,EAAE,OAAO,IAAI;EAExB,oBACEL,KAAA,CAAAe,aAAA;IACEC,GAAG,EAAER,QAAS;IACdD,SAAS,EAAEA,SAAU;IACrBU,OAAO,EAAEL,WAAY;IACrBM,IAAI,EAAC,QAAQ;IACb,eAAY;EAAiB,gBAC7BlB,KAAA,CAAAe,aAAA,CAACd,SAAS;IACRkB,GAAG,EAAEV,QAAS;IACdW,GAAG,EAAEV,OAAQ;IACbW,OAAO,EAAC,UAAU;IAClBJ,OAAO,EAAEJ,oBAAqB;IAC9BK,IAAI,EAAC,QAAQ;IACbP,QAAQ,EAAEA;EAAS,CACpB,CACE,CAAC;AAEV,CAAC;AAED,eAAeR,cAAc"}
@@ -0,0 +1,3 @@
1
+ import ThumbnailImage from './ThumbnailImage';
2
+ export default ThumbnailImage;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["ThumbnailImage"],"sources":["../../../../src/variants/ThumbnailCarousel/ThumbnailImage/index.js"],"sourcesContent":["import ThumbnailImage from './ThumbnailImage';\n\nexport default ThumbnailImage;\n"],"mappings":"AAAA,OAAOA,cAAc,MAAM,kBAAkB;AAE7C,eAAeA,cAAc"}
@@ -0,0 +1,75 @@
1
+ import { useEffect, useRef } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { useGetImages } from '../../../hooks';
4
+ import { getImageData } from '../../../utils';
5
+ const useThumbnailImage = ({
6
+ imageId,
7
+ enableLightbox,
8
+ toggleModal,
9
+ handleSelectedImage,
10
+ priority,
11
+ selectedImageId,
12
+ handleOnClick
13
+ }) => {
14
+ const imageRef = useRef(null);
15
+ const isSelected = selectedImageId === imageId;
16
+ const {
17
+ data = {},
18
+ loading,
19
+ error
20
+ } = useGetImages(imageId);
21
+ useEffect(() => {
22
+ if (imageRef.current && isSelected) {
23
+ imageRef.current.scrollIntoView({
24
+ behavior: 'smooth',
25
+ block: 'start'
26
+ });
27
+ }
28
+ }, [isSelected]);
29
+ const handleEnableLightbox = () => {
30
+ if (!enableLightbox) return;
31
+ toggleModal();
32
+ handleSelectedImage(imageId);
33
+ };
34
+ const handleClick = () => {
35
+ handleOnClick(imageId);
36
+ };
37
+ const {
38
+ url: imageUrl = '',
39
+ data: imageData = {}
40
+ } = data.getFile || {
41
+ getFile: {
42
+ url: '',
43
+ data: {}
44
+ }
45
+ };
46
+ const {
47
+ altText
48
+ } = getImageData({}, imageData);
49
+ const className = selectedImageId === imageId ? 'thumbnail-carousel-image thumbnail-carousel-image--selected' : 'thumbnail-carousel-image';
50
+ return {
51
+ loading,
52
+ error,
53
+ className,
54
+ imageRef,
55
+ imageUrl,
56
+ altText,
57
+ priority,
58
+ handleClick,
59
+ handleEnableLightbox
60
+ };
61
+ };
62
+ useThumbnailImage.propTypes = {
63
+ imageId: PropTypes.string.isRequired,
64
+ selectedImageId: PropTypes.string.isRequired,
65
+ enableLightbox: PropTypes.bool.isRequired,
66
+ toggleModal: PropTypes.func.isRequired,
67
+ handleSelectedImage: PropTypes.func.isRequired,
68
+ priority: PropTypes.bool.isRequired,
69
+ handleOnClick: PropTypes.func
70
+ };
71
+ useThumbnailImage.defaultProps = {
72
+ handleOnClick: () => {}
73
+ };
74
+ export default useThumbnailImage;
75
+ //# sourceMappingURL=useThumbnailImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThumbnailImage.js","names":["useEffect","useRef","PropTypes","useGetImages","getImageData","useThumbnailImage","imageId","enableLightbox","toggleModal","handleSelectedImage","priority","selectedImageId","handleOnClick","imageRef","isSelected","data","loading","error","current","scrollIntoView","behavior","block","handleEnableLightbox","handleClick","url","imageUrl","imageData","getFile","altText","className","propTypes","string","isRequired","bool","func","defaultProps"],"sources":["../../../../src/variants/ThumbnailCarousel/ThumbnailImage/useThumbnailImage.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useGetImages } from '../../../hooks';\nimport { getImageData } from '../../../utils';\n\nconst useThumbnailImage = ({\n imageId,\n enableLightbox,\n toggleModal,\n handleSelectedImage,\n priority,\n selectedImageId,\n handleOnClick\n}) => {\n const imageRef = useRef(null);\n const isSelected = selectedImageId === imageId;\n const { data = {}, loading, error } = useGetImages(imageId);\n\n useEffect(\n () => {\n if (imageRef.current && isSelected) {\n imageRef.current.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n },\n [isSelected]\n );\n\n const handleEnableLightbox = () => {\n if (!enableLightbox) return;\n toggleModal();\n handleSelectedImage(imageId);\n };\n\n const handleClick = () => {\n handleOnClick(imageId);\n };\n\n const { url: imageUrl = '', data: imageData = {} } = data.getFile || {\n getFile: { url: '', data: {} }\n };\n const { altText } = getImageData({}, imageData);\n\n const className =\n selectedImageId === imageId\n ? 'thumbnail-carousel-image thumbnail-carousel-image--selected'\n : 'thumbnail-carousel-image';\n\n return {\n loading,\n error,\n className,\n imageRef,\n imageUrl,\n altText,\n priority,\n handleClick,\n handleEnableLightbox\n };\n};\n\nuseThumbnailImage.propTypes = {\n imageId: PropTypes.string.isRequired,\n selectedImageId: PropTypes.string.isRequired,\n enableLightbox: PropTypes.bool.isRequired,\n toggleModal: PropTypes.func.isRequired,\n handleSelectedImage: PropTypes.func.isRequired,\n priority: PropTypes.bool.isRequired,\n handleOnClick: PropTypes.func\n};\n\nuseThumbnailImage.defaultProps = {\n handleOnClick: () => {}\n};\n\nexport default useThumbnailImage;\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,MAAMC,iBAAiB,GAAGA,CAAC;EACzBC,OAAO;EACPC,cAAc;EACdC,WAAW;EACXC,mBAAmB;EACnBC,QAAQ;EACRC,eAAe;EACfC;AACF,CAAC,KAAK;EACJ,MAAMC,QAAQ,GAAGZ,MAAM,CAAC,IAAI,CAAC;EAC7B,MAAMa,UAAU,GAAGH,eAAe,KAAKL,OAAO;EAC9C,MAAM;IAAES,IAAI,GAAG,CAAC,CAAC;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAGd,YAAY,CAACG,OAAO,CAAC;EAE3DN,SAAS,CACP,MAAM;IACJ,IAAIa,QAAQ,CAACK,OAAO,IAAIJ,UAAU,EAAE;MAClCD,QAAQ,CAACK,OAAO,CAACC,cAAc,CAAC;QAAEC,QAAQ,EAAE,QAAQ;QAAEC,KAAK,EAAE;MAAQ,CAAC,CAAC;IACzE;EACF,CAAC,EACD,CAACP,UAAU,CACb,CAAC;EAED,MAAMQ,oBAAoB,GAAGA,CAAA,KAAM;IACjC,IAAI,CAACf,cAAc,EAAE;IACrBC,WAAW,CAAC,CAAC;IACbC,mBAAmB,CAACH,OAAO,CAAC;EAC9B,CAAC;EAED,MAAMiB,WAAW,GAAGA,CAAA,KAAM;IACxBX,aAAa,CAACN,OAAO,CAAC;EACxB,CAAC;EAED,MAAM;IAAEkB,GAAG,EAAEC,QAAQ,GAAG,EAAE;IAAEV,IAAI,EAAEW,SAAS,GAAG,CAAC;EAAE,CAAC,GAAGX,IAAI,CAACY,OAAO,IAAI;IACnEA,OAAO,EAAE;MAAEH,GAAG,EAAE,EAAE;MAAET,IAAI,EAAE,CAAC;IAAE;EAC/B,CAAC;EACD,MAAM;IAAEa;EAAQ,CAAC,GAAGxB,YAAY,CAAC,CAAC,CAAC,EAAEsB,SAAS,CAAC;EAE/C,MAAMG,SAAS,GACblB,eAAe,KAAKL,OAAO,GACvB,6DAA6D,GAC7D,0BAA0B;EAEhC,OAAO;IACLU,OAAO;IACPC,KAAK;IACLY,SAAS;IACThB,QAAQ;IACRY,QAAQ;IACRG,OAAO;IACPlB,QAAQ;IACRa,WAAW;IACXD;EACF,CAAC;AACH,CAAC;AAEDjB,iBAAiB,CAACyB,SAAS,GAAG;EAC5BxB,OAAO,EAAEJ,SAAS,CAAC6B,MAAM,CAACC,UAAU;EACpCrB,eAAe,EAAET,SAAS,CAAC6B,MAAM,CAACC,UAAU;EAC5CzB,cAAc,EAAEL,SAAS,CAAC+B,IAAI,CAACD,UAAU;EACzCxB,WAAW,EAAEN,SAAS,CAACgC,IAAI,CAACF,UAAU;EACtCvB,mBAAmB,EAAEP,SAAS,CAACgC,IAAI,CAACF,UAAU;EAC9CtB,QAAQ,EAAER,SAAS,CAAC+B,IAAI,CAACD,UAAU;EACnCpB,aAAa,EAAEV,SAAS,CAACgC;AAC3B,CAAC;AAED7B,iBAAiB,CAAC8B,YAAY,GAAG;EAC/BvB,aAAa,EAAEA,CAAA,KAAM,CAAC;AACxB,CAAC;AAED,eAAeP,iBAAiB"}
@@ -0,0 +1,10 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import ThumbnailCarouselComponent from './ThumbnailCarousel';
5
+ const ThumbnailCarousel = {
6
+ getSettings: componentSettings => _objectSpread({}, componentSettings),
7
+ VariantComponent: ThumbnailCarouselComponent
8
+ };
9
+ export default ThumbnailCarousel;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["ThumbnailCarouselComponent","ThumbnailCarousel","getSettings","componentSettings","_objectSpread","VariantComponent"],"sources":["../../../src/variants/ThumbnailCarousel/index.js"],"sourcesContent":["import ThumbnailCarouselComponent from './ThumbnailCarousel';\n\nconst ThumbnailCarousel = {\n getSettings: componentSettings => ({\n ...componentSettings\n }),\n VariantComponent: ThumbnailCarouselComponent\n};\n\nexport default ThumbnailCarousel;\n"],"mappings":";;;AAAA,OAAOA,0BAA0B,MAAM,qBAAqB;AAE5D,MAAMC,iBAAiB,GAAG;EACxBC,WAAW,EAAEC,iBAAiB,IAAAC,aAAA,KACzBD,iBAAiB,CACpB;EACFE,gBAAgB,EAAEL;AACpB,CAAC;AAED,eAAeC,iBAAiB"}
@@ -0,0 +1,42 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ const _excluded = ["imageIds", "priorityLimit"];
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ import { useState, useRef } from 'react';
7
+ const useThumbnailCarousel = _ref => {
8
+ let {
9
+ imageIds,
10
+ priorityLimit
11
+ } = _ref,
12
+ props = _objectWithoutProperties(_ref, _excluded);
13
+ const [selectedImageIndex, setSelectedImageIndex] = useState(0);
14
+ const thumbnailsListRef = useRef(null);
15
+ const selectedImageId = imageIds[selectedImageIndex];
16
+ const mainImageButtonClick = next => {
17
+ if (next) {
18
+ const isLast = imageIds.length - 1 === selectedImageIndex;
19
+ const newIndex = isLast ? 0 : selectedImageIndex + 1;
20
+ setSelectedImageIndex(newIndex);
21
+ } else {
22
+ const isFirst = selectedImageIndex === 0;
23
+ const newIndex = isFirst ? imageIds.length - 1 : selectedImageIndex - 1;
24
+ setSelectedImageIndex(newIndex);
25
+ }
26
+ };
27
+ const thumbnailImageClick = id => {
28
+ const newIndex = imageIds.indexOf(id);
29
+ if (newIndex !== -1) setSelectedImageIndex(newIndex);
30
+ };
31
+ return _objectSpread(_objectSpread({}, props), {}, {
32
+ imageIds,
33
+ selectedImageId,
34
+ selectedImageIndex,
35
+ thumbnailsListRef,
36
+ priorityLimit,
37
+ thumbnailImageClick,
38
+ mainImageButtonClick
39
+ });
40
+ };
41
+ export default useThumbnailCarousel;
42
+ //# sourceMappingURL=useThumbnailCarousel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThumbnailCarousel.js","names":["useState","useRef","useThumbnailCarousel","_ref","imageIds","priorityLimit","props","_objectWithoutProperties","_excluded","selectedImageIndex","setSelectedImageIndex","thumbnailsListRef","selectedImageId","mainImageButtonClick","next","isLast","length","newIndex","isFirst","thumbnailImageClick","id","indexOf","_objectSpread"],"sources":["../../../src/variants/ThumbnailCarousel/useThumbnailCarousel.js"],"sourcesContent":["import { useState, useRef } from 'react';\n\nconst useThumbnailCarousel = ({ imageIds, priorityLimit, ...props }) => {\n const [selectedImageIndex, setSelectedImageIndex] = useState(0);\n const thumbnailsListRef = useRef(null);\n const selectedImageId = imageIds[selectedImageIndex];\n\n const mainImageButtonClick = next => {\n if (next) {\n const isLast = imageIds.length - 1 === selectedImageIndex;\n const newIndex = isLast ? 0 : selectedImageIndex + 1;\n setSelectedImageIndex(newIndex);\n } else {\n const isFirst = selectedImageIndex === 0;\n const newIndex = isFirst ? imageIds.length - 1 : selectedImageIndex - 1;\n setSelectedImageIndex(newIndex);\n }\n };\n\n const thumbnailImageClick = id => {\n const newIndex = imageIds.indexOf(id);\n if (newIndex !== -1) setSelectedImageIndex(newIndex);\n };\n\n return {\n ...props,\n imageIds,\n selectedImageId,\n selectedImageIndex,\n thumbnailsListRef,\n priorityLimit,\n thumbnailImageClick,\n mainImageButtonClick\n };\n};\n\nexport default useThumbnailCarousel;\n"],"mappings":";;;;;AAAA,SAASA,QAAQ,EAAEC,MAAM,QAAQ,OAAO;AAExC,MAAMC,oBAAoB,GAAGC,IAAA,IAA2C;EAAA,IAA1C;MAAEC,QAAQ;MAAEC;IAAwB,CAAC,GAAAF,IAAA;IAAPG,KAAK,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA;EAC/D,MAAM,CAACC,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGV,QAAQ,CAAC,CAAC,CAAC;EAC/D,MAAMW,iBAAiB,GAAGV,MAAM,CAAC,IAAI,CAAC;EACtC,MAAMW,eAAe,GAAGR,QAAQ,CAACK,kBAAkB,CAAC;EAEpD,MAAMI,oBAAoB,GAAGC,IAAI,IAAI;IACnC,IAAIA,IAAI,EAAE;MACR,MAAMC,MAAM,GAAGX,QAAQ,CAACY,MAAM,GAAG,CAAC,KAAKP,kBAAkB;MACzD,MAAMQ,QAAQ,GAAGF,MAAM,GAAG,CAAC,GAAGN,kBAAkB,GAAG,CAAC;MACpDC,qBAAqB,CAACO,QAAQ,CAAC;IACjC,CAAC,MAAM;MACL,MAAMC,OAAO,GAAGT,kBAAkB,KAAK,CAAC;MACxC,MAAMQ,QAAQ,GAAGC,OAAO,GAAGd,QAAQ,CAACY,MAAM,GAAG,CAAC,GAAGP,kBAAkB,GAAG,CAAC;MACvEC,qBAAqB,CAACO,QAAQ,CAAC;IACjC;EACF,CAAC;EAED,MAAME,mBAAmB,GAAGC,EAAE,IAAI;IAChC,MAAMH,QAAQ,GAAGb,QAAQ,CAACiB,OAAO,CAACD,EAAE,CAAC;IACrC,IAAIH,QAAQ,KAAK,CAAC,CAAC,EAAEP,qBAAqB,CAACO,QAAQ,CAAC;EACtD,CAAC;EAED,OAAAK,aAAA,CAAAA,aAAA,KACKhB,KAAK;IACRF,QAAQ;IACRQ,eAAe;IACfH,kBAAkB;IAClBE,iBAAiB;IACjBN,aAAa;IACbc,mBAAmB;IACnBN;EAAoB;AAExB,CAAC;AAED,eAAeX,oBAAoB"}
@@ -1,2 +1,5 @@
1
- export default {};
1
+ import thumbnailCarousel from './ThumbnailCarousel';
2
+ export default {
3
+ thumbnailCarousel
4
+ };
2
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/variants/index.js"],"sourcesContent":["export default {};\n"],"mappings":"AAAA,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","names":["thumbnailCarousel"],"sources":["../../src/variants/index.js"],"sourcesContent":["import thumbnailCarousel from './ThumbnailCarousel';\n\nexport default {\n thumbnailCarousel\n};\n"],"mappings":"AAAA,OAAOA,iBAAiB,MAAM,qBAAqB;AAEnD,eAAe;EACbA;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/react-page-builder",
3
- "version": "0.141.0-core-styles.16",
3
+ "version": "0.141.0-core-styles.20",
4
4
  "description": "Blaze react page builder",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -89,5 +89,5 @@
89
89
  "lib/*",
90
90
  "lib-es/*"
91
91
  ],
92
- "gitHead": "e6dff43958480a68453d3895888a61c9129dc94b"
92
+ "gitHead": "4e9b6cfffbc04fa32476c3daed008594a54838e9"
93
93
  }
@@ -0,0 +1,55 @@
1
+ import React from 'react';
2
+ import useThumbnailCarousel from './useThumbnailCarousel';
3
+ import ThumbnailImage from './ThumbnailImage';
4
+
5
+ const ThumbnailCarousel = props => {
6
+ const {
7
+ thumbnailsListRef,
8
+ imageIds,
9
+ selectedImageId,
10
+ priorityLimit,
11
+ mainImageButtonClick,
12
+ thumbnailImageClick
13
+ } = useThumbnailCarousel(props);
14
+
15
+ return (
16
+ <div className="thumbnail-carousel" data-testid="thumbnail-carousel">
17
+ <div className="thumbnail-carousel__main_image_container">
18
+ <div
19
+ id="previous-button"
20
+ className="thumbnail-carousel__main_image_container__button"
21
+ role="button"
22
+ onClick={() => mainImageButtonClick()}>
23
+ <div className="arrow arrow--left" />
24
+ </div>
25
+ <div
26
+ className="thumbnail-carousel__main_image_container__main-image"
27
+ data-testid="thumbnail-main-image"
28
+ ref={thumbnailsListRef}>
29
+ <ThumbnailImage {...props} priority imageId={selectedImageId} />
30
+ </div>
31
+ <div
32
+ id="next-button"
33
+ className="thumbnail-carousel__main_image_container__button next"
34
+ role="button"
35
+ onClick={() => mainImageButtonClick(true)}>
36
+ <div className="arrow arrow--right" />
37
+ </div>
38
+ </div>
39
+ <div className="thumbnail-carousel__list">
40
+ {imageIds.map((imageId, index) => (
41
+ <ThumbnailImage
42
+ {...props}
43
+ key={imageId}
44
+ priority={index < priorityLimit}
45
+ imageId={imageId}
46
+ selectedImageId={selectedImageId}
47
+ handleOnClick={thumbnailImageClick}
48
+ />
49
+ ))}
50
+ </div>
51
+ </div>
52
+ );
53
+ };
54
+
55
+ export default ThumbnailCarousel;
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import LazyImage from '../../../components/LazyImage';
3
+ import useThumbnailImage from './useThumbnailImage';
4
+
5
+ const ThumbnailImage = props => {
6
+ const {
7
+ loading,
8
+ error,
9
+ className,
10
+ imageRef,
11
+ imageUrl,
12
+ altText,
13
+ priority,
14
+ handleClick,
15
+ handleEnableLightbox
16
+ } = useThumbnailImage(props);
17
+
18
+ if (error) return error.message;
19
+ if (loading) return null;
20
+
21
+ return (
22
+ <div
23
+ ref={imageRef}
24
+ className={className}
25
+ onClick={handleClick}
26
+ role="button"
27
+ data-testid="thumbnail-image">
28
+ <LazyImage
29
+ src={imageUrl}
30
+ alt={altText}
31
+ sizeKey="carousel"
32
+ onClick={handleEnableLightbox}
33
+ role="button"
34
+ priority={priority}
35
+ />
36
+ </div>
37
+ );
38
+ };
39
+
40
+ export default ThumbnailImage;
@@ -0,0 +1,3 @@
1
+ import ThumbnailImage from './ThumbnailImage';
2
+
3
+ export default ThumbnailImage;
@@ -0,0 +1,75 @@
1
+ import { useEffect, useRef } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { useGetImages } from '../../../hooks';
4
+ import { getImageData } from '../../../utils';
5
+
6
+ const useThumbnailImage = ({
7
+ imageId,
8
+ enableLightbox,
9
+ toggleModal,
10
+ handleSelectedImage,
11
+ priority,
12
+ selectedImageId,
13
+ handleOnClick
14
+ }) => {
15
+ const imageRef = useRef(null);
16
+ const isSelected = selectedImageId === imageId;
17
+ const { data = {}, loading, error } = useGetImages(imageId);
18
+
19
+ useEffect(
20
+ () => {
21
+ if (imageRef.current && isSelected) {
22
+ imageRef.current.scrollIntoView({ behavior: 'smooth', block: 'start' });
23
+ }
24
+ },
25
+ [isSelected]
26
+ );
27
+
28
+ const handleEnableLightbox = () => {
29
+ if (!enableLightbox) return;
30
+ toggleModal();
31
+ handleSelectedImage(imageId);
32
+ };
33
+
34
+ const handleClick = () => {
35
+ handleOnClick(imageId);
36
+ };
37
+
38
+ const { url: imageUrl = '', data: imageData = {} } = data.getFile || {
39
+ getFile: { url: '', data: {} }
40
+ };
41
+ const { altText } = getImageData({}, imageData);
42
+
43
+ const className =
44
+ selectedImageId === imageId
45
+ ? 'thumbnail-carousel-image thumbnail-carousel-image--selected'
46
+ : 'thumbnail-carousel-image';
47
+
48
+ return {
49
+ loading,
50
+ error,
51
+ className,
52
+ imageRef,
53
+ imageUrl,
54
+ altText,
55
+ priority,
56
+ handleClick,
57
+ handleEnableLightbox
58
+ };
59
+ };
60
+
61
+ useThumbnailImage.propTypes = {
62
+ imageId: PropTypes.string.isRequired,
63
+ selectedImageId: PropTypes.string.isRequired,
64
+ enableLightbox: PropTypes.bool.isRequired,
65
+ toggleModal: PropTypes.func.isRequired,
66
+ handleSelectedImage: PropTypes.func.isRequired,
67
+ priority: PropTypes.bool.isRequired,
68
+ handleOnClick: PropTypes.func
69
+ };
70
+
71
+ useThumbnailImage.defaultProps = {
72
+ handleOnClick: () => {}
73
+ };
74
+
75
+ export default useThumbnailImage;
@@ -0,0 +1,10 @@
1
+ import ThumbnailCarouselComponent from './ThumbnailCarousel';
2
+
3
+ const ThumbnailCarousel = {
4
+ getSettings: componentSettings => ({
5
+ ...componentSettings
6
+ }),
7
+ VariantComponent: ThumbnailCarouselComponent
8
+ };
9
+
10
+ export default ThumbnailCarousel;
@@ -0,0 +1,37 @@
1
+ import { useState, useRef } from 'react';
2
+
3
+ const useThumbnailCarousel = ({ imageIds, priorityLimit, ...props }) => {
4
+ const [selectedImageIndex, setSelectedImageIndex] = useState(0);
5
+ const thumbnailsListRef = useRef(null);
6
+ const selectedImageId = imageIds[selectedImageIndex];
7
+
8
+ const mainImageButtonClick = next => {
9
+ if (next) {
10
+ const isLast = imageIds.length - 1 === selectedImageIndex;
11
+ const newIndex = isLast ? 0 : selectedImageIndex + 1;
12
+ setSelectedImageIndex(newIndex);
13
+ } else {
14
+ const isFirst = selectedImageIndex === 0;
15
+ const newIndex = isFirst ? imageIds.length - 1 : selectedImageIndex - 1;
16
+ setSelectedImageIndex(newIndex);
17
+ }
18
+ };
19
+
20
+ const thumbnailImageClick = id => {
21
+ const newIndex = imageIds.indexOf(id);
22
+ if (newIndex !== -1) setSelectedImageIndex(newIndex);
23
+ };
24
+
25
+ return {
26
+ ...props,
27
+ imageIds,
28
+ selectedImageId,
29
+ selectedImageIndex,
30
+ thumbnailsListRef,
31
+ priorityLimit,
32
+ thumbnailImageClick,
33
+ mainImageButtonClick
34
+ };
35
+ };
36
+
37
+ export default useThumbnailCarousel;
@@ -1 +1,5 @@
1
- export default {};
1
+ import thumbnailCarousel from './ThumbnailCarousel';
2
+
3
+ export default {
4
+ thumbnailCarousel
5
+ };
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+ import React from 'react';
5
+ import '@testing-library/jest-dom/extend-expect';
6
+ import { render, screen, waitFor } from '@testing-library/react';
7
+ import { MockedProvider } from '@apollo/client/testing';
8
+ import ThumbnailCarousel from '../../../../../src/variants/ThumbnailCarousel/ThumbnailCarousel';
9
+ import IMAGE_MOCKS from './mocks';
10
+
11
+ const mockedProps = {
12
+ imageIds: ['1', '2', '3'],
13
+ priorityLimit: 0
14
+ };
15
+
16
+ describe('ThumbnailCarousel component', () => {
17
+ it('renders ThumbnailCarousel without error', async () => {
18
+ const { asFragment } = render(
19
+ <MockedProvider mocks={IMAGE_MOCKS}>
20
+ <ThumbnailCarousel {...mockedProps} />
21
+ </MockedProvider>
22
+ );
23
+ await waitFor(() => {
24
+ expect(screen.getAllByTestId('thumbnail-image')[0]).toBeInTheDocument();
25
+ });
26
+ expect(asFragment()).toMatchSnapshot();
27
+ expect(screen.getByTestId('thumbnail-carousel')).toBeInTheDocument();
28
+ });
29
+ });
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+ import React from 'react';
5
+ import '@testing-library/jest-dom/extend-expect';
6
+ import { render, screen, waitFor } from '@testing-library/react';
7
+ import { MockedProvider } from '@apollo/client/testing';
8
+ import ThumbnailImage from '../../../../../src/variants/ThumbnailCarousel/ThumbnailImage';
9
+ import IMAGE_MOCKS from './mocks';
10
+
11
+ describe('ThumbnailImage component', () => {
12
+ const mockedProps = {
13
+ imageId: '1',
14
+ enableLightbox: false,
15
+ toggleModal: () => {},
16
+ handleSelectedImage: () => {},
17
+ priority: 0,
18
+ selectedImageId: '1',
19
+ handleOnClick: () => {}
20
+ };
21
+
22
+ it('renders ThumbnailImage without error', async () => {
23
+ const { asFragment } = render(
24
+ <MockedProvider mocks={IMAGE_MOCKS}>
25
+ <ThumbnailImage {...mockedProps} />
26
+ </MockedProvider>
27
+ );
28
+ await waitFor(() => {
29
+ expect(screen.getByTestId('thumbnail-image')).toBeInTheDocument();
30
+ });
31
+ expect(asFragment()).toMatchSnapshot();
32
+ });
33
+
34
+ it('should render error message if query fails', async () => {
35
+ const { asFragment } = render(
36
+ <MockedProvider mocks={IMAGE_MOCKS}>
37
+ <ThumbnailImage {...mockedProps} imageId="6" />
38
+ </MockedProvider>
39
+ );
40
+ await waitFor(() => {
41
+ expect(screen.getByText('Oops something went wrong')).toBeInTheDocument();
42
+ });
43
+ expect(asFragment()).toMatchSnapshot();
44
+ });
45
+ });
@@ -0,0 +1,76 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`ThumbnailCarousel component renders ThumbnailCarousel without error 1`] = `
4
+ <DocumentFragment>
5
+ <div
6
+ class="thumbnail-carousel"
7
+ data-testid="thumbnail-carousel"
8
+ >
9
+ <div
10
+ class="thumbnail-carousel__main_image_container"
11
+ >
12
+ <div
13
+ class="thumbnail-carousel__main_image_container__button"
14
+ id="previous-button"
15
+ role="button"
16
+ >
17
+ <div
18
+ class="arrow arrow--left"
19
+ />
20
+ </div>
21
+ <div
22
+ class="thumbnail-carousel__main_image_container__main-image"
23
+ data-testid="thumbnail-main-image"
24
+ >
25
+ <div
26
+ class="thumbnail-carousel-image"
27
+ data-testid="thumbnail-image"
28
+ role="button"
29
+ >
30
+ <span>
31
+ <img
32
+ alt=""
33
+ role="button"
34
+ src="image1.jpg"
35
+ />
36
+ </span>
37
+ </div>
38
+ </div>
39
+ <div
40
+ class="thumbnail-carousel__main_image_container__button next"
41
+ id="next-button"
42
+ role="button"
43
+ >
44
+ <div
45
+ class="arrow arrow--right"
46
+ />
47
+ </div>
48
+ </div>
49
+ <div
50
+ class="thumbnail-carousel__list"
51
+ >
52
+ <div
53
+ class="thumbnail-carousel-image thumbnail-carousel-image--selected"
54
+ data-testid="thumbnail-image"
55
+ role="button"
56
+ >
57
+ <span />
58
+ </div>
59
+ <div
60
+ class="thumbnail-carousel-image"
61
+ data-testid="thumbnail-image"
62
+ role="button"
63
+ >
64
+ <span />
65
+ </div>
66
+ <div
67
+ class="thumbnail-carousel-image"
68
+ data-testid="thumbnail-image"
69
+ role="button"
70
+ >
71
+ <span />
72
+ </div>
73
+ </div>
74
+ </div>
75
+ </DocumentFragment>
76
+ `;
@@ -0,0 +1,19 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`ThumbnailImage component renders ThumbnailImage without error 1`] = `
4
+ <DocumentFragment>
5
+ <div
6
+ class="thumbnail-carousel-image thumbnail-carousel-image--selected"
7
+ data-testid="thumbnail-image"
8
+ role="button"
9
+ >
10
+ <span />
11
+ </div>
12
+ </DocumentFragment>
13
+ `;
14
+
15
+ exports[`ThumbnailImage component should render error message if query fails 1`] = `
16
+ <DocumentFragment>
17
+ Oops something went wrong
18
+ </DocumentFragment>
19
+ `;
@@ -0,0 +1,64 @@
1
+ import { getFileById } from '../../../../../src/application/query';
2
+
3
+ const IMAGE_MOCKS = [
4
+ {
5
+ request: {
6
+ query: getFileById,
7
+ variables: { id: '1' }
8
+ },
9
+ result: {
10
+ data: {
11
+ getFile: { id: '1', url: 'image1.jpg', caption: 'Caption 1', data: {} }
12
+ }
13
+ }
14
+ },
15
+ {
16
+ request: {
17
+ query: getFileById,
18
+ variables: { id: '2' }
19
+ },
20
+ result: {
21
+ data: {
22
+ getFile: { id: '2', url: 'image2.jpg', caption: 'Caption 2', data: {} }
23
+ }
24
+ }
25
+ },
26
+ {
27
+ request: {
28
+ query: getFileById,
29
+ variables: { id: '3' }
30
+ },
31
+ result: {
32
+ data: {
33
+ getFile: { id: '3', url: 'image3.jpg', caption: 'Caption 3', data: {} }
34
+ }
35
+ }
36
+ },
37
+ {
38
+ request: {
39
+ query: getFileById,
40
+ variables: { id: '6' }
41
+ },
42
+ error: {
43
+ message: 'Oops something went wrong'
44
+ }
45
+ }
46
+ // {
47
+ // request: {
48
+ // query: getFiles,
49
+ // variables: { where: { id: { _in: ['1', '2', '3', '4'] } } }
50
+ // },
51
+ // result: {
52
+ // data: {
53
+ // getImages: [
54
+ // { id: '1', url: 'image1.jpg', caption: 'Caption 1', data: {} },
55
+ // { id: '2', url: 'image2.jpg', caption: 'Caption 2', data: {} },
56
+ // { id: '3', url: 'image3.jpg', caption: 'Caption 3', data: {} },
57
+ // { id: '4', url: 'image4.jpg', caption: 'Caption 4', data: {} }
58
+ // ]
59
+ // }
60
+ // }
61
+ // }
62
+ ];
63
+
64
+ export default IMAGE_MOCKS;