@blaze-cms/react-page-builder 0.146.0-node18-tooltips.32 → 0.146.0-node18-core-styles-tooltips.41

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 (65) hide show
  1. package/CHANGELOG.md +110 -32
  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/Menu/Menu.js +4 -1
  7. package/lib/components/Menu/Menu.js.map +1 -1
  8. package/lib/components/Menu/MenuContext.js +2 -1
  9. package/lib/components/Menu/MenuContext.js.map +1 -1
  10. package/lib/components/MenuItem/MenuItemRender.js +27 -12
  11. package/lib/components/MenuItem/MenuItemRender.js.map +1 -1
  12. package/lib/components/MenuItem/helpers/has-active-child.js +19 -0
  13. package/lib/components/MenuItem/helpers/has-active-child.js.map +1 -0
  14. package/lib/components/MenuItem/helpers/index.js +14 -0
  15. package/lib/components/MenuItem/helpers/index.js.map +1 -1
  16. package/lib/components/MenuItem/helpers/isUrlPathMatch.js +18 -0
  17. package/lib/components/MenuItem/helpers/isUrlPathMatch.js.map +1 -0
  18. package/lib/components/SearchContent/SearchContent.js +4 -2
  19. package/lib/components/SearchContent/SearchContent.js.map +1 -1
  20. package/lib/components/SearchContent/SearchContentResults.js +2 -1
  21. package/lib/components/SearchContent/SearchContentResults.js.map +1 -1
  22. package/lib/hooks/use-get-image-id-from-relation.js +4 -3
  23. package/lib/hooks/use-get-image-id-from-relation.js.map +1 -1
  24. package/lib-es/components/Carousel/Carousel.js +39 -9
  25. package/lib-es/components/Carousel/Carousel.js.map +1 -1
  26. package/lib-es/components/Carousel/CarouselImage/CarouselImage.js +2 -1
  27. package/lib-es/components/Carousel/CarouselImage/CarouselImage.js.map +1 -1
  28. package/lib-es/components/Menu/Menu.js +4 -1
  29. package/lib-es/components/Menu/Menu.js.map +1 -1
  30. package/lib-es/components/Menu/MenuContext.js +2 -1
  31. package/lib-es/components/Menu/MenuContext.js.map +1 -1
  32. package/lib-es/components/MenuItem/MenuItemRender.js +25 -11
  33. package/lib-es/components/MenuItem/MenuItemRender.js.map +1 -1
  34. package/lib-es/components/MenuItem/helpers/has-active-child.js +5 -0
  35. package/lib-es/components/MenuItem/helpers/has-active-child.js.map +1 -0
  36. package/lib-es/components/MenuItem/helpers/index.js +3 -1
  37. package/lib-es/components/MenuItem/helpers/index.js.map +1 -1
  38. package/lib-es/components/MenuItem/helpers/isUrlPathMatch.js +8 -0
  39. package/lib-es/components/MenuItem/helpers/isUrlPathMatch.js.map +1 -0
  40. package/lib-es/components/SearchContent/SearchContent.js +8 -2
  41. package/lib-es/components/SearchContent/SearchContent.js.map +1 -1
  42. package/lib-es/components/SearchContent/SearchContentResults.js +2 -1
  43. package/lib-es/components/SearchContent/SearchContentResults.js.map +1 -1
  44. package/lib-es/hooks/use-get-image-id-from-relation.js +2 -2
  45. package/lib-es/hooks/use-get-image-id-from-relation.js.map +1 -1
  46. package/package.json +10 -10
  47. package/src/components/Carousel/Carousel.js +46 -9
  48. package/src/components/Carousel/CarouselImage/CarouselImage.js +3 -1
  49. package/src/components/Menu/Menu.js +3 -1
  50. package/src/components/Menu/MenuContext.js +1 -1
  51. package/src/components/MenuItem/MenuItemRender.js +40 -12
  52. package/src/components/MenuItem/helpers/has-active-child.js +10 -0
  53. package/src/components/MenuItem/helpers/index.js +3 -1
  54. package/src/components/MenuItem/helpers/isUrlPathMatch.js +10 -0
  55. package/src/components/SearchContent/SearchContent.js +8 -2
  56. package/src/components/SearchContent/SearchContentResults.js +1 -1
  57. package/src/hooks/use-get-image-id-from-relation.js +2 -1
  58. package/tests/unit/src/components/Carousel/Carousel.test.js +45 -35
  59. package/tests/unit/src/components/Carousel/__snapshots__/Carousel.test.js.snap +49 -8
  60. package/tests/unit/src/components/MenuItem/MenuItem.test.js +5 -0
  61. package/tests/unit/src/components/MenuItem/MenuItemRender.test.js +11 -3
  62. package/tests/unit/src/components/MenuItem/helpers/constants.js +73 -0
  63. package/tests/unit/src/components/MenuItem/helpers/has-active-child.test.js +35 -0
  64. package/tests/unit/src/components/MenuItem/helpers/is-url-path-match.test.js +53 -0
  65. package/tests/unit/src/components/SearchContent/SearchContent.test.js +32 -1
@@ -17,6 +17,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
17
17
  var _react = _interopRequireWildcard(require("react"));
18
18
  var _propTypes = _interopRequireDefault(require("prop-types"));
19
19
  var _fa = require("react-icons/fa");
20
+ var _classnames = _interopRequireDefault(require("classnames"));
20
21
  var _router = require("next/router");
21
22
  var _utilsHandlebars = require("@blaze-cms/utils-handlebars");
22
23
  var _constants = require("../../constants");
@@ -26,6 +27,8 @@ var _MenuContext = _interopRequireDefault(require("../Menu/MenuContext"));
26
27
  var _helpers2 = require("./helpers");
27
28
  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); }
28
29
  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; }
30
+ /* eslint-disable jsx-a11y/no-static-element-interactions */
31
+
29
32
  var MenuItemRender = function MenuItemRender(_ref) {
30
33
  var children = _ref.children,
31
34
  eventType = _ref.eventType,
@@ -33,12 +36,12 @@ var MenuItemRender = function MenuItemRender(_ref) {
33
36
  modifier = _ref.modifier,
34
37
  url = _ref.url,
35
38
  parent = _ref.parent;
36
- var _useState = (0, _react.useState)(false),
37
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
38
- displayChildren = _useState2[0],
39
- setDisplayChildren = _useState2[1];
39
+ var router = (0, _router.useRouter)();
40
40
  var _useContext = (0, _react.useContext)(_MenuContext["default"]),
41
- showMobileMenu = _useContext.showMobileMenu;
41
+ showMobileMenu = _useContext.showMobileMenu,
42
+ openActiveSubmenus = _useContext.openActiveSubmenus;
43
+ var isHoverEvent = eventType === _constants.HOVER;
44
+ var isClickEvent = eventType === _constants.CLICK;
42
45
  var _useStringTemplate = (0, _utilsHandlebars.useStringTemplate)(parent, [text]),
43
46
  loadingText = _useStringTemplate.loading,
44
47
  _useStringTemplate$da = (0, _slicedToArray2["default"])(_useStringTemplate.data, 1),
@@ -47,19 +50,24 @@ var MenuItemRender = function MenuItemRender(_ref) {
47
50
  loadingUrl = _useStringTemplate2.loading,
48
51
  _useStringTemplate2$d = (0, _slicedToArray2["default"])(_useStringTemplate2.data, 1),
49
52
  urlToUse = _useStringTemplate2$d[0];
50
- var router = (0, _router.useRouter)();
51
- var isHoverEvent = eventType === _constants.HOVER;
52
- var childrenDisplayClass = displayChildren ? '' : _constants.HIDDEN;
53
+ var isActive = router ? (0, _helpers2.isUrlPathMatch)(router.asPath, urlToUse) : false;
54
+ var isActiveParent = router ? (0, _helpers2.hasActiveChild)(router.asPath, children) : false;
55
+ var shouldPreOpen = openActiveSubmenus && isActiveParent && isClickEvent;
53
56
  var hasValidChildren = (0, _helpers.hasChildren)(children);
57
+ var _useState = (0, _react.useState)(shouldPreOpen),
58
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
59
+ displayChildren = _useState2[0],
60
+ setDisplayChildren = _useState2[1];
54
61
  (0, _react.useEffect)(function () {
55
- if (!showMobileMenu) setDisplayChildren(false);
56
- }, [showMobileMenu]);
62
+ if (!showMobileMenu && !shouldPreOpen) setDisplayChildren(false);
63
+ }, [children, isClickEvent, loadingUrl, openActiveSubmenus, router, shouldPreOpen, showMobileMenu]);
57
64
  (0, _react.useEffect)(function () {
58
65
  if (isHoverEvent) {
59
66
  setDisplayChildren(false);
60
67
  }
61
68
  }, [router.asPath, isHoverEvent]);
62
69
  if (loadingUrl || loadingText) return '';
70
+ var childrenDisplayClass = displayChildren ? '' : _constants.HIDDEN;
63
71
  var handleItemEvent = function handleItemEvent(_ref2) {
64
72
  var type = _ref2.type;
65
73
  if (isHoverEvent) {
@@ -76,18 +84,25 @@ var MenuItemRender = function MenuItemRender(_ref) {
76
84
  setDisplayChildren(!displayChildren);
77
85
  }
78
86
  };
87
+ var menuItemLinkClassname = (0, _classnames["default"])('menu--item--link', {
88
+ 'menu--item--link--active': isActive,
89
+ 'menu--item--link--active-parent': isActiveParent
90
+ });
79
91
  return /*#__PURE__*/_react["default"].createElement("li", {
80
92
  className: modifier,
81
93
  onMouseEnter: handleItemEvent,
82
94
  onMouseLeave: handleItemEvent
83
95
  }, /*#__PURE__*/_react["default"].createElement("div", {
84
- className: "menu--item--link",
96
+ className: menuItemLinkClassname,
85
97
  onClick: handleMobileClick,
86
98
  role: !urlToUse && hasValidChildren ? 'button' : undefined,
87
99
  tabIndex: !urlToUse && hasValidChildren ? 0 : undefined
88
100
  }, urlToUse ? /*#__PURE__*/_react["default"].createElement(_BlazeLink["default"], {
89
101
  href: urlToUse
90
- }, textToUse) : /*#__PURE__*/_react["default"].createElement("span", null, textToUse), hasValidChildren && /*#__PURE__*/_react["default"].createElement("i", {
102
+ }, textToUse) : /*#__PURE__*/_react["default"].createElement("span", {
103
+ role: "button",
104
+ onClick: handleItemEvent
105
+ }, textToUse), hasValidChildren && /*#__PURE__*/_react["default"].createElement("i", {
91
106
  role: "button",
92
107
  className: "menu--item--link--icon",
93
108
  onClick: function onClick(e) {
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemRender.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_fa","_router","_utilsHandlebars","_constants","_helpers","_BlazeLink","_MenuContext","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MenuItemRender","_ref","children","eventType","text","modifier","url","parent","_useState","useState","_useState2","_slicedToArray2","displayChildren","setDisplayChildren","_useContext","useContext","MenuContext","showMobileMenu","_useStringTemplate","useStringTemplate","loadingText","loading","_useStringTemplate$da","data","textToUse","_useStringTemplate2","injectHelperIntoTemplate","loadingUrl","_useStringTemplate2$d","urlToUse","router","useRouter","isHoverEvent","HOVER","childrenDisplayClass","HIDDEN","hasValidChildren","hasChildren","useEffect","asPath","handleItemEvent","_ref2","type","MOUSE_ENTER","MOUSE_LEAVE","handleMobileClick","createElement","className","onMouseEnter","onMouseLeave","onClick","role","undefined","tabIndex","href","stopPropagation","FaChevronUp","FaChevronDown","concat","propTypes","PropTypes","string","isRequired","object","oneOfType","arrayOf","node","defaultProps","_default","exports"],"sources":["../../../src/components/MenuItem/MenuItemRender.js"],"sourcesContent":["import React, { useState, useContext, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FaChevronDown, FaChevronUp } from 'react-icons/fa';\nimport { useRouter } from 'next/router';\nimport { useStringTemplate } from '@blaze-cms/utils-handlebars';\nimport { HOVER, MOUSE_ENTER, MOUSE_LEAVE, HIDDEN } from '../../constants';\nimport { hasChildren } from '../../helpers';\nimport BlazeLink from '../BlazeLink';\nimport MenuContext from '../Menu/MenuContext';\nimport { injectHelperIntoTemplate } from './helpers';\n\nconst MenuItemRender = ({ children, eventType, text, modifier, url, parent }) => {\n const [displayChildren, setDisplayChildren] = useState(false);\n const { showMobileMenu } = useContext(MenuContext);\n const {\n loading: loadingText,\n data: [textToUse]\n } = useStringTemplate(parent, [text]);\n const {\n loading: loadingUrl,\n data: [urlToUse]\n } = useStringTemplate(parent, [injectHelperIntoTemplate(url, 'url_encode')]);\n\n const router = useRouter();\n const isHoverEvent = eventType === HOVER;\n const childrenDisplayClass = displayChildren ? '' : HIDDEN;\n const hasValidChildren = hasChildren(children);\n\n useEffect(() => {\n if (!showMobileMenu) setDisplayChildren(false);\n }, [showMobileMenu]);\n\n useEffect(() => {\n if (isHoverEvent) {\n setDisplayChildren(false);\n }\n }, [router.asPath, isHoverEvent]);\n\n if (loadingUrl || loadingText) return '';\n\n const handleItemEvent = ({ type }) => {\n if (isHoverEvent) {\n if (type === MOUSE_ENTER) {\n setDisplayChildren(true);\n }\n if (type === MOUSE_LEAVE) {\n setDisplayChildren(false);\n }\n }\n };\n\n const handleMobileClick = () => {\n if (!urlToUse && hasValidChildren) {\n setDisplayChildren(!displayChildren);\n }\n };\n\n return (\n <li className={modifier} onMouseEnter={handleItemEvent} onMouseLeave={handleItemEvent}>\n <div\n className=\"menu--item--link\"\n onClick={handleMobileClick}\n role={!urlToUse && hasValidChildren ? 'button' : undefined}\n tabIndex={!urlToUse && hasValidChildren ? 0 : undefined}>\n {urlToUse ? <BlazeLink href={urlToUse}>{textToUse}</BlazeLink> : <span>{textToUse}</span>}\n\n {hasValidChildren && (\n <i\n role=\"button\"\n className=\"menu--item--link--icon\"\n onClick={e => {\n e.stopPropagation();\n setDisplayChildren(!displayChildren);\n }}\n tabIndex={0}>\n {displayChildren ? <FaChevronUp /> : <FaChevronDown />}\n </i>\n )}\n </div>\n\n {hasValidChildren && (\n <div className={`menu--item-children ${childrenDisplayClass}`}>{children}</div>\n )}\n </li>\n );\n};\n\nMenuItemRender.propTypes = {\n modifier: PropTypes.string,\n text: PropTypes.string,\n url: PropTypes.string,\n eventType: PropTypes.string.isRequired,\n parent: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nMenuItemRender.defaultProps = {\n url: '',\n modifier: '',\n text: '',\n children: null,\n parent: {}\n};\n\nexport default MenuItemRender;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MenuItemRender.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_fa","_classnames","_router","_utilsHandlebars","_constants","_helpers","_BlazeLink","_MenuContext","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MenuItemRender","_ref","children","eventType","text","modifier","url","parent","router","useRouter","_useContext","useContext","MenuContext","showMobileMenu","openActiveSubmenus","isHoverEvent","HOVER","isClickEvent","CLICK","_useStringTemplate","useStringTemplate","loadingText","loading","_useStringTemplate$da","_slicedToArray2","data","textToUse","_useStringTemplate2","injectHelperIntoTemplate","loadingUrl","_useStringTemplate2$d","urlToUse","isActive","isUrlPathMatch","asPath","isActiveParent","hasActiveChild","shouldPreOpen","hasValidChildren","hasChildren","_useState","useState","_useState2","displayChildren","setDisplayChildren","useEffect","childrenDisplayClass","HIDDEN","handleItemEvent","_ref2","type","MOUSE_ENTER","MOUSE_LEAVE","handleMobileClick","menuItemLinkClassname","classnames","createElement","className","onMouseEnter","onMouseLeave","onClick","role","undefined","tabIndex","href","stopPropagation","FaChevronUp","FaChevronDown","concat","propTypes","PropTypes","string","isRequired","object","oneOfType","arrayOf","node","defaultProps","_default","exports"],"sources":["../../../src/components/MenuItem/MenuItemRender.js"],"sourcesContent":["/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React, { useState, useContext, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FaChevronDown, FaChevronUp } from 'react-icons/fa';\nimport classnames from 'classnames';\nimport { useRouter } from 'next/router';\nimport { useStringTemplate } from '@blaze-cms/utils-handlebars';\nimport { HOVER, MOUSE_ENTER, MOUSE_LEAVE, HIDDEN, CLICK } from '../../constants';\nimport { hasChildren } from '../../helpers';\nimport BlazeLink from '../BlazeLink';\nimport MenuContext from '../Menu/MenuContext';\nimport { injectHelperIntoTemplate, isUrlPathMatch, hasActiveChild } from './helpers';\n\nconst MenuItemRender = ({ children, eventType, text, modifier, url, parent }) => {\n const router = useRouter();\n const { showMobileMenu, openActiveSubmenus } = useContext(MenuContext);\n\n const isHoverEvent = eventType === HOVER;\n const isClickEvent = eventType === CLICK;\n\n const {\n loading: loadingText,\n data: [textToUse]\n } = useStringTemplate(parent, [text]);\n const {\n loading: loadingUrl,\n data: [urlToUse]\n } = useStringTemplate(parent, [injectHelperIntoTemplate(url, 'url_encode')]);\n\n const isActive = router ? isUrlPathMatch(router.asPath, urlToUse) : false;\n const isActiveParent = router ? hasActiveChild(router.asPath, children) : false;\n const shouldPreOpen = openActiveSubmenus && isActiveParent && isClickEvent;\n const hasValidChildren = hasChildren(children);\n\n const [displayChildren, setDisplayChildren] = useState(shouldPreOpen);\n\n useEffect(() => {\n if (!showMobileMenu && !shouldPreOpen) setDisplayChildren(false);\n }, [\n children,\n isClickEvent,\n loadingUrl,\n openActiveSubmenus,\n router,\n shouldPreOpen,\n showMobileMenu\n ]);\n\n useEffect(() => {\n if (isHoverEvent) {\n setDisplayChildren(false);\n }\n }, [router.asPath, isHoverEvent]);\n\n if (loadingUrl || loadingText) return '';\n\n const childrenDisplayClass = displayChildren ? '' : HIDDEN;\n\n const handleItemEvent = ({ type }) => {\n if (isHoverEvent) {\n if (type === MOUSE_ENTER) {\n setDisplayChildren(true);\n }\n if (type === MOUSE_LEAVE) {\n setDisplayChildren(false);\n }\n }\n };\n\n const handleMobileClick = () => {\n if (!urlToUse && hasValidChildren) {\n setDisplayChildren(!displayChildren);\n }\n };\n\n const menuItemLinkClassname = classnames('menu--item--link', {\n 'menu--item--link--active': isActive,\n 'menu--item--link--active-parent': isActiveParent\n });\n\n return (\n <li className={modifier} onMouseEnter={handleItemEvent} onMouseLeave={handleItemEvent}>\n <div\n className={menuItemLinkClassname}\n onClick={handleMobileClick}\n role={!urlToUse && hasValidChildren ? 'button' : undefined}\n tabIndex={!urlToUse && hasValidChildren ? 0 : undefined}>\n {urlToUse ? (\n <BlazeLink href={urlToUse}>{textToUse}</BlazeLink>\n ) : (\n <span role=\"button\" onClick={handleItemEvent}>\n {textToUse}\n </span>\n )}\n {hasValidChildren && (\n <i\n role=\"button\"\n className=\"menu--item--link--icon\"\n onClick={e => {\n e.stopPropagation();\n setDisplayChildren(!displayChildren);\n }}\n tabIndex={0}>\n {displayChildren ? <FaChevronUp /> : <FaChevronDown />}\n </i>\n )}\n </div>\n\n {hasValidChildren && (\n <div className={`menu--item-children ${childrenDisplayClass}`}>{children}</div>\n )}\n </li>\n );\n};\n\nMenuItemRender.propTypes = {\n modifier: PropTypes.string,\n text: PropTypes.string,\n url: PropTypes.string,\n eventType: PropTypes.string.isRequired,\n parent: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nMenuItemRender.defaultProps = {\n url: '',\n modifier: '',\n text: '',\n children: null,\n parent: {}\n};\n\nexport default MenuItemRender;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ require("core-js/modules/es.array.find.js");
10
+ require("core-js/modules/es.object.to-string.js");
11
+ var _isUrlPathMatch = _interopRequireDefault(require("./isUrlPathMatch"));
12
+ var _helpers = require("../../../helpers");
13
+ var hasActiveChild = function hasActiveChild(path, children) {
14
+ return (0, _helpers.hasChildren)(children) && children.props.children[1][0].props.component.items.find(function (menuItem) {
15
+ return (0, _isUrlPathMatch["default"])(path, menuItem.settings.url);
16
+ });
17
+ };
18
+ var _default = exports["default"] = hasActiveChild;
19
+ //# sourceMappingURL=has-active-child.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-active-child.js","names":["_isUrlPathMatch","_interopRequireDefault","require","_helpers","hasActiveChild","path","children","hasChildren","props","component","items","find","menuItem","isUrlPathMatch","settings","url","_default","exports"],"sources":["../../../../src/components/MenuItem/helpers/has-active-child.js"],"sourcesContent":["import isUrlPathMatch from './isUrlPathMatch';\nimport { hasChildren } from '../../../helpers';\n\nconst hasActiveChild = (path, children) =>\n hasChildren(children) &&\n children.props.children[1][0].props.component.items.find(menuItem =>\n isUrlPathMatch(path, menuItem.settings.url)\n );\n\nexport default hasActiveChild;\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEA,IAAME,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,IAAI,EAAEC,QAAQ;EAAA,OACpC,IAAAC,oBAAW,EAACD,QAAQ,CAAC,IACrBA,QAAQ,CAACE,KAAK,CAACF,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACE,KAAK,CAACC,SAAS,CAACC,KAAK,CAACC,IAAI,CAAC,UAAAC,QAAQ;IAAA,OAC/D,IAAAC,0BAAc,EAACR,IAAI,EAAEO,QAAQ,CAACE,QAAQ,CAACC,GAAG,CAAC;EAAA,CAC7C,CAAC;AAAA;AAAC,IAAAC,QAAA,GAAAC,OAAA,cAEWb,cAAc","ignoreList":[]}
@@ -5,11 +5,25 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ Object.defineProperty(exports, "hasActiveChild", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _hasActiveChild["default"];
12
+ }
13
+ });
8
14
  Object.defineProperty(exports, "injectHelperIntoTemplate", {
9
15
  enumerable: true,
10
16
  get: function get() {
11
17
  return _injectHelperIntoTemplate["default"];
12
18
  }
13
19
  });
20
+ Object.defineProperty(exports, "isUrlPathMatch", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _isUrlPathMatch["default"];
24
+ }
25
+ });
14
26
  var _injectHelperIntoTemplate = _interopRequireDefault(require("./inject-helper-into-template"));
27
+ var _isUrlPathMatch = _interopRequireDefault(require("./isUrlPathMatch"));
28
+ var _hasActiveChild = _interopRequireDefault(require("./has-active-child"));
15
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_injectHelperIntoTemplate","_interopRequireDefault","require"],"sources":["../../../../src/components/MenuItem/helpers/index.js"],"sourcesContent":["import injectHelperIntoTemplate from './inject-helper-into-template';\n\nexport { injectHelperIntoTemplate };\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,yBAAA,GAAAC,sBAAA,CAAAC,OAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_injectHelperIntoTemplate","_interopRequireDefault","require","_isUrlPathMatch","_hasActiveChild"],"sources":["../../../../src/components/MenuItem/helpers/index.js"],"sourcesContent":["import injectHelperIntoTemplate from './inject-helper-into-template';\nimport isUrlPathMatch from './isUrlPathMatch';\nimport hasActiveChild from './has-active-child';\n\nexport { injectHelperIntoTemplate, isUrlPathMatch, hasActiveChild };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,yBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,eAAA,GAAAH,sBAAA,CAAAC,OAAA","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ require("core-js/modules/es.regexp.constructor.js");
9
+ require("core-js/modules/es.regexp.exec.js");
10
+ require("core-js/modules/es.regexp.to-string.js");
11
+ var isUrlPathMatch = function isUrlPathMatch(path, itemUrl) {
12
+ if (!itemUrl || !path) return false;
13
+ var reg = new RegExp(/^[^#?]+/);
14
+ var _path = reg.exec(path)[0];
15
+ return _path === itemUrl || _path === "/".concat(itemUrl);
16
+ };
17
+ var _default = exports["default"] = isUrlPathMatch;
18
+ //# sourceMappingURL=isUrlPathMatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isUrlPathMatch.js","names":["isUrlPathMatch","path","itemUrl","reg","RegExp","_path","exec","concat","_default","exports"],"sources":["../../../../src/components/MenuItem/helpers/isUrlPathMatch.js"],"sourcesContent":["const isUrlPathMatch = (path, itemUrl) => {\n if (!itemUrl || !path) return false;\n\n const reg = new RegExp(/^[^#?]+/);\n const _path = reg.exec(path)[0];\n\n return _path === itemUrl || _path === `/${itemUrl}`;\n};\n\nexport default isUrlPathMatch;\n"],"mappings":";;;;;;;;;;AAAA,IAAMA,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,IAAI,EAAEC,OAAO,EAAK;EACxC,IAAI,CAACA,OAAO,IAAI,CAACD,IAAI,EAAE,OAAO,KAAK;EAEnC,IAAME,GAAG,GAAG,IAAIC,MAAM,CAAC,SAAS,CAAC;EACjC,IAAMC,KAAK,GAAGF,GAAG,CAACG,IAAI,CAACL,IAAI,CAAC,CAAC,CAAC,CAAC;EAE/B,OAAOI,KAAK,KAAKH,OAAO,IAAIG,KAAK,SAAAE,MAAA,CAASL,OAAO,CAAE;AACrD,CAAC;AAAC,IAAAM,QAAA,GAAAC,OAAA,cAEaT,cAAc","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":[]}
@@ -10,6 +10,7 @@ import BlazeLink from '../BlazeLink';
10
10
  const Menu = ({
11
11
  children,
12
12
  collapse,
13
+ openActiveSubmenus,
13
14
  modifier,
14
15
  mobileMenuModifier,
15
16
  mobileMenuChildrenModifier,
@@ -45,7 +46,8 @@ const Menu = ({
45
46
  });
46
47
  return /*#__PURE__*/React.createElement(MenuContext.Provider, {
47
48
  value: {
48
- showMobileMenu
49
+ showMobileMenu,
50
+ openActiveSubmenus
49
51
  }
50
52
  }, /*#__PURE__*/React.createElement("div", {
51
53
  className: menuWrapperClasses
@@ -83,6 +85,7 @@ const Menu = ({
83
85
  };
84
86
  Menu.propTypes = {
85
87
  collapse: PropTypes.bool.isRequired,
88
+ openActiveSubmenus: PropTypes.bool.isRequired,
86
89
  logoOnMobile: PropTypes.bool.isRequired,
87
90
  logoOnDesktop: PropTypes.bool,
88
91
  logoOnMobileUrl: PropTypes.string,