@blaze-cms/react-page-builder 0.124.0-alpha.2 → 0.124.0-alpha.6
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 +32 -0
- package/lib/application/query/index.js +1 -1
- package/lib/application/query/index.js.map +1 -1
- package/lib/components/CarouselWrapper.js +2 -2
- package/lib/components/CarouselWrapper.js.map +1 -1
- package/lib/components/SearchContent/index.js +130 -63
- package/lib/components/SearchContent/index.js.map +1 -1
- package/lib/helpers/build-props-query.js +18 -11
- package/lib/helpers/build-props-query.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/CarouselWrapper.js +2 -2
- package/lib-es/components/CarouselWrapper.js.map +1 -1
- package/lib-es/components/SearchContent/index.js +84 -50
- package/lib-es/components/SearchContent/index.js.map +1 -1
- package/lib-es/helpers/build-props-query.js +11 -2
- package/lib-es/helpers/build-props-query.js.map +1 -1
- package/package.json +2 -2
- package/src/application/query/index.js +4 -0
- package/src/components/CarouselWrapper.js +2 -2
- package/src/components/SearchContent/index.js +77 -38
- package/src/helpers/build-props-query.js +6 -3
- package/tests/unit/src/helpers/build-props-query.test.js +43 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,38 @@
|
|
|
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.6](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.5...v0.124.0-alpha.6) (2022-05-06)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [0.124.0-alpha.4](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.3...v0.124.0-alpha.4) (2022-05-03)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* add id prop to filter queries to help data merges in apollo ([#3451](https://github.com/thebyte9/blaze/issues/3451)) ([0e66222](https://github.com/thebyte9/blaze/commit/0e662220e80da84c1713e23b60f2ab4495a8e883))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Features
|
|
23
|
+
|
|
24
|
+
* adding url property to document and update card to fetch url for non content entity ([#3371](https://github.com/thebyte9/blaze/issues/3371)) ([5a52e05](https://github.com/thebyte9/blaze/commit/5a52e05d83c2ce564aa8faada635660c7e4e3eef))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
# [0.124.0-alpha.3](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.2...v0.124.0-alpha.3) (2022-04-29)
|
|
31
|
+
|
|
32
|
+
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
6
38
|
# [0.124.0-alpha.2](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.1...v0.124.0-alpha.2) (2022-04-29)
|
|
7
39
|
|
|
8
40
|
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
@@ -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,"sources":["../../../src/application/query/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"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;AAEA,IAAMA,kBAAkB,kHAAxB;;AAWA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,CAAAC,MAAM;AAAA,aAAIC,WAAJ,+VAG9BD,MAH8B;AAAA,CAAxC;;;;AAQA,IAAME,OAAO,GAAG,SAAVA,OAAU,CAAAC,SAAS;AAAA,aAAIF,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;AAAA,aAAIN,WAAJ,gQAEfM,SAFe;AAAA,CAAlC;;;;AAcA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAC,WAAW,EAAI;AACvC,MAAMC,WAAW,GAAGD,WAAW,CAC5BE,GADiB,CAEhB,UAAAC,EAAE;AAAA,qBAAOA,EAAP,qCAAmCA,EAAnC,gCACMd,kBADN;AAAA,GAFc,EAMjBe,IANiB,MAApB;AAOA,aAAOZ,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;AAAA,aAAIhB,WAAJ,2JACjBgB,MADiB;AAAA,CAAvB;;;;AAKA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACD,MAAD,EAASE,KAAT;AAAA,8GAKR,wBAAWF,MAAX,CALQ,8BAMhBA,MANgB,mFAOdE,KAPc;AAAA,CAAtB;;AAaA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACH,MAAD,EAASE,KAAT;AAAA,aAAmBlB,WAAnB,qNAEzBgB,MAFyB,EAGvBE,KAHuB;AAAA,CAA/B;;;;AAUA,IAAME,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACJ,MAAD,EAASE,KAAT;AAAA,aAAmBlB,WAAnB,sNAEdgB,MAFc,EAG1BE,KAH0B;AAAA,CAAhC,C,CAUA;;;;;AACA,IAAMG,SAAS,GAAG,SAAZA,SAAY,CAACL,MAAD,EAASE,KAAT,EAAmB;AACnC,MAAMI,KAAK,GAAGL,aAAa,CAACD,MAAD,EAASE,KAAT,CAA3B;AACA,aAAOlB,WAAP,0GACIsB,KADJ;AAGD,CALD;;;;AAOA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAC,MAAM;AAAA,4UAcjBA,MAdiB;AAAA,CAAlC","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"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/application/query/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"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;AAEA,IAAMA,kBAAkB,kHAAxB;;AAWA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,CAAAC,MAAM;AAAA,aAAIC,WAAJ,+VAG9BD,MAH8B;AAAA,CAAxC;;;;AAQA,IAAME,OAAO,GAAG,SAAVA,OAAU,CAAAC,SAAS;AAAA,aAAIF,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;AAAA,aAAIN,WAAJ,gQAEfM,SAFe;AAAA,CAAlC;;;;AAcA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAC,WAAW,EAAI;AACvC,MAAMC,WAAW,GAAGD,WAAW,CAC5BE,GADiB,CAEhB,UAAAC,EAAE;AAAA,qBAAOA,EAAP,qCAAmCA,EAAnC,gCACMd,kBADN;AAAA,GAFc,EAMjBe,IANiB,MAApB;AAOA,aAAOZ,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;AAAA,aAAIhB,WAAJ,2JACjBgB,MADiB;AAAA,CAAvB;;;;AAKA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACD,MAAD,EAASE,KAAT;AAAA,8GAKR,wBAAWF,MAAX,CALQ,8BAMhBA,MANgB,mFAOdE,KAPc;AAAA,CAAtB;;AAaA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACH,MAAD,EAASE,KAAT;AAAA,aAAmBlB,WAAnB,qNAEzBgB,MAFyB,EAGvBE,KAHuB;AAAA,CAA/B;;;;AAUA,IAAME,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACJ,MAAD,EAASE,KAAT;AAAA,aAAmBlB,WAAnB,sNAEdgB,MAFc,EAG1BE,KAH0B;AAAA,CAAhC,C,CAUA;;;;;AACA,IAAMG,SAAS,GAAG,SAAZA,SAAY,CAACL,MAAD,EAASE,KAAT,EAAmB;AACnC,MAAMI,KAAK,GAAGL,aAAa,CAACD,MAAD,EAASE,KAAT,CAA3B;AACA,aAAOlB,WAAP,0GACIsB,KADJ;AAGD,CALD;;;;AAOA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAC,MAAM;AAAA,4UAcjBA,MAdiB;AAAA,CAAlC","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"],"file":"index.js"}
|
|
@@ -128,7 +128,7 @@ var CarouselWrapper = function CarouselWrapper(_ref) {
|
|
|
128
128
|
handleButtonNavigation();
|
|
129
129
|
}
|
|
130
130
|
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
131
|
-
className: "arrow
|
|
131
|
+
className: "carousel--arrow-left"
|
|
132
132
|
}))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
133
133
|
className: "cards-carousel--right-button-wrapper"
|
|
134
134
|
}, displayRight && /*#__PURE__*/_react["default"].createElement("button", {
|
|
@@ -139,7 +139,7 @@ var CarouselWrapper = function CarouselWrapper(_ref) {
|
|
|
139
139
|
handleButtonNavigation(true);
|
|
140
140
|
}
|
|
141
141
|
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
142
|
-
className: "arrow
|
|
142
|
+
className: "carousel--arrow-left"
|
|
143
143
|
}))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
144
144
|
className: contentClassName,
|
|
145
145
|
ref: ref,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/CarouselWrapper.js"],"names":["CarouselWrapper","children","bannerModifier","itemsPerRow","enableAutoScroll","autoScrollTimer","arrowSize","ref","displayLeft","displayRight","buttonDisplay","setButtonDisplays","shouldAutoScroll","setShouldAutoScroll","autoScrollRef","current","id","setInterval","scrollCheck","clearInterval","handleButtonNavigation","offsetWidth","scrollWidth","handleScroll","scrollLeft","updatedDisplayLeft","updatedDisplayRight","direction","wrapperClassName","contentClassName","propTypes","PropTypes","string","number","oneOfType","arrayOf","node","bool","defaultProps"],"mappings":"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","sourcesContent":["import React, { useRef, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nconst CarouselWrapper = ({\n children,\n bannerModifier,\n itemsPerRow,\n enableAutoScroll,\n autoScrollTimer,\n arrowSize\n}) => {\n const ref = useRef();\n const [buttonDisplay, setButtonDisplays] = useState({ displayLeft: false, displayRight: true });\n const [shouldAutoScroll, setShouldAutoScroll] = useState(false);\n const autoScrollRef = useRef();\n\n useEffect(\n () => {\n autoScrollRef.current = shouldAutoScroll;\n const id = setInterval(scrollCheck, autoScrollTimer);\n function scrollCheck() {\n if (!autoScrollRef.current) {\n clearInterval(id);\n } else {\n handleButtonNavigation(true);\n }\n }\n\n return () => clearInterval(id);\n },\n [autoScrollTimer, shouldAutoScroll]\n );\n\n useEffect(\n () => {\n const {\n current: { offsetWidth, scrollWidth }\n } = ref;\n if (scrollWidth <= offsetWidth)\n setButtonDisplays({ displayLeft: false, displayRight: false });\n setShouldAutoScroll(enableAutoScroll);\n },\n [enableAutoScroll]\n );\n\n const handleScroll = () => {\n const {\n current: { offsetWidth, scrollLeft, scrollWidth }\n } = ref;\n const updatedDisplayLeft = !!scrollLeft;\n const updatedDisplayRight = scrollLeft + offsetWidth + 1 < scrollWidth;\n setButtonDisplays({ displayLeft: updatedDisplayLeft, displayRight: updatedDisplayRight });\n };\n\n const handleButtonNavigation = direction => {\n if (!ref || !ref.current) return;\n const {\n current: { offsetWidth, scrollLeft, scrollWidth }\n } = ref;\n\n if (autoScrollRef.current && scrollLeft + offsetWidth >= scrollWidth) {\n ref.current.scrollLeft = 0;\n } else {\n ref.current.scrollLeft = direction ? scrollLeft + offsetWidth : scrollLeft - offsetWidth;\n }\n };\n\n const { displayLeft, displayRight } = buttonDisplay;\n const wrapperClassName = `cards-carousel${bannerModifier}`;\n const contentClassName = `cards-carousel--content items-per-row-${itemsPerRow}`;\n\n return (\n <div className={wrapperClassName}>\n <div className=\"cards-carousel--left-button-wrapper\">\n {displayLeft && (\n <button\n type=\"button\"\n className=\"cards-carousel--button-back icon-button icon\"\n onClick={() => {\n setShouldAutoScroll(false);\n handleButtonNavigation();\n }}>\n <i className=\"arrow
|
|
1
|
+
{"version":3,"sources":["../../src/components/CarouselWrapper.js"],"names":["CarouselWrapper","children","bannerModifier","itemsPerRow","enableAutoScroll","autoScrollTimer","arrowSize","ref","displayLeft","displayRight","buttonDisplay","setButtonDisplays","shouldAutoScroll","setShouldAutoScroll","autoScrollRef","current","id","setInterval","scrollCheck","clearInterval","handleButtonNavigation","offsetWidth","scrollWidth","handleScroll","scrollLeft","updatedDisplayLeft","updatedDisplayRight","direction","wrapperClassName","contentClassName","propTypes","PropTypes","string","number","oneOfType","arrayOf","node","bool","defaultProps"],"mappings":"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","sourcesContent":["import React, { useRef, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nconst CarouselWrapper = ({\n children,\n bannerModifier,\n itemsPerRow,\n enableAutoScroll,\n autoScrollTimer,\n arrowSize\n}) => {\n const ref = useRef();\n const [buttonDisplay, setButtonDisplays] = useState({ displayLeft: false, displayRight: true });\n const [shouldAutoScroll, setShouldAutoScroll] = useState(false);\n const autoScrollRef = useRef();\n\n useEffect(\n () => {\n autoScrollRef.current = shouldAutoScroll;\n const id = setInterval(scrollCheck, autoScrollTimer);\n function scrollCheck() {\n if (!autoScrollRef.current) {\n clearInterval(id);\n } else {\n handleButtonNavigation(true);\n }\n }\n\n return () => clearInterval(id);\n },\n [autoScrollTimer, shouldAutoScroll]\n );\n\n useEffect(\n () => {\n const {\n current: { offsetWidth, scrollWidth }\n } = ref;\n if (scrollWidth <= offsetWidth)\n setButtonDisplays({ displayLeft: false, displayRight: false });\n setShouldAutoScroll(enableAutoScroll);\n },\n [enableAutoScroll]\n );\n\n const handleScroll = () => {\n const {\n current: { offsetWidth, scrollLeft, scrollWidth }\n } = ref;\n const updatedDisplayLeft = !!scrollLeft;\n const updatedDisplayRight = scrollLeft + offsetWidth + 1 < scrollWidth;\n setButtonDisplays({ displayLeft: updatedDisplayLeft, displayRight: updatedDisplayRight });\n };\n\n const handleButtonNavigation = direction => {\n if (!ref || !ref.current) return;\n const {\n current: { offsetWidth, scrollLeft, scrollWidth }\n } = ref;\n\n if (autoScrollRef.current && scrollLeft + offsetWidth >= scrollWidth) {\n ref.current.scrollLeft = 0;\n } else {\n ref.current.scrollLeft = direction ? scrollLeft + offsetWidth : scrollLeft - offsetWidth;\n }\n };\n\n const { displayLeft, displayRight } = buttonDisplay;\n const wrapperClassName = `cards-carousel${bannerModifier}`;\n const contentClassName = `cards-carousel--content items-per-row-${itemsPerRow}`;\n\n return (\n <div className={wrapperClassName}>\n <div className=\"cards-carousel--left-button-wrapper\">\n {displayLeft && (\n <button\n type=\"button\"\n className=\"cards-carousel--button-back icon-button icon\"\n onClick={() => {\n setShouldAutoScroll(false);\n handleButtonNavigation();\n }}>\n <i className=\"carousel--arrow-left\" />\n </button>\n )}\n </div>\n <div className=\"cards-carousel--right-button-wrapper\">\n {displayRight && (\n <button\n type=\"button\"\n className=\"cards-carousel--button-forward icon-button icon\"\n onClick={() => {\n setShouldAutoScroll(false);\n handleButtonNavigation(true);\n }}>\n <i className=\"carousel--arrow-left\" />\n </button>\n )}\n </div>\n <div className={contentClassName} ref={ref} onScroll={handleScroll}>\n {children}\n </div>\n </div>\n );\n};\n\nCarouselWrapper.propTypes = {\n bannerModifier: PropTypes.string,\n itemsPerRow: PropTypes.number,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n enableAutoScroll: PropTypes.bool,\n autoScrollTimer: PropTypes.number,\n arrowSize: PropTypes.number\n};\n\nCarouselWrapper.defaultProps = {\n itemsPerRow: 0,\n bannerModifier: '',\n children: [],\n enableAutoScroll: false,\n autoScrollTimer: 0,\n arrowSize: 14\n};\n\nexport default CarouselWrapper;\n"],"file":"CarouselWrapper.js"}
|
|
@@ -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
|
|
|
@@ -60,7 +70,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
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
|
|
|
62
72
|
var SearchContent = function SearchContent(_ref) {
|
|
63
|
-
var
|
|
73
|
+
var entities = _ref.entities,
|
|
64
74
|
searchInputAlignment = _ref.searchInputAlignment,
|
|
65
75
|
searchInputWrapperMobile = _ref.searchInputWrapperMobile,
|
|
66
76
|
searchInputWrapperDesktop = _ref.searchInputWrapperDesktop,
|
|
@@ -78,47 +88,97 @@ var SearchContent = function SearchContent(_ref) {
|
|
|
78
88
|
searchTerm = _useState4[0],
|
|
79
89
|
setSearchTerm = _useState4[1];
|
|
80
90
|
|
|
91
|
+
var _useState5 = (0, _react.useState)([]),
|
|
92
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
93
|
+
data = _useState6[0],
|
|
94
|
+
setData = _useState6[1];
|
|
95
|
+
|
|
81
96
|
var router = (0, _router.useRouter)();
|
|
97
|
+
var client = (0, _client.useApolloClient)();
|
|
82
98
|
|
|
83
99
|
var capitalize = function capitalize(s) {
|
|
84
100
|
if (typeof s !== 'string') return '';
|
|
85
101
|
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
86
102
|
};
|
|
87
103
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
104
|
+
_react["default"].useEffect(function () {
|
|
105
|
+
if (data && data.length !== 0) return;
|
|
106
|
+
var promises = entities.map(function (entity) {
|
|
107
|
+
var _entity$split = entity.split('_'),
|
|
108
|
+
_entity$split2 = (0, _slicedToArray2["default"])(_entity$split, 2),
|
|
109
|
+
a = _entity$split2[0],
|
|
110
|
+
b = _entity$split2[1];
|
|
111
|
+
|
|
112
|
+
var entityName = capitalize(a) + capitalize(b);
|
|
113
|
+
var rawQueryStringified = JSON.stringify({
|
|
114
|
+
size: 0,
|
|
115
|
+
query: {
|
|
116
|
+
bool: {
|
|
117
|
+
should: [{
|
|
118
|
+
match: {
|
|
119
|
+
docType: entity
|
|
120
|
+
}
|
|
121
|
+
}],
|
|
122
|
+
minimum_should_match: 1
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
var query = (0, _client.gql)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n "])), (0, _query.getPublishedContent)(entityName));
|
|
127
|
+
|
|
128
|
+
try {
|
|
129
|
+
return client.query({
|
|
130
|
+
query: query,
|
|
131
|
+
variables: {
|
|
132
|
+
rawQueryStringified: rawQueryStringified,
|
|
133
|
+
offset: 0,
|
|
134
|
+
limit: 5
|
|
101
135
|
}
|
|
102
|
-
}
|
|
103
|
-
|
|
136
|
+
});
|
|
137
|
+
} catch (e) {
|
|
138
|
+
return [];
|
|
104
139
|
}
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
try {
|
|
143
|
+
(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
144
|
+
var fetchResults, searchResults;
|
|
145
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
146
|
+
while (1) {
|
|
147
|
+
switch (_context.prev = _context.next) {
|
|
148
|
+
case 0:
|
|
149
|
+
_context.prev = 0;
|
|
150
|
+
_context.next = 3;
|
|
151
|
+
return Promise.all(promises);
|
|
152
|
+
|
|
153
|
+
case 3:
|
|
154
|
+
fetchResults = _context.sent;
|
|
155
|
+
searchResults = fetchResults.map(function (result) {
|
|
156
|
+
var data = result.data;
|
|
157
|
+
return data.searchPublishedContent.results;
|
|
158
|
+
}).flat();
|
|
159
|
+
setData(searchResults);
|
|
160
|
+
console.log({
|
|
161
|
+
searchResults: searchResults
|
|
162
|
+
});
|
|
163
|
+
_context.next = 12;
|
|
164
|
+
break;
|
|
165
|
+
|
|
166
|
+
case 9:
|
|
167
|
+
_context.prev = 9;
|
|
168
|
+
_context.t0 = _context["catch"](0);
|
|
169
|
+
console.error(_context.t0);
|
|
170
|
+
|
|
171
|
+
case 12:
|
|
172
|
+
case "end":
|
|
173
|
+
return _context.stop();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}, _callee, null, [[0, 9]]);
|
|
177
|
+
}))();
|
|
178
|
+
} catch (e) {
|
|
179
|
+
console.error(e);
|
|
105
180
|
}
|
|
106
181
|
});
|
|
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
182
|
|
|
123
183
|
var handleClick = function handleClick(e, url) {
|
|
124
184
|
e.preventDefault();
|
|
@@ -132,29 +192,36 @@ var SearchContent = function SearchContent(_ref) {
|
|
|
132
192
|
};
|
|
133
193
|
|
|
134
194
|
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
|
-
|
|
195
|
+
return (// eslint-disable-next-line no-undef
|
|
196
|
+
data === null || data === void 0 ? void 0 : data.map(function (dataItem) {
|
|
197
|
+
var name = dataItem.name,
|
|
198
|
+
image = dataItem.image,
|
|
199
|
+
url = dataItem.url;
|
|
200
|
+
|
|
201
|
+
if (searchTerm && searchTerm !== '') {
|
|
202
|
+
if (name.includes(searchTerm)) {
|
|
203
|
+
return /*#__PURE__*/_react["default"].createElement(_BlazeLink["default"], {
|
|
204
|
+
href: url,
|
|
205
|
+
onClick: function onClick(e) {
|
|
206
|
+
return handleClick(e, url);
|
|
207
|
+
}
|
|
208
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
209
|
+
className: "mt-2 mb-1"
|
|
210
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
211
|
+
className: "flex justify-start items-center"
|
|
212
|
+
}, image.url ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
213
|
+
src: image.url,
|
|
214
|
+
alt: name,
|
|
215
|
+
className: "w-20 h-14"
|
|
216
|
+
}) : null, /*#__PURE__*/_react["default"].createElement("span", {
|
|
217
|
+
className: "ml-2"
|
|
218
|
+
}, name))));
|
|
219
|
+
}
|
|
156
220
|
|
|
157
|
-
|
|
221
|
+
return null;
|
|
222
|
+
}
|
|
223
|
+
})
|
|
224
|
+
);
|
|
158
225
|
};
|
|
159
226
|
|
|
160
227
|
var searchResultsMessage = searchTerm ? "Search results for: ".concat(searchTerm) : '';
|
|
@@ -232,7 +299,7 @@ SearchContent.propTypes = {
|
|
|
232
299
|
placeholder: _propTypes["default"].string,
|
|
233
300
|
isMobile: _propTypes["default"].bool,
|
|
234
301
|
collapsible: _propTypes["default"].bool,
|
|
235
|
-
|
|
302
|
+
entities: _propTypes["default"].array.isRequired
|
|
236
303
|
};
|
|
237
304
|
SearchContent.defaultProps = {
|
|
238
305
|
searchInputAlignment: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/SearchContent/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"],"mappings":"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","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"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SearchContent/index.js"],"names":["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","searchPublishedContent","results","flat","console","log","error","handleClick","url","preventDefault","push","handleKeyPress","key","target","value","renderResults","dataItem","name","image","includes","searchResultsMessage","propTypes","PropTypes","string","array","isRequired","defaultProps"],"mappings":"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","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 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 } = result;\n return data.searchPublishedContent.results;\n })\n .flat();\n\n setData(searchResults);\n console.log({ searchResults });\n } catch (e) {\n console.error(e);\n }\n })();\n } catch (e) {\n console.error(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"],"file":"index.js"}
|
|
@@ -41,10 +41,10 @@ require("core-js/modules/es.regexp.exec.js");
|
|
|
41
41
|
|
|
42
42
|
require("core-js/modules/es.string.split.js");
|
|
43
43
|
|
|
44
|
-
require("core-js/modules/es.string.starts-with.js");
|
|
45
|
-
|
|
46
44
|
require("core-js/modules/es.array.find.js");
|
|
47
45
|
|
|
46
|
+
require("core-js/modules/es.string.starts-with.js");
|
|
47
|
+
|
|
48
48
|
var _constants = require("../constants");
|
|
49
49
|
|
|
50
50
|
var defaultProps = [_constants.ID, 'name'];
|
|
@@ -74,11 +74,12 @@ var buildPropsQuery = function buildPropsQuery(data) {
|
|
|
74
74
|
}).filter(function (prop, i, arr) {
|
|
75
75
|
return arr.indexOf(prop) === i;
|
|
76
76
|
});
|
|
77
|
-
var complexProps = buildComplexProps(shouldAddCategoryProps, uniqueProps);
|
|
77
|
+
var complexProps = buildComplexProps(shouldAddCategoryProps, uniqueProps, data);
|
|
78
78
|
return [].concat((0, _toConsumableArray2["default"])(basicProps), (0, _toConsumableArray2["default"])(complexProps)).join(',');
|
|
79
79
|
};
|
|
80
80
|
|
|
81
|
-
var buildComplexProps = function buildComplexProps(shouldAddCategoryProps, props) {
|
|
81
|
+
var buildComplexProps = function buildComplexProps(shouldAddCategoryProps, props, _ref) {
|
|
82
|
+
var relations = _ref.getEntitySchema.relations;
|
|
82
83
|
return props.filter(function (prop) {
|
|
83
84
|
return prop && prop.includes('.');
|
|
84
85
|
}).map(function (nested) {
|
|
@@ -86,11 +87,16 @@ var buildComplexProps = function buildComplexProps(shouldAddCategoryProps, props
|
|
|
86
87
|
}).filter(function (prop, i, arr) {
|
|
87
88
|
return arr.indexOf(prop) === i;
|
|
88
89
|
}).map(function (base) {
|
|
90
|
+
var matchingRelation = relations.find(function (_ref2) {
|
|
91
|
+
var localField = _ref2.localField;
|
|
92
|
+
return localField === base;
|
|
93
|
+
});
|
|
89
94
|
var nestedProps = props.filter(function (extraProp, i, arr) {
|
|
90
95
|
return extraProp && extraProp.startsWith("".concat(base, ".")) && arr.indexOf(extraProp) === i;
|
|
91
96
|
}).map(function (nested) {
|
|
92
97
|
return nested.split('.')[1];
|
|
93
98
|
});
|
|
99
|
+
if (matchingRelation && !nestedProps.includes('id')) nestedProps.push('id');
|
|
94
100
|
var jointNestedProps = nestedProps.join(',');
|
|
95
101
|
if (base === 'category' && shouldAddCategoryProps) return "".concat(base, "{").concat(jointNestedProps, ", ").concat(categoryProps, "}");
|
|
96
102
|
|
|
@@ -105,11 +111,11 @@ var buildComplexProps = function buildComplexProps(shouldAddCategoryProps, props
|
|
|
105
111
|
var getTypeBaseProps = function getTypeBaseProps(data, cardOptions, extraPropsHaveCategory) {
|
|
106
112
|
var isCard = !!cardOptions;
|
|
107
113
|
|
|
108
|
-
var
|
|
109
|
-
|
|
110
|
-
displayCategory =
|
|
111
|
-
|
|
112
|
-
displayThumbnail =
|
|
114
|
+
var _ref3 = cardOptions || {},
|
|
115
|
+
_ref3$displayCategory = _ref3.displayCategory,
|
|
116
|
+
displayCategory = _ref3$displayCategory === void 0 ? true : _ref3$displayCategory,
|
|
117
|
+
_ref3$displayThumbnai = _ref3.displayThumbnail,
|
|
118
|
+
displayThumbnail = _ref3$displayThumbnai === void 0 ? true : _ref3$displayThumbnai;
|
|
113
119
|
|
|
114
120
|
var shouldAddCategoryProps = isCard && displayCategory || !isCard && !extraPropsHaveCategory;
|
|
115
121
|
if (!isCard) return {
|
|
@@ -127,9 +133,10 @@ var getTypeBaseProps = function getTypeBaseProps(data, cardOptions, extraPropsHa
|
|
|
127
133
|
var typeBasedProps = [].concat(defaultProps);
|
|
128
134
|
typeBasedProps.push.apply(typeBasedProps, (0, _toConsumableArray2["default"])(getCategoyProps(shouldAddCategoryProps, hasCategory, hasPreheader)));
|
|
129
135
|
typeBasedProps.push.apply(typeBasedProps, (0, _toConsumableArray2["default"])(getContentProps(isContent)));
|
|
136
|
+
if (properties.url || dynamicProperties.url) typeBasedProps.push('url');
|
|
130
137
|
|
|
131
|
-
if (displayThumbnail && relations.find(function (
|
|
132
|
-
var localField =
|
|
138
|
+
if (displayThumbnail && relations.find(function (_ref4) {
|
|
139
|
+
var localField = _ref4.localField;
|
|
133
140
|
return localField === 'image';
|
|
134
141
|
})) {
|
|
135
142
|
typeBasedProps.push('image.id', 'image.url', 'image.data');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/helpers/build-props-query.js"],"names":["defaultProps","ID","categoryProps","checkProps","props","Object","keys","filter","prop","CATEGORY_ID","length","buildPropsQuery","data","extraProps","cardOptions","extraPropsHaveCategory","includes","getTypeBaseProps","typeBasedProps","shouldAddCategoryProps","allProps","uniqueProps","Set","basicProps","i","arr","indexOf","complexProps","buildComplexProps","join","map","nested","split","base","nestedProps","extraProp","startsWith","jointNestedProps","isCard","displayCategory","displayThumbnail","
|
|
1
|
+
{"version":3,"sources":["../../src/helpers/build-props-query.js"],"names":["defaultProps","ID","categoryProps","checkProps","props","Object","keys","filter","prop","CATEGORY_ID","length","buildPropsQuery","data","extraProps","cardOptions","extraPropsHaveCategory","includes","getTypeBaseProps","typeBasedProps","shouldAddCategoryProps","allProps","uniqueProps","Set","basicProps","i","arr","indexOf","complexProps","buildComplexProps","join","relations","getEntitySchema","map","nested","split","base","matchingRelation","find","localField","nestedProps","extraProp","startsWith","push","jointNestedProps","isCard","displayCategory","displayThumbnail","interfaces","properties","dynamicProperties","isContent","hasCategory","hasPreheader","PREHEADER_PROP","getCategoyProps","getContentProps","url","HEADLINE_PROP"],"mappings":"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","sourcesContent":["import { CATEGORY_ID, ID, PREHEADER_PROP, HEADLINE_PROP } from '../constants';\n\nconst defaultProps = [ID, 'name'];\nconst categoryProps = 'id publishedListingPage{id, url}';\n\nconst checkProps = props =>\n !!(props && Object.keys(props).filter(prop => prop === CATEGORY_ID).length);\n\nconst buildPropsQuery = (data, extraProps = [], cardOptions = null) => {\n const extraPropsHaveCategory = !!extraProps.filter(prop => prop.includes('category.')).length;\n\n const { typeBasedProps, shouldAddCategoryProps } = getTypeBaseProps(\n data,\n cardOptions,\n extraPropsHaveCategory\n );\n\n const allProps = [...typeBasedProps, ...extraProps];\n\n const uniqueProps = [...new Set([...allProps])];\n\n const basicProps = uniqueProps\n .filter(prop => prop && !prop.includes('.'))\n .filter((prop, i, arr) => arr.indexOf(prop) === i);\n const complexProps = buildComplexProps(shouldAddCategoryProps, uniqueProps, data);\n return [...basicProps, ...complexProps].join(',');\n};\n\nconst buildComplexProps = (shouldAddCategoryProps, props, { getEntitySchema: { relations } }) =>\n props\n .filter(prop => prop && prop.includes('.'))\n .map(nested => nested.split('.')[0])\n .filter((prop, i, arr) => arr.indexOf(prop) === i)\n .map(base => {\n const matchingRelation = relations.find(({ localField }) => localField === base);\n const nestedProps = props\n .filter(\n (extraProp, i, arr) =>\n extraProp && extraProp.startsWith(`${base}.`) && arr.indexOf(extraProp) === i\n )\n .map(nested => nested.split('.')[1]);\n if (matchingRelation && !nestedProps.includes('id')) nestedProps.push('id');\n\n const jointNestedProps = nestedProps.join(',');\n if (base === 'category' && shouldAddCategoryProps)\n return `${base}{${jointNestedProps}, ${categoryProps}}`;\n if (base.includes('published')) {\n return `${base}{${jointNestedProps},url}`;\n }\n return `${base}{${jointNestedProps}}`;\n });\n\nconst getTypeBaseProps = (data, cardOptions, extraPropsHaveCategory) => {\n const isCard = !!cardOptions;\n const { displayCategory = true, displayThumbnail = true } = cardOptions || {};\n\n const shouldAddCategoryProps =\n (isCard && displayCategory) || (!isCard && !extraPropsHaveCategory);\n\n if (!isCard) return { typeBasedProps: [ID], shouldAddCategoryProps };\n\n const { getEntitySchema } = data;\n const { interfaces, properties, dynamicProperties, relations } = getEntitySchema;\n\n const isContent = !!interfaces.includes('content/content');\n const hasCategory = checkProps(properties) || checkProps(dynamicProperties);\n const hasPreheader = properties[PREHEADER_PROP];\n\n const typeBasedProps = [...defaultProps];\n\n typeBasedProps.push(...getCategoyProps(shouldAddCategoryProps, hasCategory, hasPreheader));\n typeBasedProps.push(...getContentProps(isContent));\n\n if (properties.url || dynamicProperties.url) typeBasedProps.push('url');\n\n if (displayThumbnail && relations.find(({ localField }) => localField === 'image')) {\n typeBasedProps.push('image.id', 'image.url', 'image.data');\n }\n\n return { typeBasedProps, shouldAddCategoryProps };\n};\n\nconst getContentProps = isContent => (isContent ? ['url', 'sponsored', 'featured'] : []);\n\nconst getCategoyProps = (shouldAddCategoryProps, hasCategory, hasPreheader) => {\n if (!shouldAddCategoryProps) return [];\n\n const props = [];\n\n if (hasCategory) {\n props.push('category.name', 'category.listingPageId', 'category.listingPageEntity');\n }\n\n if (hasPreheader) {\n props.push(`${PREHEADER_PROP}{name}`);\n props.push(HEADLINE_PROP);\n }\n\n return props;\n};\n\nexport default buildPropsQuery;\n"],"file":"build-props-query.js"}
|