@blaze-cms/react-page-builder 0.146.0-core-styles.10 → 0.146.0-core-styles.21

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 (31) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/lib/components/Card/Card.js +14 -9
  3. package/lib/components/Card/Card.js.map +1 -1
  4. package/lib/components/MenuItem/MenuItemRender.js +2 -1
  5. package/lib/components/MenuItem/MenuItemRender.js.map +1 -1
  6. package/lib/components/MenuItem/helpers/index.js +15 -0
  7. package/lib/components/MenuItem/helpers/index.js.map +1 -0
  8. package/lib/components/MenuItem/helpers/inject-helper-into-template.js +17 -0
  9. package/lib/components/MenuItem/helpers/inject-helper-into-template.js.map +1 -0
  10. package/lib/helpers/build-filters-query.js +1 -2
  11. package/lib/helpers/build-filters-query.js.map +1 -1
  12. package/lib-es/components/Card/Card.js +14 -9
  13. package/lib-es/components/Card/Card.js.map +1 -1
  14. package/lib-es/components/MenuItem/MenuItemRender.js +2 -1
  15. package/lib-es/components/MenuItem/MenuItemRender.js.map +1 -1
  16. package/lib-es/components/MenuItem/helpers/index.js +3 -0
  17. package/lib-es/components/MenuItem/helpers/index.js.map +1 -0
  18. package/lib-es/components/MenuItem/helpers/inject-helper-into-template.js +8 -0
  19. package/lib-es/components/MenuItem/helpers/inject-helper-into-template.js.map +1 -0
  20. package/lib-es/helpers/build-filters-query.js +1 -2
  21. package/lib-es/helpers/build-filters-query.js.map +1 -1
  22. package/package.json +3 -3
  23. package/src/components/Card/Card.js +25 -16
  24. package/src/components/MenuItem/MenuItemRender.js +2 -1
  25. package/src/components/MenuItem/helpers/index.js +3 -0
  26. package/src/components/MenuItem/helpers/inject-helper-into-template.js +11 -0
  27. package/src/helpers/build-filters-query.js +1 -2
  28. package/tests/unit/src/components/Card/Card.test.js +16 -1
  29. package/tests/unit/src/components/Card/__snapshots__/Card.test.js.snap +83 -0
  30. package/tests/unit/src/components/MenuItem/__snapshots__/MenuItem.test.js.snap +1 -1
  31. package/tests/unit/src/components/MenuItem/helpers/inject-helper-into-template.test.js +44 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,33 @@
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-core-styles.21](https://github.com/thebyte9/blaze/compare/v0.146.0-core-styles.20...v0.146.0-core-styles.21) (2024-10-18)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * apply search filters even when shouldAddFilters is false ([ac82708](https://github.com/thebyte9/blaze/commit/ac827080df3001f4643a2d7a69b8f5502646cf77))
12
+
13
+
14
+
15
+
16
+
17
+ # [0.146.0-core-styles.11](https://github.com/thebyte9/blaze/compare/v0.146.0-core-styles.10...v0.146.0-core-styles.11) (2024-10-01)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * encode dynamic menu urls ([#4497](https://github.com/thebyte9/blaze/issues/4497)) ([43695a0](https://github.com/thebyte9/blaze/commit/43695a01408a85a5cd94704d9b78f36fd3fb509f))
23
+
24
+
25
+ ### Features
26
+
27
+ * improve card click wrapper feature flag to make valid html ([#4495](https://github.com/thebyte9/blaze/issues/4495)) ([cc01f4d](https://github.com/thebyte9/blaze/commit/cc01f4dae15158c0896d48ed05cb32a64c8caa1b))
28
+
29
+
30
+
31
+
32
+
6
33
  # [0.146.0-core-styles.10](https://github.com/thebyte9/blaze/compare/v0.146.0-core-styles.9...v0.146.0-core-styles.10) (2024-09-25)
7
34
 
8
35
 
@@ -117,18 +117,23 @@ var Card = function Card(_ref) {
117
117
  if (shouldTriggerRouteChange) router.push("/Resolver", url);
118
118
  };
119
119
 
120
- // todo: remove temp env var flag once widely tested BLAZE_PB_ADD_CLICK_TO_CARDS
121
- var clickProps = url && process.env.BLAZE_PB_ADD_CLICK_TO_CARDS ? {
120
+ // todo: asses whether we make link wrapper default after wider testing with BLAZE_PB_ADD_CLICK_TO_CARDS
121
+ var useLinkWrapper = url && process.env.BLAZE_PB_ADD_CLICK_TO_CARDS;
122
+ var clickProps = useLinkWrapper ? {
122
123
  onClick: handleCardClick,
123
- role: 'button'
124
+ href: url,
125
+ ariaLabel: name
124
126
  } : {};
125
- return /*#__PURE__*/_react["default"].createElement(Wrapper, wrapperProps, /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
127
+ var CardWrapper = useLinkWrapper ? _BlazeLink["default"] : 'div';
128
+ var childLinkHref = useLinkWrapper ? undefined : url;
129
+ var ChildLinkWrapper = useLinkWrapper ? 'div' : _BlazeLink["default"];
130
+ return /*#__PURE__*/_react["default"].createElement(Wrapper, wrapperProps, /*#__PURE__*/_react["default"].createElement(CardWrapper, (0, _extends2["default"])({
126
131
  className: classNameWithModifiers
127
132
  }, clickProps), shouldDisplayThumbnail && /*#__PURE__*/_react["default"].createElement("div", {
128
133
  className: (0, _helpers.getModifiers)('card__image', modifiers)
129
- }, /*#__PURE__*/_react["default"].createElement(_BlazeLink["default"], {
134
+ }, /*#__PURE__*/_react["default"].createElement(ChildLinkWrapper, {
130
135
  gtmId: gtmId,
131
- href: url,
136
+ href: childLinkHref,
132
137
  className: "card__image-link",
133
138
  scroll: true
134
139
  }, /*#__PURE__*/_react["default"].createElement(_LazyImage["default"], {
@@ -140,7 +145,7 @@ var Card = function Card(_ref) {
140
145
  className: contentWrapperModifier
141
146
  }, /*#__PURE__*/_react["default"].createElement("div", {
142
147
  className: (0, _helpers.getModifiers)('card__content', modifiers)
143
- }, displayCategory && (publishedListingPage ? /*#__PURE__*/_react["default"].createElement(_BlazeLink["default"], {
148
+ }, displayCategory && (publishedListingPage ? /*#__PURE__*/_react["default"].createElement(ChildLinkWrapper, {
144
149
  gtmId: gtmId,
145
150
  href: publishedListingPage,
146
151
  className: "badge badge--label",
@@ -149,10 +154,10 @@ var Card = function Card(_ref) {
149
154
  className: "badge badge--label"
150
155
  }, label)), displayTitle && /*#__PURE__*/_react["default"].createElement("div", {
151
156
  className: titleWrapperModifier
152
- }, /*#__PURE__*/_react["default"].createElement(_BlazeLink["default"], {
157
+ }, /*#__PURE__*/_react["default"].createElement(ChildLinkWrapper, {
153
158
  title: linkTitle,
154
159
  gtmId: gtmId,
155
- href: url,
160
+ href: childLinkHref,
156
161
  scroll: true
157
162
  }, headline)), !!pageBuilderComponents.length && /*#__PURE__*/_react["default"].createElement("div", {
158
163
  className: "card__item card__item--full",
@@ -1 +1 @@
1
- {"version":3,"file":"Card.js","names":["_react","_interopRequireWildcard","require","_router","_propTypes","_interopRequireDefault","_BlazeLink","_ClickWrapper","_helpers","_LazyImage","_helpers2","_constants","_buildPBComponents","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Card","_ref","id","image","name","url","graphqlEntityMap","entityProps","alternativePreHeader","alternativeHeadline","category","modifier","parsedPropsToDisplay","propsToDisplay","propsToDisplayModifiers","gtmId","style","priority","cardChildren","gtmChildren","displayCategory","displayThumbnail","displayTitle","enableOverlay","enableCarousel","titleOverlayModifier","overlayModifier","gridModifier","pageBuilderComponents","dataEntity","__typename","otherProps","_objectWithoutProperties2","entity","updateChildrensParent","parent","itemId","itemEntity","router","useRouter","_getImageDefinedProps","getImageDefinedProps","imageSrc","shouldDisplayThumbnail","altText","modifiers","getInitialModifiers","_getCategoryDefinedPr","getCategoryDefinedProps","publishedListingPage","preHeader","label","headline","linkTitle","dynamicSizeKey","useDynamicSizeKey","CARD_STRING","_getClickWrapperOptio","getClickWrapperOptions","shouldUseClickWrapper","wrapperProps","Wrapper","ClickWrapper","Fragment","classNameWithModifiers","getModifiers","contentWrapperModifier","concat","titleWrapperModifier","handleCardClick","clickEventTag","target","tagName","toLowerCase","clickEventRole","role","shouldTriggerRouteChange","CARD_CHILDREN_WITH_LINKS","find","childTag","push","clickProps","process","env","BLAZE_PB_ADD_CLICK_TO_CARDS","onClick","createElement","_extends2","className","href","scroll","src","alt","sizeKey","title","length","BuildPBComponents","map","prop","dynamicKey","propModifier","_ref2","htmlAttribute","extraProps","props","children","encodeURIComponent","key","renderChildren","propTypes","PropTypes","string","isRequired","shape","data","object","array","bool","oneOfType","arrayOf","node","defaultProps","_ref3","hasAlternativePreHeader","getPublishedListingUrl","_ref4","_ref5","_ref6","sponsored","featured","_default","exports"],"sources":["../../../src/components/Card/Card.js"],"sourcesContent":["import React, { Fragment } from 'react';\nimport { useRouter } from 'next/router';\nimport PropTypes from 'prop-types';\nimport BlazeLink from '../BlazeLink';\nimport ClickWrapper from '../ClickWrapper';\nimport {\n getModifiers,\n renderChildren,\n updateChildrensParent,\n getClickWrapperOptions\n} from '../../helpers';\nimport LazyImage from '../LazyImage';\nimport { getPublishedListingUrl, useDynamicSizeKey } from './helpers';\nimport { CARD_STRING, CARD_CHILDREN_WITH_LINKS } from './constants';\nimport BuildPBComponents from '../../hooks/helpers/buildPBComponents';\n\nconst Card = ({\n id,\n image,\n name,\n url,\n graphqlEntityMap,\n entityProps,\n alternativePreHeader,\n alternativeHeadline,\n category,\n modifier,\n parsedPropsToDisplay,\n propsToDisplay,\n propsToDisplayModifiers,\n gtmId,\n style,\n priority,\n cardChildren,\n gtmChildren,\n displayCategory,\n displayThumbnail,\n displayTitle,\n enableOverlay,\n enableCarousel,\n titleOverlayModifier,\n overlayModifier,\n gridModifier,\n pageBuilderComponents,\n __typename: dataEntity,\n ...otherProps\n}) => {\n const entity = graphqlEntityMap[dataEntity];\n updateChildrensParent(cardChildren, id, entity);\n const parent = { itemId: id, itemEntity: entity };\n const router = useRouter();\n const { imageSrc, shouldDisplayThumbnail, altText } = getImageDefinedProps({\n image,\n displayThumbnail,\n name\n });\n\n const modifiers = getInitialModifiers({ modifier, style, otherProps });\n\n const { publishedListingPage, preHeader, label, headline } = getCategoryDefinedProps({\n alternativePreHeader,\n category,\n entity,\n alternativeHeadline,\n displayCategory,\n name\n });\n\n const linkTitle = name;\n\n const dynamicSizeKey = useDynamicSizeKey(CARD_STRING, { style, gridModifier, modifier });\n\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(\n gtmChildren,\n entityProps,\n id\n );\n\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n\n const classNameWithModifiers = getModifiers(CARD_STRING, modifiers);\n\n const contentWrapperModifier = `${getModifiers('card__content-wrapper', modifiers)} ${\n enableOverlay && enableCarousel ? overlayModifier : ''\n }`;\n\n const titleWrapperModifier = `${getModifiers('card__title', modifiers)} ${\n enableOverlay && enableCarousel ? titleOverlayModifier : ''\n }`;\n\n const handleCardClick = e => {\n if (!url) return;\n\n const clickEventTag = e.target.tagName.toLowerCase();\n const clickEventRole = e.target.role;\n const shouldTriggerRouteChange =\n clickEventRole !== 'button' &&\n !CARD_CHILDREN_WITH_LINKS.find(childTag => childTag === clickEventTag);\n if (shouldTriggerRouteChange) router.push(`/Resolver`, url);\n };\n\n // todo: remove temp env var flag once widely tested BLAZE_PB_ADD_CLICK_TO_CARDS\n const clickProps =\n url && process.env.BLAZE_PB_ADD_CLICK_TO_CARDS\n ? {\n onClick: handleCardClick,\n role: 'button'\n }\n : {};\n return (\n <Wrapper {...wrapperProps}>\n <div className={classNameWithModifiers} {...clickProps}>\n {shouldDisplayThumbnail && (\n <div className={getModifiers('card__image', modifiers)}>\n <BlazeLink gtmId={gtmId} href={url} className=\"card__image-link\" scroll>\n <LazyImage\n src={imageSrc}\n alt={altText}\n sizeKey={dynamicSizeKey}\n priority={priority}\n />\n </BlazeLink>\n </div>\n )}\n <div className={contentWrapperModifier}>\n <div className={getModifiers('card__content', modifiers)}>\n {displayCategory &&\n (publishedListingPage ? (\n <BlazeLink\n gtmId={gtmId}\n href={publishedListingPage}\n className=\"badge badge--label\"\n scroll>\n {preHeader.name}\n </BlazeLink>\n ) : (\n <div className=\"badge badge--label\">{label}</div>\n ))}\n {displayTitle && (\n <div className={titleWrapperModifier}>\n <BlazeLink title={linkTitle} gtmId={gtmId} href={url} scroll>\n {headline}\n </BlazeLink>\n </div>\n )}\n {!!pageBuilderComponents.length && (\n <div className=\"card__item card__item--full\" data-testid=\"full-card\">\n {BuildPBComponents(pageBuilderComponents, { parent })}\n </div>\n )}\n {!!parsedPropsToDisplay.length && (\n <div className={getModifiers('card__details', modifiers)}>\n {parsedPropsToDisplay.map((prop, i) => {\n if (!prop) return null;\n\n const dynamicKey = `${id}${i}`;\n const propModifier = propsToDisplayModifiers[i] || '';\n\n const { htmlAttribute } = propsToDisplay[i] || {};\n const extraProps = {};\n if (htmlAttribute && prop.props.children) {\n extraProps[htmlAttribute] = encodeURIComponent(prop.props.children[2]);\n }\n\n return (\n <span key={dynamicKey} className={propModifier} {...extraProps}>\n {prop}\n </span>\n );\n })}\n </div>\n )}\n </div>\n {!!cardChildren && (\n <div className=\"card__child-content\">{renderChildren(cardChildren)}</div>\n )}\n </div>\n </div>\n </Wrapper>\n );\n};\n\nCard.propTypes = {\n id: PropTypes.string.isRequired,\n image: PropTypes.shape({\n url: PropTypes.string,\n data: PropTypes.object\n }),\n graphqlEntityMap: PropTypes.object.isRequired,\n __typename: PropTypes.string.isRequired,\n style: PropTypes.string,\n parsedPropsToDisplay: PropTypes.array,\n propsToDisplay: PropTypes.array,\n propsToDisplayModifiers: PropTypes.array,\n url: PropTypes.string,\n name: PropTypes.string.isRequired,\n entityProps: PropTypes.object,\n gtmId: PropTypes.string,\n alternativePreHeader: PropTypes.shape({\n name: PropTypes.string\n }),\n alternativeHeadline: PropTypes.string,\n category: PropTypes.shape({\n name: PropTypes.string,\n publishedListingPage: PropTypes.shape({\n url: PropTypes.string\n })\n }),\n modifier: PropTypes.string,\n displayCategory: PropTypes.bool.isRequired,\n displayThumbnail: PropTypes.bool.isRequired,\n displayTitle: PropTypes.bool.isRequired,\n enableCarousel: PropTypes.bool,\n enableOverlay: PropTypes.bool,\n overlayModifier: PropTypes.string,\n titleOverlayModifier: PropTypes.string,\n cardChildren: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n gtmChildren: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n gridModifier: PropTypes.string,\n priority: PropTypes.bool,\n pageBuilderComponents: PropTypes.array\n};\n\nCard.defaultProps = {\n entityProps: {},\n pageBuilderComponents: [],\n image: {\n url: null,\n data: {}\n },\n gtmId: '',\n style: 'portrait',\n parsedPropsToDisplay: [],\n propsToDisplay: [],\n propsToDisplayModifiers: [],\n url: '',\n alternativePreHeader: null,\n alternativeHeadline: '',\n category: null,\n modifier: '',\n cardChildren: [],\n gtmChildren: [],\n gridModifier: '',\n priority: false,\n overlayModifier: '',\n titleOverlayModifier: '',\n enableOverlay: false,\n enableCarousel: false\n};\n\nconst getCategoryDefinedProps = ({\n alternativePreHeader,\n category,\n entity,\n alternativeHeadline,\n displayCategory,\n name\n}) => {\n const hasAlternativePreHeader = alternativePreHeader && alternativePreHeader.name;\n const preHeader =\n alternativeHeadline && hasAlternativePreHeader ? alternativePreHeader : category;\n const publishedListingPage = getPublishedListingUrl(preHeader);\n const label = preHeader ? preHeader.name : entity;\n const headline =\n !displayCategory || !hasAlternativePreHeader ? name : alternativeHeadline || name;\n return { publishedListingPage, preHeader, label, headline };\n};\n\nconst getImageDefinedProps = ({ image, displayThumbnail, name }) => {\n const { url: imageSrc, data } = image || {};\n const shouldDisplayThumbnail = displayThumbnail && imageSrc;\n const altText = (data && data.altText) || name;\n return { imageSrc, shouldDisplayThumbnail, altText };\n};\n\nconst getInitialModifiers = ({ modifier, style, otherProps }) => {\n const modifiers = [modifier, style];\n const { sponsored, featured } = otherProps;\n if (sponsored) modifiers.push('sponsored');\n if (featured) modifiers.push('featured');\n\n return modifiers;\n};\n\nexport default Card;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Card.js","names":["_react","_interopRequireWildcard","require","_router","_propTypes","_interopRequireDefault","_BlazeLink","_ClickWrapper","_helpers","_LazyImage","_helpers2","_constants","_buildPBComponents","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Card","_ref","id","image","name","url","graphqlEntityMap","entityProps","alternativePreHeader","alternativeHeadline","category","modifier","parsedPropsToDisplay","propsToDisplay","propsToDisplayModifiers","gtmId","style","priority","cardChildren","gtmChildren","displayCategory","displayThumbnail","displayTitle","enableOverlay","enableCarousel","titleOverlayModifier","overlayModifier","gridModifier","pageBuilderComponents","dataEntity","__typename","otherProps","_objectWithoutProperties2","entity","updateChildrensParent","parent","itemId","itemEntity","router","useRouter","_getImageDefinedProps","getImageDefinedProps","imageSrc","shouldDisplayThumbnail","altText","modifiers","getInitialModifiers","_getCategoryDefinedPr","getCategoryDefinedProps","publishedListingPage","preHeader","label","headline","linkTitle","dynamicSizeKey","useDynamicSizeKey","CARD_STRING","_getClickWrapperOptio","getClickWrapperOptions","shouldUseClickWrapper","wrapperProps","Wrapper","ClickWrapper","Fragment","classNameWithModifiers","getModifiers","contentWrapperModifier","concat","titleWrapperModifier","handleCardClick","clickEventTag","target","tagName","toLowerCase","clickEventRole","role","shouldTriggerRouteChange","CARD_CHILDREN_WITH_LINKS","find","childTag","push","useLinkWrapper","process","env","BLAZE_PB_ADD_CLICK_TO_CARDS","clickProps","onClick","href","ariaLabel","CardWrapper","BlazeLink","childLinkHref","undefined","ChildLinkWrapper","createElement","_extends2","className","scroll","src","alt","sizeKey","title","length","BuildPBComponents","map","prop","dynamicKey","propModifier","_ref2","htmlAttribute","extraProps","props","children","encodeURIComponent","key","renderChildren","propTypes","PropTypes","string","isRequired","shape","data","object","array","bool","oneOfType","arrayOf","node","defaultProps","_ref3","hasAlternativePreHeader","getPublishedListingUrl","_ref4","_ref5","_ref6","sponsored","featured","_default","exports"],"sources":["../../../src/components/Card/Card.js"],"sourcesContent":["import React, { Fragment } from 'react';\nimport { useRouter } from 'next/router';\nimport PropTypes from 'prop-types';\nimport BlazeLink from '../BlazeLink';\nimport ClickWrapper from '../ClickWrapper';\nimport {\n getModifiers,\n renderChildren,\n updateChildrensParent,\n getClickWrapperOptions\n} from '../../helpers';\nimport LazyImage from '../LazyImage';\nimport { getPublishedListingUrl, useDynamicSizeKey } from './helpers';\nimport { CARD_STRING, CARD_CHILDREN_WITH_LINKS } from './constants';\nimport BuildPBComponents from '../../hooks/helpers/buildPBComponents';\n\nconst Card = ({\n id,\n image,\n name,\n url,\n graphqlEntityMap,\n entityProps,\n alternativePreHeader,\n alternativeHeadline,\n category,\n modifier,\n parsedPropsToDisplay,\n propsToDisplay,\n propsToDisplayModifiers,\n gtmId,\n style,\n priority,\n cardChildren,\n gtmChildren,\n displayCategory,\n displayThumbnail,\n displayTitle,\n enableOverlay,\n enableCarousel,\n titleOverlayModifier,\n overlayModifier,\n gridModifier,\n pageBuilderComponents,\n __typename: dataEntity,\n ...otherProps\n}) => {\n const entity = graphqlEntityMap[dataEntity];\n updateChildrensParent(cardChildren, id, entity);\n const parent = { itemId: id, itemEntity: entity };\n const router = useRouter();\n const { imageSrc, shouldDisplayThumbnail, altText } = getImageDefinedProps({\n image,\n displayThumbnail,\n name\n });\n\n const modifiers = getInitialModifiers({ modifier, style, otherProps });\n\n const { publishedListingPage, preHeader, label, headline } = getCategoryDefinedProps({\n alternativePreHeader,\n category,\n entity,\n alternativeHeadline,\n displayCategory,\n name\n });\n\n const linkTitle = name;\n\n const dynamicSizeKey = useDynamicSizeKey(CARD_STRING, { style, gridModifier, modifier });\n\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(\n gtmChildren,\n entityProps,\n id\n );\n\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n\n const classNameWithModifiers = getModifiers(CARD_STRING, modifiers);\n\n const contentWrapperModifier = `${getModifiers('card__content-wrapper', modifiers)} ${\n enableOverlay && enableCarousel ? overlayModifier : ''\n }`;\n\n const titleWrapperModifier = `${getModifiers('card__title', modifiers)} ${\n enableOverlay && enableCarousel ? titleOverlayModifier : ''\n }`;\n\n const handleCardClick = e => {\n if (!url) return;\n\n const clickEventTag = e.target.tagName.toLowerCase();\n const clickEventRole = e.target.role;\n const shouldTriggerRouteChange =\n clickEventRole !== 'button' &&\n !CARD_CHILDREN_WITH_LINKS.find(childTag => childTag === clickEventTag);\n if (shouldTriggerRouteChange) router.push(`/Resolver`, url);\n };\n\n // todo: asses whether we make link wrapper default after wider testing with BLAZE_PB_ADD_CLICK_TO_CARDS\n const useLinkWrapper = url && process.env.BLAZE_PB_ADD_CLICK_TO_CARDS;\n const clickProps = useLinkWrapper\n ? {\n onClick: handleCardClick,\n href: url,\n ariaLabel: name\n }\n : {};\n const CardWrapper = useLinkWrapper ? BlazeLink : 'div';\n const childLinkHref = useLinkWrapper ? undefined : url;\n const ChildLinkWrapper = useLinkWrapper ? 'div' : BlazeLink;\n\n return (\n <Wrapper {...wrapperProps}>\n <CardWrapper className={classNameWithModifiers} {...clickProps}>\n {shouldDisplayThumbnail && (\n <div className={getModifiers('card__image', modifiers)}>\n <ChildLinkWrapper\n gtmId={gtmId}\n href={childLinkHref}\n className=\"card__image-link\"\n scroll>\n <LazyImage\n src={imageSrc}\n alt={altText}\n sizeKey={dynamicSizeKey}\n priority={priority}\n />\n </ChildLinkWrapper>\n </div>\n )}\n <div className={contentWrapperModifier}>\n <div className={getModifiers('card__content', modifiers)}>\n {displayCategory &&\n (publishedListingPage ? (\n <ChildLinkWrapper\n gtmId={gtmId}\n href={publishedListingPage}\n className=\"badge badge--label\"\n scroll>\n {preHeader.name}\n </ChildLinkWrapper>\n ) : (\n <div className=\"badge badge--label\">{label}</div>\n ))}\n {displayTitle && (\n <div className={titleWrapperModifier}>\n <ChildLinkWrapper title={linkTitle} gtmId={gtmId} href={childLinkHref} scroll>\n {headline}\n </ChildLinkWrapper>\n </div>\n )}\n {!!pageBuilderComponents.length && (\n <div className=\"card__item card__item--full\" data-testid=\"full-card\">\n {BuildPBComponents(pageBuilderComponents, { parent })}\n </div>\n )}\n {!!parsedPropsToDisplay.length && (\n <div className={getModifiers('card__details', modifiers)}>\n {parsedPropsToDisplay.map((prop, i) => {\n if (!prop) return null;\n\n const dynamicKey = `${id}${i}`;\n const propModifier = propsToDisplayModifiers[i] || '';\n\n const { htmlAttribute } = propsToDisplay[i] || {};\n const extraProps = {};\n if (htmlAttribute && prop.props.children) {\n extraProps[htmlAttribute] = encodeURIComponent(prop.props.children[2]);\n }\n\n return (\n <span key={dynamicKey} className={propModifier} {...extraProps}>\n {prop}\n </span>\n );\n })}\n </div>\n )}\n </div>\n {!!cardChildren && (\n <div className=\"card__child-content\">{renderChildren(cardChildren)}</div>\n )}\n </div>\n </CardWrapper>\n </Wrapper>\n );\n};\n\nCard.propTypes = {\n id: PropTypes.string.isRequired,\n image: PropTypes.shape({\n url: PropTypes.string,\n data: PropTypes.object\n }),\n graphqlEntityMap: PropTypes.object.isRequired,\n __typename: PropTypes.string.isRequired,\n style: PropTypes.string,\n parsedPropsToDisplay: PropTypes.array,\n propsToDisplay: PropTypes.array,\n propsToDisplayModifiers: PropTypes.array,\n url: PropTypes.string,\n name: PropTypes.string.isRequired,\n entityProps: PropTypes.object,\n gtmId: PropTypes.string,\n alternativePreHeader: PropTypes.shape({\n name: PropTypes.string\n }),\n alternativeHeadline: PropTypes.string,\n category: PropTypes.shape({\n name: PropTypes.string,\n publishedListingPage: PropTypes.shape({\n url: PropTypes.string\n })\n }),\n modifier: PropTypes.string,\n displayCategory: PropTypes.bool.isRequired,\n displayThumbnail: PropTypes.bool.isRequired,\n displayTitle: PropTypes.bool.isRequired,\n enableCarousel: PropTypes.bool,\n enableOverlay: PropTypes.bool,\n overlayModifier: PropTypes.string,\n titleOverlayModifier: PropTypes.string,\n cardChildren: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n gtmChildren: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n gridModifier: PropTypes.string,\n priority: PropTypes.bool,\n pageBuilderComponents: PropTypes.array\n};\n\nCard.defaultProps = {\n entityProps: {},\n pageBuilderComponents: [],\n image: {\n url: null,\n data: {}\n },\n gtmId: '',\n style: 'portrait',\n parsedPropsToDisplay: [],\n propsToDisplay: [],\n propsToDisplayModifiers: [],\n url: '',\n alternativePreHeader: null,\n alternativeHeadline: '',\n category: null,\n modifier: '',\n cardChildren: [],\n gtmChildren: [],\n gridModifier: '',\n priority: false,\n overlayModifier: '',\n titleOverlayModifier: '',\n enableOverlay: false,\n enableCarousel: false\n};\n\nconst getCategoryDefinedProps = ({\n alternativePreHeader,\n category,\n entity,\n alternativeHeadline,\n displayCategory,\n name\n}) => {\n const hasAlternativePreHeader = alternativePreHeader && alternativePreHeader.name;\n const preHeader =\n alternativeHeadline && hasAlternativePreHeader ? alternativePreHeader : category;\n const publishedListingPage = getPublishedListingUrl(preHeader);\n const label = preHeader ? preHeader.name : entity;\n const headline =\n !displayCategory || !hasAlternativePreHeader ? name : alternativeHeadline || name;\n return { publishedListingPage, preHeader, label, headline };\n};\n\nconst getImageDefinedProps = ({ image, displayThumbnail, name }) => {\n const { url: imageSrc, data } = image || {};\n const shouldDisplayThumbnail = displayThumbnail && imageSrc;\n const altText = (data && data.altText) || name;\n return { imageSrc, shouldDisplayThumbnail, altText };\n};\n\nconst getInitialModifiers = ({ modifier, style, otherProps }) => {\n const modifiers = [modifier, style];\n const { sponsored, featured } = otherProps;\n if (sponsored) modifiers.push('sponsored');\n if (featured) modifiers.push('featured');\n\n return modifiers;\n};\n\nexport default Card;\n"],"mappings":"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"}
@@ -22,6 +22,7 @@ var _constants = require("../../constants");
22
22
  var _helpers = require("../../helpers");
23
23
  var _BlazeLink = _interopRequireDefault(require("../BlazeLink"));
24
24
  var _MenuContext = _interopRequireDefault(require("../Menu/MenuContext"));
25
+ var _helpers2 = require("./helpers");
25
26
  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); }
26
27
  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 && Object.prototype.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; }
27
28
  var MenuItemRender = function MenuItemRender(_ref) {
@@ -41,7 +42,7 @@ var MenuItemRender = function MenuItemRender(_ref) {
41
42
  loadingText = _useStringTemplate.loading,
42
43
  _useStringTemplate$da = (0, _slicedToArray2["default"])(_useStringTemplate.data, 1),
43
44
  textToUse = _useStringTemplate$da[0];
44
- var _useStringTemplate2 = (0, _utilsHandlebars.useStringTemplate)(parent, [url]),
45
+ var _useStringTemplate2 = (0, _utilsHandlebars.useStringTemplate)(parent, [(0, _helpers2.injectHelperIntoTemplate)(url, 'url_encode')]),
45
46
  loadingUrl = _useStringTemplate2.loading,
46
47
  _useStringTemplate2$d = (0, _slicedToArray2["default"])(_useStringTemplate2.data, 1),
47
48
  urlToUse = _useStringTemplate2$d[0];
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemRender.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_fa","_utilsHandlebars","_constants","_helpers","_BlazeLink","_MenuContext","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","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","loadingUrl","_useStringTemplate2$d","urlToUse","useEffect","isHoverEvent","HOVER","childrenDisplayClass","HIDDEN","handleItemEvent","_ref2","type","MOUSE_ENTER","MOUSE_LEAVE","hasValidChildren","hasChildren","createElement","className","onMouseEnter","onMouseLeave","href","role","onClick","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 { 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';\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\n const {\n loading: loadingUrl,\n data: [urlToUse]\n } = useStringTemplate(parent, [url]);\n\n useEffect(\n () => {\n if (!showMobileMenu) setDisplayChildren(false);\n },\n [showMobileMenu]\n );\n\n if (loadingUrl || loadingText) return '';\n\n const isHoverEvent = eventType === HOVER;\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 const hasValidChildren = hasChildren(children);\n\n return (\n <li className={modifier} onMouseEnter={handleItemEvent} onMouseLeave={handleItemEvent}>\n <div className=\"menu--item--link\">\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={() => setDisplayChildren(!displayChildren)}>\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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"}
1
+ {"version":3,"file":"MenuItemRender.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_fa","_utilsHandlebars","_constants","_helpers","_BlazeLink","_MenuContext","_helpers2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","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","useEffect","isHoverEvent","HOVER","childrenDisplayClass","HIDDEN","handleItemEvent","_ref2","type","MOUSE_ENTER","MOUSE_LEAVE","hasValidChildren","hasChildren","createElement","className","onMouseEnter","onMouseLeave","href","role","onClick","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 { 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\n const {\n loading: loadingUrl,\n data: [urlToUse]\n } = useStringTemplate(parent, [injectHelperIntoTemplate(url, 'url_encode')]);\n\n useEffect(\n () => {\n if (!showMobileMenu) setDisplayChildren(false);\n },\n [showMobileMenu]\n );\n\n if (loadingUrl || loadingText) return '';\n\n const isHoverEvent = eventType === HOVER;\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 const hasValidChildren = hasChildren(children);\n\n return (\n <li className={modifier} onMouseEnter={handleItemEvent} onMouseLeave={handleItemEvent}>\n <div className=\"menu--item--link\">\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={() => setDisplayChildren(!displayChildren)}>\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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"}
@@ -0,0 +1,15 @@
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
+ Object.defineProperty(exports, "injectHelperIntoTemplate", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _injectHelperIntoTemplate["default"];
12
+ }
13
+ });
14
+ var _injectHelperIntoTemplate = _interopRequireDefault(require("./inject-helper-into-template"));
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}
@@ -0,0 +1,17 @@
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.exec.js");
9
+ require("core-js/modules/es.string.replace.js");
10
+ var injectHelperIntoTemplate = function injectHelperIntoTemplate(template, helper) {
11
+ if (!helper || !template) return template;
12
+ var result = template.replace(/{{{([^{}]+)}}}/g, "{{{".concat(helper, " $1}}}"));
13
+ result = result.replace(/{{([^{}]+)}}(?!})/g, "{{".concat(helper, " $1}}"));
14
+ return result;
15
+ };
16
+ var _default = exports["default"] = injectHelperIntoTemplate;
17
+ //# sourceMappingURL=inject-helper-into-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-helper-into-template.js","names":["injectHelperIntoTemplate","template","helper","result","replace","concat","_default","exports"],"sources":["../../../../src/components/MenuItem/helpers/inject-helper-into-template.js"],"sourcesContent":["const injectHelperIntoTemplate = (template, helper) => {\n if (!helper || !template) return template;\n\n let result = template.replace(/{{{([^{}]+)}}}/g, `{{{${helper} $1}}}`);\n\n result = result.replace(/{{([^{}]+)}}(?!})/g, `{{${helper} $1}}`);\n\n return result;\n};\n\nexport default injectHelperIntoTemplate;\n"],"mappings":";;;;;;;;;AAAA,IAAMA,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAIC,QAAQ,EAAEC,MAAM,EAAK;EACrD,IAAI,CAACA,MAAM,IAAI,CAACD,QAAQ,EAAE,OAAOA,QAAQ;EAEzC,IAAIE,MAAM,GAAGF,QAAQ,CAACG,OAAO,CAAC,iBAAiB,QAAAC,MAAA,CAAQH,MAAM,WAAQ,CAAC;EAEtEC,MAAM,GAAGA,MAAM,CAACC,OAAO,CAAC,oBAAoB,OAAAC,MAAA,CAAOH,MAAM,UAAO,CAAC;EAEjE,OAAOC,MAAM;AACf,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,cAEaP,wBAAwB"}
@@ -58,9 +58,8 @@ var buildFiltersQuery = function buildFiltersQuery(_ref2) {
58
58
  rangeValues = _ref2.rangeValues,
59
59
  queryKeys = _ref2.queryKeys,
60
60
  query = _ref2.query;
61
- if (!shouldAddFilters) return [];
62
61
  var mustFilters = [];
63
- if (query) {
62
+ if (shouldAddFilters && query) {
64
63
  Object.keys(query).forEach(function (queryKey) {
65
64
  if (QUERY_KEYS_TO_IGNORE.includes(queryKey)) return;
66
65
  if (!queryKey || !query[queryKey]) return;
@@ -1 +1 @@
1
- {"version":3,"file":"build-filters-query.js","names":["QUERY_KEYS_TO_IGNORE","builFilterObject","_ref","queryKey","value","filters","isRange","isInQuery","min","minValue","max","maxValue","push","range","_defineProperty2","gte","Number","lte","key","concat","isArray","Array","singleFilterObj","match","forEach","filterValue","buildFiltersQuery","_ref2","shouldAddFilters","filterBy","filterByProperty","rangeValues","queryKeys","query","mustFilters","Object","keys","includes","queryValue","length","filterByPropOption","_filterByPropOption$s","split","_filterByPropOption$s2","_slicedToArray2","filterByPropKey","filterByOption","indexOf","_filterByOption$split","_filterByOption$split2","filteryByValue","filterByKeyword","_default","exports"],"sources":["../../src/helpers/build-filters-query.js"],"sourcesContent":["const QUERY_KEYS_TO_IGNORE = ['dataNotSet', 'shouldSearch', 'search_term'];\n\nconst builFilterObject = ({ queryKey, value, filters, isRange, isInQuery }) => {\n if (isRange) {\n // don't add to query if value matches range values\n if (isInQuery || (value.min !== value.minValue && value.max !== value.maxValue)) {\n filters.push({\n range: {\n [queryKey]: {\n gte: Number(value.minValue),\n lte: Number(value.maxValue)\n }\n }\n });\n }\n return;\n }\n\n const key = isRange ? queryKey : `${queryKey}.keyword`;\n\n const isArray = Array.isArray(value);\n if (!isArray) {\n const singleFilterObj = { match: { [key]: value } };\n filters.push(singleFilterObj);\n return;\n }\n\n value.forEach(filterValue => {\n filters.push({ match: { [key]: filterValue } });\n });\n};\n\nconst buildFiltersQuery = ({\n shouldAddFilters,\n filterBy,\n filterByProperty,\n rangeValues,\n queryKeys,\n query\n}) => {\n if (!shouldAddFilters) return [];\n const mustFilters = [];\n if (query) {\n Object.keys(query).forEach(queryKey => {\n if (QUERY_KEYS_TO_IGNORE.includes(queryKey)) return;\n if (!queryKey || !query[queryKey]) return;\n const queryValue = query[queryKey];\n\n const isRange = rangeValues.includes(queryKey);\n const isInQuery = queryKeys.includes(queryKey);\n builFilterObject({ queryKey, value: queryValue, filters: mustFilters, isRange, isInQuery });\n });\n }\n\n if (filterByProperty && filterByProperty.length) {\n filterByProperty.forEach(filterByPropOption => {\n const [filterByPropKey] = filterByPropOption.split('/');\n filterBy.forEach(filterByOption => {\n if (filterByOption.indexOf(filterByPropKey) === -1) return;\n const [, filteryByValue] = filterByOption.split('/');\n const filterByKeyword = `${filterByPropKey}.keyword`;\n if (!filteryByValue) return;\n mustFilters.push({ match: { [filterByKeyword]: filteryByValue } });\n });\n });\n }\n\n return mustFilters;\n};\n\nexport default buildFiltersQuery;\n"],"mappings":"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"}
1
+ {"version":3,"file":"build-filters-query.js","names":["QUERY_KEYS_TO_IGNORE","builFilterObject","_ref","queryKey","value","filters","isRange","isInQuery","min","minValue","max","maxValue","push","range","_defineProperty2","gte","Number","lte","key","concat","isArray","Array","singleFilterObj","match","forEach","filterValue","buildFiltersQuery","_ref2","shouldAddFilters","filterBy","filterByProperty","rangeValues","queryKeys","query","mustFilters","Object","keys","includes","queryValue","length","filterByPropOption","_filterByPropOption$s","split","_filterByPropOption$s2","_slicedToArray2","filterByPropKey","filterByOption","indexOf","_filterByOption$split","_filterByOption$split2","filteryByValue","filterByKeyword","_default","exports"],"sources":["../../src/helpers/build-filters-query.js"],"sourcesContent":["const QUERY_KEYS_TO_IGNORE = ['dataNotSet', 'shouldSearch', 'search_term'];\n\nconst builFilterObject = ({ queryKey, value, filters, isRange, isInQuery }) => {\n if (isRange) {\n // don't add to query if value matches range values\n if (isInQuery || (value.min !== value.minValue && value.max !== value.maxValue)) {\n filters.push({\n range: {\n [queryKey]: {\n gte: Number(value.minValue),\n lte: Number(value.maxValue)\n }\n }\n });\n }\n return;\n }\n\n const key = isRange ? queryKey : `${queryKey}.keyword`;\n\n const isArray = Array.isArray(value);\n if (!isArray) {\n const singleFilterObj = { match: { [key]: value } };\n filters.push(singleFilterObj);\n return;\n }\n\n value.forEach(filterValue => {\n filters.push({ match: { [key]: filterValue } });\n });\n};\n\nconst buildFiltersQuery = ({\n shouldAddFilters,\n filterBy,\n filterByProperty,\n rangeValues,\n queryKeys,\n query\n}) => {\n const mustFilters = [];\n if (shouldAddFilters && query) {\n Object.keys(query).forEach(queryKey => {\n if (QUERY_KEYS_TO_IGNORE.includes(queryKey)) return;\n if (!queryKey || !query[queryKey]) return;\n const queryValue = query[queryKey];\n\n const isRange = rangeValues.includes(queryKey);\n const isInQuery = queryKeys.includes(queryKey);\n builFilterObject({ queryKey, value: queryValue, filters: mustFilters, isRange, isInQuery });\n });\n }\n\n if (filterByProperty && filterByProperty.length) {\n filterByProperty.forEach(filterByPropOption => {\n const [filterByPropKey] = filterByPropOption.split('/');\n filterBy.forEach(filterByOption => {\n if (filterByOption.indexOf(filterByPropKey) === -1) return;\n const [, filteryByValue] = filterByOption.split('/');\n const filterByKeyword = `${filterByPropKey}.keyword`;\n if (!filteryByValue) return;\n mustFilters.push({ match: { [filterByKeyword]: filteryByValue } });\n });\n });\n }\n\n return mustFilters;\n};\n\nexport default buildFiltersQuery;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAMA,oBAAoB,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC;AAE1E,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAAyD;EAAA,IAAnDC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IAAEC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IAAEC,SAAS,GAAAL,IAAA,CAATK,SAAS;EACtE,IAAID,OAAO,EAAE;IACX;IACA,IAAIC,SAAS,IAAKH,KAAK,CAACI,GAAG,KAAKJ,KAAK,CAACK,QAAQ,IAAIL,KAAK,CAACM,GAAG,KAAKN,KAAK,CAACO,QAAS,EAAE;MAC/EN,OAAO,CAACO,IAAI,CAAC;QACXC,KAAK,MAAAC,gBAAA,iBACFX,QAAQ,EAAG;UACVY,GAAG,EAAEC,MAAM,CAACZ,KAAK,CAACK,QAAQ,CAAC;UAC3BQ,GAAG,EAAED,MAAM,CAACZ,KAAK,CAACO,QAAQ;QAC5B,CAAC;MAEL,CAAC,CAAC;IACJ;IACA;EACF;EAEA,IAAMO,GAAG,GAAGZ,OAAO,GAAGH,QAAQ,MAAAgB,MAAA,CAAMhB,QAAQ,aAAU;EAEtD,IAAMiB,OAAO,GAAGC,KAAK,CAACD,OAAO,CAAChB,KAAK,CAAC;EACpC,IAAI,CAACgB,OAAO,EAAE;IACZ,IAAME,eAAe,GAAG;MAAEC,KAAK,MAAAT,gBAAA,iBAAKI,GAAG,EAAGd,KAAK;IAAG,CAAC;IACnDC,OAAO,CAACO,IAAI,CAACU,eAAe,CAAC;IAC7B;EACF;EAEAlB,KAAK,CAACoB,OAAO,CAAC,UAAAC,WAAW,EAAI;IAC3BpB,OAAO,CAACO,IAAI,CAAC;MAAEW,KAAK,MAAAT,gBAAA,iBAAKI,GAAG,EAAGO,WAAW;IAAG,CAAC,CAAC;EACjD,CAAC,CAAC;AACJ,CAAC;AAED,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,KAAA,EAOjB;EAAA,IANJC,gBAAgB,GAAAD,KAAA,CAAhBC,gBAAgB;IAChBC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;IACRC,gBAAgB,GAAAH,KAAA,CAAhBG,gBAAgB;IAChBC,WAAW,GAAAJ,KAAA,CAAXI,WAAW;IACXC,SAAS,GAAAL,KAAA,CAATK,SAAS;IACTC,KAAK,GAAAN,KAAA,CAALM,KAAK;EAEL,IAAMC,WAAW,GAAG,EAAE;EACtB,IAAIN,gBAAgB,IAAIK,KAAK,EAAE;IAC7BE,MAAM,CAACC,IAAI,CAACH,KAAK,CAAC,CAACT,OAAO,CAAC,UAAArB,QAAQ,EAAI;MACrC,IAAIH,oBAAoB,CAACqC,QAAQ,CAAClC,QAAQ,CAAC,EAAE;MAC7C,IAAI,CAACA,QAAQ,IAAI,CAAC8B,KAAK,CAAC9B,QAAQ,CAAC,EAAE;MACnC,IAAMmC,UAAU,GAAGL,KAAK,CAAC9B,QAAQ,CAAC;MAElC,IAAMG,OAAO,GAAGyB,WAAW,CAACM,QAAQ,CAAClC,QAAQ,CAAC;MAC9C,IAAMI,SAAS,GAAGyB,SAAS,CAACK,QAAQ,CAAClC,QAAQ,CAAC;MAC9CF,gBAAgB,CAAC;QAAEE,QAAQ,EAARA,QAAQ;QAAEC,KAAK,EAAEkC,UAAU;QAAEjC,OAAO,EAAE6B,WAAW;QAAE5B,OAAO,EAAPA,OAAO;QAAEC,SAAS,EAATA;MAAU,CAAC,CAAC;IAC7F,CAAC,CAAC;EACJ;EAEA,IAAIuB,gBAAgB,IAAIA,gBAAgB,CAACS,MAAM,EAAE;IAC/CT,gBAAgB,CAACN,OAAO,CAAC,UAAAgB,kBAAkB,EAAI;MAC7C,IAAAC,qBAAA,GAA0BD,kBAAkB,CAACE,KAAK,CAAC,GAAG,CAAC;QAAAC,sBAAA,OAAAC,eAAA,aAAAH,qBAAA;QAAhDI,eAAe,GAAAF,sBAAA;MACtBd,QAAQ,CAACL,OAAO,CAAC,UAAAsB,cAAc,EAAI;QACjC,IAAIA,cAAc,CAACC,OAAO,CAACF,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE;QACpD,IAAAG,qBAAA,GAA2BF,cAAc,CAACJ,KAAK,CAAC,GAAG,CAAC;UAAAO,sBAAA,OAAAL,eAAA,aAAAI,qBAAA;UAA3CE,cAAc,GAAAD,sBAAA;QACvB,IAAME,eAAe,MAAAhC,MAAA,CAAM0B,eAAe,aAAU;QACpD,IAAI,CAACK,cAAc,EAAE;QACrBhB,WAAW,CAACtB,IAAI,CAAC;UAAEW,KAAK,MAAAT,gBAAA,iBAAKqC,eAAe,EAAGD,cAAc;QAAG,CAAC,CAAC;MACpE,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEA,OAAOhB,WAAW;AACpB,CAAC;AAAC,IAAAkB,QAAA,GAAAC,OAAA,cAEa3B,iBAAiB"}
@@ -99,18 +99,23 @@ const Card = _ref => {
99
99
  if (shouldTriggerRouteChange) router.push(`/Resolver`, url);
100
100
  };
101
101
 
102
- // todo: remove temp env var flag once widely tested BLAZE_PB_ADD_CLICK_TO_CARDS
103
- const clickProps = url && process.env.BLAZE_PB_ADD_CLICK_TO_CARDS ? {
102
+ // todo: asses whether we make link wrapper default after wider testing with BLAZE_PB_ADD_CLICK_TO_CARDS
103
+ const useLinkWrapper = url && process.env.BLAZE_PB_ADD_CLICK_TO_CARDS;
104
+ const clickProps = useLinkWrapper ? {
104
105
  onClick: handleCardClick,
105
- role: 'button'
106
+ href: url,
107
+ ariaLabel: name
106
108
  } : {};
107
- return /*#__PURE__*/React.createElement(Wrapper, wrapperProps, /*#__PURE__*/React.createElement("div", _extends({
109
+ const CardWrapper = useLinkWrapper ? BlazeLink : 'div';
110
+ const childLinkHref = useLinkWrapper ? undefined : url;
111
+ const ChildLinkWrapper = useLinkWrapper ? 'div' : BlazeLink;
112
+ return /*#__PURE__*/React.createElement(Wrapper, wrapperProps, /*#__PURE__*/React.createElement(CardWrapper, _extends({
108
113
  className: classNameWithModifiers
109
114
  }, clickProps), shouldDisplayThumbnail && /*#__PURE__*/React.createElement("div", {
110
115
  className: getModifiers('card__image', modifiers)
111
- }, /*#__PURE__*/React.createElement(BlazeLink, {
116
+ }, /*#__PURE__*/React.createElement(ChildLinkWrapper, {
112
117
  gtmId: gtmId,
113
- href: url,
118
+ href: childLinkHref,
114
119
  className: "card__image-link",
115
120
  scroll: true
116
121
  }, /*#__PURE__*/React.createElement(LazyImage, {
@@ -122,7 +127,7 @@ const Card = _ref => {
122
127
  className: contentWrapperModifier
123
128
  }, /*#__PURE__*/React.createElement("div", {
124
129
  className: getModifiers('card__content', modifiers)
125
- }, displayCategory && (publishedListingPage ? /*#__PURE__*/React.createElement(BlazeLink, {
130
+ }, displayCategory && (publishedListingPage ? /*#__PURE__*/React.createElement(ChildLinkWrapper, {
126
131
  gtmId: gtmId,
127
132
  href: publishedListingPage,
128
133
  className: "badge badge--label",
@@ -131,10 +136,10 @@ const Card = _ref => {
131
136
  className: "badge badge--label"
132
137
  }, label)), displayTitle && /*#__PURE__*/React.createElement("div", {
133
138
  className: titleWrapperModifier
134
- }, /*#__PURE__*/React.createElement(BlazeLink, {
139
+ }, /*#__PURE__*/React.createElement(ChildLinkWrapper, {
135
140
  title: linkTitle,
136
141
  gtmId: gtmId,
137
- href: url,
142
+ href: childLinkHref,
138
143
  scroll: true
139
144
  }, headline)), !!pageBuilderComponents.length && /*#__PURE__*/React.createElement("div", {
140
145
  className: "card__item card__item--full",
@@ -1 +1 @@
1
- {"version":3,"file":"Card.js","names":["React","Fragment","useRouter","PropTypes","BlazeLink","ClickWrapper","getModifiers","renderChildren","updateChildrensParent","getClickWrapperOptions","LazyImage","getPublishedListingUrl","useDynamicSizeKey","CARD_STRING","CARD_CHILDREN_WITH_LINKS","BuildPBComponents","Card","_ref","id","image","name","url","graphqlEntityMap","entityProps","alternativePreHeader","alternativeHeadline","category","modifier","parsedPropsToDisplay","propsToDisplay","propsToDisplayModifiers","gtmId","style","priority","cardChildren","gtmChildren","displayCategory","displayThumbnail","displayTitle","enableOverlay","enableCarousel","titleOverlayModifier","overlayModifier","gridModifier","pageBuilderComponents","__typename","dataEntity","otherProps","_objectWithoutProperties","_excluded","entity","parent","itemId","itemEntity","router","imageSrc","shouldDisplayThumbnail","altText","getImageDefinedProps","modifiers","getInitialModifiers","publishedListingPage","preHeader","label","headline","getCategoryDefinedProps","linkTitle","dynamicSizeKey","shouldUseClickWrapper","wrapperProps","Wrapper","classNameWithModifiers","contentWrapperModifier","titleWrapperModifier","handleCardClick","e","clickEventTag","target","tagName","toLowerCase","clickEventRole","role","shouldTriggerRouteChange","find","childTag","push","clickProps","process","env","BLAZE_PB_ADD_CLICK_TO_CARDS","onClick","createElement","_extends","className","href","scroll","src","alt","sizeKey","title","length","map","prop","i","dynamicKey","propModifier","htmlAttribute","extraProps","props","children","encodeURIComponent","key","propTypes","string","isRequired","shape","data","object","array","bool","oneOfType","arrayOf","node","defaultProps","hasAlternativePreHeader","sponsored","featured"],"sources":["../../../src/components/Card/Card.js"],"sourcesContent":["import React, { Fragment } from 'react';\nimport { useRouter } from 'next/router';\nimport PropTypes from 'prop-types';\nimport BlazeLink from '../BlazeLink';\nimport ClickWrapper from '../ClickWrapper';\nimport {\n getModifiers,\n renderChildren,\n updateChildrensParent,\n getClickWrapperOptions\n} from '../../helpers';\nimport LazyImage from '../LazyImage';\nimport { getPublishedListingUrl, useDynamicSizeKey } from './helpers';\nimport { CARD_STRING, CARD_CHILDREN_WITH_LINKS } from './constants';\nimport BuildPBComponents from '../../hooks/helpers/buildPBComponents';\n\nconst Card = ({\n id,\n image,\n name,\n url,\n graphqlEntityMap,\n entityProps,\n alternativePreHeader,\n alternativeHeadline,\n category,\n modifier,\n parsedPropsToDisplay,\n propsToDisplay,\n propsToDisplayModifiers,\n gtmId,\n style,\n priority,\n cardChildren,\n gtmChildren,\n displayCategory,\n displayThumbnail,\n displayTitle,\n enableOverlay,\n enableCarousel,\n titleOverlayModifier,\n overlayModifier,\n gridModifier,\n pageBuilderComponents,\n __typename: dataEntity,\n ...otherProps\n}) => {\n const entity = graphqlEntityMap[dataEntity];\n updateChildrensParent(cardChildren, id, entity);\n const parent = { itemId: id, itemEntity: entity };\n const router = useRouter();\n const { imageSrc, shouldDisplayThumbnail, altText } = getImageDefinedProps({\n image,\n displayThumbnail,\n name\n });\n\n const modifiers = getInitialModifiers({ modifier, style, otherProps });\n\n const { publishedListingPage, preHeader, label, headline } = getCategoryDefinedProps({\n alternativePreHeader,\n category,\n entity,\n alternativeHeadline,\n displayCategory,\n name\n });\n\n const linkTitle = name;\n\n const dynamicSizeKey = useDynamicSizeKey(CARD_STRING, { style, gridModifier, modifier });\n\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(\n gtmChildren,\n entityProps,\n id\n );\n\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n\n const classNameWithModifiers = getModifiers(CARD_STRING, modifiers);\n\n const contentWrapperModifier = `${getModifiers('card__content-wrapper', modifiers)} ${\n enableOverlay && enableCarousel ? overlayModifier : ''\n }`;\n\n const titleWrapperModifier = `${getModifiers('card__title', modifiers)} ${\n enableOverlay && enableCarousel ? titleOverlayModifier : ''\n }`;\n\n const handleCardClick = e => {\n if (!url) return;\n\n const clickEventTag = e.target.tagName.toLowerCase();\n const clickEventRole = e.target.role;\n const shouldTriggerRouteChange =\n clickEventRole !== 'button' &&\n !CARD_CHILDREN_WITH_LINKS.find(childTag => childTag === clickEventTag);\n if (shouldTriggerRouteChange) router.push(`/Resolver`, url);\n };\n\n // todo: remove temp env var flag once widely tested BLAZE_PB_ADD_CLICK_TO_CARDS\n const clickProps =\n url && process.env.BLAZE_PB_ADD_CLICK_TO_CARDS\n ? {\n onClick: handleCardClick,\n role: 'button'\n }\n : {};\n return (\n <Wrapper {...wrapperProps}>\n <div className={classNameWithModifiers} {...clickProps}>\n {shouldDisplayThumbnail && (\n <div className={getModifiers('card__image', modifiers)}>\n <BlazeLink gtmId={gtmId} href={url} className=\"card__image-link\" scroll>\n <LazyImage\n src={imageSrc}\n alt={altText}\n sizeKey={dynamicSizeKey}\n priority={priority}\n />\n </BlazeLink>\n </div>\n )}\n <div className={contentWrapperModifier}>\n <div className={getModifiers('card__content', modifiers)}>\n {displayCategory &&\n (publishedListingPage ? (\n <BlazeLink\n gtmId={gtmId}\n href={publishedListingPage}\n className=\"badge badge--label\"\n scroll>\n {preHeader.name}\n </BlazeLink>\n ) : (\n <div className=\"badge badge--label\">{label}</div>\n ))}\n {displayTitle && (\n <div className={titleWrapperModifier}>\n <BlazeLink title={linkTitle} gtmId={gtmId} href={url} scroll>\n {headline}\n </BlazeLink>\n </div>\n )}\n {!!pageBuilderComponents.length && (\n <div className=\"card__item card__item--full\" data-testid=\"full-card\">\n {BuildPBComponents(pageBuilderComponents, { parent })}\n </div>\n )}\n {!!parsedPropsToDisplay.length && (\n <div className={getModifiers('card__details', modifiers)}>\n {parsedPropsToDisplay.map((prop, i) => {\n if (!prop) return null;\n\n const dynamicKey = `${id}${i}`;\n const propModifier = propsToDisplayModifiers[i] || '';\n\n const { htmlAttribute } = propsToDisplay[i] || {};\n const extraProps = {};\n if (htmlAttribute && prop.props.children) {\n extraProps[htmlAttribute] = encodeURIComponent(prop.props.children[2]);\n }\n\n return (\n <span key={dynamicKey} className={propModifier} {...extraProps}>\n {prop}\n </span>\n );\n })}\n </div>\n )}\n </div>\n {!!cardChildren && (\n <div className=\"card__child-content\">{renderChildren(cardChildren)}</div>\n )}\n </div>\n </div>\n </Wrapper>\n );\n};\n\nCard.propTypes = {\n id: PropTypes.string.isRequired,\n image: PropTypes.shape({\n url: PropTypes.string,\n data: PropTypes.object\n }),\n graphqlEntityMap: PropTypes.object.isRequired,\n __typename: PropTypes.string.isRequired,\n style: PropTypes.string,\n parsedPropsToDisplay: PropTypes.array,\n propsToDisplay: PropTypes.array,\n propsToDisplayModifiers: PropTypes.array,\n url: PropTypes.string,\n name: PropTypes.string.isRequired,\n entityProps: PropTypes.object,\n gtmId: PropTypes.string,\n alternativePreHeader: PropTypes.shape({\n name: PropTypes.string\n }),\n alternativeHeadline: PropTypes.string,\n category: PropTypes.shape({\n name: PropTypes.string,\n publishedListingPage: PropTypes.shape({\n url: PropTypes.string\n })\n }),\n modifier: PropTypes.string,\n displayCategory: PropTypes.bool.isRequired,\n displayThumbnail: PropTypes.bool.isRequired,\n displayTitle: PropTypes.bool.isRequired,\n enableCarousel: PropTypes.bool,\n enableOverlay: PropTypes.bool,\n overlayModifier: PropTypes.string,\n titleOverlayModifier: PropTypes.string,\n cardChildren: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n gtmChildren: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n gridModifier: PropTypes.string,\n priority: PropTypes.bool,\n pageBuilderComponents: PropTypes.array\n};\n\nCard.defaultProps = {\n entityProps: {},\n pageBuilderComponents: [],\n image: {\n url: null,\n data: {}\n },\n gtmId: '',\n style: 'portrait',\n parsedPropsToDisplay: [],\n propsToDisplay: [],\n propsToDisplayModifiers: [],\n url: '',\n alternativePreHeader: null,\n alternativeHeadline: '',\n category: null,\n modifier: '',\n cardChildren: [],\n gtmChildren: [],\n gridModifier: '',\n priority: false,\n overlayModifier: '',\n titleOverlayModifier: '',\n enableOverlay: false,\n enableCarousel: false\n};\n\nconst getCategoryDefinedProps = ({\n alternativePreHeader,\n category,\n entity,\n alternativeHeadline,\n displayCategory,\n name\n}) => {\n const hasAlternativePreHeader = alternativePreHeader && alternativePreHeader.name;\n const preHeader =\n alternativeHeadline && hasAlternativePreHeader ? alternativePreHeader : category;\n const publishedListingPage = getPublishedListingUrl(preHeader);\n const label = preHeader ? preHeader.name : entity;\n const headline =\n !displayCategory || !hasAlternativePreHeader ? name : alternativeHeadline || name;\n return { publishedListingPage, preHeader, label, headline };\n};\n\nconst getImageDefinedProps = ({ image, displayThumbnail, name }) => {\n const { url: imageSrc, data } = image || {};\n const shouldDisplayThumbnail = displayThumbnail && imageSrc;\n const altText = (data && data.altText) || name;\n return { imageSrc, shouldDisplayThumbnail, altText };\n};\n\nconst getInitialModifiers = ({ modifier, style, otherProps }) => {\n const modifiers = [modifier, style];\n const { sponsored, featured } = otherProps;\n if (sponsored) modifiers.push('sponsored');\n if (featured) modifiers.push('featured');\n\n return modifiers;\n};\n\nexport default Card;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Card.js","names":["React","Fragment","useRouter","PropTypes","BlazeLink","ClickWrapper","getModifiers","renderChildren","updateChildrensParent","getClickWrapperOptions","LazyImage","getPublishedListingUrl","useDynamicSizeKey","CARD_STRING","CARD_CHILDREN_WITH_LINKS","BuildPBComponents","Card","_ref","id","image","name","url","graphqlEntityMap","entityProps","alternativePreHeader","alternativeHeadline","category","modifier","parsedPropsToDisplay","propsToDisplay","propsToDisplayModifiers","gtmId","style","priority","cardChildren","gtmChildren","displayCategory","displayThumbnail","displayTitle","enableOverlay","enableCarousel","titleOverlayModifier","overlayModifier","gridModifier","pageBuilderComponents","__typename","dataEntity","otherProps","_objectWithoutProperties","_excluded","entity","parent","itemId","itemEntity","router","imageSrc","shouldDisplayThumbnail","altText","getImageDefinedProps","modifiers","getInitialModifiers","publishedListingPage","preHeader","label","headline","getCategoryDefinedProps","linkTitle","dynamicSizeKey","shouldUseClickWrapper","wrapperProps","Wrapper","classNameWithModifiers","contentWrapperModifier","titleWrapperModifier","handleCardClick","e","clickEventTag","target","tagName","toLowerCase","clickEventRole","role","shouldTriggerRouteChange","find","childTag","push","useLinkWrapper","process","env","BLAZE_PB_ADD_CLICK_TO_CARDS","clickProps","onClick","href","ariaLabel","CardWrapper","childLinkHref","undefined","ChildLinkWrapper","createElement","_extends","className","scroll","src","alt","sizeKey","title","length","map","prop","i","dynamicKey","propModifier","htmlAttribute","extraProps","props","children","encodeURIComponent","key","propTypes","string","isRequired","shape","data","object","array","bool","oneOfType","arrayOf","node","defaultProps","hasAlternativePreHeader","sponsored","featured"],"sources":["../../../src/components/Card/Card.js"],"sourcesContent":["import React, { Fragment } from 'react';\nimport { useRouter } from 'next/router';\nimport PropTypes from 'prop-types';\nimport BlazeLink from '../BlazeLink';\nimport ClickWrapper from '../ClickWrapper';\nimport {\n getModifiers,\n renderChildren,\n updateChildrensParent,\n getClickWrapperOptions\n} from '../../helpers';\nimport LazyImage from '../LazyImage';\nimport { getPublishedListingUrl, useDynamicSizeKey } from './helpers';\nimport { CARD_STRING, CARD_CHILDREN_WITH_LINKS } from './constants';\nimport BuildPBComponents from '../../hooks/helpers/buildPBComponents';\n\nconst Card = ({\n id,\n image,\n name,\n url,\n graphqlEntityMap,\n entityProps,\n alternativePreHeader,\n alternativeHeadline,\n category,\n modifier,\n parsedPropsToDisplay,\n propsToDisplay,\n propsToDisplayModifiers,\n gtmId,\n style,\n priority,\n cardChildren,\n gtmChildren,\n displayCategory,\n displayThumbnail,\n displayTitle,\n enableOverlay,\n enableCarousel,\n titleOverlayModifier,\n overlayModifier,\n gridModifier,\n pageBuilderComponents,\n __typename: dataEntity,\n ...otherProps\n}) => {\n const entity = graphqlEntityMap[dataEntity];\n updateChildrensParent(cardChildren, id, entity);\n const parent = { itemId: id, itemEntity: entity };\n const router = useRouter();\n const { imageSrc, shouldDisplayThumbnail, altText } = getImageDefinedProps({\n image,\n displayThumbnail,\n name\n });\n\n const modifiers = getInitialModifiers({ modifier, style, otherProps });\n\n const { publishedListingPage, preHeader, label, headline } = getCategoryDefinedProps({\n alternativePreHeader,\n category,\n entity,\n alternativeHeadline,\n displayCategory,\n name\n });\n\n const linkTitle = name;\n\n const dynamicSizeKey = useDynamicSizeKey(CARD_STRING, { style, gridModifier, modifier });\n\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(\n gtmChildren,\n entityProps,\n id\n );\n\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n\n const classNameWithModifiers = getModifiers(CARD_STRING, modifiers);\n\n const contentWrapperModifier = `${getModifiers('card__content-wrapper', modifiers)} ${\n enableOverlay && enableCarousel ? overlayModifier : ''\n }`;\n\n const titleWrapperModifier = `${getModifiers('card__title', modifiers)} ${\n enableOverlay && enableCarousel ? titleOverlayModifier : ''\n }`;\n\n const handleCardClick = e => {\n if (!url) return;\n\n const clickEventTag = e.target.tagName.toLowerCase();\n const clickEventRole = e.target.role;\n const shouldTriggerRouteChange =\n clickEventRole !== 'button' &&\n !CARD_CHILDREN_WITH_LINKS.find(childTag => childTag === clickEventTag);\n if (shouldTriggerRouteChange) router.push(`/Resolver`, url);\n };\n\n // todo: asses whether we make link wrapper default after wider testing with BLAZE_PB_ADD_CLICK_TO_CARDS\n const useLinkWrapper = url && process.env.BLAZE_PB_ADD_CLICK_TO_CARDS;\n const clickProps = useLinkWrapper\n ? {\n onClick: handleCardClick,\n href: url,\n ariaLabel: name\n }\n : {};\n const CardWrapper = useLinkWrapper ? BlazeLink : 'div';\n const childLinkHref = useLinkWrapper ? undefined : url;\n const ChildLinkWrapper = useLinkWrapper ? 'div' : BlazeLink;\n\n return (\n <Wrapper {...wrapperProps}>\n <CardWrapper className={classNameWithModifiers} {...clickProps}>\n {shouldDisplayThumbnail && (\n <div className={getModifiers('card__image', modifiers)}>\n <ChildLinkWrapper\n gtmId={gtmId}\n href={childLinkHref}\n className=\"card__image-link\"\n scroll>\n <LazyImage\n src={imageSrc}\n alt={altText}\n sizeKey={dynamicSizeKey}\n priority={priority}\n />\n </ChildLinkWrapper>\n </div>\n )}\n <div className={contentWrapperModifier}>\n <div className={getModifiers('card__content', modifiers)}>\n {displayCategory &&\n (publishedListingPage ? (\n <ChildLinkWrapper\n gtmId={gtmId}\n href={publishedListingPage}\n className=\"badge badge--label\"\n scroll>\n {preHeader.name}\n </ChildLinkWrapper>\n ) : (\n <div className=\"badge badge--label\">{label}</div>\n ))}\n {displayTitle && (\n <div className={titleWrapperModifier}>\n <ChildLinkWrapper title={linkTitle} gtmId={gtmId} href={childLinkHref} scroll>\n {headline}\n </ChildLinkWrapper>\n </div>\n )}\n {!!pageBuilderComponents.length && (\n <div className=\"card__item card__item--full\" data-testid=\"full-card\">\n {BuildPBComponents(pageBuilderComponents, { parent })}\n </div>\n )}\n {!!parsedPropsToDisplay.length && (\n <div className={getModifiers('card__details', modifiers)}>\n {parsedPropsToDisplay.map((prop, i) => {\n if (!prop) return null;\n\n const dynamicKey = `${id}${i}`;\n const propModifier = propsToDisplayModifiers[i] || '';\n\n const { htmlAttribute } = propsToDisplay[i] || {};\n const extraProps = {};\n if (htmlAttribute && prop.props.children) {\n extraProps[htmlAttribute] = encodeURIComponent(prop.props.children[2]);\n }\n\n return (\n <span key={dynamicKey} className={propModifier} {...extraProps}>\n {prop}\n </span>\n );\n })}\n </div>\n )}\n </div>\n {!!cardChildren && (\n <div className=\"card__child-content\">{renderChildren(cardChildren)}</div>\n )}\n </div>\n </CardWrapper>\n </Wrapper>\n );\n};\n\nCard.propTypes = {\n id: PropTypes.string.isRequired,\n image: PropTypes.shape({\n url: PropTypes.string,\n data: PropTypes.object\n }),\n graphqlEntityMap: PropTypes.object.isRequired,\n __typename: PropTypes.string.isRequired,\n style: PropTypes.string,\n parsedPropsToDisplay: PropTypes.array,\n propsToDisplay: PropTypes.array,\n propsToDisplayModifiers: PropTypes.array,\n url: PropTypes.string,\n name: PropTypes.string.isRequired,\n entityProps: PropTypes.object,\n gtmId: PropTypes.string,\n alternativePreHeader: PropTypes.shape({\n name: PropTypes.string\n }),\n alternativeHeadline: PropTypes.string,\n category: PropTypes.shape({\n name: PropTypes.string,\n publishedListingPage: PropTypes.shape({\n url: PropTypes.string\n })\n }),\n modifier: PropTypes.string,\n displayCategory: PropTypes.bool.isRequired,\n displayThumbnail: PropTypes.bool.isRequired,\n displayTitle: PropTypes.bool.isRequired,\n enableCarousel: PropTypes.bool,\n enableOverlay: PropTypes.bool,\n overlayModifier: PropTypes.string,\n titleOverlayModifier: PropTypes.string,\n cardChildren: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n gtmChildren: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n gridModifier: PropTypes.string,\n priority: PropTypes.bool,\n pageBuilderComponents: PropTypes.array\n};\n\nCard.defaultProps = {\n entityProps: {},\n pageBuilderComponents: [],\n image: {\n url: null,\n data: {}\n },\n gtmId: '',\n style: 'portrait',\n parsedPropsToDisplay: [],\n propsToDisplay: [],\n propsToDisplayModifiers: [],\n url: '',\n alternativePreHeader: null,\n alternativeHeadline: '',\n category: null,\n modifier: '',\n cardChildren: [],\n gtmChildren: [],\n gridModifier: '',\n priority: false,\n overlayModifier: '',\n titleOverlayModifier: '',\n enableOverlay: false,\n enableCarousel: false\n};\n\nconst getCategoryDefinedProps = ({\n alternativePreHeader,\n category,\n entity,\n alternativeHeadline,\n displayCategory,\n name\n}) => {\n const hasAlternativePreHeader = alternativePreHeader && alternativePreHeader.name;\n const preHeader =\n alternativeHeadline && hasAlternativePreHeader ? alternativePreHeader : category;\n const publishedListingPage = getPublishedListingUrl(preHeader);\n const label = preHeader ? preHeader.name : entity;\n const headline =\n !displayCategory || !hasAlternativePreHeader ? name : alternativeHeadline || name;\n return { publishedListingPage, preHeader, label, headline };\n};\n\nconst getImageDefinedProps = ({ image, displayThumbnail, name }) => {\n const { url: imageSrc, data } = image || {};\n const shouldDisplayThumbnail = displayThumbnail && imageSrc;\n const altText = (data && data.altText) || name;\n return { imageSrc, shouldDisplayThumbnail, altText };\n};\n\nconst getInitialModifiers = ({ modifier, style, otherProps }) => {\n const modifiers = [modifier, style];\n const { sponsored, featured } = otherProps;\n if (sponsored) modifiers.push('sponsored');\n if (featured) modifiers.push('featured');\n\n return modifiers;\n};\n\nexport default Card;\n"],"mappings":"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"}
@@ -6,6 +6,7 @@ import { HOVER, MOUSE_ENTER, MOUSE_LEAVE, HIDDEN } from '../../constants';
6
6
  import { hasChildren } from '../../helpers';
7
7
  import BlazeLink from '../BlazeLink';
8
8
  import MenuContext from '../Menu/MenuContext';
9
+ import { injectHelperIntoTemplate } from './helpers';
9
10
  const MenuItemRender = ({
10
11
  children,
11
12
  eventType,
@@ -25,7 +26,7 @@ const MenuItemRender = ({
25
26
  const {
26
27
  loading: loadingUrl,
27
28
  data: [urlToUse]
28
- } = useStringTemplate(parent, [url]);
29
+ } = useStringTemplate(parent, [injectHelperIntoTemplate(url, 'url_encode')]);
29
30
  useEffect(() => {
30
31
  if (!showMobileMenu) setDisplayChildren(false);
31
32
  }, [showMobileMenu]);
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemRender.js","names":["React","useState","useContext","useEffect","PropTypes","FaChevronDown","FaChevronUp","useStringTemplate","HOVER","MOUSE_ENTER","MOUSE_LEAVE","HIDDEN","hasChildren","BlazeLink","MenuContext","MenuItemRender","children","eventType","text","modifier","url","parent","displayChildren","setDisplayChildren","showMobileMenu","loading","loadingText","data","textToUse","loadingUrl","urlToUse","isHoverEvent","childrenDisplayClass","handleItemEvent","type","hasValidChildren","createElement","className","onMouseEnter","onMouseLeave","href","role","onClick","propTypes","string","isRequired","object","oneOfType","arrayOf","node","defaultProps"],"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 { 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';\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\n const {\n loading: loadingUrl,\n data: [urlToUse]\n } = useStringTemplate(parent, [url]);\n\n useEffect(\n () => {\n if (!showMobileMenu) setDisplayChildren(false);\n },\n [showMobileMenu]\n );\n\n if (loadingUrl || loadingText) return '';\n\n const isHoverEvent = eventType === HOVER;\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 const hasValidChildren = hasChildren(children);\n\n return (\n <li className={modifier} onMouseEnter={handleItemEvent} onMouseLeave={handleItemEvent}>\n <div className=\"menu--item--link\">\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={() => setDisplayChildren(!displayChildren)}>\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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"}
1
+ {"version":3,"file":"MenuItemRender.js","names":["React","useState","useContext","useEffect","PropTypes","FaChevronDown","FaChevronUp","useStringTemplate","HOVER","MOUSE_ENTER","MOUSE_LEAVE","HIDDEN","hasChildren","BlazeLink","MenuContext","injectHelperIntoTemplate","MenuItemRender","children","eventType","text","modifier","url","parent","displayChildren","setDisplayChildren","showMobileMenu","loading","loadingText","data","textToUse","loadingUrl","urlToUse","isHoverEvent","childrenDisplayClass","handleItemEvent","type","hasValidChildren","createElement","className","onMouseEnter","onMouseLeave","href","role","onClick","propTypes","string","isRequired","object","oneOfType","arrayOf","node","defaultProps"],"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 { 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\n const {\n loading: loadingUrl,\n data: [urlToUse]\n } = useStringTemplate(parent, [injectHelperIntoTemplate(url, 'url_encode')]);\n\n useEffect(\n () => {\n if (!showMobileMenu) setDisplayChildren(false);\n },\n [showMobileMenu]\n );\n\n if (loadingUrl || loadingText) return '';\n\n const isHoverEvent = eventType === HOVER;\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 const hasValidChildren = hasChildren(children);\n\n return (\n <li className={modifier} onMouseEnter={handleItemEvent} onMouseLeave={handleItemEvent}>\n <div className=\"menu--item--link\">\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={() => setDisplayChildren(!displayChildren)}>\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":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,UAAU,EAAEC,SAAS,QAAQ,OAAO;AAC9D,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,aAAa,EAAEC,WAAW,QAAQ,gBAAgB;AAC3D,SAASC,iBAAiB,QAAQ,6BAA6B;AAC/D,SAASC,KAAK,EAAEC,WAAW,EAAEC,WAAW,EAAEC,MAAM,QAAQ,iBAAiB;AACzE,SAASC,WAAW,QAAQ,eAAe;AAC3C,OAAOC,SAAS,MAAM,cAAc;AACpC,OAAOC,WAAW,MAAM,qBAAqB;AAC7C,SAASC,wBAAwB,QAAQ,WAAW;AAEpD,MAAMC,cAAc,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,SAAS;EAAEC,IAAI;EAAEC,QAAQ;EAAEC,GAAG;EAAEC;AAAO,CAAC,KAAK;EAC/E,MAAM,CAACC,eAAe,EAAEC,kBAAkB,CAAC,GAAGvB,QAAQ,CAAC,KAAK,CAAC;EAC7D,MAAM;IAAEwB;EAAe,CAAC,GAAGvB,UAAU,CAACY,WAAW,CAAC;EAClD,MAAM;IACJY,OAAO,EAAEC,WAAW;IACpBC,IAAI,EAAE,CAACC,SAAS;EAClB,CAAC,GAAGtB,iBAAiB,CAACe,MAAM,EAAE,CAACH,IAAI,CAAC,CAAC;EAErC,MAAM;IACJO,OAAO,EAAEI,UAAU;IACnBF,IAAI,EAAE,CAACG,QAAQ;EACjB,CAAC,GAAGxB,iBAAiB,CAACe,MAAM,EAAE,CAACP,wBAAwB,CAACM,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;EAE5ElB,SAAS,CACP,MAAM;IACJ,IAAI,CAACsB,cAAc,EAAED,kBAAkB,CAAC,KAAK,CAAC;EAChD,CAAC,EACD,CAACC,cAAc,CACjB,CAAC;EAED,IAAIK,UAAU,IAAIH,WAAW,EAAE,OAAO,EAAE;EAExC,MAAMK,YAAY,GAAGd,SAAS,KAAKV,KAAK;EACxC,MAAMyB,oBAAoB,GAAGV,eAAe,GAAG,EAAE,GAAGZ,MAAM;EAE1D,MAAMuB,eAAe,GAAGA,CAAC;IAAEC;EAAK,CAAC,KAAK;IACpC,IAAIH,YAAY,EAAE;MAChB,IAAIG,IAAI,KAAK1B,WAAW,EAAE;QACxBe,kBAAkB,CAAC,IAAI,CAAC;MAC1B;MACA,IAAIW,IAAI,KAAKzB,WAAW,EAAE;QACxBc,kBAAkB,CAAC,KAAK,CAAC;MAC3B;IACF;EACF,CAAC;EACD,MAAMY,gBAAgB,GAAGxB,WAAW,CAACK,QAAQ,CAAC;EAE9C,oBACEjB,KAAA,CAAAqC,aAAA;IAAIC,SAAS,EAAElB,QAAS;IAACmB,YAAY,EAAEL,eAAgB;IAACM,YAAY,EAAEN;EAAgB,gBACpFlC,KAAA,CAAAqC,aAAA;IAAKC,SAAS,EAAC;EAAkB,GAC9BP,QAAQ,gBACP/B,KAAA,CAAAqC,aAAA,CAACxB,SAAS;IAAC4B,IAAI,EAAEV;EAAS,GAAEF,SAAqB,CAAC,gBAElD7B,KAAA,CAAAqC,aAAA;IAAMK,IAAI,EAAC,QAAQ;IAACC,OAAO,EAAET;EAAgB,GAC1CL,SACG,CACP,EACAO,gBAAgB,iBACfpC,KAAA,CAAAqC,aAAA;IACEK,IAAI,EAAC,QAAQ;IACbJ,SAAS,EAAC,wBAAwB;IAClCK,OAAO,EAAEA,CAAA,KAAMnB,kBAAkB,CAAC,CAACD,eAAe;EAAE,GACnDA,eAAe,gBAAGvB,KAAA,CAAAqC,aAAA,CAAC/B,WAAW,MAAE,CAAC,gBAAGN,KAAA,CAAAqC,aAAA,CAAChC,aAAa,MAAE,CACpD,CAEF,CAAC,EAEL+B,gBAAgB,iBACfpC,KAAA,CAAAqC,aAAA;IAAKC,SAAS,EAAG,uBAAsBL,oBAAqB;EAAE,GAAEhB,QAAc,CAE9E,CAAC;AAET,CAAC;AAEDD,cAAc,CAAC4B,SAAS,GAAG;EACzBxB,QAAQ,EAAEhB,SAAS,CAACyC,MAAM;EAC1B1B,IAAI,EAAEf,SAAS,CAACyC,MAAM;EACtBxB,GAAG,EAAEjB,SAAS,CAACyC,MAAM;EACrB3B,SAAS,EAAEd,SAAS,CAACyC,MAAM,CAACC,UAAU;EACtCxB,MAAM,EAAElB,SAAS,CAAC2C,MAAM;EACxB9B,QAAQ,EAAEb,SAAS,CAAC4C,SAAS,CAAC,CAAC5C,SAAS,CAAC6C,OAAO,CAAC7C,SAAS,CAAC8C,IAAI,CAAC,EAAE9C,SAAS,CAAC8C,IAAI,CAAC;AACnF,CAAC;AAEDlC,cAAc,CAACmC,YAAY,GAAG;EAC5B9B,GAAG,EAAE,EAAE;EACPD,QAAQ,EAAE,EAAE;EACZD,IAAI,EAAE,EAAE;EACRF,QAAQ,EAAE,IAAI;EACdK,MAAM,EAAE,CAAC;AACX,CAAC;AAED,eAAeN,cAAc"}
@@ -0,0 +1,3 @@
1
+ import injectHelperIntoTemplate from './inject-helper-into-template';
2
+ export { injectHelperIntoTemplate };
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["injectHelperIntoTemplate"],"sources":["../../../../src/components/MenuItem/helpers/index.js"],"sourcesContent":["import injectHelperIntoTemplate from './inject-helper-into-template';\n\nexport { injectHelperIntoTemplate };\n"],"mappings":"AAAA,OAAOA,wBAAwB,MAAM,+BAA+B;AAEpE,SAASA,wBAAwB"}
@@ -0,0 +1,8 @@
1
+ const injectHelperIntoTemplate = (template, helper) => {
2
+ if (!helper || !template) return template;
3
+ let result = template.replace(/{{{([^{}]+)}}}/g, `{{{${helper} $1}}}`);
4
+ result = result.replace(/{{([^{}]+)}}(?!})/g, `{{${helper} $1}}`);
5
+ return result;
6
+ };
7
+ export default injectHelperIntoTemplate;
8
+ //# sourceMappingURL=inject-helper-into-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-helper-into-template.js","names":["injectHelperIntoTemplate","template","helper","result","replace"],"sources":["../../../../src/components/MenuItem/helpers/inject-helper-into-template.js"],"sourcesContent":["const injectHelperIntoTemplate = (template, helper) => {\n if (!helper || !template) return template;\n\n let result = template.replace(/{{{([^{}]+)}}}/g, `{{{${helper} $1}}}`);\n\n result = result.replace(/{{([^{}]+)}}(?!})/g, `{{${helper} $1}}`);\n\n return result;\n};\n\nexport default injectHelperIntoTemplate;\n"],"mappings":"AAAA,MAAMA,wBAAwB,GAAGA,CAACC,QAAQ,EAAEC,MAAM,KAAK;EACrD,IAAI,CAACA,MAAM,IAAI,CAACD,QAAQ,EAAE,OAAOA,QAAQ;EAEzC,IAAIE,MAAM,GAAGF,QAAQ,CAACG,OAAO,CAAC,iBAAiB,EAAG,MAAKF,MAAO,QAAO,CAAC;EAEtEC,MAAM,GAAGA,MAAM,CAACC,OAAO,CAAC,oBAAoB,EAAG,KAAIF,MAAO,OAAM,CAAC;EAEjE,OAAOC,MAAM;AACf,CAAC;AAED,eAAeH,wBAAwB"}
@@ -47,9 +47,8 @@ const buildFiltersQuery = ({
47
47
  queryKeys,
48
48
  query
49
49
  }) => {
50
- if (!shouldAddFilters) return [];
51
50
  const mustFilters = [];
52
- if (query) {
51
+ if (shouldAddFilters && query) {
53
52
  Object.keys(query).forEach(queryKey => {
54
53
  if (QUERY_KEYS_TO_IGNORE.includes(queryKey)) return;
55
54
  if (!queryKey || !query[queryKey]) return;
@@ -1 +1 @@
1
- {"version":3,"file":"build-filters-query.js","names":["QUERY_KEYS_TO_IGNORE","builFilterObject","queryKey","value","filters","isRange","isInQuery","min","minValue","max","maxValue","push","range","gte","Number","lte","key","isArray","Array","singleFilterObj","match","forEach","filterValue","buildFiltersQuery","shouldAddFilters","filterBy","filterByProperty","rangeValues","queryKeys","query","mustFilters","Object","keys","includes","queryValue","length","filterByPropOption","filterByPropKey","split","filterByOption","indexOf","filteryByValue","filterByKeyword"],"sources":["../../src/helpers/build-filters-query.js"],"sourcesContent":["const QUERY_KEYS_TO_IGNORE = ['dataNotSet', 'shouldSearch', 'search_term'];\n\nconst builFilterObject = ({ queryKey, value, filters, isRange, isInQuery }) => {\n if (isRange) {\n // don't add to query if value matches range values\n if (isInQuery || (value.min !== value.minValue && value.max !== value.maxValue)) {\n filters.push({\n range: {\n [queryKey]: {\n gte: Number(value.minValue),\n lte: Number(value.maxValue)\n }\n }\n });\n }\n return;\n }\n\n const key = isRange ? queryKey : `${queryKey}.keyword`;\n\n const isArray = Array.isArray(value);\n if (!isArray) {\n const singleFilterObj = { match: { [key]: value } };\n filters.push(singleFilterObj);\n return;\n }\n\n value.forEach(filterValue => {\n filters.push({ match: { [key]: filterValue } });\n });\n};\n\nconst buildFiltersQuery = ({\n shouldAddFilters,\n filterBy,\n filterByProperty,\n rangeValues,\n queryKeys,\n query\n}) => {\n if (!shouldAddFilters) return [];\n const mustFilters = [];\n if (query) {\n Object.keys(query).forEach(queryKey => {\n if (QUERY_KEYS_TO_IGNORE.includes(queryKey)) return;\n if (!queryKey || !query[queryKey]) return;\n const queryValue = query[queryKey];\n\n const isRange = rangeValues.includes(queryKey);\n const isInQuery = queryKeys.includes(queryKey);\n builFilterObject({ queryKey, value: queryValue, filters: mustFilters, isRange, isInQuery });\n });\n }\n\n if (filterByProperty && filterByProperty.length) {\n filterByProperty.forEach(filterByPropOption => {\n const [filterByPropKey] = filterByPropOption.split('/');\n filterBy.forEach(filterByOption => {\n if (filterByOption.indexOf(filterByPropKey) === -1) return;\n const [, filteryByValue] = filterByOption.split('/');\n const filterByKeyword = `${filterByPropKey}.keyword`;\n if (!filteryByValue) return;\n mustFilters.push({ match: { [filterByKeyword]: filteryByValue } });\n });\n });\n }\n\n return mustFilters;\n};\n\nexport default buildFiltersQuery;\n"],"mappings":"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"}
1
+ {"version":3,"file":"build-filters-query.js","names":["QUERY_KEYS_TO_IGNORE","builFilterObject","queryKey","value","filters","isRange","isInQuery","min","minValue","max","maxValue","push","range","gte","Number","lte","key","isArray","Array","singleFilterObj","match","forEach","filterValue","buildFiltersQuery","shouldAddFilters","filterBy","filterByProperty","rangeValues","queryKeys","query","mustFilters","Object","keys","includes","queryValue","length","filterByPropOption","filterByPropKey","split","filterByOption","indexOf","filteryByValue","filterByKeyword"],"sources":["../../src/helpers/build-filters-query.js"],"sourcesContent":["const QUERY_KEYS_TO_IGNORE = ['dataNotSet', 'shouldSearch', 'search_term'];\n\nconst builFilterObject = ({ queryKey, value, filters, isRange, isInQuery }) => {\n if (isRange) {\n // don't add to query if value matches range values\n if (isInQuery || (value.min !== value.minValue && value.max !== value.maxValue)) {\n filters.push({\n range: {\n [queryKey]: {\n gte: Number(value.minValue),\n lte: Number(value.maxValue)\n }\n }\n });\n }\n return;\n }\n\n const key = isRange ? queryKey : `${queryKey}.keyword`;\n\n const isArray = Array.isArray(value);\n if (!isArray) {\n const singleFilterObj = { match: { [key]: value } };\n filters.push(singleFilterObj);\n return;\n }\n\n value.forEach(filterValue => {\n filters.push({ match: { [key]: filterValue } });\n });\n};\n\nconst buildFiltersQuery = ({\n shouldAddFilters,\n filterBy,\n filterByProperty,\n rangeValues,\n queryKeys,\n query\n}) => {\n const mustFilters = [];\n if (shouldAddFilters && query) {\n Object.keys(query).forEach(queryKey => {\n if (QUERY_KEYS_TO_IGNORE.includes(queryKey)) return;\n if (!queryKey || !query[queryKey]) return;\n const queryValue = query[queryKey];\n\n const isRange = rangeValues.includes(queryKey);\n const isInQuery = queryKeys.includes(queryKey);\n builFilterObject({ queryKey, value: queryValue, filters: mustFilters, isRange, isInQuery });\n });\n }\n\n if (filterByProperty && filterByProperty.length) {\n filterByProperty.forEach(filterByPropOption => {\n const [filterByPropKey] = filterByPropOption.split('/');\n filterBy.forEach(filterByOption => {\n if (filterByOption.indexOf(filterByPropKey) === -1) return;\n const [, filteryByValue] = filterByOption.split('/');\n const filterByKeyword = `${filterByPropKey}.keyword`;\n if (!filteryByValue) return;\n mustFilters.push({ match: { [filterByKeyword]: filteryByValue } });\n });\n });\n }\n\n return mustFilters;\n};\n\nexport default buildFiltersQuery;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/react-page-builder",
3
- "version": "0.146.0-core-styles.10",
3
+ "version": "0.146.0-core-styles.21",
4
4
  "description": "Blaze react page builder",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -35,7 +35,7 @@
35
35
  "@blaze-cms/plugin-search-ui": "0.145.1-core-styles.0",
36
36
  "@blaze-cms/setup-ui": "0.145.1-core-styles.0",
37
37
  "@blaze-cms/utils": "0.145.1-core-styles.0",
38
- "@blaze-cms/utils-handlebars": "0.145.1-core-styles.0",
38
+ "@blaze-cms/utils-handlebars": "0.146.0-core-styles.11",
39
39
  "@blaze-react/breadcrumb": "0.8.0-alpha.60",
40
40
  "@blaze-react/button": "0.8.0-alpha.82",
41
41
  "@blaze-react/checkboxes": "0.5.31",
@@ -90,5 +90,5 @@
90
90
  "lib/*",
91
91
  "lib-es/*"
92
92
  ],
93
- "gitHead": "8580be0b4f8978c896dc00a7a4933ce47ed95b37"
93
+ "gitHead": "c3a00918cf18de93fd43b5d589a0ac3b23d328b0"
94
94
  }
@@ -99,48 +99,57 @@ const Card = ({
99
99
  if (shouldTriggerRouteChange) router.push(`/Resolver`, url);
100
100
  };
101
101
 
102
- // todo: remove temp env var flag once widely tested BLAZE_PB_ADD_CLICK_TO_CARDS
103
- const clickProps =
104
- url && process.env.BLAZE_PB_ADD_CLICK_TO_CARDS
105
- ? {
106
- onClick: handleCardClick,
107
- role: 'button'
108
- }
109
- : {};
102
+ // todo: asses whether we make link wrapper default after wider testing with BLAZE_PB_ADD_CLICK_TO_CARDS
103
+ const useLinkWrapper = url && process.env.BLAZE_PB_ADD_CLICK_TO_CARDS;
104
+ const clickProps = useLinkWrapper
105
+ ? {
106
+ onClick: handleCardClick,
107
+ href: url,
108
+ ariaLabel: name
109
+ }
110
+ : {};
111
+ const CardWrapper = useLinkWrapper ? BlazeLink : 'div';
112
+ const childLinkHref = useLinkWrapper ? undefined : url;
113
+ const ChildLinkWrapper = useLinkWrapper ? 'div' : BlazeLink;
114
+
110
115
  return (
111
116
  <Wrapper {...wrapperProps}>
112
- <div className={classNameWithModifiers} {...clickProps}>
117
+ <CardWrapper className={classNameWithModifiers} {...clickProps}>
113
118
  {shouldDisplayThumbnail && (
114
119
  <div className={getModifiers('card__image', modifiers)}>
115
- <BlazeLink gtmId={gtmId} href={url} className="card__image-link" scroll>
120
+ <ChildLinkWrapper
121
+ gtmId={gtmId}
122
+ href={childLinkHref}
123
+ className="card__image-link"
124
+ scroll>
116
125
  <LazyImage
117
126
  src={imageSrc}
118
127
  alt={altText}
119
128
  sizeKey={dynamicSizeKey}
120
129
  priority={priority}
121
130
  />
122
- </BlazeLink>
131
+ </ChildLinkWrapper>
123
132
  </div>
124
133
  )}
125
134
  <div className={contentWrapperModifier}>
126
135
  <div className={getModifiers('card__content', modifiers)}>
127
136
  {displayCategory &&
128
137
  (publishedListingPage ? (
129
- <BlazeLink
138
+ <ChildLinkWrapper
130
139
  gtmId={gtmId}
131
140
  href={publishedListingPage}
132
141
  className="badge badge--label"
133
142
  scroll>
134
143
  {preHeader.name}
135
- </BlazeLink>
144
+ </ChildLinkWrapper>
136
145
  ) : (
137
146
  <div className="badge badge--label">{label}</div>
138
147
  ))}
139
148
  {displayTitle && (
140
149
  <div className={titleWrapperModifier}>
141
- <BlazeLink title={linkTitle} gtmId={gtmId} href={url} scroll>
150
+ <ChildLinkWrapper title={linkTitle} gtmId={gtmId} href={childLinkHref} scroll>
142
151
  {headline}
143
- </BlazeLink>
152
+ </ChildLinkWrapper>
144
153
  </div>
145
154
  )}
146
155
  {!!pageBuilderComponents.length && (
@@ -175,7 +184,7 @@ const Card = ({
175
184
  <div className="card__child-content">{renderChildren(cardChildren)}</div>
176
185
  )}
177
186
  </div>
178
- </div>
187
+ </CardWrapper>
179
188
  </Wrapper>
180
189
  );
181
190
  };
@@ -6,6 +6,7 @@ import { HOVER, MOUSE_ENTER, MOUSE_LEAVE, HIDDEN } from '../../constants';
6
6
  import { hasChildren } from '../../helpers';
7
7
  import BlazeLink from '../BlazeLink';
8
8
  import MenuContext from '../Menu/MenuContext';
9
+ import { injectHelperIntoTemplate } from './helpers';
9
10
 
10
11
  const MenuItemRender = ({ children, eventType, text, modifier, url, parent }) => {
11
12
  const [displayChildren, setDisplayChildren] = useState(false);
@@ -18,7 +19,7 @@ const MenuItemRender = ({ children, eventType, text, modifier, url, parent }) =>
18
19
  const {
19
20
  loading: loadingUrl,
20
21
  data: [urlToUse]
21
- } = useStringTemplate(parent, [url]);
22
+ } = useStringTemplate(parent, [injectHelperIntoTemplate(url, 'url_encode')]);
22
23
 
23
24
  useEffect(
24
25
  () => {
@@ -0,0 +1,3 @@
1
+ import injectHelperIntoTemplate from './inject-helper-into-template';
2
+
3
+ export { injectHelperIntoTemplate };
@@ -0,0 +1,11 @@
1
+ const injectHelperIntoTemplate = (template, helper) => {
2
+ if (!helper || !template) return template;
3
+
4
+ let result = template.replace(/{{{([^{}]+)}}}/g, `{{{${helper} $1}}}`);
5
+
6
+ result = result.replace(/{{([^{}]+)}}(?!})/g, `{{${helper} $1}}`);
7
+
8
+ return result;
9
+ };
10
+
11
+ export default injectHelperIntoTemplate;
@@ -38,9 +38,8 @@ const buildFiltersQuery = ({
38
38
  queryKeys,
39
39
  query
40
40
  }) => {
41
- if (!shouldAddFilters) return [];
42
41
  const mustFilters = [];
43
- if (query) {
42
+ if (shouldAddFilters && query) {
44
43
  Object.keys(query).forEach(queryKey => {
45
44
  if (QUERY_KEYS_TO_IGNORE.includes(queryKey)) return;
46
45
  if (!queryKey || !query[queryKey]) return;
@@ -2,8 +2,9 @@
2
2
  * @jest-environment jsdom
3
3
  */
4
4
  import React from 'react';
5
- import { render as _render, act, waitFor } from '@testing-library/react';
5
+ import { render as _render, act, waitFor, screen } from '@testing-library/react';
6
6
  import '@testing-library/jest-dom/extend-expect';
7
+ import { setEnvs, deleteEnvs } from '@blaze-cms/tools/test-helpers/test-files/test-env';
7
8
  import Card from '../../../../../src/components/Card/Card';
8
9
  import { pageBuilderComponentsMocks } from './mockData';
9
10
 
@@ -211,4 +212,18 @@ describe('Card component', () => {
211
212
  });
212
213
  expect(getByTestId('full-card')).toBeInTheDocument();
213
214
  });
215
+
216
+ it('should render link wrapper', async () => {
217
+ const envs = {
218
+ BLAZE_PB_ADD_CLICK_TO_CARDS: 'true'
219
+ };
220
+ setEnvs(envs);
221
+ const { asFragment } = await render(Card, {
222
+ ...componentProps,
223
+ pageBuilderComponents: pageBuilderComponentsMocks
224
+ });
225
+ expect(screen.getByLabelText(componentProps.name)).toBeInTheDocument();
226
+ expect(asFragment()).toMatchSnapshot();
227
+ deleteEnvs(envs);
228
+ });
214
229
  });
@@ -303,6 +303,89 @@ exports[`Card component should render customPreheader and alternativeHeadline in
303
303
  </DocumentFragment>
304
304
  `;
305
305
 
306
+ exports[`Card component should render link wrapper 1`] = `
307
+ <DocumentFragment>
308
+ <a
309
+ aria-label="mock name"
310
+ class="card card--portrait"
311
+ href="/mockurl"
312
+ >
313
+ <div
314
+ class="card__image card__image--portrait"
315
+ >
316
+ <div
317
+ class="card__image-link"
318
+ gtmid=""
319
+ >
320
+ <img
321
+ alt="test-altText"
322
+ src="test-url"
323
+ />
324
+ </div>
325
+ </div>
326
+ <div
327
+ class="card__content-wrapper card__content-wrapper--portrait "
328
+ >
329
+ <div
330
+ class="card__content card__content--portrait"
331
+ >
332
+ <div
333
+ class="badge badge--label"
334
+ gtmid=""
335
+ href="published-url"
336
+ >
337
+ category-name
338
+ </div>
339
+ <div
340
+ class="card__title card__title--portrait "
341
+ >
342
+ <div
343
+ gtmid=""
344
+ title="mock name"
345
+ >
346
+ mock name
347
+ </div>
348
+ </div>
349
+ <div
350
+ class="card__item card__item--full"
351
+ data-testid="full-card"
352
+ />
353
+ <div
354
+ class="card__details card__details--portrait"
355
+ >
356
+ <span
357
+ class=""
358
+ data-testid="some%20description"
359
+ >
360
+ some description
361
+ </span>
362
+ <span
363
+ class=""
364
+ >
365
+ extra props
366
+ </span>
367
+ </div>
368
+ </div>
369
+ <div
370
+ class="card__child-content"
371
+ >
372
+ <div
373
+ class="child_1"
374
+ >
375
+ some stuff
376
+ </div>
377
+ <div
378
+ class="child_2"
379
+ modifier="child-modi"
380
+ >
381
+ another child
382
+ </div>
383
+ </div>
384
+ </div>
385
+ </a>
386
+ </DocumentFragment>
387
+ `;
388
+
306
389
  exports[`Card component should render without throwing an error and match snapshot 1`] = `
307
390
  <DocumentFragment>
308
391
  <div
@@ -10,7 +10,7 @@ exports[`MenuItem component should render a MenuItem based on passed parameters
10
10
  >
11
11
  <a
12
12
  aria-label="Category: {{currentParent.name}}"
13
- href="/search?category.name={{currentParent.name}}"
13
+ href="/search?category.name={{url_encode currentParent.name}}"
14
14
  >
15
15
  Category: {{currentParent.name}}
16
16
  </a>
@@ -0,0 +1,44 @@
1
+ import '@testing-library/jest-dom/extend-expect';
2
+ import { injectHelperIntoTemplate } from '../../../../../../src/components/MenuItem/helpers';
3
+
4
+ describe('injectHelperIntoTemplate', () => {
5
+ it('should return the same template if there are no placeholders', () => {
6
+ const template = '/parts?productTypes.name=currentParent.name';
7
+ const result = injectHelperIntoTemplate(template, 'url_encode');
8
+ expect(result).toBe(template);
9
+ });
10
+
11
+ it('should return the same template if there are no helper provided', () => {
12
+ const template = '/parts?productTypes.name={{currentParent.name}}';
13
+ const result = injectHelperIntoTemplate(template);
14
+ expect(result).toBe(template);
15
+ });
16
+
17
+ it('should inject helper into template with {{ placeholder }}', () => {
18
+ const template = '/parts?productTypes.name={{currentParent.name}}';
19
+ const expected = '/parts?productTypes.name={{url_encode currentParent.name}}';
20
+ const result = injectHelperIntoTemplate(template, 'url_encode');
21
+ expect(result).toBe(expected);
22
+ });
23
+
24
+ it('should inject helper into template with {{{ placeholder }}}', () => {
25
+ const template = '/parts?productTypes.name={{{currentParent.name}}}';
26
+ const expected = '/parts?productTypes.name={{{url_encode currentParent.name}}}';
27
+ const result = injectHelperIntoTemplate(template, 'url_encode');
28
+ expect(result).toBe(expected);
29
+ });
30
+
31
+ it('should handle multiple {{ and {{{ placeholders in the template', () => {
32
+ const template =
33
+ '/parts?productTypes.name={{currentParent.name}}&productTypes.id={{{currentParent.id}}}';
34
+ const expected =
35
+ '/parts?productTypes.name={{url_encode currentParent.name}}&productTypes.id={{{url_encode currentParent.id}}}';
36
+ const result = injectHelperIntoTemplate(template, 'url_encode');
37
+ expect(result).toBe(expected);
38
+ });
39
+
40
+ it('should return null when template is null', () => {
41
+ const result = injectHelperIntoTemplate(null, 'url_encode');
42
+ expect(result).toBeNull();
43
+ });
44
+ });