@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 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 left"
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 right"
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 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=\"arrow right\" />\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
+ {"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.map.js");
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 entity = _ref.entity,
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
- var _entity$split = entity.split('_'),
89
- _entity$split2 = (0, _slicedToArray2["default"])(_entity$split, 2),
90
- a = _entity$split2[0],
91
- b = _entity$split2[1];
92
-
93
- var entityName = capitalize(a) + capitalize(b);
94
- var rawQueryStringified = JSON.stringify({
95
- size: 0,
96
- query: {
97
- bool: {
98
- should: [{
99
- match: {
100
- docType: entity
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
- minimum_should_match: 1
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
- var _data$searchPublished = data === null || data === void 0 ? void 0 : data.searchPublishedContent,
137
- results = _data$searchPublished.results;
138
-
139
- if (results && searchTerm && searchTerm !== '') {
140
- return results.map(function (_ref2) {
141
- var name = _ref2.name,
142
- url = _ref2.url;
143
-
144
- if (name.includes(searchTerm)) {
145
- return /*#__PURE__*/_react["default"].createElement(_BlazeLink["default"], {
146
- href: url,
147
- onClick: function onClick(e) {
148
- return handleClick(e, url);
149
- }
150
- }, name);
151
- }
152
-
153
- return null;
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
- return [];
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
- entity: _propTypes["default"].string.isRequired
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 _ref = cardOptions || {},
109
- _ref$displayCategory = _ref.displayCategory,
110
- displayCategory = _ref$displayCategory === void 0 ? true : _ref$displayCategory,
111
- _ref$displayThumbnail = _ref.displayThumbnail,
112
- displayThumbnail = _ref$displayThumbnail === void 0 ? true : _ref$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 (_ref2) {
132
- var localField = _ref2.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","getEntitySchema","interfaces","properties","dynamicProperties","relations","isContent","hasCategory","hasPreheader","PREHEADER_PROP","push","getCategoyProps","getContentProps","find","localField","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);\n\n return [...basicProps, ...complexProps].join(',');\n};\n\nconst buildComplexProps = (shouldAddCategoryProps, props) =>\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 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\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 (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"}
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"}
@@ -150,6 +150,10 @@ const getPublishedContent = entity => `
150
150
  ... on ${entity} {
151
151
  id
152
152
  name
153
+ image {
154
+ url
155
+ __typename
156
+ }
153
157
  url
154
158
  __typename
155
159
  }