@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.
- package/CHANGELOG.md +27 -0
- package/lib/components/Card/Card.js +14 -9
- package/lib/components/Card/Card.js.map +1 -1
- package/lib/components/MenuItem/MenuItemRender.js +2 -1
- package/lib/components/MenuItem/MenuItemRender.js.map +1 -1
- package/lib/components/MenuItem/helpers/index.js +15 -0
- package/lib/components/MenuItem/helpers/index.js.map +1 -0
- package/lib/components/MenuItem/helpers/inject-helper-into-template.js +17 -0
- package/lib/components/MenuItem/helpers/inject-helper-into-template.js.map +1 -0
- package/lib/helpers/build-filters-query.js +1 -2
- package/lib/helpers/build-filters-query.js.map +1 -1
- package/lib-es/components/Card/Card.js +14 -9
- package/lib-es/components/Card/Card.js.map +1 -1
- package/lib-es/components/MenuItem/MenuItemRender.js +2 -1
- package/lib-es/components/MenuItem/MenuItemRender.js.map +1 -1
- package/lib-es/components/MenuItem/helpers/index.js +3 -0
- package/lib-es/components/MenuItem/helpers/index.js.map +1 -0
- package/lib-es/components/MenuItem/helpers/inject-helper-into-template.js +8 -0
- package/lib-es/components/MenuItem/helpers/inject-helper-into-template.js.map +1 -0
- package/lib-es/helpers/build-filters-query.js +1 -2
- package/lib-es/helpers/build-filters-query.js.map +1 -1
- package/package.json +3 -3
- package/src/components/Card/Card.js +25 -16
- package/src/components/MenuItem/MenuItemRender.js +2 -1
- package/src/components/MenuItem/helpers/index.js +3 -0
- package/src/components/MenuItem/helpers/inject-helper-into-template.js +11 -0
- package/src/helpers/build-filters-query.js +1 -2
- package/tests/unit/src/components/Card/Card.test.js +16 -1
- package/tests/unit/src/components/Card/__snapshots__/Card.test.js.snap +83 -0
- package/tests/unit/src/components/MenuItem/__snapshots__/MenuItem.test.js.snap +1 -1
- 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:
|
|
121
|
-
var
|
|
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
|
-
|
|
124
|
+
href: url,
|
|
125
|
+
ariaLabel: name
|
|
124
126
|
} : {};
|
|
125
|
-
|
|
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(
|
|
134
|
+
}, /*#__PURE__*/_react["default"].createElement(ChildLinkWrapper, {
|
|
130
135
|
gtmId: gtmId,
|
|
131
|
-
href:
|
|
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(
|
|
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(
|
|
157
|
+
}, /*#__PURE__*/_react["default"].createElement(ChildLinkWrapper, {
|
|
153
158
|
title: linkTitle,
|
|
154
159
|
gtmId: gtmId,
|
|
155
|
-
href:
|
|
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":";;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,GAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,YAAA,GAAAN,sBAAA,CAAAF,OAAA;
|
|
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
|
|
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":"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"}
|
|
@@ -99,18 +99,23 @@ const Card = _ref => {
|
|
|
99
99
|
if (shouldTriggerRouteChange) router.push(`/Resolver`, url);
|
|
100
100
|
};
|
|
101
101
|
|
|
102
|
-
// todo:
|
|
103
|
-
const
|
|
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
|
-
|
|
106
|
+
href: url,
|
|
107
|
+
ariaLabel: name
|
|
106
108
|
} : {};
|
|
107
|
-
|
|
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(
|
|
116
|
+
}, /*#__PURE__*/React.createElement(ChildLinkWrapper, {
|
|
112
117
|
gtmId: gtmId,
|
|
113
|
-
href:
|
|
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(
|
|
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(
|
|
139
|
+
}, /*#__PURE__*/React.createElement(ChildLinkWrapper, {
|
|
135
140
|
title: linkTitle,
|
|
136
141
|
gtmId: gtmId,
|
|
137
|
-
href:
|
|
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":";;;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,SAAS,QAAQ,aAAa;AACvC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,SAAS,MAAM,cAAc;AACpC,OAAOC,YAAY,MAAM,iBAAiB;AAC1C,SACEC,YAAY,EACZC,cAAc,EACdC,qBAAqB,EACrBC,sBAAsB,QACjB,eAAe;AACtB,OAAOC,SAAS,MAAM,cAAc;AACpC,SAASC,sBAAsB,EAAEC,iBAAiB,QAAQ,WAAW;AACrE,SAASC,WAAW,EAAEC,wBAAwB,QAAQ,aAAa;AACnE,OAAOC,iBAAiB,MAAM,uCAAuC;AAErE,MAAMC,IAAI,GAAGC,IAAA,IA8BP;EAAA,IA9BQ;MACZC,EAAE;MACFC,KAAK;MACLC,IAAI;MACJC,GAAG;MACHC,gBAAgB;MAChBC,WAAW;MACXC,oBAAoB;MACpBC,mBAAmB;MACnBC,QAAQ;MACRC,QAAQ;MACRC,oBAAoB;MACpBC,cAAc;MACdC,uBAAuB;MACvBC,KAAK;MACLC,KAAK;MACLC,QAAQ;MACRC,YAAY;MACZC,WAAW;MACXC,eAAe;MACfC,gBAAgB;MAChBC,YAAY;MACZC,aAAa;MACbC,cAAc;MACdC,oBAAoB;MACpBC,eAAe;MACfC,YAAY;MACZC,qBAAqB;MACrBC,UAAU,EAAEC;IAEd,CAAC,GAAA7B,IAAA;IADI8B,UAAU,GAAAC,wBAAA,CAAA/B,IAAA,EAAAgC,SAAA;EAEb,MAAMC,MAAM,GAAG5B,gBAAgB,CAACwB,UAAU,CAAC;EAC3CtC,qBAAqB,CAAC0B,YAAY,EAAEhB,EAAE,EAAEgC,MAAM,CAAC;EAC/C,MAAMC,MAAM,GAAG;IAAEC,MAAM,EAAElC,EAAE;IAAEmC,UAAU,EAAEH;EAAO,CAAC;EACjD,MAAMI,MAAM,GAAGpD,SAAS,CAAC,CAAC;EAC1B,MAAM;IAAEqD,QAAQ;IAAEC,sBAAsB;IAAEC;EAAQ,CAAC,GAAGC,oBAAoB,CAAC;IACzEvC,KAAK;IACLkB,gBAAgB;IAChBjB;EACF,CAAC,CAAC;EAEF,MAAMuC,SAAS,GAAGC,mBAAmB,CAAC;IAAEjC,QAAQ;IAAEK,KAAK;IAAEe;EAAW,CAAC,CAAC;EAEtE,MAAM;IAAEc,oBAAoB;IAAEC,SAAS;IAAEC,KAAK;IAAEC;EAAS,CAAC,GAAGC,uBAAuB,CAAC;IACnFzC,oBAAoB;IACpBE,QAAQ;IACRwB,MAAM;IACNzB,mBAAmB;IACnBW,eAAe;IACfhB;EACF,CAAC,CAAC;EAEF,MAAM8C,SAAS,GAAG9C,IAAI;EAEtB,MAAM+C,cAAc,GAAGvD,iBAAiB,CAACC,WAAW,EAAE;IAAEmB,KAAK;IAAEW,YAAY;IAAEhB;EAAS,CAAC,CAAC;EAExF,MAAM;IAAEyC,qBAAqB;IAAEC;EAAa,CAAC,GAAG5D,sBAAsB,CACpE0B,WAAW,EACXZ,WAAW,EACXL,EACF,CAAC;EAED,MAAMoD,OAAO,GAAGF,qBAAqB,GAAG/D,YAAY,GAAGJ,QAAQ;EAE/D,MAAMsE,sBAAsB,GAAGjE,YAAY,CAACO,WAAW,EAAE8C,SAAS,CAAC;EAEnE,MAAMa,sBAAsB,GAAI,GAAElE,YAAY,CAAC,uBAAuB,EAAEqD,SAAS,CAAE,IACjFpB,aAAa,IAAIC,cAAc,GAAGE,eAAe,GAAG,EACrD,EAAC;EAEF,MAAM+B,oBAAoB,GAAI,GAAEnE,YAAY,CAAC,aAAa,EAAEqD,SAAS,CAAE,IACrEpB,aAAa,IAAIC,cAAc,GAAGC,oBAAoB,GAAG,EAC1D,EAAC;EAEF,MAAMiC,eAAe,GAAGC,CAAC,IAAI;IAC3B,IAAI,CAACtD,GAAG,EAAE;IAEV,MAAMuD,aAAa,GAAGD,CAAC,CAACE,MAAM,CAACC,OAAO,CAACC,WAAW,CAAC,CAAC;IACpD,MAAMC,cAAc,GAAGL,CAAC,CAACE,MAAM,CAACI,IAAI;IACpC,MAAMC,wBAAwB,GAC5BF,cAAc,KAAK,QAAQ,IAC3B,CAAClE,wBAAwB,CAACqE,IAAI,CAACC,QAAQ,IAAIA,QAAQ,KAAKR,aAAa,CAAC;IACxE,IAAIM,wBAAwB,EAAE5B,MAAM,CAAC+B,IAAI,CAAE,WAAU,EAAEhE,GAAG,CAAC;EAC7D,CAAC;;EAED;EACA,MAAMiE,UAAU,GACdjE,GAAG,IAAIkE,OAAO,CAACC,GAAG,CAACC,2BAA2B,GAC1C;IACEC,OAAO,EAAEhB,eAAe;IACxBO,IAAI,EAAE;EACR,CAAC,GACD,CAAC,CAAC;EACR,oBACEjF,KAAA,CAAA2F,aAAA,CAACrB,OAAO,EAAKD,YAAY,eACvBrE,KAAA,CAAA2F,aAAA,QAAAC,QAAA;IAAKC,SAAS,EAAEtB;EAAuB,GAAKe,UAAU,GACnD9B,sBAAsB,iBACrBxD,KAAA,CAAA2F,aAAA;IAAKE,SAAS,EAAEvF,YAAY,CAAC,aAAa,EAAEqD,SAAS;EAAE,gBACrD3D,KAAA,CAAA2F,aAAA,CAACvF,SAAS;IAAC2B,KAAK,EAAEA,KAAM;IAAC+D,IAAI,EAAEzE,GAAI;IAACwE,SAAS,EAAC,kBAAkB;IAACE,MAAM;EAAA,gBACrE/F,KAAA,CAAA2F,aAAA,CAACjF,SAAS;IACRsF,GAAG,EAAEzC,QAAS;IACd0C,GAAG,EAAExC,OAAQ;IACbyC,OAAO,EAAE/B,cAAe;IACxBlC,QAAQ,EAAEA;EAAS,CACpB,CACQ,CACR,CACN,eACDjC,KAAA,CAAA2F,aAAA;IAAKE,SAAS,EAAErB;EAAuB,gBACrCxE,KAAA,CAAA2F,aAAA;IAAKE,SAAS,EAAEvF,YAAY,CAAC,eAAe,EAAEqD,SAAS;EAAE,GACtDvB,eAAe,KACbyB,oBAAoB,gBACnB7D,KAAA,CAAA2F,aAAA,CAACvF,SAAS;IACR2B,KAAK,EAAEA,KAAM;IACb+D,IAAI,EAAEjC,oBAAqB;IAC3BgC,SAAS,EAAC,oBAAoB;IAC9BE,MAAM;EAAA,GACLjC,SAAS,CAAC1C,IACF,CAAC,gBAEZpB,KAAA,CAAA2F,aAAA;IAAKE,SAAS,EAAC;EAAoB,GAAE9B,KAAW,CACjD,CAAC,EACHzB,YAAY,iBACXtC,KAAA,CAAA2F,aAAA;IAAKE,SAAS,EAAEpB;EAAqB,gBACnCzE,KAAA,CAAA2F,aAAA,CAACvF,SAAS;IAAC+F,KAAK,EAAEjC,SAAU;IAACnC,KAAK,EAAEA,KAAM;IAAC+D,IAAI,EAAEzE,GAAI;IAAC0E,MAAM;EAAA,GACzD/B,QACQ,CACR,CACN,EACA,CAAC,CAACpB,qBAAqB,CAACwD,MAAM,iBAC7BpG,KAAA,CAAA2F,aAAA;IAAKE,SAAS,EAAC,6BAA6B;IAAC,eAAY;EAAW,GACjE9E,iBAAiB,CAAC6B,qBAAqB,EAAE;IAAEO;EAAO,CAAC,CACjD,CACN,EACA,CAAC,CAACvB,oBAAoB,CAACwE,MAAM,iBAC5BpG,KAAA,CAAA2F,aAAA;IAAKE,SAAS,EAAEvF,YAAY,CAAC,eAAe,EAAEqD,SAAS;EAAE,GACtD/B,oBAAoB,CAACyE,GAAG,CAAC,CAACC,IAAI,EAAEC,CAAC,KAAK;IACrC,IAAI,CAACD,IAAI,EAAE,OAAO,IAAI;IAEtB,MAAME,UAAU,GAAI,GAAEtF,EAAG,GAAEqF,CAAE,EAAC;IAC9B,MAAME,YAAY,GAAG3E,uBAAuB,CAACyE,CAAC,CAAC,IAAI,EAAE;IAErD,MAAM;MAAEG;IAAc,CAAC,GAAG7E,cAAc,CAAC0E,CAAC,CAAC,IAAI,CAAC,CAAC;IACjD,MAAMI,UAAU,GAAG,CAAC,CAAC;IACrB,IAAID,aAAa,IAAIJ,IAAI,CAACM,KAAK,CAACC,QAAQ,EAAE;MACxCF,UAAU,CAACD,aAAa,CAAC,GAAGI,kBAAkB,CAACR,IAAI,CAACM,KAAK,CAACC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxE;IAEA,oBACE7G,KAAA,CAAA2F,aAAA,SAAAC,QAAA;MAAMmB,GAAG,EAAEP,UAAW;MAACX,SAAS,EAAEY;IAAa,GAAKE,UAAU,GAC3DL,IACG,CAAC;EAEX,CAAC,CACE,CAEJ,CAAC,EACL,CAAC,CAACpE,YAAY,iBACblC,KAAA,CAAA2F,aAAA;IAAKE,SAAS,EAAC;EAAqB,GAAEtF,cAAc,CAAC2B,YAAY,CAAO,CAEvE,CACF,CACE,CAAC;AAEd,CAAC;AAEDlB,IAAI,CAACgG,SAAS,GAAG;EACf9F,EAAE,EAAEf,SAAS,CAAC8G,MAAM,CAACC,UAAU;EAC/B/F,KAAK,EAAEhB,SAAS,CAACgH,KAAK,CAAC;IACrB9F,GAAG,EAAElB,SAAS,CAAC8G,MAAM;IACrBG,IAAI,EAAEjH,SAAS,CAACkH;EAClB,CAAC,CAAC;EACF/F,gBAAgB,EAAEnB,SAAS,CAACkH,MAAM,CAACH,UAAU;EAC7CrE,UAAU,EAAE1C,SAAS,CAAC8G,MAAM,CAACC,UAAU;EACvClF,KAAK,EAAE7B,SAAS,CAAC8G,MAAM;EACvBrF,oBAAoB,EAAEzB,SAAS,CAACmH,KAAK;EACrCzF,cAAc,EAAE1B,SAAS,CAACmH,KAAK;EAC/BxF,uBAAuB,EAAE3B,SAAS,CAACmH,KAAK;EACxCjG,GAAG,EAAElB,SAAS,CAAC8G,MAAM;EACrB7F,IAAI,EAAEjB,SAAS,CAAC8G,MAAM,CAACC,UAAU;EACjC3F,WAAW,EAAEpB,SAAS,CAACkH,MAAM;EAC7BtF,KAAK,EAAE5B,SAAS,CAAC8G,MAAM;EACvBzF,oBAAoB,EAAErB,SAAS,CAACgH,KAAK,CAAC;IACpC/F,IAAI,EAAEjB,SAAS,CAAC8G;EAClB,CAAC,CAAC;EACFxF,mBAAmB,EAAEtB,SAAS,CAAC8G,MAAM;EACrCvF,QAAQ,EAAEvB,SAAS,CAACgH,KAAK,CAAC;IACxB/F,IAAI,EAAEjB,SAAS,CAAC8G,MAAM;IACtBpD,oBAAoB,EAAE1D,SAAS,CAACgH,KAAK,CAAC;MACpC9F,GAAG,EAAElB,SAAS,CAAC8G;IACjB,CAAC;EACH,CAAC,CAAC;EACFtF,QAAQ,EAAExB,SAAS,CAAC8G,MAAM;EAC1B7E,eAAe,EAAEjC,SAAS,CAACoH,IAAI,CAACL,UAAU;EAC1C7E,gBAAgB,EAAElC,SAAS,CAACoH,IAAI,CAACL,UAAU;EAC3C5E,YAAY,EAAEnC,SAAS,CAACoH,IAAI,CAACL,UAAU;EACvC1E,cAAc,EAAErC,SAAS,CAACoH,IAAI;EAC9BhF,aAAa,EAAEpC,SAAS,CAACoH,IAAI;EAC7B7E,eAAe,EAAEvC,SAAS,CAAC8G,MAAM;EACjCxE,oBAAoB,EAAEtC,SAAS,CAAC8G,MAAM;EACtC/E,YAAY,EAAE/B,SAAS,CAACqH,SAAS,CAAC,CAACrH,SAAS,CAACsH,OAAO,CAACtH,SAAS,CAACuH,IAAI,CAAC,EAAEvH,SAAS,CAACuH,IAAI,CAAC,CAAC;EACtFvF,WAAW,EAAEhC,SAAS,CAACqH,SAAS,CAAC,CAACrH,SAAS,CAACsH,OAAO,CAACtH,SAAS,CAACuH,IAAI,CAAC,EAAEvH,SAAS,CAACuH,IAAI,CAAC,CAAC;EACrF/E,YAAY,EAAExC,SAAS,CAAC8G,MAAM;EAC9BhF,QAAQ,EAAE9B,SAAS,CAACoH,IAAI;EACxB3E,qBAAqB,EAAEzC,SAAS,CAACmH;AACnC,CAAC;AAEDtG,IAAI,CAAC2G,YAAY,GAAG;EAClBpG,WAAW,EAAE,CAAC,CAAC;EACfqB,qBAAqB,EAAE,EAAE;EACzBzB,KAAK,EAAE;IACLE,GAAG,EAAE,IAAI;IACT+F,IAAI,EAAE,CAAC;EACT,CAAC;EACDrF,KAAK,EAAE,EAAE;EACTC,KAAK,EAAE,UAAU;EACjBJ,oBAAoB,EAAE,EAAE;EACxBC,cAAc,EAAE,EAAE;EAClBC,uBAAuB,EAAE,EAAE;EAC3BT,GAAG,EAAE,EAAE;EACPG,oBAAoB,EAAE,IAAI;EAC1BC,mBAAmB,EAAE,EAAE;EACvBC,QAAQ,EAAE,IAAI;EACdC,QAAQ,EAAE,EAAE;EACZO,YAAY,EAAE,EAAE;EAChBC,WAAW,EAAE,EAAE;EACfQ,YAAY,EAAE,EAAE;EAChBV,QAAQ,EAAE,KAAK;EACfS,eAAe,EAAE,EAAE;EACnBD,oBAAoB,EAAE,EAAE;EACxBF,aAAa,EAAE,KAAK;EACpBC,cAAc,EAAE;AAClB,CAAC;AAED,MAAMyB,uBAAuB,GAAGA,CAAC;EAC/BzC,oBAAoB;EACpBE,QAAQ;EACRwB,MAAM;EACNzB,mBAAmB;EACnBW,eAAe;EACfhB;AACF,CAAC,KAAK;EACJ,MAAMwG,uBAAuB,GAAGpG,oBAAoB,IAAIA,oBAAoB,CAACJ,IAAI;EACjF,MAAM0C,SAAS,GACbrC,mBAAmB,IAAImG,uBAAuB,GAAGpG,oBAAoB,GAAGE,QAAQ;EAClF,MAAMmC,oBAAoB,GAAGlD,sBAAsB,CAACmD,SAAS,CAAC;EAC9D,MAAMC,KAAK,GAAGD,SAAS,GAAGA,SAAS,CAAC1C,IAAI,GAAG8B,MAAM;EACjD,MAAMc,QAAQ,GACZ,CAAC5B,eAAe,IAAI,CAACwF,uBAAuB,GAAGxG,IAAI,GAAGK,mBAAmB,IAAIL,IAAI;EACnF,OAAO;IAAEyC,oBAAoB;IAAEC,SAAS;IAAEC,KAAK;IAAEC;EAAS,CAAC;AAC7D,CAAC;AAED,MAAMN,oBAAoB,GAAGA,CAAC;EAAEvC,KAAK;EAAEkB,gBAAgB;EAAEjB;AAAK,CAAC,KAAK;EAClE,MAAM;IAAEC,GAAG,EAAEkC,QAAQ;IAAE6D;EAAK,CAAC,GAAGjG,KAAK,IAAI,CAAC,CAAC;EAC3C,MAAMqC,sBAAsB,GAAGnB,gBAAgB,IAAIkB,QAAQ;EAC3D,MAAME,OAAO,GAAI2D,IAAI,IAAIA,IAAI,CAAC3D,OAAO,IAAKrC,IAAI;EAC9C,OAAO;IAAEmC,QAAQ;IAAEC,sBAAsB;IAAEC;EAAQ,CAAC;AACtD,CAAC;AAED,MAAMG,mBAAmB,GAAGA,CAAC;EAAEjC,QAAQ;EAAEK,KAAK;EAAEe;AAAW,CAAC,KAAK;EAC/D,MAAMY,SAAS,GAAG,CAAChC,QAAQ,EAAEK,KAAK,CAAC;EACnC,MAAM;IAAE6F,SAAS;IAAEC;EAAS,CAAC,GAAG/E,UAAU;EAC1C,IAAI8E,SAAS,EAAElE,SAAS,CAAC0B,IAAI,CAAC,WAAW,CAAC;EAC1C,IAAIyC,QAAQ,EAAEnE,SAAS,CAAC0B,IAAI,CAAC,UAAU,CAAC;EAExC,OAAO1B,SAAS;AAClB,CAAC;AAED,eAAe3C,IAAI"}
|
|
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":"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;
|
|
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":"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"}
|
|
@@ -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
|
|
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":"AAAA,MAAMA,oBAAoB,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC;AAE1E,MAAMC,gBAAgB,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,KAAK;EAAEC,OAAO;EAAEC,OAAO;EAAEC;AAAU,CAAC,KAAK;EAC7E,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,EAAE;UACL,CAACV,QAAQ,GAAG;YACVW,GAAG,EAAEC,MAAM,CAACX,KAAK,CAACK,QAAQ,CAAC;YAC3BO,GAAG,EAAED,MAAM,CAACX,KAAK,CAACO,QAAQ;UAC5B;QACF;MACF,CAAC,CAAC;IACJ;IACA;EACF;EAEA,MAAMM,GAAG,GAAGX,OAAO,GAAGH,QAAQ,GAAI,GAAEA,QAAS,UAAS;EAEtD,MAAMe,OAAO,GAAGC,KAAK,CAACD,OAAO,CAACd,KAAK,CAAC;EACpC,IAAI,CAACc,OAAO,EAAE;IACZ,MAAME,eAAe,GAAG;MAAEC,KAAK,EAAE;QAAE,CAACJ,GAAG,GAAGb;MAAM;IAAE,CAAC;IACnDC,OAAO,CAACO,IAAI,CAACQ,eAAe,CAAC;IAC7B;EACF;EAEAhB,KAAK,CAACkB,OAAO,CAACC,WAAW,IAAI;IAC3BlB,OAAO,CAACO,IAAI,CAAC;MAAES,KAAK,EAAE;QAAE,CAACJ,GAAG,GAAGM;MAAY;IAAE,CAAC,CAAC;EACjD,CAAC,CAAC;AACJ,CAAC;AAED,MAAMC,iBAAiB,GAAGA,CAAC;EACzBC,gBAAgB;EAChBC,QAAQ;EACRC,gBAAgB;EAChBC,WAAW;EACXC,SAAS;EACTC;AACF,CAAC,KAAK;EACJ,MAAMC,WAAW,GAAG,EAAE;EACtB,IAAIN,gBAAgB,IAAIK,KAAK,EAAE;IAC7BE,MAAM,CAACC,IAAI,CAACH,KAAK,CAAC,CAACR,OAAO,CAACnB,QAAQ,IAAI;MACrC,IAAIF,oBAAoB,CAACiC,QAAQ,CAAC/B,QAAQ,CAAC,EAAE;MAC7C,IAAI,CAACA,QAAQ,IAAI,CAAC2B,KAAK,CAAC3B,QAAQ,CAAC,EAAE;MACnC,MAAMgC,UAAU,GAAGL,KAAK,CAAC3B,QAAQ,CAAC;MAElC,MAAMG,OAAO,GAAGsB,WAAW,CAACM,QAAQ,CAAC/B,QAAQ,CAAC;MAC9C,MAAMI,SAAS,GAAGsB,SAAS,CAACK,QAAQ,CAAC/B,QAAQ,CAAC;MAC9CD,gBAAgB,CAAC;QAAEC,QAAQ;QAAEC,KAAK,EAAE+B,UAAU;QAAE9B,OAAO,EAAE0B,WAAW;QAAEzB,OAAO;QAAEC;MAAU,CAAC,CAAC;IAC7F,CAAC,CAAC;EACJ;EAEA,IAAIoB,gBAAgB,IAAIA,gBAAgB,CAACS,MAAM,EAAE;IAC/CT,gBAAgB,CAACL,OAAO,CAACe,kBAAkB,IAAI;MAC7C,MAAM,CAACC,eAAe,CAAC,GAAGD,kBAAkB,CAACE,KAAK,CAAC,GAAG,CAAC;MACvDb,QAAQ,CAACJ,OAAO,CAACkB,cAAc,IAAI;QACjC,IAAIA,cAAc,CAACC,OAAO,CAACH,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE;QACpD,MAAM,GAAGI,cAAc,CAAC,GAAGF,cAAc,CAACD,KAAK,CAAC,GAAG,CAAC;QACpD,MAAMI,eAAe,GAAI,GAAEL,eAAgB,UAAS;QACpD,IAAI,CAACI,cAAc,EAAE;QACrBX,WAAW,CAACnB,IAAI,CAAC;UAAES,KAAK,EAAE;YAAE,CAACsB,eAAe,GAAGD;UAAe;QAAE,CAAC,CAAC;MACpE,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEA,OAAOX,WAAW;AACpB,CAAC;AAED,eAAeP,iBAAiB"}
|
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.
|
|
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.
|
|
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": "
|
|
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:
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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
|
-
<
|
|
117
|
+
<CardWrapper className={classNameWithModifiers} {...clickProps}>
|
|
113
118
|
{shouldDisplayThumbnail && (
|
|
114
119
|
<div className={getModifiers('card__image', modifiers)}>
|
|
115
|
-
<
|
|
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
|
-
</
|
|
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
|
-
<
|
|
138
|
+
<ChildLinkWrapper
|
|
130
139
|
gtmId={gtmId}
|
|
131
140
|
href={publishedListingPage}
|
|
132
141
|
className="badge badge--label"
|
|
133
142
|
scroll>
|
|
134
143
|
{preHeader.name}
|
|
135
|
-
</
|
|
144
|
+
</ChildLinkWrapper>
|
|
136
145
|
) : (
|
|
137
146
|
<div className="badge badge--label">{label}</div>
|
|
138
147
|
))}
|
|
139
148
|
{displayTitle && (
|
|
140
149
|
<div className={titleWrapperModifier}>
|
|
141
|
-
<
|
|
150
|
+
<ChildLinkWrapper title={linkTitle} gtmId={gtmId} href={childLinkHref} scroll>
|
|
142
151
|
{headline}
|
|
143
|
-
</
|
|
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
|
-
</
|
|
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,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
|
+
});
|