@blaze-cms/react-page-builder 0.124.0-alpha.4 → 0.124.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/README.md +1 -0
- package/example.env +1 -0
- package/lib/application/query/index.js +1 -1
- package/lib/application/query/index.js.map +1 -1
- package/lib/components/SearchContent/index.js +131 -63
- package/lib/components/SearchContent/index.js.map +1 -1
- package/lib/components/SearchFilter/constants.js +1 -1
- package/lib/components/SearchFilter/constants.js.map +1 -1
- package/lib-es/application/query/index.js +4 -0
- package/lib-es/application/query/index.js.map +1 -1
- package/lib-es/components/SearchContent/index.js +83 -50
- package/lib-es/components/SearchContent/index.js.map +1 -1
- package/lib-es/components/SearchFilter/constants.js +1 -1
- package/lib-es/components/SearchFilter/constants.js.map +1 -1
- package/package.json +2 -2
- package/src/application/query/index.js +4 -0
- package/src/components/SearchContent/index.js +78 -38
- package/src/components/SearchFilter/constants.js +1 -1
- package/tests/helpers/mocks.js +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,33 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.124.0-alpha.8](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.7...v0.124.0-alpha.8) (2022-05-06)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* enable changing filter aggregation size ([#3459](https://github.com/thebyte9/blaze/issues/3459)) ([#3460](https://github.com/thebyte9/blaze/issues/3460)) ([04ea731](https://github.com/thebyte9/blaze/commit/04ea7311902ac195f0badd7807fa827e00f1f946))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [0.124.0-alpha.7](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.6...v0.124.0-alpha.7) (2022-05-06)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# [0.124.0-alpha.6](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.5...v0.124.0-alpha.6) (2022-05-06)
|
|
26
|
+
|
|
27
|
+
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
6
33
|
# [0.124.0-alpha.4](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.3...v0.124.0-alpha.4) (2022-05-03)
|
|
7
34
|
|
|
8
35
|
|
package/README.md
CHANGED
|
@@ -357,3 +357,4 @@ after: ITEM ITEM _BANNER_ ITEM ITEM ITEM _BANNER_ ITEM ITEM _BANNER_ ITEM ITEM I
|
|
|
357
357
|
| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ------- |
|
|
358
358
|
| BLAZE_PB_TEXTBLOCK_WRAPPER_ENABLE | Render legacy texblock component wrapper | false |
|
|
359
359
|
| BLAZE_SCROLL_OFFSET | Offest to use when scrolling after an event. Can be set if there are sticky elements on the page to take them into account | false |
|
|
360
|
+
| BLAZE_PB_SEARCH_FILETER_AGG_SIZE | Override default size property for search filter aggregations | 500 |
|
package/example.env
CHANGED
|
@@ -91,7 +91,7 @@ var getAction = function getAction(action, props) {
|
|
|
91
91
|
exports.getAction = getAction;
|
|
92
92
|
|
|
93
93
|
var getPublishedContent = function getPublishedContent(entity) {
|
|
94
|
-
return "\n query searchPublishedContent(\n $rawQueryStringified: String!\n $offset: Int\n $limit: Int\n $sort: String\n ) {\n searchPublishedContent(\n rawQueryStringified: $rawQueryStringified\n offset: $offset\n limit: $limit\n sort: $sort\n ) {\n results {\n ... on ".concat(entity, " {\n id\n name\n url\n __typename\n }\n __typename\n }\n total\n __typename\n }\n }\n");
|
|
94
|
+
return "\n query searchPublishedContent(\n $rawQueryStringified: String!\n $offset: Int\n $limit: Int\n $sort: String\n ) {\n searchPublishedContent(\n rawQueryStringified: $rawQueryStringified\n offset: $offset\n limit: $limit\n sort: $sort\n ) {\n results {\n ... on ".concat(entity, " {\n id\n name\n image {\n url\n __typename\n }\n url\n __typename\n }\n __typename\n }\n total\n __typename\n }\n }\n");
|
|
95
95
|
};
|
|
96
96
|
|
|
97
97
|
exports.getPublishedContent = getPublishedContent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["defaultSchemaProps","getSearchPublishedContent","fields","gql","getUser","userProps","getEntitySchema","getSingleEntitySchema","getRecordParents","queryName","getMultipleSchema","identifiers","queryString","map","id","join","getFiles","getFileById","getCount","action","generateQuery","props","generateMultiItemQuery","generateSingleItemQuery","getAction","query","getPublishedContent","entity"],"sources":["../../../src/application/query/index.js"],"sourcesContent":["import { gql } from '@apollo/client';\nimport upperFirst from 'lodash.upperfirst';\n\nconst defaultSchemaProps = `\n id\n identifier\n properties\n dynamicProperties\n actions\n interfaces\n relations\n __typename\n`;\n\nconst getSearchPublishedContent = fields => gql`\n query searchPublishedContent($rawQueryStringified: String!, $offset: Int, $limit: Int, $sort: String) {\n searchPublishedContent(rawQueryStringified: $rawQueryStringified, offset: $offset, limit: $limit, sort: $sort) {\n ${fields}\n }\n }\n `;\n\nconst getUser = userProps => gql`\n query getUser($id: String!) {\n getUser(id: $id) {\n id\n ${userProps}\n }\n }\n`;\n\nconst getEntitySchema = gql`\n query getEntitySchemas($identifier: String!) {\n getEntitySchemas(identifier: $identifier) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getSingleEntitySchema = gql`\n query getEntitySchema($id: String!) {\n getEntitySchema: getEntitySchema(id: $id) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getRecordParents = queryName => gql`\nquery getRecordParents($id: String!){\n recordParents: ${queryName}(id: $id){\n id,\n name,\n url,\n parents {\n id,\n name\n url\n }\n }\n}`;\n\nconst getMultipleSchema = identifiers => {\n const queryString = identifiers\n .map(\n id => `${id}: getEntitySchema(id: \"${id}\") {\n ${defaultSchemaProps}\n }`\n )\n .join(`\\n`);\n return gql`\n query {\n ${queryString}\n }`;\n};\n\nconst getFiles = gql`\n query getFiles($where: JSON!) {\n getFiles(where: $where) {\n id\n url\n data\n }\n }\n`;\n\nconst getFileById = gql`\n query getFile($id: String!) {\n getFile(id: $id) {\n id\n url\n data\n }\n }\n`;\n\nconst getCount = action => gql`query countData($where: JSON!) {\n ${action} (where: $where)\n }\n`;\n\nconst generateQuery = (action, props) => `\n query getEntityData(\n $where: JSON\n $limit: Int\n $offset: Int\n $sort: [${upperFirst(action)}SortItem]){\n ${action} (where: $where, limit: $limit, offset: $offset, sort: $sort){\n ${props}\n id\n __typename\n }\n }\n `;\nconst generateMultiItemQuery = (action, props) => gql`\n query getEntityData($where: JSON){\n ${action} (where: $where){\n ${props}\n id\n __typename\n }\n }\n `;\n\nconst generateSingleItemQuery = (action, props) => gql`\n query getEntityData($id: String!){\n entityData: ${action}(id: $id){\n ${props},\n id,\n __typename\n }\n }\n `;\n\n// TODO: extend function to handle properties and make them dynamic with a config schema for each entity.\nconst getAction = (action, props) => {\n const query = generateQuery(action, props);\n return gql`\n ${query}\n `;\n};\n\nconst getPublishedContent = entity => `\n query searchPublishedContent(\n $rawQueryStringified: String!\n $offset: Int\n $limit: Int\n $sort: String\n ) {\n searchPublishedContent(\n rawQueryStringified: $rawQueryStringified\n offset: $offset\n limit: $limit\n sort: $sort\n ) {\n results {\n ... on ${entity} {\n id\n name\n url\n __typename\n }\n __typename\n }\n total\n __typename\n }\n }\n`;\n\nexport {\n getEntitySchema,\n getSingleEntitySchema,\n getAction,\n getFiles,\n getFileById,\n generateMultiItemQuery,\n generateSingleItemQuery,\n getPublishedContent,\n getSearchPublishedContent,\n getCount,\n getMultipleSchema,\n getUser,\n getRecordParents\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;AAEA,IAAMA,kBAAkB,kHAAxB;;AAWA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,CAAAC,MAAM;EAAA,WAAIC,WAAJ,+VAG9BD,MAH8B;AAAA,CAAxC;;;;AAQA,IAAME,OAAO,GAAG,SAAVA,OAAU,CAAAC,SAAS;EAAA,WAAIF,WAAJ,uLAIjBE,SAJiB;AAAA,CAAzB;;;AASA,IAAMC,eAAe,OAAGH,WAAH,uNAGbH,kBAHa,CAArB;;AAQA,IAAMO,qBAAqB,OAAGJ,WAAH,8MAGnBH,kBAHmB,CAA3B;;;AAQA,IAAMQ,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAAC,SAAS;EAAA,WAAIN,WAAJ,gQAEfM,SAFe;AAAA,CAAlC;;;;AAcA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAC,WAAW,EAAI;EACvC,IAAMC,WAAW,GAAGD,WAAW,CAC5BE,GADiB,CAEhB,UAAAC,EAAE;IAAA,iBAAOA,EAAP,qCAAmCA,EAAnC,gCACMd,kBADN;EAAA,CAFc,EAMjBe,IANiB,MAApB;EAOA,WAAOZ,WAAP,0HAEMS,WAFN;AAID,CAZD;;;AAcA,IAAMI,QAAQ,OAAGb,WAAH,0MAAd;;AAUA,IAAMc,WAAW,OAAGd,WAAH,iMAAjB;;;AAUA,IAAMe,QAAQ,GAAG,SAAXA,QAAW,CAAAC,MAAM;EAAA,WAAIhB,WAAJ,2JACjBgB,MADiB;AAAA,CAAvB;;;;AAKA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACD,MAAD,EAASE,KAAT;EAAA,4GAKR,wBAAWF,MAAX,CALQ,8BAMhBA,MANgB,mFAOdE,KAPc;AAAA,CAAtB;;AAaA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACH,MAAD,EAASE,KAAT;EAAA,WAAmBlB,WAAnB,qNAEzBgB,MAFyB,EAGvBE,KAHuB;AAAA,CAA/B;;;;AAUA,IAAME,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACJ,MAAD,EAASE,KAAT;EAAA,WAAmBlB,WAAnB,sNAEdgB,MAFc,EAG1BE,KAH0B;AAAA,CAAhC,C,CAUA;;;;;AACA,IAAMG,SAAS,GAAG,SAAZA,SAAY,CAACL,MAAD,EAASE,KAAT,EAAmB;EACnC,IAAMI,KAAK,GAAGL,aAAa,CAACD,MAAD,EAASE,KAAT,CAA3B;EACA,WAAOlB,WAAP,0GACIsB,KADJ;AAGD,CALD;;;;AAOA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAC,MAAM;EAAA,0UAcjBA,MAdiB;AAAA,CAAlC"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["defaultSchemaProps","getSearchPublishedContent","fields","gql","getUser","userProps","getEntitySchema","getSingleEntitySchema","getRecordParents","queryName","getMultipleSchema","identifiers","queryString","map","id","join","getFiles","getFileById","getCount","action","generateQuery","props","generateMultiItemQuery","generateSingleItemQuery","getAction","query","getPublishedContent","entity"],"sources":["../../../src/application/query/index.js"],"sourcesContent":["import { gql } from '@apollo/client';\nimport upperFirst from 'lodash.upperfirst';\n\nconst defaultSchemaProps = `\n id\n identifier\n properties\n dynamicProperties\n actions\n interfaces\n relations\n __typename\n`;\n\nconst getSearchPublishedContent = fields => gql`\n query searchPublishedContent($rawQueryStringified: String!, $offset: Int, $limit: Int, $sort: String) {\n searchPublishedContent(rawQueryStringified: $rawQueryStringified, offset: $offset, limit: $limit, sort: $sort) {\n ${fields}\n }\n }\n `;\n\nconst getUser = userProps => gql`\n query getUser($id: String!) {\n getUser(id: $id) {\n id\n ${userProps}\n }\n }\n`;\n\nconst getEntitySchema = gql`\n query getEntitySchemas($identifier: String!) {\n getEntitySchemas(identifier: $identifier) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getSingleEntitySchema = gql`\n query getEntitySchema($id: String!) {\n getEntitySchema: getEntitySchema(id: $id) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getRecordParents = queryName => gql`\nquery getRecordParents($id: String!){\n recordParents: ${queryName}(id: $id){\n id,\n name,\n url,\n parents {\n id,\n name\n url\n }\n }\n}`;\n\nconst getMultipleSchema = identifiers => {\n const queryString = identifiers\n .map(\n id => `${id}: getEntitySchema(id: \"${id}\") {\n ${defaultSchemaProps}\n }`\n )\n .join(`\\n`);\n return gql`\n query {\n ${queryString}\n }`;\n};\n\nconst getFiles = gql`\n query getFiles($where: JSON!) {\n getFiles(where: $where) {\n id\n url\n data\n }\n }\n`;\n\nconst getFileById = gql`\n query getFile($id: String!) {\n getFile(id: $id) {\n id\n url\n data\n }\n }\n`;\n\nconst getCount = action => gql`query countData($where: JSON!) {\n ${action} (where: $where)\n }\n`;\n\nconst generateQuery = (action, props) => `\n query getEntityData(\n $where: JSON\n $limit: Int\n $offset: Int\n $sort: [${upperFirst(action)}SortItem]){\n ${action} (where: $where, limit: $limit, offset: $offset, sort: $sort){\n ${props}\n id\n __typename\n }\n }\n `;\nconst generateMultiItemQuery = (action, props) => gql`\n query getEntityData($where: JSON){\n ${action} (where: $where){\n ${props}\n id\n __typename\n }\n }\n `;\n\nconst generateSingleItemQuery = (action, props) => gql`\n query getEntityData($id: String!){\n entityData: ${action}(id: $id){\n ${props},\n id,\n __typename\n }\n }\n `;\n\n// TODO: extend function to handle properties and make them dynamic with a config schema for each entity.\nconst getAction = (action, props) => {\n const query = generateQuery(action, props);\n return gql`\n ${query}\n `;\n};\n\nconst getPublishedContent = entity => `\n query searchPublishedContent(\n $rawQueryStringified: String!\n $offset: Int\n $limit: Int\n $sort: String\n ) {\n searchPublishedContent(\n rawQueryStringified: $rawQueryStringified\n offset: $offset\n limit: $limit\n sort: $sort\n ) {\n results {\n ... on ${entity} {\n id\n name\n image {\n url\n __typename\n }\n url\n __typename\n }\n __typename\n }\n total\n __typename\n }\n }\n`;\n\nexport {\n getEntitySchema,\n getSingleEntitySchema,\n getAction,\n getFiles,\n getFileById,\n generateMultiItemQuery,\n generateSingleItemQuery,\n getPublishedContent,\n getSearchPublishedContent,\n getCount,\n getMultipleSchema,\n getUser,\n getRecordParents\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;AAEA,IAAMA,kBAAkB,kHAAxB;;AAWA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,CAAAC,MAAM;EAAA,WAAIC,WAAJ,+VAG9BD,MAH8B;AAAA,CAAxC;;;;AAQA,IAAME,OAAO,GAAG,SAAVA,OAAU,CAAAC,SAAS;EAAA,WAAIF,WAAJ,uLAIjBE,SAJiB;AAAA,CAAzB;;;AASA,IAAMC,eAAe,OAAGH,WAAH,uNAGbH,kBAHa,CAArB;;AAQA,IAAMO,qBAAqB,OAAGJ,WAAH,8MAGnBH,kBAHmB,CAA3B;;;AAQA,IAAMQ,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAAC,SAAS;EAAA,WAAIN,WAAJ,gQAEfM,SAFe;AAAA,CAAlC;;;;AAcA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAC,WAAW,EAAI;EACvC,IAAMC,WAAW,GAAGD,WAAW,CAC5BE,GADiB,CAEhB,UAAAC,EAAE;IAAA,iBAAOA,EAAP,qCAAmCA,EAAnC,gCACMd,kBADN;EAAA,CAFc,EAMjBe,IANiB,MAApB;EAOA,WAAOZ,WAAP,0HAEMS,WAFN;AAID,CAZD;;;AAcA,IAAMI,QAAQ,OAAGb,WAAH,0MAAd;;AAUA,IAAMc,WAAW,OAAGd,WAAH,iMAAjB;;;AAUA,IAAMe,QAAQ,GAAG,SAAXA,QAAW,CAAAC,MAAM;EAAA,WAAIhB,WAAJ,2JACjBgB,MADiB;AAAA,CAAvB;;;;AAKA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACD,MAAD,EAASE,KAAT;EAAA,4GAKR,wBAAWF,MAAX,CALQ,8BAMhBA,MANgB,mFAOdE,KAPc;AAAA,CAAtB;;AAaA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACH,MAAD,EAASE,KAAT;EAAA,WAAmBlB,WAAnB,qNAEzBgB,MAFyB,EAGvBE,KAHuB;AAAA,CAA/B;;;;AAUA,IAAME,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACJ,MAAD,EAASE,KAAT;EAAA,WAAmBlB,WAAnB,sNAEdgB,MAFc,EAG1BE,KAH0B;AAAA,CAAhC,C,CAUA;;;;;AACA,IAAMG,SAAS,GAAG,SAAZA,SAAY,CAACL,MAAD,EAASE,KAAT,EAAmB;EACnC,IAAMI,KAAK,GAAGL,aAAa,CAACD,MAAD,EAASE,KAAT,CAA3B;EACA,WAAOlB,WAAP,0GACIsB,KADJ;AAGD,CALD;;;;AAOA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAC,MAAM;EAAA,0UAcjBA,MAdiB;AAAA,CAAlC"}
|
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.array.iterator.js");
|
|
4
|
-
|
|
5
|
-
require("core-js/modules/es.object.to-string.js");
|
|
6
|
-
|
|
7
|
-
require("core-js/modules/es.string.iterator.js");
|
|
8
|
-
|
|
9
3
|
require("core-js/modules/es.weak-map.js");
|
|
10
4
|
|
|
11
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
12
|
-
|
|
13
5
|
require("core-js/modules/es.object.define-property.js");
|
|
14
6
|
|
|
15
7
|
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
@@ -23,15 +15,33 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
23
15
|
});
|
|
24
16
|
exports["default"] = void 0;
|
|
25
17
|
|
|
18
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
19
|
+
|
|
20
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
21
|
+
|
|
26
22
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
27
23
|
|
|
28
24
|
require("core-js/modules/es.array.slice.js");
|
|
29
25
|
|
|
26
|
+
require("core-js/modules/es.array.map.js");
|
|
27
|
+
|
|
30
28
|
require("core-js/modules/es.regexp.exec.js");
|
|
31
29
|
|
|
32
30
|
require("core-js/modules/es.string.split.js");
|
|
33
31
|
|
|
34
|
-
require("core-js/modules/es.array.
|
|
32
|
+
require("core-js/modules/es.array.iterator.js");
|
|
33
|
+
|
|
34
|
+
require("core-js/modules/es.object.to-string.js");
|
|
35
|
+
|
|
36
|
+
require("core-js/modules/es.promise.js");
|
|
37
|
+
|
|
38
|
+
require("core-js/modules/es.string.iterator.js");
|
|
39
|
+
|
|
40
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
41
|
+
|
|
42
|
+
require("core-js/modules/es.array.flat.js");
|
|
43
|
+
|
|
44
|
+
require("core-js/modules/es.array.unscopables.flat.js");
|
|
35
45
|
|
|
36
46
|
require("core-js/modules/es.function.name.js");
|
|
37
47
|
|
|
@@ -59,8 +69,12 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
59
69
|
|
|
60
70
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
61
71
|
|
|
72
|
+
var logError = function logError(error) {
|
|
73
|
+
return error;
|
|
74
|
+
};
|
|
75
|
+
|
|
62
76
|
var SearchContent = function SearchContent(_ref) {
|
|
63
|
-
var
|
|
77
|
+
var entities = _ref.entities,
|
|
64
78
|
searchInputAlignment = _ref.searchInputAlignment,
|
|
65
79
|
searchInputWrapperMobile = _ref.searchInputWrapperMobile,
|
|
66
80
|
searchInputWrapperDesktop = _ref.searchInputWrapperDesktop,
|
|
@@ -78,47 +92,94 @@ var SearchContent = function SearchContent(_ref) {
|
|
|
78
92
|
searchTerm = _useState4[0],
|
|
79
93
|
setSearchTerm = _useState4[1];
|
|
80
94
|
|
|
95
|
+
var _useState5 = (0, _react.useState)([]),
|
|
96
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
97
|
+
data = _useState6[0],
|
|
98
|
+
setData = _useState6[1];
|
|
99
|
+
|
|
81
100
|
var router = (0, _router.useRouter)();
|
|
101
|
+
var client = (0, _client.useApolloClient)();
|
|
82
102
|
|
|
83
103
|
var capitalize = function capitalize(s) {
|
|
84
104
|
if (typeof s !== 'string') return '';
|
|
85
105
|
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
86
106
|
};
|
|
87
107
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
108
|
+
_react["default"].useEffect(function () {
|
|
109
|
+
if (data && data.length !== 0) return;
|
|
110
|
+
var promises = entities.map(function (entity) {
|
|
111
|
+
var _entity$split = entity.split('_'),
|
|
112
|
+
_entity$split2 = (0, _slicedToArray2["default"])(_entity$split, 2),
|
|
113
|
+
a = _entity$split2[0],
|
|
114
|
+
b = _entity$split2[1];
|
|
115
|
+
|
|
116
|
+
var entityName = capitalize(a) + capitalize(b);
|
|
117
|
+
var rawQueryStringified = JSON.stringify({
|
|
118
|
+
size: 0,
|
|
119
|
+
query: {
|
|
120
|
+
bool: {
|
|
121
|
+
should: [{
|
|
122
|
+
match: {
|
|
123
|
+
docType: entity
|
|
124
|
+
}
|
|
125
|
+
}],
|
|
126
|
+
minimum_should_match: 1
|
|
101
127
|
}
|
|
102
|
-
}
|
|
103
|
-
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
var query = (0, _client.gql)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n "])), (0, _query.getPublishedContent)(entityName));
|
|
131
|
+
|
|
132
|
+
try {
|
|
133
|
+
return client.query({
|
|
134
|
+
query: query,
|
|
135
|
+
variables: {
|
|
136
|
+
rawQueryStringified: rawQueryStringified,
|
|
137
|
+
offset: 0,
|
|
138
|
+
limit: 5
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
} catch (e) {
|
|
142
|
+
return [];
|
|
104
143
|
}
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
try {
|
|
147
|
+
(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
148
|
+
var fetchResults, searchResults;
|
|
149
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
150
|
+
while (1) {
|
|
151
|
+
switch (_context.prev = _context.next) {
|
|
152
|
+
case 0:
|
|
153
|
+
_context.prev = 0;
|
|
154
|
+
_context.next = 3;
|
|
155
|
+
return Promise.all(promises);
|
|
156
|
+
|
|
157
|
+
case 3:
|
|
158
|
+
fetchResults = _context.sent;
|
|
159
|
+
searchResults = fetchResults.map(function (result) {
|
|
160
|
+
var resultData = result.data;
|
|
161
|
+
return resultData.searchPublishedContent.results;
|
|
162
|
+
}).flat();
|
|
163
|
+
setData(searchResults);
|
|
164
|
+
_context.next = 11;
|
|
165
|
+
break;
|
|
166
|
+
|
|
167
|
+
case 8:
|
|
168
|
+
_context.prev = 8;
|
|
169
|
+
_context.t0 = _context["catch"](0);
|
|
170
|
+
logError(_context.t0);
|
|
171
|
+
|
|
172
|
+
case 11:
|
|
173
|
+
case "end":
|
|
174
|
+
return _context.stop();
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}, _callee, null, [[0, 8]]);
|
|
178
|
+
}))();
|
|
179
|
+
} catch (e) {
|
|
180
|
+
logError(e);
|
|
105
181
|
}
|
|
106
182
|
});
|
|
107
|
-
var query = (0, _client.gql)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n "])), (0, _query.getPublishedContent)(entityName));
|
|
108
|
-
|
|
109
|
-
var _useQuery = (0, _client.useQuery)(query, {
|
|
110
|
-
variables: {
|
|
111
|
-
rawQueryStringified: rawQueryStringified,
|
|
112
|
-
offset: 0,
|
|
113
|
-
limit: 5
|
|
114
|
-
}
|
|
115
|
-
}),
|
|
116
|
-
loading = _useQuery.loading,
|
|
117
|
-
error = _useQuery.error,
|
|
118
|
-
data = _useQuery.data;
|
|
119
|
-
|
|
120
|
-
if (loading) return null;
|
|
121
|
-
if (error) return null;
|
|
122
183
|
|
|
123
184
|
var handleClick = function handleClick(e, url) {
|
|
124
185
|
e.preventDefault();
|
|
@@ -132,29 +193,36 @@ var SearchContent = function SearchContent(_ref) {
|
|
|
132
193
|
};
|
|
133
194
|
|
|
134
195
|
var renderResults = function renderResults() {
|
|
135
|
-
// eslint-disable-next-line no-undef
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
196
|
+
return (// eslint-disable-next-line no-undef
|
|
197
|
+
data === null || data === void 0 ? void 0 : data.map(function (dataItem) {
|
|
198
|
+
var name = dataItem.name,
|
|
199
|
+
image = dataItem.image,
|
|
200
|
+
url = dataItem.url;
|
|
201
|
+
|
|
202
|
+
if (searchTerm && searchTerm !== '') {
|
|
203
|
+
if (name.includes(searchTerm)) {
|
|
204
|
+
return /*#__PURE__*/_react["default"].createElement(_BlazeLink["default"], {
|
|
205
|
+
href: url,
|
|
206
|
+
onClick: function onClick(e) {
|
|
207
|
+
return handleClick(e, url);
|
|
208
|
+
}
|
|
209
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
210
|
+
className: "mt-2 mb-1"
|
|
211
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
212
|
+
className: "flex justify-start items-center"
|
|
213
|
+
}, image.url ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
214
|
+
src: image.url,
|
|
215
|
+
alt: name,
|
|
216
|
+
className: "w-20 h-14"
|
|
217
|
+
}) : null, /*#__PURE__*/_react["default"].createElement("span", {
|
|
218
|
+
className: "ml-2"
|
|
219
|
+
}, name))));
|
|
220
|
+
}
|
|
156
221
|
|
|
157
|
-
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
224
|
+
})
|
|
225
|
+
);
|
|
158
226
|
};
|
|
159
227
|
|
|
160
228
|
var searchResultsMessage = searchTerm ? "Search results for: ".concat(searchTerm) : '';
|
|
@@ -232,7 +300,7 @@ SearchContent.propTypes = {
|
|
|
232
300
|
placeholder: _propTypes["default"].string,
|
|
233
301
|
isMobile: _propTypes["default"].bool,
|
|
234
302
|
collapsible: _propTypes["default"].bool,
|
|
235
|
-
|
|
303
|
+
entities: _propTypes["default"].array.isRequired
|
|
236
304
|
};
|
|
237
305
|
SearchContent.defaultProps = {
|
|
238
306
|
searchInputAlignment: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["SearchContent","entity","searchInputAlignment","searchInputWrapperMobile","searchInputWrapperDesktop","collapsible","isMobile","placeholder","collapsed","setCollapsed","searchTerm","setSearchTerm","router","capitalize","s","charAt","toUpperCase","slice","split","a","b","entityName","rawQueryStringified","JSON","stringify","size","query","bool","should","match","docType","minimum_should_match","gql","variables","offset","limit","loading","error","data","handleClick","e","url","preventDefault","push","handleKeyPress","key","target","value","renderResults","searchPublishedContent","results","map","name","includes","searchResultsMessage","propTypes","PropTypes","string","isRequired","defaultProps"],"sources":["../../../src/components/SearchContent/index.js"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { gql, useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { getPublishedContent } from '../../application/query';\nimport BlazeLink from '../BlazeLink';\n\nconst SearchContent = ({\n entity,\n searchInputAlignment,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n collapsible,\n isMobile,\n placeholder\n}) => {\n const [collapsed, setCollapsed] = useState(collapsible);\n const [searchTerm, setSearchTerm] = useState(null);\n const router = useRouter();\n\n const capitalize = s => {\n if (typeof s !== 'string') return '';\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n const [a, b] = entity.split('_');\n\n const entityName = capitalize(a) + capitalize(b);\n\n const rawQueryStringified = JSON.stringify({\n size: 0,\n query: {\n bool: {\n should: [\n {\n match: {\n docType: entity\n }\n }\n ],\n minimum_should_match: 1\n }\n }\n });\n\n const query = gql`\n ${getPublishedContent(entityName)}\n `;\n\n const { loading, error, data } = useQuery(query, {\n variables: { rawQueryStringified, offset: 0, limit: 5 }\n });\n\n if (loading) return null;\n if (error) return null;\n\n const handleClick = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyPress = e => {\n if (e.key === 'Enter' && e.target.value !== '') {\n router.push(`/search?search_term=${e.target.value}`);\n }\n };\n\n const renderResults = () => {\n // eslint-disable-next-line no-undef\n const { results } = data?.searchPublishedContent;\n\n if (results && searchTerm && searchTerm !== '') {\n return results.map(({ name, url }) => {\n if (name.includes(searchTerm)) {\n return (\n <BlazeLink href={url} onClick={e => handleClick(e, url)}>\n {name}\n </BlazeLink>\n );\n }\n\n return null;\n });\n }\n\n return [];\n };\n\n const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';\n\n return collapsed ? (\n <div className={isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}>\n <div className=\"search-content--collapse__wrapper\">\n <label className=\"search-content--collapse__label\">\n <span className=\"search-content--collapse__icon_wrapper\">\n <svg className=\"search-content--collapse__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n onFocus={() => setCollapsed(false)}\n onChange={e => setSearchTerm(e.target.value)}\n type=\"text\"\n name=\"search\"\n value=\"\"\n className=\"search-content--collapse__input\"\n />\n </label>\n </div>\n </div>\n ) : (\n <>\n <div className={`${isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}`}>\n <div className=\"search-content--expanded__wrapper\">\n <label className=\"search-content--expanded__label\">\n <span className=\"search-content--expanded__icon_wrapper\">\n <svg className=\"search-content--expanded__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n type=\"text\"\n name=\"search\"\n onChange={e => setSearchTerm(e.target.value)}\n onKeyPress={handleKeyPress}\n className=\"search-content--expanded__input\"\n placeholder={placeholder}\n onBlur={() => {\n if (!collapsible) return;\n if (!searchTerm || searchTerm === '') setCollapsed(true);\n }}\n />\n </label>\n </div>\n {data &&\n searchResultsMessage !== '' && (\n <div className=\"search-content--results__wrapper\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"text-sm pt-2\">{searchResultsMessage}</div>\n\n <div className=\"search-content--results__message\">\n <div className=\"search-content--results__content\">{renderResults()}</div>\n </div>\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nSearchContent.propTypes = {\n searchInputAlignment: PropTypes.string,\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n placeholder: PropTypes.string,\n isMobile: PropTypes.bool,\n collapsible: PropTypes.bool,\n entity: PropTypes.string.isRequired\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n placeholder: '',\n isMobile: false,\n collapsible: false\n};\n\nexport default SearchContent;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["logError","error","SearchContent","entities","searchInputAlignment","searchInputWrapperMobile","searchInputWrapperDesktop","collapsible","isMobile","placeholder","collapsed","setCollapsed","searchTerm","setSearchTerm","data","setData","router","client","capitalize","s","charAt","toUpperCase","slice","React","useEffect","length","promises","map","entity","split","a","b","entityName","rawQueryStringified","JSON","stringify","size","query","bool","should","match","docType","minimum_should_match","gql","variables","offset","limit","e","Promise","all","fetchResults","searchResults","result","resultData","searchPublishedContent","results","flat","handleClick","url","preventDefault","push","handleKeyPress","key","target","value","renderResults","dataItem","name","image","includes","searchResultsMessage","propTypes","PropTypes","string","array","isRequired","defaultProps"],"sources":["../../../src/components/SearchContent/index.js"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { gql, useApolloClient } from '@apollo/client';\n\nimport { useRouter } from 'next/router';\nimport { getPublishedContent } from '../../application/query';\nimport BlazeLink from '../BlazeLink';\n\nconst logError = error => error;\n\nconst SearchContent = ({\n entities,\n searchInputAlignment,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n collapsible,\n isMobile,\n placeholder\n}) => {\n const [collapsed, setCollapsed] = useState(collapsible);\n const [searchTerm, setSearchTerm] = useState(null);\n const [data, setData] = useState([]);\n\n const router = useRouter();\n const client = useApolloClient();\n\n const capitalize = s => {\n if (typeof s !== 'string') return '';\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n React.useEffect(() => {\n if (data && data.length !== 0) return;\n\n const promises = entities.map(entity => {\n const [a, b] = entity.split('_');\n\n const entityName = capitalize(a) + capitalize(b);\n\n const rawQueryStringified = JSON.stringify({\n size: 0,\n query: {\n bool: {\n should: [\n {\n match: {\n docType: entity\n }\n }\n ],\n minimum_should_match: 1\n }\n }\n });\n\n const query = gql`\n ${getPublishedContent(entityName)}\n `;\n\n try {\n return client.query({\n query,\n variables: {\n rawQueryStringified,\n offset: 0,\n limit: 5\n }\n });\n } catch (e) {\n return [];\n }\n });\n\n try {\n (async () => {\n try {\n const fetchResults = await Promise.all(promises);\n const searchResults = fetchResults\n .map(result => {\n const { data: resultData } = result;\n return resultData.searchPublishedContent.results;\n })\n .flat();\n\n setData(searchResults);\n } catch (e) {\n logError(e);\n }\n })();\n } catch (e) {\n logError(e);\n }\n });\n\n const handleClick = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyPress = e => {\n if (e.key === 'Enter' && e.target.value !== '') {\n router.push(`/search?search_term=${e.target.value}`);\n }\n };\n\n const renderResults = () =>\n // eslint-disable-next-line no-undef\n data?.map(dataItem => {\n const { name, image, url } = dataItem;\n\n if (searchTerm && searchTerm !== '') {\n if (name.includes(searchTerm)) {\n return (\n <BlazeLink href={url} onClick={e => handleClick(e, url)}>\n <div className=\"mt-2 mb-1\">\n <div className=\"flex justify-start items-center\">\n {image.url ? <img src={image.url} alt={name} className=\"w-20 h-14\" /> : null}\n <span className=\"ml-2\">{name}</span>\n </div>\n </div>\n </BlazeLink>\n );\n }\n\n return null;\n }\n });\n\n const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';\n\n return collapsed ? (\n <div className={isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}>\n <div className=\"search-content--collapse__wrapper\">\n <label className=\"search-content--collapse__label\">\n <span className=\"search-content--collapse__icon_wrapper\">\n <svg className=\"search-content--collapse__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n onFocus={() => setCollapsed(false)}\n onChange={e => setSearchTerm(e.target.value)}\n type=\"text\"\n name=\"search\"\n value=\"\"\n className=\"search-content--collapse__input\"\n />\n </label>\n </div>\n </div>\n ) : (\n <>\n <div className={`${isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}`}>\n <div className=\"search-content--expanded__wrapper\">\n <label className=\"search-content--expanded__label\">\n <span className=\"search-content--expanded__icon_wrapper\">\n <svg className=\"search-content--expanded__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n type=\"text\"\n name=\"search\"\n onChange={e => setSearchTerm(e.target.value)}\n onKeyPress={handleKeyPress}\n className=\"search-content--expanded__input\"\n placeholder={placeholder}\n onBlur={() => {\n if (!collapsible) return;\n if (!searchTerm || searchTerm === '') setCollapsed(true);\n }}\n />\n </label>\n </div>\n {data &&\n searchResultsMessage !== '' && (\n <div className=\"search-content--results__wrapper\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"text-sm pt-2\">{searchResultsMessage}</div>\n\n <div className=\"search-content--results__message\">\n <div className=\"search-content--results__content\">{renderResults()}</div>\n </div>\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nSearchContent.propTypes = {\n searchInputAlignment: PropTypes.string,\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n placeholder: PropTypes.string,\n isMobile: PropTypes.bool,\n collapsible: PropTypes.bool,\n entities: PropTypes.array.isRequired\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n placeholder: '',\n isMobile: false,\n collapsible: false\n};\n\nexport default SearchContent;\n"],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ var TEXT_SEARCH = 'text-search';
|
|
|
14
14
|
exports.TEXT_SEARCH = TEXT_SEARCH;
|
|
15
15
|
var SEARCH_TERM = 'search_term';
|
|
16
16
|
exports.SEARCH_TERM = SEARCH_TERM;
|
|
17
|
-
var SIZE =
|
|
17
|
+
var SIZE = process.env.BLAZE_PB_SEARCH_FILETER_AGG_SIZE || 500;
|
|
18
18
|
exports.SIZE = SIZE;
|
|
19
19
|
var KEYWORD = 'keyword';
|
|
20
20
|
exports.KEYWORD = KEYWORD;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["CHECKBOX","SELECT","TEXT_SEARCH","SEARCH_TERM","SIZE","KEYWORD","RAW_RESULTS","DEFAULT_OPTION","DEFAULT_VALUES","RANGE","CHECKBOX_SELECT","LIMIT_MIN","LIMIT_MAX","MORE","LESS","UPDATED_RANGES","MIN_VALUE","MAX_VALUE","TABLET_WIDTH","RESET","SEARCH","REFINE","MOBILE_REFINEMENT_TITLE","MORE_FILTERS_CLASSES_BASE","MORE_FILTERS_CLASSES","MOBILE_WRAPPER","MOBILE_CONTENT","MOBILE_TOGGLER","MOBILE_BUTTONS","DESKTOP_WRAPPER","DESKTOP_CONTENT","DESKTOP_TOGGLER","DESKTOP_BUTTONS"],"sources":["../../../src/components/SearchFilter/constants.js"],"sourcesContent":["const CHECKBOX = 'checkbox';\nconst SELECT = 'select';\nconst TEXT_SEARCH = 'text-search';\nconst SEARCH_TERM = 'search_term';\nconst SIZE =
|
|
1
|
+
{"version":3,"file":"constants.js","names":["CHECKBOX","SELECT","TEXT_SEARCH","SEARCH_TERM","SIZE","process","env","BLAZE_PB_SEARCH_FILETER_AGG_SIZE","KEYWORD","RAW_RESULTS","DEFAULT_OPTION","DEFAULT_VALUES","RANGE","CHECKBOX_SELECT","LIMIT_MIN","LIMIT_MAX","MORE","LESS","UPDATED_RANGES","MIN_VALUE","MAX_VALUE","TABLET_WIDTH","RESET","SEARCH","REFINE","MOBILE_REFINEMENT_TITLE","MORE_FILTERS_CLASSES_BASE","MORE_FILTERS_CLASSES","MOBILE_WRAPPER","MOBILE_CONTENT","MOBILE_TOGGLER","MOBILE_BUTTONS","DESKTOP_WRAPPER","DESKTOP_CONTENT","DESKTOP_TOGGLER","DESKTOP_BUTTONS"],"sources":["../../../src/components/SearchFilter/constants.js"],"sourcesContent":["const CHECKBOX = 'checkbox';\nconst SELECT = 'select';\nconst TEXT_SEARCH = 'text-search';\nconst SEARCH_TERM = 'search_term';\nconst SIZE = process.env.BLAZE_PB_SEARCH_FILETER_AGG_SIZE || 500;\nconst KEYWORD = 'keyword';\nconst RAW_RESULTS = 'rawResults';\nconst DEFAULT_OPTION = 'Any';\nconst DEFAULT_VALUES = ['Any', 'Please Choose...'];\nconst RANGE = 'range';\nconst CHECKBOX_SELECT = ['checkbox', 'select'];\nconst LIMIT_MIN = 5;\nconst LIMIT_MAX = 1000;\nconst MORE = 'more';\nconst LESS = 'less';\nconst UPDATED_RANGES = 'updated_ranges';\nconst MIN_VALUE = 'min-value';\nconst MAX_VALUE = 'max-value';\nconst TABLET_WIDTH = 768;\nconst RESET = 'Reset all filters';\nconst SEARCH = 'Search';\nconst REFINE = `Refine Search`;\nconst MOBILE_REFINEMENT_TITLE = 'Search refinement';\n\nconst MORE_FILTERS_CLASSES_BASE = 'filter__more-filters';\nconst MORE_FILTERS_CLASSES = {\n MOBILE_WRAPPER: `${MORE_FILTERS_CLASSES_BASE}-mobile-wrapper`,\n MOBILE_CONTENT: `${MORE_FILTERS_CLASSES_BASE}-mobile-content`,\n MOBILE_TOGGLER: `${MORE_FILTERS_CLASSES_BASE}-mobile-toggler`,\n MOBILE_BUTTONS: `${MORE_FILTERS_CLASSES_BASE}-mobile-buttons`,\n DESKTOP_WRAPPER: `${MORE_FILTERS_CLASSES_BASE}-desktop-wrapper`,\n DESKTOP_CONTENT: `${MORE_FILTERS_CLASSES_BASE}-desktop-content`,\n DESKTOP_TOGGLER: `${MORE_FILTERS_CLASSES_BASE}-desktop-toggler`,\n DESKTOP_BUTTONS: `${MORE_FILTERS_CLASSES_BASE}-desktop-buttons`\n};\n\nexport {\n CHECKBOX,\n SELECT,\n TEXT_SEARCH,\n SEARCH_TERM,\n SIZE,\n KEYWORD,\n RAW_RESULTS,\n DEFAULT_OPTION,\n DEFAULT_VALUES,\n RANGE,\n CHECKBOX_SELECT,\n LIMIT_MIN,\n LIMIT_MAX,\n MORE,\n LESS,\n UPDATED_RANGES,\n MIN_VALUE,\n MAX_VALUE,\n TABLET_WIDTH,\n RESET,\n SEARCH,\n REFINE,\n MOBILE_REFINEMENT_TITLE,\n MORE_FILTERS_CLASSES\n};\n"],"mappings":";;;;;;;;AAAA,IAAMA,QAAQ,GAAG,UAAjB;;AACA,IAAMC,MAAM,GAAG,QAAf;;AACA,IAAMC,WAAW,GAAG,aAApB;;AACA,IAAMC,WAAW,GAAG,aAApB;;AACA,IAAMC,IAAI,GAAGC,OAAO,CAACC,GAAR,CAAYC,gCAAZ,IAAgD,GAA7D;;AACA,IAAMC,OAAO,GAAG,SAAhB;;AACA,IAAMC,WAAW,GAAG,YAApB;;AACA,IAAMC,cAAc,GAAG,KAAvB;;AACA,IAAMC,cAAc,GAAG,CAAC,KAAD,EAAQ,kBAAR,CAAvB;;AACA,IAAMC,KAAK,GAAG,OAAd;;AACA,IAAMC,eAAe,GAAG,CAAC,UAAD,EAAa,QAAb,CAAxB;;AACA,IAAMC,SAAS,GAAG,CAAlB;;AACA,IAAMC,SAAS,GAAG,IAAlB;;AACA,IAAMC,IAAI,GAAG,MAAb;;AACA,IAAMC,IAAI,GAAG,MAAb;;AACA,IAAMC,cAAc,GAAG,gBAAvB;;AACA,IAAMC,SAAS,GAAG,WAAlB;;AACA,IAAMC,SAAS,GAAG,WAAlB;;AACA,IAAMC,YAAY,GAAG,GAArB;;AACA,IAAMC,KAAK,GAAG,mBAAd;;AACA,IAAMC,MAAM,GAAG,QAAf;;AACA,IAAMC,MAAM,kBAAZ;;AACA,IAAMC,uBAAuB,GAAG,mBAAhC;;AAEA,IAAMC,yBAAyB,GAAG,sBAAlC;AACA,IAAMC,oBAAoB,GAAG;EAC3BC,cAAc,YAAKF,yBAAL,oBADa;EAE3BG,cAAc,YAAKH,yBAAL,oBAFa;EAG3BI,cAAc,YAAKJ,yBAAL,oBAHa;EAI3BK,cAAc,YAAKL,yBAAL,oBAJa;EAK3BM,eAAe,YAAKN,yBAAL,qBALY;EAM3BO,eAAe,YAAKP,yBAAL,qBANY;EAO3BQ,eAAe,YAAKR,yBAAL,qBAPY;EAQ3BS,eAAe,YAAKT,yBAAL;AARY,CAA7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["gql","upperFirst","defaultSchemaProps","getSearchPublishedContent","fields","getUser","userProps","getEntitySchema","getSingleEntitySchema","getRecordParents","queryName","getMultipleSchema","identifiers","queryString","map","id","join","getFiles","getFileById","getCount","action","generateQuery","props","generateMultiItemQuery","generateSingleItemQuery","getAction","query","getPublishedContent","entity"],"sources":["../../../src/application/query/index.js"],"sourcesContent":["import { gql } from '@apollo/client';\nimport upperFirst from 'lodash.upperfirst';\n\nconst defaultSchemaProps = `\n id\n identifier\n properties\n dynamicProperties\n actions\n interfaces\n relations\n __typename\n`;\n\nconst getSearchPublishedContent = fields => gql`\n query searchPublishedContent($rawQueryStringified: String!, $offset: Int, $limit: Int, $sort: String) {\n searchPublishedContent(rawQueryStringified: $rawQueryStringified, offset: $offset, limit: $limit, sort: $sort) {\n ${fields}\n }\n }\n `;\n\nconst getUser = userProps => gql`\n query getUser($id: String!) {\n getUser(id: $id) {\n id\n ${userProps}\n }\n }\n`;\n\nconst getEntitySchema = gql`\n query getEntitySchemas($identifier: String!) {\n getEntitySchemas(identifier: $identifier) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getSingleEntitySchema = gql`\n query getEntitySchema($id: String!) {\n getEntitySchema: getEntitySchema(id: $id) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getRecordParents = queryName => gql`\nquery getRecordParents($id: String!){\n recordParents: ${queryName}(id: $id){\n id,\n name,\n url,\n parents {\n id,\n name\n url\n }\n }\n}`;\n\nconst getMultipleSchema = identifiers => {\n const queryString = identifiers\n .map(\n id => `${id}: getEntitySchema(id: \"${id}\") {\n ${defaultSchemaProps}\n }`\n )\n .join(`\\n`);\n return gql`\n query {\n ${queryString}\n }`;\n};\n\nconst getFiles = gql`\n query getFiles($where: JSON!) {\n getFiles(where: $where) {\n id\n url\n data\n }\n }\n`;\n\nconst getFileById = gql`\n query getFile($id: String!) {\n getFile(id: $id) {\n id\n url\n data\n }\n }\n`;\n\nconst getCount = action => gql`query countData($where: JSON!) {\n ${action} (where: $where)\n }\n`;\n\nconst generateQuery = (action, props) => `\n query getEntityData(\n $where: JSON\n $limit: Int\n $offset: Int\n $sort: [${upperFirst(action)}SortItem]){\n ${action} (where: $where, limit: $limit, offset: $offset, sort: $sort){\n ${props}\n id\n __typename\n }\n }\n `;\nconst generateMultiItemQuery = (action, props) => gql`\n query getEntityData($where: JSON){\n ${action} (where: $where){\n ${props}\n id\n __typename\n }\n }\n `;\n\nconst generateSingleItemQuery = (action, props) => gql`\n query getEntityData($id: String!){\n entityData: ${action}(id: $id){\n ${props},\n id,\n __typename\n }\n }\n `;\n\n// TODO: extend function to handle properties and make them dynamic with a config schema for each entity.\nconst getAction = (action, props) => {\n const query = generateQuery(action, props);\n return gql`\n ${query}\n `;\n};\n\nconst getPublishedContent = entity => `\n query searchPublishedContent(\n $rawQueryStringified: String!\n $offset: Int\n $limit: Int\n $sort: String\n ) {\n searchPublishedContent(\n rawQueryStringified: $rawQueryStringified\n offset: $offset\n limit: $limit\n sort: $sort\n ) {\n results {\n ... on ${entity} {\n id\n name\n url\n __typename\n }\n __typename\n }\n total\n __typename\n }\n }\n`;\n\nexport {\n getEntitySchema,\n getSingleEntitySchema,\n getAction,\n getFiles,\n getFileById,\n generateMultiItemQuery,\n generateSingleItemQuery,\n getPublishedContent,\n getSearchPublishedContent,\n getCount,\n getMultipleSchema,\n getUser,\n getRecordParents\n};\n"],"mappings":"AAAA,SAASA,GAAT,QAAoB,gBAApB;AACA,OAAOC,UAAP,MAAuB,mBAAvB;AAEA,MAAMC,kBAAkB,GAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CATA;;AAWA,MAAMC,yBAAyB,GAAGC,MAAM,IAAIJ,GAAI;AAChD;AACA;AACA,UAAUI,MAAO;AACjB;AACA;AACA,GANA;;AAQA,MAAMC,OAAO,GAAGC,SAAS,IAAIN,GAAI;AACjC;AACA;AACA;AACA,QAAQM,SAAU;AAClB;AACA;AACA,CAPA;;AASA,MAAMC,eAAe,GAAGP,GAAI;AAC5B;AACA;AACA,QAAQE,kBAAmB;AAC3B;AACA;AACA,CANA;AAQA,MAAMM,qBAAqB,GAAGR,GAAI;AAClC;AACA;AACA,QAAQE,kBAAmB;AAC3B;AACA;AACA,CANA;;AAQA,MAAMO,gBAAgB,GAAGC,SAAS,IAAIV,GAAI;AAC1C;AACA,mBAAmBU,SAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAZA;;AAcA,MAAMC,iBAAiB,GAAGC,WAAW,IAAI;EACvC,MAAMC,WAAW,GAAGD,WAAW,CAC5BE,GADiB,CAEhBC,EAAE,IAAK,GAAEA,EAAG,0BAAyBA,EAAG;AAC9C,cAAcb,kBAAmB;AACjC,QAJsB,EAMjBc,IANiB,CAMX,IANW,CAApB;EAOA,OAAOhB,GAAI;AACb;AACA,QAAQa,WAAY;AACpB,MAHE;AAID,CAZD;;AAcA,MAAMI,QAAQ,GAAGjB,GAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;AAUA,MAAMkB,WAAW,GAAGlB,GAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;;AAUA,MAAMmB,QAAQ,GAAGC,MAAM,IAAIpB,GAAI;AAC/B,MAAMoB,MAAO;AACb;AACA,CAHA;;AAKA,MAAMC,aAAa,GAAG,CAACD,MAAD,EAASE,KAAT,KAAoB;AAC1C;AACA;AACA;AACA;AACA,cAAcrB,UAAU,CAACmB,MAAD,CAAS;AACjC,MAAMA,MAAO;AACb,QAAQE,KAAM;AACd;AACA;AACA;AACA;AACA,GAZA;;AAaA,MAAMC,sBAAsB,GAAG,CAACH,MAAD,EAASE,KAAT,KAAmBtB,GAAI;AACtD;AACA,MAAMoB,MAAO;AACb,QAAQE,KAAM;AACd;AACA;AACA;AACA;AACA,GARA;;AAUA,MAAME,uBAAuB,GAAG,CAACJ,MAAD,EAASE,KAAT,KAAmBtB,GAAI;AACvD;AACA,kBAAkBoB,MAAO;AACzB,MAAME,KAAM;AACZ;AACA;AACA;AACA;AACA,GARA,C,CAUA;;;AACA,MAAMG,SAAS,GAAG,CAACL,MAAD,EAASE,KAAT,KAAmB;EACnC,MAAMI,KAAK,GAAGL,aAAa,CAACD,MAAD,EAASE,KAAT,CAA3B;EACA,OAAOtB,GAAI;AACb,MAAM0B,KAAM;AACZ,GAFE;AAGD,CALD;;AAOA,MAAMC,mBAAmB,GAAGC,MAAM,IAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiBA,MAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["gql","upperFirst","defaultSchemaProps","getSearchPublishedContent","fields","getUser","userProps","getEntitySchema","getSingleEntitySchema","getRecordParents","queryName","getMultipleSchema","identifiers","queryString","map","id","join","getFiles","getFileById","getCount","action","generateQuery","props","generateMultiItemQuery","generateSingleItemQuery","getAction","query","getPublishedContent","entity"],"sources":["../../../src/application/query/index.js"],"sourcesContent":["import { gql } from '@apollo/client';\nimport upperFirst from 'lodash.upperfirst';\n\nconst defaultSchemaProps = `\n id\n identifier\n properties\n dynamicProperties\n actions\n interfaces\n relations\n __typename\n`;\n\nconst getSearchPublishedContent = fields => gql`\n query searchPublishedContent($rawQueryStringified: String!, $offset: Int, $limit: Int, $sort: String) {\n searchPublishedContent(rawQueryStringified: $rawQueryStringified, offset: $offset, limit: $limit, sort: $sort) {\n ${fields}\n }\n }\n `;\n\nconst getUser = userProps => gql`\n query getUser($id: String!) {\n getUser(id: $id) {\n id\n ${userProps}\n }\n }\n`;\n\nconst getEntitySchema = gql`\n query getEntitySchemas($identifier: String!) {\n getEntitySchemas(identifier: $identifier) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getSingleEntitySchema = gql`\n query getEntitySchema($id: String!) {\n getEntitySchema: getEntitySchema(id: $id) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getRecordParents = queryName => gql`\nquery getRecordParents($id: String!){\n recordParents: ${queryName}(id: $id){\n id,\n name,\n url,\n parents {\n id,\n name\n url\n }\n }\n}`;\n\nconst getMultipleSchema = identifiers => {\n const queryString = identifiers\n .map(\n id => `${id}: getEntitySchema(id: \"${id}\") {\n ${defaultSchemaProps}\n }`\n )\n .join(`\\n`);\n return gql`\n query {\n ${queryString}\n }`;\n};\n\nconst getFiles = gql`\n query getFiles($where: JSON!) {\n getFiles(where: $where) {\n id\n url\n data\n }\n }\n`;\n\nconst getFileById = gql`\n query getFile($id: String!) {\n getFile(id: $id) {\n id\n url\n data\n }\n }\n`;\n\nconst getCount = action => gql`query countData($where: JSON!) {\n ${action} (where: $where)\n }\n`;\n\nconst generateQuery = (action, props) => `\n query getEntityData(\n $where: JSON\n $limit: Int\n $offset: Int\n $sort: [${upperFirst(action)}SortItem]){\n ${action} (where: $where, limit: $limit, offset: $offset, sort: $sort){\n ${props}\n id\n __typename\n }\n }\n `;\nconst generateMultiItemQuery = (action, props) => gql`\n query getEntityData($where: JSON){\n ${action} (where: $where){\n ${props}\n id\n __typename\n }\n }\n `;\n\nconst generateSingleItemQuery = (action, props) => gql`\n query getEntityData($id: String!){\n entityData: ${action}(id: $id){\n ${props},\n id,\n __typename\n }\n }\n `;\n\n// TODO: extend function to handle properties and make them dynamic with a config schema for each entity.\nconst getAction = (action, props) => {\n const query = generateQuery(action, props);\n return gql`\n ${query}\n `;\n};\n\nconst getPublishedContent = entity => `\n query searchPublishedContent(\n $rawQueryStringified: String!\n $offset: Int\n $limit: Int\n $sort: String\n ) {\n searchPublishedContent(\n rawQueryStringified: $rawQueryStringified\n offset: $offset\n limit: $limit\n sort: $sort\n ) {\n results {\n ... on ${entity} {\n id\n name\n image {\n url\n __typename\n }\n url\n __typename\n }\n __typename\n }\n total\n __typename\n }\n }\n`;\n\nexport {\n getEntitySchema,\n getSingleEntitySchema,\n getAction,\n getFiles,\n getFileById,\n generateMultiItemQuery,\n generateSingleItemQuery,\n getPublishedContent,\n getSearchPublishedContent,\n getCount,\n getMultipleSchema,\n getUser,\n getRecordParents\n};\n"],"mappings":"AAAA,SAASA,GAAT,QAAoB,gBAApB;AACA,OAAOC,UAAP,MAAuB,mBAAvB;AAEA,MAAMC,kBAAkB,GAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CATA;;AAWA,MAAMC,yBAAyB,GAAGC,MAAM,IAAIJ,GAAI;AAChD;AACA;AACA,UAAUI,MAAO;AACjB;AACA;AACA,GANA;;AAQA,MAAMC,OAAO,GAAGC,SAAS,IAAIN,GAAI;AACjC;AACA;AACA;AACA,QAAQM,SAAU;AAClB;AACA;AACA,CAPA;;AASA,MAAMC,eAAe,GAAGP,GAAI;AAC5B;AACA;AACA,QAAQE,kBAAmB;AAC3B;AACA;AACA,CANA;AAQA,MAAMM,qBAAqB,GAAGR,GAAI;AAClC;AACA;AACA,QAAQE,kBAAmB;AAC3B;AACA;AACA,CANA;;AAQA,MAAMO,gBAAgB,GAAGC,SAAS,IAAIV,GAAI;AAC1C;AACA,mBAAmBU,SAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAZA;;AAcA,MAAMC,iBAAiB,GAAGC,WAAW,IAAI;EACvC,MAAMC,WAAW,GAAGD,WAAW,CAC5BE,GADiB,CAEhBC,EAAE,IAAK,GAAEA,EAAG,0BAAyBA,EAAG;AAC9C,cAAcb,kBAAmB;AACjC,QAJsB,EAMjBc,IANiB,CAMX,IANW,CAApB;EAOA,OAAOhB,GAAI;AACb;AACA,QAAQa,WAAY;AACpB,MAHE;AAID,CAZD;;AAcA,MAAMI,QAAQ,GAAGjB,GAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;AAUA,MAAMkB,WAAW,GAAGlB,GAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;;AAUA,MAAMmB,QAAQ,GAAGC,MAAM,IAAIpB,GAAI;AAC/B,MAAMoB,MAAO;AACb;AACA,CAHA;;AAKA,MAAMC,aAAa,GAAG,CAACD,MAAD,EAASE,KAAT,KAAoB;AAC1C;AACA;AACA;AACA;AACA,cAAcrB,UAAU,CAACmB,MAAD,CAAS;AACjC,MAAMA,MAAO;AACb,QAAQE,KAAM;AACd;AACA;AACA;AACA;AACA,GAZA;;AAaA,MAAMC,sBAAsB,GAAG,CAACH,MAAD,EAASE,KAAT,KAAmBtB,GAAI;AACtD;AACA,MAAMoB,MAAO;AACb,QAAQE,KAAM;AACd;AACA;AACA;AACA;AACA,GARA;;AAUA,MAAME,uBAAuB,GAAG,CAACJ,MAAD,EAASE,KAAT,KAAmBtB,GAAI;AACvD;AACA,kBAAkBoB,MAAO;AACzB,MAAME,KAAM;AACZ;AACA;AACA;AACA;AACA,GARA,C,CAUA;;;AACA,MAAMG,SAAS,GAAG,CAACL,MAAD,EAASE,KAAT,KAAmB;EACnC,MAAMI,KAAK,GAAGL,aAAa,CAACD,MAAD,EAASE,KAAT,CAA3B;EACA,OAAOtB,GAAI;AACb,MAAM0B,KAAM;AACZ,GAFE;AAGD,CALD;;AAOA,MAAMC,mBAAmB,GAAGC,MAAM,IAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiBA,MAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CA9BA;;AAgCA,SACErB,eADF,EAEEC,qBAFF,EAGEiB,SAHF,EAIER,QAJF,EAKEC,WALF,EAMEK,sBANF,EAOEC,uBAPF,EAQEG,mBARF,EASExB,yBATF,EAUEgB,QAVF,EAWER,iBAXF,EAYEN,OAZF,EAaEI,gBAbF"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { gql,
|
|
3
|
+
import { gql, useApolloClient } from '@apollo/client';
|
|
4
4
|
import { useRouter } from 'next/router';
|
|
5
5
|
import { getPublishedContent } from '../../application/query';
|
|
6
6
|
import BlazeLink from '../BlazeLink';
|
|
7
7
|
|
|
8
|
+
const logError = error => error;
|
|
9
|
+
|
|
8
10
|
const SearchContent = ({
|
|
9
|
-
|
|
11
|
+
entities,
|
|
10
12
|
searchInputAlignment,
|
|
11
13
|
searchInputWrapperMobile,
|
|
12
14
|
searchInputWrapperDesktop,
|
|
@@ -16,44 +18,70 @@ const SearchContent = ({
|
|
|
16
18
|
}) => {
|
|
17
19
|
const [collapsed, setCollapsed] = useState(collapsible);
|
|
18
20
|
const [searchTerm, setSearchTerm] = useState(null);
|
|
21
|
+
const [data, setData] = useState([]);
|
|
19
22
|
const router = useRouter();
|
|
23
|
+
const client = useApolloClient();
|
|
20
24
|
|
|
21
25
|
const capitalize = s => {
|
|
22
26
|
if (typeof s !== 'string') return '';
|
|
23
27
|
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
24
28
|
};
|
|
25
29
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
React.useEffect(() => {
|
|
31
|
+
if (data && data.length !== 0) return;
|
|
32
|
+
const promises = entities.map(entity => {
|
|
33
|
+
const [a, b] = entity.split('_');
|
|
34
|
+
const entityName = capitalize(a) + capitalize(b);
|
|
35
|
+
const rawQueryStringified = JSON.stringify({
|
|
36
|
+
size: 0,
|
|
37
|
+
query: {
|
|
38
|
+
bool: {
|
|
39
|
+
should: [{
|
|
40
|
+
match: {
|
|
41
|
+
docType: entity
|
|
42
|
+
}
|
|
43
|
+
}],
|
|
44
|
+
minimum_should_match: 1
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
const query = gql`
|
|
49
|
+
${getPublishedContent(entityName)}
|
|
50
|
+
`;
|
|
51
|
+
|
|
52
|
+
try {
|
|
53
|
+
return client.query({
|
|
54
|
+
query,
|
|
55
|
+
variables: {
|
|
56
|
+
rawQueryStringified,
|
|
57
|
+
offset: 0,
|
|
58
|
+
limit: 5
|
|
35
59
|
}
|
|
36
|
-
}
|
|
37
|
-
|
|
60
|
+
});
|
|
61
|
+
} catch (e) {
|
|
62
|
+
return [];
|
|
38
63
|
}
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
try {
|
|
67
|
+
(async () => {
|
|
68
|
+
try {
|
|
69
|
+
const fetchResults = await Promise.all(promises);
|
|
70
|
+
const searchResults = fetchResults.map(result => {
|
|
71
|
+
const {
|
|
72
|
+
data: resultData
|
|
73
|
+
} = result;
|
|
74
|
+
return resultData.searchPublishedContent.results;
|
|
75
|
+
}).flat();
|
|
76
|
+
setData(searchResults);
|
|
77
|
+
} catch (e) {
|
|
78
|
+
logError(e);
|
|
79
|
+
}
|
|
80
|
+
})();
|
|
81
|
+
} catch (e) {
|
|
82
|
+
logError(e);
|
|
39
83
|
}
|
|
40
84
|
});
|
|
41
|
-
const query = gql`
|
|
42
|
-
${getPublishedContent(entityName)}
|
|
43
|
-
`;
|
|
44
|
-
const {
|
|
45
|
-
loading,
|
|
46
|
-
error,
|
|
47
|
-
data
|
|
48
|
-
} = useQuery(query, {
|
|
49
|
-
variables: {
|
|
50
|
-
rawQueryStringified,
|
|
51
|
-
offset: 0,
|
|
52
|
-
limit: 5
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
if (loading) return null;
|
|
56
|
-
if (error) return null;
|
|
57
85
|
|
|
58
86
|
const handleClick = (e, url) => {
|
|
59
87
|
e.preventDefault();
|
|
@@ -66,30 +94,35 @@ const SearchContent = ({
|
|
|
66
94
|
}
|
|
67
95
|
};
|
|
68
96
|
|
|
69
|
-
const renderResults = () =>
|
|
70
|
-
|
|
97
|
+
const renderResults = () => // eslint-disable-next-line no-undef
|
|
98
|
+
data === null || data === void 0 ? void 0 : data.map(dataItem => {
|
|
71
99
|
const {
|
|
72
|
-
|
|
73
|
-
|
|
100
|
+
name,
|
|
101
|
+
image,
|
|
102
|
+
url
|
|
103
|
+
} = dataItem;
|
|
74
104
|
|
|
75
|
-
if (
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
105
|
+
if (searchTerm && searchTerm !== '') {
|
|
106
|
+
if (name.includes(searchTerm)) {
|
|
107
|
+
return /*#__PURE__*/React.createElement(BlazeLink, {
|
|
108
|
+
href: url,
|
|
109
|
+
onClick: e => handleClick(e, url)
|
|
110
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
111
|
+
className: "mt-2 mb-1"
|
|
112
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
113
|
+
className: "flex justify-start items-center"
|
|
114
|
+
}, image.url ? /*#__PURE__*/React.createElement("img", {
|
|
115
|
+
src: image.url,
|
|
116
|
+
alt: name,
|
|
117
|
+
className: "w-20 h-14"
|
|
118
|
+
}) : null, /*#__PURE__*/React.createElement("span", {
|
|
119
|
+
className: "ml-2"
|
|
120
|
+
}, name))));
|
|
121
|
+
}
|
|
86
122
|
|
|
87
|
-
|
|
88
|
-
});
|
|
123
|
+
return null;
|
|
89
124
|
}
|
|
90
|
-
|
|
91
|
-
return [];
|
|
92
|
-
};
|
|
125
|
+
});
|
|
93
126
|
|
|
94
127
|
const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';
|
|
95
128
|
return collapsed ? /*#__PURE__*/React.createElement("div", {
|
|
@@ -160,7 +193,7 @@ SearchContent.propTypes = {
|
|
|
160
193
|
placeholder: PropTypes.string,
|
|
161
194
|
isMobile: PropTypes.bool,
|
|
162
195
|
collapsible: PropTypes.bool,
|
|
163
|
-
|
|
196
|
+
entities: PropTypes.array.isRequired
|
|
164
197
|
};
|
|
165
198
|
SearchContent.defaultProps = {
|
|
166
199
|
searchInputAlignment: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useState","PropTypes","gql","useQuery","useRouter","getPublishedContent","BlazeLink","SearchContent","entity","searchInputAlignment","searchInputWrapperMobile","searchInputWrapperDesktop","collapsible","isMobile","placeholder","collapsed","setCollapsed","searchTerm","setSearchTerm","router","capitalize","s","charAt","toUpperCase","slice","a","b","split","entityName","rawQueryStringified","JSON","stringify","size","query","bool","should","match","docType","minimum_should_match","loading","error","data","variables","offset","limit","handleClick","e","url","preventDefault","push","handleKeyPress","key","target","value","renderResults","results","searchPublishedContent","map","name","includes","searchResultsMessage","propTypes","string","isRequired","defaultProps"],"sources":["../../../src/components/SearchContent/index.js"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { gql, useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { getPublishedContent } from '../../application/query';\nimport BlazeLink from '../BlazeLink';\n\nconst SearchContent = ({\n entity,\n searchInputAlignment,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n collapsible,\n isMobile,\n placeholder\n}) => {\n const [collapsed, setCollapsed] = useState(collapsible);\n const [searchTerm, setSearchTerm] = useState(null);\n const router = useRouter();\n\n const capitalize = s => {\n if (typeof s !== 'string') return '';\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n const [a, b] = entity.split('_');\n\n const entityName = capitalize(a) + capitalize(b);\n\n const rawQueryStringified = JSON.stringify({\n size: 0,\n query: {\n bool: {\n should: [\n {\n match: {\n docType: entity\n }\n }\n ],\n minimum_should_match: 1\n }\n }\n });\n\n const query = gql`\n ${getPublishedContent(entityName)}\n `;\n\n const { loading, error, data } = useQuery(query, {\n variables: { rawQueryStringified, offset: 0, limit: 5 }\n });\n\n if (loading) return null;\n if (error) return null;\n\n const handleClick = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyPress = e => {\n if (e.key === 'Enter' && e.target.value !== '') {\n router.push(`/search?search_term=${e.target.value}`);\n }\n };\n\n const renderResults = () => {\n // eslint-disable-next-line no-undef\n const { results } = data?.searchPublishedContent;\n\n if (results && searchTerm && searchTerm !== '') {\n return results.map(({ name, url }) => {\n if (name.includes(searchTerm)) {\n return (\n <BlazeLink href={url} onClick={e => handleClick(e, url)}>\n {name}\n </BlazeLink>\n );\n }\n\n return null;\n });\n }\n\n return [];\n };\n\n const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';\n\n return collapsed ? (\n <div className={isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}>\n <div className=\"search-content--collapse__wrapper\">\n <label className=\"search-content--collapse__label\">\n <span className=\"search-content--collapse__icon_wrapper\">\n <svg className=\"search-content--collapse__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n onFocus={() => setCollapsed(false)}\n onChange={e => setSearchTerm(e.target.value)}\n type=\"text\"\n name=\"search\"\n value=\"\"\n className=\"search-content--collapse__input\"\n />\n </label>\n </div>\n </div>\n ) : (\n <>\n <div className={`${isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}`}>\n <div className=\"search-content--expanded__wrapper\">\n <label className=\"search-content--expanded__label\">\n <span className=\"search-content--expanded__icon_wrapper\">\n <svg className=\"search-content--expanded__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n type=\"text\"\n name=\"search\"\n onChange={e => setSearchTerm(e.target.value)}\n onKeyPress={handleKeyPress}\n className=\"search-content--expanded__input\"\n placeholder={placeholder}\n onBlur={() => {\n if (!collapsible) return;\n if (!searchTerm || searchTerm === '') setCollapsed(true);\n }}\n />\n </label>\n </div>\n {data &&\n searchResultsMessage !== '' && (\n <div className=\"search-content--results__wrapper\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"text-sm pt-2\">{searchResultsMessage}</div>\n\n <div className=\"search-content--results__message\">\n <div className=\"search-content--results__content\">{renderResults()}</div>\n </div>\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nSearchContent.propTypes = {\n searchInputAlignment: PropTypes.string,\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n placeholder: PropTypes.string,\n isMobile: PropTypes.bool,\n collapsible: PropTypes.bool,\n entity: PropTypes.string.isRequired\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n placeholder: '',\n isMobile: false,\n collapsible: false\n};\n\nexport default SearchContent;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useState","PropTypes","gql","useApolloClient","useRouter","getPublishedContent","BlazeLink","logError","error","SearchContent","entities","searchInputAlignment","searchInputWrapperMobile","searchInputWrapperDesktop","collapsible","isMobile","placeholder","collapsed","setCollapsed","searchTerm","setSearchTerm","data","setData","router","client","capitalize","s","charAt","toUpperCase","slice","useEffect","length","promises","map","entity","a","b","split","entityName","rawQueryStringified","JSON","stringify","size","query","bool","should","match","docType","minimum_should_match","variables","offset","limit","e","fetchResults","Promise","all","searchResults","result","resultData","searchPublishedContent","results","flat","handleClick","url","preventDefault","push","handleKeyPress","key","target","value","renderResults","dataItem","name","image","includes","searchResultsMessage","propTypes","string","array","isRequired","defaultProps"],"sources":["../../../src/components/SearchContent/index.js"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { gql, useApolloClient } from '@apollo/client';\n\nimport { useRouter } from 'next/router';\nimport { getPublishedContent } from '../../application/query';\nimport BlazeLink from '../BlazeLink';\n\nconst logError = error => error;\n\nconst SearchContent = ({\n entities,\n searchInputAlignment,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n collapsible,\n isMobile,\n placeholder\n}) => {\n const [collapsed, setCollapsed] = useState(collapsible);\n const [searchTerm, setSearchTerm] = useState(null);\n const [data, setData] = useState([]);\n\n const router = useRouter();\n const client = useApolloClient();\n\n const capitalize = s => {\n if (typeof s !== 'string') return '';\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n React.useEffect(() => {\n if (data && data.length !== 0) return;\n\n const promises = entities.map(entity => {\n const [a, b] = entity.split('_');\n\n const entityName = capitalize(a) + capitalize(b);\n\n const rawQueryStringified = JSON.stringify({\n size: 0,\n query: {\n bool: {\n should: [\n {\n match: {\n docType: entity\n }\n }\n ],\n minimum_should_match: 1\n }\n }\n });\n\n const query = gql`\n ${getPublishedContent(entityName)}\n `;\n\n try {\n return client.query({\n query,\n variables: {\n rawQueryStringified,\n offset: 0,\n limit: 5\n }\n });\n } catch (e) {\n return [];\n }\n });\n\n try {\n (async () => {\n try {\n const fetchResults = await Promise.all(promises);\n const searchResults = fetchResults\n .map(result => {\n const { data: resultData } = result;\n return resultData.searchPublishedContent.results;\n })\n .flat();\n\n setData(searchResults);\n } catch (e) {\n logError(e);\n }\n })();\n } catch (e) {\n logError(e);\n }\n });\n\n const handleClick = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyPress = e => {\n if (e.key === 'Enter' && e.target.value !== '') {\n router.push(`/search?search_term=${e.target.value}`);\n }\n };\n\n const renderResults = () =>\n // eslint-disable-next-line no-undef\n data?.map(dataItem => {\n const { name, image, url } = dataItem;\n\n if (searchTerm && searchTerm !== '') {\n if (name.includes(searchTerm)) {\n return (\n <BlazeLink href={url} onClick={e => handleClick(e, url)}>\n <div className=\"mt-2 mb-1\">\n <div className=\"flex justify-start items-center\">\n {image.url ? <img src={image.url} alt={name} className=\"w-20 h-14\" /> : null}\n <span className=\"ml-2\">{name}</span>\n </div>\n </div>\n </BlazeLink>\n );\n }\n\n return null;\n }\n });\n\n const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';\n\n return collapsed ? (\n <div className={isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}>\n <div className=\"search-content--collapse__wrapper\">\n <label className=\"search-content--collapse__label\">\n <span className=\"search-content--collapse__icon_wrapper\">\n <svg className=\"search-content--collapse__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n onFocus={() => setCollapsed(false)}\n onChange={e => setSearchTerm(e.target.value)}\n type=\"text\"\n name=\"search\"\n value=\"\"\n className=\"search-content--collapse__input\"\n />\n </label>\n </div>\n </div>\n ) : (\n <>\n <div className={`${isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}`}>\n <div className=\"search-content--expanded__wrapper\">\n <label className=\"search-content--expanded__label\">\n <span className=\"search-content--expanded__icon_wrapper\">\n <svg className=\"search-content--expanded__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n type=\"text\"\n name=\"search\"\n onChange={e => setSearchTerm(e.target.value)}\n onKeyPress={handleKeyPress}\n className=\"search-content--expanded__input\"\n placeholder={placeholder}\n onBlur={() => {\n if (!collapsible) return;\n if (!searchTerm || searchTerm === '') setCollapsed(true);\n }}\n />\n </label>\n </div>\n {data &&\n searchResultsMessage !== '' && (\n <div className=\"search-content--results__wrapper\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"text-sm pt-2\">{searchResultsMessage}</div>\n\n <div className=\"search-content--results__message\">\n <div className=\"search-content--results__content\">{renderResults()}</div>\n </div>\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nSearchContent.propTypes = {\n searchInputAlignment: PropTypes.string,\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n placeholder: PropTypes.string,\n isMobile: PropTypes.bool,\n collapsible: PropTypes.bool,\n entities: PropTypes.array.isRequired\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n placeholder: '',\n isMobile: false,\n collapsible: false\n};\n\nexport default SearchContent;\n"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ const CHECKBOX = 'checkbox';
|
|
|
2
2
|
const SELECT = 'select';
|
|
3
3
|
const TEXT_SEARCH = 'text-search';
|
|
4
4
|
const SEARCH_TERM = 'search_term';
|
|
5
|
-
const SIZE =
|
|
5
|
+
const SIZE = process.env.BLAZE_PB_SEARCH_FILETER_AGG_SIZE || 500;
|
|
6
6
|
const KEYWORD = 'keyword';
|
|
7
7
|
const RAW_RESULTS = 'rawResults';
|
|
8
8
|
const DEFAULT_OPTION = 'Any';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["CHECKBOX","SELECT","TEXT_SEARCH","SEARCH_TERM","SIZE","KEYWORD","RAW_RESULTS","DEFAULT_OPTION","DEFAULT_VALUES","RANGE","CHECKBOX_SELECT","LIMIT_MIN","LIMIT_MAX","MORE","LESS","UPDATED_RANGES","MIN_VALUE","MAX_VALUE","TABLET_WIDTH","RESET","SEARCH","REFINE","MOBILE_REFINEMENT_TITLE","MORE_FILTERS_CLASSES_BASE","MORE_FILTERS_CLASSES","MOBILE_WRAPPER","MOBILE_CONTENT","MOBILE_TOGGLER","MOBILE_BUTTONS","DESKTOP_WRAPPER","DESKTOP_CONTENT","DESKTOP_TOGGLER","DESKTOP_BUTTONS"],"sources":["../../../src/components/SearchFilter/constants.js"],"sourcesContent":["const CHECKBOX = 'checkbox';\nconst SELECT = 'select';\nconst TEXT_SEARCH = 'text-search';\nconst SEARCH_TERM = 'search_term';\nconst SIZE =
|
|
1
|
+
{"version":3,"file":"constants.js","names":["CHECKBOX","SELECT","TEXT_SEARCH","SEARCH_TERM","SIZE","process","env","BLAZE_PB_SEARCH_FILETER_AGG_SIZE","KEYWORD","RAW_RESULTS","DEFAULT_OPTION","DEFAULT_VALUES","RANGE","CHECKBOX_SELECT","LIMIT_MIN","LIMIT_MAX","MORE","LESS","UPDATED_RANGES","MIN_VALUE","MAX_VALUE","TABLET_WIDTH","RESET","SEARCH","REFINE","MOBILE_REFINEMENT_TITLE","MORE_FILTERS_CLASSES_BASE","MORE_FILTERS_CLASSES","MOBILE_WRAPPER","MOBILE_CONTENT","MOBILE_TOGGLER","MOBILE_BUTTONS","DESKTOP_WRAPPER","DESKTOP_CONTENT","DESKTOP_TOGGLER","DESKTOP_BUTTONS"],"sources":["../../../src/components/SearchFilter/constants.js"],"sourcesContent":["const CHECKBOX = 'checkbox';\nconst SELECT = 'select';\nconst TEXT_SEARCH = 'text-search';\nconst SEARCH_TERM = 'search_term';\nconst SIZE = process.env.BLAZE_PB_SEARCH_FILETER_AGG_SIZE || 500;\nconst KEYWORD = 'keyword';\nconst RAW_RESULTS = 'rawResults';\nconst DEFAULT_OPTION = 'Any';\nconst DEFAULT_VALUES = ['Any', 'Please Choose...'];\nconst RANGE = 'range';\nconst CHECKBOX_SELECT = ['checkbox', 'select'];\nconst LIMIT_MIN = 5;\nconst LIMIT_MAX = 1000;\nconst MORE = 'more';\nconst LESS = 'less';\nconst UPDATED_RANGES = 'updated_ranges';\nconst MIN_VALUE = 'min-value';\nconst MAX_VALUE = 'max-value';\nconst TABLET_WIDTH = 768;\nconst RESET = 'Reset all filters';\nconst SEARCH = 'Search';\nconst REFINE = `Refine Search`;\nconst MOBILE_REFINEMENT_TITLE = 'Search refinement';\n\nconst MORE_FILTERS_CLASSES_BASE = 'filter__more-filters';\nconst MORE_FILTERS_CLASSES = {\n MOBILE_WRAPPER: `${MORE_FILTERS_CLASSES_BASE}-mobile-wrapper`,\n MOBILE_CONTENT: `${MORE_FILTERS_CLASSES_BASE}-mobile-content`,\n MOBILE_TOGGLER: `${MORE_FILTERS_CLASSES_BASE}-mobile-toggler`,\n MOBILE_BUTTONS: `${MORE_FILTERS_CLASSES_BASE}-mobile-buttons`,\n DESKTOP_WRAPPER: `${MORE_FILTERS_CLASSES_BASE}-desktop-wrapper`,\n DESKTOP_CONTENT: `${MORE_FILTERS_CLASSES_BASE}-desktop-content`,\n DESKTOP_TOGGLER: `${MORE_FILTERS_CLASSES_BASE}-desktop-toggler`,\n DESKTOP_BUTTONS: `${MORE_FILTERS_CLASSES_BASE}-desktop-buttons`\n};\n\nexport {\n CHECKBOX,\n SELECT,\n TEXT_SEARCH,\n SEARCH_TERM,\n SIZE,\n KEYWORD,\n RAW_RESULTS,\n DEFAULT_OPTION,\n DEFAULT_VALUES,\n RANGE,\n CHECKBOX_SELECT,\n LIMIT_MIN,\n LIMIT_MAX,\n MORE,\n LESS,\n UPDATED_RANGES,\n MIN_VALUE,\n MAX_VALUE,\n TABLET_WIDTH,\n RESET,\n SEARCH,\n REFINE,\n MOBILE_REFINEMENT_TITLE,\n MORE_FILTERS_CLASSES\n};\n"],"mappings":"AAAA,MAAMA,QAAQ,GAAG,UAAjB;AACA,MAAMC,MAAM,GAAG,QAAf;AACA,MAAMC,WAAW,GAAG,aAApB;AACA,MAAMC,WAAW,GAAG,aAApB;AACA,MAAMC,IAAI,GAAGC,OAAO,CAACC,GAAR,CAAYC,gCAAZ,IAAgD,GAA7D;AACA,MAAMC,OAAO,GAAG,SAAhB;AACA,MAAMC,WAAW,GAAG,YAApB;AACA,MAAMC,cAAc,GAAG,KAAvB;AACA,MAAMC,cAAc,GAAG,CAAC,KAAD,EAAQ,kBAAR,CAAvB;AACA,MAAMC,KAAK,GAAG,OAAd;AACA,MAAMC,eAAe,GAAG,CAAC,UAAD,EAAa,QAAb,CAAxB;AACA,MAAMC,SAAS,GAAG,CAAlB;AACA,MAAMC,SAAS,GAAG,IAAlB;AACA,MAAMC,IAAI,GAAG,MAAb;AACA,MAAMC,IAAI,GAAG,MAAb;AACA,MAAMC,cAAc,GAAG,gBAAvB;AACA,MAAMC,SAAS,GAAG,WAAlB;AACA,MAAMC,SAAS,GAAG,WAAlB;AACA,MAAMC,YAAY,GAAG,GAArB;AACA,MAAMC,KAAK,GAAG,mBAAd;AACA,MAAMC,MAAM,GAAG,QAAf;AACA,MAAMC,MAAM,GAAI,eAAhB;AACA,MAAMC,uBAAuB,GAAG,mBAAhC;AAEA,MAAMC,yBAAyB,GAAG,sBAAlC;AACA,MAAMC,oBAAoB,GAAG;EAC3BC,cAAc,EAAG,GAAEF,yBAA0B,iBADlB;EAE3BG,cAAc,EAAG,GAAEH,yBAA0B,iBAFlB;EAG3BI,cAAc,EAAG,GAAEJ,yBAA0B,iBAHlB;EAI3BK,cAAc,EAAG,GAAEL,yBAA0B,iBAJlB;EAK3BM,eAAe,EAAG,GAAEN,yBAA0B,kBALnB;EAM3BO,eAAe,EAAG,GAAEP,yBAA0B,kBANnB;EAO3BQ,eAAe,EAAG,GAAER,yBAA0B,kBAPnB;EAQ3BS,eAAe,EAAG,GAAET,yBAA0B;AARnB,CAA7B;AAWA,SACE1B,QADF,EAEEC,MAFF,EAGEC,WAHF,EAIEC,WAJF,EAKEC,IALF,EAMEI,OANF,EAOEC,WAPF,EAQEC,cARF,EASEC,cATF,EAUEC,KAVF,EAWEC,eAXF,EAYEC,SAZF,EAaEC,SAbF,EAcEC,IAdF,EAeEC,IAfF,EAgBEC,cAhBF,EAiBEC,SAjBF,EAkBEC,SAlBF,EAmBEC,YAnBF,EAoBEC,KApBF,EAqBEC,MArBF,EAsBEC,MAtBF,EAuBEC,uBAvBF,EAwBEE,oBAxBF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "0.124.0-alpha.
|
|
3
|
+
"version": "0.124.0-alpha.8",
|
|
4
4
|
"description": "Blaze react page builder",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"lib/*",
|
|
85
85
|
"lib-es/*"
|
|
86
86
|
],
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "b1315a8be908a92e7f0c103166ce2ace52cc4b1c"
|
|
88
88
|
}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { gql,
|
|
3
|
+
import { gql, useApolloClient } from '@apollo/client';
|
|
4
|
+
|
|
4
5
|
import { useRouter } from 'next/router';
|
|
5
6
|
import { getPublishedContent } from '../../application/query';
|
|
6
7
|
import BlazeLink from '../BlazeLink';
|
|
7
8
|
|
|
9
|
+
const logError = error => error;
|
|
10
|
+
|
|
8
11
|
const SearchContent = ({
|
|
9
|
-
|
|
12
|
+
entities,
|
|
10
13
|
searchInputAlignment,
|
|
11
14
|
searchInputWrapperMobile,
|
|
12
15
|
searchInputWrapperDesktop,
|
|
@@ -16,44 +19,79 @@ const SearchContent = ({
|
|
|
16
19
|
}) => {
|
|
17
20
|
const [collapsed, setCollapsed] = useState(collapsible);
|
|
18
21
|
const [searchTerm, setSearchTerm] = useState(null);
|
|
22
|
+
const [data, setData] = useState([]);
|
|
23
|
+
|
|
19
24
|
const router = useRouter();
|
|
25
|
+
const client = useApolloClient();
|
|
20
26
|
|
|
21
27
|
const capitalize = s => {
|
|
22
28
|
if (typeof s !== 'string') return '';
|
|
23
29
|
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
24
30
|
};
|
|
25
31
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
32
|
+
React.useEffect(() => {
|
|
33
|
+
if (data && data.length !== 0) return;
|
|
34
|
+
|
|
35
|
+
const promises = entities.map(entity => {
|
|
36
|
+
const [a, b] = entity.split('_');
|
|
37
|
+
|
|
38
|
+
const entityName = capitalize(a) + capitalize(b);
|
|
39
|
+
|
|
40
|
+
const rawQueryStringified = JSON.stringify({
|
|
41
|
+
size: 0,
|
|
42
|
+
query: {
|
|
43
|
+
bool: {
|
|
44
|
+
should: [
|
|
45
|
+
{
|
|
46
|
+
match: {
|
|
47
|
+
docType: entity
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
minimum_should_match: 1
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
});
|
|
29
55
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
56
|
+
const query = gql`
|
|
57
|
+
${getPublishedContent(entityName)}
|
|
58
|
+
`;
|
|
59
|
+
|
|
60
|
+
try {
|
|
61
|
+
return client.query({
|
|
62
|
+
query,
|
|
63
|
+
variables: {
|
|
64
|
+
rawQueryStringified,
|
|
65
|
+
offset: 0,
|
|
66
|
+
limit: 5
|
|
39
67
|
}
|
|
40
|
-
|
|
41
|
-
|
|
68
|
+
});
|
|
69
|
+
} catch (e) {
|
|
70
|
+
return [];
|
|
42
71
|
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
try {
|
|
75
|
+
(async () => {
|
|
76
|
+
try {
|
|
77
|
+
const fetchResults = await Promise.all(promises);
|
|
78
|
+
const searchResults = fetchResults
|
|
79
|
+
.map(result => {
|
|
80
|
+
const { data: resultData } = result;
|
|
81
|
+
return resultData.searchPublishedContent.results;
|
|
82
|
+
})
|
|
83
|
+
.flat();
|
|
84
|
+
|
|
85
|
+
setData(searchResults);
|
|
86
|
+
} catch (e) {
|
|
87
|
+
logError(e);
|
|
88
|
+
}
|
|
89
|
+
})();
|
|
90
|
+
} catch (e) {
|
|
91
|
+
logError(e);
|
|
43
92
|
}
|
|
44
93
|
});
|
|
45
94
|
|
|
46
|
-
const query = gql`
|
|
47
|
-
${getPublishedContent(entityName)}
|
|
48
|
-
`;
|
|
49
|
-
|
|
50
|
-
const { loading, error, data } = useQuery(query, {
|
|
51
|
-
variables: { rawQueryStringified, offset: 0, limit: 5 }
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
if (loading) return null;
|
|
55
|
-
if (error) return null;
|
|
56
|
-
|
|
57
95
|
const handleClick = (e, url) => {
|
|
58
96
|
e.preventDefault();
|
|
59
97
|
router.push(url);
|
|
@@ -65,26 +103,28 @@ const SearchContent = ({
|
|
|
65
103
|
}
|
|
66
104
|
};
|
|
67
105
|
|
|
68
|
-
const renderResults = () =>
|
|
106
|
+
const renderResults = () =>
|
|
69
107
|
// eslint-disable-next-line no-undef
|
|
70
|
-
|
|
108
|
+
data?.map(dataItem => {
|
|
109
|
+
const { name, image, url } = dataItem;
|
|
71
110
|
|
|
72
|
-
|
|
73
|
-
return results.map(({ name, url }) => {
|
|
111
|
+
if (searchTerm && searchTerm !== '') {
|
|
74
112
|
if (name.includes(searchTerm)) {
|
|
75
113
|
return (
|
|
76
114
|
<BlazeLink href={url} onClick={e => handleClick(e, url)}>
|
|
77
|
-
|
|
115
|
+
<div className="mt-2 mb-1">
|
|
116
|
+
<div className="flex justify-start items-center">
|
|
117
|
+
{image.url ? <img src={image.url} alt={name} className="w-20 h-14" /> : null}
|
|
118
|
+
<span className="ml-2">{name}</span>
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
78
121
|
</BlazeLink>
|
|
79
122
|
);
|
|
80
123
|
}
|
|
81
124
|
|
|
82
125
|
return null;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return [];
|
|
87
|
-
};
|
|
126
|
+
}
|
|
127
|
+
});
|
|
88
128
|
|
|
89
129
|
const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';
|
|
90
130
|
|
|
@@ -164,7 +204,7 @@ SearchContent.propTypes = {
|
|
|
164
204
|
placeholder: PropTypes.string,
|
|
165
205
|
isMobile: PropTypes.bool,
|
|
166
206
|
collapsible: PropTypes.bool,
|
|
167
|
-
|
|
207
|
+
entities: PropTypes.array.isRequired
|
|
168
208
|
};
|
|
169
209
|
|
|
170
210
|
SearchContent.defaultProps = {
|
|
@@ -2,7 +2,7 @@ const CHECKBOX = 'checkbox';
|
|
|
2
2
|
const SELECT = 'select';
|
|
3
3
|
const TEXT_SEARCH = 'text-search';
|
|
4
4
|
const SEARCH_TERM = 'search_term';
|
|
5
|
-
const SIZE =
|
|
5
|
+
const SIZE = process.env.BLAZE_PB_SEARCH_FILETER_AGG_SIZE || 500;
|
|
6
6
|
const KEYWORD = 'keyword';
|
|
7
7
|
const RAW_RESULTS = 'rawResults';
|
|
8
8
|
const DEFAULT_OPTION = 'Any';
|
package/tests/helpers/mocks.js
CHANGED
|
@@ -1521,13 +1521,13 @@ const RAW_QUERY_ALL_SEARCH_VALUE_DIFFERENT_OPERATOR_TEXT_CHECKBOX_HAS_OR_OPERATO
|
|
|
1521
1521
|
};
|
|
1522
1522
|
|
|
1523
1523
|
const RAW_QUERY_STRINGIFIED =
|
|
1524
|
-
'{"aggs":{"tags.name":{"terms":{"field":"tags.name.keyword","size":
|
|
1525
|
-
':{"terms":{"field":"category.name.keyword","size":
|
|
1524
|
+
'{"aggs":{"tags.name":{"terms":{"field":"tags.name.keyword","size":500}},"category.name"' +
|
|
1525
|
+
':{"terms":{"field":"category.name.keyword","size":500}}},"size":0,"query":{"bool":{"filter":{"bool"' +
|
|
1526
1526
|
':{"should":[{"match":{"docType":"published_page"}}],"minimum_should_match":1}}}}}';
|
|
1527
1527
|
|
|
1528
1528
|
const RAW_QUERY_STRINGIFIED_WITH_RANGE =
|
|
1529
|
-
'{"aggs":{"tags.name":{"terms":{"field":"tags.name.keyword","size":
|
|
1530
|
-
'terms":{"field":"category.name.keyword","size":
|
|
1529
|
+
'{"aggs":{"tags.name":{"terms":{"field":"tags.name.keyword","size":500}},"category.name":{"' +
|
|
1530
|
+
'terms":{"field":"category.name.keyword","size":500}},"price":{"stats":{"field":"price"}},"length":' +
|
|
1531
1531
|
'{"stats":{"field":"length"}}},"size":0,"query":{"bool":{"filter":{"bool":{"should":[{"match":' +
|
|
1532
1532
|
'{"docType":"published_page"}}],"minimum_should_match":1}}}}}';
|
|
1533
1533
|
|