@blaze-cms/react-page-builder 0.133.0-alpha.2 → 0.133.0-alpha.4
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 +29 -0
- package/lib/components/Button.js +3 -1
- package/lib/components/Button.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +2 -2
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilterContainer.js +58 -22
- package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib/components/SearchFilter/helpers/build-filters-query.js +18 -16
- package/lib/components/SearchFilter/helpers/build-filters-query.js.map +1 -1
- package/lib/components/SearchFilter/helpers/build-url-query.js +0 -1
- package/lib/components/SearchFilter/helpers/build-url-query.js.map +1 -1
- package/lib/components/SearchFilter/helpers/get-initial-filter-values.js +33 -0
- package/lib/components/SearchFilter/helpers/get-initial-filter-values.js.map +1 -0
- package/lib/components/SearchFilter/helpers/get-updated-filter-by.js +38 -0
- package/lib/components/SearchFilter/helpers/get-updated-filter-by.js.map +1 -0
- package/lib/components/SearchFilter/helpers/index.js +8 -1
- package/lib/components/SearchFilter/helpers/index.js.map +1 -1
- package/lib/components/SocialFollow/sf.config.js +2 -1
- package/lib/components/SocialFollow/sf.config.js.map +1 -1
- package/lib/helpers/get-generic-render-variables.js +17 -12
- package/lib/helpers/get-generic-render-variables.js.map +1 -1
- package/lib-es/components/Button.js +2 -1
- package/lib-es/components/Button.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js +3 -3
- package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilterContainer.js +54 -13
- package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/build-filters-query.js +18 -16
- package/lib-es/components/SearchFilter/helpers/build-filters-query.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/build-url-query.js +0 -1
- package/lib-es/components/SearchFilter/helpers/build-url-query.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/get-initial-filter-values.js +21 -0
- package/lib-es/components/SearchFilter/helpers/get-initial-filter-values.js.map +1 -0
- package/lib-es/components/SearchFilter/helpers/get-updated-filter-by.js +19 -0
- package/lib-es/components/SearchFilter/helpers/get-updated-filter-by.js.map +1 -0
- package/lib-es/components/SearchFilter/helpers/index.js +3 -2
- package/lib-es/components/SearchFilter/helpers/index.js.map +1 -1
- package/lib-es/components/SocialFollow/sf.config.js +3 -2
- package/lib-es/components/SocialFollow/sf.config.js.map +1 -1
- package/lib-es/helpers/get-generic-render-variables.js +2 -1
- package/lib-es/helpers/get-generic-render-variables.js.map +1 -1
- package/package.json +6 -6
- package/src/components/Button.js +6 -1
- package/src/components/SearchFilter/SearchFilter/SearchFilter.js +6 -3
- package/src/components/SearchFilter/SearchFilterContainer.js +42 -14
- package/src/components/SearchFilter/helpers/build-filters-query.js +23 -20
- package/src/components/SearchFilter/helpers/build-url-query.js +0 -2
- package/src/components/SearchFilter/helpers/get-initial-filter-values.js +24 -0
- package/src/components/SearchFilter/helpers/get-updated-filter-by.js +18 -0
- package/src/components/SearchFilter/helpers/index.js +5 -3
- package/src/components/SocialFollow/sf.config.js +2 -2
- package/src/helpers/get-generic-render-variables.js +2 -1
- package/tests/unit/src/components/SearchFilter/helpers/get-updated-filter-by.test.js +28 -0
- package/tests/unit/src/components/SocialFollow/__snapshots__/SocialFollow.test.js.snap +1 -1
- /package/tests/unit/src/components/SearchFilter/helpers/{build-new-query.test.js → build-new-url.test.js} +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
require("core-js/modules/es.array.for-each.js");
|
|
11
|
+
require("core-js/modules/es.object.to-string.js");
|
|
12
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
13
|
+
var _constants = require("../constants");
|
|
14
|
+
var _getFilterValueFromQuery = _interopRequireDefault(require("./get-filter-value-from-query"));
|
|
15
|
+
var _helpers = require("../../../helpers");
|
|
16
|
+
var getInitialFilterValues = function getInitialFilterValues(filterData, filters, query, listComponentName) {
|
|
17
|
+
var filterValues = {};
|
|
18
|
+
var searchQueryKey = (0, _helpers.buildQueryKey)(_constants.SEARCH_TERM, listComponentName);
|
|
19
|
+
filterValues[_constants.SEARCH_TERM] = query[searchQueryKey] || '';
|
|
20
|
+
filters.forEach(function (filterProps) {
|
|
21
|
+
var _filterProps$propsToD = (0, _slicedToArray2["default"])(filterProps.propsToDisplay, 1),
|
|
22
|
+
key = _filterProps$propsToD[0],
|
|
23
|
+
type = filterProps.type;
|
|
24
|
+
if (type === _constants.TEXT_SEARCH) return;
|
|
25
|
+
var data = filterData && filterData[key] ? filterData[key] : {};
|
|
26
|
+
var queryKey = (0, _helpers.buildQueryKey)(key, listComponentName);
|
|
27
|
+
filterValues[key] = (0, _getFilterValueFromQuery["default"])(queryKey, filterProps, data, query);
|
|
28
|
+
});
|
|
29
|
+
return filterValues;
|
|
30
|
+
};
|
|
31
|
+
var _default = getInitialFilterValues;
|
|
32
|
+
exports["default"] = _default;
|
|
33
|
+
//# sourceMappingURL=get-initial-filter-values.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-initial-filter-values.js","names":["_constants","require","_getFilterValueFromQuery","_interopRequireDefault","_helpers","getInitialFilterValues","filterData","filters","query","listComponentName","filterValues","searchQueryKey","buildQueryKey","SEARCH_TERM","forEach","filterProps","_filterProps$propsToD","_slicedToArray2","propsToDisplay","key","type","TEXT_SEARCH","data","queryKey","getFilterValueFromQuery","_default","exports"],"sources":["../../../../src/components/SearchFilter/helpers/get-initial-filter-values.js"],"sourcesContent":["import { SEARCH_TERM, TEXT_SEARCH } from '../constants';\nimport getFilterValueFromQuery from './get-filter-value-from-query';\nimport { buildQueryKey } from '../../../helpers';\n\nconst getInitialFilterValues = (filterData, filters, query, listComponentName) => {\n const filterValues = {};\n const searchQueryKey = buildQueryKey(SEARCH_TERM, listComponentName);\n filterValues[SEARCH_TERM] = query[searchQueryKey] || '';\n\n filters.forEach(filterProps => {\n const {\n propsToDisplay: [key],\n type\n } = filterProps;\n if (type === TEXT_SEARCH) return;\n const data = filterData && filterData[key] ? filterData[key] : {};\n const queryKey = buildQueryKey(key, listComponentName);\n filterValues[key] = getFilterValueFromQuery(queryKey, filterProps, data, query);\n });\n\n return filterValues;\n};\n\nexport default getInitialFilterValues;\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAEA,IAAMI,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,UAAU,EAAEC,OAAO,EAAEC,KAAK,EAAEC,iBAAiB,EAAK;EAChF,IAAMC,YAAY,GAAG,CAAC,CAAC;EACvB,IAAMC,cAAc,GAAG,IAAAC,sBAAa,EAACC,sBAAW,EAAEJ,iBAAiB,CAAC;EACpEC,YAAY,CAACG,sBAAW,CAAC,GAAGL,KAAK,CAACG,cAAc,CAAC,IAAI,EAAE;EAEvDJ,OAAO,CAACO,OAAO,CAAC,UAAAC,WAAW,EAAI;IAC7B,IAAAC,qBAAA,OAAAC,eAAA,aAGIF,WAAW,CAFbG,cAAc;MAAGC,GAAG,GAAAH,qBAAA;MACpBI,IAAI,GACFL,WAAW,CADbK,IAAI;IAEN,IAAIA,IAAI,KAAKC,sBAAW,EAAE;IAC1B,IAAMC,IAAI,GAAGhB,UAAU,IAAIA,UAAU,CAACa,GAAG,CAAC,GAAGb,UAAU,CAACa,GAAG,CAAC,GAAG,CAAC,CAAC;IACjE,IAAMI,QAAQ,GAAG,IAAAX,sBAAa,EAACO,GAAG,EAAEV,iBAAiB,CAAC;IACtDC,YAAY,CAACS,GAAG,CAAC,GAAG,IAAAK,mCAAuB,EAACD,QAAQ,EAAER,WAAW,EAAEO,IAAI,EAAEd,KAAK,CAAC;EACjF,CAAC,CAAC;EAEF,OAAOE,YAAY;AACrB,CAAC;AAAC,IAAAe,QAAA,GAEapB,sBAAsB;AAAAqB,OAAA,cAAAD,QAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
require("core-js/modules/es.array.for-each.js");
|
|
11
|
+
require("core-js/modules/es.object.to-string.js");
|
|
12
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
13
|
+
require("core-js/modules/es.array.is-array.js");
|
|
14
|
+
require("core-js/modules/es.array.concat.js");
|
|
15
|
+
var getUpdatedFilterBy = function getUpdatedFilterBy(filterBy, filterByProperty, parentData) {
|
|
16
|
+
if (!parentData || filterBy && filterBy.length) return {
|
|
17
|
+
updatedFilterBy: filterBy,
|
|
18
|
+
updatedFilterByProperty: filterByProperty
|
|
19
|
+
};
|
|
20
|
+
var updatedFilterBy = [];
|
|
21
|
+
filterByProperty.forEach(function (property) {
|
|
22
|
+
var _property$split = property.split('/'),
|
|
23
|
+
_property$split2 = (0, _slicedToArray2["default"])(_property$split, 1),
|
|
24
|
+
key = _property$split2[0];
|
|
25
|
+
var filterData = parentData[key];
|
|
26
|
+
if (!filterData) return;
|
|
27
|
+
if (Array.isArray(filterData)) filterData.forEach(function (dat) {
|
|
28
|
+
return updatedFilterBy.push("".concat(key, "/").concat(dat));
|
|
29
|
+
});else updatedFilterBy.push("".concat(key, "/").concat(filterData));
|
|
30
|
+
});
|
|
31
|
+
return {
|
|
32
|
+
updatedFilterBy: updatedFilterBy,
|
|
33
|
+
updatedFilterByProperty: filterByProperty
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
var _default = getUpdatedFilterBy;
|
|
37
|
+
exports["default"] = _default;
|
|
38
|
+
//# sourceMappingURL=get-updated-filter-by.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-updated-filter-by.js","names":["getUpdatedFilterBy","filterBy","filterByProperty","parentData","length","updatedFilterBy","updatedFilterByProperty","forEach","property","_property$split","split","_property$split2","_slicedToArray2","key","filterData","Array","isArray","dat","push","concat","_default","exports"],"sources":["../../../../src/components/SearchFilter/helpers/get-updated-filter-by.js"],"sourcesContent":["const getUpdatedFilterBy = (filterBy, filterByProperty, parentData) => {\n if (!parentData || (filterBy && filterBy.length))\n return { updatedFilterBy: filterBy, updatedFilterByProperty: filterByProperty };\n\n const updatedFilterBy = [];\n filterByProperty.forEach(property => {\n const [key] = property.split('/');\n const filterData = parentData[key];\n\n if (!filterData) return;\n if (Array.isArray(filterData)) filterData.forEach(dat => updatedFilterBy.push(`${key}/${dat}`));\n else updatedFilterBy.push(`${key}/${filterData}`);\n });\n\n return { updatedFilterBy, updatedFilterByProperty: filterByProperty };\n};\n\nexport default getUpdatedFilterBy;\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAMA,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,QAAQ,EAAEC,gBAAgB,EAAEC,UAAU,EAAK;EACrE,IAAI,CAACA,UAAU,IAAKF,QAAQ,IAAIA,QAAQ,CAACG,MAAO,EAC9C,OAAO;IAAEC,eAAe,EAAEJ,QAAQ;IAAEK,uBAAuB,EAAEJ;EAAiB,CAAC;EAEjF,IAAMG,eAAe,GAAG,EAAE;EAC1BH,gBAAgB,CAACK,OAAO,CAAC,UAAAC,QAAQ,EAAI;IACnC,IAAAC,eAAA,GAAcD,QAAQ,CAACE,KAAK,CAAC,GAAG,CAAC;MAAAC,gBAAA,OAAAC,eAAA,aAAAH,eAAA;MAA1BI,GAAG,GAAAF,gBAAA;IACV,IAAMG,UAAU,GAAGX,UAAU,CAACU,GAAG,CAAC;IAElC,IAAI,CAACC,UAAU,EAAE;IACjB,IAAIC,KAAK,CAACC,OAAO,CAACF,UAAU,CAAC,EAAEA,UAAU,CAACP,OAAO,CAAC,UAAAU,GAAG;MAAA,OAAIZ,eAAe,CAACa,IAAI,IAAAC,MAAA,CAAIN,GAAG,OAAAM,MAAA,CAAIF,GAAG,CAAE,CAAC;IAAA,EAAC,CAAC,KAC3FZ,eAAe,CAACa,IAAI,IAAAC,MAAA,CAAIN,GAAG,OAAAM,MAAA,CAAIL,UAAU,CAAE,CAAC;EACnD,CAAC,CAAC;EAEF,OAAO;IAAET,eAAe,EAAfA,eAAe;IAAEC,uBAAuB,EAAEJ;EAAiB,CAAC;AACvE,CAAC;AAAC,IAAAkB,QAAA,GAEapB,kBAAkB;AAAAqB,OAAA,cAAAD,QAAA"}
|
|
@@ -107,6 +107,12 @@ Object.defineProperty(exports, "getSelectOptions", {
|
|
|
107
107
|
return _getSelectOptions["default"];
|
|
108
108
|
}
|
|
109
109
|
});
|
|
110
|
+
Object.defineProperty(exports, "getUpdatedFilterBy", {
|
|
111
|
+
enumerable: true,
|
|
112
|
+
get: function get() {
|
|
113
|
+
return _getUpdatedFilterBy["default"];
|
|
114
|
+
}
|
|
115
|
+
});
|
|
110
116
|
Object.defineProperty(exports, "isDeviceDesktop", {
|
|
111
117
|
enumerable: true,
|
|
112
118
|
get: function get() {
|
|
@@ -127,7 +133,8 @@ var _getSelectOptions = _interopRequireDefault(require("./get-select-options"));
|
|
|
127
133
|
var _isDeviceDesktop = _interopRequireDefault(require("./is-device-desktop"));
|
|
128
134
|
var _getFilterValues = _interopRequireDefault(require("./get-filter-values"));
|
|
129
135
|
var _getFilterValueFromQuery = _interopRequireDefault(require("./get-filter-value-from-query"));
|
|
130
|
-
var _buildUrlQuery = _interopRequireDefault(require("./build-url-query"));
|
|
131
136
|
var _buildFiltersQuery = _interopRequireDefault(require("./build-filters-query"));
|
|
132
137
|
var _getFilterRangesAndCheckboxesValues = _interopRequireDefault(require("./get-filter-ranges-and-checkboxes-values"));
|
|
138
|
+
var _getUpdatedFilterBy = _interopRequireDefault(require("./get-updated-filter-by"));
|
|
139
|
+
var _buildUrlQuery = _interopRequireDefault(require("./build-url-query"));
|
|
133
140
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_buildNewUrl","_interopRequireDefault","require","_buildRawQueryStringified","_decodeEncode","_checkIfRangeUpdated","_getResponsiveFilterClassnames","_getDisplayValue","_calculateStep","_calculateMinMax","_getIntersectedProp","_getRangeValue","_getSelectOptions","_isDeviceDesktop","_getFilterValues","_getFilterValueFromQuery","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_buildNewUrl","_interopRequireDefault","require","_buildRawQueryStringified","_decodeEncode","_checkIfRangeUpdated","_getResponsiveFilterClassnames","_getDisplayValue","_calculateStep","_calculateMinMax","_getIntersectedProp","_getRangeValue","_getSelectOptions","_isDeviceDesktop","_getFilterValues","_getFilterValueFromQuery","_buildFiltersQuery","_getFilterRangesAndCheckboxesValues","_getUpdatedFilterBy","_buildUrlQuery"],"sources":["../../../../src/components/SearchFilter/helpers/index.js"],"sourcesContent":["import buildNewUrl from './build-new-url';\nimport buildRawQueryStringified from './build-raw-query-stringified';\nimport { decodeValue, encodeValue } from './decode-encode';\nimport checkIfRangeUpdated from './check-if-range-updated';\nimport getResponsiveFilterClassnames from './get-responsive-filter-classnames';\nimport getDisplayValue from './get-display-value';\nimport calculateStep from './calculate-step';\nimport calculateMinMax from './calculate-min-max';\nimport getIntersectedProp from './get-intersected-prop';\nimport getRangeValue from './get-range-value';\nimport getSelectOptions from './get-select-options';\nimport isDeviceDesktop from './is-device-desktop';\nimport getFilterValues from './get-filter-values';\nimport getFilterValueFromQuery from './get-filter-value-from-query';\nimport buildFiltersQuery from './build-filters-query';\nimport getFilterRangesAndCheckboxesValues from './get-filter-ranges-and-checkboxes-values';\nimport getUpdatedFilterBy from './get-updated-filter-by';\nimport buildUrlQuery from './build-url-query';\n\nexport {\n buildNewUrl,\n buildRawQueryStringified,\n decodeValue,\n encodeValue,\n checkIfRangeUpdated,\n getResponsiveFilterClassnames,\n getDisplayValue,\n calculateStep,\n calculateMinMax,\n getIntersectedProp,\n getRangeValue,\n getSelectOptions,\n isDeviceDesktop,\n getFilterValues,\n getFilterValueFromQuery,\n buildFiltersQuery,\n getFilterRangesAndCheckboxesValues,\n getUpdatedFilterBy,\n buildUrlQuery\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,8BAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,gBAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,cAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,gBAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,mBAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,cAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,iBAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,gBAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,gBAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,wBAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,kBAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,mCAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,mBAAA,GAAAjB,sBAAA,CAAAC,OAAA;AACA,IAAAiB,cAAA,GAAAlB,sBAAA,CAAAC,OAAA"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.SOCIAL_NETWORKS = exports.PORTRAIT = exports.LANDSCAPE = exports.BASE_CLASS_NAME_FOLLOW = void 0;
|
|
8
8
|
var _fa = require("react-icons/fa");
|
|
9
|
+
var _fa2 = require("react-icons/fa6");
|
|
9
10
|
var BASE_CLASS_NAME_FOLLOW = 'social__list-item social__list-item--follow';
|
|
10
11
|
exports.BASE_CLASS_NAME_FOLLOW = BASE_CLASS_NAME_FOLLOW;
|
|
11
12
|
var PORTRAIT = 'portrait';
|
|
@@ -22,7 +23,7 @@ var SOCIAL_NETWORKS = {
|
|
|
22
23
|
twitter: {
|
|
23
24
|
name: 'Twitter',
|
|
24
25
|
className: 'twitter',
|
|
25
|
-
Icon:
|
|
26
|
+
Icon: _fa2.FaXTwitter,
|
|
26
27
|
spanClassName: 'hidden'
|
|
27
28
|
},
|
|
28
29
|
pinterest: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sf.config.js","names":["_fa","require","BASE_CLASS_NAME_FOLLOW","exports","PORTRAIT","LANDSCAPE","SOCIAL_NETWORKS","facebook","name","className","Icon","FaFacebookF","spanClassName","twitter","
|
|
1
|
+
{"version":3,"file":"sf.config.js","names":["_fa","require","_fa2","BASE_CLASS_NAME_FOLLOW","exports","PORTRAIT","LANDSCAPE","SOCIAL_NETWORKS","facebook","name","className","Icon","FaFacebookF","spanClassName","twitter","FaXTwitter","pinterest","FaPinterestP","instagram","FaInstagram","linkedin","FaLinkedinIn","youtube","FaYoutube","tiktok","FaTiktok"],"sources":["../../../src/components/SocialFollow/sf.config.js"],"sourcesContent":["import {\n FaFacebookF,\n FaPinterestP,\n FaInstagram,\n FaLinkedinIn,\n FaYoutube,\n FaTiktok\n} from 'react-icons/fa';\nimport { FaXTwitter } from 'react-icons/fa6';\n\nexport const BASE_CLASS_NAME_FOLLOW = 'social__list-item social__list-item--follow';\nexport const PORTRAIT = 'portrait';\nexport const LANDSCAPE = 'landscape';\n\nexport const SOCIAL_NETWORKS = {\n facebook: {\n name: 'Facebook',\n className: 'facebook',\n Icon: FaFacebookF,\n spanClassName: 'hidden'\n },\n twitter: {\n name: 'Twitter',\n className: 'twitter',\n Icon: FaXTwitter,\n spanClassName: 'hidden'\n },\n pinterest: {\n name: 'Pinterest',\n className: 'pinterest',\n Icon: FaPinterestP,\n spanClassName: 'hidden'\n },\n instagram: {\n name: 'Instagram',\n className: 'instagram',\n Icon: FaInstagram,\n spanClassName: 'hidden'\n },\n linkedin: {\n name: 'Linkedin',\n className: 'linkedin',\n Icon: FaLinkedinIn,\n spanClassName: 'hidden'\n },\n youtube: {\n name: 'YouTube',\n className: 'youtube',\n Icon: FaYoutube,\n spanClassName: 'hidden'\n },\n tiktok: {\n name: 'TikTok',\n className: 'tiktok',\n Icon: FaTiktok,\n spanClassName: 'hidden'\n }\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AAQA,IAAAC,IAAA,GAAAD,OAAA;AAEO,IAAME,sBAAsB,GAAG,6CAA6C;AAACC,OAAA,CAAAD,sBAAA,GAAAA,sBAAA;AAC7E,IAAME,QAAQ,GAAG,UAAU;AAACD,OAAA,CAAAC,QAAA,GAAAA,QAAA;AAC5B,IAAMC,SAAS,GAAG,WAAW;AAACF,OAAA,CAAAE,SAAA,GAAAA,SAAA;AAE9B,IAAMC,eAAe,GAAG;EAC7BC,QAAQ,EAAE;IACRC,IAAI,EAAE,UAAU;IAChBC,SAAS,EAAE,UAAU;IACrBC,IAAI,EAAEC,eAAW;IACjBC,aAAa,EAAE;EACjB,CAAC;EACDC,OAAO,EAAE;IACPL,IAAI,EAAE,SAAS;IACfC,SAAS,EAAE,SAAS;IACpBC,IAAI,EAAEI,eAAU;IAChBF,aAAa,EAAE;EACjB,CAAC;EACDG,SAAS,EAAE;IACTP,IAAI,EAAE,WAAW;IACjBC,SAAS,EAAE,WAAW;IACtBC,IAAI,EAAEM,gBAAY;IAClBJ,aAAa,EAAE;EACjB,CAAC;EACDK,SAAS,EAAE;IACTT,IAAI,EAAE,WAAW;IACjBC,SAAS,EAAE,WAAW;IACtBC,IAAI,EAAEQ,eAAW;IACjBN,aAAa,EAAE;EACjB,CAAC;EACDO,QAAQ,EAAE;IACRX,IAAI,EAAE,UAAU;IAChBC,SAAS,EAAE,UAAU;IACrBC,IAAI,EAAEU,gBAAY;IAClBR,aAAa,EAAE;EACjB,CAAC;EACDS,OAAO,EAAE;IACPb,IAAI,EAAE,SAAS;IACfC,SAAS,EAAE,SAAS;IACpBC,IAAI,EAAEY,aAAS;IACfV,aAAa,EAAE;EACjB,CAAC;EACDW,MAAM,EAAE;IACNf,IAAI,EAAE,QAAQ;IACdC,SAAS,EAAE,QAAQ;IACnBC,IAAI,EAAEc,YAAQ;IACdZ,aAAa,EAAE;EACjB;AACF,CAAC;AAACT,OAAA,CAAAG,eAAA,GAAAA,eAAA"}
|
|
@@ -15,8 +15,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
15
15
|
value: true
|
|
16
16
|
});
|
|
17
17
|
exports["default"] = void 0;
|
|
18
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
19
18
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
19
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
20
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
20
21
|
require("core-js/modules/es.array.sort.js");
|
|
21
22
|
require("core-js/modules/es.array.concat.js");
|
|
22
23
|
require("core-js/modules/es.number.constructor.js");
|
|
@@ -29,21 +30,25 @@ var getCorrectSort = function getCorrectSort(relations, filterProps, stringProps
|
|
|
29
30
|
sortby = filterProps.sortby,
|
|
30
31
|
_filterProps$sortProp = filterProps.sortProperties,
|
|
31
32
|
sortProperties = _filterProps$sortProp === void 0 ? [] : _filterProps$sortProp;
|
|
33
|
+
var _ref = sortProperties || [],
|
|
34
|
+
_ref2 = (0, _slicedToArray2["default"])(_ref, 1),
|
|
35
|
+
_ref2$ = _ref2[0],
|
|
36
|
+
sortProperty = _ref2$ === void 0 ? [] : _ref2$;
|
|
32
37
|
return (0, _buildSortValues["default"])([{
|
|
33
38
|
sort: sort,
|
|
34
39
|
propsToDisplay: sortby
|
|
35
|
-
}].concat(
|
|
40
|
+
}].concat([sortProperty]), relations, stringProps, useSortObject);
|
|
36
41
|
};
|
|
37
|
-
var getGenericRenderVariables = function getGenericRenderVariables(
|
|
38
|
-
var relations =
|
|
39
|
-
|
|
40
|
-
filterProps =
|
|
41
|
-
|
|
42
|
-
stringProps =
|
|
43
|
-
|
|
44
|
-
rawQuery =
|
|
45
|
-
|
|
46
|
-
useRandomSort =
|
|
42
|
+
var getGenericRenderVariables = function getGenericRenderVariables(_ref3) {
|
|
43
|
+
var relations = _ref3.relations,
|
|
44
|
+
_ref3$filterProps = _ref3.filterProps,
|
|
45
|
+
filterProps = _ref3$filterProps === void 0 ? {} : _ref3$filterProps,
|
|
46
|
+
_ref3$stringProps = _ref3.stringProps,
|
|
47
|
+
stringProps = _ref3$stringProps === void 0 ? [] : _ref3$stringProps,
|
|
48
|
+
_ref3$rawQuery = _ref3.rawQuery,
|
|
49
|
+
rawQuery = _ref3$rawQuery === void 0 ? {} : _ref3$rawQuery,
|
|
50
|
+
_ref3$useRandomSort = _ref3.useRandomSort,
|
|
51
|
+
useRandomSort = _ref3$useRandomSort === void 0 ? false : _ref3$useRandomSort;
|
|
47
52
|
var rawQueryCopy = _objectSpread({}, rawQuery);
|
|
48
53
|
var _filterProps$limit = filterProps.limit,
|
|
49
54
|
limit = _filterProps$limit === void 0 ? _constants.DEFAULT_LIMIT : _filterProps$limit,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-generic-render-variables.js","names":["_constants","require","_buildSortValues","_interopRequireDefault","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","getCorrectSort","relations","filterProps","stringProps","useSortObject","sort","sortby","_filterProps$sortProp","sortProperties","buildSortValues","propsToDisplay","concat","
|
|
1
|
+
{"version":3,"file":"get-generic-render-variables.js","names":["_constants","require","_buildSortValues","_interopRequireDefault","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","getCorrectSort","relations","filterProps","stringProps","useSortObject","sort","sortby","_filterProps$sortProp","sortProperties","_ref","_ref2","_slicedToArray2","_ref2$","sortProperty","buildSortValues","propsToDisplay","concat","getGenericRenderVariables","_ref3","_ref3$filterProps","_ref3$stringProps","_ref3$rawQuery","rawQuery","_ref3$useRandomSort","useRandomSort","rawQueryCopy","_filterProps$limit","limit","DEFAULT_LIMIT","offset","limitToUse","Number","offsetToUse","DEFAULT_OFFSET","rawQueryStringified","JSON","stringify","query","function_score","random_score","boost_mode","_toConsumableArray2","_default","exports"],"sources":["../../src/helpers/get-generic-render-variables.js"],"sourcesContent":["import { DEFAULT_LIMIT, DEFAULT_OFFSET } from '../constants';\nimport buildSortValues from './build-sort-values';\n\nconst getCorrectSort = (relations, filterProps, stringProps, useSortObject) => {\n const { sort, sortby, sortProperties = [] } = filterProps;\n const [sortProperty = []] = sortProperties || [];\n\n return buildSortValues(\n [{ sort, propsToDisplay: sortby }, ...[sortProperty]],\n relations,\n stringProps,\n useSortObject\n );\n};\n\nconst getGenericRenderVariables = ({\n relations,\n filterProps = {},\n stringProps = [],\n rawQuery = {},\n useRandomSort = false\n}) => {\n const rawQueryCopy = { ...rawQuery };\n const { limit = DEFAULT_LIMIT, offset } = filterProps;\n const limitToUse = Number(limit || DEFAULT_LIMIT);\n const offsetToUse = Number(offset || DEFAULT_OFFSET);\n\n if (useRandomSort) {\n const rawQueryStringified = JSON.stringify({\n query: {\n function_score: {\n query: rawQueryCopy && rawQueryCopy.query ? rawQueryCopy.query : rawQueryCopy,\n random_score: {},\n boost_mode: 'replace'\n }\n }\n });\n\n return {\n limit: limitToUse,\n offset: offsetToUse,\n rawQueryStringified\n };\n }\n\n const sort = getCorrectSort(relations, filterProps, stringProps, !!rawQueryCopy.sort);\n\n if (rawQueryCopy.sort && sort) {\n rawQueryCopy.sort = [...rawQueryCopy.sort, sort];\n\n return {\n limit: limitToUse,\n offset: offsetToUse,\n rawQueryStringified: JSON.stringify(rawQueryCopy)\n };\n }\n\n return {\n limit: limitToUse,\n offset: offsetToUse,\n ...sort,\n rawQueryStringified: JSON.stringify(rawQueryCopy)\n };\n};\n\nexport default getGenericRenderVariables;\n"],"mappings":"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"}
|
|
@@ -56,7 +56,8 @@ const Button = props => {
|
|
|
56
56
|
const logout = () => {
|
|
57
57
|
handleLogout(client);
|
|
58
58
|
if (hasChildren(children)) return setShowChildren(true);
|
|
59
|
-
|
|
59
|
+
if (!urlToUse) return router.reload();
|
|
60
|
+
return urlToUse.startsWith('/') ? router.push('/Resolver', urlToUse) : window.location.href = urlToUse;
|
|
60
61
|
};
|
|
61
62
|
const handleClick = () => {
|
|
62
63
|
if (isLogoutButton) logout();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","names":["React","useState","Fragment","useEffect","useCookies","useRouter","classnames","BlazeButton","handleLogout","useApolloClient","PropTypes","bool","string","useStringTemplate","ClickWrapper","BlazeLink","withTitle","getClassModifiers","LOGOUT","renderChildren","updateChildrensParent","hasChildren","getClickWrapperOptions","Button","props","type","text","url","icon","name","style","children","clickAction","childSeoVisibility","afterClickText","parent","otherProps","_objectWithoutProperties","_excluded","client","router","isLogoutButton","cookies","blaze_auth","blazeCookie","showChildren","setShowChildren","data","textToUse","afterClickTextToUse","urlToUse","asPath","checkIfButtonShouldRender","logout","reload","handleClick","buttonType","modifiers","_objectSpread","currentProps","
|
|
1
|
+
{"version":3,"file":"Button.js","names":["React","useState","Fragment","useEffect","useCookies","useRouter","classnames","BlazeButton","handleLogout","useApolloClient","PropTypes","bool","string","useStringTemplate","ClickWrapper","BlazeLink","withTitle","getClassModifiers","LOGOUT","renderChildren","updateChildrensParent","hasChildren","getClickWrapperOptions","Button","props","type","text","url","icon","name","style","children","clickAction","childSeoVisibility","afterClickText","parent","otherProps","_objectWithoutProperties","_excluded","client","router","isLogoutButton","cookies","blaze_auth","blazeCookie","showChildren","setShowChildren","data","textToUse","afterClickTextToUse","urlToUse","asPath","checkIfButtonShouldRender","logout","reload","startsWith","push","window","location","href","handleClick","buttonType","modifiers","_objectSpread","currentProps","title","DynamicButton","itemId","itemEntity","renderedChildren","onClose","shouldUseClickWrapper","wrapperProps","Wrapper","contentClassName","createElement","className","_extends","onClick","propTypes","object","size","oneOfType","arrayOf","node","defaultProps"],"sources":["../../src/components/Button.js"],"sourcesContent":["import React, { useState, Fragment, useEffect } from 'react';\nimport { useCookies } from 'react-cookie';\nimport { useRouter } from 'next/router';\nimport classnames from 'classnames';\nimport BlazeButton from '@blaze-react/button';\nimport { handleLogout } from '@blaze-cms/core-auth-ui';\nimport { useApolloClient } from '@apollo/client';\nimport PropTypes, { bool, string } from 'prop-types';\nimport { useStringTemplate } from '@blaze-cms/utils-handlebars';\nimport ClickWrapper from './ClickWrapper';\nimport BlazeLink from './BlazeLink';\nimport { withTitle } from '../HOC';\nimport { getClassModifiers } from '../utils';\nimport { LOGOUT } from '../constants';\nimport {\n renderChildren,\n updateChildrensParent,\n hasChildren,\n getClickWrapperOptions\n} from '../helpers';\n\nconst Button = props => {\n const {\n type,\n text,\n url,\n icon,\n name,\n style,\n children,\n clickAction,\n childSeoVisibility,\n afterClickText,\n parent,\n ...otherProps\n } = props;\n const client = useApolloClient();\n const router = useRouter();\n const isLogoutButton = clickAction === LOGOUT;\n const [cookies] = useCookies();\n const { blaze_auth: blazeCookie } = cookies;\n const [showChildren, setShowChildren] = useState(false);\n const {\n data: [textToUse, afterClickTextToUse, urlToUse]\n } = useStringTemplate(parent, [text, afterClickText, url]);\n\n useEffect(\n () => {\n setShowChildren(false);\n },\n [router.asPath]\n );\n\n const checkIfButtonShouldRender = () => {\n if (isLogoutButton) return !!blazeCookie;\n if (!text && !icon) return false;\n return !!(url || hasChildren(children));\n };\n\n const logout = () => {\n handleLogout(client);\n if (hasChildren(children)) return setShowChildren(true);\n\n if (!urlToUse) return router.reload();\n\n return urlToUse.startsWith('/')\n ? router.push('/Resolver', urlToUse)\n : (window.location.href = urlToUse);\n };\n\n const handleClick = () => {\n if (isLogoutButton) logout();\n if (!url && !isLogoutButton) setShowChildren(!showChildren);\n };\n\n if (!checkIfButtonShouldRender()) return null;\n\n const buttonType = !text && icon ? 'icon' : type;\n const modifiers = getClassModifiers(buttonType, { icon, style, ...otherProps });\n const currentProps = url ? { href: urlToUse, title: name } : { name };\n const DynamicButton = url && !isLogoutButton ? BlazeLink : BlazeButton;\n updateChildrensParent(children, parent.itemId, parent.itemEntity);\n\n const renderedChildren = renderChildren(children, { onClose: handleClick });\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(children, props);\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n\n const contentClassName = classnames('button__content', {\n 'button__content--show': showChildren\n });\n\n return (\n <Wrapper {...wrapperProps}>\n {childSeoVisibility && <div className={contentClassName}>{renderedChildren}</div>}\n {!childSeoVisibility && showChildren && renderedChildren}\n <DynamicButton className={modifiers} onClick={handleClick} {...currentProps}>\n {icon && <i className={icon} />}\n {showChildren ? afterClickTextToUse : textToUse}\n </DynamicButton>\n </Wrapper>\n );\n};\n\nButton.propTypes = {\n parent: PropTypes.object,\n clickAction: PropTypes.string,\n text: PropTypes.string,\n afterClickText: string,\n name: PropTypes.string,\n type: PropTypes.string,\n url: PropTypes.string,\n size: PropTypes.string,\n icon: PropTypes.string,\n style: PropTypes.string,\n childSeoVisibility: bool,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nButton.defaultProps = {\n parent: {},\n clickAction: '',\n text: '',\n afterClickText: '',\n name: '',\n type: '',\n url: null,\n size: '',\n icon: '',\n style: '',\n children: [],\n childSeoVisibility: false\n};\n\nexport default withTitle(Button);\n"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import classnames from 'classnames';
|
|
4
4
|
import debounce from 'lodash.debounce';
|
|
5
5
|
import FiltersList from './FiltersList';
|
|
6
|
-
import { isDeviceDesktop,
|
|
6
|
+
import { isDeviceDesktop, getResponsiveFilterClassnames, buildUrlQuery } from '../helpers';
|
|
7
7
|
import CloseMobileForm from './CloseMobileForm';
|
|
8
8
|
import ResetDesktopForm from './ResetDesktopForm';
|
|
9
9
|
import MobileFormToolbar from './MobileFormToolbar';
|
|
@@ -29,7 +29,7 @@ const SearchFilter = ({
|
|
|
29
29
|
const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);
|
|
30
30
|
const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);
|
|
31
31
|
const doSubmit = newValues => {
|
|
32
|
-
const newQuery = buildUrlQuery(newValues, filters, listComponentName, query);
|
|
32
|
+
const newQuery = filterValues ? buildUrlQuery(newValues, filters, listComponentName, query) : '';
|
|
33
33
|
handleSearch(newQuery);
|
|
34
34
|
setMoreFiltersDesktopCollapsed(true);
|
|
35
35
|
setMoreFiltersMobileCollapsed(true);
|
|
@@ -125,7 +125,7 @@ const SearchFilter = ({
|
|
|
125
125
|
className: moreFiltersDesktopTogglerClass,
|
|
126
126
|
type: "button",
|
|
127
127
|
onClick: () => setMoreFiltersDesktopCollapsed(!moreFiltersDesktopCollapsed)
|
|
128
|
-
},
|
|
128
|
+
}, moreFiltersDesktopCollapsed ? 'More filters' : 'Less filters'), /*#__PURE__*/React.createElement("div", {
|
|
129
129
|
className: moreFiltersDesktopWrapperClass
|
|
130
130
|
}, /*#__PURE__*/React.createElement("div", {
|
|
131
131
|
className: MORE_FILTERS_CLASSES.DESKTOP_CONTENT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchFilter.js","names":["React","useState","useEffect","PropTypes","classnames","debounce","FiltersList","isDeviceDesktop","buildUrlQuery","getResponsiveFilterClassnames","CloseMobileForm","ResetDesktopForm","MobileFormToolbar","SEARCH","REFINE","MORE_FILTERS_CLASSES","SearchFilter","searchFilterRef","listComponentName","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","groupAfterDesktop","groupAfterMobile","filterValues","setAppliedFilters","query","moreFiltersMobileCollapsed","setMoreFiltersMobileCollapsed","moreFiltersDesktopCollapsed","setMoreFiltersDesktopCollapsed","doSubmit","newValues","newQuery","handleSubmit","shouldSearch","type","formClass","moreFiltersMobileWrapperClass","moreFiltersMobileTogglerClass","moreFiltersDesktopWrapperClass","moreFiltersDesktopTogglerClass","formId","handleReset","updateFilterValues","shouldSubmit","shouldGroup","createElement","Fragment","ref","className","id","onSubmit","e","preventDefault","handleClose","slice","onClick","MOBILE_CONTENT","DESKTOP_CONTENT","DESKTOP_BUTTONS","MOBILE_BUTTONS","role","propTypes","object","isRequired","array","bool","string","func","number","defaultProps"],"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport { isDeviceDesktop, buildUrlQuery, getResponsiveFilterClassnames } from '../helpers';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';\n\nconst SearchFilter = ({\n searchFilterRef,\n listComponentName,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n groupAfterDesktop,\n groupAfterMobile,\n filterValues,\n setAppliedFilters,\n query\n}) => {\n const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);\n const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);\n\n const doSubmit = newValues => {\n const newQuery = buildUrlQuery(newValues, filters, listComponentName, query);\n handleSearch(newQuery);\n setMoreFiltersDesktopCollapsed(true);\n setMoreFiltersMobileCollapsed(true);\n };\n\n const handleSubmit = debounce(newValues => {\n doSubmit(newValues);\n }, 200);\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n setAppliedFilters({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit, setAppliedFilters]\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 setAppliedFilters({ type: 'reset' });\n doSubmit();\n };\n\n const updateFilterValues = (newValues, shouldSubmit) => {\n setAppliedFilters({ newValues, shouldSearch: shouldSubmit, type: 'update' });\n };\n\n const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);\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 doSubmit(filterValues);\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={!hasUrl}\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={!hasUrl}\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 data-testId=\"search-filter-mobile-toggler\"\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={!hasUrl && 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 data-testId=\"search-filter-desktop-toggler\"\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 filterValues: PropTypes.object.isRequired,\n setAppliedFilters: PropTypes.func.isRequired,\n listComponentName: PropTypes.string,\n query: PropTypes.object\n};\n\nSearchFilter.defaultProps = {\n listComponentName: '',\n query: {}\n};\n\nexport default SearchFilter;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SearchFilter.js","names":["React","useState","useEffect","PropTypes","classnames","debounce","FiltersList","isDeviceDesktop","getResponsiveFilterClassnames","buildUrlQuery","CloseMobileForm","ResetDesktopForm","MobileFormToolbar","SEARCH","REFINE","MORE_FILTERS_CLASSES","SearchFilter","searchFilterRef","listComponentName","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","groupAfterDesktop","groupAfterMobile","filterValues","setAppliedFilters","query","moreFiltersMobileCollapsed","setMoreFiltersMobileCollapsed","moreFiltersDesktopCollapsed","setMoreFiltersDesktopCollapsed","doSubmit","newValues","newQuery","handleSubmit","shouldSearch","type","formClass","moreFiltersMobileWrapperClass","moreFiltersMobileTogglerClass","moreFiltersDesktopWrapperClass","moreFiltersDesktopTogglerClass","formId","handleReset","updateFilterValues","shouldSubmit","shouldGroup","createElement","Fragment","ref","className","id","onSubmit","e","preventDefault","handleClose","slice","onClick","MOBILE_CONTENT","DESKTOP_CONTENT","DESKTOP_BUTTONS","MOBILE_BUTTONS","role","propTypes","object","isRequired","array","bool","string","func","number","defaultProps"],"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport { isDeviceDesktop, getResponsiveFilterClassnames, buildUrlQuery } from '../helpers';\n\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';\n\nconst SearchFilter = ({\n searchFilterRef,\n listComponentName,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n groupAfterDesktop,\n groupAfterMobile,\n filterValues,\n setAppliedFilters,\n query\n}) => {\n const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);\n const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);\n\n const doSubmit = newValues => {\n const newQuery = filterValues\n ? buildUrlQuery(newValues, filters, listComponentName, query)\n : '';\n handleSearch(newQuery);\n setMoreFiltersDesktopCollapsed(true);\n setMoreFiltersMobileCollapsed(true);\n };\n\n const handleSubmit = debounce(newValues => {\n doSubmit(newValues);\n }, 200);\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n setAppliedFilters({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit, setAppliedFilters]\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 setAppliedFilters({ type: 'reset' });\n doSubmit();\n };\n\n const updateFilterValues = (newValues, shouldSubmit) => {\n setAppliedFilters({ newValues, shouldSearch: shouldSubmit, type: 'update' });\n };\n\n const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);\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 doSubmit(filterValues);\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={!hasUrl}\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={!hasUrl}\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 data-testId=\"search-filter-mobile-toggler\"\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={!hasUrl && 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 data-testId=\"search-filter-desktop-toggler\"\n className={moreFiltersDesktopTogglerClass}\n type=\"button\"\n onClick={() =>\n setMoreFiltersDesktopCollapsed(!moreFiltersDesktopCollapsed)\n }>\n {moreFiltersDesktopCollapsed ? 'More filters' : 'Less 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 filterValues: PropTypes.object.isRequired,\n setAppliedFilters: PropTypes.func.isRequired,\n listComponentName: PropTypes.string,\n query: PropTypes.object\n};\n\nSearchFilter.defaultProps = {\n listComponentName: '',\n query: {}\n};\n\nexport default SearchFilter;\n"],"mappings":"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"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import React, { useState, useRef, useReducer,
|
|
1
|
+
import React, { useState, useEffect, useRef, useReducer, useContext } from 'react';
|
|
2
|
+
import { MainContext } from '@blaze-cms/nextjs-components';
|
|
2
3
|
import { useRouter } from 'next/router';
|
|
3
4
|
import { useQuery } from '@apollo/client';
|
|
4
5
|
import PropTypes from 'prop-types';
|
|
5
6
|
import { parseUrl } from 'query-string';
|
|
6
7
|
import SearchFilter from './SearchFilter';
|
|
7
8
|
import { withTitle } from '../../HOC';
|
|
8
|
-
import { getSearchPublishedContent } from '../../application/query';
|
|
9
|
-
import { buildNewUrl, buildRawQueryStringified, getFilterValues, buildFiltersQuery, getFilterRangesAndCheckboxesValues } from './helpers';
|
|
10
|
-
import { getEntityData } from '../../helpers';
|
|
9
|
+
import { getSearchPublishedContent, generateSingleItemQuery } from '../../application/query';
|
|
10
|
+
import { buildNewUrl, buildRawQueryStringified, getFilterValues, buildFiltersQuery, getFilterRangesAndCheckboxesValues, getUpdatedFilterBy } from './helpers';
|
|
11
|
+
import { getEntityData, getInheritedFilters, getQueryProps } from '../../helpers';
|
|
11
12
|
import { RAW_RESULTS } from './constants';
|
|
12
13
|
import { SCROLL_OFFSET } from '../../constants';
|
|
13
14
|
import searchFilterReducer from './searchFilterReducer';
|
|
15
|
+
import { useGetEntitySchemasAsObj } from '../../hooks';
|
|
14
16
|
const getFiltersUrlQuery = (query, listName) => {
|
|
15
17
|
if (!listName) return query;
|
|
16
18
|
const updatedQuery = {};
|
|
@@ -35,8 +37,12 @@ const SearchFilterContainer = ({
|
|
|
35
37
|
filterBy,
|
|
36
38
|
filterByProperty,
|
|
37
39
|
shouldAddFilters,
|
|
38
|
-
listComponentName
|
|
40
|
+
listComponentName,
|
|
41
|
+
parent
|
|
39
42
|
}) => {
|
|
43
|
+
const {
|
|
44
|
+
isPreview
|
|
45
|
+
} = useContext(MainContext);
|
|
40
46
|
const router = useRouter();
|
|
41
47
|
const {
|
|
42
48
|
asPath
|
|
@@ -45,15 +51,48 @@ const SearchFilterContainer = ({
|
|
|
45
51
|
const [key, setKey] = useState(`filter-${name}`);
|
|
46
52
|
const [displaySearchFilter, setDisplaySearchFilter] = useState(false);
|
|
47
53
|
const [urlPath, setUrlPath] = useState(asPath); // used as asPath can take too long to update
|
|
54
|
+
const [filterValues, dispatch] = useReducer(searchFilterReducer, null);
|
|
48
55
|
const {
|
|
49
56
|
url: currentUrl,
|
|
50
57
|
query
|
|
51
58
|
} = parseUrl(urlPath);
|
|
52
59
|
const updatedQuery = getFiltersUrlQuery(query, listComponentName);
|
|
53
|
-
const
|
|
60
|
+
const {
|
|
61
|
+
itemId: parentId,
|
|
62
|
+
itemEntity: parentEntity
|
|
63
|
+
} = parent;
|
|
54
64
|
useEffect(() => {
|
|
55
65
|
if (asPath) setUrlPath(asPath);
|
|
56
66
|
}, [asPath]);
|
|
67
|
+
const {
|
|
68
|
+
data: mainSchemas = {},
|
|
69
|
+
loading: schemasLoading
|
|
70
|
+
} = useGetEntitySchemasAsObj([parentEntity, entity]);
|
|
71
|
+
const {
|
|
72
|
+
[parentEntity]: parentSchema = {},
|
|
73
|
+
[entity]: filterEntitySchema = {}
|
|
74
|
+
} = mainSchemas;
|
|
75
|
+
const {
|
|
76
|
+
actions = {}
|
|
77
|
+
} = parentSchema || {};
|
|
78
|
+
const getAction = isPreview ? actions.get : actions.getPublished;
|
|
79
|
+
const inheritedFilters = getInheritedFilters(filterBy, filterByProperty);
|
|
80
|
+
const queryProps = getQueryProps(inheritedFilters, parentSchema, filterEntitySchema);
|
|
81
|
+
const {
|
|
82
|
+
data: {
|
|
83
|
+
entityData: parentData
|
|
84
|
+
} = {},
|
|
85
|
+
loading: parentQueryLoading
|
|
86
|
+
} = useQuery(generateSingleItemQuery(getAction, queryProps), {
|
|
87
|
+
variables: {
|
|
88
|
+
id: parentId
|
|
89
|
+
},
|
|
90
|
+
skip: schemasLoading || !inheritedFilters.length
|
|
91
|
+
});
|
|
92
|
+
const {
|
|
93
|
+
updatedFilterBy,
|
|
94
|
+
updatedFilterByProperty
|
|
95
|
+
} = getUpdatedFilterBy(filterBy, filterByProperty, parentData);
|
|
57
96
|
const action = getSearchPublishedContent(RAW_RESULTS);
|
|
58
97
|
const [checkboxSelectValues, rangeValues] = getFilterRangesAndCheckboxesValues(filters);
|
|
59
98
|
const {
|
|
@@ -61,9 +100,9 @@ const SearchFilterContainer = ({
|
|
|
61
100
|
} = getEntityData(entity);
|
|
62
101
|
const filtersQuery = buildFiltersQuery({
|
|
63
102
|
shouldAddFilters,
|
|
64
|
-
query: filterValues
|
|
65
|
-
filterBy,
|
|
66
|
-
filterByProperty,
|
|
103
|
+
query: filterValues,
|
|
104
|
+
filterBy: updatedFilterBy,
|
|
105
|
+
filterByProperty: updatedFilterByProperty,
|
|
67
106
|
rangeValues,
|
|
68
107
|
queryKeys: Object.keys(updatedQuery)
|
|
69
108
|
});
|
|
@@ -78,7 +117,7 @@ const SearchFilterContainer = ({
|
|
|
78
117
|
limit: 0
|
|
79
118
|
},
|
|
80
119
|
// we only want aggs so limit=0 for no search results
|
|
81
|
-
skip: !rawQueryStringified
|
|
120
|
+
skip: !rawQueryStringified || parentQueryLoading
|
|
82
121
|
});
|
|
83
122
|
if (error) return error.message;
|
|
84
123
|
if (!filters.length) return null;
|
|
@@ -89,7 +128,7 @@ const SearchFilterContainer = ({
|
|
|
89
128
|
} = {}
|
|
90
129
|
} = {}
|
|
91
130
|
} = data || {};
|
|
92
|
-
if (!filterValues && !loading && (filterData || !rawQueryStringified)) {
|
|
131
|
+
if (!filterValues && !loading && !parentQueryLoading && (filterData || !rawQueryStringified)) {
|
|
93
132
|
const newValues = getFilterValues(filterData, filters, updatedQuery);
|
|
94
133
|
dispatch({
|
|
95
134
|
newValues,
|
|
@@ -165,7 +204,8 @@ SearchFilterContainer.propTypes = {
|
|
|
165
204
|
filterBy: PropTypes.array,
|
|
166
205
|
filterByProperty: PropTypes.array,
|
|
167
206
|
shouldAddFilters: PropTypes.bool,
|
|
168
|
-
listComponentName: PropTypes.string
|
|
207
|
+
listComponentName: PropTypes.string,
|
|
208
|
+
parent: PropTypes.object
|
|
169
209
|
};
|
|
170
210
|
SearchFilterContainer.defaultProps = {
|
|
171
211
|
url: null,
|
|
@@ -177,7 +217,8 @@ SearchFilterContainer.defaultProps = {
|
|
|
177
217
|
filterBy: [],
|
|
178
218
|
filterByProperty: [],
|
|
179
219
|
shouldAddFilters: false,
|
|
180
|
-
listComponentName: ''
|
|
220
|
+
listComponentName: '',
|
|
221
|
+
parent: {}
|
|
181
222
|
};
|
|
182
223
|
export default withTitle(SearchFilterContainer);
|
|
183
224
|
//# sourceMappingURL=SearchFilterContainer.js.map
|