@blaze-cms/react-page-builder 0.120.1 → 0.121.0-alpha.1

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,17 @@
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.121.0-alpha.1](https://github.com/thebyte9/blaze/compare/v0.121.0-alpha.0...v0.121.0-alpha.1) (2022-03-02)
7
+
8
+
9
+ ### Features
10
+
11
+ * add breadcrumb component and parent hierarchy query ([#3354](https://github.com/thebyte9/blaze/issues/3354)) ([1c81cc7](https://github.com/thebyte9/blaze/commit/1c81cc7d5fec746938fa4686b9f166bb0f11a577))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [0.120.1](https://github.com/thebyte9/blaze/compare/v0.120.0...v0.120.1) (2022-02-23)
7
18
 
8
19
 
@@ -7,7 +7,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.getUser = exports.getSingleEntitySchema = exports.getSearchPublishedContent = exports.getMultipleSchema = exports.getFiles = exports.getFileById = exports.getEntitySchema = exports.getCount = exports.getAction = exports.generateSingleItemQuery = exports.generateMultiItemQuery = void 0;
10
+ exports.getUser = exports.getSingleEntitySchema = exports.getSearchPublishedContent = exports.getRecordParents = exports.getMultipleSchema = exports.getFiles = exports.getFileById = exports.getEntitySchema = exports.getCount = exports.getAction = exports.generateSingleItemQuery = exports.generateMultiItemQuery = void 0;
11
11
 
12
12
  require("core-js/modules/es.array.join.js");
13
13
 
@@ -21,7 +21,7 @@ var _client = require("@apollo/client");
21
21
 
22
22
  var _lodash = _interopRequireDefault(require("lodash.upperfirst"));
23
23
 
24
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
24
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
25
25
 
26
26
  var defaultSchemaProps = "\n id\n identifier\n properties\n dynamicProperties\n actions\n interfaces\n relations\n __typename\n";
27
27
 
@@ -41,21 +41,27 @@ exports.getEntitySchema = getEntitySchema;
41
41
  var getSingleEntitySchema = (0, _client.gql)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n query getEntitySchema($id: String!) {\n getEntitySchema: getEntitySchema(id: $id) {\n ", "\n }\n }\n"])), defaultSchemaProps);
42
42
  exports.getSingleEntitySchema = getSingleEntitySchema;
43
43
 
44
+ var getRecordParents = function getRecordParents(queryName) {
45
+ return (0, _client.gql)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\nquery getRecordParents($id: String!){\n recordParents: ", "(id: $id){\n id,\n name,\n url,\n parents {\n id,\n name\n url\n }\n }\n}"])), queryName);
46
+ };
47
+
48
+ exports.getRecordParents = getRecordParents;
49
+
44
50
  var getMultipleSchema = function getMultipleSchema(identifiers) {
45
51
  var queryString = identifiers.map(function (id) {
46
52
  return "".concat(id, ": getEntitySchema(id: \"").concat(id, "\") {\n ").concat(defaultSchemaProps, "\n }");
47
53
  }).join("\n");
48
- return (0, _client.gql)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n query {\n ", "\n }"])), queryString);
54
+ return (0, _client.gql)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n query {\n ", "\n }"])), queryString);
49
55
  };
50
56
 
51
57
  exports.getMultipleSchema = getMultipleSchema;
52
- var getFiles = (0, _client.gql)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n query getFiles($where: JSON!) {\n getFiles(where: $where) {\n id\n url\n data\n }\n }\n"])));
58
+ var getFiles = (0, _client.gql)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n query getFiles($where: JSON!) {\n getFiles(where: $where) {\n id\n url\n data\n }\n }\n"])));
53
59
  exports.getFiles = getFiles;
54
- var getFileById = (0, _client.gql)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n query getFile($id: String!) {\n getFile(id: $id) {\n id\n url\n data\n }\n }\n"])));
60
+ var getFileById = (0, _client.gql)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n query getFile($id: String!) {\n getFile(id: $id) {\n id\n url\n data\n }\n }\n"])));
55
61
  exports.getFileById = getFileById;
56
62
 
57
63
  var getCount = function getCount(action) {
58
- return (0, _client.gql)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["query countData($where: JSON!) {\n ", " (where: $where)\n }\n"])), action);
64
+ return (0, _client.gql)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["query countData($where: JSON!) {\n ", " (where: $where)\n }\n"])), action);
59
65
  };
60
66
 
61
67
  exports.getCount = getCount;
@@ -65,13 +71,13 @@ var generateQuery = function generateQuery(action, props) {
65
71
  };
66
72
 
67
73
  var generateMultiItemQuery = function generateMultiItemQuery(action, props) {
68
- return (0, _client.gql)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n query getEntityData($where: JSON){\n ", " (where: $where){\n ", "\n id\n __typename\n }\n }\n "])), action, props);
74
+ return (0, _client.gql)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n query getEntityData($where: JSON){\n ", " (where: $where){\n ", "\n id\n __typename\n }\n }\n "])), action, props);
69
75
  };
70
76
 
71
77
  exports.generateMultiItemQuery = generateMultiItemQuery;
72
78
 
73
79
  var generateSingleItemQuery = function generateSingleItemQuery(action, props) {
74
- return (0, _client.gql)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n query getEntityData($id: String!){\n entityData: ", "(id: $id){\n ", ",\n id,\n __typename\n }\n }\n "])), action, props);
80
+ return (0, _client.gql)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n query getEntityData($id: String!){\n entityData: ", "(id: $id){\n ", ",\n id,\n __typename\n }\n }\n "])), action, props);
75
81
  }; // TODO: extend function to handle properties and make them dynamic with a config schema for each entity.
76
82
 
77
83
 
@@ -79,7 +85,7 @@ exports.generateSingleItemQuery = generateSingleItemQuery;
79
85
 
80
86
  var getAction = function getAction(action, props) {
81
87
  var query = generateQuery(action, props);
82
- return (0, _client.gql)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n "])), query);
88
+ return (0, _client.gql)(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n "])), query);
83
89
  };
84
90
 
85
91
  exports.getAction = getAction;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/application/query/index.js"],"names":["defaultSchemaProps","getSearchPublishedContent","fields","gql","getUser","userProps","getEntitySchema","getSingleEntitySchema","getMultipleSchema","identifiers","queryString","map","id","join","getFiles","getFileById","getCount","action","generateQuery","props","generateMultiItemQuery","generateSingleItemQuery","getAction","query"],"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,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAC,WAAW,EAAI;AACvC,MAAMC,WAAW,GAAGD,WAAW,CAC5BE,GADiB,CAEhB,UAAAC,EAAE;AAAA,qBAAOA,EAAP,qCAAmCA,EAAnC,gCACMZ,kBADN;AAAA,GAFc,EAMjBa,IANiB,MAApB;AAOA,aAAOV,WAAP,0HAEMO,WAFN;AAID,CAZD;;;AAcA,IAAMI,QAAQ,OAAGX,WAAH,0MAAd;;AAUA,IAAMY,WAAW,OAAGZ,WAAH,iMAAjB;;;AAUA,IAAMa,QAAQ,GAAG,SAAXA,QAAW,CAAAC,MAAM;AAAA,aAAId,WAAJ,2JACjBc,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,aAAmBhB,WAAnB,mNAEzBc,MAFyB,EAGvBE,KAHuB;AAAA,CAA/B;;;;AAUA,IAAME,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACJ,MAAD,EAASE,KAAT;AAAA,aAAmBhB,WAAnB,sNAEdc,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,aAAOhB,WAAP,0GACIoB,KADJ;AAGD,CALD","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 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\nexport {\n getEntitySchema,\n getSingleEntitySchema,\n getAction,\n getFiles,\n getFileById,\n generateMultiItemQuery,\n generateSingleItemQuery,\n getSearchPublishedContent,\n getCount,\n getMultipleSchema,\n getUser\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"],"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","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\nexport {\n getEntitySchema,\n getSingleEntitySchema,\n getAction,\n getFiles,\n getFileById,\n generateMultiItemQuery,\n generateSingleItemQuery,\n getSearchPublishedContent,\n getCount,\n getMultipleSchema,\n getUser,\n getRecordParents\n};\n"],"file":"index.js"}
@@ -0,0 +1,136 @@
1
+ "use strict";
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
+ require("core-js/modules/es.weak-map.js");
10
+
11
+ require("core-js/modules/web.dom-collections.iterator.js");
12
+
13
+ require("core-js/modules/es.object.define-property.js");
14
+
15
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
16
+
17
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
18
+
19
+ var _typeof = require("@babel/runtime/helpers/typeof");
20
+
21
+ Object.defineProperty(exports, "__esModule", {
22
+ value: true
23
+ });
24
+ exports["default"] = void 0;
25
+
26
+ require("core-js/modules/es.array.concat.js");
27
+
28
+ require("core-js/modules/es.array.map.js");
29
+
30
+ require("core-js/modules/es.array.reverse.js");
31
+
32
+ require("core-js/modules/es.function.name.js");
33
+
34
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
35
+
36
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
37
+
38
+ var _react = _interopRequireWildcard(require("react"));
39
+
40
+ var _nextjsComponents = require("@blaze-cms/nextjs-components");
41
+
42
+ var _propTypes = _interopRequireDefault(require("prop-types"));
43
+
44
+ var _client = require("@apollo/client");
45
+
46
+ var _breadcrumb = _interopRequireDefault(require("@blaze-react/breadcrumb"));
47
+
48
+ var _query = require("../../application/query");
49
+
50
+ var _Wrapper = _interopRequireDefault(require("../Wrapper"));
51
+
52
+ var _utils = require("../../utils");
53
+
54
+ var _excluded = ["type"];
55
+
56
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
57
+
58
+ 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; }
59
+
60
+ var Breadcrumb = function Breadcrumb(_ref) {
61
+ var type = _ref.type,
62
+ otherProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
63
+
64
+ var _useContext = (0, _react.useContext)(_nextjsComponents.MainContext),
65
+ isPreview = _useContext.isPreview;
66
+
67
+ var parent = otherProps.parent;
68
+ var itemEntity = parent.itemEntity,
69
+ itemId = parent.itemId;
70
+
71
+ var _useQuery = (0, _client.useQuery)(_query.getSingleEntitySchema, {
72
+ variables: {
73
+ id: itemEntity
74
+ }
75
+ }),
76
+ _useQuery$data = _useQuery.data,
77
+ data = _useQuery$data === void 0 ? {} : _useQuery$data,
78
+ error = _useQuery.error,
79
+ loading = _useQuery.loading;
80
+
81
+ var _data$getEntitySchema = data.getEntitySchema,
82
+ getEntitySchema = _data$getEntitySchema === void 0 ? {} : _data$getEntitySchema;
83
+ var _getEntitySchema$acti = getEntitySchema.actions;
84
+ _getEntitySchema$acti = _getEntitySchema$acti === void 0 ? {} : _getEntitySchema$acti;
85
+ var getPublished = _getEntitySchema$acti.getPublished,
86
+ get = _getEntitySchema$acti.get;
87
+ var actionKey = isPreview ? get : getPublished || get;
88
+
89
+ var _useQuery2 = (0, _client.useQuery)((0, _query.getRecordParents)(actionKey), {
90
+ variables: {
91
+ id: itemId
92
+ },
93
+ skip: !actionKey
94
+ }),
95
+ _useQuery2$data = _useQuery2.data,
96
+ parentsData = _useQuery2$data === void 0 ? [] : _useQuery2$data,
97
+ parentsLoading = _useQuery2.loading;
98
+
99
+ if (loading || parentsLoading) return '';
100
+ if (error) return error.message;
101
+ if (!data) return null;
102
+ var modifiers = (0, _utils.getClassModifiers)('breadcrumb', otherProps);
103
+ var _parentsData$recordPa = parentsData.recordParents;
104
+ _parentsData$recordPa = _parentsData$recordPa === void 0 ? {} : _parentsData$recordPa;
105
+ var name = _parentsData$recordPa.name,
106
+ url = _parentsData$recordPa.url,
107
+ _parentsData$recordPa2 = _parentsData$recordPa.parents,
108
+ parents = _parentsData$recordPa2 === void 0 ? [] : _parentsData$recordPa2;
109
+ if (url === '/') return '';
110
+ var breadcrumbItems = [{
111
+ name: name,
112
+ url: url
113
+ }].concat((0, _toConsumableArray2["default"])(parents), [{
114
+ name: 'Home',
115
+ url: '/'
116
+ }]);
117
+ return /*#__PURE__*/_react["default"].createElement(_Wrapper["default"], {
118
+ className: type,
119
+ modifiers: modifiers
120
+ }, /*#__PURE__*/_react["default"].createElement(_breadcrumb["default"], null, breadcrumbItems.reverse().map(function (item) {
121
+ return /*#__PURE__*/_react["default"].createElement(_nextjsComponents.Link, {
122
+ key: item.url,
123
+ href: item.url
124
+ }, item.name);
125
+ })));
126
+ };
127
+
128
+ Breadcrumb.propTypes = {
129
+ type: _propTypes["default"].string
130
+ };
131
+ Breadcrumb.defaultProps = {
132
+ type: 'breadcrumb'
133
+ };
134
+ var _default = Breadcrumb;
135
+ exports["default"] = _default;
136
+ //# sourceMappingURL=Breadcrumb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Breadcrumb/Breadcrumb.js"],"names":["Breadcrumb","type","otherProps","MainContext","isPreview","parent","itemEntity","itemId","getSingleEntitySchema","variables","id","data","error","loading","getEntitySchema","actions","getPublished","get","actionKey","skip","parentsData","parentsLoading","message","modifiers","recordParents","name","url","parents","breadcrumbItems","reverse","map","item","propTypes","PropTypes","string","defaultProps"],"mappings":"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","sourcesContent":["import React, { useContext } from 'react';\nimport { MainContext, Link } from '@blaze-cms/nextjs-components';\nimport PropTypes from 'prop-types';\nimport { useQuery } from '@apollo/client';\nimport Breadcrumbs from '@blaze-react/breadcrumb';\nimport { getRecordParents, getSingleEntitySchema } from '../../application/query';\nimport Wrapper from '../Wrapper';\nimport { getClassModifiers } from '../../utils';\n\nconst Breadcrumb = ({ type, ...otherProps }) => {\n const { isPreview } = useContext(MainContext);\n const { parent } = otherProps;\n const { itemEntity, itemId } = parent;\n\n const { data = {}, error, loading } = useQuery(getSingleEntitySchema, {\n variables: { id: itemEntity }\n });\n\n const { getEntitySchema = {} } = data;\n const { actions: { getPublished, get } = {} } = getEntitySchema;\n const actionKey = isPreview ? get : getPublished || get;\n\n const { data: parentsData = [], loading: parentsLoading } = useQuery(\n getRecordParents(actionKey),\n {\n variables: { id: itemId },\n skip: !actionKey\n }\n );\n\n if (loading || parentsLoading) return '';\n if (error) return error.message;\n if (!data) return null;\n\n const modifiers = getClassModifiers('breadcrumb', otherProps);\n const { recordParents: { name, url, parents = [] } = {} } = parentsData;\n\n if (url === '/') return '';\n\n const breadcrumbItems = [\n {\n name,\n url\n },\n ...parents,\n {\n name: 'Home',\n url: '/'\n }\n ];\n\n return (\n <Wrapper className={type} modifiers={modifiers}>\n <Breadcrumbs>\n {breadcrumbItems.reverse().map(item => (\n <Link key={item.url} href={item.url}>\n {item.name}\n </Link>\n ))}\n </Breadcrumbs>\n </Wrapper>\n );\n};\n\nBreadcrumb.propTypes = {\n type: PropTypes.string\n};\n\nBreadcrumb.defaultProps = {\n type: 'breadcrumb'\n};\n\nexport default Breadcrumb;\n"],"file":"Breadcrumb.js"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _Breadcrumb = _interopRequireDefault(require("./Breadcrumb"));
13
+
14
+ var _default = _Breadcrumb["default"];
15
+ exports["default"] = _default;
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Breadcrumb/index.js"],"names":["Breadcrumb"],"mappings":";;;;;;;;;;;AAAA;;eAEeA,sB","sourcesContent":["import Breadcrumb from './Breadcrumb';\n\nexport default Breadcrumb;\n"],"file":"index.js"}
@@ -149,6 +149,11 @@ var _default = {
149
149
  return Promise.resolve().then(function () {
150
150
  return _interopRequireWildcard(require('./PasswordResetRequest'));
151
151
  });
152
+ }),
153
+ breadcrumb: (0, _dynamic["default"])(function () {
154
+ return Promise.resolve().then(function () {
155
+ return _interopRequireWildcard(require('./Breadcrumb'));
156
+ });
152
157
  })
153
158
  };
154
159
  exports["default"] = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/index.js"],"names":["banner","Banner","button","card","carousel","column","datasummary","image","row","list","socialfollow","textblock","video","wrapper","searchfilter","searchfiltersort","modal","code","login","menu","menuitem","submenu","emailconfirm","passwordreset","passwordresetrequest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;eAEe;AACbA,EAAAA,MAAM,EAAEC,kBADK;AAEbC,EAAAA,MAAM,EAAE,yBAAQ;AAAA;AAAA,6CAAqD,UAArD;AAAA;AAAA,GAAR,CAFK;AAGbC,EAAAA,IAAI,EAAE,yBAAQ;AAAA;AAAA,6CAAmD,QAAnD;AAAA;AAAA,GAAR,CAHO;AAIbC,EAAAA,QAAQ,EAAE,yBAAQ;AAAA;AAAA,6CAAuD,YAAvD;AAAA;AAAA,GAAR,CAJG;AAKbC,EAAAA,MAAM,EAAE,yBAAQ;AAAA;AAAA,6CAAqD,UAArD;AAAA;AAAA,GAAR,CALK;AAMbC,EAAAA,WAAW,EAAE,yBAAQ;AAAA;AAAA,6CAA0D,eAA1D;AAAA;AAAA,GAAR,CANA;AAObC,EAAAA,KAAK,EAAE,yBAAQ;AAAA;AAAA,6CAAoD,SAApD;AAAA;AAAA,GAAR,CAPM;AAQbC,EAAAA,GAAG,EAAE,yBAAQ;AAAA;AAAA,6CAAqD,UAArD;AAAA;AAAA,GAAR,CARQ;AASbC,EAAAA,IAAI,EAAE,yBAAQ;AAAA;AAAA,6CAAmD,QAAnD;AAAA;AAAA,GAAR,CATO;AAUbC,EAAAA,YAAY,EAAE,yBAAQ;AAAA;AAAA,6CACiC,gBADjC;AAAA;AAAA,GAAR,CAVD;AAabC,EAAAA,SAAS,EAAE,yBAAQ;AAAA;AAAA,6CAAwD,aAAxD;AAAA;AAAA,GAAR,CAbE;AAcbC,EAAAA,KAAK,EAAE,yBAAQ;AAAA;AAAA,6CAAoD,SAApD;AAAA;AAAA,GAAR,CAdM;AAebC,EAAAA,OAAO,EAAE,yBAAQ;AAAA;AAAA,6CAAsD,WAAtD;AAAA;AAAA,GAAR,CAfI;AAgBbC,EAAAA,YAAY,EAAE,yBAAQ;AAAA;AAAA,6CACiC,gBADjC;AAAA;AAAA,GAAR,CAhBD;AAmBbC,EAAAA,gBAAgB,EAAE,yBAAQ;AAAA;AAAA,6CACgC,oBADhC;AAAA;AAAA,GAAR,CAnBL;AAsBbC,EAAAA,KAAK,EAAE,yBAAQ;AAAA;AAAA,6CAAoD,SAApD;AAAA;AAAA,GAAR,CAtBM;AAuBbC,EAAAA,IAAI,EAAE,yBAAQ;AAAA;AAAA,6CAAmD,QAAnD;AAAA;AAAA,GAAR,CAvBO;AAwBbC,EAAAA,KAAK,EAAE,yBAAQ;AAAA;AAAA,6CAAoD,SAApD;AAAA;AAAA,GAAR,CAxBM;AAyBbC,EAAAA,IAAI,EAAE,yBAAQ;AAAA;AAAA,6CAAmD,QAAnD;AAAA;AAAA,GAAR,CAzBO;AA0BbC,EAAAA,QAAQ,EAAE,yBAAQ;AAAA;AAAA,6CAAuD,YAAvD;AAAA;AAAA,GAAR,CA1BG;AA2BbC,EAAAA,OAAO,EAAE,yBAAQ;AAAA;AAAA,6CAAsD,WAAtD;AAAA;AAAA,GAAR,CA3BI;AA4BbC,EAAAA,YAAY,EAAE,yBAAQ;AAAA;AAAA,6CACiC,gBADjC;AAAA;AAAA,GAAR,CA5BD;AA+BbC,EAAAA,aAAa,EAAE,yBAAQ;AAAA;AAAA,6CACiC,iBADjC;AAAA;AAAA,GAAR,CA/BF;AAkCbC,EAAAA,oBAAoB,EAAE,yBAAQ;AAAA;AAAA,6CACiC,wBADjC;AAAA;AAAA,GAAR;AAlCT,C","sourcesContent":["import dynamic from 'next/dynamic';\nimport Banner from './Banner';\n\nexport default {\n banner: Banner,\n button: dynamic(() => import(/* webpackChunkName: \"blazePbButton\" */ './Button')),\n card: dynamic(() => import(/* webpackChunkName: \"blazePbCard\" */ './Card')),\n carousel: dynamic(() => import(/* webpackChunkName: \"blazePbCarousel\" */ './Carousel')),\n column: dynamic(() => import(/* webpackChunkName: \"blazePbLayout\" */ './Layout')),\n datasummary: dynamic(() => import(/* webpackChunkName: \"blazePbDataSummary\" */ './DataSummary')),\n image: dynamic(() => import(/* webpackChunkName: \"blazePbImage\" */ './Image')),\n row: dynamic(() => import(/* webpackChunkName: \"blazePbLayout\" */ './Layout')),\n list: dynamic(() => import(/* webpackChunkName: \"blazePbList\" */ './List')),\n socialfollow: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSocialFollow\" */ './SocialFollow')\n ),\n textblock: dynamic(() => import(/* webpackChunkName: \"blazePbTextBlock\" */ './TextBlock')),\n video: dynamic(() => import(/* webpackChunkName: \"blazePbVideo\" */ './Video')),\n wrapper: dynamic(() => import(/* webpackChunkName: \"blazePbWrapper\" */ './Wrapper')),\n searchfilter: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSearchFilter\" */ './SearchFilter')\n ),\n searchfiltersort: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSearchFilteSort\" */ './SearchFilterSort')\n ),\n modal: dynamic(() => import(/* webpackChunkName: \"blazePbModal\" */ './Modal')),\n code: dynamic(() => import(/* webpackChunkName: \"blazePbCode\" */ './Code')),\n login: dynamic(() => import(/* webpackChunkName: \"blazePbLogin\" */ './Login')),\n menu: dynamic(() => import(/* webpackChunkName: \"blazePbMenu\" */ './Menu')),\n menuitem: dynamic(() => import(/* webpackChunkName: \"blazePbMenuItem\" */ './MenuItem')),\n submenu: dynamic(() => import(/* webpackChunkName: \"blazePbSubMenu\" */ './SubMenu')),\n emailconfirm: dynamic(() =>\n import(/* webpackChunkName: \"blazePbEmailConfirm\" */ './EmailConfirm')\n ),\n passwordreset: dynamic(() =>\n import(/* webpackChunkName: \"blazePbPasswordReset\" */ './PasswordReset')\n ),\n passwordresetrequest: dynamic(() =>\n import(/* webpackChunkName: \"blazePbPasswordResetRequest\" */ './PasswordResetRequest')\n )\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/components/index.js"],"names":["banner","Banner","button","card","carousel","column","datasummary","image","row","list","socialfollow","textblock","video","wrapper","searchfilter","searchfiltersort","modal","code","login","menu","menuitem","submenu","emailconfirm","passwordreset","passwordresetrequest","breadcrumb"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;eAEe;AACbA,EAAAA,MAAM,EAAEC,kBADK;AAEbC,EAAAA,MAAM,EAAE,yBAAQ;AAAA;AAAA,6CAAqD,UAArD;AAAA;AAAA,GAAR,CAFK;AAGbC,EAAAA,IAAI,EAAE,yBAAQ;AAAA;AAAA,6CAAmD,QAAnD;AAAA;AAAA,GAAR,CAHO;AAIbC,EAAAA,QAAQ,EAAE,yBAAQ;AAAA;AAAA,6CAAuD,YAAvD;AAAA;AAAA,GAAR,CAJG;AAKbC,EAAAA,MAAM,EAAE,yBAAQ;AAAA;AAAA,6CAAqD,UAArD;AAAA;AAAA,GAAR,CALK;AAMbC,EAAAA,WAAW,EAAE,yBAAQ;AAAA;AAAA,6CAA0D,eAA1D;AAAA;AAAA,GAAR,CANA;AAObC,EAAAA,KAAK,EAAE,yBAAQ;AAAA;AAAA,6CAAoD,SAApD;AAAA;AAAA,GAAR,CAPM;AAQbC,EAAAA,GAAG,EAAE,yBAAQ;AAAA;AAAA,6CAAqD,UAArD;AAAA;AAAA,GAAR,CARQ;AASbC,EAAAA,IAAI,EAAE,yBAAQ;AAAA;AAAA,6CAAmD,QAAnD;AAAA;AAAA,GAAR,CATO;AAUbC,EAAAA,YAAY,EAAE,yBAAQ;AAAA;AAAA,6CACiC,gBADjC;AAAA;AAAA,GAAR,CAVD;AAabC,EAAAA,SAAS,EAAE,yBAAQ;AAAA;AAAA,6CAAwD,aAAxD;AAAA;AAAA,GAAR,CAbE;AAcbC,EAAAA,KAAK,EAAE,yBAAQ;AAAA;AAAA,6CAAoD,SAApD;AAAA;AAAA,GAAR,CAdM;AAebC,EAAAA,OAAO,EAAE,yBAAQ;AAAA;AAAA,6CAAsD,WAAtD;AAAA;AAAA,GAAR,CAfI;AAgBbC,EAAAA,YAAY,EAAE,yBAAQ;AAAA;AAAA,6CACiC,gBADjC;AAAA;AAAA,GAAR,CAhBD;AAmBbC,EAAAA,gBAAgB,EAAE,yBAAQ;AAAA;AAAA,6CACgC,oBADhC;AAAA;AAAA,GAAR,CAnBL;AAsBbC,EAAAA,KAAK,EAAE,yBAAQ;AAAA;AAAA,6CAAoD,SAApD;AAAA;AAAA,GAAR,CAtBM;AAuBbC,EAAAA,IAAI,EAAE,yBAAQ;AAAA;AAAA,6CAAmD,QAAnD;AAAA;AAAA,GAAR,CAvBO;AAwBbC,EAAAA,KAAK,EAAE,yBAAQ;AAAA;AAAA,6CAAoD,SAApD;AAAA;AAAA,GAAR,CAxBM;AAyBbC,EAAAA,IAAI,EAAE,yBAAQ;AAAA;AAAA,6CAAmD,QAAnD;AAAA;AAAA,GAAR,CAzBO;AA0BbC,EAAAA,QAAQ,EAAE,yBAAQ;AAAA;AAAA,6CAAuD,YAAvD;AAAA;AAAA,GAAR,CA1BG;AA2BbC,EAAAA,OAAO,EAAE,yBAAQ;AAAA;AAAA,6CAAsD,WAAtD;AAAA;AAAA,GAAR,CA3BI;AA4BbC,EAAAA,YAAY,EAAE,yBAAQ;AAAA;AAAA,6CACiC,gBADjC;AAAA;AAAA,GAAR,CA5BD;AA+BbC,EAAAA,aAAa,EAAE,yBAAQ;AAAA;AAAA,6CACiC,iBADjC;AAAA;AAAA,GAAR,CA/BF;AAkCbC,EAAAA,oBAAoB,EAAE,yBAAQ;AAAA;AAAA,6CACiC,wBADjC;AAAA;AAAA,GAAR,CAlCT;AAqCbC,EAAAA,UAAU,EAAE,yBAAQ;AAAA;AAAA,6CAAyD,cAAzD;AAAA;AAAA,GAAR;AArCC,C","sourcesContent":["import dynamic from 'next/dynamic';\nimport Banner from './Banner';\n\nexport default {\n banner: Banner,\n button: dynamic(() => import(/* webpackChunkName: \"blazePbButton\" */ './Button')),\n card: dynamic(() => import(/* webpackChunkName: \"blazePbCard\" */ './Card')),\n carousel: dynamic(() => import(/* webpackChunkName: \"blazePbCarousel\" */ './Carousel')),\n column: dynamic(() => import(/* webpackChunkName: \"blazePbLayout\" */ './Layout')),\n datasummary: dynamic(() => import(/* webpackChunkName: \"blazePbDataSummary\" */ './DataSummary')),\n image: dynamic(() => import(/* webpackChunkName: \"blazePbImage\" */ './Image')),\n row: dynamic(() => import(/* webpackChunkName: \"blazePbLayout\" */ './Layout')),\n list: dynamic(() => import(/* webpackChunkName: \"blazePbList\" */ './List')),\n socialfollow: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSocialFollow\" */ './SocialFollow')\n ),\n textblock: dynamic(() => import(/* webpackChunkName: \"blazePbTextBlock\" */ './TextBlock')),\n video: dynamic(() => import(/* webpackChunkName: \"blazePbVideo\" */ './Video')),\n wrapper: dynamic(() => import(/* webpackChunkName: \"blazePbWrapper\" */ './Wrapper')),\n searchfilter: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSearchFilter\" */ './SearchFilter')\n ),\n searchfiltersort: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSearchFilteSort\" */ './SearchFilterSort')\n ),\n modal: dynamic(() => import(/* webpackChunkName: \"blazePbModal\" */ './Modal')),\n code: dynamic(() => import(/* webpackChunkName: \"blazePbCode\" */ './Code')),\n login: dynamic(() => import(/* webpackChunkName: \"blazePbLogin\" */ './Login')),\n menu: dynamic(() => import(/* webpackChunkName: \"blazePbMenu\" */ './Menu')),\n menuitem: dynamic(() => import(/* webpackChunkName: \"blazePbMenuItem\" */ './MenuItem')),\n submenu: dynamic(() => import(/* webpackChunkName: \"blazePbSubMenu\" */ './SubMenu')),\n emailconfirm: dynamic(() =>\n import(/* webpackChunkName: \"blazePbEmailConfirm\" */ './EmailConfirm')\n ),\n passwordreset: dynamic(() =>\n import(/* webpackChunkName: \"blazePbPasswordReset\" */ './PasswordReset')\n ),\n passwordresetrequest: dynamic(() =>\n import(/* webpackChunkName: \"blazePbPasswordResetRequest\" */ './PasswordResetRequest')\n ),\n breadcrumb: dynamic(() => import(/* webpackChunkName: \"blazePbBreadcrumb\" */ './Breadcrumb'))\n};\n"],"file":"index.js"}
@@ -43,6 +43,20 @@ const getSingleEntitySchema = gql`
43
43
  }
44
44
  `;
45
45
 
46
+ const getRecordParents = queryName => gql`
47
+ query getRecordParents($id: String!){
48
+ recordParents: ${queryName}(id: $id){
49
+ id,
50
+ name,
51
+ url,
52
+ parents {
53
+ id,
54
+ name
55
+ url
56
+ }
57
+ }
58
+ }`;
59
+
46
60
  const getMultipleSchema = identifiers => {
47
61
  const queryString = identifiers.map(id => `${id}: getEntitySchema(id: "${id}") {
48
62
  ${defaultSchemaProps}
@@ -119,5 +133,5 @@ const getAction = (action, props) => {
119
133
  `;
120
134
  };
121
135
 
122
- export { getEntitySchema, getSingleEntitySchema, getAction, getFiles, getFileById, generateMultiItemQuery, generateSingleItemQuery, getSearchPublishedContent, getCount, getMultipleSchema, getUser };
136
+ export { getEntitySchema, getSingleEntitySchema, getAction, getFiles, getFileById, generateMultiItemQuery, generateSingleItemQuery, getSearchPublishedContent, getCount, getMultipleSchema, getUser, getRecordParents };
123
137
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/application/query/index.js"],"names":["gql","upperFirst","defaultSchemaProps","getSearchPublishedContent","fields","getUser","userProps","getEntitySchema","getSingleEntitySchema","getMultipleSchema","identifiers","queryString","map","id","join","getFiles","getFileById","getCount","action","generateQuery","props","generateMultiItemQuery","generateSingleItemQuery","getAction","query"],"mappings":"AAAA,SAASA,GAAT,QAAoB,gBAApB;AACA,OAAOC,UAAP,MAAuB,mBAAvB;AAEA,MAAMC,kBAAkB,GAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CATA;;AAWA,MAAMC,yBAAyB,GAAGC,MAAM,IAAIJ,GAAI;AAChD;AACA;AACA,UAAUI,MAAO;AACjB;AACA;AACA,GANA;;AAQA,MAAMC,OAAO,GAAGC,SAAS,IAAIN,GAAI;AACjC;AACA;AACA;AACA,QAAQM,SAAU;AAClB;AACA;AACA,CAPA;;AASA,MAAMC,eAAe,GAAGP,GAAI;AAC5B;AACA;AACA,QAAQE,kBAAmB;AAC3B;AACA;AACA,CANA;AAQA,MAAMM,qBAAqB,GAAGR,GAAI;AAClC;AACA;AACA,QAAQE,kBAAmB;AAC3B;AACA;AACA,CANA;;AAQA,MAAMO,iBAAiB,GAAGC,WAAW,IAAI;AACvC,QAAMC,WAAW,GAAGD,WAAW,CAC5BE,GADiB,CAEhBC,EAAE,IAAK,GAAEA,EAAG,0BAAyBA,EAAG;AAC9C,cAAcX,kBAAmB;AACjC,QAJsB,EAMjBY,IANiB,CAMX,IANW,CAApB;AAOA,SAAOd,GAAI;AACb;AACA,QAAQW,WAAY;AACpB,MAHE;AAID,CAZD;;AAcA,MAAMI,QAAQ,GAAGf,GAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;AAUA,MAAMgB,WAAW,GAAGhB,GAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;;AAUA,MAAMiB,QAAQ,GAAGC,MAAM,IAAIlB,GAAI;AAC/B,MAAMkB,MAAO;AACb;AACA,CAHA;;AAKA,MAAMC,aAAa,GAAG,CAACD,MAAD,EAASE,KAAT,KAAoB;AAC1C;AACA;AACA;AACA;AACA,cAAcnB,UAAU,CAACiB,MAAD,CAAS;AACjC,MAAMA,MAAO;AACb,QAAQE,KAAM;AACd;AACA;AACA;AACA;AACA,GAZA;;AAaA,MAAMC,sBAAsB,GAAG,CAACH,MAAD,EAASE,KAAT,KAAmBpB,GAAI;AACtD;AACA,MAAMkB,MAAO;AACb,QAAQE,KAAM;AACd;AACA;AACA;AACA;AACA,GARA;;AAUA,MAAME,uBAAuB,GAAG,CAACJ,MAAD,EAASE,KAAT,KAAmBpB,GAAI;AACvD;AACA,kBAAkBkB,MAAO;AACzB,MAAME,KAAM;AACZ;AACA;AACA;AACA;AACA,GARA,C,CAUA;;;AACA,MAAMG,SAAS,GAAG,CAACL,MAAD,EAASE,KAAT,KAAmB;AACnC,QAAMI,KAAK,GAAGL,aAAa,CAACD,MAAD,EAASE,KAAT,CAA3B;AACA,SAAOpB,GAAI;AACb,MAAMwB,KAAM;AACZ,GAFE;AAGD,CALD;;AAOA,SACEjB,eADF,EAEEC,qBAFF,EAGEe,SAHF,EAIER,QAJF,EAKEC,WALF,EAMEK,sBANF,EAOEC,uBAPF,EAQEnB,yBARF,EASEc,QATF,EAUER,iBAVF,EAWEJ,OAXF","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 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\nexport {\n getEntitySchema,\n getSingleEntitySchema,\n getAction,\n getFiles,\n getFileById,\n generateMultiItemQuery,\n generateSingleItemQuery,\n getSearchPublishedContent,\n getCount,\n getMultipleSchema,\n getUser\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/application/query/index.js"],"names":["gql","upperFirst","defaultSchemaProps","getSearchPublishedContent","fields","getUser","userProps","getEntitySchema","getSingleEntitySchema","getRecordParents","queryName","getMultipleSchema","identifiers","queryString","map","id","join","getFiles","getFileById","getCount","action","generateQuery","props","generateMultiItemQuery","generateSingleItemQuery","getAction","query"],"mappings":"AAAA,SAASA,GAAT,QAAoB,gBAApB;AACA,OAAOC,UAAP,MAAuB,mBAAvB;AAEA,MAAMC,kBAAkB,GAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CATA;;AAWA,MAAMC,yBAAyB,GAAGC,MAAM,IAAIJ,GAAI;AAChD;AACA;AACA,UAAUI,MAAO;AACjB;AACA;AACA,GANA;;AAQA,MAAMC,OAAO,GAAGC,SAAS,IAAIN,GAAI;AACjC;AACA;AACA;AACA,QAAQM,SAAU;AAClB;AACA;AACA,CAPA;;AASA,MAAMC,eAAe,GAAGP,GAAI;AAC5B;AACA;AACA,QAAQE,kBAAmB;AAC3B;AACA;AACA,CANA;AAQA,MAAMM,qBAAqB,GAAGR,GAAI;AAClC;AACA;AACA,QAAQE,kBAAmB;AAC3B;AACA;AACA,CANA;;AAQA,MAAMO,gBAAgB,GAAGC,SAAS,IAAIV,GAAI;AAC1C;AACA,mBAAmBU,SAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAZA;;AAcA,MAAMC,iBAAiB,GAAGC,WAAW,IAAI;AACvC,QAAMC,WAAW,GAAGD,WAAW,CAC5BE,GADiB,CAEhBC,EAAE,IAAK,GAAEA,EAAG,0BAAyBA,EAAG;AAC9C,cAAcb,kBAAmB;AACjC,QAJsB,EAMjBc,IANiB,CAMX,IANW,CAApB;AAOA,SAAOhB,GAAI;AACb;AACA,QAAQa,WAAY;AACpB,MAHE;AAID,CAZD;;AAcA,MAAMI,QAAQ,GAAGjB,GAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;AAUA,MAAMkB,WAAW,GAAGlB,GAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;;AAUA,MAAMmB,QAAQ,GAAGC,MAAM,IAAIpB,GAAI;AAC/B,MAAMoB,MAAO;AACb;AACA,CAHA;;AAKA,MAAMC,aAAa,GAAG,CAACD,MAAD,EAASE,KAAT,KAAoB;AAC1C;AACA;AACA;AACA;AACA,cAAcrB,UAAU,CAACmB,MAAD,CAAS;AACjC,MAAMA,MAAO;AACb,QAAQE,KAAM;AACd;AACA;AACA;AACA;AACA,GAZA;;AAaA,MAAMC,sBAAsB,GAAG,CAACH,MAAD,EAASE,KAAT,KAAmBtB,GAAI;AACtD;AACA,MAAMoB,MAAO;AACb,QAAQE,KAAM;AACd;AACA;AACA;AACA;AACA,GARA;;AAUA,MAAME,uBAAuB,GAAG,CAACJ,MAAD,EAASE,KAAT,KAAmBtB,GAAI;AACvD;AACA,kBAAkBoB,MAAO;AACzB,MAAME,KAAM;AACZ;AACA;AACA;AACA;AACA,GARA,C,CAUA;;;AACA,MAAMG,SAAS,GAAG,CAACL,MAAD,EAASE,KAAT,KAAmB;AACnC,QAAMI,KAAK,GAAGL,aAAa,CAACD,MAAD,EAASE,KAAT,CAA3B;AACA,SAAOtB,GAAI;AACb,MAAM0B,KAAM;AACZ,GAFE;AAGD,CALD;;AAOA,SACEnB,eADF,EAEEC,qBAFF,EAGEiB,SAHF,EAIER,QAJF,EAKEC,WALF,EAMEK,sBANF,EAOEC,uBAPF,EAQErB,yBARF,EASEgB,QATF,EAUER,iBAVF,EAWEN,OAXF,EAYEI,gBAZF","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\nexport {\n getEntitySchema,\n getSingleEntitySchema,\n getAction,\n getFiles,\n getFileById,\n generateMultiItemQuery,\n generateSingleItemQuery,\n getSearchPublishedContent,\n getCount,\n getMultipleSchema,\n getUser,\n getRecordParents\n};\n"],"file":"index.js"}
@@ -0,0 +1,91 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
+ const _excluded = ["type"];
3
+ import React, { useContext } from 'react';
4
+ import { MainContext, Link } from '@blaze-cms/nextjs-components';
5
+ import PropTypes from 'prop-types';
6
+ import { useQuery } from '@apollo/client';
7
+ import Breadcrumbs from '@blaze-react/breadcrumb';
8
+ import { getRecordParents, getSingleEntitySchema } from '../../application/query';
9
+ import Wrapper from '../Wrapper';
10
+ import { getClassModifiers } from '../../utils';
11
+
12
+ const Breadcrumb = _ref => {
13
+ let {
14
+ type
15
+ } = _ref,
16
+ otherProps = _objectWithoutProperties(_ref, _excluded);
17
+
18
+ const {
19
+ isPreview
20
+ } = useContext(MainContext);
21
+ const {
22
+ parent
23
+ } = otherProps;
24
+ const {
25
+ itemEntity,
26
+ itemId
27
+ } = parent;
28
+ const {
29
+ data = {},
30
+ error,
31
+ loading
32
+ } = useQuery(getSingleEntitySchema, {
33
+ variables: {
34
+ id: itemEntity
35
+ }
36
+ });
37
+ const {
38
+ getEntitySchema = {}
39
+ } = data;
40
+ const {
41
+ actions: {
42
+ getPublished,
43
+ get
44
+ } = {}
45
+ } = getEntitySchema;
46
+ const actionKey = isPreview ? get : getPublished || get;
47
+ const {
48
+ data: parentsData = [],
49
+ loading: parentsLoading
50
+ } = useQuery(getRecordParents(actionKey), {
51
+ variables: {
52
+ id: itemId
53
+ },
54
+ skip: !actionKey
55
+ });
56
+ if (loading || parentsLoading) return '';
57
+ if (error) return error.message;
58
+ if (!data) return null;
59
+ const modifiers = getClassModifiers('breadcrumb', otherProps);
60
+ const {
61
+ recordParents: {
62
+ name,
63
+ url,
64
+ parents = []
65
+ } = {}
66
+ } = parentsData;
67
+ if (url === '/') return '';
68
+ const breadcrumbItems = [{
69
+ name,
70
+ url
71
+ }, ...parents, {
72
+ name: 'Home',
73
+ url: '/'
74
+ }];
75
+ return /*#__PURE__*/React.createElement(Wrapper, {
76
+ className: type,
77
+ modifiers: modifiers
78
+ }, /*#__PURE__*/React.createElement(Breadcrumbs, null, breadcrumbItems.reverse().map(item => /*#__PURE__*/React.createElement(Link, {
79
+ key: item.url,
80
+ href: item.url
81
+ }, item.name))));
82
+ };
83
+
84
+ Breadcrumb.propTypes = {
85
+ type: PropTypes.string
86
+ };
87
+ Breadcrumb.defaultProps = {
88
+ type: 'breadcrumb'
89
+ };
90
+ export default Breadcrumb;
91
+ //# sourceMappingURL=Breadcrumb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Breadcrumb/Breadcrumb.js"],"names":["React","useContext","MainContext","Link","PropTypes","useQuery","Breadcrumbs","getRecordParents","getSingleEntitySchema","Wrapper","getClassModifiers","Breadcrumb","type","otherProps","isPreview","parent","itemEntity","itemId","data","error","loading","variables","id","getEntitySchema","actions","getPublished","get","actionKey","parentsData","parentsLoading","skip","message","modifiers","recordParents","name","url","parents","breadcrumbItems","reverse","map","item","propTypes","string","defaultProps"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,SAASC,WAAT,EAAsBC,IAAtB,QAAkC,8BAAlC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,QAAT,QAAyB,gBAAzB;AACA,OAAOC,WAAP,MAAwB,yBAAxB;AACA,SAASC,gBAAT,EAA2BC,qBAA3B,QAAwD,yBAAxD;AACA,OAAOC,OAAP,MAAoB,YAApB;AACA,SAASC,iBAAT,QAAkC,aAAlC;;AAEA,MAAMC,UAAU,GAAG,QAA6B;AAAA,MAA5B;AAAEC,IAAAA;AAAF,GAA4B;AAAA,MAAjBC,UAAiB;;AAC9C,QAAM;AAAEC,IAAAA;AAAF,MAAgBb,UAAU,CAACC,WAAD,CAAhC;AACA,QAAM;AAAEa,IAAAA;AAAF,MAAaF,UAAnB;AACA,QAAM;AAAEG,IAAAA,UAAF;AAAcC,IAAAA;AAAd,MAAyBF,MAA/B;AAEA,QAAM;AAAEG,IAAAA,IAAI,GAAG,EAAT;AAAaC,IAAAA,KAAb;AAAoBC,IAAAA;AAApB,MAAgCf,QAAQ,CAACG,qBAAD,EAAwB;AACpEa,IAAAA,SAAS,EAAE;AAAEC,MAAAA,EAAE,EAAEN;AAAN;AADyD,GAAxB,CAA9C;AAIA,QAAM;AAAEO,IAAAA,eAAe,GAAG;AAApB,MAA2BL,IAAjC;AACA,QAAM;AAAEM,IAAAA,OAAO,EAAE;AAAEC,MAAAA,YAAF;AAAgBC,MAAAA;AAAhB,QAAwB;AAAnC,MAA0CH,eAAhD;AACA,QAAMI,SAAS,GAAGb,SAAS,GAAGY,GAAH,GAASD,YAAY,IAAIC,GAApD;AAEA,QAAM;AAAER,IAAAA,IAAI,EAAEU,WAAW,GAAG,EAAtB;AAA0BR,IAAAA,OAAO,EAAES;AAAnC,MAAsDxB,QAAQ,CAClEE,gBAAgB,CAACoB,SAAD,CADkD,EAElE;AACEN,IAAAA,SAAS,EAAE;AAAEC,MAAAA,EAAE,EAAEL;AAAN,KADb;AAEEa,IAAAA,IAAI,EAAE,CAACH;AAFT,GAFkE,CAApE;AAQA,MAAIP,OAAO,IAAIS,cAAf,EAA+B,OAAO,EAAP;AAC/B,MAAIV,KAAJ,EAAW,OAAOA,KAAK,CAACY,OAAb;AACX,MAAI,CAACb,IAAL,EAAW,OAAO,IAAP;AAEX,QAAMc,SAAS,GAAGtB,iBAAiB,CAAC,YAAD,EAAeG,UAAf,CAAnC;AACA,QAAM;AAAEoB,IAAAA,aAAa,EAAE;AAAEC,MAAAA,IAAF;AAAQC,MAAAA,GAAR;AAAaC,MAAAA,OAAO,GAAG;AAAvB,QAA8B;AAA/C,MAAsDR,WAA5D;AAEA,MAAIO,GAAG,KAAK,GAAZ,EAAiB,OAAO,EAAP;AAEjB,QAAME,eAAe,GAAG,CACtB;AACEH,IAAAA,IADF;AAEEC,IAAAA;AAFF,GADsB,EAKtB,GAAGC,OALmB,EAMtB;AACEF,IAAAA,IAAI,EAAE,MADR;AAEEC,IAAAA,GAAG,EAAE;AAFP,GANsB,CAAxB;AAYA,sBACE,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAEvB,IAApB;AAA0B,IAAA,SAAS,EAAEoB;AAArC,kBACE,oBAAC,WAAD,QACGK,eAAe,CAACC,OAAhB,GAA0BC,GAA1B,CAA8BC,IAAI,iBACjC,oBAAC,IAAD;AAAM,IAAA,GAAG,EAAEA,IAAI,CAACL,GAAhB;AAAqB,IAAA,IAAI,EAAEK,IAAI,CAACL;AAAhC,KACGK,IAAI,CAACN,IADR,CADD,CADH,CADF,CADF;AAWD,CArDD;;AAuDAvB,UAAU,CAAC8B,SAAX,GAAuB;AACrB7B,EAAAA,IAAI,EAAER,SAAS,CAACsC;AADK,CAAvB;AAIA/B,UAAU,CAACgC,YAAX,GAA0B;AACxB/B,EAAAA,IAAI,EAAE;AADkB,CAA1B;AAIA,eAAeD,UAAf","sourcesContent":["import React, { useContext } from 'react';\nimport { MainContext, Link } from '@blaze-cms/nextjs-components';\nimport PropTypes from 'prop-types';\nimport { useQuery } from '@apollo/client';\nimport Breadcrumbs from '@blaze-react/breadcrumb';\nimport { getRecordParents, getSingleEntitySchema } from '../../application/query';\nimport Wrapper from '../Wrapper';\nimport { getClassModifiers } from '../../utils';\n\nconst Breadcrumb = ({ type, ...otherProps }) => {\n const { isPreview } = useContext(MainContext);\n const { parent } = otherProps;\n const { itemEntity, itemId } = parent;\n\n const { data = {}, error, loading } = useQuery(getSingleEntitySchema, {\n variables: { id: itemEntity }\n });\n\n const { getEntitySchema = {} } = data;\n const { actions: { getPublished, get } = {} } = getEntitySchema;\n const actionKey = isPreview ? get : getPublished || get;\n\n const { data: parentsData = [], loading: parentsLoading } = useQuery(\n getRecordParents(actionKey),\n {\n variables: { id: itemId },\n skip: !actionKey\n }\n );\n\n if (loading || parentsLoading) return '';\n if (error) return error.message;\n if (!data) return null;\n\n const modifiers = getClassModifiers('breadcrumb', otherProps);\n const { recordParents: { name, url, parents = [] } = {} } = parentsData;\n\n if (url === '/') return '';\n\n const breadcrumbItems = [\n {\n name,\n url\n },\n ...parents,\n {\n name: 'Home',\n url: '/'\n }\n ];\n\n return (\n <Wrapper className={type} modifiers={modifiers}>\n <Breadcrumbs>\n {breadcrumbItems.reverse().map(item => (\n <Link key={item.url} href={item.url}>\n {item.name}\n </Link>\n ))}\n </Breadcrumbs>\n </Wrapper>\n );\n};\n\nBreadcrumb.propTypes = {\n type: PropTypes.string\n};\n\nBreadcrumb.defaultProps = {\n type: 'breadcrumb'\n};\n\nexport default Breadcrumb;\n"],"file":"Breadcrumb.js"}
@@ -0,0 +1,3 @@
1
+ import Breadcrumb from './Breadcrumb';
2
+ export default Breadcrumb;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Breadcrumb/index.js"],"names":["Breadcrumb"],"mappings":"AAAA,OAAOA,UAAP,MAAuB,cAAvB;AAEA,eAAeA,UAAf","sourcesContent":["import Breadcrumb from './Breadcrumb';\n\nexport default Breadcrumb;\n"],"file":"index.js"}
@@ -70,6 +70,9 @@ export default {
70
70
  './PasswordReset')),
71
71
  passwordresetrequest: dynamic(() => import(
72
72
  /* webpackChunkName: "blazePbPasswordResetRequest" */
73
- './PasswordResetRequest'))
73
+ './PasswordResetRequest')),
74
+ breadcrumb: dynamic(() => import(
75
+ /* webpackChunkName: "blazePbBreadcrumb" */
76
+ './Breadcrumb'))
74
77
  };
75
78
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/index.js"],"names":["dynamic","Banner","banner","button","card","carousel","column","datasummary","image","row","list","socialfollow","textblock","video","wrapper","searchfilter","searchfiltersort","modal","code","login","menu","menuitem","submenu","emailconfirm","passwordreset","passwordresetrequest"],"mappings":"AAAA,OAAOA,OAAP,MAAoB,cAApB;AACA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,eAAe;AACbC,EAAAA,MAAM,EAAED,MADK;AAEbE,EAAAA,MAAM,EAAEH,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CAFF;AAGbI,EAAAA,IAAI,EAAEJ,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CAHA;AAIbK,EAAAA,QAAQ,EAAEL,OAAO,CAAC,MAAM;AAAO;AAA0C,cAAjD,CAAP,CAJJ;AAKbM,EAAAA,MAAM,EAAEN,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CALF;AAMbO,EAAAA,WAAW,EAAEP,OAAO,CAAC,MAAM;AAAO;AAA6C,iBAApD,CAAP,CANP;AAObQ,EAAAA,KAAK,EAAER,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAPD;AAQbS,EAAAA,GAAG,EAAET,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CARC;AASbU,EAAAA,IAAI,EAAEV,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CATA;AAUbW,EAAAA,YAAY,EAAEX,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CAVR;AAabY,EAAAA,SAAS,EAAEZ,OAAO,CAAC,MAAM;AAAO;AAA2C,eAAlD,CAAP,CAbL;AAcba,EAAAA,KAAK,EAAEb,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAdD;AAebc,EAAAA,OAAO,EAAEd,OAAO,CAAC,MAAM;AAAO;AAAyC,aAAhD,CAAP,CAfH;AAgBbe,EAAAA,YAAY,EAAEf,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CAhBR;AAmBbgB,EAAAA,gBAAgB,EAAEhB,OAAO,CAAC,MACxB;AAAO;AAAiD,sBAAxD,CADuB,CAnBZ;AAsBbiB,EAAAA,KAAK,EAAEjB,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAtBD;AAuBbkB,EAAAA,IAAI,EAAElB,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CAvBA;AAwBbmB,EAAAA,KAAK,EAAEnB,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAxBD;AAyBboB,EAAAA,IAAI,EAAEpB,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CAzBA;AA0BbqB,EAAAA,QAAQ,EAAErB,OAAO,CAAC,MAAM;AAAO;AAA0C,cAAjD,CAAP,CA1BJ;AA2BbsB,EAAAA,OAAO,EAAEtB,OAAO,CAAC,MAAM;AAAO;AAAyC,aAAhD,CAAP,CA3BH;AA4BbuB,EAAAA,YAAY,EAAEvB,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CA5BR;AA+BbwB,EAAAA,aAAa,EAAExB,OAAO,CAAC,MACrB;AAAO;AAA+C,mBAAtD,CADoB,CA/BT;AAkCbyB,EAAAA,oBAAoB,EAAEzB,OAAO,CAAC,MAC5B;AAAO;AAAsD,0BAA7D,CAD2B;AAlChB,CAAf","sourcesContent":["import dynamic from 'next/dynamic';\nimport Banner from './Banner';\n\nexport default {\n banner: Banner,\n button: dynamic(() => import(/* webpackChunkName: \"blazePbButton\" */ './Button')),\n card: dynamic(() => import(/* webpackChunkName: \"blazePbCard\" */ './Card')),\n carousel: dynamic(() => import(/* webpackChunkName: \"blazePbCarousel\" */ './Carousel')),\n column: dynamic(() => import(/* webpackChunkName: \"blazePbLayout\" */ './Layout')),\n datasummary: dynamic(() => import(/* webpackChunkName: \"blazePbDataSummary\" */ './DataSummary')),\n image: dynamic(() => import(/* webpackChunkName: \"blazePbImage\" */ './Image')),\n row: dynamic(() => import(/* webpackChunkName: \"blazePbLayout\" */ './Layout')),\n list: dynamic(() => import(/* webpackChunkName: \"blazePbList\" */ './List')),\n socialfollow: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSocialFollow\" */ './SocialFollow')\n ),\n textblock: dynamic(() => import(/* webpackChunkName: \"blazePbTextBlock\" */ './TextBlock')),\n video: dynamic(() => import(/* webpackChunkName: \"blazePbVideo\" */ './Video')),\n wrapper: dynamic(() => import(/* webpackChunkName: \"blazePbWrapper\" */ './Wrapper')),\n searchfilter: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSearchFilter\" */ './SearchFilter')\n ),\n searchfiltersort: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSearchFilteSort\" */ './SearchFilterSort')\n ),\n modal: dynamic(() => import(/* webpackChunkName: \"blazePbModal\" */ './Modal')),\n code: dynamic(() => import(/* webpackChunkName: \"blazePbCode\" */ './Code')),\n login: dynamic(() => import(/* webpackChunkName: \"blazePbLogin\" */ './Login')),\n menu: dynamic(() => import(/* webpackChunkName: \"blazePbMenu\" */ './Menu')),\n menuitem: dynamic(() => import(/* webpackChunkName: \"blazePbMenuItem\" */ './MenuItem')),\n submenu: dynamic(() => import(/* webpackChunkName: \"blazePbSubMenu\" */ './SubMenu')),\n emailconfirm: dynamic(() =>\n import(/* webpackChunkName: \"blazePbEmailConfirm\" */ './EmailConfirm')\n ),\n passwordreset: dynamic(() =>\n import(/* webpackChunkName: \"blazePbPasswordReset\" */ './PasswordReset')\n ),\n passwordresetrequest: dynamic(() =>\n import(/* webpackChunkName: \"blazePbPasswordResetRequest\" */ './PasswordResetRequest')\n )\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/components/index.js"],"names":["dynamic","Banner","banner","button","card","carousel","column","datasummary","image","row","list","socialfollow","textblock","video","wrapper","searchfilter","searchfiltersort","modal","code","login","menu","menuitem","submenu","emailconfirm","passwordreset","passwordresetrequest","breadcrumb"],"mappings":"AAAA,OAAOA,OAAP,MAAoB,cAApB;AACA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,eAAe;AACbC,EAAAA,MAAM,EAAED,MADK;AAEbE,EAAAA,MAAM,EAAEH,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CAFF;AAGbI,EAAAA,IAAI,EAAEJ,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CAHA;AAIbK,EAAAA,QAAQ,EAAEL,OAAO,CAAC,MAAM;AAAO;AAA0C,cAAjD,CAAP,CAJJ;AAKbM,EAAAA,MAAM,EAAEN,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CALF;AAMbO,EAAAA,WAAW,EAAEP,OAAO,CAAC,MAAM;AAAO;AAA6C,iBAApD,CAAP,CANP;AAObQ,EAAAA,KAAK,EAAER,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAPD;AAQbS,EAAAA,GAAG,EAAET,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CARC;AASbU,EAAAA,IAAI,EAAEV,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CATA;AAUbW,EAAAA,YAAY,EAAEX,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CAVR;AAabY,EAAAA,SAAS,EAAEZ,OAAO,CAAC,MAAM;AAAO;AAA2C,eAAlD,CAAP,CAbL;AAcba,EAAAA,KAAK,EAAEb,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAdD;AAebc,EAAAA,OAAO,EAAEd,OAAO,CAAC,MAAM;AAAO;AAAyC,aAAhD,CAAP,CAfH;AAgBbe,EAAAA,YAAY,EAAEf,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CAhBR;AAmBbgB,EAAAA,gBAAgB,EAAEhB,OAAO,CAAC,MACxB;AAAO;AAAiD,sBAAxD,CADuB,CAnBZ;AAsBbiB,EAAAA,KAAK,EAAEjB,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAtBD;AAuBbkB,EAAAA,IAAI,EAAElB,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CAvBA;AAwBbmB,EAAAA,KAAK,EAAEnB,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAxBD;AAyBboB,EAAAA,IAAI,EAAEpB,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CAzBA;AA0BbqB,EAAAA,QAAQ,EAAErB,OAAO,CAAC,MAAM;AAAO;AAA0C,cAAjD,CAAP,CA1BJ;AA2BbsB,EAAAA,OAAO,EAAEtB,OAAO,CAAC,MAAM;AAAO;AAAyC,aAAhD,CAAP,CA3BH;AA4BbuB,EAAAA,YAAY,EAAEvB,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CA5BR;AA+BbwB,EAAAA,aAAa,EAAExB,OAAO,CAAC,MACrB;AAAO;AAA+C,mBAAtD,CADoB,CA/BT;AAkCbyB,EAAAA,oBAAoB,EAAEzB,OAAO,CAAC,MAC5B;AAAO;AAAsD,0BAA7D,CAD2B,CAlChB;AAqCb0B,EAAAA,UAAU,EAAE1B,OAAO,CAAC,MAAM;AAAO;AAA4C,gBAAnD,CAAP;AArCN,CAAf","sourcesContent":["import dynamic from 'next/dynamic';\nimport Banner from './Banner';\n\nexport default {\n banner: Banner,\n button: dynamic(() => import(/* webpackChunkName: \"blazePbButton\" */ './Button')),\n card: dynamic(() => import(/* webpackChunkName: \"blazePbCard\" */ './Card')),\n carousel: dynamic(() => import(/* webpackChunkName: \"blazePbCarousel\" */ './Carousel')),\n column: dynamic(() => import(/* webpackChunkName: \"blazePbLayout\" */ './Layout')),\n datasummary: dynamic(() => import(/* webpackChunkName: \"blazePbDataSummary\" */ './DataSummary')),\n image: dynamic(() => import(/* webpackChunkName: \"blazePbImage\" */ './Image')),\n row: dynamic(() => import(/* webpackChunkName: \"blazePbLayout\" */ './Layout')),\n list: dynamic(() => import(/* webpackChunkName: \"blazePbList\" */ './List')),\n socialfollow: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSocialFollow\" */ './SocialFollow')\n ),\n textblock: dynamic(() => import(/* webpackChunkName: \"blazePbTextBlock\" */ './TextBlock')),\n video: dynamic(() => import(/* webpackChunkName: \"blazePbVideo\" */ './Video')),\n wrapper: dynamic(() => import(/* webpackChunkName: \"blazePbWrapper\" */ './Wrapper')),\n searchfilter: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSearchFilter\" */ './SearchFilter')\n ),\n searchfiltersort: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSearchFilteSort\" */ './SearchFilterSort')\n ),\n modal: dynamic(() => import(/* webpackChunkName: \"blazePbModal\" */ './Modal')),\n code: dynamic(() => import(/* webpackChunkName: \"blazePbCode\" */ './Code')),\n login: dynamic(() => import(/* webpackChunkName: \"blazePbLogin\" */ './Login')),\n menu: dynamic(() => import(/* webpackChunkName: \"blazePbMenu\" */ './Menu')),\n menuitem: dynamic(() => import(/* webpackChunkName: \"blazePbMenuItem\" */ './MenuItem')),\n submenu: dynamic(() => import(/* webpackChunkName: \"blazePbSubMenu\" */ './SubMenu')),\n emailconfirm: dynamic(() =>\n import(/* webpackChunkName: \"blazePbEmailConfirm\" */ './EmailConfirm')\n ),\n passwordreset: dynamic(() =>\n import(/* webpackChunkName: \"blazePbPasswordReset\" */ './PasswordReset')\n ),\n passwordresetrequest: dynamic(() =>\n import(/* webpackChunkName: \"blazePbPasswordResetRequest\" */ './PasswordResetRequest')\n ),\n breadcrumb: dynamic(() => import(/* webpackChunkName: \"blazePbBreadcrumb\" */ './Breadcrumb'))\n};\n"],"file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/react-page-builder",
3
- "version": "0.120.1",
3
+ "version": "0.121.0-alpha.1",
4
4
  "description": "Blaze react page builder",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -33,6 +33,7 @@
33
33
  "@blaze-cms/nextjs-components": "^0.119.0",
34
34
  "@blaze-cms/setup-ui": "^0.92.0",
35
35
  "@blaze-cms/utils": "^0.118.0",
36
+ "@blaze-react/breadcrumb": "0.8.0-alpha.60",
36
37
  "@blaze-react/button": "0.5.19",
37
38
  "@blaze-react/checkboxes": "0.5.31",
38
39
  "@blaze-react/input": "0.5.30",
@@ -83,5 +84,5 @@
83
84
  "lib/*",
84
85
  "lib-es/*"
85
86
  ],
86
- "gitHead": "1cf69b010ec6b72069e9d9e231c1fec16232a2d7"
87
+ "gitHead": "dc0b862127dcd49fa207c672a79980c6fdfcc5f3"
87
88
  }
@@ -45,6 +45,20 @@ const getSingleEntitySchema = gql`
45
45
  }
46
46
  `;
47
47
 
48
+ const getRecordParents = queryName => gql`
49
+ query getRecordParents($id: String!){
50
+ recordParents: ${queryName}(id: $id){
51
+ id,
52
+ name,
53
+ url,
54
+ parents {
55
+ id,
56
+ name
57
+ url
58
+ }
59
+ }
60
+ }`;
61
+
48
62
  const getMultipleSchema = identifiers => {
49
63
  const queryString = identifiers
50
64
  .map(
@@ -136,5 +150,6 @@ export {
136
150
  getSearchPublishedContent,
137
151
  getCount,
138
152
  getMultipleSchema,
139
- getUser
153
+ getUser,
154
+ getRecordParents
140
155
  };
@@ -0,0 +1,73 @@
1
+ import React, { useContext } from 'react';
2
+ import { MainContext, Link } from '@blaze-cms/nextjs-components';
3
+ import PropTypes from 'prop-types';
4
+ import { useQuery } from '@apollo/client';
5
+ import Breadcrumbs from '@blaze-react/breadcrumb';
6
+ import { getRecordParents, getSingleEntitySchema } from '../../application/query';
7
+ import Wrapper from '../Wrapper';
8
+ import { getClassModifiers } from '../../utils';
9
+
10
+ const Breadcrumb = ({ type, ...otherProps }) => {
11
+ const { isPreview } = useContext(MainContext);
12
+ const { parent } = otherProps;
13
+ const { itemEntity, itemId } = parent;
14
+
15
+ const { data = {}, error, loading } = useQuery(getSingleEntitySchema, {
16
+ variables: { id: itemEntity }
17
+ });
18
+
19
+ const { getEntitySchema = {} } = data;
20
+ const { actions: { getPublished, get } = {} } = getEntitySchema;
21
+ const actionKey = isPreview ? get : getPublished || get;
22
+
23
+ const { data: parentsData = [], loading: parentsLoading } = useQuery(
24
+ getRecordParents(actionKey),
25
+ {
26
+ variables: { id: itemId },
27
+ skip: !actionKey
28
+ }
29
+ );
30
+
31
+ if (loading || parentsLoading) return '';
32
+ if (error) return error.message;
33
+ if (!data) return null;
34
+
35
+ const modifiers = getClassModifiers('breadcrumb', otherProps);
36
+ const { recordParents: { name, url, parents = [] } = {} } = parentsData;
37
+
38
+ if (url === '/') return '';
39
+
40
+ const breadcrumbItems = [
41
+ {
42
+ name,
43
+ url
44
+ },
45
+ ...parents,
46
+ {
47
+ name: 'Home',
48
+ url: '/'
49
+ }
50
+ ];
51
+
52
+ return (
53
+ <Wrapper className={type} modifiers={modifiers}>
54
+ <Breadcrumbs>
55
+ {breadcrumbItems.reverse().map(item => (
56
+ <Link key={item.url} href={item.url}>
57
+ {item.name}
58
+ </Link>
59
+ ))}
60
+ </Breadcrumbs>
61
+ </Wrapper>
62
+ );
63
+ };
64
+
65
+ Breadcrumb.propTypes = {
66
+ type: PropTypes.string
67
+ };
68
+
69
+ Breadcrumb.defaultProps = {
70
+ type: 'breadcrumb'
71
+ };
72
+
73
+ export default Breadcrumb;
@@ -0,0 +1,3 @@
1
+ import Breadcrumb from './Breadcrumb';
2
+
3
+ export default Breadcrumb;
@@ -37,5 +37,6 @@ export default {
37
37
  ),
38
38
  passwordresetrequest: dynamic(() =>
39
39
  import(/* webpackChunkName: "blazePbPasswordResetRequest" */ './PasswordResetRequest')
40
- )
40
+ ),
41
+ breadcrumb: dynamic(() => import(/* webpackChunkName: "blazePbBreadcrumb" */ './Breadcrumb'))
41
42
  };
@@ -0,0 +1,103 @@
1
+ import React from 'react';
2
+ import '@testing-library/jest-dom/extend-expect';
3
+ import { render as RenderComponent } from '@testing-library/react';
4
+ import { MockedProvider } from '@apollo/client/testing';
5
+ import { render } from '@blaze-cms/tools/test-helpers/test-functions';
6
+ import Breadcrumb from '../../../../../src/components/Breadcrumb';
7
+ import { getAction, getRecordParents } from '../../../../../src/application/query';
8
+
9
+ jest.mock('@apollo/client', () => ({
10
+ ...jest.requireActual('@apollo/client'),
11
+ useQuery: jest.fn(({ data, loading, error }) => ({ data, loading, error }))
12
+ }));
13
+ jest.mock('next/router', () => ({
14
+ useRouter: jest.fn(() => ({ asPath: 'test-url' }))
15
+ }));
16
+
17
+ const actionKey = 'getPublishedPage';
18
+ const id = 'record id';
19
+ const action = getAction(actionKey, 'id, name');
20
+ const getEntityDataMock = {
21
+ request: {
22
+ query: action,
23
+ variables: {
24
+ id
25
+ }
26
+ },
27
+ result: {
28
+ data: {
29
+ [actionKey]: {
30
+ id,
31
+ name: 'record name'
32
+ }
33
+ }
34
+ }
35
+ };
36
+
37
+ const getRecordParentsMock = {
38
+ request: {
39
+ query: getRecordParents(actionKey),
40
+ variables: { id: 'id' },
41
+ skip: false
42
+ },
43
+ result: {
44
+ data: {
45
+ recordParents: {
46
+ parents: [
47
+ {
48
+ name: 'parent page',
49
+ url: '/top-parent/parent'
50
+ }
51
+ ]
52
+ }
53
+ }
54
+ }
55
+ };
56
+
57
+ const breadcrumbMock = {
58
+ router: {
59
+ asPath: 'test-url'
60
+ },
61
+ client: {},
62
+ type: 'breadcrumb',
63
+ id: 'id',
64
+ pageName: 'page',
65
+ slug: 'page',
66
+ parent: {
67
+ itemEntity: 'page',
68
+ tags: [],
69
+ category: ''
70
+ }
71
+ };
72
+
73
+ const mocks = [getEntityDataMock, getRecordParentsMock];
74
+
75
+ const setup = (props = breadcrumbMock) =>
76
+ RenderComponent(
77
+ <MockedProvider mocks={mocks}>
78
+ <Breadcrumb {...props} />
79
+ </MockedProvider>
80
+ );
81
+
82
+ describe('Breadcrumb component', () => {
83
+ it('should not render if loading, err or no data exists', () => {
84
+ const { asFragment } = render(Breadcrumb, {
85
+ ...breadcrumbMock,
86
+ action: { data: null, loading: true, error: null }
87
+ });
88
+ expect(asFragment()).toMatchSnapshot();
89
+ });
90
+
91
+ it('should match snapshot', () => {
92
+ const { asFragment } = render(Breadcrumb, {
93
+ ...breadcrumbMock,
94
+ action: { data: {}, loading: false, error: null }
95
+ });
96
+ expect(asFragment()).toMatchSnapshot();
97
+ });
98
+
99
+ it('should render', () => {
100
+ const { asFragment } = setup();
101
+ expect(asFragment()).toMatchSnapshot();
102
+ });
103
+ });
@@ -0,0 +1,82 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Breadcrumb component should match snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <div
6
+ class="breadcrumb "
7
+ >
8
+ <ul
9
+ class="breadcrumb"
10
+ >
11
+ <li
12
+ class="breadcrumb__item"
13
+ >
14
+ <a
15
+ href="/"
16
+ >
17
+ Home
18
+ </a>
19
+ </li>
20
+ <li
21
+ class="breadcrumb__item"
22
+ >
23
+ <a />
24
+ </li>
25
+ </ul>
26
+ </div>
27
+ </DocumentFragment>
28
+ `;
29
+
30
+ exports[`Breadcrumb component should not render if loading, err or no data exists 1`] = `
31
+ <DocumentFragment>
32
+ <div
33
+ class="breadcrumb "
34
+ >
35
+ <ul
36
+ class="breadcrumb"
37
+ >
38
+ <li
39
+ class="breadcrumb__item"
40
+ >
41
+ <a
42
+ href="/"
43
+ >
44
+ Home
45
+ </a>
46
+ </li>
47
+ <li
48
+ class="breadcrumb__item"
49
+ >
50
+ <a />
51
+ </li>
52
+ </ul>
53
+ </div>
54
+ </DocumentFragment>
55
+ `;
56
+
57
+ exports[`Breadcrumb component should render 1`] = `
58
+ <DocumentFragment>
59
+ <div
60
+ class="breadcrumb "
61
+ >
62
+ <ul
63
+ class="breadcrumb"
64
+ >
65
+ <li
66
+ class="breadcrumb__item"
67
+ >
68
+ <a
69
+ href="/"
70
+ >
71
+ Home
72
+ </a>
73
+ </li>
74
+ <li
75
+ class="breadcrumb__item"
76
+ >
77
+ <a />
78
+ </li>
79
+ </ul>
80
+ </div>
81
+ </DocumentFragment>
82
+ `;
@@ -6,6 +6,10 @@ Object {
6
6
  "$$typeof": Symbol(react.forward_ref),
7
7
  "render": [Function],
8
8
  },
9
+ "breadcrumb": Object {
10
+ "$$typeof": Symbol(react.forward_ref),
11
+ "render": [Function],
12
+ },
9
13
  "button": Object {
10
14
  "$$typeof": Symbol(react.forward_ref),
11
15
  "render": [Function],