@blaze-cms/react-page-builder 0.146.0-node18-tooltips.32 → 0.146.0-node18-tooltips.33

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 (30) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/lib/components/Carousel/Carousel.js +44 -7
  3. package/lib/components/Carousel/Carousel.js.map +1 -1
  4. package/lib/components/Carousel/CarouselImage/CarouselImage.js +2 -1
  5. package/lib/components/Carousel/CarouselImage/CarouselImage.js.map +1 -1
  6. package/lib/components/SearchContent/SearchContent.js +4 -2
  7. package/lib/components/SearchContent/SearchContent.js.map +1 -1
  8. package/lib/components/SearchContent/SearchContentResults.js +2 -1
  9. package/lib/components/SearchContent/SearchContentResults.js.map +1 -1
  10. package/lib/hooks/use-get-image-id-from-relation.js +4 -3
  11. package/lib/hooks/use-get-image-id-from-relation.js.map +1 -1
  12. package/lib-es/components/Carousel/Carousel.js +39 -9
  13. package/lib-es/components/Carousel/Carousel.js.map +1 -1
  14. package/lib-es/components/Carousel/CarouselImage/CarouselImage.js +2 -1
  15. package/lib-es/components/Carousel/CarouselImage/CarouselImage.js.map +1 -1
  16. package/lib-es/components/SearchContent/SearchContent.js +8 -2
  17. package/lib-es/components/SearchContent/SearchContent.js.map +1 -1
  18. package/lib-es/components/SearchContent/SearchContentResults.js +2 -1
  19. package/lib-es/components/SearchContent/SearchContentResults.js.map +1 -1
  20. package/lib-es/hooks/use-get-image-id-from-relation.js +2 -2
  21. package/lib-es/hooks/use-get-image-id-from-relation.js.map +1 -1
  22. package/package.json +3 -3
  23. package/src/components/Carousel/Carousel.js +46 -9
  24. package/src/components/Carousel/CarouselImage/CarouselImage.js +3 -1
  25. package/src/components/SearchContent/SearchContent.js +8 -2
  26. package/src/components/SearchContent/SearchContentResults.js +1 -1
  27. package/src/hooks/use-get-image-id-from-relation.js +2 -1
  28. package/tests/unit/src/components/Carousel/Carousel.test.js +45 -35
  29. package/tests/unit/src/components/Carousel/__snapshots__/Carousel.test.js.snap +49 -8
  30. package/tests/unit/src/components/SearchContent/SearchContent.test.js +32 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
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.146.0-node18-tooltips.33](https://github.com/thebyte9/blaze/compare/v0.146.0-node18-tooltips.32...v0.146.0-node18-tooltips.33) (2025-12-15)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * reopen autosuggest after search submission ([#5027](https://github.com/thebyte9/blaze/issues/5027)) ([b09acc1](https://github.com/thebyte9/blaze/commit/b09acc12a66d0a67639ff0edaae82b2d376f53dd))
12
+
13
+
14
+ ### Features
15
+
16
+ * get carousel images from record data ([#4341](https://github.com/thebyte9/blaze/issues/4341)) ([904e8a3](https://github.com/thebyte9/blaze/commit/904e8a319ab053ee470dbb4477c3865d3a5435df))
17
+
18
+
19
+
20
+
21
+
6
22
  # [0.146.0-node18-tooltips.32](https://github.com/thebyte9/blaze/compare/v0.146.0-node18-tooltips.31...v0.146.0-node18-tooltips.32) (2025-12-15)
7
23
 
8
24
 
@@ -1,36 +1,68 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/es.array.iterator.js");
3
4
  require("core-js/modules/es.object.define-property.js");
5
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
6
+ require("core-js/modules/es.object.to-string.js");
7
+ require("core-js/modules/es.string.iterator.js");
8
+ require("core-js/modules/es.weak-map.js");
9
+ require("core-js/modules/web.dom-collections.iterator.js");
4
10
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
11
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
12
  Object.defineProperty(exports, "__esModule", {
6
13
  value: true
7
14
  });
8
15
  exports["default"] = void 0;
16
+ require("core-js/modules/es.array.concat.js");
9
17
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
18
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
19
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
- var _react = _interopRequireDefault(require("react"));
20
+ var _react = _interopRequireWildcard(require("react"));
12
21
  var _propTypes = _interopRequireDefault(require("prop-types"));
22
+ var _nextjsComponents = require("@blaze-cms/nextjs-components");
23
+ var _hooks = require("../../hooks");
13
24
  var _CarouselImage = _interopRequireDefault(require("./CarouselImage"));
14
25
  var _CarouselRender = _interopRequireDefault(require("./CarouselRender"));
15
26
  var _useCarouselNavigation = require("./hooks/useCarouselNavigation");
16
27
  var _helpers = require("../../helpers");
17
- var _excluded = ["caption", "imageIds", "isCaptionDisplayed", "VariantComponent"];
28
+ var _excluded = ["caption", "imageIds", "isCaptionDisplayed", "VariantComponent", "imagesProperty", "entity", "parent"];
29
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
30
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
18
31
  var Carousel = function Carousel(props) {
19
32
  var caption = props.caption,
20
33
  imageIds = props.imageIds,
21
34
  isCaptionDisplayed = props.isCaptionDisplayed,
22
35
  VariantComponent = props.VariantComponent,
36
+ imagesProperty = props.imagesProperty,
37
+ entitySetting = props.entity,
38
+ _props$parent = props.parent,
39
+ itemId = _props$parent.itemId,
40
+ itemEntity = _props$parent.itemEntity,
23
41
  otherProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
42
+ var _useContext = (0, _react.useContext)(_nextjsComponents.MainContext),
43
+ isPreview = _useContext.isPreview;
24
44
  var navigationProps = (0, _useCarouselNavigation.useCarouselNavigation)(props);
25
- if (!imageIds || !imageIds.length) return null;
45
+ var entity = imagesProperty ? entitySetting || itemEntity : null;
46
+ var skipSingleEntitySchema = !entity;
47
+ var _useGetSingleEntitySc = (0, _hooks.useGetSingleEntitySchema)(entity, skipSingleEntitySchema),
48
+ _useGetSingleEntitySc2 = _useGetSingleEntitySc.data,
49
+ _useGetSingleEntitySc3 = _useGetSingleEntitySc2 === void 0 ? {} : _useGetSingleEntitySc2,
50
+ _useGetSingleEntitySc4 = _useGetSingleEntitySc3.getEntitySchema,
51
+ _useGetSingleEntitySc5 = _useGetSingleEntitySc4 === void 0 ? {} : _useGetSingleEntitySc4,
52
+ actions = _useGetSingleEntitySc5.actions;
53
+ var _useGetImageIdFromRel = (0, _hooks.useGetImageIdFromRelation)(itemId, imagesProperty, actions, true, isPreview, false),
54
+ recordData = _useGetImageIdFromRel.data,
55
+ recordDataLoading = _useGetImageIdFromRel.loading;
56
+ var updatedImageIds = recordDataLoading ? [] : [].concat((0, _toConsumableArray2["default"])((0, _helpers.getImageIds)(imagesProperty, recordData, null)), (0, _toConsumableArray2["default"])(imageIds));
57
+ if (!updatedImageIds || !updatedImageIds.length) return null;
26
58
  var shouldDisplayCaption = isCaptionDisplayed && caption;
27
- var _getDisplayCountData = (0, _helpers.getDisplayCountData)(navigationProps.showCount, imageIds),
59
+ var _getDisplayCountData = (0, _helpers.getDisplayCountData)(navigationProps.showCount, updatedImageIds),
28
60
  shouldDisplayCount = _getDisplayCountData.shouldDisplayCount,
29
61
  countMessage = _getDisplayCountData.countMessage;
30
62
  var ComponentToRender = VariantComponent || _CarouselRender["default"];
31
63
  return /*#__PURE__*/_react["default"].createElement(ComponentToRender, (0, _extends2["default"])({
32
64
  caption: caption,
33
- imageIds: imageIds,
65
+ imageIds: updatedImageIds,
34
66
  CarouselImage: _CarouselImage["default"],
35
67
  shouldDisplayCaption: shouldDisplayCaption,
36
68
  shouldDisplayCount: shouldDisplayCount,
@@ -39,15 +71,20 @@ var Carousel = function Carousel(props) {
39
71
  };
40
72
  Carousel.propTypes = {
41
73
  caption: _propTypes["default"].string,
74
+ entity: _propTypes["default"].string,
42
75
  imageIds: _propTypes["default"].array,
76
+ imagesProperty: _propTypes["default"].array,
43
77
  isCaptionDisplayed: _propTypes["default"].bool,
44
- VariantComponent: _propTypes["default"].func
78
+ VariantComponent: _propTypes["default"].func,
79
+ parent: _propTypes["default"].object.isRequired
45
80
  };
46
81
  Carousel.defaultProps = {
47
82
  VariantComponent: null,
48
83
  caption: '',
49
84
  imageIds: [],
50
- isCaptionDisplayed: false
85
+ imagesProperty: [],
86
+ isCaptionDisplayed: false,
87
+ entity: null
51
88
  };
52
89
  var _default = exports["default"] = Carousel;
53
90
  //# sourceMappingURL=Carousel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.js","names":["_react","_interopRequireDefault","require","_propTypes","_CarouselImage","_CarouselRender","_useCarouselNavigation","_helpers","_excluded","Carousel","props","caption","imageIds","isCaptionDisplayed","VariantComponent","otherProps","_objectWithoutProperties2","navigationProps","useCarouselNavigation","length","shouldDisplayCaption","_getDisplayCountData","getDisplayCountData","showCount","shouldDisplayCount","countMessage","ComponentToRender","CarouselRender","createElement","_extends2","CarouselImage","propTypes","PropTypes","string","array","bool","func","defaultProps","_default","exports"],"sources":["../../../src/components/Carousel/Carousel.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CarouselImage from './CarouselImage';\nimport CarouselRender from './CarouselRender';\nimport { useCarouselNavigation } from './hooks/useCarouselNavigation';\nimport { getDisplayCountData } from '../../helpers';\n\nconst Carousel = props => {\n const { caption, imageIds, isCaptionDisplayed, VariantComponent, ...otherProps } = props;\n\n const navigationProps = useCarouselNavigation(props);\n\n if (!imageIds || !imageIds.length) return null;\n const shouldDisplayCaption = isCaptionDisplayed && caption;\n\n const { shouldDisplayCount, countMessage } = getDisplayCountData(\n navigationProps.showCount,\n imageIds\n );\n\n const ComponentToRender = VariantComponent || CarouselRender;\n\n return (\n <ComponentToRender\n caption={caption}\n imageIds={imageIds}\n CarouselImage={CarouselImage}\n shouldDisplayCaption={shouldDisplayCaption}\n shouldDisplayCount={shouldDisplayCount}\n countMessage={countMessage}\n {...navigationProps}\n {...otherProps}\n />\n );\n};\n\nCarousel.propTypes = {\n caption: PropTypes.string,\n imageIds: PropTypes.array,\n isCaptionDisplayed: PropTypes.bool,\n VariantComponent: PropTypes.func\n};\n\nCarousel.defaultProps = {\n VariantComponent: null,\n caption: '',\n imageIds: [],\n isCaptionDisplayed: false\n};\n\nexport default Carousel;\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,eAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,sBAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAAoD,IAAAM,SAAA;AAEpD,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAGC,KAAK,EAAI;EACxB,IAAQC,OAAO,GAAoED,KAAK,CAAhFC,OAAO;IAAEC,QAAQ,GAA0DF,KAAK,CAAvEE,QAAQ;IAAEC,kBAAkB,GAAsCH,KAAK,CAA7DG,kBAAkB;IAAEC,gBAAgB,GAAoBJ,KAAK,CAAzCI,gBAAgB;IAAKC,UAAU,OAAAC,yBAAA,aAAKN,KAAK,EAAAF,SAAA;EAExF,IAAMS,eAAe,GAAG,IAAAC,4CAAqB,EAACR,KAAK,CAAC;EAEpD,IAAI,CAACE,QAAQ,IAAI,CAACA,QAAQ,CAACO,MAAM,EAAE,OAAO,IAAI;EAC9C,IAAMC,oBAAoB,GAAGP,kBAAkB,IAAIF,OAAO;EAE1D,IAAAU,oBAAA,GAA6C,IAAAC,4BAAmB,EAC9DL,eAAe,CAACM,SAAS,EACzBX,QACF,CAAC;IAHOY,kBAAkB,GAAAH,oBAAA,CAAlBG,kBAAkB;IAAEC,YAAY,GAAAJ,oBAAA,CAAZI,YAAY;EAKxC,IAAMC,iBAAiB,GAAGZ,gBAAgB,IAAIa,0BAAc;EAE5D,oBACE3B,MAAA,YAAA4B,aAAA,CAACF,iBAAiB,MAAAG,SAAA;IAChBlB,OAAO,EAAEA,OAAQ;IACjBC,QAAQ,EAAEA,QAAS;IACnBkB,aAAa,EAAEA,yBAAc;IAC7BV,oBAAoB,EAAEA,oBAAqB;IAC3CI,kBAAkB,EAAEA,kBAAmB;IACvCC,YAAY,EAAEA;EAAa,GACvBR,eAAe,EACfF,UAAU,CACf,CAAC;AAEN,CAAC;AAEDN,QAAQ,CAACsB,SAAS,GAAG;EACnBpB,OAAO,EAAEqB,qBAAS,CAACC,MAAM;EACzBrB,QAAQ,EAAEoB,qBAAS,CAACE,KAAK;EACzBrB,kBAAkB,EAAEmB,qBAAS,CAACG,IAAI;EAClCrB,gBAAgB,EAAEkB,qBAAS,CAACI;AAC9B,CAAC;AAED3B,QAAQ,CAAC4B,YAAY,GAAG;EACtBvB,gBAAgB,EAAE,IAAI;EACtBH,OAAO,EAAE,EAAE;EACXC,QAAQ,EAAE,EAAE;EACZC,kBAAkB,EAAE;AACtB,CAAC;AAAC,IAAAyB,QAAA,GAAAC,OAAA,cAEa9B,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"Carousel.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_nextjsComponents","_hooks","_CarouselImage","_CarouselRender","_useCarouselNavigation","_helpers","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Carousel","props","caption","imageIds","isCaptionDisplayed","VariantComponent","imagesProperty","entitySetting","entity","_props$parent","parent","itemId","itemEntity","otherProps","_objectWithoutProperties2","_useContext","useContext","MainContext","isPreview","navigationProps","useCarouselNavigation","skipSingleEntitySchema","_useGetSingleEntitySc","useGetSingleEntitySchema","_useGetSingleEntitySc2","data","_useGetSingleEntitySc3","_useGetSingleEntitySc4","getEntitySchema","_useGetSingleEntitySc5","actions","_useGetImageIdFromRel","useGetImageIdFromRelation","recordData","recordDataLoading","loading","updatedImageIds","concat","_toConsumableArray2","getImageIds","length","shouldDisplayCaption","_getDisplayCountData","getDisplayCountData","showCount","shouldDisplayCount","countMessage","ComponentToRender","CarouselRender","createElement","_extends2","CarouselImage","propTypes","PropTypes","string","array","bool","func","object","isRequired","defaultProps","_default","exports"],"sources":["../../../src/components/Carousel/Carousel.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { useGetImageIdFromRelation, useGetSingleEntitySchema } from '../../hooks';\nimport CarouselImage from './CarouselImage';\nimport CarouselRender from './CarouselRender';\nimport { useCarouselNavigation } from './hooks/useCarouselNavigation';\nimport { getDisplayCountData, getImageIds } from '../../helpers';\n\nconst Carousel = props => {\n const {\n caption,\n imageIds,\n isCaptionDisplayed,\n VariantComponent,\n imagesProperty,\n entity: entitySetting,\n parent: { itemId, itemEntity },\n ...otherProps\n } = props;\n const { isPreview } = useContext(MainContext);\n const navigationProps = useCarouselNavigation(props);\n\n const entity = imagesProperty ? entitySetting || itemEntity : null;\n const skipSingleEntitySchema = !entity;\n\n const { data: { getEntitySchema: { actions } = {} } = {} } = useGetSingleEntitySchema(\n entity,\n skipSingleEntitySchema\n );\n\n const { data: recordData, loading: recordDataLoading } = useGetImageIdFromRelation(\n itemId,\n imagesProperty,\n actions,\n true,\n isPreview,\n false\n );\n\n const updatedImageIds = recordDataLoading\n ? []\n : [...getImageIds(imagesProperty, recordData, null), ...imageIds];\n\n if (!updatedImageIds || !updatedImageIds.length) return null;\n const shouldDisplayCaption = isCaptionDisplayed && caption;\n\n const { shouldDisplayCount, countMessage } = getDisplayCountData(\n navigationProps.showCount,\n updatedImageIds\n );\n\n const ComponentToRender = VariantComponent || CarouselRender;\n\n return (\n <ComponentToRender\n caption={caption}\n imageIds={updatedImageIds}\n CarouselImage={CarouselImage}\n shouldDisplayCaption={shouldDisplayCaption}\n shouldDisplayCount={shouldDisplayCount}\n countMessage={countMessage}\n {...navigationProps}\n {...otherProps}\n />\n );\n};\n\nCarousel.propTypes = {\n caption: PropTypes.string,\n entity: PropTypes.string,\n imageIds: PropTypes.array,\n imagesProperty: PropTypes.array,\n isCaptionDisplayed: PropTypes.bool,\n VariantComponent: PropTypes.func,\n parent: PropTypes.object.isRequired\n};\n\nCarousel.defaultProps = {\n VariantComponent: null,\n caption: '',\n imageIds: [],\n imagesProperty: [],\n isCaptionDisplayed: false,\n entity: null\n};\n\nexport default Carousel;\n"],"mappings":"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","ignoreList":[]}
@@ -41,9 +41,10 @@ var CarouselImage = function CarouselImage(_ref) {
41
41
  toggleModal();
42
42
  handleSelectedImage(imageId);
43
43
  };
44
+ if (!loading && !imageUrl) return null;
44
45
  return /*#__PURE__*/_react["default"].createElement("div", {
45
46
  className: "carousel__slide"
46
- }, loading ? /*#__PURE__*/_react["default"].createElement("div", null) : /*#__PURE__*/_react["default"].createElement(_LazyImage["default"], {
47
+ }, loading ? /*#__PURE__*/_react["default"].createElement("span", null) : /*#__PURE__*/_react["default"].createElement(_LazyImage["default"], {
47
48
  src: imageUrl,
48
49
  alt: alt,
49
50
  sizeKey: "carousel",
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselImage.js","names":["_react","_interopRequireDefault","require","_propTypes","_hooks","_utils","_LazyImage","_constants","CarouselImage","_ref","imageId","enableLightbox","toggleModal","handleSelectedImage","priority","_useGetImages","useGetImages","data","loading","error","message","_ref2","getFile","url","_ref2$url","imageUrl","_ref2$data","imageData","_getImageData","getImageData","altText","alt","CAROUSEL_DEFAULT_ALT","handleEnableLightbox","createElement","className","src","sizeKey","onClick","role","propTypes","PropTypes","string","isRequired","bool","func","_default","exports"],"sources":["../../../../src/components/Carousel/CarouselImage/CarouselImage.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useGetImages } from '../../../hooks';\nimport { getImageData } from '../../../utils';\nimport LazyImage from '../../LazyImage';\nimport { CAROUSEL_DEFAULT_ALT } from './constants';\n\nconst CarouselImage = ({ imageId, enableLightbox, toggleModal, handleSelectedImage, priority }) => {\n const { data, loading, error } = useGetImages(imageId);\n\n if (error) return error.message;\n\n const { url: imageUrl = '', data: imageData = {} } = data.getFile || {\n getFile: { url: '', data: {} }\n };\n\n const { altText } = getImageData({}, imageData);\n const alt = altText || CAROUSEL_DEFAULT_ALT;\n\n const handleEnableLightbox = () => {\n if (!enableLightbox) return;\n toggleModal();\n handleSelectedImage(imageId);\n };\n\n return (\n <div className=\"carousel__slide\">\n {loading ? (\n <div />\n ) : (\n <LazyImage\n src={imageUrl}\n alt={alt}\n sizeKey=\"carousel\"\n onClick={handleEnableLightbox}\n role=\"button\"\n aria-label=\"View Image\"\n priority={priority}\n />\n )}\n </div>\n );\n};\n\nCarouselImage.propTypes = {\n imageId: PropTypes.string.isRequired,\n enableLightbox: PropTypes.bool.isRequired,\n toggleModal: PropTypes.func.isRequired,\n handleSelectedImage: PropTypes.func.isRequired,\n priority: PropTypes.bool.isRequired\n};\n\nexport default CarouselImage;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAEA,IAAMM,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA,EAAgF;EAAA,IAA1EC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,cAAc,GAAAF,IAAA,CAAdE,cAAc;IAAEC,WAAW,GAAAH,IAAA,CAAXG,WAAW;IAAEC,mBAAmB,GAAAJ,IAAA,CAAnBI,mBAAmB;IAAEC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;EAC1F,IAAAC,aAAA,GAAiC,IAAAC,mBAAY,EAACN,OAAO,CAAC;IAA9CO,IAAI,GAAAF,aAAA,CAAJE,IAAI;IAAEC,OAAO,GAAAH,aAAA,CAAPG,OAAO;IAAEC,KAAK,GAAAJ,aAAA,CAALI,KAAK;EAE5B,IAAIA,KAAK,EAAE,OAAOA,KAAK,CAACC,OAAO;EAE/B,IAAAC,KAAA,GAAqDJ,IAAI,CAACK,OAAO,IAAI;MACnEA,OAAO,EAAE;QAAEC,GAAG,EAAE,EAAE;QAAEN,IAAI,EAAE,CAAC;MAAE;IAC/B,CAAC;IAAAO,SAAA,GAAAH,KAAA,CAFOE,GAAG;IAAEE,QAAQ,GAAAD,SAAA,cAAG,EAAE,GAAAA,SAAA;IAAAE,UAAA,GAAAL,KAAA,CAAEJ,IAAI;IAAEU,SAAS,GAAAD,UAAA,cAAG,CAAC,CAAC,GAAAA,UAAA;EAIhD,IAAAE,aAAA,GAAoB,IAAAC,mBAAY,EAAC,CAAC,CAAC,EAAEF,SAAS,CAAC;IAAvCG,OAAO,GAAAF,aAAA,CAAPE,OAAO;EACf,IAAMC,GAAG,GAAGD,OAAO,IAAIE,+BAAoB;EAE3C,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA,EAAS;IACjC,IAAI,CAACtB,cAAc,EAAE;IACrBC,WAAW,CAAC,CAAC;IACbC,mBAAmB,CAACH,OAAO,CAAC;EAC9B,CAAC;EAED,oBACEV,MAAA,YAAAkC,aAAA;IAAKC,SAAS,EAAC;EAAiB,GAC7BjB,OAAO,gBACNlB,MAAA,YAAAkC,aAAA,YAAM,CAAC,gBAEPlC,MAAA,YAAAkC,aAAA,CAAC5B,UAAA,WAAS;IACR8B,GAAG,EAAEX,QAAS;IACdM,GAAG,EAAEA,GAAI;IACTM,OAAO,EAAC,UAAU;IAClBC,OAAO,EAAEL,oBAAqB;IAC9BM,IAAI,EAAC,QAAQ;IACb,cAAW,YAAY;IACvBzB,QAAQ,EAAEA;EAAS,CACpB,CAEA,CAAC;AAEV,CAAC;AAEDN,aAAa,CAACgC,SAAS,GAAG;EACxB9B,OAAO,EAAE+B,qBAAS,CAACC,MAAM,CAACC,UAAU;EACpChC,cAAc,EAAE8B,qBAAS,CAACG,IAAI,CAACD,UAAU;EACzC/B,WAAW,EAAE6B,qBAAS,CAACI,IAAI,CAACF,UAAU;EACtC9B,mBAAmB,EAAE4B,qBAAS,CAACI,IAAI,CAACF,UAAU;EAC9C7B,QAAQ,EAAE2B,qBAAS,CAACG,IAAI,CAACD;AAC3B,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,cAEavC,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"CarouselImage.js","names":["_react","_interopRequireDefault","require","_propTypes","_hooks","_utils","_LazyImage","_constants","CarouselImage","_ref","imageId","enableLightbox","toggleModal","handleSelectedImage","priority","_useGetImages","useGetImages","data","loading","error","message","_ref2","getFile","url","_ref2$url","imageUrl","_ref2$data","imageData","_getImageData","getImageData","altText","alt","CAROUSEL_DEFAULT_ALT","handleEnableLightbox","createElement","className","src","sizeKey","onClick","role","propTypes","PropTypes","string","isRequired","bool","func","_default","exports"],"sources":["../../../../src/components/Carousel/CarouselImage/CarouselImage.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useGetImages } from '../../../hooks';\nimport { getImageData } from '../../../utils';\nimport LazyImage from '../../LazyImage';\nimport { CAROUSEL_DEFAULT_ALT } from './constants';\n\nconst CarouselImage = ({ imageId, enableLightbox, toggleModal, handleSelectedImage, priority }) => {\n const { data, loading, error } = useGetImages(imageId);\n\n if (error) return error.message;\n\n const { url: imageUrl = '', data: imageData = {} } = data.getFile || {\n getFile: { url: '', data: {} }\n };\n\n const { altText } = getImageData({}, imageData);\n const alt = altText || CAROUSEL_DEFAULT_ALT;\n\n const handleEnableLightbox = () => {\n if (!enableLightbox) return;\n toggleModal();\n handleSelectedImage(imageId);\n };\n\n if (!loading && !imageUrl) return null;\n\n return (\n <div className=\"carousel__slide\">\n {loading ? (\n <span />\n ) : (\n <LazyImage\n src={imageUrl}\n alt={alt}\n sizeKey=\"carousel\"\n onClick={handleEnableLightbox}\n role=\"button\"\n aria-label=\"View Image\"\n priority={priority}\n />\n )}\n </div>\n );\n};\n\nCarouselImage.propTypes = {\n imageId: PropTypes.string.isRequired,\n enableLightbox: PropTypes.bool.isRequired,\n toggleModal: PropTypes.func.isRequired,\n handleSelectedImage: PropTypes.func.isRequired,\n priority: PropTypes.bool.isRequired\n};\n\nexport default CarouselImage;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAEA,IAAMM,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA,EAAgF;EAAA,IAA1EC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,cAAc,GAAAF,IAAA,CAAdE,cAAc;IAAEC,WAAW,GAAAH,IAAA,CAAXG,WAAW;IAAEC,mBAAmB,GAAAJ,IAAA,CAAnBI,mBAAmB;IAAEC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;EAC1F,IAAAC,aAAA,GAAiC,IAAAC,mBAAY,EAACN,OAAO,CAAC;IAA9CO,IAAI,GAAAF,aAAA,CAAJE,IAAI;IAAEC,OAAO,GAAAH,aAAA,CAAPG,OAAO;IAAEC,KAAK,GAAAJ,aAAA,CAALI,KAAK;EAE5B,IAAIA,KAAK,EAAE,OAAOA,KAAK,CAACC,OAAO;EAE/B,IAAAC,KAAA,GAAqDJ,IAAI,CAACK,OAAO,IAAI;MACnEA,OAAO,EAAE;QAAEC,GAAG,EAAE,EAAE;QAAEN,IAAI,EAAE,CAAC;MAAE;IAC/B,CAAC;IAAAO,SAAA,GAAAH,KAAA,CAFOE,GAAG;IAAEE,QAAQ,GAAAD,SAAA,cAAG,EAAE,GAAAA,SAAA;IAAAE,UAAA,GAAAL,KAAA,CAAEJ,IAAI;IAAEU,SAAS,GAAAD,UAAA,cAAG,CAAC,CAAC,GAAAA,UAAA;EAIhD,IAAAE,aAAA,GAAoB,IAAAC,mBAAY,EAAC,CAAC,CAAC,EAAEF,SAAS,CAAC;IAAvCG,OAAO,GAAAF,aAAA,CAAPE,OAAO;EACf,IAAMC,GAAG,GAAGD,OAAO,IAAIE,+BAAoB;EAE3C,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA,EAAS;IACjC,IAAI,CAACtB,cAAc,EAAE;IACrBC,WAAW,CAAC,CAAC;IACbC,mBAAmB,CAACH,OAAO,CAAC;EAC9B,CAAC;EAED,IAAI,CAACQ,OAAO,IAAI,CAACO,QAAQ,EAAE,OAAO,IAAI;EAEtC,oBACEzB,MAAA,YAAAkC,aAAA;IAAKC,SAAS,EAAC;EAAiB,GAC7BjB,OAAO,gBACNlB,MAAA,YAAAkC,aAAA,aAAO,CAAC,gBAERlC,MAAA,YAAAkC,aAAA,CAAC5B,UAAA,WAAS;IACR8B,GAAG,EAAEX,QAAS;IACdM,GAAG,EAAEA,GAAI;IACTM,OAAO,EAAC,UAAU;IAClBC,OAAO,EAAEL,oBAAqB;IAC9BM,IAAI,EAAC,QAAQ;IACb,cAAW,YAAY;IACvBzB,QAAQ,EAAEA;EAAS,CACpB,CAEA,CAAC;AAEV,CAAC;AAEDN,aAAa,CAACgC,SAAS,GAAG;EACxB9B,OAAO,EAAE+B,qBAAS,CAACC,MAAM,CAACC,UAAU;EACpChC,cAAc,EAAE8B,qBAAS,CAACG,IAAI,CAACD,UAAU;EACzC/B,WAAW,EAAE6B,qBAAS,CAACI,IAAI,CAACF,UAAU;EACtC9B,mBAAmB,EAAE4B,qBAAS,CAACI,IAAI,CAACF,UAAU;EAC9C7B,QAAQ,EAAE2B,qBAAS,CAACG,IAAI,CAACD;AAC3B,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,cAEavC,aAAa","ignoreList":[]}
@@ -135,11 +135,13 @@ var SearchContent = function SearchContent(props) {
135
135
  placeholder: placeholder,
136
136
  value: searchTerm,
137
137
  onChange: function onChange(e) {
138
- return setSearchTerm(e.target.value);
138
+ setSearchTerm(e.target.value);
139
+ setShowResults(true);
139
140
  },
140
141
  onKeyDown: handleKeyDown,
141
142
  onFocus: function onFocus() {
142
- return setShowResults(true);
143
+ setShowResults(true);
144
+ if (collapsedSearch) setCollapsed(false);
143
145
  },
144
146
  "data-testid": "search-content-input"
145
147
  }))), showResults && /*#__PURE__*/_react["default"].createElement(_SearchContentResults["default"], {
@@ -1 +1 @@
1
- {"version":3,"file":"SearchContent.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_router","_pluginSearchUi","_SearchContentResults","_SearchContentToggleIcon","_hooks","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","SearchContent","props","entities","searchInputWrapperMobile","searchInputWrapperDesktop","isMobile","placeholder","modifier","collapsedSearch","searchUrl","navigateToSingleSearchResult","searchContentRef","useRef","_useState","useState","_useState2","_slicedToArray2","collapsed","setCollapsed","_useState3","_useState4","showResults","setShowResults","router","useRouter","_useAppSyncEventHook","useAppSyncEventHook","eventName","returnFunction","runHook","_useDebounceSearch","useDebounceSearch","initialSearchTerm","resultKeys","queryHook","results","searchTerm","setSearchTerm","debouncedSearchTerm","useEffect","handleRouteChange","events","on","off","handleClickOutside","event","current","contains","target","document","activeElement","querySelector","addEventListener","removeEventListener","responsiveClasses","handleNavigation","url","preventDefault","push","handleKeyDown","key","value","length","searchUrlWithoutHash","split","concat","handleIconClick","isCloseIcon","className","filter","Boolean","join","searchModifier","createElement","ref","onClick","useCloseIcon","type","name","onChange","onKeyDown","onFocus","handleClick","propTypes","PropTypes","string","bool","array","isRequired","defaultProps","_default","exports"],"sources":["../../../src/components/SearchContent/SearchContent.js"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { useDebounceSearch } from '@blaze-cms/plugin-search-ui';\nimport SearchContentResults from './SearchContentResults';\nimport SearchContentToggleIcon from './SearchContentToggleIcon';\nimport { useAppSyncEventHook } from '../../hooks';\n\nconst SearchContent = props => {\n const {\n entities,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n isMobile,\n placeholder,\n modifier,\n collapsedSearch,\n searchUrl,\n navigateToSingleSearchResult\n } = props;\n\n const searchContentRef = useRef(null);\n const [collapsed, setCollapsed] = useState(collapsedSearch);\n const [showResults, setShowResults] = useState(false);\n const router = useRouter();\n\n const { runHook } = useAppSyncEventHook({\n eventName: 'searchcontent:query-variables',\n props,\n returnFunction: true\n });\n\n const { results, searchTerm, setSearchTerm, debouncedSearchTerm } = useDebounceSearch({\n entities,\n initialSearchTerm: '',\n resultKeys: 'id, name, image { url }, url',\n queryHook: runHook\n });\n\n useEffect(() => {\n const handleRouteChange = () => {\n setSearchTerm('');\n setShowResults(false);\n if (collapsedSearch) setCollapsed(true);\n };\n router.events.on('routeChangeStart', handleRouteChange);\n return () => {\n router.events.off('routeChangeStart', handleRouteChange);\n };\n }, [collapsedSearch, router.events, setSearchTerm]);\n\n useEffect(() => {\n const handleClickOutside = event => {\n if (searchContentRef.current && !searchContentRef.current.contains(event.target)) {\n setShowResults(false);\n setSearchTerm('');\n if (\n collapsedSearch &&\n document.activeElement !== searchContentRef.current.querySelector('input')\n ) {\n setCollapsed(true);\n }\n }\n };\n\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, [collapsedSearch, setSearchTerm]);\n\n const responsiveClasses = isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop;\n\n const handleNavigation = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyDown = e => {\n if (e.key === 'Enter' && e.target.value !== '') {\n if (navigateToSingleSearchResult && results && results.length === 1 && results[0].url) {\n router.push(results[0].url);\n } else {\n const searchUrlWithoutHash = (searchUrl || '/search').split('#')[0];\n router.push(`${searchUrlWithoutHash}?search_term=${e.target.value}`);\n }\n }\n };\n\n const handleIconClick = () => {\n const isCloseIcon = collapsedSearch ? !collapsed : debouncedSearchTerm;\n\n if (collapsedSearch) setCollapsed(!collapsed);\n\n if (isCloseIcon) {\n setSearchTerm('');\n setShowResults(false);\n } else {\n setShowResults(true);\n }\n };\n\n const className = ['search-content', modifier, responsiveClasses].filter(Boolean).join(' ');\n const searchModifier = collapsed ? 'search-content--collapse' : 'search-content--expanded';\n\n return (\n <div className={className} ref={searchContentRef}>\n <div className={`${searchModifier}__wrapper`}>\n <label className={`${searchModifier}__label`}>\n <span className={`${searchModifier}__icon_wrapper`}>\n <SearchContentToggleIcon\n searchTerm={debouncedSearchTerm}\n onClick={handleIconClick}\n useCloseIcon={collapsedSearch ? !collapsed : debouncedSearchTerm}\n />\n </span>\n {!collapsed && (\n <input\n className={`${searchModifier}__input`}\n type=\"text\"\n name=\"search\"\n placeholder={placeholder}\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n onKeyDown={handleKeyDown}\n onFocus={() => setShowResults(true)}\n data-testid=\"search-content-input\"\n />\n )}\n </label>\n </div>\n {showResults && (\n <SearchContentResults\n results={results}\n debouncedSearchTerm={debouncedSearchTerm}\n handleClick={handleNavigation}\n />\n )}\n </div>\n );\n};\n\nSearchContent.propTypes = {\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n placeholder: PropTypes.string,\n isMobile: PropTypes.bool,\n entities: PropTypes.array.isRequired,\n modifier: PropTypes.string,\n collapsedSearch: PropTypes.bool,\n searchUrl: PropTypes.string,\n navigateToSingleSearchResult: PropTypes.bool\n};\n\nSearchContent.defaultProps = {\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n placeholder: '',\n isMobile: false,\n modifier: '',\n collapsedSearch: false,\n searchUrl: '',\n navigateToSingleSearchResult: false\n};\n\nexport default SearchContent;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SearchContent.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_router","_pluginSearchUi","_SearchContentResults","_SearchContentToggleIcon","_hooks","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","SearchContent","props","entities","searchInputWrapperMobile","searchInputWrapperDesktop","isMobile","placeholder","modifier","collapsedSearch","searchUrl","navigateToSingleSearchResult","searchContentRef","useRef","_useState","useState","_useState2","_slicedToArray2","collapsed","setCollapsed","_useState3","_useState4","showResults","setShowResults","router","useRouter","_useAppSyncEventHook","useAppSyncEventHook","eventName","returnFunction","runHook","_useDebounceSearch","useDebounceSearch","initialSearchTerm","resultKeys","queryHook","results","searchTerm","setSearchTerm","debouncedSearchTerm","useEffect","handleRouteChange","events","on","off","handleClickOutside","event","current","contains","target","document","activeElement","querySelector","addEventListener","removeEventListener","responsiveClasses","handleNavigation","url","preventDefault","push","handleKeyDown","key","value","length","searchUrlWithoutHash","split","concat","handleIconClick","isCloseIcon","className","filter","Boolean","join","searchModifier","createElement","ref","onClick","useCloseIcon","type","name","onChange","onKeyDown","onFocus","handleClick","propTypes","PropTypes","string","bool","array","isRequired","defaultProps","_default","exports"],"sources":["../../../src/components/SearchContent/SearchContent.js"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { useDebounceSearch } from '@blaze-cms/plugin-search-ui';\nimport SearchContentResults from './SearchContentResults';\nimport SearchContentToggleIcon from './SearchContentToggleIcon';\nimport { useAppSyncEventHook } from '../../hooks';\n\nconst SearchContent = props => {\n const {\n entities,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n isMobile,\n placeholder,\n modifier,\n collapsedSearch,\n searchUrl,\n navigateToSingleSearchResult\n } = props;\n\n const searchContentRef = useRef(null);\n const [collapsed, setCollapsed] = useState(collapsedSearch);\n const [showResults, setShowResults] = useState(false);\n const router = useRouter();\n\n const { runHook } = useAppSyncEventHook({\n eventName: 'searchcontent:query-variables',\n props,\n returnFunction: true\n });\n\n const { results, searchTerm, setSearchTerm, debouncedSearchTerm } = useDebounceSearch({\n entities,\n initialSearchTerm: '',\n resultKeys: 'id, name, image { url }, url',\n queryHook: runHook\n });\n\n useEffect(() => {\n const handleRouteChange = () => {\n setSearchTerm('');\n setShowResults(false);\n if (collapsedSearch) setCollapsed(true);\n };\n router.events.on('routeChangeStart', handleRouteChange);\n return () => {\n router.events.off('routeChangeStart', handleRouteChange);\n };\n }, [collapsedSearch, router.events, setSearchTerm]);\n\n useEffect(() => {\n const handleClickOutside = event => {\n if (searchContentRef.current && !searchContentRef.current.contains(event.target)) {\n setShowResults(false);\n setSearchTerm('');\n if (\n collapsedSearch &&\n document.activeElement !== searchContentRef.current.querySelector('input')\n ) {\n setCollapsed(true);\n }\n }\n };\n\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, [collapsedSearch, setSearchTerm]);\n\n const responsiveClasses = isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop;\n\n const handleNavigation = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyDown = e => {\n if (e.key === 'Enter' && e.target.value !== '') {\n if (navigateToSingleSearchResult && results && results.length === 1 && results[0].url) {\n router.push(results[0].url);\n } else {\n const searchUrlWithoutHash = (searchUrl || '/search').split('#')[0];\n router.push(`${searchUrlWithoutHash}?search_term=${e.target.value}`);\n }\n }\n };\n\n const handleIconClick = () => {\n const isCloseIcon = collapsedSearch ? !collapsed : debouncedSearchTerm;\n\n if (collapsedSearch) setCollapsed(!collapsed);\n\n if (isCloseIcon) {\n setSearchTerm('');\n setShowResults(false);\n } else {\n setShowResults(true);\n }\n };\n\n const className = ['search-content', modifier, responsiveClasses].filter(Boolean).join(' ');\n const searchModifier = collapsed ? 'search-content--collapse' : 'search-content--expanded';\n\n return (\n <div className={className} ref={searchContentRef}>\n <div className={`${searchModifier}__wrapper`}>\n <label className={`${searchModifier}__label`}>\n <span className={`${searchModifier}__icon_wrapper`}>\n <SearchContentToggleIcon\n searchTerm={debouncedSearchTerm}\n onClick={handleIconClick}\n useCloseIcon={collapsedSearch ? !collapsed : debouncedSearchTerm}\n />\n </span>\n {!collapsed && (\n <input\n className={`${searchModifier}__input`}\n type=\"text\"\n name=\"search\"\n placeholder={placeholder}\n value={searchTerm}\n onChange={e => {\n setSearchTerm(e.target.value);\n setShowResults(true);\n }}\n onKeyDown={handleKeyDown}\n onFocus={() => {\n setShowResults(true);\n if (collapsedSearch) setCollapsed(false);\n }}\n data-testid=\"search-content-input\"\n />\n )}\n </label>\n </div>\n {showResults && (\n <SearchContentResults\n results={results}\n debouncedSearchTerm={debouncedSearchTerm}\n handleClick={handleNavigation}\n />\n )}\n </div>\n );\n};\n\nSearchContent.propTypes = {\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n placeholder: PropTypes.string,\n isMobile: PropTypes.bool,\n entities: PropTypes.array.isRequired,\n modifier: PropTypes.string,\n collapsedSearch: PropTypes.bool,\n searchUrl: PropTypes.string,\n navigateToSingleSearchResult: PropTypes.bool\n};\n\nSearchContent.defaultProps = {\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n placeholder: '',\n isMobile: false,\n modifier: '',\n collapsedSearch: false,\n searchUrl: '',\n navigateToSingleSearchResult: false\n};\n\nexport default SearchContent;\n"],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,8 @@ var SearchContentResults = function SearchContentResults(_ref) {
16
16
  if (!debouncedSearchTerm) return null;
17
17
  var hasResults = results.length > 0;
18
18
  return /*#__PURE__*/_react["default"].createElement("div", {
19
- className: "search-content--results__wrapper"
19
+ className: "search-content--results__wrapper",
20
+ "data-testid": "search-content-results"
20
21
  }, /*#__PURE__*/_react["default"].createElement("div", {
21
22
  className: "search-content--results__wrapper--message"
22
23
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"SearchContentResults.js","names":["_react","_interopRequireDefault","require","_BlazeLink","_SearchContentItems","SearchContentResults","_ref","results","debouncedSearchTerm","onClick","hasResults","length","createElement","className","href","concat","_default","exports"],"sources":["../../../src/components/SearchContent/SearchContentResults.js"],"sourcesContent":["import React from 'react';\nimport BlazeLink from '../BlazeLink';\nimport SearchContentItems from './SearchContentItems';\n\nconst SearchContentResults = ({ results, debouncedSearchTerm, onClick }) => {\n if (!debouncedSearchTerm) return null;\n const hasResults = results.length > 0;\n return (\n <div className=\"search-content--results__wrapper\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"search-content--results__content\">\n {hasResults ? (\n <SearchContentItems results={results} onClick={onClick} />\n ) : (\n <div className=\"search-content--results__message\">\n <BlazeLink href={`/search?search_term=${debouncedSearchTerm}`}>\n {`Search all results for: ${debouncedSearchTerm}`}\n </BlazeLink>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default SearchContentResults;\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,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,IAAA,EAAkD;EAAA,IAA5CC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,mBAAmB,GAAAF,IAAA,CAAnBE,mBAAmB;IAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO;EACnE,IAAI,CAACD,mBAAmB,EAAE,OAAO,IAAI;EACrC,IAAME,UAAU,GAAGH,OAAO,CAACI,MAAM,GAAG,CAAC;EACrC,oBACEX,MAAA,YAAAY,aAAA;IAAKC,SAAS,EAAC;EAAkC,gBAC/Cb,MAAA,YAAAY,aAAA;IAAKC,SAAS,EAAC;EAA2C,gBACxDb,MAAA,YAAAY,aAAA;IAAKC,SAAS,EAAC;EAAkC,GAC9CH,UAAU,gBACTV,MAAA,YAAAY,aAAA,CAACR,mBAAA,WAAkB;IAACG,OAAO,EAAEA,OAAQ;IAACE,OAAO,EAAEA;EAAQ,CAAE,CAAC,gBAE1DT,MAAA,YAAAY,aAAA;IAAKC,SAAS,EAAC;EAAkC,gBAC/Cb,MAAA,YAAAY,aAAA,CAACT,UAAA,WAAS;IAACW,IAAI,yBAAAC,MAAA,CAAyBP,mBAAmB;EAAG,8BAAAO,MAAA,CAChCP,mBAAmB,CACtC,CACR,CAEJ,CACF,CACF,CAAC;AAEV,CAAC;AAAC,IAAAQ,QAAA,GAAAC,OAAA,cAEaZ,oBAAoB","ignoreList":[]}
1
+ {"version":3,"file":"SearchContentResults.js","names":["_react","_interopRequireDefault","require","_BlazeLink","_SearchContentItems","SearchContentResults","_ref","results","debouncedSearchTerm","onClick","hasResults","length","createElement","className","href","concat","_default","exports"],"sources":["../../../src/components/SearchContent/SearchContentResults.js"],"sourcesContent":["import React from 'react';\nimport BlazeLink from '../BlazeLink';\nimport SearchContentItems from './SearchContentItems';\n\nconst SearchContentResults = ({ results, debouncedSearchTerm, onClick }) => {\n if (!debouncedSearchTerm) return null;\n const hasResults = results.length > 0;\n return (\n <div className=\"search-content--results__wrapper\" data-testid=\"search-content-results\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"search-content--results__content\">\n {hasResults ? (\n <SearchContentItems results={results} onClick={onClick} />\n ) : (\n <div className=\"search-content--results__message\">\n <BlazeLink href={`/search?search_term=${debouncedSearchTerm}`}>\n {`Search all results for: ${debouncedSearchTerm}`}\n </BlazeLink>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default SearchContentResults;\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,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,IAAA,EAAkD;EAAA,IAA5CC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,mBAAmB,GAAAF,IAAA,CAAnBE,mBAAmB;IAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO;EACnE,IAAI,CAACD,mBAAmB,EAAE,OAAO,IAAI;EACrC,IAAME,UAAU,GAAGH,OAAO,CAACI,MAAM,GAAG,CAAC;EACrC,oBACEX,MAAA,YAAAY,aAAA;IAAKC,SAAS,EAAC,kCAAkC;IAAC,eAAY;EAAwB,gBACpFb,MAAA,YAAAY,aAAA;IAAKC,SAAS,EAAC;EAA2C,gBACxDb,MAAA,YAAAY,aAAA;IAAKC,SAAS,EAAC;EAAkC,GAC9CH,UAAU,gBACTV,MAAA,YAAAY,aAAA,CAACR,mBAAA,WAAkB;IAACG,OAAO,EAAEA,OAAQ;IAACE,OAAO,EAAEA;EAAQ,CAAE,CAAC,gBAE1DT,MAAA,YAAAY,aAAA;IAAKC,SAAS,EAAC;EAAkC,gBAC/Cb,MAAA,YAAAY,aAAA,CAACT,UAAA,WAAS;IAACW,IAAI,yBAAAC,MAAA,CAAyBP,mBAAmB;EAAG,8BAAAO,MAAA,CAChCP,mBAAmB,CACtC,CACR,CAEJ,CACF,CACF,CAAC;AAEV,CAAC;AAAC,IAAAQ,QAAA,GAAAC,OAAA,cAEaZ,oBAAoB","ignoreList":[]}
@@ -12,7 +12,7 @@ require("core-js/modules/es.object.keys.js");
12
12
  var _client = require("@apollo/client");
13
13
  var _query = require("../application/query");
14
14
  function useGetImageIdFromRelation(id, imageRelation, actions, isUsingRelationImage, isPreview, hasImgSrc) {
15
- var skip = !id || hasImgSrc || typeof id !== 'string' || !isUsingRelationImage || !Object.keys(actions).length;
15
+ var skip = !actions || !id || hasImgSrc || typeof id !== 'string' || !isUsingRelationImage || !Object.keys(actions).length;
16
16
  var _imageRelation = (0, _slicedToArray2["default"])(imageRelation, 1),
17
17
  _imageRelation$ = _imageRelation[0],
18
18
  imageRelationData = _imageRelation$ === void 0 ? '' : _imageRelation$;
@@ -22,8 +22,9 @@ function useGetImageIdFromRelation(id, imageRelation, actions, isUsingRelationIm
22
22
  relationName = _imageRelationData$sp3 === void 0 ? '' : _imageRelationData$sp3,
23
23
  _imageRelationData$sp4 = _imageRelationData$sp2[1],
24
24
  relationProp = _imageRelationData$sp4 === void 0 ? '' : _imageRelationData$sp4;
25
- var getPublished = actions.getPublished,
26
- get = actions.get;
25
+ var _ref = actions || {},
26
+ getPublished = _ref.getPublished,
27
+ get = _ref.get;
27
28
  var getAction = isPreview ? get : getPublished || get;
28
29
  var props = imageRelationData ? "".concat(relationName, " { ").concat(relationProp, " }") : 'id';
29
30
  var _useQuery = (0, _client.useQuery)((0, _query.generateSingleItemQuery)(getAction, props), {
@@ -1 +1 @@
1
- {"version":3,"file":"use-get-image-id-from-relation.js","names":["_client","require","_query","useGetImageIdFromRelation","id","imageRelation","actions","isUsingRelationImage","isPreview","hasImgSrc","skip","Object","keys","length","_imageRelation","_slicedToArray2","_imageRelation$","imageRelationData","_imageRelationData$sp","split","_imageRelationData$sp2","_imageRelationData$sp3","relationName","_imageRelationData$sp4","relationProp","getPublished","get","getAction","props","concat","_useQuery","useQuery","generateSingleItemQuery","variables","_useQuery$data","data","loading","error","_default","exports"],"sources":["../../src/hooks/use-get-image-id-from-relation.js"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport { generateSingleItemQuery } from '../application/query';\n\nfunction useGetImageIdFromRelation(\n id,\n imageRelation,\n actions,\n isUsingRelationImage,\n isPreview,\n hasImgSrc\n) {\n const skip =\n !id ||\n hasImgSrc ||\n typeof id !== 'string' ||\n !isUsingRelationImage ||\n !Object.keys(actions).length;\n\n const [imageRelationData = ''] = imageRelation;\n const [relationName = '', relationProp = ''] = imageRelationData.split('.');\n const { getPublished, get } = actions;\n const getAction = isPreview ? get : getPublished || get;\n\n const props = imageRelationData ? `${relationName} { ${relationProp} }` : 'id';\n const {\n data = {},\n loading,\n error\n } = useQuery(generateSingleItemQuery(getAction, props), {\n variables: { id },\n skip\n });\n return { data, loading, error };\n}\n\nexport default useGetImageIdFromRelation;\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,SAASE,yBAAyBA,CAChCC,EAAE,EACFC,aAAa,EACbC,OAAO,EACPC,oBAAoB,EACpBC,SAAS,EACTC,SAAS,EACT;EACA,IAAMC,IAAI,GACR,CAACN,EAAE,IACHK,SAAS,IACT,OAAOL,EAAE,KAAK,QAAQ,IACtB,CAACG,oBAAoB,IACrB,CAACI,MAAM,CAACC,IAAI,CAACN,OAAO,CAAC,CAACO,MAAM;EAE9B,IAAAC,cAAA,OAAAC,eAAA,aAAiCV,aAAa;IAAAW,eAAA,GAAAF,cAAA;IAAvCG,iBAAiB,GAAAD,eAAA,cAAG,EAAE,GAAAA,eAAA;EAC7B,IAAAE,qBAAA,GAA+CD,iBAAiB,CAACE,KAAK,CAAC,GAAG,CAAC;IAAAC,sBAAA,OAAAL,eAAA,aAAAG,qBAAA;IAAAG,sBAAA,GAAAD,sBAAA;IAApEE,YAAY,GAAAD,sBAAA,cAAG,EAAE,GAAAA,sBAAA;IAAAE,sBAAA,GAAAH,sBAAA;IAAEI,YAAY,GAAAD,sBAAA,cAAG,EAAE,GAAAA,sBAAA;EAC3C,IAAQE,YAAY,GAAUnB,OAAO,CAA7BmB,YAAY;IAAEC,GAAG,GAAKpB,OAAO,CAAfoB,GAAG;EACzB,IAAMC,SAAS,GAAGnB,SAAS,GAAGkB,GAAG,GAAGD,YAAY,IAAIC,GAAG;EAEvD,IAAME,KAAK,GAAGX,iBAAiB,MAAAY,MAAA,CAAMP,YAAY,SAAAO,MAAA,CAAML,YAAY,UAAO,IAAI;EAC9E,IAAAM,SAAA,GAII,IAAAC,gBAAQ,EAAC,IAAAC,8BAAuB,EAACL,SAAS,EAAEC,KAAK,CAAC,EAAE;MACtDK,SAAS,EAAE;QAAE7B,EAAE,EAAFA;MAAG,CAAC;MACjBM,IAAI,EAAJA;IACF,CAAC,CAAC;IAAAwB,cAAA,GAAAJ,SAAA,CANAK,IAAI;IAAJA,IAAI,GAAAD,cAAA,cAAG,CAAC,CAAC,GAAAA,cAAA;IACTE,OAAO,GAAAN,SAAA,CAAPM,OAAO;IACPC,KAAK,GAAAP,SAAA,CAALO,KAAK;EAKP,OAAO;IAAEF,IAAI,EAAJA,IAAI;IAAEC,OAAO,EAAPA,OAAO;IAAEC,KAAK,EAALA;EAAM,CAAC;AACjC;AAAC,IAAAC,QAAA,GAAAC,OAAA,cAEcpC,yBAAyB","ignoreList":[]}
1
+ {"version":3,"file":"use-get-image-id-from-relation.js","names":["_client","require","_query","useGetImageIdFromRelation","id","imageRelation","actions","isUsingRelationImage","isPreview","hasImgSrc","skip","Object","keys","length","_imageRelation","_slicedToArray2","_imageRelation$","imageRelationData","_imageRelationData$sp","split","_imageRelationData$sp2","_imageRelationData$sp3","relationName","_imageRelationData$sp4","relationProp","_ref","getPublished","get","getAction","props","concat","_useQuery","useQuery","generateSingleItemQuery","variables","_useQuery$data","data","loading","error","_default","exports"],"sources":["../../src/hooks/use-get-image-id-from-relation.js"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport { generateSingleItemQuery } from '../application/query';\n\nfunction useGetImageIdFromRelation(\n id,\n imageRelation,\n actions,\n isUsingRelationImage,\n isPreview,\n hasImgSrc\n) {\n const skip =\n !actions ||\n !id ||\n hasImgSrc ||\n typeof id !== 'string' ||\n !isUsingRelationImage ||\n !Object.keys(actions).length;\n\n const [imageRelationData = ''] = imageRelation;\n const [relationName = '', relationProp = ''] = imageRelationData.split('.');\n const { getPublished, get } = actions || {};\n const getAction = isPreview ? get : getPublished || get;\n\n const props = imageRelationData ? `${relationName} { ${relationProp} }` : 'id';\n const {\n data = {},\n loading,\n error\n } = useQuery(generateSingleItemQuery(getAction, props), {\n variables: { id },\n skip\n });\n return { data, loading, error };\n}\n\nexport default useGetImageIdFromRelation;\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,SAASE,yBAAyBA,CAChCC,EAAE,EACFC,aAAa,EACbC,OAAO,EACPC,oBAAoB,EACpBC,SAAS,EACTC,SAAS,EACT;EACA,IAAMC,IAAI,GACR,CAACJ,OAAO,IACR,CAACF,EAAE,IACHK,SAAS,IACT,OAAOL,EAAE,KAAK,QAAQ,IACtB,CAACG,oBAAoB,IACrB,CAACI,MAAM,CAACC,IAAI,CAACN,OAAO,CAAC,CAACO,MAAM;EAE9B,IAAAC,cAAA,OAAAC,eAAA,aAAiCV,aAAa;IAAAW,eAAA,GAAAF,cAAA;IAAvCG,iBAAiB,GAAAD,eAAA,cAAG,EAAE,GAAAA,eAAA;EAC7B,IAAAE,qBAAA,GAA+CD,iBAAiB,CAACE,KAAK,CAAC,GAAG,CAAC;IAAAC,sBAAA,OAAAL,eAAA,aAAAG,qBAAA;IAAAG,sBAAA,GAAAD,sBAAA;IAApEE,YAAY,GAAAD,sBAAA,cAAG,EAAE,GAAAA,sBAAA;IAAAE,sBAAA,GAAAH,sBAAA;IAAEI,YAAY,GAAAD,sBAAA,cAAG,EAAE,GAAAA,sBAAA;EAC3C,IAAAE,IAAA,GAA8BnB,OAAO,IAAI,CAAC,CAAC;IAAnCoB,YAAY,GAAAD,IAAA,CAAZC,YAAY;IAAEC,GAAG,GAAAF,IAAA,CAAHE,GAAG;EACzB,IAAMC,SAAS,GAAGpB,SAAS,GAAGmB,GAAG,GAAGD,YAAY,IAAIC,GAAG;EAEvD,IAAME,KAAK,GAAGZ,iBAAiB,MAAAa,MAAA,CAAMR,YAAY,SAAAQ,MAAA,CAAMN,YAAY,UAAO,IAAI;EAC9E,IAAAO,SAAA,GAII,IAAAC,gBAAQ,EAAC,IAAAC,8BAAuB,EAACL,SAAS,EAAEC,KAAK,CAAC,EAAE;MACtDK,SAAS,EAAE;QAAE9B,EAAE,EAAFA;MAAG,CAAC;MACjBM,IAAI,EAAJA;IACF,CAAC,CAAC;IAAAyB,cAAA,GAAAJ,SAAA,CANAK,IAAI;IAAJA,IAAI,GAAAD,cAAA,cAAG,CAAC,CAAC,GAAAA,cAAA;IACTE,OAAO,GAAAN,SAAA,CAAPM,OAAO;IACPC,KAAK,GAAAP,SAAA,CAALO,KAAK;EAKP,OAAO;IAAEF,IAAI,EAAJA,IAAI;IAAEC,OAAO,EAAPA,OAAO;IAAEC,KAAK,EAALA;EAAM,CAAC;AACjC;AAAC,IAAAC,QAAA,GAAAC,OAAA,cAEcrC,yBAAyB","ignoreList":[]}
@@ -1,31 +1,56 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- const _excluded = ["caption", "imageIds", "isCaptionDisplayed", "VariantComponent"];
4
- import React from 'react';
3
+ const _excluded = ["caption", "imageIds", "isCaptionDisplayed", "VariantComponent", "imagesProperty", "entity", "parent"];
4
+ import React, { useContext } from 'react';
5
5
  import PropTypes from 'prop-types';
6
+ import { MainContext } from '@blaze-cms/nextjs-components';
7
+ import { useGetImageIdFromRelation, useGetSingleEntitySchema } from '../../hooks';
6
8
  import CarouselImage from './CarouselImage';
7
9
  import CarouselRender from './CarouselRender';
8
10
  import { useCarouselNavigation } from './hooks/useCarouselNavigation';
9
- import { getDisplayCountData } from '../../helpers';
11
+ import { getDisplayCountData, getImageIds } from '../../helpers';
10
12
  const Carousel = props => {
11
13
  const {
12
14
  caption,
13
15
  imageIds,
14
16
  isCaptionDisplayed,
15
- VariantComponent
17
+ VariantComponent,
18
+ imagesProperty,
19
+ entity: entitySetting,
20
+ parent: {
21
+ itemId,
22
+ itemEntity
23
+ }
16
24
  } = props,
17
25
  otherProps = _objectWithoutProperties(props, _excluded);
26
+ const {
27
+ isPreview
28
+ } = useContext(MainContext);
18
29
  const navigationProps = useCarouselNavigation(props);
19
- if (!imageIds || !imageIds.length) return null;
30
+ const entity = imagesProperty ? entitySetting || itemEntity : null;
31
+ const skipSingleEntitySchema = !entity;
32
+ const {
33
+ data: {
34
+ getEntitySchema: {
35
+ actions
36
+ } = {}
37
+ } = {}
38
+ } = useGetSingleEntitySchema(entity, skipSingleEntitySchema);
39
+ const {
40
+ data: recordData,
41
+ loading: recordDataLoading
42
+ } = useGetImageIdFromRelation(itemId, imagesProperty, actions, true, isPreview, false);
43
+ const updatedImageIds = recordDataLoading ? [] : [...getImageIds(imagesProperty, recordData, null), ...imageIds];
44
+ if (!updatedImageIds || !updatedImageIds.length) return null;
20
45
  const shouldDisplayCaption = isCaptionDisplayed && caption;
21
46
  const {
22
47
  shouldDisplayCount,
23
48
  countMessage
24
- } = getDisplayCountData(navigationProps.showCount, imageIds);
49
+ } = getDisplayCountData(navigationProps.showCount, updatedImageIds);
25
50
  const ComponentToRender = VariantComponent || CarouselRender;
26
51
  return /*#__PURE__*/React.createElement(ComponentToRender, _extends({
27
52
  caption: caption,
28
- imageIds: imageIds,
53
+ imageIds: updatedImageIds,
29
54
  CarouselImage: CarouselImage,
30
55
  shouldDisplayCaption: shouldDisplayCaption,
31
56
  shouldDisplayCount: shouldDisplayCount,
@@ -34,15 +59,20 @@ const Carousel = props => {
34
59
  };
35
60
  Carousel.propTypes = {
36
61
  caption: PropTypes.string,
62
+ entity: PropTypes.string,
37
63
  imageIds: PropTypes.array,
64
+ imagesProperty: PropTypes.array,
38
65
  isCaptionDisplayed: PropTypes.bool,
39
- VariantComponent: PropTypes.func
66
+ VariantComponent: PropTypes.func,
67
+ parent: PropTypes.object.isRequired
40
68
  };
41
69
  Carousel.defaultProps = {
42
70
  VariantComponent: null,
43
71
  caption: '',
44
72
  imageIds: [],
45
- isCaptionDisplayed: false
73
+ imagesProperty: [],
74
+ isCaptionDisplayed: false,
75
+ entity: null
46
76
  };
47
77
  export default Carousel;
48
78
  //# sourceMappingURL=Carousel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.js","names":["React","PropTypes","CarouselImage","CarouselRender","useCarouselNavigation","getDisplayCountData","Carousel","props","caption","imageIds","isCaptionDisplayed","VariantComponent","otherProps","_objectWithoutProperties","_excluded","navigationProps","length","shouldDisplayCaption","shouldDisplayCount","countMessage","showCount","ComponentToRender","createElement","_extends","propTypes","string","array","bool","func","defaultProps"],"sources":["../../../src/components/Carousel/Carousel.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CarouselImage from './CarouselImage';\nimport CarouselRender from './CarouselRender';\nimport { useCarouselNavigation } from './hooks/useCarouselNavigation';\nimport { getDisplayCountData } from '../../helpers';\n\nconst Carousel = props => {\n const { caption, imageIds, isCaptionDisplayed, VariantComponent, ...otherProps } = props;\n\n const navigationProps = useCarouselNavigation(props);\n\n if (!imageIds || !imageIds.length) return null;\n const shouldDisplayCaption = isCaptionDisplayed && caption;\n\n const { shouldDisplayCount, countMessage } = getDisplayCountData(\n navigationProps.showCount,\n imageIds\n );\n\n const ComponentToRender = VariantComponent || CarouselRender;\n\n return (\n <ComponentToRender\n caption={caption}\n imageIds={imageIds}\n CarouselImage={CarouselImage}\n shouldDisplayCaption={shouldDisplayCaption}\n shouldDisplayCount={shouldDisplayCount}\n countMessage={countMessage}\n {...navigationProps}\n {...otherProps}\n />\n );\n};\n\nCarousel.propTypes = {\n caption: PropTypes.string,\n imageIds: PropTypes.array,\n isCaptionDisplayed: PropTypes.bool,\n VariantComponent: PropTypes.func\n};\n\nCarousel.defaultProps = {\n VariantComponent: null,\n caption: '',\n imageIds: [],\n isCaptionDisplayed: false\n};\n\nexport default Carousel;\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,aAAa,MAAM,iBAAiB;AAC3C,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,SAASC,qBAAqB,QAAQ,+BAA+B;AACrE,SAASC,mBAAmB,QAAQ,eAAe;AAEnD,MAAMC,QAAQ,GAAGC,KAAK,IAAI;EACxB,MAAM;MAAEC,OAAO;MAAEC,QAAQ;MAAEC,kBAAkB;MAAEC;IAAgC,CAAC,GAAGJ,KAAK;IAApBK,UAAU,GAAAC,wBAAA,CAAKN,KAAK,EAAAO,SAAA;EAExF,MAAMC,eAAe,GAAGX,qBAAqB,CAACG,KAAK,CAAC;EAEpD,IAAI,CAACE,QAAQ,IAAI,CAACA,QAAQ,CAACO,MAAM,EAAE,OAAO,IAAI;EAC9C,MAAMC,oBAAoB,GAAGP,kBAAkB,IAAIF,OAAO;EAE1D,MAAM;IAAEU,kBAAkB;IAAEC;EAAa,CAAC,GAAGd,mBAAmB,CAC9DU,eAAe,CAACK,SAAS,EACzBX,QACF,CAAC;EAED,MAAMY,iBAAiB,GAAGV,gBAAgB,IAAIR,cAAc;EAE5D,oBACEH,KAAA,CAAAsB,aAAA,CAACD,iBAAiB,EAAAE,QAAA;IAChBf,OAAO,EAAEA,OAAQ;IACjBC,QAAQ,EAAEA,QAAS;IACnBP,aAAa,EAAEA,aAAc;IAC7Be,oBAAoB,EAAEA,oBAAqB;IAC3CC,kBAAkB,EAAEA,kBAAmB;IACvCC,YAAY,EAAEA;EAAa,GACvBJ,eAAe,EACfH,UAAU,CACf,CAAC;AAEN,CAAC;AAEDN,QAAQ,CAACkB,SAAS,GAAG;EACnBhB,OAAO,EAAEP,SAAS,CAACwB,MAAM;EACzBhB,QAAQ,EAAER,SAAS,CAACyB,KAAK;EACzBhB,kBAAkB,EAAET,SAAS,CAAC0B,IAAI;EAClChB,gBAAgB,EAAEV,SAAS,CAAC2B;AAC9B,CAAC;AAEDtB,QAAQ,CAACuB,YAAY,GAAG;EACtBlB,gBAAgB,EAAE,IAAI;EACtBH,OAAO,EAAE,EAAE;EACXC,QAAQ,EAAE,EAAE;EACZC,kBAAkB,EAAE;AACtB,CAAC;AAED,eAAeJ,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"Carousel.js","names":["React","useContext","PropTypes","MainContext","useGetImageIdFromRelation","useGetSingleEntitySchema","CarouselImage","CarouselRender","useCarouselNavigation","getDisplayCountData","getImageIds","Carousel","props","caption","imageIds","isCaptionDisplayed","VariantComponent","imagesProperty","entity","entitySetting","parent","itemId","itemEntity","otherProps","_objectWithoutProperties","_excluded","isPreview","navigationProps","skipSingleEntitySchema","data","getEntitySchema","actions","recordData","loading","recordDataLoading","updatedImageIds","length","shouldDisplayCaption","shouldDisplayCount","countMessage","showCount","ComponentToRender","createElement","_extends","propTypes","string","array","bool","func","object","isRequired","defaultProps"],"sources":["../../../src/components/Carousel/Carousel.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { useGetImageIdFromRelation, useGetSingleEntitySchema } from '../../hooks';\nimport CarouselImage from './CarouselImage';\nimport CarouselRender from './CarouselRender';\nimport { useCarouselNavigation } from './hooks/useCarouselNavigation';\nimport { getDisplayCountData, getImageIds } from '../../helpers';\n\nconst Carousel = props => {\n const {\n caption,\n imageIds,\n isCaptionDisplayed,\n VariantComponent,\n imagesProperty,\n entity: entitySetting,\n parent: { itemId, itemEntity },\n ...otherProps\n } = props;\n const { isPreview } = useContext(MainContext);\n const navigationProps = useCarouselNavigation(props);\n\n const entity = imagesProperty ? entitySetting || itemEntity : null;\n const skipSingleEntitySchema = !entity;\n\n const { data: { getEntitySchema: { actions } = {} } = {} } = useGetSingleEntitySchema(\n entity,\n skipSingleEntitySchema\n );\n\n const { data: recordData, loading: recordDataLoading } = useGetImageIdFromRelation(\n itemId,\n imagesProperty,\n actions,\n true,\n isPreview,\n false\n );\n\n const updatedImageIds = recordDataLoading\n ? []\n : [...getImageIds(imagesProperty, recordData, null), ...imageIds];\n\n if (!updatedImageIds || !updatedImageIds.length) return null;\n const shouldDisplayCaption = isCaptionDisplayed && caption;\n\n const { shouldDisplayCount, countMessage } = getDisplayCountData(\n navigationProps.showCount,\n updatedImageIds\n );\n\n const ComponentToRender = VariantComponent || CarouselRender;\n\n return (\n <ComponentToRender\n caption={caption}\n imageIds={updatedImageIds}\n CarouselImage={CarouselImage}\n shouldDisplayCaption={shouldDisplayCaption}\n shouldDisplayCount={shouldDisplayCount}\n countMessage={countMessage}\n {...navigationProps}\n {...otherProps}\n />\n );\n};\n\nCarousel.propTypes = {\n caption: PropTypes.string,\n entity: PropTypes.string,\n imageIds: PropTypes.array,\n imagesProperty: PropTypes.array,\n isCaptionDisplayed: PropTypes.bool,\n VariantComponent: PropTypes.func,\n parent: PropTypes.object.isRequired\n};\n\nCarousel.defaultProps = {\n VariantComponent: null,\n caption: '',\n imageIds: [],\n imagesProperty: [],\n isCaptionDisplayed: false,\n entity: null\n};\n\nexport default Carousel;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,yBAAyB,EAAEC,wBAAwB,QAAQ,aAAa;AACjF,OAAOC,aAAa,MAAM,iBAAiB;AAC3C,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,SAASC,qBAAqB,QAAQ,+BAA+B;AACrE,SAASC,mBAAmB,EAAEC,WAAW,QAAQ,eAAe;AAEhE,MAAMC,QAAQ,GAAGC,KAAK,IAAI;EACxB,MAAM;MACJC,OAAO;MACPC,QAAQ;MACRC,kBAAkB;MAClBC,gBAAgB;MAChBC,cAAc;MACdC,MAAM,EAAEC,aAAa;MACrBC,MAAM,EAAE;QAAEC,MAAM;QAAEC;MAAW;IAE/B,CAAC,GAAGV,KAAK;IADJW,UAAU,GAAAC,wBAAA,CACXZ,KAAK,EAAAa,SAAA;EACT,MAAM;IAAEC;EAAU,CAAC,GAAGzB,UAAU,CAACE,WAAW,CAAC;EAC7C,MAAMwB,eAAe,GAAGnB,qBAAqB,CAACI,KAAK,CAAC;EAEpD,MAAMM,MAAM,GAAGD,cAAc,GAAGE,aAAa,IAAIG,UAAU,GAAG,IAAI;EAClE,MAAMM,sBAAsB,GAAG,CAACV,MAAM;EAEtC,MAAM;IAAEW,IAAI,EAAE;MAAEC,eAAe,EAAE;QAAEC;MAAQ,CAAC,GAAG,CAAC;IAAE,CAAC,GAAG,CAAC;EAAE,CAAC,GAAG1B,wBAAwB,CACnFa,MAAM,EACNU,sBACF,CAAC;EAED,MAAM;IAAEC,IAAI,EAAEG,UAAU;IAAEC,OAAO,EAAEC;EAAkB,CAAC,GAAG9B,yBAAyB,CAChFiB,MAAM,EACNJ,cAAc,EACdc,OAAO,EACP,IAAI,EACJL,SAAS,EACT,KACF,CAAC;EAED,MAAMS,eAAe,GAAGD,iBAAiB,GACrC,EAAE,GACF,CAAC,GAAGxB,WAAW,CAACO,cAAc,EAAEe,UAAU,EAAE,IAAI,CAAC,EAAE,GAAGlB,QAAQ,CAAC;EAEnE,IAAI,CAACqB,eAAe,IAAI,CAACA,eAAe,CAACC,MAAM,EAAE,OAAO,IAAI;EAC5D,MAAMC,oBAAoB,GAAGtB,kBAAkB,IAAIF,OAAO;EAE1D,MAAM;IAAEyB,kBAAkB;IAAEC;EAAa,CAAC,GAAG9B,mBAAmB,CAC9DkB,eAAe,CAACa,SAAS,EACzBL,eACF,CAAC;EAED,MAAMM,iBAAiB,GAAGzB,gBAAgB,IAAIT,cAAc;EAE5D,oBACEP,KAAA,CAAA0C,aAAA,CAACD,iBAAiB,EAAAE,QAAA;IAChB9B,OAAO,EAAEA,OAAQ;IACjBC,QAAQ,EAAEqB,eAAgB;IAC1B7B,aAAa,EAAEA,aAAc;IAC7B+B,oBAAoB,EAAEA,oBAAqB;IAC3CC,kBAAkB,EAAEA,kBAAmB;IACvCC,YAAY,EAAEA;EAAa,GACvBZ,eAAe,EACfJ,UAAU,CACf,CAAC;AAEN,CAAC;AAEDZ,QAAQ,CAACiC,SAAS,GAAG;EACnB/B,OAAO,EAAEX,SAAS,CAAC2C,MAAM;EACzB3B,MAAM,EAAEhB,SAAS,CAAC2C,MAAM;EACxB/B,QAAQ,EAAEZ,SAAS,CAAC4C,KAAK;EACzB7B,cAAc,EAAEf,SAAS,CAAC4C,KAAK;EAC/B/B,kBAAkB,EAAEb,SAAS,CAAC6C,IAAI;EAClC/B,gBAAgB,EAAEd,SAAS,CAAC8C,IAAI;EAChC5B,MAAM,EAAElB,SAAS,CAAC+C,MAAM,CAACC;AAC3B,CAAC;AAEDvC,QAAQ,CAACwC,YAAY,GAAG;EACtBnC,gBAAgB,EAAE,IAAI;EACtBH,OAAO,EAAE,EAAE;EACXC,QAAQ,EAAE,EAAE;EACZG,cAAc,EAAE,EAAE;EAClBF,kBAAkB,EAAE,KAAK;EACzBG,MAAM,EAAE;AACV,CAAC;AAED,eAAeP,QAAQ","ignoreList":[]}
@@ -35,9 +35,10 @@ const CarouselImage = ({
35
35
  toggleModal();
36
36
  handleSelectedImage(imageId);
37
37
  };
38
+ if (!loading && !imageUrl) return null;
38
39
  return /*#__PURE__*/React.createElement("div", {
39
40
  className: "carousel__slide"
40
- }, loading ? /*#__PURE__*/React.createElement("div", null) : /*#__PURE__*/React.createElement(LazyImage, {
41
+ }, loading ? /*#__PURE__*/React.createElement("span", null) : /*#__PURE__*/React.createElement(LazyImage, {
41
42
  src: imageUrl,
42
43
  alt: alt,
43
44
  sizeKey: "carousel",
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselImage.js","names":["React","PropTypes","useGetImages","getImageData","LazyImage","CAROUSEL_DEFAULT_ALT","CarouselImage","imageId","enableLightbox","toggleModal","handleSelectedImage","priority","data","loading","error","message","url","imageUrl","imageData","getFile","altText","alt","handleEnableLightbox","createElement","className","src","sizeKey","onClick","role","propTypes","string","isRequired","bool","func"],"sources":["../../../../src/components/Carousel/CarouselImage/CarouselImage.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useGetImages } from '../../../hooks';\nimport { getImageData } from '../../../utils';\nimport LazyImage from '../../LazyImage';\nimport { CAROUSEL_DEFAULT_ALT } from './constants';\n\nconst CarouselImage = ({ imageId, enableLightbox, toggleModal, handleSelectedImage, priority }) => {\n const { data, loading, error } = useGetImages(imageId);\n\n if (error) return error.message;\n\n const { url: imageUrl = '', data: imageData = {} } = data.getFile || {\n getFile: { url: '', data: {} }\n };\n\n const { altText } = getImageData({}, imageData);\n const alt = altText || CAROUSEL_DEFAULT_ALT;\n\n const handleEnableLightbox = () => {\n if (!enableLightbox) return;\n toggleModal();\n handleSelectedImage(imageId);\n };\n\n return (\n <div className=\"carousel__slide\">\n {loading ? (\n <div />\n ) : (\n <LazyImage\n src={imageUrl}\n alt={alt}\n sizeKey=\"carousel\"\n onClick={handleEnableLightbox}\n role=\"button\"\n aria-label=\"View Image\"\n priority={priority}\n />\n )}\n </div>\n );\n};\n\nCarouselImage.propTypes = {\n imageId: PropTypes.string.isRequired,\n enableLightbox: PropTypes.bool.isRequired,\n toggleModal: PropTypes.func.isRequired,\n handleSelectedImage: PropTypes.func.isRequired,\n priority: PropTypes.bool.isRequired\n};\n\nexport default CarouselImage;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,OAAOC,SAAS,MAAM,iBAAiB;AACvC,SAASC,oBAAoB,QAAQ,aAAa;AAElD,MAAMC,aAAa,GAAGA,CAAC;EAAEC,OAAO;EAAEC,cAAc;EAAEC,WAAW;EAAEC,mBAAmB;EAAEC;AAAS,CAAC,KAAK;EACjG,MAAM;IAAEC,IAAI;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAGZ,YAAY,CAACK,OAAO,CAAC;EAEtD,IAAIO,KAAK,EAAE,OAAOA,KAAK,CAACC,OAAO;EAE/B,MAAM;IAAEC,GAAG,EAAEC,QAAQ,GAAG,EAAE;IAAEL,IAAI,EAAEM,SAAS,GAAG,CAAC;EAAE,CAAC,GAAGN,IAAI,CAACO,OAAO,IAAI;IACnEA,OAAO,EAAE;MAAEH,GAAG,EAAE,EAAE;MAAEJ,IAAI,EAAE,CAAC;IAAE;EAC/B,CAAC;EAED,MAAM;IAAEQ;EAAQ,CAAC,GAAGjB,YAAY,CAAC,CAAC,CAAC,EAAEe,SAAS,CAAC;EAC/C,MAAMG,GAAG,GAAGD,OAAO,IAAIf,oBAAoB;EAE3C,MAAMiB,oBAAoB,GAAGA,CAAA,KAAM;IACjC,IAAI,CAACd,cAAc,EAAE;IACrBC,WAAW,CAAC,CAAC;IACbC,mBAAmB,CAACH,OAAO,CAAC;EAC9B,CAAC;EAED,oBACEP,KAAA,CAAAuB,aAAA;IAAKC,SAAS,EAAC;EAAiB,GAC7BX,OAAO,gBACNb,KAAA,CAAAuB,aAAA,YAAM,CAAC,gBAEPvB,KAAA,CAAAuB,aAAA,CAACnB,SAAS;IACRqB,GAAG,EAAER,QAAS;IACdI,GAAG,EAAEA,GAAI;IACTK,OAAO,EAAC,UAAU;IAClBC,OAAO,EAAEL,oBAAqB;IAC9BM,IAAI,EAAC,QAAQ;IACb,cAAW,YAAY;IACvBjB,QAAQ,EAAEA;EAAS,CACpB,CAEA,CAAC;AAEV,CAAC;AAEDL,aAAa,CAACuB,SAAS,GAAG;EACxBtB,OAAO,EAAEN,SAAS,CAAC6B,MAAM,CAACC,UAAU;EACpCvB,cAAc,EAAEP,SAAS,CAAC+B,IAAI,CAACD,UAAU;EACzCtB,WAAW,EAAER,SAAS,CAACgC,IAAI,CAACF,UAAU;EACtCrB,mBAAmB,EAAET,SAAS,CAACgC,IAAI,CAACF,UAAU;EAC9CpB,QAAQ,EAAEV,SAAS,CAAC+B,IAAI,CAACD;AAC3B,CAAC;AAED,eAAezB,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"CarouselImage.js","names":["React","PropTypes","useGetImages","getImageData","LazyImage","CAROUSEL_DEFAULT_ALT","CarouselImage","imageId","enableLightbox","toggleModal","handleSelectedImage","priority","data","loading","error","message","url","imageUrl","imageData","getFile","altText","alt","handleEnableLightbox","createElement","className","src","sizeKey","onClick","role","propTypes","string","isRequired","bool","func"],"sources":["../../../../src/components/Carousel/CarouselImage/CarouselImage.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useGetImages } from '../../../hooks';\nimport { getImageData } from '../../../utils';\nimport LazyImage from '../../LazyImage';\nimport { CAROUSEL_DEFAULT_ALT } from './constants';\n\nconst CarouselImage = ({ imageId, enableLightbox, toggleModal, handleSelectedImage, priority }) => {\n const { data, loading, error } = useGetImages(imageId);\n\n if (error) return error.message;\n\n const { url: imageUrl = '', data: imageData = {} } = data.getFile || {\n getFile: { url: '', data: {} }\n };\n\n const { altText } = getImageData({}, imageData);\n const alt = altText || CAROUSEL_DEFAULT_ALT;\n\n const handleEnableLightbox = () => {\n if (!enableLightbox) return;\n toggleModal();\n handleSelectedImage(imageId);\n };\n\n if (!loading && !imageUrl) return null;\n\n return (\n <div className=\"carousel__slide\">\n {loading ? (\n <span />\n ) : (\n <LazyImage\n src={imageUrl}\n alt={alt}\n sizeKey=\"carousel\"\n onClick={handleEnableLightbox}\n role=\"button\"\n aria-label=\"View Image\"\n priority={priority}\n />\n )}\n </div>\n );\n};\n\nCarouselImage.propTypes = {\n imageId: PropTypes.string.isRequired,\n enableLightbox: PropTypes.bool.isRequired,\n toggleModal: PropTypes.func.isRequired,\n handleSelectedImage: PropTypes.func.isRequired,\n priority: PropTypes.bool.isRequired\n};\n\nexport default CarouselImage;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,OAAOC,SAAS,MAAM,iBAAiB;AACvC,SAASC,oBAAoB,QAAQ,aAAa;AAElD,MAAMC,aAAa,GAAGA,CAAC;EAAEC,OAAO;EAAEC,cAAc;EAAEC,WAAW;EAAEC,mBAAmB;EAAEC;AAAS,CAAC,KAAK;EACjG,MAAM;IAAEC,IAAI;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAGZ,YAAY,CAACK,OAAO,CAAC;EAEtD,IAAIO,KAAK,EAAE,OAAOA,KAAK,CAACC,OAAO;EAE/B,MAAM;IAAEC,GAAG,EAAEC,QAAQ,GAAG,EAAE;IAAEL,IAAI,EAAEM,SAAS,GAAG,CAAC;EAAE,CAAC,GAAGN,IAAI,CAACO,OAAO,IAAI;IACnEA,OAAO,EAAE;MAAEH,GAAG,EAAE,EAAE;MAAEJ,IAAI,EAAE,CAAC;IAAE;EAC/B,CAAC;EAED,MAAM;IAAEQ;EAAQ,CAAC,GAAGjB,YAAY,CAAC,CAAC,CAAC,EAAEe,SAAS,CAAC;EAC/C,MAAMG,GAAG,GAAGD,OAAO,IAAIf,oBAAoB;EAE3C,MAAMiB,oBAAoB,GAAGA,CAAA,KAAM;IACjC,IAAI,CAACd,cAAc,EAAE;IACrBC,WAAW,CAAC,CAAC;IACbC,mBAAmB,CAACH,OAAO,CAAC;EAC9B,CAAC;EAED,IAAI,CAACM,OAAO,IAAI,CAACI,QAAQ,EAAE,OAAO,IAAI;EAEtC,oBACEjB,KAAA,CAAAuB,aAAA;IAAKC,SAAS,EAAC;EAAiB,GAC7BX,OAAO,gBACNb,KAAA,CAAAuB,aAAA,aAAO,CAAC,gBAERvB,KAAA,CAAAuB,aAAA,CAACnB,SAAS;IACRqB,GAAG,EAAER,QAAS;IACdI,GAAG,EAAEA,GAAI;IACTK,OAAO,EAAC,UAAU;IAClBC,OAAO,EAAEL,oBAAqB;IAC9BM,IAAI,EAAC,QAAQ;IACb,cAAW,YAAY;IACvBjB,QAAQ,EAAEA;EAAS,CACpB,CAEA,CAAC;AAEV,CAAC;AAEDL,aAAa,CAACuB,SAAS,GAAG;EACxBtB,OAAO,EAAEN,SAAS,CAAC6B,MAAM,CAACC,UAAU;EACpCvB,cAAc,EAAEP,SAAS,CAAC+B,IAAI,CAACD,UAAU;EACzCtB,WAAW,EAAER,SAAS,CAACgC,IAAI,CAACF,UAAU;EACtCrB,mBAAmB,EAAET,SAAS,CAACgC,IAAI,CAACF,UAAU;EAC9CpB,QAAQ,EAAEV,SAAS,CAAC+B,IAAI,CAACD;AAC3B,CAAC;AAED,eAAezB,aAAa","ignoreList":[]}
@@ -111,9 +111,15 @@ const SearchContent = props => {
111
111
  name: "search",
112
112
  placeholder: placeholder,
113
113
  value: searchTerm,
114
- onChange: e => setSearchTerm(e.target.value),
114
+ onChange: e => {
115
+ setSearchTerm(e.target.value);
116
+ setShowResults(true);
117
+ },
115
118
  onKeyDown: handleKeyDown,
116
- onFocus: () => setShowResults(true),
119
+ onFocus: () => {
120
+ setShowResults(true);
121
+ if (collapsedSearch) setCollapsed(false);
122
+ },
117
123
  "data-testid": "search-content-input"
118
124
  }))), showResults && /*#__PURE__*/React.createElement(SearchContentResults, {
119
125
  results: results,
@@ -1 +1 @@
1
- {"version":3,"file":"SearchContent.js","names":["React","useState","useEffect","useRef","PropTypes","useRouter","useDebounceSearch","SearchContentResults","SearchContentToggleIcon","useAppSyncEventHook","SearchContent","props","entities","searchInputWrapperMobile","searchInputWrapperDesktop","isMobile","placeholder","modifier","collapsedSearch","searchUrl","navigateToSingleSearchResult","searchContentRef","collapsed","setCollapsed","showResults","setShowResults","router","runHook","eventName","returnFunction","results","searchTerm","setSearchTerm","debouncedSearchTerm","initialSearchTerm","resultKeys","queryHook","handleRouteChange","events","on","off","handleClickOutside","event","current","contains","target","document","activeElement","querySelector","addEventListener","removeEventListener","responsiveClasses","handleNavigation","e","url","preventDefault","push","handleKeyDown","key","value","length","searchUrlWithoutHash","split","handleIconClick","isCloseIcon","className","filter","Boolean","join","searchModifier","createElement","ref","onClick","useCloseIcon","type","name","onChange","onKeyDown","onFocus","handleClick","propTypes","string","bool","array","isRequired","defaultProps"],"sources":["../../../src/components/SearchContent/SearchContent.js"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { useDebounceSearch } from '@blaze-cms/plugin-search-ui';\nimport SearchContentResults from './SearchContentResults';\nimport SearchContentToggleIcon from './SearchContentToggleIcon';\nimport { useAppSyncEventHook } from '../../hooks';\n\nconst SearchContent = props => {\n const {\n entities,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n isMobile,\n placeholder,\n modifier,\n collapsedSearch,\n searchUrl,\n navigateToSingleSearchResult\n } = props;\n\n const searchContentRef = useRef(null);\n const [collapsed, setCollapsed] = useState(collapsedSearch);\n const [showResults, setShowResults] = useState(false);\n const router = useRouter();\n\n const { runHook } = useAppSyncEventHook({\n eventName: 'searchcontent:query-variables',\n props,\n returnFunction: true\n });\n\n const { results, searchTerm, setSearchTerm, debouncedSearchTerm } = useDebounceSearch({\n entities,\n initialSearchTerm: '',\n resultKeys: 'id, name, image { url }, url',\n queryHook: runHook\n });\n\n useEffect(() => {\n const handleRouteChange = () => {\n setSearchTerm('');\n setShowResults(false);\n if (collapsedSearch) setCollapsed(true);\n };\n router.events.on('routeChangeStart', handleRouteChange);\n return () => {\n router.events.off('routeChangeStart', handleRouteChange);\n };\n }, [collapsedSearch, router.events, setSearchTerm]);\n\n useEffect(() => {\n const handleClickOutside = event => {\n if (searchContentRef.current && !searchContentRef.current.contains(event.target)) {\n setShowResults(false);\n setSearchTerm('');\n if (\n collapsedSearch &&\n document.activeElement !== searchContentRef.current.querySelector('input')\n ) {\n setCollapsed(true);\n }\n }\n };\n\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, [collapsedSearch, setSearchTerm]);\n\n const responsiveClasses = isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop;\n\n const handleNavigation = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyDown = e => {\n if (e.key === 'Enter' && e.target.value !== '') {\n if (navigateToSingleSearchResult && results && results.length === 1 && results[0].url) {\n router.push(results[0].url);\n } else {\n const searchUrlWithoutHash = (searchUrl || '/search').split('#')[0];\n router.push(`${searchUrlWithoutHash}?search_term=${e.target.value}`);\n }\n }\n };\n\n const handleIconClick = () => {\n const isCloseIcon = collapsedSearch ? !collapsed : debouncedSearchTerm;\n\n if (collapsedSearch) setCollapsed(!collapsed);\n\n if (isCloseIcon) {\n setSearchTerm('');\n setShowResults(false);\n } else {\n setShowResults(true);\n }\n };\n\n const className = ['search-content', modifier, responsiveClasses].filter(Boolean).join(' ');\n const searchModifier = collapsed ? 'search-content--collapse' : 'search-content--expanded';\n\n return (\n <div className={className} ref={searchContentRef}>\n <div className={`${searchModifier}__wrapper`}>\n <label className={`${searchModifier}__label`}>\n <span className={`${searchModifier}__icon_wrapper`}>\n <SearchContentToggleIcon\n searchTerm={debouncedSearchTerm}\n onClick={handleIconClick}\n useCloseIcon={collapsedSearch ? !collapsed : debouncedSearchTerm}\n />\n </span>\n {!collapsed && (\n <input\n className={`${searchModifier}__input`}\n type=\"text\"\n name=\"search\"\n placeholder={placeholder}\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n onKeyDown={handleKeyDown}\n onFocus={() => setShowResults(true)}\n data-testid=\"search-content-input\"\n />\n )}\n </label>\n </div>\n {showResults && (\n <SearchContentResults\n results={results}\n debouncedSearchTerm={debouncedSearchTerm}\n handleClick={handleNavigation}\n />\n )}\n </div>\n );\n};\n\nSearchContent.propTypes = {\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n placeholder: PropTypes.string,\n isMobile: PropTypes.bool,\n entities: PropTypes.array.isRequired,\n modifier: PropTypes.string,\n collapsedSearch: PropTypes.bool,\n searchUrl: PropTypes.string,\n navigateToSingleSearchResult: PropTypes.bool\n};\n\nSearchContent.defaultProps = {\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n placeholder: '',\n isMobile: false,\n modifier: '',\n collapsedSearch: false,\n searchUrl: '',\n navigateToSingleSearchResult: false\n};\n\nexport default SearchContent;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SearchContent.js","names":["React","useState","useEffect","useRef","PropTypes","useRouter","useDebounceSearch","SearchContentResults","SearchContentToggleIcon","useAppSyncEventHook","SearchContent","props","entities","searchInputWrapperMobile","searchInputWrapperDesktop","isMobile","placeholder","modifier","collapsedSearch","searchUrl","navigateToSingleSearchResult","searchContentRef","collapsed","setCollapsed","showResults","setShowResults","router","runHook","eventName","returnFunction","results","searchTerm","setSearchTerm","debouncedSearchTerm","initialSearchTerm","resultKeys","queryHook","handleRouteChange","events","on","off","handleClickOutside","event","current","contains","target","document","activeElement","querySelector","addEventListener","removeEventListener","responsiveClasses","handleNavigation","e","url","preventDefault","push","handleKeyDown","key","value","length","searchUrlWithoutHash","split","handleIconClick","isCloseIcon","className","filter","Boolean","join","searchModifier","createElement","ref","onClick","useCloseIcon","type","name","onChange","onKeyDown","onFocus","handleClick","propTypes","string","bool","array","isRequired","defaultProps"],"sources":["../../../src/components/SearchContent/SearchContent.js"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { useDebounceSearch } from '@blaze-cms/plugin-search-ui';\nimport SearchContentResults from './SearchContentResults';\nimport SearchContentToggleIcon from './SearchContentToggleIcon';\nimport { useAppSyncEventHook } from '../../hooks';\n\nconst SearchContent = props => {\n const {\n entities,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n isMobile,\n placeholder,\n modifier,\n collapsedSearch,\n searchUrl,\n navigateToSingleSearchResult\n } = props;\n\n const searchContentRef = useRef(null);\n const [collapsed, setCollapsed] = useState(collapsedSearch);\n const [showResults, setShowResults] = useState(false);\n const router = useRouter();\n\n const { runHook } = useAppSyncEventHook({\n eventName: 'searchcontent:query-variables',\n props,\n returnFunction: true\n });\n\n const { results, searchTerm, setSearchTerm, debouncedSearchTerm } = useDebounceSearch({\n entities,\n initialSearchTerm: '',\n resultKeys: 'id, name, image { url }, url',\n queryHook: runHook\n });\n\n useEffect(() => {\n const handleRouteChange = () => {\n setSearchTerm('');\n setShowResults(false);\n if (collapsedSearch) setCollapsed(true);\n };\n router.events.on('routeChangeStart', handleRouteChange);\n return () => {\n router.events.off('routeChangeStart', handleRouteChange);\n };\n }, [collapsedSearch, router.events, setSearchTerm]);\n\n useEffect(() => {\n const handleClickOutside = event => {\n if (searchContentRef.current && !searchContentRef.current.contains(event.target)) {\n setShowResults(false);\n setSearchTerm('');\n if (\n collapsedSearch &&\n document.activeElement !== searchContentRef.current.querySelector('input')\n ) {\n setCollapsed(true);\n }\n }\n };\n\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n }, [collapsedSearch, setSearchTerm]);\n\n const responsiveClasses = isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop;\n\n const handleNavigation = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyDown = e => {\n if (e.key === 'Enter' && e.target.value !== '') {\n if (navigateToSingleSearchResult && results && results.length === 1 && results[0].url) {\n router.push(results[0].url);\n } else {\n const searchUrlWithoutHash = (searchUrl || '/search').split('#')[0];\n router.push(`${searchUrlWithoutHash}?search_term=${e.target.value}`);\n }\n }\n };\n\n const handleIconClick = () => {\n const isCloseIcon = collapsedSearch ? !collapsed : debouncedSearchTerm;\n\n if (collapsedSearch) setCollapsed(!collapsed);\n\n if (isCloseIcon) {\n setSearchTerm('');\n setShowResults(false);\n } else {\n setShowResults(true);\n }\n };\n\n const className = ['search-content', modifier, responsiveClasses].filter(Boolean).join(' ');\n const searchModifier = collapsed ? 'search-content--collapse' : 'search-content--expanded';\n\n return (\n <div className={className} ref={searchContentRef}>\n <div className={`${searchModifier}__wrapper`}>\n <label className={`${searchModifier}__label`}>\n <span className={`${searchModifier}__icon_wrapper`}>\n <SearchContentToggleIcon\n searchTerm={debouncedSearchTerm}\n onClick={handleIconClick}\n useCloseIcon={collapsedSearch ? !collapsed : debouncedSearchTerm}\n />\n </span>\n {!collapsed && (\n <input\n className={`${searchModifier}__input`}\n type=\"text\"\n name=\"search\"\n placeholder={placeholder}\n value={searchTerm}\n onChange={e => {\n setSearchTerm(e.target.value);\n setShowResults(true);\n }}\n onKeyDown={handleKeyDown}\n onFocus={() => {\n setShowResults(true);\n if (collapsedSearch) setCollapsed(false);\n }}\n data-testid=\"search-content-input\"\n />\n )}\n </label>\n </div>\n {showResults && (\n <SearchContentResults\n results={results}\n debouncedSearchTerm={debouncedSearchTerm}\n handleClick={handleNavigation}\n />\n )}\n </div>\n );\n};\n\nSearchContent.propTypes = {\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n placeholder: PropTypes.string,\n isMobile: PropTypes.bool,\n entities: PropTypes.array.isRequired,\n modifier: PropTypes.string,\n collapsedSearch: PropTypes.bool,\n searchUrl: PropTypes.string,\n navigateToSingleSearchResult: PropTypes.bool\n};\n\nSearchContent.defaultProps = {\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n placeholder: '',\n isMobile: false,\n modifier: '',\n collapsedSearch: false,\n searchUrl: '',\n navigateToSingleSearchResult: false\n};\n\nexport default SearchContent;\n"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,8 @@ const SearchContentResults = ({
9
9
  if (!debouncedSearchTerm) return null;
10
10
  const hasResults = results.length > 0;
11
11
  return /*#__PURE__*/React.createElement("div", {
12
- className: "search-content--results__wrapper"
12
+ className: "search-content--results__wrapper",
13
+ "data-testid": "search-content-results"
13
14
  }, /*#__PURE__*/React.createElement("div", {
14
15
  className: "search-content--results__wrapper--message"
15
16
  }, /*#__PURE__*/React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"SearchContentResults.js","names":["React","BlazeLink","SearchContentItems","SearchContentResults","results","debouncedSearchTerm","onClick","hasResults","length","createElement","className","href"],"sources":["../../../src/components/SearchContent/SearchContentResults.js"],"sourcesContent":["import React from 'react';\nimport BlazeLink from '../BlazeLink';\nimport SearchContentItems from './SearchContentItems';\n\nconst SearchContentResults = ({ results, debouncedSearchTerm, onClick }) => {\n if (!debouncedSearchTerm) return null;\n const hasResults = results.length > 0;\n return (\n <div className=\"search-content--results__wrapper\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"search-content--results__content\">\n {hasResults ? (\n <SearchContentItems results={results} onClick={onClick} />\n ) : (\n <div className=\"search-content--results__message\">\n <BlazeLink href={`/search?search_term=${debouncedSearchTerm}`}>\n {`Search all results for: ${debouncedSearchTerm}`}\n </BlazeLink>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default SearchContentResults;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,cAAc;AACpC,OAAOC,kBAAkB,MAAM,sBAAsB;AAErD,MAAMC,oBAAoB,GAAGA,CAAC;EAAEC,OAAO;EAAEC,mBAAmB;EAAEC;AAAQ,CAAC,KAAK;EAC1E,IAAI,CAACD,mBAAmB,EAAE,OAAO,IAAI;EACrC,MAAME,UAAU,GAAGH,OAAO,CAACI,MAAM,GAAG,CAAC;EACrC,oBACER,KAAA,CAAAS,aAAA;IAAKC,SAAS,EAAC;EAAkC,gBAC/CV,KAAA,CAAAS,aAAA;IAAKC,SAAS,EAAC;EAA2C,gBACxDV,KAAA,CAAAS,aAAA;IAAKC,SAAS,EAAC;EAAkC,GAC9CH,UAAU,gBACTP,KAAA,CAAAS,aAAA,CAACP,kBAAkB;IAACE,OAAO,EAAEA,OAAQ;IAACE,OAAO,EAAEA;EAAQ,CAAE,CAAC,gBAE1DN,KAAA,CAAAS,aAAA;IAAKC,SAAS,EAAC;EAAkC,gBAC/CV,KAAA,CAAAS,aAAA,CAACR,SAAS;IAACU,IAAI,EAAE,uBAAuBN,mBAAmB;EAAG,GAC3D,2BAA2BA,mBAAmB,EACtC,CACR,CAEJ,CACF,CACF,CAAC;AAEV,CAAC;AAED,eAAeF,oBAAoB","ignoreList":[]}
1
+ {"version":3,"file":"SearchContentResults.js","names":["React","BlazeLink","SearchContentItems","SearchContentResults","results","debouncedSearchTerm","onClick","hasResults","length","createElement","className","href"],"sources":["../../../src/components/SearchContent/SearchContentResults.js"],"sourcesContent":["import React from 'react';\nimport BlazeLink from '../BlazeLink';\nimport SearchContentItems from './SearchContentItems';\n\nconst SearchContentResults = ({ results, debouncedSearchTerm, onClick }) => {\n if (!debouncedSearchTerm) return null;\n const hasResults = results.length > 0;\n return (\n <div className=\"search-content--results__wrapper\" data-testid=\"search-content-results\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"search-content--results__content\">\n {hasResults ? (\n <SearchContentItems results={results} onClick={onClick} />\n ) : (\n <div className=\"search-content--results__message\">\n <BlazeLink href={`/search?search_term=${debouncedSearchTerm}`}>\n {`Search all results for: ${debouncedSearchTerm}`}\n </BlazeLink>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default SearchContentResults;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,cAAc;AACpC,OAAOC,kBAAkB,MAAM,sBAAsB;AAErD,MAAMC,oBAAoB,GAAGA,CAAC;EAAEC,OAAO;EAAEC,mBAAmB;EAAEC;AAAQ,CAAC,KAAK;EAC1E,IAAI,CAACD,mBAAmB,EAAE,OAAO,IAAI;EACrC,MAAME,UAAU,GAAGH,OAAO,CAACI,MAAM,GAAG,CAAC;EACrC,oBACER,KAAA,CAAAS,aAAA;IAAKC,SAAS,EAAC,kCAAkC;IAAC,eAAY;EAAwB,gBACpFV,KAAA,CAAAS,aAAA;IAAKC,SAAS,EAAC;EAA2C,gBACxDV,KAAA,CAAAS,aAAA;IAAKC,SAAS,EAAC;EAAkC,GAC9CH,UAAU,gBACTP,KAAA,CAAAS,aAAA,CAACP,kBAAkB;IAACE,OAAO,EAAEA,OAAQ;IAACE,OAAO,EAAEA;EAAQ,CAAE,CAAC,gBAE1DN,KAAA,CAAAS,aAAA;IAAKC,SAAS,EAAC;EAAkC,gBAC/CV,KAAA,CAAAS,aAAA,CAACR,SAAS;IAACU,IAAI,EAAE,uBAAuBN,mBAAmB;EAAG,GAC3D,2BAA2BA,mBAAmB,EACtC,CACR,CAEJ,CACF,CACF,CAAC;AAEV,CAAC;AAED,eAAeF,oBAAoB","ignoreList":[]}
@@ -1,13 +1,13 @@
1
1
  import { useQuery } from '@apollo/client';
2
2
  import { generateSingleItemQuery } from '../application/query';
3
3
  function useGetImageIdFromRelation(id, imageRelation, actions, isUsingRelationImage, isPreview, hasImgSrc) {
4
- const skip = !id || hasImgSrc || typeof id !== 'string' || !isUsingRelationImage || !Object.keys(actions).length;
4
+ const skip = !actions || !id || hasImgSrc || typeof id !== 'string' || !isUsingRelationImage || !Object.keys(actions).length;
5
5
  const [imageRelationData = ''] = imageRelation;
6
6
  const [relationName = '', relationProp = ''] = imageRelationData.split('.');
7
7
  const {
8
8
  getPublished,
9
9
  get
10
- } = actions;
10
+ } = actions || {};
11
11
  const getAction = isPreview ? get : getPublished || get;
12
12
  const props = imageRelationData ? `${relationName} { ${relationProp} }` : 'id';
13
13
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"use-get-image-id-from-relation.js","names":["useQuery","generateSingleItemQuery","useGetImageIdFromRelation","id","imageRelation","actions","isUsingRelationImage","isPreview","hasImgSrc","skip","Object","keys","length","imageRelationData","relationName","relationProp","split","getPublished","get","getAction","props","data","loading","error","variables"],"sources":["../../src/hooks/use-get-image-id-from-relation.js"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport { generateSingleItemQuery } from '../application/query';\n\nfunction useGetImageIdFromRelation(\n id,\n imageRelation,\n actions,\n isUsingRelationImage,\n isPreview,\n hasImgSrc\n) {\n const skip =\n !id ||\n hasImgSrc ||\n typeof id !== 'string' ||\n !isUsingRelationImage ||\n !Object.keys(actions).length;\n\n const [imageRelationData = ''] = imageRelation;\n const [relationName = '', relationProp = ''] = imageRelationData.split('.');\n const { getPublished, get } = actions;\n const getAction = isPreview ? get : getPublished || get;\n\n const props = imageRelationData ? `${relationName} { ${relationProp} }` : 'id';\n const {\n data = {},\n loading,\n error\n } = useQuery(generateSingleItemQuery(getAction, props), {\n variables: { id },\n skip\n });\n return { data, loading, error };\n}\n\nexport default useGetImageIdFromRelation;\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,uBAAuB,QAAQ,sBAAsB;AAE9D,SAASC,yBAAyBA,CAChCC,EAAE,EACFC,aAAa,EACbC,OAAO,EACPC,oBAAoB,EACpBC,SAAS,EACTC,SAAS,EACT;EACA,MAAMC,IAAI,GACR,CAACN,EAAE,IACHK,SAAS,IACT,OAAOL,EAAE,KAAK,QAAQ,IACtB,CAACG,oBAAoB,IACrB,CAACI,MAAM,CAACC,IAAI,CAACN,OAAO,CAAC,CAACO,MAAM;EAE9B,MAAM,CAACC,iBAAiB,GAAG,EAAE,CAAC,GAAGT,aAAa;EAC9C,MAAM,CAACU,YAAY,GAAG,EAAE,EAAEC,YAAY,GAAG,EAAE,CAAC,GAAGF,iBAAiB,CAACG,KAAK,CAAC,GAAG,CAAC;EAC3E,MAAM;IAAEC,YAAY;IAAEC;EAAI,CAAC,GAAGb,OAAO;EACrC,MAAMc,SAAS,GAAGZ,SAAS,GAAGW,GAAG,GAAGD,YAAY,IAAIC,GAAG;EAEvD,MAAME,KAAK,GAAGP,iBAAiB,GAAG,GAAGC,YAAY,MAAMC,YAAY,IAAI,GAAG,IAAI;EAC9E,MAAM;IACJM,IAAI,GAAG,CAAC,CAAC;IACTC,OAAO;IACPC;EACF,CAAC,GAAGvB,QAAQ,CAACC,uBAAuB,CAACkB,SAAS,EAAEC,KAAK,CAAC,EAAE;IACtDI,SAAS,EAAE;MAAErB;IAAG,CAAC;IACjBM;EACF,CAAC,CAAC;EACF,OAAO;IAAEY,IAAI;IAAEC,OAAO;IAAEC;EAAM,CAAC;AACjC;AAEA,eAAerB,yBAAyB","ignoreList":[]}
1
+ {"version":3,"file":"use-get-image-id-from-relation.js","names":["useQuery","generateSingleItemQuery","useGetImageIdFromRelation","id","imageRelation","actions","isUsingRelationImage","isPreview","hasImgSrc","skip","Object","keys","length","imageRelationData","relationName","relationProp","split","getPublished","get","getAction","props","data","loading","error","variables"],"sources":["../../src/hooks/use-get-image-id-from-relation.js"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport { generateSingleItemQuery } from '../application/query';\n\nfunction useGetImageIdFromRelation(\n id,\n imageRelation,\n actions,\n isUsingRelationImage,\n isPreview,\n hasImgSrc\n) {\n const skip =\n !actions ||\n !id ||\n hasImgSrc ||\n typeof id !== 'string' ||\n !isUsingRelationImage ||\n !Object.keys(actions).length;\n\n const [imageRelationData = ''] = imageRelation;\n const [relationName = '', relationProp = ''] = imageRelationData.split('.');\n const { getPublished, get } = actions || {};\n const getAction = isPreview ? get : getPublished || get;\n\n const props = imageRelationData ? `${relationName} { ${relationProp} }` : 'id';\n const {\n data = {},\n loading,\n error\n } = useQuery(generateSingleItemQuery(getAction, props), {\n variables: { id },\n skip\n });\n return { data, loading, error };\n}\n\nexport default useGetImageIdFromRelation;\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,uBAAuB,QAAQ,sBAAsB;AAE9D,SAASC,yBAAyBA,CAChCC,EAAE,EACFC,aAAa,EACbC,OAAO,EACPC,oBAAoB,EACpBC,SAAS,EACTC,SAAS,EACT;EACA,MAAMC,IAAI,GACR,CAACJ,OAAO,IACR,CAACF,EAAE,IACHK,SAAS,IACT,OAAOL,EAAE,KAAK,QAAQ,IACtB,CAACG,oBAAoB,IACrB,CAACI,MAAM,CAACC,IAAI,CAACN,OAAO,CAAC,CAACO,MAAM;EAE9B,MAAM,CAACC,iBAAiB,GAAG,EAAE,CAAC,GAAGT,aAAa;EAC9C,MAAM,CAACU,YAAY,GAAG,EAAE,EAAEC,YAAY,GAAG,EAAE,CAAC,GAAGF,iBAAiB,CAACG,KAAK,CAAC,GAAG,CAAC;EAC3E,MAAM;IAAEC,YAAY;IAAEC;EAAI,CAAC,GAAGb,OAAO,IAAI,CAAC,CAAC;EAC3C,MAAMc,SAAS,GAAGZ,SAAS,GAAGW,GAAG,GAAGD,YAAY,IAAIC,GAAG;EAEvD,MAAME,KAAK,GAAGP,iBAAiB,GAAG,GAAGC,YAAY,MAAMC,YAAY,IAAI,GAAG,IAAI;EAC9E,MAAM;IACJM,IAAI,GAAG,CAAC,CAAC;IACTC,OAAO;IACPC;EACF,CAAC,GAAGvB,QAAQ,CAACC,uBAAuB,CAACkB,SAAS,EAAEC,KAAK,CAAC,EAAE;IACtDI,SAAS,EAAE;MAAErB;IAAG,CAAC;IACjBM;EACF,CAAC,CAAC;EACF,OAAO;IAAEY,IAAI;IAAEC,OAAO;IAAEC;EAAM,CAAC;AACjC;AAEA,eAAerB,yBAAyB","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/react-page-builder",
3
- "version": "0.146.0-node18-tooltips.32",
3
+ "version": "0.146.0-node18-tooltips.33",
4
4
  "description": "Blaze react page builder",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -32,7 +32,7 @@
32
32
  "@blaze-cms/core-errors-ui": "0.146.0-node18-tooltips.0",
33
33
  "@blaze-cms/image-cdn-react": "0.3.0-alpha.7",
34
34
  "@blaze-cms/nextjs-components": "0.146.0-node18-tooltips.32",
35
- "@blaze-cms/plugin-search-ui": "0.146.0-node18-tooltips.32",
35
+ "@blaze-cms/plugin-search-ui": "0.146.0-node18-tooltips.33",
36
36
  "@blaze-cms/setup-ui": "0.146.0-node18-tooltips.0",
37
37
  "@blaze-cms/utils": "0.146.0-node18-tooltips.32",
38
38
  "@blaze-cms/utils-handlebars": "0.146.0-node18-tooltips.32",
@@ -92,5 +92,5 @@
92
92
  "lib/*",
93
93
  "lib-es/*"
94
94
  ],
95
- "gitHead": "1955dabbe3de0e3617e06d605753571807161240"
95
+ "gitHead": "716b7ae2c9ac96e4515eaf2d64f9c85f6d0458d1"
96
96
  }
@@ -1,21 +1,53 @@
1
- import React from 'react';
1
+ import React, { useContext } from 'react';
2
2
  import PropTypes from 'prop-types';
3
+ import { MainContext } from '@blaze-cms/nextjs-components';
4
+ import { useGetImageIdFromRelation, useGetSingleEntitySchema } from '../../hooks';
3
5
  import CarouselImage from './CarouselImage';
4
6
  import CarouselRender from './CarouselRender';
5
7
  import { useCarouselNavigation } from './hooks/useCarouselNavigation';
6
- import { getDisplayCountData } from '../../helpers';
8
+ import { getDisplayCountData, getImageIds } from '../../helpers';
7
9
 
8
10
  const Carousel = props => {
9
- const { caption, imageIds, isCaptionDisplayed, VariantComponent, ...otherProps } = props;
10
-
11
+ const {
12
+ caption,
13
+ imageIds,
14
+ isCaptionDisplayed,
15
+ VariantComponent,
16
+ imagesProperty,
17
+ entity: entitySetting,
18
+ parent: { itemId, itemEntity },
19
+ ...otherProps
20
+ } = props;
21
+ const { isPreview } = useContext(MainContext);
11
22
  const navigationProps = useCarouselNavigation(props);
12
23
 
13
- if (!imageIds || !imageIds.length) return null;
24
+ const entity = imagesProperty ? entitySetting || itemEntity : null;
25
+ const skipSingleEntitySchema = !entity;
26
+
27
+ const { data: { getEntitySchema: { actions } = {} } = {} } = useGetSingleEntitySchema(
28
+ entity,
29
+ skipSingleEntitySchema
30
+ );
31
+
32
+ const { data: recordData, loading: recordDataLoading } = useGetImageIdFromRelation(
33
+ itemId,
34
+ imagesProperty,
35
+ actions,
36
+ true,
37
+ isPreview,
38
+ false
39
+ );
40
+
41
+ const updatedImageIds = recordDataLoading
42
+ ? []
43
+ : [...getImageIds(imagesProperty, recordData, null), ...imageIds];
44
+
45
+ if (!updatedImageIds || !updatedImageIds.length) return null;
14
46
  const shouldDisplayCaption = isCaptionDisplayed && caption;
15
47
 
16
48
  const { shouldDisplayCount, countMessage } = getDisplayCountData(
17
49
  navigationProps.showCount,
18
- imageIds
50
+ updatedImageIds
19
51
  );
20
52
 
21
53
  const ComponentToRender = VariantComponent || CarouselRender;
@@ -23,7 +55,7 @@ const Carousel = props => {
23
55
  return (
24
56
  <ComponentToRender
25
57
  caption={caption}
26
- imageIds={imageIds}
58
+ imageIds={updatedImageIds}
27
59
  CarouselImage={CarouselImage}
28
60
  shouldDisplayCaption={shouldDisplayCaption}
29
61
  shouldDisplayCount={shouldDisplayCount}
@@ -36,16 +68,21 @@ const Carousel = props => {
36
68
 
37
69
  Carousel.propTypes = {
38
70
  caption: PropTypes.string,
71
+ entity: PropTypes.string,
39
72
  imageIds: PropTypes.array,
73
+ imagesProperty: PropTypes.array,
40
74
  isCaptionDisplayed: PropTypes.bool,
41
- VariantComponent: PropTypes.func
75
+ VariantComponent: PropTypes.func,
76
+ parent: PropTypes.object.isRequired
42
77
  };
43
78
 
44
79
  Carousel.defaultProps = {
45
80
  VariantComponent: null,
46
81
  caption: '',
47
82
  imageIds: [],
48
- isCaptionDisplayed: false
83
+ imagesProperty: [],
84
+ isCaptionDisplayed: false,
85
+ entity: null
49
86
  };
50
87
 
51
88
  export default Carousel;
@@ -23,10 +23,12 @@ const CarouselImage = ({ imageId, enableLightbox, toggleModal, handleSelectedIma
23
23
  handleSelectedImage(imageId);
24
24
  };
25
25
 
26
+ if (!loading && !imageUrl) return null;
27
+
26
28
  return (
27
29
  <div className="carousel__slide">
28
30
  {loading ? (
29
- <div />
31
+ <span />
30
32
  ) : (
31
33
  <LazyImage
32
34
  src={imageUrl}
@@ -121,9 +121,15 @@ const SearchContent = props => {
121
121
  name="search"
122
122
  placeholder={placeholder}
123
123
  value={searchTerm}
124
- onChange={e => setSearchTerm(e.target.value)}
124
+ onChange={e => {
125
+ setSearchTerm(e.target.value);
126
+ setShowResults(true);
127
+ }}
125
128
  onKeyDown={handleKeyDown}
126
- onFocus={() => setShowResults(true)}
129
+ onFocus={() => {
130
+ setShowResults(true);
131
+ if (collapsedSearch) setCollapsed(false);
132
+ }}
127
133
  data-testid="search-content-input"
128
134
  />
129
135
  )}
@@ -6,7 +6,7 @@ const SearchContentResults = ({ results, debouncedSearchTerm, onClick }) => {
6
6
  if (!debouncedSearchTerm) return null;
7
7
  const hasResults = results.length > 0;
8
8
  return (
9
- <div className="search-content--results__wrapper">
9
+ <div className="search-content--results__wrapper" data-testid="search-content-results">
10
10
  <div className="search-content--results__wrapper--message">
11
11
  <div className="search-content--results__content">
12
12
  {hasResults ? (
@@ -10,6 +10,7 @@ function useGetImageIdFromRelation(
10
10
  hasImgSrc
11
11
  ) {
12
12
  const skip =
13
+ !actions ||
13
14
  !id ||
14
15
  hasImgSrc ||
15
16
  typeof id !== 'string' ||
@@ -18,7 +19,7 @@ function useGetImageIdFromRelation(
18
19
 
19
20
  const [imageRelationData = ''] = imageRelation;
20
21
  const [relationName = '', relationProp = ''] = imageRelationData.split('.');
21
- const { getPublished, get } = actions;
22
+ const { getPublished, get } = actions || {};
22
23
  const getAction = isPreview ? get : getPublished || get;
23
24
 
24
25
  const props = imageRelationData ? `${relationName} { ${relationProp} }` : 'id';
@@ -4,28 +4,35 @@
4
4
  import React from 'react';
5
5
  import '@testing-library/jest-dom/extend-expect';
6
6
  import { MockedProvider } from '@apollo/client/testing';
7
- import { render, screen, waitFor } from '@testing-library/react';
7
+ import { render, screen, act, waitFor } from '@testing-library/react';
8
+ import { MockedRoot } from '@blaze-cms/tools/test-helpers/test-functions';
8
9
  import { getFileById } from '../../../../../src/application/query';
9
10
  import Carousel from '../../../../../src/components/Carousel';
11
+ import { MOCK_RELATION } from '../Image/mocks';
10
12
 
11
13
  const imageId = 'test-id';
12
- const getMockedProps = overrides => ({
14
+ const getMockedProps = (overrides = {}) => ({
13
15
  imageIds: [imageId],
14
16
  enableLightbox: true,
15
17
  imageId,
16
18
  toggleModal: jest.fn(),
17
19
  handleSelectedImage: jest.fn(),
18
20
  displayCount: true,
21
+ entity: 'page',
22
+ imagesProperty: ['publishedPage.otherImageIds'],
23
+ parent: {
24
+ itemId: 'parentId',
25
+ getAction: 'getPublishedPage',
26
+ itemEntity: 'page'
27
+ },
19
28
  ...overrides
20
29
  });
21
30
 
22
- const mock = [
31
+ const mocks = [
23
32
  {
24
33
  request: {
25
34
  query: getFileById,
26
- variables: {
27
- id: imageId
28
- }
35
+ variables: { id: imageId }
29
36
  },
30
37
  result: {
31
38
  data: {
@@ -42,73 +49,76 @@ const mock = [
42
49
  }
43
50
  ];
44
51
 
45
- const MockedVariantComponent = () => <div>Variation component</div>;
46
-
47
- const setup = props => {
48
- const mockComponent = (
49
- <MockedProvider mocks={mock}>
52
+ const setup = props =>
53
+ render(
54
+ <MockedProvider mocks={mocks}>
50
55
  <Carousel {...props} />
51
56
  </MockedProvider>
52
57
  );
53
58
 
54
- return render(mockComponent);
59
+ const setupWithRoot = async (props, mockOverrides) => {
60
+ const component = (
61
+ <MockedRoot mocks={mockOverrides}>
62
+ <Carousel {...props} />
63
+ </MockedRoot>
64
+ );
65
+ let renderResults;
66
+ await act(async () => {
67
+ renderResults = render(component);
68
+ });
69
+ return renderResults;
55
70
  };
56
71
 
57
72
  describe('Carousel component', () => {
58
73
  it('should render loading state initially', async () => {
59
- const { container } = await setup(getMockedProps());
60
-
74
+ const { container } = setup(getMockedProps());
61
75
  expect(container.innerHTML).toContain('carousel');
62
76
  });
63
77
 
64
78
  it('should render carousel and match snapshot', async () => {
65
- const { asFragment } = await setup(getMockedProps());
66
-
67
- await waitFor(() => expect(asFragment()).toBeDefined());
68
-
79
+ const { asFragment } = setup(getMockedProps());
69
80
  await waitFor(() => expect(asFragment()).toMatchSnapshot());
70
81
  });
71
82
 
72
83
  it('should render priority images and match snapshot', async () => {
73
- const { asFragment, getAllByRole } = await setup(getMockedProps({ priorityLimit: 1 }));
74
-
75
- await waitFor(() => expect(asFragment()).toBeDefined());
76
-
84
+ const { asFragment, getAllByRole } = setup(getMockedProps({ priorityLimit: 1 }));
77
85
  await waitFor(() => expect(asFragment()).toMatchSnapshot());
78
- expect(getAllByRole('button').length).toEqual(3);
86
+ expect(getAllByRole('button')).toHaveLength(3);
79
87
  });
80
88
 
81
89
  it('should return null if there are no imageIds', () => {
82
- const mockedProps = getMockedProps({ imageIds: [] });
83
- const { container } = setup(mockedProps);
84
-
90
+ const { container } = setup(getMockedProps({ imageIds: [] }));
85
91
  expect(container.innerHTML).toBe('');
86
92
  });
87
93
 
94
+ it('should render image fetching data from relation', async () => {
95
+ const { asFragment, container } = await setupWithRoot(getMockedProps({ imageIds: [] }), [
96
+ ...MOCK_RELATION,
97
+ ...mocks
98
+ ]);
99
+ await waitFor(() => expect(container.childNodes.length).toBeGreaterThan(1));
100
+ expect(asFragment()).toMatchSnapshot();
101
+ });
102
+
88
103
  it('should display caption if shouldDisplayCaption is true', () => {
89
104
  const caption = 'caption test';
90
- const mockedProps = getMockedProps({ isCaptionDisplayed: true, caption });
91
-
92
- setup(mockedProps);
105
+ setup(getMockedProps({ isCaptionDisplayed: true, caption }));
93
106
  expect(screen.getByText(caption)).toBeInTheDocument();
94
107
  });
95
108
 
96
109
  it('should render VariantComponent if it is set', () => {
97
- const mockedProps = getMockedProps({ VariantComponent: MockedVariantComponent });
110
+ const mockedProps = getMockedProps({ VariantComponent: () => <div>Variation component</div> });
98
111
  const { container } = setup(mockedProps);
99
-
100
112
  expect(container.innerHTML).toBe('<div>Variation component</div>');
101
113
  });
102
114
 
103
115
  it('should display image count if displayCount is true', () => {
104
- const mockedProps = getMockedProps({ imageIds: ['id1', 'id2', 'id3'] });
105
- setup(mockedProps);
116
+ setup(getMockedProps({ imageIds: ['id1', 'id2', 'id3'] }));
106
117
  expect(screen.getByTestId('count')).toHaveTextContent('3 images');
107
118
  });
108
119
 
109
120
  it('should not display image count if displayCount is false', () => {
110
- const mockedProps = getMockedProps({ displayCount: false });
111
- setup(mockedProps);
121
+ setup(getMockedProps({ displayCount: false }));
112
122
  expect(screen.queryByTestId('count')).toBeNull();
113
123
  });
114
124
  });
@@ -43,6 +43,54 @@ exports[`Carousel component should render carousel and match snapshot 1`] = `
43
43
  </DocumentFragment>
44
44
  `;
45
45
 
46
+ exports[`Carousel component should render image fetching data from relation 1`] = `
47
+ <DocumentFragment>
48
+ <div
49
+ class="carousel"
50
+ >
51
+ <div>
52
+ <div
53
+ aria-label="Previous Slide"
54
+ class="carousel__button carousel__button--previous"
55
+ role="button"
56
+ >
57
+ <div
58
+ class="arrow arrow--left"
59
+ />
60
+ </div>
61
+ <div
62
+ class="carousel__list"
63
+ >
64
+ <div
65
+ class="carousel__slide"
66
+ >
67
+ <span />
68
+ </div>
69
+ <div
70
+ class="carousel__slide"
71
+ >
72
+ <span />
73
+ </div>
74
+ </div>
75
+ <div
76
+ aria-label="Next Slide"
77
+ class="carousel__button carousel__button--next"
78
+ role="button"
79
+ >
80
+ <p
81
+ data-testid="count"
82
+ >
83
+ 2 images
84
+ </p>
85
+ <div
86
+ class="arrow arrow--right"
87
+ />
88
+ </div>
89
+ </div>
90
+ </div>
91
+ </DocumentFragment>
92
+ `;
93
+
46
94
  exports[`Carousel component should render priority images and match snapshot 1`] = `
47
95
  <DocumentFragment>
48
96
  <div
@@ -64,14 +112,7 @@ exports[`Carousel component should render priority images and match snapshot 1`]
64
112
  <div
65
113
  class="carousel__slide"
66
114
  >
67
- <span>
68
- <img
69
- alt="Carousel image"
70
- aria-label="View Image"
71
- role="button"
72
- src="test-url"
73
- />
74
- </span>
115
+ <span />
75
116
  </div>
76
117
  </div>
77
118
  <div
@@ -12,8 +12,16 @@ jest.mock('@apollo/client', () => ({
12
12
  useQuery: jest.fn(() => ({ data: {}, loading: false, error: null }))
13
13
  }));
14
14
 
15
+ const mockPush = jest.fn();
16
+ const mockOn = jest.fn();
17
+ const mockOff = jest.fn();
18
+
15
19
  jest.mock('next/router', () => ({
16
- useRouter: jest.fn(() => ({ asPath: 'test-url', events: { on: jest.fn(), off: jest.fn() } }))
20
+ useRouter: jest.fn(() => ({
21
+ asPath: 'test-url',
22
+ push: mockPush,
23
+ events: { on: mockOn, off: mockOff }
24
+ }))
17
25
  }));
18
26
 
19
27
  const SEARCH_INPUT_TEST_ID = 'search-content-input';
@@ -54,4 +62,27 @@ describe('SearchContent', () => {
54
62
  fireEvent.click(closeIcon);
55
63
  await waitFor(() => expect(queryByTestId(SEARCH_INPUT_TEST_ID)).toBeNull());
56
64
  });
65
+
66
+ it('should trigger autosuggest again after navigation and typing', async () => {
67
+ const { getByTestId, queryByTestId } = render(
68
+ <MockedProvider mocks={[]} addTypename={false}>
69
+ <SearchContent entities={entities} />
70
+ </MockedProvider>
71
+ );
72
+
73
+ const input = getByTestId(SEARCH_INPUT_TEST_ID);
74
+
75
+ fireEvent.change(input, { target: { value: 'novartis' } });
76
+
77
+ await waitFor(() => expect(queryByTestId('search-content-results')).toBeTruthy());
78
+
79
+ fireEvent.keyDown(input, { key: 'Enter', code: 'Enter' });
80
+
81
+ const routeChangeHandler = mockOn.mock.calls[0][1];
82
+ routeChangeHandler();
83
+
84
+ fireEvent.change(input, { target: { value: 'blaze' } });
85
+
86
+ await waitFor(() => expect(queryByTestId('search-content-results')).toBeTruthy());
87
+ });
57
88
  });