@qoh/core-react 1.0.0-rc.7 → 1.0.0-rc.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/ApiError.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ type Body = {
2
+ id: string;
3
+ summary: string;
4
+ details: string;
5
+ };
6
+ export declare class ApiError extends Error {
7
+ status: number;
8
+ body: Body;
9
+ constructor(status: number, body: Body);
10
+ }
11
+ export {};
package/ApiError.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports.ApiError=void 0;var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass")),_classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")),_possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")),_getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")),_inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits")),_wrapNativeSuper2=_interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper")),_defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));function _callSuper(a,b,c){return b=(0,_getPrototypeOf2["default"])(b),(0,_possibleConstructorReturn2["default"])(a,_isNativeReflectConstruct()?Reflect.construct(b,c||[],(0,_getPrototypeOf2["default"])(a).constructor):b.apply(a,c))}function _isNativeReflectConstruct(){try{var a=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(a){}return(_isNativeReflectConstruct=function(){return!!a})()}var ApiError=exports.ApiError=/*#__PURE__*/function(a){function b(a,c){var d;return(0,_classCallCheck2["default"])(this,b),d=_callSuper(this,b,[c.summary]),(0,_defineProperty2["default"])(d,"status",void 0),(0,_defineProperty2["default"])(d,"body",void 0),d.name="ApiError",d.status=a,d.body=c,d}return(0,_inherits2["default"])(b,a),(0,_createClass2["default"])(b)}(/*#__PURE__*/(0,_wrapNativeSuper2["default"])(Error));
@@ -0,0 +1,78 @@
1
+ import React, { JSX } from 'react';
2
+ import Backend from './backend/Backend';
3
+ export declare enum Filter {
4
+ eq = "eq",
5
+ in = "in",
6
+ neq = "neq",
7
+ notIn = "notIn"
8
+ }
9
+ export interface QohResponse {
10
+ pages: any | null;
11
+ message: string;
12
+ }
13
+ export type ComponentTypes = Array<{
14
+ typename: string;
15
+ props: {
16
+ __typename: string;
17
+ };
18
+ }>;
19
+ export interface IFCDictionary {
20
+ [index: string]: ReactFCWithFieldNames;
21
+ }
22
+ export interface ReactFCWithFieldNames {
23
+ component?: React.FC<any>;
24
+ fieldNames?: string[];
25
+ loader?: () => any;
26
+ }
27
+ export declare let componentRegistry: IFCDictionary;
28
+ export declare function unregisterComponent(name: string): void;
29
+ export declare function registerComponent(functionalComponent: React.FC<any>, typeName: string, fieldNames?: string[], overwrite?: false): void;
30
+ export declare function registerLazyComponent(loader: () => any, typeName: string, fieldNames?: string[], overwrite?: boolean): void;
31
+ export declare function getAllregisteredComponents(): IFCDictionary;
32
+ export declare const fetchDynamicComponents: (props: any) => Promise<(string | null)[]>;
33
+ export declare class QueenofheartsService {
34
+ private static instance;
35
+ data: any;
36
+ debug: boolean;
37
+ backend: Backend;
38
+ apiToken: string | null;
39
+ localServer?: string;
40
+ latestUrl: string;
41
+ latestData: Object;
42
+ private constructor();
43
+ static init(backend: Backend, apiToken: string | null, localServer?: string): void;
44
+ static getInstance(): QueenofheartsService;
45
+ findComponentsInProps: (props: any) => string[];
46
+ fetchDynamicComponents: (componentsToLoad: string[]) => Promise<(string | null)[]>;
47
+ private loadAsyncComponent;
48
+ createComponent(props: any): JSX.Element | null;
49
+ private buildUrl;
50
+ queryGraphql: (graphqlQuery: string) => Promise<any>;
51
+ query: (queryName: string, options?: {
52
+ filter?: {
53
+ name: string;
54
+ operator: Filter;
55
+ value: string;
56
+ }[] | undefined;
57
+ components?: string | undefined;
58
+ ignoreProperties?: string[] | undefined;
59
+ variables?: {
60
+ [x: string]: unknown;
61
+ filter?: {
62
+ name: string;
63
+ operator: Filter;
64
+ value: string;
65
+ }[] | undefined;
66
+ locale?: string | undefined;
67
+ } | undefined;
68
+ locale?: string | undefined;
69
+ depth?: number | undefined;
70
+ } | undefined) => Promise<any>;
71
+ private getRegisteredComponentsWithFields;
72
+ getQueries: () => Promise<any>;
73
+ private injectIds;
74
+ private sendDebugEvent;
75
+ private sendQueriesEvent;
76
+ private sendComponentHTML;
77
+ private highlightComponent;
78
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault"),_typeof3=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:!0}),exports.fetchDynamicComponents=exports.componentRegistry=exports.QueenofheartsService=exports.Filter=void 0,exports.getAllregisteredComponents=getAllregisteredComponents,exports.registerComponent=registerComponent,exports.registerLazyComponent=registerLazyComponent,exports.unregisterComponent=unregisterComponent;var _QueenofheartsService,_typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof")),_slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")),_toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")),_classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")),_createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass")),_regenerator=_interopRequireDefault(require("@babel/runtime/regenerator")),_defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty")),_asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")),_ApiError=require("./ApiError"),_react=_interopRequireWildcard(require("react")),_Dodo=_interopRequireDefault(require("./components/Dodo"));function _getRequireWildcardCache(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(_getRequireWildcardCache=function(a){return a?c:b})(a)}function _interopRequireWildcard(b,c){if(!c&&b&&b.__esModule)return b;if(null===b||"object"!=_typeof3(b)&&"function"!=typeof b)return{default:b};var d=_getRequireWildcardCache(c);if(d&&d.has(b))return d.get(b);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in b)if("default"!=a&&{}.hasOwnProperty.call(b,a)){var g=f?Object.getOwnPropertyDescriptor(b,a):null;g&&(g.get||g.set)?Object.defineProperty(e,a,g):e[a]=b[a]}return e["default"]=b,d&&d.set(b,e),e}function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){(0,_defineProperty2["default"])(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}var Filter=exports.Filter=/*#__PURE__*/function(a){return a.eq="eq",a["in"]="in",a.neq="neq",a.notIn="notIn",a}({}),qohUri="https://headless.li/api",componentRegistry=exports.componentRegistry={};function unregisterComponent(a){delete componentRegistry[a]}function registerComponent(a,b,c,d){if(b!==void 0&&(d||void 0===componentRegistry[b])){componentRegistry[b]={component:a,fieldNames:c}}}function registerLazyComponent(a,b,c){var d=!!(3<arguments.length&&arguments[3]!==void 0)&&arguments[3];!b?console.warn("registerComponent failed: undefined typeName "):(d||componentRegistry[b]===void 0)&&(componentRegistry[b]={fieldNames:c,loader:a})}function getAllregisteredComponents(){return componentRegistry}var fetchDynamicComponents=exports.fetchDynamicComponents=/*#__PURE__*/function(){var a=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function b(a){var c,d,e;return _regenerator["default"].wrap(function(b){for(;;)switch(b.prev=b.next){case 0:return c=QueenofheartsService.getInstance(),d=c.findComponentsInProps(a).filter(function(a,b,c){return c.indexOf(a)===b}),b.next=4,c.fetchDynamicComponents(d);case 4:return e=b.sent,b.abrupt("return",e.filter(function(a){return null!==a}));case 6:case"end":return b.stop()}},b)}));return function(){return a.apply(this,arguments)}}(),QueenofheartsService=exports.QueenofheartsService=/*#__PURE__*/function(){function a(b,c,d){var e=this;//debugger-data:
2
+ // devtools-panel events and debug-option
3
+ (0,_classCallCheck2["default"])(this,a),(0,_defineProperty2["default"])(this,"data",void 0),(0,_defineProperty2["default"])(this,"debug",void 0),(0,_defineProperty2["default"])(this,"backend",void 0),(0,_defineProperty2["default"])(this,"apiToken",void 0),(0,_defineProperty2["default"])(this,"localServer",void 0),(0,_defineProperty2["default"])(this,"latestUrl",""),(0,_defineProperty2["default"])(this,"latestData",{}),(0,_defineProperty2["default"])(this,"findComponentsInProps",function(a){// returns unique list of components in props and it's children
4
+ if(a&&"string"!=typeof a){var b=a.__typename?[a.__typename]:[],c=Array.isArray(a)?a:Object.values(a),d=[].concat(b,(0,_toConsumableArray2["default"])(c.reduce(function(a,b){var c=e.findComponentsInProps(b);return c&&(a=[].concat((0,_toConsumableArray2["default"])(a),(0,_toConsumableArray2["default"])(c))),a},[])));return d}return[]}),(0,_defineProperty2["default"])(this,"fetchDynamicComponents",/*#__PURE__*/function(){var a=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function b(a){var c,d,f;return _regenerator["default"].wrap(function(b){for(;;)switch(b.prev=b.next){case 0:return c=!1,d=!1,f=Promise.all(a.map(/*#__PURE__*/function(){var a=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function b(a){var d,f,g;return _regenerator["default"].wrap(function(b){for(;;)switch(b.prev=b.next){case 0:if(!componentRegistry[a]){b.next=8;break}if(f=componentRegistry[a].component,void 0!==f){b.next=8;break}return c=!0,b.next=6,e.loadAsyncComponent(a);case 6:return g=b.sent,b.abrupt("return",g);case 8:if(!(null!==(d=componentRegistry[a])&&void 0!==d&&d.loader)){b.next=10;break}return b.abrupt("return",a);case 10:return b.abrupt("return",null);case 11:case"end":return b.stop()}},b)}));return function(){return a.apply(this,arguments)}}())),d=!0,b.abrupt("return",f);case 5:case"end":return b.stop()}},b)}));return function(){return a.apply(this,arguments)}}()),(0,_defineProperty2["default"])(this,"buildUrl",function(a){var b,c=null!==(b=e.localServer)&&void 0!==b?b:qohUri,d=e.apiToken?"?code=".concat(e.apiToken):"";return"".concat(c,"/").concat(a).concat(d)}),(0,_defineProperty2["default"])(this,"queryGraphql",/*#__PURE__*/function(){var a=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function b(a){var c,d,f,g;return _regenerator["default"].wrap(function(b){for(;;)switch(b.prev=b.next){case 0:if(c=e.buildUrl("execGraphqlQuery"),console.warn("using url : ".concat(c)),!c){b.next=19;break}return b.next=5,fetch(c,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({uri:e.backend.uri,query:a,token:e.backend.token})});case 5:if(d=b.sent,!d.ok){b.next=14;break}return b.next=9,d.json();case 9:return f=b.sent,e.sendDebugEvent(),b.abrupt("return",f);case 14:return b.next=16,d.json();case 16:throw g=b.sent,console.log(g),new _ApiError.ApiError(d.status,g);case 19:throw new _ApiError.ApiError(500,{id:"99",summary:"queryUrl was not set",details:"LocalServer: ".concat(e.localServer)});case 20:case"end":return b.stop()}},b)}));return function(){return a.apply(this,arguments)}}()),(0,_defineProperty2["default"])(this,"query",/*#__PURE__*/function(){var a=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function c(a,b){var d,f,g,h,i,j,k,l,m,n,o;return _regenerator["default"].wrap(function(c){for(;;)switch(c.prev=c.next){case 0:if(d=e.buildUrl("execQuery"),f=null!==b&&void 0!==b&&b.variables?_objectSpread({},b.variables):{},null!==b&&void 0!==b&&b.locale&&(f.locale=b.locale),null!==b&&void 0!==b&&b.filter&&Array.isArray(b.filter)&&(!f.filter&&(f.filter=[]),(g=f.filter).push.apply(g,(0,_toConsumableArray2["default"])(b.filter)),null!==b&&void 0!==b&&null!==(h=b.variables)&&void 0!==h&&h.filter&&Array.isArray(b.variables.filter)&&(i=f.filter).push.apply(i,(0,_toConsumableArray2["default"])(b.variables.filter))),!d||!b){c.next=41;break}return c.next=7,fetch(d,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({uri:e.backend.uri,queryname:a,token:e.backend.token,variables:f,components:e.getRegisteredComponentsWithFields(),ignoreProperties:b.ignoreProperties,depth:b.depth})});case 7:if(j=c.sent,!j.ok){c.next=28;break}return c.next=11,j.json();case 11:if(c.t1=k=c.sent,c.t0=null===c.t1,c.t0){c.next=15;break}c.t0=void 0===k;case 15:if(!c.t0){c.next=19;break}c.t2=void 0,c.next=20;break;case 19:c.t2=k.data;case 20:return l=c.t2,m=e.backend.normalize(l),n=e.debug?e.injectIds(m):m,e.latestData=n,e.sendDebugEvent(),c.abrupt("return",n);case 28:return c.prev=28,c.next=31,j.json();case 31:throw o=c.sent,console.log(o),new _ApiError.ApiError(j.status,o);case 36:throw c.prev=36,c.t3=c["catch"](28),new _ApiError.ApiError(j.status,c.t3.toString());case 39:c.next=42;break;case 41:throw new _ApiError.ApiError(500,{id:"99",summary:"Query: queryUrl (".concat(d,") or options are invalid"),details:"queryUrl: ".concat(d)});case 42:case"end":return c.stop()}},c,null,[[28,36]])}));return function(){return a.apply(this,arguments)}}()),(0,_defineProperty2["default"])(this,"getRegisteredComponentsWithFields",function(){var a={},b=Object.entries(getAllregisteredComponents());return b&&Array.isArray(b)&&b.forEach(function(b){var c=(0,_slicedToArray2["default"])(b,2),d=c[0],e=c[1],f={},g=e.fieldNames,h=!1;g&&Array.isArray(g)&&g.forEach(function(a){f[a]=!0,h=!0}),a[d]=h?f:{__all:!0}}),a}),(0,_defineProperty2["default"])(this,"getQueries",/*#__PURE__*/(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function a(){var b,c,d;return _regenerator["default"].wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if(b=e.buildUrl("queries"),!(b&&e.backend&&(e.localServer||e.backend.token))){a.next=18;break}return a.next=4,fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({uri:e.backend.uri,token:e.backend.token||null})});case 4:if(c=a.sent,!c.ok){a.next=16;break}return a.prev=6,a.next=9,c.json();case 9:return d=a.sent,a.abrupt("return",d);case 13:a.prev=13,a.t0=a["catch"](6),console.error(a.t0);case 16:a.next=19;break;case 18:console.error("api, uri and CMSToken have to be provided");case 19:return a.abrupt("return","");case 20:case"end":return a.stop()}},a,null,[[6,13]])}))),this.backend=b,this.apiToken=c,this.localServer=d,this.debug="undefined"!=typeof document&&document.getElementsByTagName("body")[0].classList.contains("qoh-inject-ids"),this.debug&&"undefined"!=typeof window&&(window.addEventListener("QueenOfHearts-RequestData",function(){e.sendDebugEvent()}),window.addEventListener("QueenOfHearts-RequestQueries",function(){e.sendQueriesEvent()}),window.addEventListener("QueenOfHearts-HighlightComponent",function(a){e.highlightComponent(a.detail)}),window.addEventListener("QueenOfHearts-RequestComponentHTML",function(a){e.sendComponentHTML(a.detail)}))}return(0,_createClass2["default"])(a,[{key:"loadAsyncComponent",value:function(){function a(){return b.apply(this,arguments)}var b=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function b(a){var c,d,e;return _regenerator["default"].wrap(function(b){for(;;)switch(b.prev=b.next){case 0:if(c=componentRegistry[a],!(c&&void 0===c.component)){b.next=10;break}if(null!==c&&void 0!==c&&c.component){b.next=9;break}if(!c.loader){b.next=9;break}return d=c.loader,b.next=7,d();case 7:e=b.sent,e?componentRegistry[a].component=e["default"]:(console.error("error loading ".concat(a)),console.error(e));case 9:return b.abrupt("return",a);case 10:return b.abrupt("return",null);case 11:case"end":return b.stop()}},b)}));return a}()},{key:"createComponent",value:function(a){var b,c=a.data,d=a.contextProps,e=void 0===d?{}:d,f=c.__typename,g=componentRegistry[f];g&&g.loader&&(0,_react.lazy)(g.loader);var h=null!==(b=null===g||void 0===g?void 0:g.component)&&void 0!==b?b:_Dodo["default"];return/*#__PURE__*/_react["default"].createElement(h,_objectSpread(_objectSpread({},c),{},{contextProps:e}))}},{key:"injectIds",value:function(a){var b=this;if(Array.isArray(a))a.forEach(function(a){return b.injectIds(a)});else if(a&&"object"===(0,_typeof2["default"])(a)){if(a.hasOwnProperty("__typename")){var c=Math.random().toString();a.__qohId=c.substr(c.indexOf(".")+1)}Object.keys(a).forEach(function(c){return a[c]=b.injectIds(a[c])})}return a}},{key:"sendDebugEvent",value:function(){if("undefined"!=typeof window){var a={registeredComponents:Object.keys(componentRegistry),url:this.latestUrl,data:this.latestData},b=new CustomEvent("QueenOfHearts-DebuggingData",{detail:a});window.dispatchEvent(b)}}},{key:"sendQueriesEvent",value:function(){function a(){return b.apply(this,arguments)}var b=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function a(){var b;return _regenerator["default"].wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if("undefined"!=typeof window){a.next=2;break}return a.abrupt("return");case 2:return a.t0=CustomEvent,a.next=5,this.getQueries();case 5:a.t1=a.sent,a.t2={detail:a.t1},b=new a.t0("QueenOfHearts-AvailableQueries",a.t2),window.dispatchEvent(b);case 9:case"end":return a.stop()}},a,this)}));return a}()},{key:"sendComponentHTML",value:function(a){var b;if("undefined"!=typeof window){var c=null===(b=document.querySelector("[qohId='".concat(a,"']")))||void 0===b?void 0:b.nextElementSibling;if(c){var d=new CustomEvent("QueenOfHearts-SelectedComponentHTML",{detail:{qohId:a,html:c.outerHTML}});window.dispatchEvent(d)}}}},{key:"highlightComponent",value:function(a){var b,c=null===(b=document.querySelector("[qohId='".concat(a,"']")))||void 0===b?void 0:b.nextElementSibling;c&&c.scrollIntoView({behavior:"smooth",block:"center",inline:"center"}),c&&c.animate([{outline:"thick auto white"},{outline:"thick auto red"}],{duration:1e3,iterations:2})}}],[{key:"init",value:function(b,c,d){a.instance=new a(b,c,d)}},{key:"getInstance",value:function(){return a.instance||console.error("QueenofheartsService was not initialized using QueenofheartsService.init(backend, apiToken)"),a.instance}}])}();_QueenofheartsService=QueenofheartsService,(0,_defineProperty2["default"])(QueenofheartsService,"instance",void 0);
@@ -0,0 +1 @@
1
+ "use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault"),_classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")),_createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass")),_defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty")),_QueenofheartsService=require("./QueenofheartsService"),_QueenofheartsService2=_interopRequireDefault(require("./QueenofheartsService.testData"));describe("service",function(){it("findComponentsInProps",function(){var a=/*#__PURE__*/function(){function a(){(0,_classCallCheck2["default"])(this,a),(0,_defineProperty2["default"])(this,"token",void 0),(0,_defineProperty2["default"])(this,"uri",void 0)}return(0,_createClass2["default"])(a,[{key:"normalize",value:function(a){return a}}])}();_QueenofheartsService.QueenofheartsService.init(new a,"test");var b=_QueenofheartsService.QueenofheartsService.getInstance(),c=b.findComponentsInProps(_QueenofheartsService2["default"]).filter(function(a,b,c){return c.indexOf(a)===b});expect(c).toEqual(["PageRecord","SEOMetaTag","BannerRecord","FullpageJumbotronRecord","FullpageSubpageRecord","HomepageTilesSubpageRecord"])})});
@@ -0,0 +1,141 @@
1
+ declare const testData: {
2
+ __typename: string;
3
+ _createdAt: string;
4
+ _firstPublishedAt: string;
5
+ _isValid: boolean;
6
+ _modelApiKey: string;
7
+ _publicationScheduledAt: null;
8
+ _publishedAt: string;
9
+ _seoMetaTags: ({
10
+ __typename: string;
11
+ attributes: null;
12
+ content: string;
13
+ tag: string;
14
+ } | {
15
+ __typename: string;
16
+ attributes: ObjectConstructor[];
17
+ content: null;
18
+ tag: string;
19
+ })[];
20
+ _status: string;
21
+ _unpublishingScheduledAt: null;
22
+ _updatedAt: string;
23
+ banner: {
24
+ __typename: string;
25
+ _createdAt: string;
26
+ _firstPublishedAt: string;
27
+ _isValid: boolean;
28
+ _modelApiKey: string;
29
+ _publicationScheduledAt: null;
30
+ _publishedAt: string;
31
+ _seoMetaTags: ArrayConstructor[];
32
+ _status: string;
33
+ _unpublishingScheduledAt: null;
34
+ _updatedAt: string;
35
+ chevron: boolean;
36
+ createdAt: string;
37
+ id: string;
38
+ target: string;
39
+ text: string;
40
+ updatedAt: string;
41
+ }[];
42
+ createdAt: string;
43
+ myTitle: string;
44
+ paragraphs: ({
45
+ __typename: string;
46
+ _createdAt: string;
47
+ _firstPublishedAt: string;
48
+ _isValid: boolean;
49
+ _modelApiKey: string;
50
+ _publicationScheduledAt: null;
51
+ _publishedAt: string;
52
+ _seoMetaTags: ArrayConstructor[];
53
+ _status: string;
54
+ _unpublishingScheduledAt: null;
55
+ _updatedAt: string;
56
+ backgroundImageJumbotron: ObjectConstructor[];
57
+ createdAt: string;
58
+ id: string;
59
+ subline: string;
60
+ tagline: string;
61
+ updatedAt: string;
62
+ whiteTextColor: boolean;
63
+ backgroundImageSubpage?: undefined;
64
+ backgroundImageThreeTiles?: undefined;
65
+ column?: undefined;
66
+ tiles?: undefined;
67
+ } | {
68
+ __typename: string;
69
+ _createdAt: string;
70
+ _firstPublishedAt: string;
71
+ _isValid: boolean;
72
+ _modelApiKey: string;
73
+ _publicationScheduledAt: null;
74
+ _publishedAt: string;
75
+ _seoMetaTags: ArrayConstructor[];
76
+ _status: string;
77
+ _unpublishingScheduledAt: null;
78
+ _updatedAt: string;
79
+ backgroundImageSubpage: ObjectConstructor[];
80
+ createdAt: string;
81
+ id: string;
82
+ subline: string;
83
+ tagline: string;
84
+ updatedAt: string;
85
+ backgroundImageJumbotron?: undefined;
86
+ whiteTextColor?: undefined;
87
+ backgroundImageThreeTiles?: undefined;
88
+ column?: undefined;
89
+ tiles?: undefined;
90
+ } | {
91
+ __typename: string;
92
+ _createdAt: string;
93
+ _firstPublishedAt: string;
94
+ _isValid: boolean;
95
+ _modelApiKey: string;
96
+ _publicationScheduledAt: null;
97
+ _publishedAt: string;
98
+ _seoMetaTags: ArrayConstructor[];
99
+ _status: string;
100
+ _unpublishingScheduledAt: null;
101
+ _updatedAt: string;
102
+ backgroundImageThreeTiles: ObjectConstructor[];
103
+ column: null;
104
+ createdAt: string;
105
+ id: string;
106
+ tiles: ArrayConstructor[];
107
+ updatedAt: string;
108
+ backgroundImageJumbotron?: undefined;
109
+ subline?: undefined;
110
+ tagline?: undefined;
111
+ whiteTextColor?: undefined;
112
+ backgroundImageSubpage?: undefined;
113
+ } | {
114
+ __typename: string;
115
+ _createdAt: string;
116
+ _firstPublishedAt: string;
117
+ _isValid: boolean;
118
+ _modelApiKey: string;
119
+ _publicationScheduledAt: null;
120
+ _publishedAt: string;
121
+ _seoMetaTags: ArrayConstructor[];
122
+ _status: string;
123
+ _unpublishingScheduledAt: null;
124
+ _updatedAt: string;
125
+ backgroundImageThreeTiles: ObjectConstructor[];
126
+ column: boolean;
127
+ createdAt: string;
128
+ id: string;
129
+ tiles: ArrayConstructor[];
130
+ updatedAt: string;
131
+ backgroundImageJumbotron?: undefined;
132
+ subline?: undefined;
133
+ tagline?: undefined;
134
+ whiteTextColor?: undefined;
135
+ backgroundImageSubpage?: undefined;
136
+ })[];
137
+ seo: null;
138
+ slug: string;
139
+ updatedAt: string;
140
+ };
141
+ export default testData;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=void 0;var testData={__typename:"PageRecord",_createdAt:"2022-01-26T16:05:44+00:00",_firstPublishedAt:"2022-01-26T16:05:44+00:00",_isValid:!0,_modelApiKey:"page",_publicationScheduledAt:null,_publishedAt:"2024-08-15T14:29:41+01:00",_seoMetaTags:[{__typename:"SEOMetaTag",attributes:null,content:"Home",tag:"title"},{__typename:"SEOMetaTag",attributes:[Object],content:null,tag:"meta"},{__typename:"SEOMetaTag",attributes:[Object],content:null,tag:"meta"},{__typename:"SEOMetaTag",attributes:[Object],content:null,tag:"meta"},{__typename:"SEOMetaTag",attributes:[Object],content:null,tag:"meta"},{__typename:"SEOMetaTag",attributes:[Object],content:null,tag:"meta"},{__typename:"SEOMetaTag",attributes:[Object],content:null,tag:"meta"},{__typename:"SEOMetaTag",attributes:[Object],content:null,tag:"meta"},{__typename:"SEOMetaTag",attributes:[Object],content:null,tag:"meta"},{__typename:"SEOMetaTag",attributes:[Object],content:null,tag:"meta"},{__typename:"SEOMetaTag",attributes:[Object],content:null,tag:"meta"},{__typename:"SEOMetaTag",attributes:[Object],content:null,tag:"meta"}],_status:"published",_unpublishingScheduledAt:null,_updatedAt:"2024-08-15T14:28:43+01:00",banner:[{__typename:"BannerRecord",_createdAt:"2023-03-29T09:47:42+01:00",_firstPublishedAt:"2023-03-29T09:47:43+01:00",_isValid:!0,_modelApiKey:"banner",_publicationScheduledAt:null,_publishedAt:"2024-05-29T15:57:15+01:00",_seoMetaTags:[Array],_status:"published",_unpublishingScheduledAt:null,_updatedAt:"2024-05-29T15:57:14+01:00",chevron:!0,createdAt:"2023-03-29T09:47:42+01:00",id:"147526070",target:"/coaching",text:"<i>Next Workshop:</i><br /><em>Design Thinking</em>",updatedAt:"2024-05-29T15:57:14+01:00"}],createdAt:"2022-01-26T16:05:44+00:00",myTitle:"Home",paragraphs:[{__typename:"FullpageJumbotronRecord",_createdAt:"2022-02-25T14:48:48+00:00",_firstPublishedAt:"2022-02-25T14:48:48+00:00",_isValid:!0,_modelApiKey:"fullpage_jumbotron",_publicationScheduledAt:null,_publishedAt:"2024-08-15T14:29:41+01:00",_seoMetaTags:[Array],_status:"published",_unpublishingScheduledAt:null,_updatedAt:"2024-08-15T14:28:43+01:00",backgroundImageJumbotron:[Object],createdAt:"2022-02-25T14:48:48+00:00",id:"111913781",subline:"Softwareentwicklung von der Idee<br/>bis zum fertigen Produkt",tagline:"",updatedAt:"2024-08-15T14:28:43+01:00",whiteTextColor:!1},{__typename:"FullpageSubpageRecord",_createdAt:"2022-06-15T07:56:25+01:00",_firstPublishedAt:"2022-06-15T07:56:26+01:00",_isValid:!0,_modelApiKey:"fullpage_subpage",_publicationScheduledAt:null,_publishedAt:"2024-05-14T14:05:30+01:00",_seoMetaTags:[Array],_status:"published",_unpublishingScheduledAt:null,_updatedAt:"2024-05-14T14:05:28+01:00",backgroundImageSubpage:[Object],createdAt:"2022-06-15T07:56:25+01:00",id:"122230963",subline:"Sie fragen sich, ob Sie wirklich so viele verschiedene Dienstleister f\xFCr Ihr Produkt ben\xF6tigen? Disziplinen und Silos aufzubrechen ist unsere St\xE4rke.",tagline:"storm out of the box",updatedAt:"2024-05-14T14:05:28+01:00"},{__typename:"FullpageSubpageRecord",_createdAt:"2022-06-15T07:56:25+01:00",_firstPublishedAt:"2022-06-15T07:56:26+01:00",_isValid:!0,_modelApiKey:"fullpage_subpage",_publicationScheduledAt:null,_publishedAt:"2024-05-14T14:05:30+01:00",_seoMetaTags:[Array],_status:"published",_unpublishingScheduledAt:null,_updatedAt:"2024-05-14T14:05:28+01:00",backgroundImageSubpage:[Object],createdAt:"2022-06-15T07:56:25+01:00",id:"122230964",subline:"Von der Idee bis zum Launch bieten wir Strategie, Design und Softwareentwicklung ohne Informationsverluste aus einer Hand!",tagline:"focus on what has gravity",updatedAt:"2024-05-14T14:05:28+01:00"},{__typename:"FullpageSubpageRecord",_createdAt:"2022-02-25T14:48:48+00:00",_firstPublishedAt:"2022-02-25T14:48:48+00:00",_isValid:!0,_modelApiKey:"fullpage_subpage",_publicationScheduledAt:null,_publishedAt:"2024-05-14T14:05:30+01:00",_seoMetaTags:[Array],_status:"published",_unpublishingScheduledAt:null,_updatedAt:"2024-05-14T14:05:28+01:00",backgroundImageSubpage:[Object],createdAt:"2022-02-25T14:48:48+00:00",id:"111913782",subline:"Wir entwickeln Produkte und Marken, die Ihre Kunden lieben werden! Unser In-House Team von Entwicklern, Strategen und Designern steht f\xFCr Sie bereit.",tagline:"make it fly",updatedAt:"2024-05-14T14:05:28+01:00"},{__typename:"HomepageTilesSubpageRecord",_createdAt:"2022-02-25T16:25:38+00:00",_firstPublishedAt:"2022-02-25T16:25:38+00:00",_isValid:!0,_modelApiKey:"homepage_tiles_subpage",_publicationScheduledAt:null,_publishedAt:"2023-03-28T12:35:52+01:00",_seoMetaTags:[Array],_status:"published",_unpublishingScheduledAt:null,_updatedAt:"2023-03-28T12:35:46+01:00",backgroundImageThreeTiles:[Object],column:null,createdAt:"2022-02-25T16:25:38+00:00",id:"111937859",tiles:[Array],updatedAt:"2023-03-28T12:35:46+01:00"},{__typename:"HomepageTilesSubpageRecord",_createdAt:"2024-06-19T11:07:46+01:00",_firstPublishedAt:"2024-06-19T11:07:49+01:00",_isValid:!0,_modelApiKey:"homepage_tiles_subpage",_publicationScheduledAt:null,_publishedAt:"2024-07-23T18:02:11+01:00",_seoMetaTags:[Array],_status:"published",_unpublishingScheduledAt:null,_updatedAt:"2024-07-23T18:02:10+01:00",backgroundImageThreeTiles:[Object],column:!0,createdAt:"2024-06-19T11:07:46+01:00",id:"YZM_vT1aSzWqzNGpQORYYw",tiles:[Array],updatedAt:"2024-07-23T18:02:10+01:00"}],seo:null,slug:"home",updatedAt:"2024-08-15T14:28:43+01:00"},_default=exports["default"]=testData;
@@ -0,0 +1,5 @@
1
+ export default interface Backend {
2
+ token: string;
3
+ uri: string;
4
+ normalize(data: any): any;
5
+ }
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,8 @@
1
+ import Backend from './Backend';
2
+ export default class DatoCMS implements Backend {
3
+ token: string;
4
+ uri: string;
5
+ constructor(token: string);
6
+ renameSEOMetaTags(props: any): void;
7
+ normalize(data: any): any;
8
+ }
@@ -0,0 +1 @@
1
+ "use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=void 0;var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof")),_classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")),_createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass")),_defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty")),DatoCMS=exports["default"]=/*#__PURE__*/function(){function a(b){(0,_classCallCheck2["default"])(this,a),(0,_defineProperty2["default"])(this,"token",""),(0,_defineProperty2["default"])(this,"uri","https://graphql.datocms.com/"),this.token=b}return(0,_createClass2["default"])(a,[{key:"renameSEOMetaTags",value:function(a){a.forEach(function(a,b,c){c[b].__typename="SEOMetaTag"})}},{key:"normalize",value:function(a){var b=this;if(a)return a._seoMetaTags&&this.renameSEOMetaTags(a._seoMetaTags),Object.keys(a).forEach(function(c){Array.isArray(a[c])&&(a[c]=a[c].map(function(a){return b.normalize(a)})),!a[c]||"object"!==(0,_typeof2["default"])(a[c])||(a[c]=b.normalize(a[c]))}),a}}])}();
@@ -0,0 +1,8 @@
1
+ import Backend from './Backend';
2
+ export default class StrapiCMS implements Backend {
3
+ token: string;
4
+ uri: string;
5
+ constructor(token: string, strapiUrl: string);
6
+ renameSEOMetaTags(props: any): void;
7
+ normalize(data: any): any;
8
+ }
@@ -0,0 +1 @@
1
+ "use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=void 0;var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof")),_classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")),_createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass")),_defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty")),_dotenv=_interopRequireDefault(require("dotenv"));_dotenv["default"].config();var StrapiCMS=exports["default"]=/*#__PURE__*/function(){function a(b,c){(0,_classCallCheck2["default"])(this,a),(0,_defineProperty2["default"])(this,"token",""),(0,_defineProperty2["default"])(this,"uri",""),this.token=b,this.uri=c}return(0,_createClass2["default"])(a,[{key:"renameSEOMetaTags",value:function(a){a.forEach(function(a,b,c){c[b].__typename="SEOMetaTag"})}},{key:"normalize",value:function(a){var b=this;return a?(a._seoMetaTags&&this.renameSEOMetaTags(a._seoMetaTags),Object.keys(a).forEach(function(c){Array.isArray(a[c])&&(a[c]=a[c].map(function(a){return b.normalize(a)})),!a[c]||"object"!==(0,_typeof2["default"])(a[c])||(a[c]=b.normalize(a[c]))}),a):a}}])}();
@@ -0,0 +1,5 @@
1
+ import DatoCMS from './DatoCMS';
2
+ import StrapiCMS from './StrapiCMS';
3
+ import Backend from './Backend';
4
+ export { DatoCMS, StrapiCMS };
5
+ export type { Backend };
@@ -0,0 +1 @@
1
+ "use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"DatoCMS",{enumerable:!0,get:function(){return _DatoCMS["default"]}}),Object.defineProperty(exports,"StrapiCMS",{enumerable:!0,get:function(){return _StrapiCMS["default"]}});var _DatoCMS=_interopRequireDefault(require("./DatoCMS")),_StrapiCMS=_interopRequireDefault(require("./StrapiCMS"));
@@ -0,0 +1 @@
1
+ export default function DodoComponent(props: any): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1 @@
1
+ "use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault"),_typeof3=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=DodoComponent;var _Paper2=_interopRequireDefault(require("@mui/material/Paper")),_typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof")),_Accordion2=_interopRequireDefault(require("@mui/material/Accordion")),_AccordionDetails2=_interopRequireDefault(require("@mui/material/AccordionDetails")),_AccordionSummary2=_interopRequireDefault(require("@mui/material/AccordionSummary")),React=_interopRequireWildcard(require("react")),_ExpandMore=_interopRequireDefault(require("@mui/icons-material/ExpandMore"));function _getRequireWildcardCache(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(_getRequireWildcardCache=function(a){return a?c:b})(a)}function _interopRequireWildcard(b,c){if(!c&&b&&b.__esModule)return b;if(null===b||"object"!=_typeof3(b)&&"function"!=typeof b)return{default:b};var d=_getRequireWildcardCache(c);if(d&&d.has(b))return d.get(b);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in b)if("default"!=a&&{}.hasOwnProperty.call(b,a)){var g=f?Object.getOwnPropertyDescriptor(b,a):null;g&&(g.get||g.set)?Object.defineProperty(e,a,g):e[a]=b[a]}return e["default"]=b,d&&d.set(b,e),e}function renderArray(a,b,c){return/*#__PURE__*/React.createElement(_Accordion2["default"],{key:"".concat(a,"_").concat(c),style:{width:"100%"}},/*#__PURE__*/React.createElement(_AccordionSummary2["default"],{style:{padding:0},expandIcon:/*#__PURE__*/React.createElement(_ExpandMore["default"],null)},a,": Array[",b.length,"]"),/*#__PURE__*/React.createElement(_AccordionDetails2["default"],null,b.map(function(a,b){return renderData("",a,b)})))}function renderObject(a,b,c){return/*#__PURE__*/React.createElement(_Accordion2["default"],{key:"".concat(a,"_").concat(c),style:{width:"100%"}},/*#__PURE__*/React.createElement(_AccordionSummary2["default"],{expandIcon:/*#__PURE__*/React.createElement(_ExpandMore["default"],null)},a),/*#__PURE__*/React.createElement(_AccordionDetails2["default"],null,Object.entries(b).map(function(a,b){return renderData(a[0],a[1],b)})))}function renderSimple(a,b,c){return/*#__PURE__*/React.createElement("div",{key:"".concat(a,"_").concat(c)},a,": ","".concat(b))}function renderData(a,b,c){var d;if(Array.isArray(b))return renderArray(a,b,c);if(!b||["string","number"].includes((0,_typeof2["default"])(b)))return renderSimple(a,b,c);if("boolean"==typeof b)return renderSimple(a,b?"true":"false",c);var e="".concat(a?a+": ":"").concat(null!==(d=b.__typename)&&void 0!==d?d:"object");return renderObject(e,b,c)}function DodoComponent(a){return"object"===(0,_typeof2["default"])(a.data)?/*#__PURE__*/React.createElement(_Paper2["default"],{style:{margin:".5em",width:"calc(100% - 1em)"}},renderData("",a.data,1)):null}
@@ -0,0 +1,4 @@
1
+ export declare function QueenofheartsRenderComponent(props: {
2
+ data: {} | [];
3
+ contextProps?: any;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ "use strict";var _typeof=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:!0}),exports.QueenofheartsRenderComponent=QueenofheartsRenderComponent;var _react=_interopRequireWildcard(require("react")),_index=require("../index");function _getRequireWildcardCache(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(_getRequireWildcardCache=function(a){return a?c:b})(a)}function _interopRequireWildcard(b,c){if(!c&&b&&b.__esModule)return b;if(null===b||"object"!=_typeof(b)&&"function"!=typeof b)return{default:b};var d=_getRequireWildcardCache(c);if(d&&d.has(b))return d.get(b);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in b)if("default"!=a&&{}.hasOwnProperty.call(b,a)){var g=f?Object.getOwnPropertyDescriptor(b,a):null;g&&(g.get||g.set)?Object.defineProperty(e,a,g):e[a]=b[a]}return e["default"]=b,d&&d.set(b,e),e}function QueenofheartsRenderComponent(a){var b=_index.QueenofheartsService.getInstance(),c=a.data,d=a.contextProps;if(c&&b)return Array.isArray(c)?/*#__PURE__*/_react["default"].createElement(_react.Suspense,null,c.map(function(a){return b.createComponent({data:a,contextProps:d})})):/*#__PURE__*/_react["default"].createElement(_react.Suspense,null,b.createComponent({data:c,contextProps:d}));return b?/*#__PURE__*/_react["default"].createElement("div",{className:"error"},"QueenofheartsRenderComponent: Invalid data received."):/*#__PURE__*/_react["default"].createElement("div",null,"QueenofheartsService is not initialized")}
@@ -0,0 +1 @@
1
+ "use strict";
package/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from './components/QueenofheartsRenderComponent';
2
+ export * from './QueenofheartsService';
3
+ export * from './backend/index';
4
+ export * from './ApiError';
package/index.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";var _QueenofheartsRenderComponent=require("./components/QueenofheartsRenderComponent");var _QueenofheartsService=require("./QueenofheartsService");var _index=require("./backend/index");var _ApiError=require("./ApiError");Object.defineProperty(exports,"__esModule",{value:!0});Object.keys(_QueenofheartsRenderComponent).forEach(function(a){"default"===a||"__esModule"===a||a in exports&&exports[a]===_QueenofheartsRenderComponent[a]||Object.defineProperty(exports,a,{enumerable:!0,get:function(){return _QueenofheartsRenderComponent[a]}})});Object.keys(_QueenofheartsService).forEach(function(a){"default"===a||"__esModule"===a||a in exports&&exports[a]===_QueenofheartsService[a]||Object.defineProperty(exports,a,{enumerable:!0,get:function(){return _QueenofheartsService[a]}})});Object.keys(_index).forEach(function(a){"default"===a||"__esModule"===a||a in exports&&exports[a]===_index[a]||Object.defineProperty(exports,a,{enumerable:!0,get:function(){return _index[a]}})});Object.keys(_ApiError).forEach(function(a){"default"===a||"__esModule"===a||a in exports&&exports[a]===_ApiError[a]||Object.defineProperty(exports,a,{enumerable:!0,get:function(){return _ApiError[a]}})});
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@qoh/core-react",
3
3
  "description": "headlessli React API",
4
- "version": "1.0.0-rc.7",
4
+ "version": "1.0.0-rc.8",
5
5
  "license": "MIT",
6
- "main": "lib/index.js",
7
- "module": "lib/index.js",
8
- "types": "lib/index.d.ts",
6
+ "main": "index.js",
7
+ "module": "index.js",
8
+ "types": "index.d.ts",
9
9
  "files": [
10
- "/lib",
10
+ "/*",
11
11
  "/*.md"
12
12
  ],
13
13
  "dependencies": {