@blaze-cms/react-page-builder 0.146.0-alpha.40 → 0.146.0-alpha.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/lib/components/Card/Card.js +3 -1
- package/lib/components/Card/Card.js.map +1 -1
- package/lib/components/List/components/Full/FullRenderItem.js +7 -7
- package/lib/components/List/components/Full/FullRenderItem.js.map +1 -1
- package/lib/helpers/build-props-query.js +4 -2
- package/lib/helpers/build-props-query.js.map +1 -1
- package/lib/variants/LiveBlogList/LiveBlogList.js +56 -22
- package/lib/variants/LiveBlogList/LiveBlogList.js.map +1 -1
- package/lib-es/components/Card/Card.js +3 -1
- package/lib-es/components/Card/Card.js.map +1 -1
- package/lib-es/components/List/components/Full/FullRenderItem.js +5 -5
- package/lib-es/components/List/components/Full/FullRenderItem.js.map +1 -1
- package/lib-es/helpers/build-props-query.js +4 -2
- package/lib-es/helpers/build-props-query.js.map +1 -1
- package/lib-es/variants/LiveBlogList/LiveBlogList.js +52 -22
- package/lib-es/variants/LiveBlogList/LiveBlogList.js.map +1 -1
- package/package.json +2 -2
- package/src/components/Card/Card.js +2 -1
- package/src/components/List/components/Full/FullRenderItem.js +14 -10
- package/src/helpers/build-props-query.js +3 -2
- package/src/variants/LiveBlogList/LiveBlogList.js +58 -24
- package/tests/unit/src/helpers/build-props-query.test.js +13 -11
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.146.0-alpha.41](https://github.com/thebyte9/blaze/compare/v0.146.0-alpha.40...v0.146.0-alpha.41) (2025-04-16)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* add live property to content entities ([#4729](https://github.com/thebyte9/blaze/issues/4729)) ([8cdc5d6](https://github.com/thebyte9/blaze/commit/8cdc5d6b57945590ac97bd2da82c7ad74583c51d))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [0.146.0-alpha.40](https://github.com/thebyte9/blaze/compare/v0.146.0-alpha.39...v0.146.0-alpha.40) (2025-04-15)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -290,9 +290,11 @@ var getInitialModifiers = function getInitialModifiers(_ref6) {
|
|
|
290
290
|
otherProps = _ref6.otherProps;
|
|
291
291
|
var modifiers = [modifier, style];
|
|
292
292
|
var sponsored = otherProps.sponsored,
|
|
293
|
-
featured = otherProps.featured
|
|
293
|
+
featured = otherProps.featured,
|
|
294
|
+
live = otherProps.live;
|
|
294
295
|
if (sponsored) modifiers.push('sponsored');
|
|
295
296
|
if (featured) modifiers.push('featured');
|
|
297
|
+
if (live) modifiers.push('live');
|
|
296
298
|
return modifiers;
|
|
297
299
|
};
|
|
298
300
|
var _default = exports["default"] = Card;
|
|
@@ -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","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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","ignoreList":[]}
|
|
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","live","_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, live } = otherProps;\n if (sponsored) modifiers.push('sponsored');\n if (featured) modifiers.push('featured');\n if (live) modifiers.push('live');\n\n return modifiers;\n};\n\nexport default Card;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -60,7 +60,7 @@ var FullRenderItem = function FullRenderItem(props) {
|
|
|
60
60
|
var parsedPropsToDisplay = (0, _helpers.parsePropsToDisplay)(entityProps, propsToDisplay);
|
|
61
61
|
var currentItemIndex = initialOffset + index;
|
|
62
62
|
var renderWaypoint = isInfinite && (0, _helpers.shouldRenderWaypoint)(index, currentListLength, currentItemIndex, listTotal);
|
|
63
|
-
var defaultContent = /*#__PURE__*/_react["default"].createElement("div", {
|
|
63
|
+
var defaultContent = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
64
64
|
className: "list__item list__item--full"
|
|
65
65
|
}, (0, _buildPBComponents["default"])(pageBuilderComponents, {
|
|
66
66
|
parent: _objectSpread(_objectSpread({}, parent), {}, {
|
|
@@ -69,7 +69,11 @@ var FullRenderItem = function FullRenderItem(props) {
|
|
|
69
69
|
}),
|
|
70
70
|
hasGTM: hasGTM,
|
|
71
71
|
pageBuilderID: pageBuilderID
|
|
72
|
-
}))
|
|
72
|
+
})), !VariantComponent && !!parsedPropsToDisplay.length && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, parsedPropsToDisplay.map(function (prop) {
|
|
73
|
+
return prop ? /*#__PURE__*/_react["default"].createElement("span", {
|
|
74
|
+
key: prop
|
|
75
|
+
}, prop) : null;
|
|
76
|
+
})));
|
|
73
77
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, renderWaypoint && /*#__PURE__*/_react["default"].createElement(_reactWaypoint.Waypoint, {
|
|
74
78
|
onEnter: triggerInfiniteScroll
|
|
75
79
|
}), displayCount && /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -78,11 +82,7 @@ var FullRenderItem = function FullRenderItem(props) {
|
|
|
78
82
|
className: "section-number"
|
|
79
83
|
}, currentItemIndex + 1), /*#__PURE__*/_react["default"].createElement("span", {
|
|
80
84
|
className: "section-total"
|
|
81
|
-
}, "/", listTotal)), VariantComponent ? /*#__PURE__*/_react["default"].createElement(VariantComponent, props, defaultContent) : defaultContent,
|
|
82
|
-
return prop ? /*#__PURE__*/_react["default"].createElement("span", {
|
|
83
|
-
key: prop
|
|
84
|
-
}, prop) : null;
|
|
85
|
-
})), shouldRenderBanner && /*#__PURE__*/_react["default"].createElement(_Banner["default"], (0, _extends2["default"])({}, bannerProps, {
|
|
85
|
+
}, "/", listTotal)), VariantComponent ? /*#__PURE__*/_react["default"].createElement(VariantComponent, props, defaultContent) : defaultContent, shouldRenderBanner && /*#__PURE__*/_react["default"].createElement(_Banner["default"], (0, _extends2["default"])({}, bannerProps, {
|
|
86
86
|
renderCounter: bannerIndex
|
|
87
87
|
})));
|
|
88
88
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FullRenderItem.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_reactWaypoint","_nextjsComponents","_ListFactory","_buildPBComponents","_Banner","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","FullRenderItem","props","isInfinite","pageBuilderComponents","entityProps","propsToDisplay","entity","index","itemId","listTotal","initialOffset","currentListLength","triggerInfiniteScroll","parent","pageBuilderID","displayCount","shouldRenderBanner","bannerProps","bannerIndex","_useContext","useContext","MainContext","hasGTM","VariantComponent","VariantContext","parsedPropsToDisplay","parsePropsToDisplay","currentItemIndex","renderWaypoint","shouldRenderWaypoint","defaultContent","createElement","className","BuildPBComponents","itemEntity","Fragment","Waypoint","onEnter","map","prop","key","_extends2","renderCounter","propTypes","PropTypes","array","object","isRequired","number","bool","func","string","data","itemsToDisplay","defaultProps","_default","exports"],"sources":["../../../../../src/components/List/components/Full/FullRenderItem.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { Waypoint } from 'react-waypoint';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { VariantContext } from '../../ListFactory';\nimport BuildPBComponents from '../../../../hooks/helpers/buildPBComponents';\nimport Banner from '../../../Banner';\nimport { parsePropsToDisplay, shouldRenderWaypoint } from '../../../../helpers';\n\nconst FullRenderItem = props => {\n const {\n isInfinite,\n pageBuilderComponents,\n entityProps,\n propsToDisplay,\n entity,\n index,\n itemId,\n listTotal,\n initialOffset,\n currentListLength,\n triggerInfiniteScroll,\n parent,\n pageBuilderID,\n displayCount,\n shouldRenderBanner,\n bannerProps,\n bannerIndex\n } = props;\n const { hasGTM } = useContext(MainContext);\n const VariantComponent = useContext(VariantContext);\n\n if (!pageBuilderComponents) return null;\n const parsedPropsToDisplay = parsePropsToDisplay(entityProps, propsToDisplay);\n const currentItemIndex = initialOffset + index;\n const renderWaypoint =\n isInfinite && shouldRenderWaypoint(index, currentListLength, currentItemIndex, listTotal);\n\n const defaultContent = (\n <div className=\"list__item list__item--full\">\n {BuildPBComponents(pageBuilderComponents, {\n parent: { ...parent, itemId, itemEntity: entity },\n hasGTM,\n pageBuilderID\n })}\n </div>\n );\n\n return (\n <>\n {renderWaypoint && <Waypoint onEnter={triggerInfiniteScroll} />}\n {displayCount && (\n <div className=\"heading heading--section heading--section--count\">\n <span className=\"section-number\">{currentItemIndex + 1}</span>\n <span className=\"section-total\">/{listTotal}</span>\n </div>\n )}\n {VariantComponent ? (\n <VariantComponent {...props}>{defaultContent}</VariantComponent>\n ) : (\n defaultContent\n )}\n {!!parsedPropsToDisplay.length && (\n <>{parsedPropsToDisplay.map(prop => (prop ? <span key={prop}>{prop}</span> : null))}</>\n )}\n {shouldRenderBanner && <Banner {...bannerProps} renderCounter={bannerIndex} />}\n </>\n );\n};\n\nFullRenderItem.propTypes = {\n pageBuilderComponents: PropTypes.array,\n entityProps: PropTypes.object.isRequired,\n parent: PropTypes.object.isRequired,\n currentListLength: PropTypes.number.isRequired,\n listTotal: PropTypes.number.isRequired,\n initialOffset: PropTypes.number.isRequired,\n displayCount: PropTypes.bool.isRequired,\n triggerInfiniteScroll: PropTypes.func,\n entity: PropTypes.string.isRequired,\n pageBuilderID: PropTypes.string.isRequired,\n itemId: PropTypes.string.isRequired,\n index: PropTypes.number.isRequired,\n isInfinite: PropTypes.bool.isRequired,\n shouldRenderBanner: PropTypes.bool.isRequired,\n bannerIndex: PropTypes.number.isRequired,\n propsToDisplay: PropTypes.array,\n data: PropTypes.array,\n itemsToDisplay: PropTypes.array,\n bannerProps: PropTypes.object\n};\n\nFullRenderItem.defaultProps = {\n pageBuilderComponents: null,\n data: [],\n propsToDisplay: [],\n itemsToDisplay: [],\n triggerInfiniteScroll: null,\n bannerProps: null\n};\n\nexport default FullRenderItem;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FullRenderItem.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_reactWaypoint","_nextjsComponents","_ListFactory","_buildPBComponents","_Banner","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","FullRenderItem","props","isInfinite","pageBuilderComponents","entityProps","propsToDisplay","entity","index","itemId","listTotal","initialOffset","currentListLength","triggerInfiniteScroll","parent","pageBuilderID","displayCount","shouldRenderBanner","bannerProps","bannerIndex","_useContext","useContext","MainContext","hasGTM","VariantComponent","VariantContext","parsedPropsToDisplay","parsePropsToDisplay","currentItemIndex","renderWaypoint","shouldRenderWaypoint","defaultContent","createElement","Fragment","className","BuildPBComponents","itemEntity","map","prop","key","Waypoint","onEnter","_extends2","renderCounter","propTypes","PropTypes","array","object","isRequired","number","bool","func","string","data","itemsToDisplay","defaultProps","_default","exports"],"sources":["../../../../../src/components/List/components/Full/FullRenderItem.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { Waypoint } from 'react-waypoint';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { VariantContext } from '../../ListFactory';\nimport BuildPBComponents from '../../../../hooks/helpers/buildPBComponents';\nimport Banner from '../../../Banner';\nimport { parsePropsToDisplay, shouldRenderWaypoint } from '../../../../helpers';\n\nconst FullRenderItem = props => {\n const {\n isInfinite,\n pageBuilderComponents,\n entityProps,\n propsToDisplay,\n entity,\n index,\n itemId,\n listTotal,\n initialOffset,\n currentListLength,\n triggerInfiniteScroll,\n parent,\n pageBuilderID,\n displayCount,\n shouldRenderBanner,\n bannerProps,\n bannerIndex\n } = props;\n const { hasGTM } = useContext(MainContext);\n const VariantComponent = useContext(VariantContext);\n\n if (!pageBuilderComponents) return null;\n const parsedPropsToDisplay = parsePropsToDisplay(entityProps, propsToDisplay);\n const currentItemIndex = initialOffset + index;\n const renderWaypoint =\n isInfinite && shouldRenderWaypoint(index, currentListLength, currentItemIndex, listTotal);\n\n const defaultContent = (\n <>\n <div className=\"list__item list__item--full\">\n {BuildPBComponents(pageBuilderComponents, {\n parent: { ...parent, itemId, itemEntity: entity },\n hasGTM,\n pageBuilderID\n })}\n </div>\n {!VariantComponent &&\n !!parsedPropsToDisplay.length && (\n <>{parsedPropsToDisplay.map(prop => (prop ? <span key={prop}>{prop}</span> : null))}</>\n )}\n </>\n );\n\n return (\n <>\n {renderWaypoint && <Waypoint onEnter={triggerInfiniteScroll} />}\n {displayCount && (\n <div className=\"heading heading--section heading--section--count\">\n <span className=\"section-number\">{currentItemIndex + 1}</span>\n <span className=\"section-total\">/{listTotal}</span>\n </div>\n )}\n {VariantComponent ? (\n <VariantComponent {...props}>{defaultContent}</VariantComponent>\n ) : (\n defaultContent\n )}\n\n {shouldRenderBanner && <Banner {...bannerProps} renderCounter={bannerIndex} />}\n </>\n );\n};\n\nFullRenderItem.propTypes = {\n pageBuilderComponents: PropTypes.array,\n entityProps: PropTypes.object.isRequired,\n parent: PropTypes.object.isRequired,\n currentListLength: PropTypes.number.isRequired,\n listTotal: PropTypes.number.isRequired,\n initialOffset: PropTypes.number.isRequired,\n displayCount: PropTypes.bool.isRequired,\n triggerInfiniteScroll: PropTypes.func,\n entity: PropTypes.string.isRequired,\n pageBuilderID: PropTypes.string.isRequired,\n itemId: PropTypes.string.isRequired,\n index: PropTypes.number.isRequired,\n isInfinite: PropTypes.bool.isRequired,\n shouldRenderBanner: PropTypes.bool.isRequired,\n bannerIndex: PropTypes.number.isRequired,\n propsToDisplay: PropTypes.array,\n data: PropTypes.array,\n itemsToDisplay: PropTypes.array,\n bannerProps: PropTypes.object\n};\n\nFullRenderItem.defaultProps = {\n pageBuilderComponents: null,\n data: [],\n propsToDisplay: [],\n itemsToDisplay: [],\n triggerInfiniteScroll: null,\n bannerProps: null\n};\n\nexport default FullRenderItem;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -108,7 +108,7 @@ var getTypeBaseProps = function getTypeBaseProps(entitySchema, cardOptions, extr
|
|
|
108
108
|
properties = entitySchema.properties,
|
|
109
109
|
dynamicProperties = entitySchema.dynamicProperties,
|
|
110
110
|
relations = entitySchema.relations;
|
|
111
|
-
var isContent = !!interfaces.includes('content/content');
|
|
111
|
+
var isContent = !!interfaces.includes('content/content-base');
|
|
112
112
|
var hasCategory = checkProps(properties) || checkProps(dynamicProperties);
|
|
113
113
|
var hasPreheader = properties[_constants.PREHEADER_PROP];
|
|
114
114
|
var typeBasedProps = [].concat(defaultProps);
|
|
@@ -126,8 +126,10 @@ var getTypeBaseProps = function getTypeBaseProps(entitySchema, cardOptions, extr
|
|
|
126
126
|
shouldAddCategoryProps: shouldAddCategoryProps
|
|
127
127
|
};
|
|
128
128
|
};
|
|
129
|
+
|
|
130
|
+
// make sure all props are supported by content/content-base interface
|
|
129
131
|
var getContentProps = function getContentProps(isContent) {
|
|
130
|
-
return isContent ? ['url', 'sponsored', 'featured'] : [];
|
|
132
|
+
return isContent ? ['url', 'sponsored', 'featured', 'live'] : [];
|
|
131
133
|
};
|
|
132
134
|
var getCategoyProps = function getCategoyProps(shouldAddCategoryProps, hasCategory, hasPreheader) {
|
|
133
135
|
if (!shouldAddCategoryProps) return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-props-query.js","names":["_constants","require","defaultProps","ID","categoryProps","checkProps","props","Object","keys","filter","prop","CATEGORY_ID","length","buildPropsQuery","entitySchema","extraProps","arguments","undefined","cardOptions","linkProps","parsedSchema","getEntitySchema","extraPropsHaveCategory","includes","_getTypeBaseProps","getTypeBaseProps","typeBasedProps","shouldAddCategoryProps","allProps","concat","_toConsumableArray2","uniqueProps","Set","basicProps","nestedProps","forEach","push","_prop$split","split","_prop$split2","_slicedToArray2","base","nested","complexProps","buildComplexProps","join","_ref","_ref$relations","relations","_ref$dynamicPropertie","dynamicProperties","_ref$properties","properties","map","hasLink","find","linkProp","matchingProperty","matchingRelation","_ref2","localField","matchingDynamicProp","dynamicKey","jointNestedProps","isCard","_ref3","_ref3$displayCategory","displayCategory","_ref3$displayThumbnai","displayThumbnail","interfaces","isContent","hasCategory","hasPreheader","PREHEADER_PROP","apply","getCategoyProps","getContentProps","url","_ref4","HEADLINE_PROP","_default","exports"],"sources":["../../src/helpers/build-props-query.js"],"sourcesContent":["import { CATEGORY_ID, ID, PREHEADER_PROP, HEADLINE_PROP } from '../constants';\n\nconst defaultProps = [ID, 'name'];\nconst categoryProps = 'id publishedListingPage{id, url}';\n\nconst checkProps = props =>\n !!(props && Object.keys(props).filter(prop => prop === CATEGORY_ID).length);\n\nconst buildPropsQuery = (entitySchema, extraProps = [], cardOptions = null, linkProps = []) => {\n const parsedSchema = entitySchema.getEntitySchema ? entitySchema.getEntitySchema : entitySchema;\n const extraPropsHaveCategory = !!extraProps.filter(prop => prop.includes('category.')).length;\n const { typeBasedProps, shouldAddCategoryProps } = getTypeBaseProps(\n parsedSchema,\n cardOptions,\n extraPropsHaveCategory\n );\n\n const allProps = [...typeBasedProps, ...extraProps];\n const uniqueProps = [...new Set([...allProps])];\n const basicProps = [];\n const nestedProps = {};\n uniqueProps.forEach(prop => {\n if (prop) {\n if (!prop.includes('.')) {\n basicProps.push(prop);\n return;\n }\n const [base, nested] = prop.split('.');\n if (!nestedProps[base]) nestedProps[base] = [nested];\n else nestedProps[base].push(nested);\n }\n });\n\n const complexProps = buildComplexProps(\n shouldAddCategoryProps,\n nestedProps,\n parsedSchema,\n linkProps\n );\n\n return [...basicProps, ...complexProps].join(',');\n};\n\nconst buildComplexProps = (\n shouldAddCategoryProps,\n props,\n { relations = [], dynamicProperties = {}, properties = {} },\n linkProps\n) =>\n Object.keys(props).map(base => {\n const nestedProps = props[base];\n const hasLink = !!linkProps.find(linkProp => linkProp.includes(base));\n const matchingProperty = !!properties[base];\n const matchingRelation = relations.find(({ localField }) => localField === base);\n const matchingDynamicProp = Object.keys(dynamicProperties).find(\n dynamicKey => dynamicKey === base\n );\n\n if (matchingRelation && !nestedProps.includes('id')) nestedProps.push('id');\n if (hasLink && (!!matchingProperty || !!matchingRelation || !!matchingDynamicProp))\n nestedProps.push('url');\n const jointNestedProps = nestedProps.join(',');\n if (base === 'category' && shouldAddCategoryProps)\n return `${base}{${jointNestedProps}, ${categoryProps}}`;\n if (base.includes('published')) {\n return `${base}{${jointNestedProps},url}`;\n }\n return `${base}{${jointNestedProps}}`;\n });\n\nconst getTypeBaseProps = (entitySchema, cardOptions, extraPropsHaveCategory) => {\n const isCard = !!cardOptions;\n const { displayCategory = true, displayThumbnail = true } = cardOptions || {};\n\n const shouldAddCategoryProps =\n (isCard && displayCategory) || (!isCard && !extraPropsHaveCategory);\n\n if (!isCard) return { typeBasedProps: [ID], shouldAddCategoryProps };\n\n const { interfaces, properties, dynamicProperties, relations } = entitySchema;\n\n const isContent = !!interfaces.includes('content/content');\n const hasCategory = checkProps(properties) || checkProps(dynamicProperties);\n const hasPreheader = properties[PREHEADER_PROP];\n\n const typeBasedProps = [...defaultProps];\n\n typeBasedProps.push(...getCategoyProps(shouldAddCategoryProps, hasCategory, hasPreheader));\n typeBasedProps.push(...getContentProps(isContent));\n\n if (properties.url || dynamicProperties.url) typeBasedProps.push('url');\n\n if (displayThumbnail && relations.find(({ localField }) => localField === 'image')) {\n typeBasedProps.push('image.id', 'image.url', 'image.data');\n }\n\n return { typeBasedProps, shouldAddCategoryProps };\n};\n\nconst getContentProps = isContent => (isContent ? ['url', 'sponsored', 'featured'] : []);\n\nconst getCategoyProps = (shouldAddCategoryProps, hasCategory, hasPreheader) => {\n if (!shouldAddCategoryProps) return [];\n const props = [];\n if (hasCategory)\n props.push('category.name', 'category.listingPageId', 'category.listingPageEntity');\n\n if (hasPreheader) {\n props.push(`${PREHEADER_PROP}{name}`);\n props.push(HEADLINE_PROP);\n }\n\n return props;\n};\n\nexport default buildPropsQuery;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"build-props-query.js","names":["_constants","require","defaultProps","ID","categoryProps","checkProps","props","Object","keys","filter","prop","CATEGORY_ID","length","buildPropsQuery","entitySchema","extraProps","arguments","undefined","cardOptions","linkProps","parsedSchema","getEntitySchema","extraPropsHaveCategory","includes","_getTypeBaseProps","getTypeBaseProps","typeBasedProps","shouldAddCategoryProps","allProps","concat","_toConsumableArray2","uniqueProps","Set","basicProps","nestedProps","forEach","push","_prop$split","split","_prop$split2","_slicedToArray2","base","nested","complexProps","buildComplexProps","join","_ref","_ref$relations","relations","_ref$dynamicPropertie","dynamicProperties","_ref$properties","properties","map","hasLink","find","linkProp","matchingProperty","matchingRelation","_ref2","localField","matchingDynamicProp","dynamicKey","jointNestedProps","isCard","_ref3","_ref3$displayCategory","displayCategory","_ref3$displayThumbnai","displayThumbnail","interfaces","isContent","hasCategory","hasPreheader","PREHEADER_PROP","apply","getCategoyProps","getContentProps","url","_ref4","HEADLINE_PROP","_default","exports"],"sources":["../../src/helpers/build-props-query.js"],"sourcesContent":["import { CATEGORY_ID, ID, PREHEADER_PROP, HEADLINE_PROP } from '../constants';\n\nconst defaultProps = [ID, 'name'];\nconst categoryProps = 'id publishedListingPage{id, url}';\n\nconst checkProps = props =>\n !!(props && Object.keys(props).filter(prop => prop === CATEGORY_ID).length);\n\nconst buildPropsQuery = (entitySchema, extraProps = [], cardOptions = null, linkProps = []) => {\n const parsedSchema = entitySchema.getEntitySchema ? entitySchema.getEntitySchema : entitySchema;\n const extraPropsHaveCategory = !!extraProps.filter(prop => prop.includes('category.')).length;\n const { typeBasedProps, shouldAddCategoryProps } = getTypeBaseProps(\n parsedSchema,\n cardOptions,\n extraPropsHaveCategory\n );\n\n const allProps = [...typeBasedProps, ...extraProps];\n const uniqueProps = [...new Set([...allProps])];\n const basicProps = [];\n const nestedProps = {};\n uniqueProps.forEach(prop => {\n if (prop) {\n if (!prop.includes('.')) {\n basicProps.push(prop);\n return;\n }\n const [base, nested] = prop.split('.');\n if (!nestedProps[base]) nestedProps[base] = [nested];\n else nestedProps[base].push(nested);\n }\n });\n\n const complexProps = buildComplexProps(\n shouldAddCategoryProps,\n nestedProps,\n parsedSchema,\n linkProps\n );\n\n return [...basicProps, ...complexProps].join(',');\n};\n\nconst buildComplexProps = (\n shouldAddCategoryProps,\n props,\n { relations = [], dynamicProperties = {}, properties = {} },\n linkProps\n) =>\n Object.keys(props).map(base => {\n const nestedProps = props[base];\n const hasLink = !!linkProps.find(linkProp => linkProp.includes(base));\n const matchingProperty = !!properties[base];\n const matchingRelation = relations.find(({ localField }) => localField === base);\n const matchingDynamicProp = Object.keys(dynamicProperties).find(\n dynamicKey => dynamicKey === base\n );\n\n if (matchingRelation && !nestedProps.includes('id')) nestedProps.push('id');\n if (hasLink && (!!matchingProperty || !!matchingRelation || !!matchingDynamicProp))\n nestedProps.push('url');\n const jointNestedProps = nestedProps.join(',');\n if (base === 'category' && shouldAddCategoryProps)\n return `${base}{${jointNestedProps}, ${categoryProps}}`;\n if (base.includes('published')) {\n return `${base}{${jointNestedProps},url}`;\n }\n return `${base}{${jointNestedProps}}`;\n });\n\nconst getTypeBaseProps = (entitySchema, cardOptions, extraPropsHaveCategory) => {\n const isCard = !!cardOptions;\n const { displayCategory = true, displayThumbnail = true } = cardOptions || {};\n\n const shouldAddCategoryProps =\n (isCard && displayCategory) || (!isCard && !extraPropsHaveCategory);\n\n if (!isCard) return { typeBasedProps: [ID], shouldAddCategoryProps };\n\n const { interfaces, properties, dynamicProperties, relations } = entitySchema;\n\n const isContent = !!interfaces.includes('content/content-base');\n const hasCategory = checkProps(properties) || checkProps(dynamicProperties);\n const hasPreheader = properties[PREHEADER_PROP];\n\n const typeBasedProps = [...defaultProps];\n\n typeBasedProps.push(...getCategoyProps(shouldAddCategoryProps, hasCategory, hasPreheader));\n typeBasedProps.push(...getContentProps(isContent));\n\n if (properties.url || dynamicProperties.url) typeBasedProps.push('url');\n\n if (displayThumbnail && relations.find(({ localField }) => localField === 'image')) {\n typeBasedProps.push('image.id', 'image.url', 'image.data');\n }\n\n return { typeBasedProps, shouldAddCategoryProps };\n};\n\n// make sure all props are supported by content/content-base interface\nconst getContentProps = isContent => (isContent ? ['url', 'sponsored', 'featured', 'live'] : []);\n\nconst getCategoyProps = (shouldAddCategoryProps, hasCategory, hasPreheader) => {\n if (!shouldAddCategoryProps) return [];\n const props = [];\n if (hasCategory)\n props.push('category.name', 'category.listingPageId', 'category.listingPageEntity');\n\n if (hasPreheader) {\n props.push(`${PREHEADER_PROP}{name}`);\n props.push(HEADLINE_PROP);\n }\n\n return props;\n};\n\nexport default buildPropsQuery;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,19 +13,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
13
13
|
value: true
|
|
14
14
|
});
|
|
15
15
|
exports["default"] = void 0;
|
|
16
|
+
require("core-js/modules/es.array.concat.js");
|
|
17
|
+
require("core-js/modules/web.timers.js");
|
|
16
18
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
19
|
var _react = _interopRequireWildcard(require("react"));
|
|
18
20
|
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
19
21
|
var _relativeTime = _interopRequireDefault(require("dayjs/plugin/relativeTime"));
|
|
20
22
|
var _button = _interopRequireDefault(require("@blaze-react/button"));
|
|
21
23
|
var _fa = require("react-icons/fa");
|
|
24
|
+
var _bs = require("react-icons/bs");
|
|
22
25
|
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); }
|
|
23
26
|
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; }
|
|
24
27
|
_dayjs["default"].extend(_relativeTime["default"]);
|
|
25
28
|
var LiveBlogList = function LiveBlogList(props) {
|
|
26
29
|
var children = props.children,
|
|
27
30
|
date = props.date,
|
|
28
|
-
published = props.published
|
|
31
|
+
published = props.published,
|
|
32
|
+
featured = props.featured;
|
|
29
33
|
var _useState = (0, _react.useState)(false),
|
|
30
34
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
31
35
|
isExpanded = _useState2[0],
|
|
@@ -34,38 +38,68 @@ var LiveBlogList = function LiveBlogList(props) {
|
|
|
34
38
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
35
39
|
shouldShowButton = _useState4[0],
|
|
36
40
|
setShouldShowButton = _useState4[1];
|
|
41
|
+
var _useState5 = (0, _react.useState)({
|
|
42
|
+
displayedDate: ' ',
|
|
43
|
+
displayTime: ''
|
|
44
|
+
}),
|
|
45
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
46
|
+
_useState6$ = _useState6[0],
|
|
47
|
+
displayedDate = _useState6$.displayedDate,
|
|
48
|
+
displayedTime = _useState6$.displayedTime,
|
|
49
|
+
setDisplayedDate = _useState6[1];
|
|
50
|
+
var usedDate = date || published;
|
|
37
51
|
var contentRef = (0, _react.useRef)(null);
|
|
38
52
|
(0, _react.useEffect)(function () {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
53
|
+
var timeout = setTimeout(function () {
|
|
54
|
+
if (contentRef.current) {
|
|
55
|
+
var contentHeight = contentRef.current.scrollHeight;
|
|
56
|
+
if (contentHeight > 380) {
|
|
57
|
+
setShouldShowButton(true);
|
|
58
|
+
}
|
|
43
59
|
}
|
|
44
|
-
}
|
|
60
|
+
}, 500); // delay to wait for content load
|
|
61
|
+
// todo: change to use mutation observer
|
|
62
|
+
|
|
63
|
+
return function () {
|
|
64
|
+
clearTimeout(timeout);
|
|
65
|
+
};
|
|
45
66
|
}, [children]);
|
|
67
|
+
(0, _react.useEffect)(function () {
|
|
68
|
+
// delay setting time so no SSR issues based on timezone
|
|
69
|
+
var newDate = '';
|
|
70
|
+
if (usedDate) {
|
|
71
|
+
var diffInDays = (0, _dayjs["default"])().diff((0, _dayjs["default"])(usedDate), 'day');
|
|
72
|
+
if (diffInDays < 1) {
|
|
73
|
+
newDate = (0, _dayjs["default"])(usedDate).fromNow();
|
|
74
|
+
} else if (diffInDays < 365) {
|
|
75
|
+
newDate = (0, _dayjs["default"])(usedDate).format('DD MMM');
|
|
76
|
+
} else {
|
|
77
|
+
newDate = (0, _dayjs["default"])(usedDate).format('DD MMM YYYY');
|
|
78
|
+
}
|
|
79
|
+
setDisplayedDate({
|
|
80
|
+
displayedDate: newDate,
|
|
81
|
+
displayedTime: (0, _dayjs["default"])(usedDate).format('HH:mm')
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}, [date, published, usedDate]);
|
|
46
85
|
var toggleExpanded = function toggleExpanded() {
|
|
47
86
|
setIsExpanded(!isExpanded);
|
|
48
87
|
};
|
|
49
|
-
var
|
|
50
|
-
var
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if (diffInDays < 1) {
|
|
54
|
-
displayedDate = (0, _dayjs["default"])(usedDate).fromNow();
|
|
55
|
-
} else if (diffInDays < 365) {
|
|
56
|
-
displayedDate = (0, _dayjs["default"])(usedDate).format('DD MMM');
|
|
57
|
-
} else {
|
|
58
|
-
displayedDate = (0, _dayjs["default"])(usedDate).format('DD MMM YYYY');
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
var isCollapsed = !isExpanded && shouldShowButton;
|
|
88
|
+
var isCollapsed = !isExpanded;
|
|
89
|
+
var baseClass = 'live-blog-container';
|
|
90
|
+
var modifier = featured ? " ".concat(baseClass, "--featured") : '';
|
|
91
|
+
var className = "".concat(baseClass).concat(modifier);
|
|
62
92
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
63
|
-
className:
|
|
93
|
+
className: className
|
|
64
94
|
}, usedDate && /*#__PURE__*/_react["default"].createElement("div", {
|
|
65
95
|
className: "live-blog-date"
|
|
66
|
-
},
|
|
96
|
+
}, featured && /*#__PURE__*/_react["default"].createElement(_bs.BsPinAngleFill, null), /*#__PURE__*/_react["default"].createElement("span", {
|
|
97
|
+
className: "live-blog-date--date"
|
|
98
|
+
}, displayedDate), /*#__PURE__*/_react["default"].createElement("span", {
|
|
99
|
+
className: "live-blog-date--time"
|
|
100
|
+
}, displayedTime)), /*#__PURE__*/_react["default"].createElement("div", {
|
|
67
101
|
ref: contentRef,
|
|
68
|
-
className: "live-blog-content ".concat(isCollapsed ? 'collapsed' : '')
|
|
102
|
+
className: "live-blog-content ".concat(isCollapsed ? 'live-blog-content--collapsed' : 'live-blog-content--opened')
|
|
69
103
|
}, children), shouldShowButton && /*#__PURE__*/_react["default"].createElement("div", {
|
|
70
104
|
className: "live-blog-button-wrapper"
|
|
71
105
|
}, /*#__PURE__*/_react["default"].createElement(_button["default"], {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveBlogList.js","names":["_react","_interopRequireWildcard","require","_dayjs","_interopRequireDefault","_relativeTime","_button","_fa","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","dayjs","extend","relativeTime","LiveBlogList","props","children","date","published","_useState","useState","_useState2","_slicedToArray2","isExpanded","setIsExpanded","_useState3","_useState4","shouldShowButton","setShouldShowButton","contentRef","useRef","useEffect","current","contentHeight","scrollHeight","
|
|
1
|
+
{"version":3,"file":"LiveBlogList.js","names":["_react","_interopRequireWildcard","require","_dayjs","_interopRequireDefault","_relativeTime","_button","_fa","_bs","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","dayjs","extend","relativeTime","LiveBlogList","props","children","date","published","featured","_useState","useState","_useState2","_slicedToArray2","isExpanded","setIsExpanded","_useState3","_useState4","shouldShowButton","setShouldShowButton","_useState5","displayedDate","displayTime","_useState6","_useState6$","displayedTime","setDisplayedDate","usedDate","contentRef","useRef","useEffect","timeout","setTimeout","current","contentHeight","scrollHeight","clearTimeout","newDate","diffInDays","diff","fromNow","format","toggleExpanded","isCollapsed","baseClass","modifier","concat","className","createElement","BsPinAngleFill","ref","onClick","type","Fragment","FaMinus","FaPlus","_default","exports"],"sources":["../../../src/variants/LiveBlogList/LiveBlogList.js"],"sourcesContent":["import React, { useRef, useState, useEffect } from 'react';\nimport dayjs from 'dayjs';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport Button from '@blaze-react/button';\nimport { FaPlus, FaMinus } from 'react-icons/fa';\nimport { BsPinAngleFill } from 'react-icons/bs';\n\ndayjs.extend(relativeTime);\n\nconst LiveBlogList = props => {\n const { children, date, published, featured } = props;\n const [isExpanded, setIsExpanded] = useState(false);\n const [shouldShowButton, setShouldShowButton] = useState(false);\n const [{ displayedDate, displayedTime }, setDisplayedDate] = useState({\n displayedDate: ' ',\n displayTime: ''\n });\n const usedDate = date || published;\n\n const contentRef = useRef(null);\n\n useEffect(\n () => {\n const timeout = setTimeout(() => {\n if (contentRef.current) {\n const contentHeight = contentRef.current.scrollHeight;\n if (contentHeight > 380) {\n setShouldShowButton(true);\n }\n }\n }, 500); // delay to wait for content load\n // todo: change to use mutation observer\n\n return () => {\n clearTimeout(timeout);\n };\n },\n [children]\n );\n\n useEffect(\n () => {\n // delay setting time so no SSR issues based on timezone\n let newDate = '';\n if (usedDate) {\n const diffInDays = dayjs().diff(dayjs(usedDate), 'day');\n if (diffInDays < 1) {\n newDate = dayjs(usedDate).fromNow();\n } else if (diffInDays < 365) {\n newDate = dayjs(usedDate).format('DD MMM');\n } else {\n newDate = dayjs(usedDate).format('DD MMM YYYY');\n }\n setDisplayedDate({\n displayedDate: newDate,\n displayedTime: dayjs(usedDate).format('HH:mm')\n });\n }\n },\n [date, published, usedDate]\n );\n\n const toggleExpanded = () => {\n setIsExpanded(!isExpanded);\n };\n\n const isCollapsed = !isExpanded;\n const baseClass = 'live-blog-container';\n const modifier = featured ? ` ${baseClass}--featured` : '';\n const className = `${baseClass}${modifier}`;\n\n return (\n <div className={className}>\n {usedDate && (\n <div className=\"live-blog-date\">\n {featured && <BsPinAngleFill />}\n <span className=\"live-blog-date--date\">{displayedDate}</span>\n <span className=\"live-blog-date--time\">{displayedTime}</span>\n </div>\n )}\n\n <div\n ref={contentRef}\n className={`live-blog-content ${\n isCollapsed ? 'live-blog-content--collapsed' : 'live-blog-content--opened'\n }`}>\n {children}\n </div>\n\n {shouldShowButton && (\n <div className=\"live-blog-button-wrapper\">\n <Button className=\"live-blog-toggle\" onClick={toggleExpanded} type=\"button\">\n {isExpanded ? (\n <>\n <FaMinus className=\"toggle-icon\" /> Show Less\n </>\n ) : (\n <>\n <FaPlus className=\"toggle-icon\" /> Show More\n </>\n )}\n </Button>\n </div>\n )}\n </div>\n );\n};\n\nexport default LiveBlogList;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -278,10 +278,12 @@ const getInitialModifiers = ({
|
|
|
278
278
|
const modifiers = [modifier, style];
|
|
279
279
|
const {
|
|
280
280
|
sponsored,
|
|
281
|
-
featured
|
|
281
|
+
featured,
|
|
282
|
+
live
|
|
282
283
|
} = otherProps;
|
|
283
284
|
if (sponsored) modifiers.push('sponsored');
|
|
284
285
|
if (featured) modifiers.push('featured');
|
|
286
|
+
if (live) modifiers.push('live');
|
|
285
287
|
return modifiers;
|
|
286
288
|
};
|
|
287
289
|
export default Card;
|
|
@@ -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","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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","ignoreList":[]}
|
|
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","live"],"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, live } = otherProps;\n if (sponsored) modifiers.push('sponsored');\n if (featured) modifiers.push('featured');\n if (live) modifiers.push('live');\n\n return modifiers;\n};\n\nexport default Card;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -38,7 +38,7 @@ const FullRenderItem = props => {
|
|
|
38
38
|
const parsedPropsToDisplay = parsePropsToDisplay(entityProps, propsToDisplay);
|
|
39
39
|
const currentItemIndex = initialOffset + index;
|
|
40
40
|
const renderWaypoint = isInfinite && shouldRenderWaypoint(index, currentListLength, currentItemIndex, listTotal);
|
|
41
|
-
const defaultContent = /*#__PURE__*/React.createElement("div", {
|
|
41
|
+
const defaultContent = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
42
42
|
className: "list__item list__item--full"
|
|
43
43
|
}, BuildPBComponents(pageBuilderComponents, {
|
|
44
44
|
parent: _objectSpread(_objectSpread({}, parent), {}, {
|
|
@@ -47,7 +47,9 @@ const FullRenderItem = props => {
|
|
|
47
47
|
}),
|
|
48
48
|
hasGTM,
|
|
49
49
|
pageBuilderID
|
|
50
|
-
}))
|
|
50
|
+
})), !VariantComponent && !!parsedPropsToDisplay.length && /*#__PURE__*/React.createElement(React.Fragment, null, parsedPropsToDisplay.map(prop => prop ? /*#__PURE__*/React.createElement("span", {
|
|
51
|
+
key: prop
|
|
52
|
+
}, prop) : null)));
|
|
51
53
|
return /*#__PURE__*/React.createElement(React.Fragment, null, renderWaypoint && /*#__PURE__*/React.createElement(Waypoint, {
|
|
52
54
|
onEnter: triggerInfiniteScroll
|
|
53
55
|
}), displayCount && /*#__PURE__*/React.createElement("div", {
|
|
@@ -56,9 +58,7 @@ const FullRenderItem = props => {
|
|
|
56
58
|
className: "section-number"
|
|
57
59
|
}, currentItemIndex + 1), /*#__PURE__*/React.createElement("span", {
|
|
58
60
|
className: "section-total"
|
|
59
|
-
}, "/", listTotal)), VariantComponent ? /*#__PURE__*/React.createElement(VariantComponent, props, defaultContent) : defaultContent,
|
|
60
|
-
key: prop
|
|
61
|
-
}, prop) : null)), shouldRenderBanner && /*#__PURE__*/React.createElement(Banner, _extends({}, bannerProps, {
|
|
61
|
+
}, "/", listTotal)), VariantComponent ? /*#__PURE__*/React.createElement(VariantComponent, props, defaultContent) : defaultContent, shouldRenderBanner && /*#__PURE__*/React.createElement(Banner, _extends({}, bannerProps, {
|
|
62
62
|
renderCounter: bannerIndex
|
|
63
63
|
})));
|
|
64
64
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FullRenderItem.js","names":["React","useContext","PropTypes","Waypoint","MainContext","VariantContext","BuildPBComponents","Banner","parsePropsToDisplay","shouldRenderWaypoint","FullRenderItem","props","isInfinite","pageBuilderComponents","entityProps","propsToDisplay","entity","index","itemId","listTotal","initialOffset","currentListLength","triggerInfiniteScroll","parent","pageBuilderID","displayCount","shouldRenderBanner","bannerProps","bannerIndex","hasGTM","VariantComponent","parsedPropsToDisplay","currentItemIndex","renderWaypoint","defaultContent","createElement","className","_objectSpread","itemEntity","
|
|
1
|
+
{"version":3,"file":"FullRenderItem.js","names":["React","useContext","PropTypes","Waypoint","MainContext","VariantContext","BuildPBComponents","Banner","parsePropsToDisplay","shouldRenderWaypoint","FullRenderItem","props","isInfinite","pageBuilderComponents","entityProps","propsToDisplay","entity","index","itemId","listTotal","initialOffset","currentListLength","triggerInfiniteScroll","parent","pageBuilderID","displayCount","shouldRenderBanner","bannerProps","bannerIndex","hasGTM","VariantComponent","parsedPropsToDisplay","currentItemIndex","renderWaypoint","defaultContent","createElement","Fragment","className","_objectSpread","itemEntity","length","map","prop","key","onEnter","_extends","renderCounter","propTypes","array","object","isRequired","number","bool","func","string","data","itemsToDisplay","defaultProps"],"sources":["../../../../../src/components/List/components/Full/FullRenderItem.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { Waypoint } from 'react-waypoint';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { VariantContext } from '../../ListFactory';\nimport BuildPBComponents from '../../../../hooks/helpers/buildPBComponents';\nimport Banner from '../../../Banner';\nimport { parsePropsToDisplay, shouldRenderWaypoint } from '../../../../helpers';\n\nconst FullRenderItem = props => {\n const {\n isInfinite,\n pageBuilderComponents,\n entityProps,\n propsToDisplay,\n entity,\n index,\n itemId,\n listTotal,\n initialOffset,\n currentListLength,\n triggerInfiniteScroll,\n parent,\n pageBuilderID,\n displayCount,\n shouldRenderBanner,\n bannerProps,\n bannerIndex\n } = props;\n const { hasGTM } = useContext(MainContext);\n const VariantComponent = useContext(VariantContext);\n\n if (!pageBuilderComponents) return null;\n const parsedPropsToDisplay = parsePropsToDisplay(entityProps, propsToDisplay);\n const currentItemIndex = initialOffset + index;\n const renderWaypoint =\n isInfinite && shouldRenderWaypoint(index, currentListLength, currentItemIndex, listTotal);\n\n const defaultContent = (\n <>\n <div className=\"list__item list__item--full\">\n {BuildPBComponents(pageBuilderComponents, {\n parent: { ...parent, itemId, itemEntity: entity },\n hasGTM,\n pageBuilderID\n })}\n </div>\n {!VariantComponent &&\n !!parsedPropsToDisplay.length && (\n <>{parsedPropsToDisplay.map(prop => (prop ? <span key={prop}>{prop}</span> : null))}</>\n )}\n </>\n );\n\n return (\n <>\n {renderWaypoint && <Waypoint onEnter={triggerInfiniteScroll} />}\n {displayCount && (\n <div className=\"heading heading--section heading--section--count\">\n <span className=\"section-number\">{currentItemIndex + 1}</span>\n <span className=\"section-total\">/{listTotal}</span>\n </div>\n )}\n {VariantComponent ? (\n <VariantComponent {...props}>{defaultContent}</VariantComponent>\n ) : (\n defaultContent\n )}\n\n {shouldRenderBanner && <Banner {...bannerProps} renderCounter={bannerIndex} />}\n </>\n );\n};\n\nFullRenderItem.propTypes = {\n pageBuilderComponents: PropTypes.array,\n entityProps: PropTypes.object.isRequired,\n parent: PropTypes.object.isRequired,\n currentListLength: PropTypes.number.isRequired,\n listTotal: PropTypes.number.isRequired,\n initialOffset: PropTypes.number.isRequired,\n displayCount: PropTypes.bool.isRequired,\n triggerInfiniteScroll: PropTypes.func,\n entity: PropTypes.string.isRequired,\n pageBuilderID: PropTypes.string.isRequired,\n itemId: PropTypes.string.isRequired,\n index: PropTypes.number.isRequired,\n isInfinite: PropTypes.bool.isRequired,\n shouldRenderBanner: PropTypes.bool.isRequired,\n bannerIndex: PropTypes.number.isRequired,\n propsToDisplay: PropTypes.array,\n data: PropTypes.array,\n itemsToDisplay: PropTypes.array,\n bannerProps: PropTypes.object\n};\n\nFullRenderItem.defaultProps = {\n pageBuilderComponents: null,\n data: [],\n propsToDisplay: [],\n itemsToDisplay: [],\n triggerInfiniteScroll: null,\n bannerProps: null\n};\n\nexport default FullRenderItem;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -64,7 +64,7 @@ const getTypeBaseProps = (entitySchema, cardOptions, extraPropsHaveCategory) =>
|
|
|
64
64
|
dynamicProperties,
|
|
65
65
|
relations
|
|
66
66
|
} = entitySchema;
|
|
67
|
-
const isContent = !!interfaces.includes('content/content');
|
|
67
|
+
const isContent = !!interfaces.includes('content/content-base');
|
|
68
68
|
const hasCategory = checkProps(properties) || checkProps(dynamicProperties);
|
|
69
69
|
const hasPreheader = properties[PREHEADER_PROP];
|
|
70
70
|
const typeBasedProps = [...defaultProps];
|
|
@@ -81,7 +81,9 @@ const getTypeBaseProps = (entitySchema, cardOptions, extraPropsHaveCategory) =>
|
|
|
81
81
|
shouldAddCategoryProps
|
|
82
82
|
};
|
|
83
83
|
};
|
|
84
|
-
|
|
84
|
+
|
|
85
|
+
// make sure all props are supported by content/content-base interface
|
|
86
|
+
const getContentProps = isContent => isContent ? ['url', 'sponsored', 'featured', 'live'] : [];
|
|
85
87
|
const getCategoyProps = (shouldAddCategoryProps, hasCategory, hasPreheader) => {
|
|
86
88
|
if (!shouldAddCategoryProps) return [];
|
|
87
89
|
const props = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-props-query.js","names":["CATEGORY_ID","ID","PREHEADER_PROP","HEADLINE_PROP","defaultProps","categoryProps","checkProps","props","Object","keys","filter","prop","length","buildPropsQuery","entitySchema","extraProps","cardOptions","linkProps","parsedSchema","getEntitySchema","extraPropsHaveCategory","includes","typeBasedProps","shouldAddCategoryProps","getTypeBaseProps","allProps","uniqueProps","Set","basicProps","nestedProps","forEach","push","base","nested","split","complexProps","buildComplexProps","join","relations","dynamicProperties","properties","map","hasLink","find","linkProp","matchingProperty","matchingRelation","localField","matchingDynamicProp","dynamicKey","jointNestedProps","isCard","displayCategory","displayThumbnail","interfaces","isContent","hasCategory","hasPreheader","getCategoyProps","getContentProps","url"],"sources":["../../src/helpers/build-props-query.js"],"sourcesContent":["import { CATEGORY_ID, ID, PREHEADER_PROP, HEADLINE_PROP } from '../constants';\n\nconst defaultProps = [ID, 'name'];\nconst categoryProps = 'id publishedListingPage{id, url}';\n\nconst checkProps = props =>\n !!(props && Object.keys(props).filter(prop => prop === CATEGORY_ID).length);\n\nconst buildPropsQuery = (entitySchema, extraProps = [], cardOptions = null, linkProps = []) => {\n const parsedSchema = entitySchema.getEntitySchema ? entitySchema.getEntitySchema : entitySchema;\n const extraPropsHaveCategory = !!extraProps.filter(prop => prop.includes('category.')).length;\n const { typeBasedProps, shouldAddCategoryProps } = getTypeBaseProps(\n parsedSchema,\n cardOptions,\n extraPropsHaveCategory\n );\n\n const allProps = [...typeBasedProps, ...extraProps];\n const uniqueProps = [...new Set([...allProps])];\n const basicProps = [];\n const nestedProps = {};\n uniqueProps.forEach(prop => {\n if (prop) {\n if (!prop.includes('.')) {\n basicProps.push(prop);\n return;\n }\n const [base, nested] = prop.split('.');\n if (!nestedProps[base]) nestedProps[base] = [nested];\n else nestedProps[base].push(nested);\n }\n });\n\n const complexProps = buildComplexProps(\n shouldAddCategoryProps,\n nestedProps,\n parsedSchema,\n linkProps\n );\n\n return [...basicProps, ...complexProps].join(',');\n};\n\nconst buildComplexProps = (\n shouldAddCategoryProps,\n props,\n { relations = [], dynamicProperties = {}, properties = {} },\n linkProps\n) =>\n Object.keys(props).map(base => {\n const nestedProps = props[base];\n const hasLink = !!linkProps.find(linkProp => linkProp.includes(base));\n const matchingProperty = !!properties[base];\n const matchingRelation = relations.find(({ localField }) => localField === base);\n const matchingDynamicProp = Object.keys(dynamicProperties).find(\n dynamicKey => dynamicKey === base\n );\n\n if (matchingRelation && !nestedProps.includes('id')) nestedProps.push('id');\n if (hasLink && (!!matchingProperty || !!matchingRelation || !!matchingDynamicProp))\n nestedProps.push('url');\n const jointNestedProps = nestedProps.join(',');\n if (base === 'category' && shouldAddCategoryProps)\n return `${base}{${jointNestedProps}, ${categoryProps}}`;\n if (base.includes('published')) {\n return `${base}{${jointNestedProps},url}`;\n }\n return `${base}{${jointNestedProps}}`;\n });\n\nconst getTypeBaseProps = (entitySchema, cardOptions, extraPropsHaveCategory) => {\n const isCard = !!cardOptions;\n const { displayCategory = true, displayThumbnail = true } = cardOptions || {};\n\n const shouldAddCategoryProps =\n (isCard && displayCategory) || (!isCard && !extraPropsHaveCategory);\n\n if (!isCard) return { typeBasedProps: [ID], shouldAddCategoryProps };\n\n const { interfaces, properties, dynamicProperties, relations } = entitySchema;\n\n const isContent = !!interfaces.includes('content/content');\n const hasCategory = checkProps(properties) || checkProps(dynamicProperties);\n const hasPreheader = properties[PREHEADER_PROP];\n\n const typeBasedProps = [...defaultProps];\n\n typeBasedProps.push(...getCategoyProps(shouldAddCategoryProps, hasCategory, hasPreheader));\n typeBasedProps.push(...getContentProps(isContent));\n\n if (properties.url || dynamicProperties.url) typeBasedProps.push('url');\n\n if (displayThumbnail && relations.find(({ localField }) => localField === 'image')) {\n typeBasedProps.push('image.id', 'image.url', 'image.data');\n }\n\n return { typeBasedProps, shouldAddCategoryProps };\n};\n\nconst getContentProps = isContent => (isContent ? ['url', 'sponsored', 'featured'] : []);\n\nconst getCategoyProps = (shouldAddCategoryProps, hasCategory, hasPreheader) => {\n if (!shouldAddCategoryProps) return [];\n const props = [];\n if (hasCategory)\n props.push('category.name', 'category.listingPageId', 'category.listingPageEntity');\n\n if (hasPreheader) {\n props.push(`${PREHEADER_PROP}{name}`);\n props.push(HEADLINE_PROP);\n }\n\n return props;\n};\n\nexport default buildPropsQuery;\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"build-props-query.js","names":["CATEGORY_ID","ID","PREHEADER_PROP","HEADLINE_PROP","defaultProps","categoryProps","checkProps","props","Object","keys","filter","prop","length","buildPropsQuery","entitySchema","extraProps","cardOptions","linkProps","parsedSchema","getEntitySchema","extraPropsHaveCategory","includes","typeBasedProps","shouldAddCategoryProps","getTypeBaseProps","allProps","uniqueProps","Set","basicProps","nestedProps","forEach","push","base","nested","split","complexProps","buildComplexProps","join","relations","dynamicProperties","properties","map","hasLink","find","linkProp","matchingProperty","matchingRelation","localField","matchingDynamicProp","dynamicKey","jointNestedProps","isCard","displayCategory","displayThumbnail","interfaces","isContent","hasCategory","hasPreheader","getCategoyProps","getContentProps","url"],"sources":["../../src/helpers/build-props-query.js"],"sourcesContent":["import { CATEGORY_ID, ID, PREHEADER_PROP, HEADLINE_PROP } from '../constants';\n\nconst defaultProps = [ID, 'name'];\nconst categoryProps = 'id publishedListingPage{id, url}';\n\nconst checkProps = props =>\n !!(props && Object.keys(props).filter(prop => prop === CATEGORY_ID).length);\n\nconst buildPropsQuery = (entitySchema, extraProps = [], cardOptions = null, linkProps = []) => {\n const parsedSchema = entitySchema.getEntitySchema ? entitySchema.getEntitySchema : entitySchema;\n const extraPropsHaveCategory = !!extraProps.filter(prop => prop.includes('category.')).length;\n const { typeBasedProps, shouldAddCategoryProps } = getTypeBaseProps(\n parsedSchema,\n cardOptions,\n extraPropsHaveCategory\n );\n\n const allProps = [...typeBasedProps, ...extraProps];\n const uniqueProps = [...new Set([...allProps])];\n const basicProps = [];\n const nestedProps = {};\n uniqueProps.forEach(prop => {\n if (prop) {\n if (!prop.includes('.')) {\n basicProps.push(prop);\n return;\n }\n const [base, nested] = prop.split('.');\n if (!nestedProps[base]) nestedProps[base] = [nested];\n else nestedProps[base].push(nested);\n }\n });\n\n const complexProps = buildComplexProps(\n shouldAddCategoryProps,\n nestedProps,\n parsedSchema,\n linkProps\n );\n\n return [...basicProps, ...complexProps].join(',');\n};\n\nconst buildComplexProps = (\n shouldAddCategoryProps,\n props,\n { relations = [], dynamicProperties = {}, properties = {} },\n linkProps\n) =>\n Object.keys(props).map(base => {\n const nestedProps = props[base];\n const hasLink = !!linkProps.find(linkProp => linkProp.includes(base));\n const matchingProperty = !!properties[base];\n const matchingRelation = relations.find(({ localField }) => localField === base);\n const matchingDynamicProp = Object.keys(dynamicProperties).find(\n dynamicKey => dynamicKey === base\n );\n\n if (matchingRelation && !nestedProps.includes('id')) nestedProps.push('id');\n if (hasLink && (!!matchingProperty || !!matchingRelation || !!matchingDynamicProp))\n nestedProps.push('url');\n const jointNestedProps = nestedProps.join(',');\n if (base === 'category' && shouldAddCategoryProps)\n return `${base}{${jointNestedProps}, ${categoryProps}}`;\n if (base.includes('published')) {\n return `${base}{${jointNestedProps},url}`;\n }\n return `${base}{${jointNestedProps}}`;\n });\n\nconst getTypeBaseProps = (entitySchema, cardOptions, extraPropsHaveCategory) => {\n const isCard = !!cardOptions;\n const { displayCategory = true, displayThumbnail = true } = cardOptions || {};\n\n const shouldAddCategoryProps =\n (isCard && displayCategory) || (!isCard && !extraPropsHaveCategory);\n\n if (!isCard) return { typeBasedProps: [ID], shouldAddCategoryProps };\n\n const { interfaces, properties, dynamicProperties, relations } = entitySchema;\n\n const isContent = !!interfaces.includes('content/content-base');\n const hasCategory = checkProps(properties) || checkProps(dynamicProperties);\n const hasPreheader = properties[PREHEADER_PROP];\n\n const typeBasedProps = [...defaultProps];\n\n typeBasedProps.push(...getCategoyProps(shouldAddCategoryProps, hasCategory, hasPreheader));\n typeBasedProps.push(...getContentProps(isContent));\n\n if (properties.url || dynamicProperties.url) typeBasedProps.push('url');\n\n if (displayThumbnail && relations.find(({ localField }) => localField === 'image')) {\n typeBasedProps.push('image.id', 'image.url', 'image.data');\n }\n\n return { typeBasedProps, shouldAddCategoryProps };\n};\n\n// make sure all props are supported by content/content-base interface\nconst getContentProps = isContent => (isContent ? ['url', 'sponsored', 'featured', 'live'] : []);\n\nconst getCategoyProps = (shouldAddCategoryProps, hasCategory, hasPreheader) => {\n if (!shouldAddCategoryProps) return [];\n const props = [];\n if (hasCategory)\n props.push('category.name', 'category.listingPageId', 'category.listingPageEntity');\n\n if (hasPreheader) {\n props.push(`${PREHEADER_PROP}{name}`);\n props.push(HEADLINE_PROP);\n }\n\n return props;\n};\n\nexport default buildPropsQuery;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,47 +3,77 @@ import dayjs from 'dayjs';
|
|
|
3
3
|
import relativeTime from 'dayjs/plugin/relativeTime';
|
|
4
4
|
import Button from '@blaze-react/button';
|
|
5
5
|
import { FaPlus, FaMinus } from 'react-icons/fa';
|
|
6
|
+
import { BsPinAngleFill } from 'react-icons/bs';
|
|
6
7
|
dayjs.extend(relativeTime);
|
|
7
8
|
const LiveBlogList = props => {
|
|
8
9
|
const {
|
|
9
10
|
children,
|
|
10
11
|
date,
|
|
11
|
-
published
|
|
12
|
+
published,
|
|
13
|
+
featured
|
|
12
14
|
} = props;
|
|
13
15
|
const [isExpanded, setIsExpanded] = useState(false);
|
|
14
16
|
const [shouldShowButton, setShouldShowButton] = useState(false);
|
|
17
|
+
const [{
|
|
18
|
+
displayedDate,
|
|
19
|
+
displayedTime
|
|
20
|
+
}, setDisplayedDate] = useState({
|
|
21
|
+
displayedDate: ' ',
|
|
22
|
+
displayTime: ''
|
|
23
|
+
});
|
|
24
|
+
const usedDate = date || published;
|
|
15
25
|
const contentRef = useRef(null);
|
|
16
26
|
useEffect(() => {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
27
|
+
const timeout = setTimeout(() => {
|
|
28
|
+
if (contentRef.current) {
|
|
29
|
+
const contentHeight = contentRef.current.scrollHeight;
|
|
30
|
+
if (contentHeight > 380) {
|
|
31
|
+
setShouldShowButton(true);
|
|
32
|
+
}
|
|
21
33
|
}
|
|
22
|
-
}
|
|
34
|
+
}, 500); // delay to wait for content load
|
|
35
|
+
// todo: change to use mutation observer
|
|
36
|
+
|
|
37
|
+
return () => {
|
|
38
|
+
clearTimeout(timeout);
|
|
39
|
+
};
|
|
23
40
|
}, [children]);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
// delay setting time so no SSR issues based on timezone
|
|
43
|
+
let newDate = '';
|
|
44
|
+
if (usedDate) {
|
|
45
|
+
const diffInDays = dayjs().diff(dayjs(usedDate), 'day');
|
|
46
|
+
if (diffInDays < 1) {
|
|
47
|
+
newDate = dayjs(usedDate).fromNow();
|
|
48
|
+
} else if (diffInDays < 365) {
|
|
49
|
+
newDate = dayjs(usedDate).format('DD MMM');
|
|
50
|
+
} else {
|
|
51
|
+
newDate = dayjs(usedDate).format('DD MMM YYYY');
|
|
52
|
+
}
|
|
53
|
+
setDisplayedDate({
|
|
54
|
+
displayedDate: newDate,
|
|
55
|
+
displayedTime: dayjs(usedDate).format('HH:mm')
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}, [date, published, usedDate]);
|
|
24
59
|
const toggleExpanded = () => {
|
|
25
60
|
setIsExpanded(!isExpanded);
|
|
26
61
|
};
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (diffInDays < 1) {
|
|
32
|
-
displayedDate = dayjs(usedDate).fromNow();
|
|
33
|
-
} else if (diffInDays < 365) {
|
|
34
|
-
displayedDate = dayjs(usedDate).format('DD MMM');
|
|
35
|
-
} else {
|
|
36
|
-
displayedDate = dayjs(usedDate).format('DD MMM YYYY');
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
const isCollapsed = !isExpanded && shouldShowButton;
|
|
62
|
+
const isCollapsed = !isExpanded;
|
|
63
|
+
const baseClass = 'live-blog-container';
|
|
64
|
+
const modifier = featured ? ` ${baseClass}--featured` : '';
|
|
65
|
+
const className = `${baseClass}${modifier}`;
|
|
40
66
|
return /*#__PURE__*/React.createElement("div", {
|
|
41
|
-
className:
|
|
67
|
+
className: className
|
|
42
68
|
}, usedDate && /*#__PURE__*/React.createElement("div", {
|
|
43
69
|
className: "live-blog-date"
|
|
44
|
-
},
|
|
70
|
+
}, featured && /*#__PURE__*/React.createElement(BsPinAngleFill, null), /*#__PURE__*/React.createElement("span", {
|
|
71
|
+
className: "live-blog-date--date"
|
|
72
|
+
}, displayedDate), /*#__PURE__*/React.createElement("span", {
|
|
73
|
+
className: "live-blog-date--time"
|
|
74
|
+
}, displayedTime)), /*#__PURE__*/React.createElement("div", {
|
|
45
75
|
ref: contentRef,
|
|
46
|
-
className: `live-blog-content ${isCollapsed ? 'collapsed' : ''}`
|
|
76
|
+
className: `live-blog-content ${isCollapsed ? 'live-blog-content--collapsed' : 'live-blog-content--opened'}`
|
|
47
77
|
}, children), shouldShowButton && /*#__PURE__*/React.createElement("div", {
|
|
48
78
|
className: "live-blog-button-wrapper"
|
|
49
79
|
}, /*#__PURE__*/React.createElement(Button, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveBlogList.js","names":["React","useRef","useState","useEffect","dayjs","relativeTime","Button","FaPlus","FaMinus","extend","LiveBlogList","props","children","date","published","isExpanded","setIsExpanded","shouldShowButton","setShouldShowButton","contentRef","current","contentHeight","scrollHeight","
|
|
1
|
+
{"version":3,"file":"LiveBlogList.js","names":["React","useRef","useState","useEffect","dayjs","relativeTime","Button","FaPlus","FaMinus","BsPinAngleFill","extend","LiveBlogList","props","children","date","published","featured","isExpanded","setIsExpanded","shouldShowButton","setShouldShowButton","displayedDate","displayedTime","setDisplayedDate","displayTime","usedDate","contentRef","timeout","setTimeout","current","contentHeight","scrollHeight","clearTimeout","newDate","diffInDays","diff","fromNow","format","toggleExpanded","isCollapsed","baseClass","modifier","className","createElement","ref","onClick","type","Fragment"],"sources":["../../../src/variants/LiveBlogList/LiveBlogList.js"],"sourcesContent":["import React, { useRef, useState, useEffect } from 'react';\nimport dayjs from 'dayjs';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport Button from '@blaze-react/button';\nimport { FaPlus, FaMinus } from 'react-icons/fa';\nimport { BsPinAngleFill } from 'react-icons/bs';\n\ndayjs.extend(relativeTime);\n\nconst LiveBlogList = props => {\n const { children, date, published, featured } = props;\n const [isExpanded, setIsExpanded] = useState(false);\n const [shouldShowButton, setShouldShowButton] = useState(false);\n const [{ displayedDate, displayedTime }, setDisplayedDate] = useState({\n displayedDate: ' ',\n displayTime: ''\n });\n const usedDate = date || published;\n\n const contentRef = useRef(null);\n\n useEffect(\n () => {\n const timeout = setTimeout(() => {\n if (contentRef.current) {\n const contentHeight = contentRef.current.scrollHeight;\n if (contentHeight > 380) {\n setShouldShowButton(true);\n }\n }\n }, 500); // delay to wait for content load\n // todo: change to use mutation observer\n\n return () => {\n clearTimeout(timeout);\n };\n },\n [children]\n );\n\n useEffect(\n () => {\n // delay setting time so no SSR issues based on timezone\n let newDate = '';\n if (usedDate) {\n const diffInDays = dayjs().diff(dayjs(usedDate), 'day');\n if (diffInDays < 1) {\n newDate = dayjs(usedDate).fromNow();\n } else if (diffInDays < 365) {\n newDate = dayjs(usedDate).format('DD MMM');\n } else {\n newDate = dayjs(usedDate).format('DD MMM YYYY');\n }\n setDisplayedDate({\n displayedDate: newDate,\n displayedTime: dayjs(usedDate).format('HH:mm')\n });\n }\n },\n [date, published, usedDate]\n );\n\n const toggleExpanded = () => {\n setIsExpanded(!isExpanded);\n };\n\n const isCollapsed = !isExpanded;\n const baseClass = 'live-blog-container';\n const modifier = featured ? ` ${baseClass}--featured` : '';\n const className = `${baseClass}${modifier}`;\n\n return (\n <div className={className}>\n {usedDate && (\n <div className=\"live-blog-date\">\n {featured && <BsPinAngleFill />}\n <span className=\"live-blog-date--date\">{displayedDate}</span>\n <span className=\"live-blog-date--time\">{displayedTime}</span>\n </div>\n )}\n\n <div\n ref={contentRef}\n className={`live-blog-content ${\n isCollapsed ? 'live-blog-content--collapsed' : 'live-blog-content--opened'\n }`}>\n {children}\n </div>\n\n {shouldShowButton && (\n <div className=\"live-blog-button-wrapper\">\n <Button className=\"live-blog-toggle\" onClick={toggleExpanded} type=\"button\">\n {isExpanded ? (\n <>\n <FaMinus className=\"toggle-icon\" /> Show Less\n </>\n ) : (\n <>\n <FaPlus className=\"toggle-icon\" /> Show More\n </>\n )}\n </Button>\n </div>\n )}\n </div>\n );\n};\n\nexport default LiveBlogList;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "0.146.0-alpha.
|
|
3
|
+
"version": "0.146.0-alpha.41",
|
|
4
4
|
"description": "Blaze react page builder",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -90,5 +90,5 @@
|
|
|
90
90
|
"lib/*",
|
|
91
91
|
"lib-es/*"
|
|
92
92
|
],
|
|
93
|
-
"gitHead": "
|
|
93
|
+
"gitHead": "ff5ea0945fa88045e899064e4b49f2c7de2529e8"
|
|
94
94
|
}
|
|
@@ -284,9 +284,10 @@ const getImageDefinedProps = ({ image, displayThumbnail, name }) => {
|
|
|
284
284
|
|
|
285
285
|
const getInitialModifiers = ({ modifier, style, otherProps }) => {
|
|
286
286
|
const modifiers = [modifier, style];
|
|
287
|
-
const { sponsored, featured } = otherProps;
|
|
287
|
+
const { sponsored, featured, live } = otherProps;
|
|
288
288
|
if (sponsored) modifiers.push('sponsored');
|
|
289
289
|
if (featured) modifiers.push('featured');
|
|
290
|
+
if (live) modifiers.push('live');
|
|
290
291
|
|
|
291
292
|
return modifiers;
|
|
292
293
|
};
|
|
@@ -37,13 +37,19 @@ const FullRenderItem = props => {
|
|
|
37
37
|
isInfinite && shouldRenderWaypoint(index, currentListLength, currentItemIndex, listTotal);
|
|
38
38
|
|
|
39
39
|
const defaultContent = (
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
<>
|
|
41
|
+
<div className="list__item list__item--full">
|
|
42
|
+
{BuildPBComponents(pageBuilderComponents, {
|
|
43
|
+
parent: { ...parent, itemId, itemEntity: entity },
|
|
44
|
+
hasGTM,
|
|
45
|
+
pageBuilderID
|
|
46
|
+
})}
|
|
47
|
+
</div>
|
|
48
|
+
{!VariantComponent &&
|
|
49
|
+
!!parsedPropsToDisplay.length && (
|
|
50
|
+
<>{parsedPropsToDisplay.map(prop => (prop ? <span key={prop}>{prop}</span> : null))}</>
|
|
51
|
+
)}
|
|
52
|
+
</>
|
|
47
53
|
);
|
|
48
54
|
|
|
49
55
|
return (
|
|
@@ -60,9 +66,7 @@ const FullRenderItem = props => {
|
|
|
60
66
|
) : (
|
|
61
67
|
defaultContent
|
|
62
68
|
)}
|
|
63
|
-
|
|
64
|
-
<>{parsedPropsToDisplay.map(prop => (prop ? <span key={prop}>{prop}</span> : null))}</>
|
|
65
|
-
)}
|
|
69
|
+
|
|
66
70
|
{shouldRenderBanner && <Banner {...bannerProps} renderCounter={bannerIndex} />}
|
|
67
71
|
</>
|
|
68
72
|
);
|
|
@@ -79,7 +79,7 @@ const getTypeBaseProps = (entitySchema, cardOptions, extraPropsHaveCategory) =>
|
|
|
79
79
|
|
|
80
80
|
const { interfaces, properties, dynamicProperties, relations } = entitySchema;
|
|
81
81
|
|
|
82
|
-
const isContent = !!interfaces.includes('content/content');
|
|
82
|
+
const isContent = !!interfaces.includes('content/content-base');
|
|
83
83
|
const hasCategory = checkProps(properties) || checkProps(dynamicProperties);
|
|
84
84
|
const hasPreheader = properties[PREHEADER_PROP];
|
|
85
85
|
|
|
@@ -97,7 +97,8 @@ const getTypeBaseProps = (entitySchema, cardOptions, extraPropsHaveCategory) =>
|
|
|
97
97
|
return { typeBasedProps, shouldAddCategoryProps };
|
|
98
98
|
};
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
// make sure all props are supported by content/content-base interface
|
|
101
|
+
const getContentProps = isContent => (isContent ? ['url', 'sponsored', 'featured', 'live'] : []);
|
|
101
102
|
|
|
102
103
|
const getCategoyProps = (shouldAddCategoryProps, hasCategory, hasPreheader) => {
|
|
103
104
|
if (!shouldAddCategoryProps) return [];
|
|
@@ -3,53 +3,87 @@ import dayjs from 'dayjs';
|
|
|
3
3
|
import relativeTime from 'dayjs/plugin/relativeTime';
|
|
4
4
|
import Button from '@blaze-react/button';
|
|
5
5
|
import { FaPlus, FaMinus } from 'react-icons/fa';
|
|
6
|
+
import { BsPinAngleFill } from 'react-icons/bs';
|
|
6
7
|
|
|
7
8
|
dayjs.extend(relativeTime);
|
|
8
9
|
|
|
9
10
|
const LiveBlogList = props => {
|
|
10
|
-
const { children, date, published } = props;
|
|
11
|
+
const { children, date, published, featured } = props;
|
|
11
12
|
const [isExpanded, setIsExpanded] = useState(false);
|
|
12
13
|
const [shouldShowButton, setShouldShowButton] = useState(false);
|
|
14
|
+
const [{ displayedDate, displayedTime }, setDisplayedDate] = useState({
|
|
15
|
+
displayedDate: ' ',
|
|
16
|
+
displayTime: ''
|
|
17
|
+
});
|
|
18
|
+
const usedDate = date || published;
|
|
13
19
|
|
|
14
20
|
const contentRef = useRef(null);
|
|
15
21
|
|
|
16
22
|
useEffect(
|
|
17
23
|
() => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
const timeout = setTimeout(() => {
|
|
25
|
+
if (contentRef.current) {
|
|
26
|
+
const contentHeight = contentRef.current.scrollHeight;
|
|
27
|
+
if (contentHeight > 380) {
|
|
28
|
+
setShouldShowButton(true);
|
|
29
|
+
}
|
|
22
30
|
}
|
|
23
|
-
}
|
|
31
|
+
}, 500); // delay to wait for content load
|
|
32
|
+
// todo: change to use mutation observer
|
|
33
|
+
|
|
34
|
+
return () => {
|
|
35
|
+
clearTimeout(timeout);
|
|
36
|
+
};
|
|
24
37
|
},
|
|
25
38
|
[children]
|
|
26
39
|
);
|
|
27
40
|
|
|
41
|
+
useEffect(
|
|
42
|
+
() => {
|
|
43
|
+
// delay setting time so no SSR issues based on timezone
|
|
44
|
+
let newDate = '';
|
|
45
|
+
if (usedDate) {
|
|
46
|
+
const diffInDays = dayjs().diff(dayjs(usedDate), 'day');
|
|
47
|
+
if (diffInDays < 1) {
|
|
48
|
+
newDate = dayjs(usedDate).fromNow();
|
|
49
|
+
} else if (diffInDays < 365) {
|
|
50
|
+
newDate = dayjs(usedDate).format('DD MMM');
|
|
51
|
+
} else {
|
|
52
|
+
newDate = dayjs(usedDate).format('DD MMM YYYY');
|
|
53
|
+
}
|
|
54
|
+
setDisplayedDate({
|
|
55
|
+
displayedDate: newDate,
|
|
56
|
+
displayedTime: dayjs(usedDate).format('HH:mm')
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
[date, published, usedDate]
|
|
61
|
+
);
|
|
62
|
+
|
|
28
63
|
const toggleExpanded = () => {
|
|
29
64
|
setIsExpanded(!isExpanded);
|
|
30
65
|
};
|
|
31
66
|
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const diffInDays = dayjs().diff(dayjs(usedDate), 'day');
|
|
37
|
-
if (diffInDays < 1) {
|
|
38
|
-
displayedDate = dayjs(usedDate).fromNow();
|
|
39
|
-
} else if (diffInDays < 365) {
|
|
40
|
-
displayedDate = dayjs(usedDate).format('DD MMM');
|
|
41
|
-
} else {
|
|
42
|
-
displayedDate = dayjs(usedDate).format('DD MMM YYYY');
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const isCollapsed = !isExpanded && shouldShowButton;
|
|
67
|
+
const isCollapsed = !isExpanded;
|
|
68
|
+
const baseClass = 'live-blog-container';
|
|
69
|
+
const modifier = featured ? ` ${baseClass}--featured` : '';
|
|
70
|
+
const className = `${baseClass}${modifier}`;
|
|
47
71
|
|
|
48
72
|
return (
|
|
49
|
-
<div className=
|
|
50
|
-
{usedDate &&
|
|
73
|
+
<div className={className}>
|
|
74
|
+
{usedDate && (
|
|
75
|
+
<div className="live-blog-date">
|
|
76
|
+
{featured && <BsPinAngleFill />}
|
|
77
|
+
<span className="live-blog-date--date">{displayedDate}</span>
|
|
78
|
+
<span className="live-blog-date--time">{displayedTime}</span>
|
|
79
|
+
</div>
|
|
80
|
+
)}
|
|
51
81
|
|
|
52
|
-
<div
|
|
82
|
+
<div
|
|
83
|
+
ref={contentRef}
|
|
84
|
+
className={`live-blog-content ${
|
|
85
|
+
isCollapsed ? 'live-blog-content--collapsed' : 'live-blog-content--opened'
|
|
86
|
+
}`}>
|
|
53
87
|
{children}
|
|
54
88
|
</div>
|
|
55
89
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import buildPropsQuery from '../../../../src/helpers/build-props-query';
|
|
5
5
|
|
|
6
|
-
const CONTENT_INTERFACE = 'content/content';
|
|
6
|
+
const CONTENT_INTERFACE = 'content/content-base';
|
|
7
7
|
|
|
8
8
|
describe('get card render props', () => {
|
|
9
9
|
const relations = [
|
|
@@ -60,7 +60,7 @@ describe('get card render props', () => {
|
|
|
60
60
|
};
|
|
61
61
|
const query = buildPropsQuery(_data, [], cardProps);
|
|
62
62
|
expect(query).toEqual(
|
|
63
|
-
'id,name,url,sponsored,featured,category{name,listingPageId,listingPageEntity, id publishedListingPage{id, url}},image{id,url,data}'
|
|
63
|
+
'id,name,url,sponsored,featured,live,category{name,listingPageId,listingPageEntity, id publishedListingPage{id, url}},image{id,url,data}'
|
|
64
64
|
);
|
|
65
65
|
});
|
|
66
66
|
|
|
@@ -70,7 +70,7 @@ describe('get card render props', () => {
|
|
|
70
70
|
displayThumbnail: false
|
|
71
71
|
});
|
|
72
72
|
expect(query).toEqual(
|
|
73
|
-
'id,name,alternativePreHeader{name},alternativeHeadline,url,sponsored,featured'
|
|
73
|
+
'id,name,alternativePreHeader{name},alternativeHeadline,url,sponsored,featured,live'
|
|
74
74
|
);
|
|
75
75
|
});
|
|
76
76
|
|
|
@@ -92,18 +92,20 @@ describe('get card render props', () => {
|
|
|
92
92
|
displayThumbnail: false
|
|
93
93
|
});
|
|
94
94
|
expect(query).toEqual(
|
|
95
|
-
'id,name,alternativePreHeader{name},alternativeHeadline,url,sponsored,featured,category{name,listingPageId,listingPageEntity, id publishedListingPage{id, url}}'
|
|
95
|
+
'id,name,alternativePreHeader{name},alternativeHeadline,url,sponsored,featured,live,category{name,listingPageId,listingPageEntity, id publishedListingPage{id, url}}'
|
|
96
96
|
);
|
|
97
97
|
});
|
|
98
98
|
|
|
99
99
|
it('should not include category if the schema does not have a category', () => {
|
|
100
100
|
const query = buildPropsQuery(data, [], cardProps);
|
|
101
|
-
expect(query).toEqual('id,name,url,sponsored,featured,image{id,url,data}');
|
|
101
|
+
expect(query).toEqual('id,name,url,sponsored,featured,live,image{id,url,data}');
|
|
102
102
|
});
|
|
103
103
|
|
|
104
104
|
it('should return complex props when base includes published', () => {
|
|
105
105
|
const query = buildPropsQuery(data, ['published.date'], cardProps);
|
|
106
|
-
expect(query).toEqual(
|
|
106
|
+
expect(query).toEqual(
|
|
107
|
+
'id,name,url,sponsored,featured,live,image{id,url,data},published{date,url}'
|
|
108
|
+
);
|
|
107
109
|
});
|
|
108
110
|
|
|
109
111
|
it('should return result as if isCard was false when isCard is not passed', () => {
|
|
@@ -113,7 +115,7 @@ describe('get card render props', () => {
|
|
|
113
115
|
|
|
114
116
|
it('should return result as if isCard was false when extraProps were not passed', () => {
|
|
115
117
|
const query = buildPropsQuery(data, undefined, cardProps);
|
|
116
|
-
expect(query).toEqual('id,name,url,sponsored,featured,image{id,url,data}');
|
|
118
|
+
expect(query).toEqual('id,name,url,sponsored,featured,live,image{id,url,data}');
|
|
117
119
|
});
|
|
118
120
|
|
|
119
121
|
it('should return a string with respective props query when isCard is passed as true', () => {
|
|
@@ -136,7 +138,7 @@ describe('get card render props', () => {
|
|
|
136
138
|
|
|
137
139
|
it('should not include category and image props if card options says not to', () => {
|
|
138
140
|
const query = buildPropsQuery(data, [], { displayCategory: false, displayThumbnail: false });
|
|
139
|
-
expect(query).toEqual('id,name,url,sponsored,featured');
|
|
141
|
+
expect(query).toEqual('id,name,url,sponsored,featured,live');
|
|
140
142
|
});
|
|
141
143
|
|
|
142
144
|
it('should not fetch image if the schema does not have imageId property', () => {
|
|
@@ -153,7 +155,7 @@ describe('get card render props', () => {
|
|
|
153
155
|
};
|
|
154
156
|
const query = buildPropsQuery(_data, [], cardProps);
|
|
155
157
|
expect(query).toEqual(
|
|
156
|
-
'id,name,url,sponsored,featured,category{name,listingPageId,listingPageEntity, id publishedListingPage{id, url}}'
|
|
158
|
+
'id,name,url,sponsored,featured,live,category{name,listingPageId,listingPageEntity, id publishedListingPage{id, url}}'
|
|
157
159
|
);
|
|
158
160
|
});
|
|
159
161
|
|
|
@@ -179,7 +181,7 @@ describe('get card render props', () => {
|
|
|
179
181
|
};
|
|
180
182
|
const query = buildPropsQuery(_data, ['address.country'], cardProps);
|
|
181
183
|
expect(query).toEqual(
|
|
182
|
-
'id,name,url,sponsored,featured,category{name,listingPageId,listingPageEntity, id publishedListingPage{id, url}},address{country,id}'
|
|
184
|
+
'id,name,url,sponsored,featured,live,category{name,listingPageId,listingPageEntity, id publishedListingPage{id, url}},address{country,id}'
|
|
183
185
|
);
|
|
184
186
|
});
|
|
185
187
|
|
|
@@ -204,7 +206,7 @@ describe('get card render props', () => {
|
|
|
204
206
|
const linkProps = ['nestedProperty.title', 'nestedDynamicProperty.title', 'address.title'];
|
|
205
207
|
const query = buildPropsQuery(_data, linkProps, {}, linkProps);
|
|
206
208
|
expect(query).toEqual(
|
|
207
|
-
'id,name,url,sponsored,featured,nestedProperty{title,url},nestedDynamicProperty{title,url},address{title,id,url}'
|
|
209
|
+
'id,name,url,sponsored,featured,live,nestedProperty{title,url},nestedDynamicProperty{title,url},address{title,id,url}'
|
|
208
210
|
);
|
|
209
211
|
});
|
|
210
212
|
});
|