@blaze-cms/react-page-builder 0.123.0-alpha.18 → 0.123.0-alpha.20
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 +19 -0
- package/lib/components/Card/Card.js +11 -5
- package/lib/components/Card/Card.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +15 -50
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib-es/components/Card/Card.js +9 -3
- package/lib-es/components/Card/Card.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js +10 -40
- package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/package.json +2 -2
- package/src/components/Card/Card.js +11 -2
- package/src/components/SearchFilter/SearchFilter/SearchFilter.js +113 -148
- package/tests/unit/src/components/Card/__snapshots__/Card.test.js.snap +5 -5
- package/tests/unit/src/components/Card/__snapshots__/CardContainer.test.js.snap +4 -4
- package/tests/unit/src/components/Card/__snapshots__/CardRender.test.js.snap +1 -1
- package/tests/unit/src/components/List/components/Cards/__snapshots__/CardsRender.test.js.snap +6 -6
- package/tests/unit/src/components/Menu/Menu.test.js +3 -1
- package/tests/unit/src/components/Menu/__snapshots__/Menu.test.js.snap +3 -0
- package/tests/unit/src/components/SearchFilter/SearchFilter/SearchFilter.test.js +64 -86
- package/tests/unit/src/components/SearchFilter/SearchFilter/__snapshots__/SearchFilter.test.js.snap +133 -61
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,25 @@
|
|
|
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.123.0-alpha.20](https://github.com/thebyte9/blaze/compare/v0.123.0-alpha.19...v0.123.0-alpha.20) (2022-04-01)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [0.123.0-alpha.19](https://github.com/thebyte9/blaze/compare/v0.123.0-alpha.18...v0.123.0-alpha.19) (2022-03-31)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* handle search filter with css ([#3395](https://github.com/thebyte9/blaze/issues/3395)) ([41cef02](https://github.com/thebyte9/blaze/commit/41cef02add747256cb813b0d2985f54ec92a4061))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
6
25
|
# [0.123.0-alpha.18](https://github.com/thebyte9/blaze/compare/v0.123.0-alpha.17...v0.123.0-alpha.18) (2022-03-31)
|
|
7
26
|
|
|
8
27
|
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
@@ -25,10 +25,10 @@ exports["default"] = void 0;
|
|
|
25
25
|
|
|
26
26
|
require("core-js/modules/es.function.name.js");
|
|
27
27
|
|
|
28
|
-
require("core-js/modules/es.array.map.js");
|
|
29
|
-
|
|
30
28
|
require("core-js/modules/es.array.concat.js");
|
|
31
29
|
|
|
30
|
+
require("core-js/modules/es.array.map.js");
|
|
31
|
+
|
|
32
32
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
33
33
|
|
|
34
34
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -47,7 +47,7 @@ var _helpers2 = require("./helpers");
|
|
|
47
47
|
|
|
48
48
|
var _constants = require("./constants");
|
|
49
49
|
|
|
50
|
-
var _excluded = ["id", "image", "name", "url", "entity", "entityProps", "alternativePreHeader", "alternativeHeadline", "category", "modifier", "propsToDisplay", "propsToDisplayModifiers", "gtmId", "style", "priority", "cardChildren", "gtmChildren", "displayCategory", "displayThumbnail", "displayTitle", "gridModifier"];
|
|
50
|
+
var _excluded = ["id", "image", "name", "url", "entity", "entityProps", "alternativePreHeader", "alternativeHeadline", "category", "modifier", "propsToDisplay", "propsToDisplayModifiers", "gtmId", "style", "priority", "cardChildren", "gtmChildren", "displayCategory", "displayThumbnail", "displayTitle", "enableOverlay", "overlayModifier", "gridModifier"];
|
|
51
51
|
|
|
52
52
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
53
53
|
|
|
@@ -74,6 +74,8 @@ var Card = function Card(_ref) {
|
|
|
74
74
|
displayCategory = _ref.displayCategory,
|
|
75
75
|
displayThumbnail = _ref.displayThumbnail,
|
|
76
76
|
displayTitle = _ref.displayTitle,
|
|
77
|
+
enableOverlay = _ref.enableOverlay,
|
|
78
|
+
overlayModifier = _ref.overlayModifier,
|
|
77
79
|
gridModifier = _ref.gridModifier,
|
|
78
80
|
otherProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
79
81
|
(0, _helpers.updateChildrensParent)(cardChildren, id, entity);
|
|
@@ -118,6 +120,7 @@ var Card = function Card(_ref) {
|
|
|
118
120
|
|
|
119
121
|
var Wrapper = shouldUseClickWrapper ? _ClickWrapper["default"] : _react.Fragment;
|
|
120
122
|
var classNameWithModifiers = (0, _helpers.getModifiers)(_constants.CARD_STRING, modifiers);
|
|
123
|
+
var contentWrapperModifier = "".concat((0, _helpers.getModifiers)('card__content-wrapper', modifiers), " ").concat(enableOverlay ? overlayModifier : '');
|
|
121
124
|
return /*#__PURE__*/_react["default"].createElement(Wrapper, wrapperProps, /*#__PURE__*/_react["default"].createElement("div", {
|
|
122
125
|
className: classNameWithModifiers
|
|
123
126
|
}, shouldDisplayThumbnail && /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -133,7 +136,7 @@ var Card = function Card(_ref) {
|
|
|
133
136
|
sizeKey: dynamicSizeKey,
|
|
134
137
|
priority: priority
|
|
135
138
|
}))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
136
|
-
className:
|
|
139
|
+
className: contentWrapperModifier
|
|
137
140
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
138
141
|
className: (0, _helpers.getModifiers)('card__content', modifiers)
|
|
139
142
|
}, displayCategory && (publishedListingPage ? /*#__PURE__*/_react["default"].createElement(_BlazeLink["default"], {
|
|
@@ -193,6 +196,8 @@ Card.propTypes = {
|
|
|
193
196
|
displayCategory: _propTypes["default"].bool.isRequired,
|
|
194
197
|
displayThumbnail: _propTypes["default"].bool.isRequired,
|
|
195
198
|
displayTitle: _propTypes["default"].bool.isRequired,
|
|
199
|
+
enableOverlay: _propTypes["default"].bool.isRequired,
|
|
200
|
+
overlayModifier: _propTypes["default"].string,
|
|
196
201
|
cardChildren: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]),
|
|
197
202
|
gtmChildren: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]),
|
|
198
203
|
gridModifier: _propTypes["default"].string,
|
|
@@ -216,7 +221,8 @@ Card.defaultProps = {
|
|
|
216
221
|
cardChildren: [],
|
|
217
222
|
gtmChildren: [],
|
|
218
223
|
gridModifier: '',
|
|
219
|
-
priority: false
|
|
224
|
+
priority: false,
|
|
225
|
+
overlayModifier: ''
|
|
220
226
|
};
|
|
221
227
|
|
|
222
228
|
var getCategoryDefinedProps = function getCategoryDefinedProps(_ref2) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Card/Card.js"],"names":["Card","id","image","name","url","entity","entityProps","alternativePreHeader","alternativeHeadline","category","modifier","propsToDisplay","propsToDisplayModifiers","gtmId","style","priority","cardChildren","gtmChildren","displayCategory","displayThumbnail","displayTitle","gridModifier","otherProps","getImageDefinedProps","imageSrc","shouldDisplayThumbnail","altText","modifiers","getInitialModifiers","getCategoryDefinedProps","publishedListingPage","preHeader","label","headline","linkTitle","dynamicSizeKey","CARD_STRING","shouldUseClickWrapper","wrapperProps","Wrapper","ClickWrapper","Fragment","classNameWithModifiers","length","map","prop","i","dynamicKey","propModifier","propTypes","PropTypes","string","isRequired","shape","data","object","array","bool","oneOfType","arrayOf","node","defaultProps","hasAlternativePreHeader","sponsored","featured","push"],"mappings":"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","sourcesContent":["import React, { Fragment } from 'react';\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 } from './constants';\n\nconst Card = ({\n id,\n image,\n name,\n url,\n entity,\n entityProps,\n alternativePreHeader,\n alternativeHeadline,\n category,\n modifier,\n propsToDisplay,\n propsToDisplayModifiers,\n gtmId,\n style,\n priority,\n cardChildren,\n gtmChildren,\n displayCategory,\n displayThumbnail,\n displayTitle,\n gridModifier,\n ...otherProps\n}) => {\n updateChildrensParent(cardChildren, id, entity);\n const { imageSrc, shouldDisplayThumbnail, altText } = getImageDefinedProps({\n image,\n displayThumbnail\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 const linkTitle = name;\n const dynamicSizeKey = useDynamicSizeKey(CARD_STRING, { style, gridModifier, modifier });\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(\n gtmChildren,\n entityProps,\n id\n );\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n const classNameWithModifiers = getModifiers(CARD_STRING, modifiers);\n\n return (\n <Wrapper {...wrapperProps}>\n <div className={classNameWithModifiers}>\n {shouldDisplayThumbnail && (\n <div className={getModifiers('card__image', modifiers)}>\n <BlazeLink gtmId={gtmId} href={url} className=\"card__image-link\" scroll>\n <LazyImage\n src={imageSrc}\n alt={altText}\n sizeKey={dynamicSizeKey}\n priority={priority}\n />\n </BlazeLink>\n </div>\n )}\n <div className={getModifiers('card__content-wrapper', modifiers)}>\n <div className={getModifiers('card__content', modifiers)}>\n {displayCategory &&\n (publishedListingPage ? (\n <BlazeLink\n gtmId={gtmId}\n href={publishedListingPage}\n className=\"badge badge--label\"\n scroll>\n {preHeader.name}\n </BlazeLink>\n ) : (\n <div className=\"badge badge--label\">{label}</div>\n ))}\n {displayTitle && (\n <h2 className={getModifiers('card__title', modifiers)}>\n <BlazeLink title={linkTitle} gtmId={gtmId} href={url} scroll>\n {headline}\n </BlazeLink>\n </h2>\n )}\n {!!propsToDisplay.length && (\n <div className={getModifiers('card__details', modifiers)}>\n {propsToDisplay.map((prop, i) => {\n if (!prop) return null;\n const dynamicKey = `${id}${i}`;\n const propModifier = propsToDisplayModifiers[i] || '';\n\n return (\n <span key={dynamicKey} className={propModifier}>\n {prop}\n </span>\n );\n })}\n </div>\n )}\n </div>\n {!!cardChildren && (\n <div className=\"card__child-content\">{renderChildren(cardChildren)}</div>\n )}\n </div>\n </div>\n </Wrapper>\n );\n};\n\nCard.propTypes = {\n id: PropTypes.string.isRequired,\n image: PropTypes.shape({\n url: PropTypes.string,\n data: PropTypes.object\n }),\n style: PropTypes.string,\n propsToDisplay: PropTypes.array,\n propsToDisplayModifiers: PropTypes.array,\n url: PropTypes.string,\n name: PropTypes.string.isRequired,\n entity: 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 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};\n\nCard.defaultProps = {\n entityProps: {},\n image: {\n url: null,\n data: {}\n },\n gtmId: '',\n style: 'portrait',\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};\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 }) => {\n const { url: imageSrc, data } = image || {};\n const shouldDisplayThumbnail = displayThumbnail && imageSrc;\n const altText = (data && data.altText) || '';\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"],"file":"Card.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Card/Card.js"],"names":["Card","id","image","name","url","entity","entityProps","alternativePreHeader","alternativeHeadline","category","modifier","propsToDisplay","propsToDisplayModifiers","gtmId","style","priority","cardChildren","gtmChildren","displayCategory","displayThumbnail","displayTitle","enableOverlay","overlayModifier","gridModifier","otherProps","getImageDefinedProps","imageSrc","shouldDisplayThumbnail","altText","modifiers","getInitialModifiers","getCategoryDefinedProps","publishedListingPage","preHeader","label","headline","linkTitle","dynamicSizeKey","CARD_STRING","shouldUseClickWrapper","wrapperProps","Wrapper","ClickWrapper","Fragment","classNameWithModifiers","contentWrapperModifier","length","map","prop","i","dynamicKey","propModifier","propTypes","PropTypes","string","isRequired","shape","data","object","array","bool","oneOfType","arrayOf","node","defaultProps","hasAlternativePreHeader","sponsored","featured","push"],"mappings":"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","sourcesContent":["import React, { Fragment } from 'react';\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 } from './constants';\n\nconst Card = ({\n id,\n image,\n name,\n url,\n entity,\n entityProps,\n alternativePreHeader,\n alternativeHeadline,\n category,\n modifier,\n propsToDisplay,\n propsToDisplayModifiers,\n gtmId,\n style,\n priority,\n cardChildren,\n gtmChildren,\n displayCategory,\n displayThumbnail,\n displayTitle,\n enableOverlay,\n overlayModifier,\n gridModifier,\n ...otherProps\n}) => {\n updateChildrensParent(cardChildren, id, entity);\n const { imageSrc, shouldDisplayThumbnail, altText } = getImageDefinedProps({\n image,\n displayThumbnail\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 const linkTitle = name;\n const dynamicSizeKey = useDynamicSizeKey(CARD_STRING, { style, gridModifier, modifier });\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(\n gtmChildren,\n entityProps,\n id\n );\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n const classNameWithModifiers = getModifiers(CARD_STRING, modifiers);\n\n const contentWrapperModifier = `${getModifiers('card__content-wrapper', modifiers)} ${\n enableOverlay ? overlayModifier : ''\n }`;\n\n return (\n <Wrapper {...wrapperProps}>\n <div className={classNameWithModifiers}>\n {shouldDisplayThumbnail && (\n <div className={getModifiers('card__image', modifiers)}>\n <BlazeLink gtmId={gtmId} href={url} className=\"card__image-link\" scroll>\n <LazyImage\n src={imageSrc}\n alt={altText}\n sizeKey={dynamicSizeKey}\n priority={priority}\n />\n </BlazeLink>\n </div>\n )}\n <div className={contentWrapperModifier}>\n <div className={getModifiers('card__content', modifiers)}>\n {displayCategory &&\n (publishedListingPage ? (\n <BlazeLink\n gtmId={gtmId}\n href={publishedListingPage}\n className=\"badge badge--label\"\n scroll>\n {preHeader.name}\n </BlazeLink>\n ) : (\n <div className=\"badge badge--label\">{label}</div>\n ))}\n {displayTitle && (\n <h2 className={getModifiers('card__title', modifiers)}>\n <BlazeLink title={linkTitle} gtmId={gtmId} href={url} scroll>\n {headline}\n </BlazeLink>\n </h2>\n )}\n {!!propsToDisplay.length && (\n <div className={getModifiers('card__details', modifiers)}>\n {propsToDisplay.map((prop, i) => {\n if (!prop) return null;\n const dynamicKey = `${id}${i}`;\n const propModifier = propsToDisplayModifiers[i] || '';\n\n return (\n <span key={dynamicKey} className={propModifier}>\n {prop}\n </span>\n );\n })}\n </div>\n )}\n </div>\n {!!cardChildren && (\n <div className=\"card__child-content\">{renderChildren(cardChildren)}</div>\n )}\n </div>\n </div>\n </Wrapper>\n );\n};\n\nCard.propTypes = {\n id: PropTypes.string.isRequired,\n image: PropTypes.shape({\n url: PropTypes.string,\n data: PropTypes.object\n }),\n style: PropTypes.string,\n propsToDisplay: PropTypes.array,\n propsToDisplayModifiers: PropTypes.array,\n url: PropTypes.string,\n name: PropTypes.string.isRequired,\n entity: 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 enableOverlay: PropTypes.bool.isRequired,\n overlayModifier: 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};\n\nCard.defaultProps = {\n entityProps: {},\n image: {\n url: null,\n data: {}\n },\n gtmId: '',\n style: 'portrait',\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};\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 }) => {\n const { url: imageSrc, data } = image || {};\n const shouldDisplayThumbnail = displayThumbnail && imageSrc;\n const altText = (data && data.altText) || '';\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"],"file":"Card.js"}
|
|
@@ -117,23 +117,13 @@ var SearchFilter = function SearchFilter(_ref) {
|
|
|
117
117
|
|
|
118
118
|
var _useState = (0, _react.useState)(true),
|
|
119
119
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
120
|
-
|
|
121
|
-
|
|
120
|
+
moreFiltersMobileCollapsed = _useState2[0],
|
|
121
|
+
setMoreFiltersMobileCollapsed = _useState2[1];
|
|
122
122
|
|
|
123
|
-
var _useState3 = (0, _react.useState)(
|
|
123
|
+
var _useState3 = (0, _react.useState)(true),
|
|
124
124
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
var _useState5 = (0, _react.useState)(true),
|
|
129
|
-
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
130
|
-
moreFiltersMobileCollapsed = _useState6[0],
|
|
131
|
-
setMoreFiltersMobileCollapsed = _useState6[1];
|
|
132
|
-
|
|
133
|
-
var _useState7 = (0, _react.useState)(true),
|
|
134
|
-
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
135
|
-
moreFiltersDesktopCollapsed = _useState8[0],
|
|
136
|
-
setMoreFiltersDesktopCollapsed = _useState8[1];
|
|
125
|
+
moreFiltersDesktopCollapsed = _useState4[0],
|
|
126
|
+
setMoreFiltersDesktopCollapsed = _useState4[1];
|
|
137
127
|
|
|
138
128
|
var _useReducer = (0, _react.useReducer)(reducer, initialFilterValues),
|
|
139
129
|
_useReducer2 = (0, _slicedToArray2["default"])(_useReducer, 2),
|
|
@@ -144,24 +134,6 @@ var SearchFilter = function SearchFilter(_ref) {
|
|
|
144
134
|
var newQuery = (0, _helpers.buildQuery)(newValues, filters);
|
|
145
135
|
handleSearch(newQuery);
|
|
146
136
|
}, 200);
|
|
147
|
-
(0, _react.useEffect)(function () {
|
|
148
|
-
if (window && !pageWidth) {
|
|
149
|
-
setPageWidth(window.innerWidth);
|
|
150
|
-
setIsDesktop((0, _helpers.isDeviceDesktop)());
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
var handleResize = function handleResize(_ref2) {
|
|
154
|
-
var innerWidth = _ref2.target.innerWidth;
|
|
155
|
-
setIsDesktop((0, _helpers.isDeviceDesktop)());
|
|
156
|
-
setPageWidth(innerWidth);
|
|
157
|
-
if (isDesktop) setDisplaySearchFilter(false);
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
window.addEventListener('resize', handleResize);
|
|
161
|
-
return function () {
|
|
162
|
-
window.removeEventListener('resize', handleResize);
|
|
163
|
-
};
|
|
164
|
-
}, [isDesktop, pageWidth, setDisplaySearchFilter]);
|
|
165
137
|
(0, _react.useEffect)(function () {
|
|
166
138
|
if (filterValues.shouldSearch) {
|
|
167
139
|
handleSubmit(filterValues);
|
|
@@ -170,16 +142,9 @@ var SearchFilter = function SearchFilter(_ref) {
|
|
|
170
142
|
});
|
|
171
143
|
}
|
|
172
144
|
}, [filterValues, handleSubmit]);
|
|
173
|
-
var
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
if (!isDesktop && isCollapsedOnResponsive) {
|
|
177
|
-
isMobileFormDisplayed = displaySearchFilter;
|
|
178
|
-
isDesktopFormDisplayed = false;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
var formClass = (0, _classnames["default"])({
|
|
182
|
-
'filter__form filter__form--mobile': isMobileFormDisplayed
|
|
145
|
+
var formClass = (0, _classnames["default"])('filter__form filter__form--initial', {
|
|
146
|
+
'filter__form--mobile': isCollapsedOnResponsive && displaySearchFilter,
|
|
147
|
+
'filter__form--collapsible': isCollapsedOnResponsive
|
|
183
148
|
});
|
|
184
149
|
|
|
185
150
|
var _getResponsiveFilterC = (0, _helpers.getResponsiveFilterClassnames)(moreFiltersDesktopCollapsed, moreFiltersMobileCollapsed),
|
|
@@ -208,7 +173,7 @@ var SearchFilter = function SearchFilter(_ref) {
|
|
|
208
173
|
|
|
209
174
|
var shouldGroup = !!(groupAfterDesktop || groupAfterMobile);
|
|
210
175
|
var shouldSearch = !hasUrl;
|
|
211
|
-
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null,
|
|
176
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("form", {
|
|
212
177
|
ref: searchFilterRef,
|
|
213
178
|
className: formClass,
|
|
214
179
|
"data-testid": formId,
|
|
@@ -218,13 +183,13 @@ var SearchFilter = function SearchFilter(_ref) {
|
|
|
218
183
|
var newQuery = (0, _helpers.buildQuery)(filterValues, filters);
|
|
219
184
|
handleSearch(newQuery);
|
|
220
185
|
}
|
|
221
|
-
},
|
|
186
|
+
}, displaySearchFilter && /*#__PURE__*/_react["default"].createElement(_CloseMobileForm["default"], {
|
|
222
187
|
handleClose: function handleClose() {
|
|
223
188
|
return setDisplaySearchFilter(false);
|
|
224
189
|
}
|
|
225
190
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
226
191
|
className: "filter filter--search-refine"
|
|
227
|
-
},
|
|
192
|
+
}, /*#__PURE__*/_react["default"].createElement(_ResetDesktopForm["default"], {
|
|
228
193
|
handleReset: handleReset
|
|
229
194
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
230
195
|
className: "filter__wrapper filter__wrapper--search-refine"
|
|
@@ -294,13 +259,13 @@ var SearchFilter = function SearchFilter(_ref) {
|
|
|
294
259
|
}), /*#__PURE__*/_react["default"].createElement("button", {
|
|
295
260
|
className: "button button--full-width",
|
|
296
261
|
type: "submit"
|
|
297
|
-
}, _constants.SEARCH)))), /*#__PURE__*/_react["default"].createElement("br", null),
|
|
262
|
+
}, _constants.SEARCH)))), /*#__PURE__*/_react["default"].createElement("br", null), !displaySearchFilter && /*#__PURE__*/_react["default"].createElement("button", {
|
|
298
263
|
className: "button button--full-width",
|
|
299
264
|
type: "submit"
|
|
300
|
-
}, _constants.SEARCH))),
|
|
265
|
+
}, _constants.SEARCH))), displaySearchFilter && /*#__PURE__*/_react["default"].createElement(_MobileFormToolbar["default"], {
|
|
301
266
|
formId: formId,
|
|
302
267
|
handleReset: handleReset
|
|
303
|
-
}))
|
|
268
|
+
})), isCollapsedOnResponsive && !displaySearchFilter && /*#__PURE__*/_react["default"].createElement("div", {
|
|
304
269
|
className: "filter__refine filter__refine--mobile-close",
|
|
305
270
|
"data-testid": "refine-mobile"
|
|
306
271
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -308,7 +273,7 @@ var SearchFilter = function SearchFilter(_ref) {
|
|
|
308
273
|
onClick: function onClick() {
|
|
309
274
|
return setDisplaySearchFilter(true);
|
|
310
275
|
}
|
|
311
|
-
}, _constants.REFINE)))
|
|
276
|
+
}, _constants.REFINE)));
|
|
312
277
|
};
|
|
313
278
|
|
|
314
279
|
SearchFilter.propTypes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"names":["reducer","state","action","newValues","type","shouldSearch","Error","SearchFilter","searchFilterRef","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","initialFilterValues","groupAfterDesktop","groupAfterMobile","isDesktop","setIsDesktop","pageWidth","setPageWidth","moreFiltersMobileCollapsed","setMoreFiltersMobileCollapsed","moreFiltersDesktopCollapsed","setMoreFiltersDesktopCollapsed","filterValues","dispatch","handleSubmit","newQuery","window","innerWidth","handleResize","target","addEventListener","removeEventListener","isDesktopFormDisplayed","isMobileFormDisplayed","formClass","moreFiltersMobileWrapperClass","moreFiltersMobileTogglerClass","moreFiltersDesktopWrapperClass","moreFiltersDesktopTogglerClass","formId","handleReset","updateFilterValues","shouldSubmit","shouldGroup","e","preventDefault","slice","MORE_FILTERS_CLASSES","MOBILE_CONTENT","DESKTOP_CONTENT","DESKTOP_BUTTONS","SEARCH","MOBILE_BUTTONS","REFINE","propTypes","PropTypes","object","isRequired","array","bool","string","func","number"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,OAAO,GAAG,SAAVA,OAAU,CAACC,KAAD,EAAQC,MAAR,EAAmB;AACjC,MAAQC,SAAR,GAAiDD,MAAjD,CAAQC,SAAR;AAAA,MAAmBC,IAAnB,GAAiDF,MAAjD,CAAmBE,IAAnB;AAAA,6BAAiDF,MAAjD,CAAyBG,YAAzB;AAAA,MAAyBA,YAAzB,qCAAwC,IAAxC;;AAEA,UAAQD,IAAR;AACE,SAAK,QAAL;AACE,2DAAYH,KAAZ,GAAsBE,SAAtB;AAAiCE,QAAAA,YAAY,EAAZA;AAAjC;;AACF,SAAK,aAAL;AACE,6CAAYJ,KAAZ;AAAmBI,QAAAA,YAAY,EAAE;AAAjC;;AACF,SAAK,OAAL;AACE,6CAAYF,SAAZ;AAAuBE,QAAAA,YAAY,EAAZA;AAAvB;;AACF;AACE,YAAM,IAAIC,KAAJ,EAAN;AARJ;AAUD,CAbD;;AAeA,IAAMC,YAAY,GAAG,SAAfA,YAAe,OAcf;AAAA,MAbJC,eAaI,QAbJA,eAaI;AAAA,MAZJC,IAYI,QAZJA,IAYI;AAAA,MAXJC,OAWI,QAXJA,OAWI;AAAA,MAVJC,MAUI,QAVJA,MAUI;AAAA,MATJC,MASI,QATJA,MASI;AAAA,MARJC,YAQI,QARJA,YAQI;AAAA,MAPJC,IAOI,QAPJA,IAOI;AAAA,MANJC,uBAMI,QANJA,uBAMI;AAAA,MALJC,mBAKI,QALJA,mBAKI;AAAA,MAJJC,sBAII,QAJJA,sBAII;AAAA,MAHJC,mBAGI,QAHJA,mBAGI;AAAA,MAFJC,iBAEI,QAFJA,iBAEI;AAAA,MADJC,gBACI,QADJA,gBACI;;AACJ,kBAAkC,qBAAS,IAAT,CAAlC;AAAA;AAAA,MAAOC,SAAP;AAAA,MAAkBC,YAAlB;;AACA,mBAAkC,qBAAS,IAAT,CAAlC;AAAA;AAAA,MAAOC,SAAP;AAAA,MAAkBC,YAAlB;;AACA,mBAAoE,qBAAS,IAAT,CAApE;AAAA;AAAA,MAAOC,0BAAP;AAAA,MAAmCC,6BAAnC;;AACA,mBAAsE,qBAAS,IAAT,CAAtE;AAAA;AAAA,MAAOC,2BAAP;AAAA,MAAoCC,8BAApC;;AACA,oBAAiC,uBAAW5B,OAAX,EAAoBkB,mBAApB,CAAjC;AAAA;AAAA,MAAOW,YAAP;AAAA,MAAqBC,QAArB;;AAEA,MAAMC,YAAY,GAAG,wBAAS,UAAA5B,SAAS,EAAI;AACzC,QAAM6B,QAAQ,GAAG,yBAAW7B,SAAX,EAAsBO,OAAtB,CAAjB;AACAG,IAAAA,YAAY,CAACmB,QAAD,CAAZ;AACD,GAHoB,EAGlB,GAHkB,CAArB;AAKA,wBACE,YAAM;AACJ,QAAIC,MAAM,IAAI,CAACV,SAAf,EAA0B;AACxBC,MAAAA,YAAY,CAACS,MAAM,CAACC,UAAR,CAAZ;AACAZ,MAAAA,YAAY,CAAC,+BAAD,CAAZ;AACD;;AAED,QAAMa,YAAY,GAAG,SAAfA,YAAe,QAAgC;AAAA,UAAnBD,UAAmB,SAA7BE,MAA6B,CAAnBF,UAAmB;AACnDZ,MAAAA,YAAY,CAAC,+BAAD,CAAZ;AACAE,MAAAA,YAAY,CAACU,UAAD,CAAZ;AACA,UAAIb,SAAJ,EAAeJ,sBAAsB,CAAC,KAAD,CAAtB;AAChB,KAJD;;AAMAgB,IAAAA,MAAM,CAACI,gBAAP,CAAwB,QAAxB,EAAkCF,YAAlC;AACA,WAAO,YAAM;AACXF,MAAAA,MAAM,CAACK,mBAAP,CAA2B,QAA3B,EAAqCH,YAArC;AACD,KAFD;AAGD,GAjBH,EAkBE,CAACd,SAAD,EAAYE,SAAZ,EAAuBN,sBAAvB,CAlBF;AAqBA,wBACE,YAAM;AACJ,QAAIY,YAAY,CAACxB,YAAjB,EAA+B;AAC7B0B,MAAAA,YAAY,CAACF,YAAD,CAAZ;AACAC,MAAAA,QAAQ,CAAC;AAAE1B,QAAAA,IAAI,EAAE;AAAR,OAAD,CAAR;AACD;AACF,GANH,EAOE,CAACyB,YAAD,EAAeE,YAAf,CAPF;AAUA,MAAIQ,sBAAsB,GAAG,IAA7B;AACA,MAAIC,qBAAqB,GAAG,KAA5B;;AAEA,MAAI,CAACnB,SAAD,IAAcN,uBAAlB,EAA2C;AACzCyB,IAAAA,qBAAqB,GAAGxB,mBAAxB;AACAuB,IAAAA,sBAAsB,GAAG,KAAzB;AACD;;AAED,MAAME,SAAS,GAAG,4BAAW;AAC3B,yCAAqCD;AADV,GAAX,CAAlB;;AAIA,8BAKI,4CAA8Bb,2BAA9B,EAA2DF,0BAA3D,CALJ;AAAA,MACEiB,6BADF,yBACEA,6BADF;AAAA,MAEEC,6BAFF,yBAEEA,6BAFF;AAAA,MAGEC,8BAHF,yBAGEA,8BAHF;AAAA,MAIEC,8BAJF,yBAIEA,8BAJF;;AAOA,MAAMC,MAAM,oBAAahC,IAAb,UAAZ;;AAEA,MAAMiC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxB,QAAM5C,SAAS,GAAG,qCAAuBM,IAAvB,EAA6BC,OAA7B,EAAsC,EAAtC,CAAlB;AAEAoB,IAAAA,QAAQ,CAAC;AAAE3B,MAAAA,SAAS,EAATA,SAAF;AAAaC,MAAAA,IAAI,EAAE;AAAnB,KAAD,CAAR;AACD,GAJD;;AAMA,MAAM4C,kBAAkB,GAAG,SAArBA,kBAAqB,CAAC7C,SAAD,EAAY8C,YAAZ,EAA6B;AACtDnB,IAAAA,QAAQ,CAAC;AAAE3B,MAAAA,SAAS,EAATA,SAAF;AAAaE,MAAAA,YAAY,EAAE4C,YAA3B;AAAyC7C,MAAAA,IAAI,EAAE;AAA/C,KAAD,CAAR;AACD,GAFD;;AAIA,MAAM8C,WAAW,GAAG,CAAC,EAAE/B,iBAAiB,IAAIC,gBAAvB,CAArB;AACA,MAAMf,YAAY,GAAG,CAACM,MAAtB;AAEA,sBACE,kEACG4B,sBAAsB,IAAIC,qBAA1B,gBACC;AACE,IAAA,GAAG,EAAEhC,eADP;AAEE,IAAA,SAAS,EAAEiC,SAFb;AAGE,mBAAaK,MAHf;AAIE,IAAA,EAAE,EAAEA,MAJN;AAKE,IAAA,QAAQ,EAAE,kBAAAK,CAAC,EAAI;AACbA,MAAAA,CAAC,CAACC,cAAF;AACA,UAAMpB,QAAQ,GAAG,yBAAWH,YAAX,EAAyBnB,OAAzB,CAAjB;AACAG,MAAAA,YAAY,CAACmB,QAAD,CAAZ;AACD;AATH,KAUGQ,qBAAqB,iBACpB,gCAAC,2BAAD;AAAiB,IAAA,WAAW,EAAE;AAAA,aAAMvB,sBAAsB,CAAC,KAAD,CAA5B;AAAA;AAA9B,IAXJ,eAcE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGsB,sBAAsB,iBAAI,gCAAC,4BAAD;AAAkB,IAAA,WAAW,EAAEQ;AAA/B,IAD7B,eAGE;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,CAACG,WAAD,iBACC,gCAAC,uBAAD;AACE,IAAA,YAAY,EAAE7C,YADhB;AAEE,IAAA,IAAI,EAAEI,IAFR;AAGE,IAAA,OAAO,EAAEC,OAHX;AAIE,IAAA,MAAM,EAAEC,MAJV;AAKE,IAAA,MAAM,EAAEC,MALV;AAME,IAAA,YAAY,EAAEiB,YANhB;AAOE,IAAA,kBAAkB,EAAEmB;AAPtB,IAFJ,EAaGE,WAAW,iBACV,+EACE,gCAAC,uBAAD;AACE,IAAA,YAAY,EAAE7C,YADhB;AAEE,IAAA,IAAI,EAAEI,IAFR;AAGE,IAAA,OAAO,EAAEC,OAAO,CAAC2C,KAAR,CAAc,CAAd,EAAiBjC,gBAAjB,CAHX;AAIE,IAAA,MAAM,EAAET,MAJV;AAKE,IAAA,MAAM,EAAEC,MALV;AAME,IAAA,YAAY,EAAEiB,YANhB;AAOE,IAAA,kBAAkB,EAAEmB;AAPtB,IADF,EAWG,CAAC,CAAC5B,gBAAF,iBACC;AACE,IAAA,SAAS,EAAEuB,6BADb;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,OAAO,EAAE;AAAA,aAAMjB,6BAA6B,CAAC,CAACD,0BAAF,CAAnC;AAAA;AAHX,eAZJ,eAoBE;AAAK,IAAA,SAAS,EAAEiB;AAAhB,kBACE;AAAK,IAAA,SAAS,EAAEY,gCAAqBC;AAArC,kBACE,gCAAC,uBAAD;AACE,IAAA,YAAY,EAAElD,YAAY,IAAI,+BADhC;AAEE,IAAA,IAAI,EAAEI,IAFR;AAGE,IAAA,OAAO,EAAEC,OAAO,CAAC2C,KAAR,CACPjC,gBADO,EAEPD,iBAAiB,GAAGA,iBAAiB,GAAG,CAAvB,GAA2B,CAFrC,CAHX;AAOE,IAAA,MAAM,EAAER,MAPV;AAQE,IAAA,MAAM,EAAEC,MARV;AASE,IAAA,YAAY,EAAEiB,YAThB;AAUE,IAAA,kBAAkB,EAAEmB;AAVtB,IADF,EAcG,CAAC,CAAC7B,iBAAF,iBACC;AACE,IAAA,SAAS,EAAE0B,8BADb;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,OAAO,EAAE;AAAA,aACPjB,8BAA8B,CAAC,CAACD,2BAAF,CADvB;AAAA;AAHX,oBAfJ,eAyBE;AAAK,IAAA,SAAS,EAAEiB;AAAhB,kBACE;AAAK,IAAA,SAAS,EAAEU,gCAAqBE;AAArC,kBACE,gCAAC,uBAAD;AACE,IAAA,YAAY,EAAE,KADhB;AAEE,IAAA,IAAI,EAAE/C,IAFR;AAGE,IAAA,OAAO,EAAEC,OAAO,CAAC2C,KAAR,CAAclC,iBAAd,CAHX;AAIE,IAAA,MAAM,EAAER,MAJV;AAKE,IAAA,MAAM,EAAEC,MALV;AAME,IAAA,YAAY,EAAEiB,YANhB;AAOE,IAAA,kBAAkB,EAAEmB;AAPtB,IADF,CADF,eAaE;AAAK,IAAA,SAAS,EAAEM,gCAAqBG;AAArC,kBACE,gCAAC,4BAAD;AAAkB,IAAA,WAAW,EAAEV;AAA/B,IADF,eAGE;AAAQ,IAAA,SAAS,EAAC,2BAAlB;AAA8C,IAAA,IAAI,EAAC;AAAnD,KACGW,iBADH,CAHF,CAbF,CAzBF,CADF,eAiDE;AAAK,IAAA,SAAS,EAAEJ,gCAAqBK;AAArC,kBACE,gCAAC,4BAAD;AAAkB,IAAA,WAAW,EAAEZ;AAA/B,IADF,eAGE;AAAQ,IAAA,SAAS,EAAC,2BAAlB;AAA8C,IAAA,IAAI,EAAC;AAAnD,KACGW,iBADH,CAHF,CAjDF,CApBF,CAdJ,eA8FE,2CA9FF,EAgGGnB,sBAAsB,iBACrB;AAAQ,IAAA,SAAS,EAAC,2BAAlB;AAA8C,IAAA,IAAI,EAAC;AAAnD,KACGmB,iBADH,CAjGJ,CAHF,CAdF,EAyHGlB,qBAAqB,iBAAI,gCAAC,6BAAD;AAAmB,IAAA,MAAM,EAAEM,MAA3B;AAAmC,IAAA,WAAW,EAAEC;AAAhD,IAzH5B,CADD,gBA6HC,kEACGhC,uBAAuB,iBACtB;AACE,IAAA,SAAS,EAAC,6CADZ;AAEE,mBAAY;AAFd,kBAGE;AAAK,IAAA,IAAI,EAAC,QAAV;AAAmB,IAAA,OAAO,EAAE;AAAA,aAAME,sBAAsB,CAAC,IAAD,CAA5B;AAAA;AAA5B,KACG2C,iBADH,CAHF,CAFJ,CA9HJ,CADF;AA6ID,CAxOD;;AA0OArD,YAAY,CAACsD,SAAb,GAAyB;AACvBpD,EAAAA,IAAI,EAAEqD,sBAAUC,MAAV,CAAiBC,UADA;AAEvBtD,EAAAA,OAAO,EAAEoD,sBAAUG,KAAV,CAAgBD,UAFF;AAGvBxD,EAAAA,eAAe,EAAEsD,sBAAUC,MAAV,CAAiBC,UAHX;AAIvBrD,EAAAA,MAAM,EAAEmD,sBAAUI,IAAV,CAAeF,UAJA;AAKvBpD,EAAAA,MAAM,EAAEkD,sBAAUK,MAAV,CAAiBH,UALF;AAMvBnD,EAAAA,YAAY,EAAEiD,sBAAUM,IAAV,CAAeJ,UANN;AAOvBlD,EAAAA,IAAI,EAAEgD,sBAAUK,MAAV,CAAiBH,UAPA;AAQvBhD,EAAAA,mBAAmB,EAAE8C,sBAAUI,IAAV,CAAeF,UARb;AASvB/C,EAAAA,sBAAsB,EAAE6C,sBAAUM,IAAV,CAAeJ,UAThB;AAUvBjD,EAAAA,uBAAuB,EAAE+C,sBAAUI,IAAV,CAAeF,UAVjB;AAWvB7C,EAAAA,iBAAiB,EAAE2C,sBAAUO,MAAV,CAAiBL,UAXb;AAYvB5C,EAAAA,gBAAgB,EAAE0C,sBAAUO,MAAV,CAAiBL,UAZZ;AAavB9C,EAAAA,mBAAmB,EAAE4C,sBAAUC,MAAV,CAAiBC;AAbf,CAAzB;eAgBezD,Y","sourcesContent":["import React, { useState, useEffect, useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport {\n isDeviceDesktop,\n buildQuery,\n getInitialFilterValues,\n getResponsiveFilterClassnames\n} from '../helpers';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';\n\nconst reducer = (state, action) => {\n const { newValues, type, shouldSearch = true } = action;\n\n switch (type) {\n case 'update':\n return { ...state, ...newValues, shouldSearch };\n case 'resetSearch':\n return { ...state, shouldSearch: false };\n case 'reset':\n return { ...newValues, shouldSearch };\n default:\n throw new Error();\n }\n};\n\nconst SearchFilter = ({\n searchFilterRef,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n initialFilterValues,\n groupAfterDesktop,\n groupAfterMobile\n}) => {\n const [isDesktop, setIsDesktop] = useState(true);\n const [pageWidth, setPageWidth] = useState(null);\n const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);\n const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);\n const [filterValues, dispatch] = useReducer(reducer, initialFilterValues);\n\n const handleSubmit = debounce(newValues => {\n const newQuery = buildQuery(newValues, filters);\n handleSearch(newQuery);\n }, 200);\n\n useEffect(\n () => {\n if (window && !pageWidth) {\n setPageWidth(window.innerWidth);\n setIsDesktop(isDeviceDesktop());\n }\n\n const handleResize = ({ target: { innerWidth } }) => {\n setIsDesktop(isDeviceDesktop());\n setPageWidth(innerWidth);\n if (isDesktop) setDisplaySearchFilter(false);\n };\n\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n },\n [isDesktop, pageWidth, setDisplaySearchFilter]\n );\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n dispatch({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit]\n );\n\n let isDesktopFormDisplayed = true;\n let isMobileFormDisplayed = false;\n\n if (!isDesktop && isCollapsedOnResponsive) {\n isMobileFormDisplayed = displaySearchFilter;\n isDesktopFormDisplayed = false;\n }\n\n const formClass = classnames({\n 'filter__form filter__form--mobile': isMobileFormDisplayed\n });\n\n const {\n moreFiltersMobileWrapperClass,\n moreFiltersMobileTogglerClass,\n moreFiltersDesktopWrapperClass,\n moreFiltersDesktopTogglerClass\n } = getResponsiveFilterClassnames(moreFiltersDesktopCollapsed, moreFiltersMobileCollapsed);\n\n const formId = `filter-${name}-form`;\n\n const handleReset = () => {\n const newValues = getInitialFilterValues(data, filters, {});\n\n dispatch({ newValues, type: 'reset' });\n };\n\n const updateFilterValues = (newValues, shouldSubmit) => {\n dispatch({ newValues, shouldSearch: shouldSubmit, type: 'update' });\n };\n\n const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);\n const shouldSearch = !hasUrl;\n\n return (\n <>\n {isDesktopFormDisplayed || isMobileFormDisplayed ? (\n <form\n ref={searchFilterRef}\n className={formClass}\n data-testid={formId}\n id={formId}\n onSubmit={e => {\n e.preventDefault();\n const newQuery = buildQuery(filterValues, filters);\n handleSearch(newQuery);\n }}>\n {isMobileFormDisplayed && (\n <CloseMobileForm handleClose={() => setDisplaySearchFilter(false)} />\n )}\n\n <div className=\"filter filter--search-refine\">\n {isDesktopFormDisplayed && <ResetDesktopForm handleReset={handleReset} />}\n\n <div className=\"filter__wrapper filter__wrapper--search-refine\">\n {!shouldGroup && (\n <FiltersList\n shouldSearch={shouldSearch}\n data={data}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n )}\n\n {shouldGroup && (\n <>\n <FiltersList\n shouldSearch={shouldSearch}\n data={data}\n filters={filters.slice(0, groupAfterMobile)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterMobile && (\n <button\n className={moreFiltersMobileTogglerClass}\n type=\"button\"\n onClick={() => setMoreFiltersMobileCollapsed(!moreFiltersMobileCollapsed)}>\n Filters\n </button>\n )}\n\n <div className={moreFiltersMobileWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.MOBILE_CONTENT}>\n <FiltersList\n shouldSearch={shouldSearch && isDeviceDesktop()}\n data={data}\n filters={filters.slice(\n groupAfterMobile,\n groupAfterDesktop ? groupAfterDesktop - 1 : 0\n )}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterDesktop && (\n <button\n className={moreFiltersDesktopTogglerClass}\n type=\"button\"\n onClick={() =>\n setMoreFiltersDesktopCollapsed(!moreFiltersDesktopCollapsed)\n }>\n More filters\n </button>\n )}\n\n <div className={moreFiltersDesktopWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.DESKTOP_CONTENT}>\n <FiltersList\n shouldSearch={false}\n data={data}\n filters={filters.slice(groupAfterDesktop)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n </div>\n\n <div className={MORE_FILTERS_CLASSES.DESKTOP_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </div>\n\n <div className={MORE_FILTERS_CLASSES.MOBILE_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </>\n )}\n\n <br />\n\n {isDesktopFormDisplayed && (\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n )}\n </div>\n </div>\n\n {isMobileFormDisplayed && <MobileFormToolbar formId={formId} handleReset={handleReset} />}\n </form>\n ) : (\n <>\n {isCollapsedOnResponsive && (\n <div\n className=\"filter__refine filter__refine--mobile-close\"\n data-testid=\"refine-mobile\">\n <div role=\"button\" onClick={() => setDisplaySearchFilter(true)}>\n {REFINE}\n </div>\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nSearchFilter.propTypes = {\n data: PropTypes.object.isRequired,\n filters: PropTypes.array.isRequired,\n searchFilterRef: PropTypes.object.isRequired,\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n handleSearch: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n displaySearchFilter: PropTypes.bool.isRequired,\n setDisplaySearchFilter: PropTypes.func.isRequired,\n isCollapsedOnResponsive: PropTypes.bool.isRequired,\n groupAfterDesktop: PropTypes.number.isRequired,\n groupAfterMobile: PropTypes.number.isRequired,\n initialFilterValues: PropTypes.object.isRequired\n};\n\nexport default SearchFilter;\n"],"file":"SearchFilter.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"names":["reducer","state","action","newValues","type","shouldSearch","Error","SearchFilter","searchFilterRef","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","initialFilterValues","groupAfterDesktop","groupAfterMobile","moreFiltersMobileCollapsed","setMoreFiltersMobileCollapsed","moreFiltersDesktopCollapsed","setMoreFiltersDesktopCollapsed","filterValues","dispatch","handleSubmit","newQuery","formClass","moreFiltersMobileWrapperClass","moreFiltersMobileTogglerClass","moreFiltersDesktopWrapperClass","moreFiltersDesktopTogglerClass","formId","handleReset","updateFilterValues","shouldSubmit","shouldGroup","e","preventDefault","slice","MORE_FILTERS_CLASSES","MOBILE_CONTENT","DESKTOP_CONTENT","DESKTOP_BUTTONS","SEARCH","MOBILE_BUTTONS","REFINE","propTypes","PropTypes","object","isRequired","array","bool","string","func","number"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport {\n isDeviceDesktop,\n buildQuery,\n getInitialFilterValues,\n getResponsiveFilterClassnames\n} from '../helpers';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';\n\nconst reducer = (state, action) => {\n const { newValues, type, shouldSearch = true } = action;\n\n switch (type) {\n case 'update':\n return { ...state, ...newValues, shouldSearch };\n case 'resetSearch':\n return { ...state, shouldSearch: false };\n case 'reset':\n return { ...newValues, shouldSearch };\n default:\n throw new Error();\n }\n};\n\nconst SearchFilter = ({\n searchFilterRef,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n initialFilterValues,\n groupAfterDesktop,\n groupAfterMobile\n}) => {\n const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);\n const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);\n const [filterValues, dispatch] = useReducer(reducer, initialFilterValues);\n\n const handleSubmit = debounce(newValues => {\n const newQuery = buildQuery(newValues, filters);\n handleSearch(newQuery);\n }, 200);\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n dispatch({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit]\n );\n\n const formClass = classnames('filter__form filter__form--initial', {\n 'filter__form--mobile': isCollapsedOnResponsive && displaySearchFilter,\n 'filter__form--collapsible': isCollapsedOnResponsive\n });\n\n const {\n moreFiltersMobileWrapperClass,\n moreFiltersMobileTogglerClass,\n moreFiltersDesktopWrapperClass,\n moreFiltersDesktopTogglerClass\n } = getResponsiveFilterClassnames(moreFiltersDesktopCollapsed, moreFiltersMobileCollapsed);\n\n const formId = `filter-${name}-form`;\n\n const handleReset = () => {\n const newValues = getInitialFilterValues(data, filters, {});\n\n dispatch({ newValues, type: 'reset' });\n };\n\n const updateFilterValues = (newValues, shouldSubmit) => {\n dispatch({ newValues, shouldSearch: shouldSubmit, type: 'update' });\n };\n\n const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);\n const shouldSearch = !hasUrl;\n\n return (\n <>\n <form\n ref={searchFilterRef}\n className={formClass}\n data-testid={formId}\n id={formId}\n onSubmit={e => {\n e.preventDefault();\n const newQuery = buildQuery(filterValues, filters);\n handleSearch(newQuery);\n }}>\n {displaySearchFilter && (\n <CloseMobileForm handleClose={() => setDisplaySearchFilter(false)} />\n )}\n\n <div className=\"filter filter--search-refine\">\n <ResetDesktopForm handleReset={handleReset} />\n\n <div className=\"filter__wrapper filter__wrapper--search-refine\">\n {!shouldGroup && (\n <FiltersList\n shouldSearch={shouldSearch}\n data={data}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n )}\n\n {shouldGroup && (\n <>\n <FiltersList\n shouldSearch={shouldSearch}\n data={data}\n filters={filters.slice(0, groupAfterMobile)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterMobile && (\n <button\n className={moreFiltersMobileTogglerClass}\n type=\"button\"\n onClick={() => setMoreFiltersMobileCollapsed(!moreFiltersMobileCollapsed)}>\n Filters\n </button>\n )}\n\n <div className={moreFiltersMobileWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.MOBILE_CONTENT}>\n <FiltersList\n shouldSearch={shouldSearch && isDeviceDesktop()}\n data={data}\n filters={filters.slice(\n groupAfterMobile,\n groupAfterDesktop ? groupAfterDesktop - 1 : 0\n )}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterDesktop && (\n <button\n className={moreFiltersDesktopTogglerClass}\n type=\"button\"\n onClick={() =>\n setMoreFiltersDesktopCollapsed(!moreFiltersDesktopCollapsed)\n }>\n More filters\n </button>\n )}\n\n <div className={moreFiltersDesktopWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.DESKTOP_CONTENT}>\n <FiltersList\n shouldSearch={false}\n data={data}\n filters={filters.slice(groupAfterDesktop)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n </div>\n\n <div className={MORE_FILTERS_CLASSES.DESKTOP_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </div>\n\n <div className={MORE_FILTERS_CLASSES.MOBILE_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </>\n )}\n\n <br />\n\n {!displaySearchFilter && (\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n )}\n </div>\n </div>\n\n {displaySearchFilter && <MobileFormToolbar formId={formId} handleReset={handleReset} />}\n </form>\n\n {isCollapsedOnResponsive &&\n !displaySearchFilter && (\n <div className=\"filter__refine filter__refine--mobile-close\" data-testid=\"refine-mobile\">\n <div role=\"button\" onClick={() => setDisplaySearchFilter(true)}>\n {REFINE}\n </div>\n </div>\n )}\n </>\n );\n};\n\nSearchFilter.propTypes = {\n data: PropTypes.object.isRequired,\n filters: PropTypes.array.isRequired,\n searchFilterRef: PropTypes.object.isRequired,\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n handleSearch: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n displaySearchFilter: PropTypes.bool.isRequired,\n setDisplaySearchFilter: PropTypes.func.isRequired,\n isCollapsedOnResponsive: PropTypes.bool.isRequired,\n groupAfterDesktop: PropTypes.number.isRequired,\n groupAfterMobile: PropTypes.number.isRequired,\n initialFilterValues: PropTypes.object.isRequired\n};\n\nexport default SearchFilter;\n"],"file":"SearchFilter.js"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
2
|
-
const _excluded = ["id", "image", "name", "url", "entity", "entityProps", "alternativePreHeader", "alternativeHeadline", "category", "modifier", "propsToDisplay", "propsToDisplayModifiers", "gtmId", "style", "priority", "cardChildren", "gtmChildren", "displayCategory", "displayThumbnail", "displayTitle", "gridModifier"];
|
|
2
|
+
const _excluded = ["id", "image", "name", "url", "entity", "entityProps", "alternativePreHeader", "alternativeHeadline", "category", "modifier", "propsToDisplay", "propsToDisplayModifiers", "gtmId", "style", "priority", "cardChildren", "gtmChildren", "displayCategory", "displayThumbnail", "displayTitle", "enableOverlay", "overlayModifier", "gridModifier"];
|
|
3
3
|
import React, { Fragment } from 'react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import BlazeLink from '../BlazeLink';
|
|
@@ -31,6 +31,8 @@ const Card = _ref => {
|
|
|
31
31
|
displayCategory,
|
|
32
32
|
displayThumbnail,
|
|
33
33
|
displayTitle,
|
|
34
|
+
enableOverlay,
|
|
35
|
+
overlayModifier,
|
|
34
36
|
gridModifier
|
|
35
37
|
} = _ref,
|
|
36
38
|
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
@@ -74,6 +76,7 @@ const Card = _ref => {
|
|
|
74
76
|
} = getClickWrapperOptions(gtmChildren, entityProps, id);
|
|
75
77
|
const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;
|
|
76
78
|
const classNameWithModifiers = getModifiers(CARD_STRING, modifiers);
|
|
79
|
+
const contentWrapperModifier = `${getModifiers('card__content-wrapper', modifiers)} ${enableOverlay ? overlayModifier : ''}`;
|
|
77
80
|
return /*#__PURE__*/React.createElement(Wrapper, wrapperProps, /*#__PURE__*/React.createElement("div", {
|
|
78
81
|
className: classNameWithModifiers
|
|
79
82
|
}, shouldDisplayThumbnail && /*#__PURE__*/React.createElement("div", {
|
|
@@ -89,7 +92,7 @@ const Card = _ref => {
|
|
|
89
92
|
sizeKey: dynamicSizeKey,
|
|
90
93
|
priority: priority
|
|
91
94
|
}))), /*#__PURE__*/React.createElement("div", {
|
|
92
|
-
className:
|
|
95
|
+
className: contentWrapperModifier
|
|
93
96
|
}, /*#__PURE__*/React.createElement("div", {
|
|
94
97
|
className: getModifiers('card__content', modifiers)
|
|
95
98
|
}, displayCategory && (publishedListingPage ? /*#__PURE__*/React.createElement(BlazeLink, {
|
|
@@ -149,6 +152,8 @@ Card.propTypes = {
|
|
|
149
152
|
displayCategory: PropTypes.bool.isRequired,
|
|
150
153
|
displayThumbnail: PropTypes.bool.isRequired,
|
|
151
154
|
displayTitle: PropTypes.bool.isRequired,
|
|
155
|
+
enableOverlay: PropTypes.bool.isRequired,
|
|
156
|
+
overlayModifier: PropTypes.string,
|
|
152
157
|
cardChildren: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),
|
|
153
158
|
gtmChildren: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),
|
|
154
159
|
gridModifier: PropTypes.string,
|
|
@@ -172,7 +177,8 @@ Card.defaultProps = {
|
|
|
172
177
|
cardChildren: [],
|
|
173
178
|
gtmChildren: [],
|
|
174
179
|
gridModifier: '',
|
|
175
|
-
priority: false
|
|
180
|
+
priority: false,
|
|
181
|
+
overlayModifier: ''
|
|
176
182
|
};
|
|
177
183
|
|
|
178
184
|
const getCategoryDefinedProps = ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Card/Card.js"],"names":["React","Fragment","PropTypes","BlazeLink","ClickWrapper","getModifiers","renderChildren","updateChildrensParent","getClickWrapperOptions","LazyImage","getPublishedListingUrl","useDynamicSizeKey","CARD_STRING","Card","id","image","name","url","entity","entityProps","alternativePreHeader","alternativeHeadline","category","modifier","propsToDisplay","propsToDisplayModifiers","gtmId","style","priority","cardChildren","gtmChildren","displayCategory","displayThumbnail","displayTitle","gridModifier","otherProps","imageSrc","shouldDisplayThumbnail","altText","getImageDefinedProps","modifiers","getInitialModifiers","publishedListingPage","preHeader","label","headline","getCategoryDefinedProps","linkTitle","dynamicSizeKey","shouldUseClickWrapper","wrapperProps","Wrapper","classNameWithModifiers","length","map","prop","i","dynamicKey","propModifier","propTypes","string","isRequired","shape","data","object","array","bool","oneOfType","arrayOf","node","defaultProps","hasAlternativePreHeader","sponsored","featured","push"],"mappings":"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","sourcesContent":["import React, { Fragment } from 'react';\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 } from './constants';\n\nconst Card = ({\n id,\n image,\n name,\n url,\n entity,\n entityProps,\n alternativePreHeader,\n alternativeHeadline,\n category,\n modifier,\n propsToDisplay,\n propsToDisplayModifiers,\n gtmId,\n style,\n priority,\n cardChildren,\n gtmChildren,\n displayCategory,\n displayThumbnail,\n displayTitle,\n gridModifier,\n ...otherProps\n}) => {\n updateChildrensParent(cardChildren, id, entity);\n const { imageSrc, shouldDisplayThumbnail, altText } = getImageDefinedProps({\n image,\n displayThumbnail\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 const linkTitle = name;\n const dynamicSizeKey = useDynamicSizeKey(CARD_STRING, { style, gridModifier, modifier });\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(\n gtmChildren,\n entityProps,\n id\n );\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n const classNameWithModifiers = getModifiers(CARD_STRING, modifiers);\n\n return (\n <Wrapper {...wrapperProps}>\n <div className={classNameWithModifiers}>\n {shouldDisplayThumbnail && (\n <div className={getModifiers('card__image', modifiers)}>\n <BlazeLink gtmId={gtmId} href={url} className=\"card__image-link\" scroll>\n <LazyImage\n src={imageSrc}\n alt={altText}\n sizeKey={dynamicSizeKey}\n priority={priority}\n />\n </BlazeLink>\n </div>\n )}\n <div className={getModifiers('card__content-wrapper', modifiers)}>\n <div className={getModifiers('card__content', modifiers)}>\n {displayCategory &&\n (publishedListingPage ? (\n <BlazeLink\n gtmId={gtmId}\n href={publishedListingPage}\n className=\"badge badge--label\"\n scroll>\n {preHeader.name}\n </BlazeLink>\n ) : (\n <div className=\"badge badge--label\">{label}</div>\n ))}\n {displayTitle && (\n <h2 className={getModifiers('card__title', modifiers)}>\n <BlazeLink title={linkTitle} gtmId={gtmId} href={url} scroll>\n {headline}\n </BlazeLink>\n </h2>\n )}\n {!!propsToDisplay.length && (\n <div className={getModifiers('card__details', modifiers)}>\n {propsToDisplay.map((prop, i) => {\n if (!prop) return null;\n const dynamicKey = `${id}${i}`;\n const propModifier = propsToDisplayModifiers[i] || '';\n\n return (\n <span key={dynamicKey} className={propModifier}>\n {prop}\n </span>\n );\n })}\n </div>\n )}\n </div>\n {!!cardChildren && (\n <div className=\"card__child-content\">{renderChildren(cardChildren)}</div>\n )}\n </div>\n </div>\n </Wrapper>\n );\n};\n\nCard.propTypes = {\n id: PropTypes.string.isRequired,\n image: PropTypes.shape({\n url: PropTypes.string,\n data: PropTypes.object\n }),\n style: PropTypes.string,\n propsToDisplay: PropTypes.array,\n propsToDisplayModifiers: PropTypes.array,\n url: PropTypes.string,\n name: PropTypes.string.isRequired,\n entity: 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 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};\n\nCard.defaultProps = {\n entityProps: {},\n image: {\n url: null,\n data: {}\n },\n gtmId: '',\n style: 'portrait',\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};\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 }) => {\n const { url: imageSrc, data } = image || {};\n const shouldDisplayThumbnail = displayThumbnail && imageSrc;\n const altText = (data && data.altText) || '';\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"],"file":"Card.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Card/Card.js"],"names":["React","Fragment","PropTypes","BlazeLink","ClickWrapper","getModifiers","renderChildren","updateChildrensParent","getClickWrapperOptions","LazyImage","getPublishedListingUrl","useDynamicSizeKey","CARD_STRING","Card","id","image","name","url","entity","entityProps","alternativePreHeader","alternativeHeadline","category","modifier","propsToDisplay","propsToDisplayModifiers","gtmId","style","priority","cardChildren","gtmChildren","displayCategory","displayThumbnail","displayTitle","enableOverlay","overlayModifier","gridModifier","otherProps","imageSrc","shouldDisplayThumbnail","altText","getImageDefinedProps","modifiers","getInitialModifiers","publishedListingPage","preHeader","label","headline","getCategoryDefinedProps","linkTitle","dynamicSizeKey","shouldUseClickWrapper","wrapperProps","Wrapper","classNameWithModifiers","contentWrapperModifier","length","map","prop","i","dynamicKey","propModifier","propTypes","string","isRequired","shape","data","object","array","bool","oneOfType","arrayOf","node","defaultProps","hasAlternativePreHeader","sponsored","featured","push"],"mappings":"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","sourcesContent":["import React, { Fragment } from 'react';\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 } from './constants';\n\nconst Card = ({\n id,\n image,\n name,\n url,\n entity,\n entityProps,\n alternativePreHeader,\n alternativeHeadline,\n category,\n modifier,\n propsToDisplay,\n propsToDisplayModifiers,\n gtmId,\n style,\n priority,\n cardChildren,\n gtmChildren,\n displayCategory,\n displayThumbnail,\n displayTitle,\n enableOverlay,\n overlayModifier,\n gridModifier,\n ...otherProps\n}) => {\n updateChildrensParent(cardChildren, id, entity);\n const { imageSrc, shouldDisplayThumbnail, altText } = getImageDefinedProps({\n image,\n displayThumbnail\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 const linkTitle = name;\n const dynamicSizeKey = useDynamicSizeKey(CARD_STRING, { style, gridModifier, modifier });\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(\n gtmChildren,\n entityProps,\n id\n );\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n const classNameWithModifiers = getModifiers(CARD_STRING, modifiers);\n\n const contentWrapperModifier = `${getModifiers('card__content-wrapper', modifiers)} ${\n enableOverlay ? overlayModifier : ''\n }`;\n\n return (\n <Wrapper {...wrapperProps}>\n <div className={classNameWithModifiers}>\n {shouldDisplayThumbnail && (\n <div className={getModifiers('card__image', modifiers)}>\n <BlazeLink gtmId={gtmId} href={url} className=\"card__image-link\" scroll>\n <LazyImage\n src={imageSrc}\n alt={altText}\n sizeKey={dynamicSizeKey}\n priority={priority}\n />\n </BlazeLink>\n </div>\n )}\n <div className={contentWrapperModifier}>\n <div className={getModifiers('card__content', modifiers)}>\n {displayCategory &&\n (publishedListingPage ? (\n <BlazeLink\n gtmId={gtmId}\n href={publishedListingPage}\n className=\"badge badge--label\"\n scroll>\n {preHeader.name}\n </BlazeLink>\n ) : (\n <div className=\"badge badge--label\">{label}</div>\n ))}\n {displayTitle && (\n <h2 className={getModifiers('card__title', modifiers)}>\n <BlazeLink title={linkTitle} gtmId={gtmId} href={url} scroll>\n {headline}\n </BlazeLink>\n </h2>\n )}\n {!!propsToDisplay.length && (\n <div className={getModifiers('card__details', modifiers)}>\n {propsToDisplay.map((prop, i) => {\n if (!prop) return null;\n const dynamicKey = `${id}${i}`;\n const propModifier = propsToDisplayModifiers[i] || '';\n\n return (\n <span key={dynamicKey} className={propModifier}>\n {prop}\n </span>\n );\n })}\n </div>\n )}\n </div>\n {!!cardChildren && (\n <div className=\"card__child-content\">{renderChildren(cardChildren)}</div>\n )}\n </div>\n </div>\n </Wrapper>\n );\n};\n\nCard.propTypes = {\n id: PropTypes.string.isRequired,\n image: PropTypes.shape({\n url: PropTypes.string,\n data: PropTypes.object\n }),\n style: PropTypes.string,\n propsToDisplay: PropTypes.array,\n propsToDisplayModifiers: PropTypes.array,\n url: PropTypes.string,\n name: PropTypes.string.isRequired,\n entity: 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 enableOverlay: PropTypes.bool.isRequired,\n overlayModifier: 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};\n\nCard.defaultProps = {\n entityProps: {},\n image: {\n url: null,\n data: {}\n },\n gtmId: '',\n style: 'portrait',\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};\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 }) => {\n const { url: imageSrc, data } = image || {};\n const shouldDisplayThumbnail = displayThumbnail && imageSrc;\n const altText = (data && data.altText) || '';\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"],"file":"Card.js"}
|
|
@@ -58,8 +58,6 @@ const SearchFilter = ({
|
|
|
58
58
|
groupAfterDesktop,
|
|
59
59
|
groupAfterMobile
|
|
60
60
|
}) => {
|
|
61
|
-
const [isDesktop, setIsDesktop] = useState(true);
|
|
62
|
-
const [pageWidth, setPageWidth] = useState(null);
|
|
63
61
|
const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);
|
|
64
62
|
const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);
|
|
65
63
|
const [filterValues, dispatch] = useReducer(reducer, initialFilterValues);
|
|
@@ -67,27 +65,6 @@ const SearchFilter = ({
|
|
|
67
65
|
const newQuery = buildQuery(newValues, filters);
|
|
68
66
|
handleSearch(newQuery);
|
|
69
67
|
}, 200);
|
|
70
|
-
useEffect(() => {
|
|
71
|
-
if (window && !pageWidth) {
|
|
72
|
-
setPageWidth(window.innerWidth);
|
|
73
|
-
setIsDesktop(isDeviceDesktop());
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const handleResize = ({
|
|
77
|
-
target: {
|
|
78
|
-
innerWidth
|
|
79
|
-
}
|
|
80
|
-
}) => {
|
|
81
|
-
setIsDesktop(isDeviceDesktop());
|
|
82
|
-
setPageWidth(innerWidth);
|
|
83
|
-
if (isDesktop) setDisplaySearchFilter(false);
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
window.addEventListener('resize', handleResize);
|
|
87
|
-
return () => {
|
|
88
|
-
window.removeEventListener('resize', handleResize);
|
|
89
|
-
};
|
|
90
|
-
}, [isDesktop, pageWidth, setDisplaySearchFilter]);
|
|
91
68
|
useEffect(() => {
|
|
92
69
|
if (filterValues.shouldSearch) {
|
|
93
70
|
handleSubmit(filterValues);
|
|
@@ -96,16 +73,9 @@ const SearchFilter = ({
|
|
|
96
73
|
});
|
|
97
74
|
}
|
|
98
75
|
}, [filterValues, handleSubmit]);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
if (!isDesktop && isCollapsedOnResponsive) {
|
|
103
|
-
isMobileFormDisplayed = displaySearchFilter;
|
|
104
|
-
isDesktopFormDisplayed = false;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
const formClass = classnames({
|
|
108
|
-
'filter__form filter__form--mobile': isMobileFormDisplayed
|
|
76
|
+
const formClass = classnames('filter__form filter__form--initial', {
|
|
77
|
+
'filter__form--mobile': isCollapsedOnResponsive && displaySearchFilter,
|
|
78
|
+
'filter__form--collapsible': isCollapsedOnResponsive
|
|
109
79
|
});
|
|
110
80
|
const {
|
|
111
81
|
moreFiltersMobileWrapperClass,
|
|
@@ -133,7 +103,7 @@ const SearchFilter = ({
|
|
|
133
103
|
|
|
134
104
|
const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);
|
|
135
105
|
const shouldSearch = !hasUrl;
|
|
136
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null,
|
|
106
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("form", {
|
|
137
107
|
ref: searchFilterRef,
|
|
138
108
|
className: formClass,
|
|
139
109
|
"data-testid": formId,
|
|
@@ -143,11 +113,11 @@ const SearchFilter = ({
|
|
|
143
113
|
const newQuery = buildQuery(filterValues, filters);
|
|
144
114
|
handleSearch(newQuery);
|
|
145
115
|
}
|
|
146
|
-
},
|
|
116
|
+
}, displaySearchFilter && /*#__PURE__*/React.createElement(CloseMobileForm, {
|
|
147
117
|
handleClose: () => setDisplaySearchFilter(false)
|
|
148
118
|
}), /*#__PURE__*/React.createElement("div", {
|
|
149
119
|
className: "filter filter--search-refine"
|
|
150
|
-
},
|
|
120
|
+
}, /*#__PURE__*/React.createElement(ResetDesktopForm, {
|
|
151
121
|
handleReset: handleReset
|
|
152
122
|
}), /*#__PURE__*/React.createElement("div", {
|
|
153
123
|
className: "filter__wrapper filter__wrapper--search-refine"
|
|
@@ -213,19 +183,19 @@ const SearchFilter = ({
|
|
|
213
183
|
}), /*#__PURE__*/React.createElement("button", {
|
|
214
184
|
className: "button button--full-width",
|
|
215
185
|
type: "submit"
|
|
216
|
-
}, SEARCH)))), /*#__PURE__*/React.createElement("br", null),
|
|
186
|
+
}, SEARCH)))), /*#__PURE__*/React.createElement("br", null), !displaySearchFilter && /*#__PURE__*/React.createElement("button", {
|
|
217
187
|
className: "button button--full-width",
|
|
218
188
|
type: "submit"
|
|
219
|
-
}, SEARCH))),
|
|
189
|
+
}, SEARCH))), displaySearchFilter && /*#__PURE__*/React.createElement(MobileFormToolbar, {
|
|
220
190
|
formId: formId,
|
|
221
191
|
handleReset: handleReset
|
|
222
|
-
}))
|
|
192
|
+
})), isCollapsedOnResponsive && !displaySearchFilter && /*#__PURE__*/React.createElement("div", {
|
|
223
193
|
className: "filter__refine filter__refine--mobile-close",
|
|
224
194
|
"data-testid": "refine-mobile"
|
|
225
195
|
}, /*#__PURE__*/React.createElement("div", {
|
|
226
196
|
role: "button",
|
|
227
197
|
onClick: () => setDisplaySearchFilter(true)
|
|
228
|
-
}, REFINE)))
|
|
198
|
+
}, REFINE)));
|
|
229
199
|
};
|
|
230
200
|
|
|
231
201
|
SearchFilter.propTypes = {
|