@xyo-network/react-payload-plugin-resolver 2.28.0
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/LICENSE +165 -0
- package/README.md +70 -0
- package/dist/cjs/XyoPayloadRenderPluginResolver.d.ts +10 -0
- package/dist/cjs/XyoPayloadRenderPluginResolver.d.ts.map +1 -0
- package/dist/cjs/XyoPayloadRenderPluginResolver.js +37 -0
- package/dist/cjs/XyoPayloadRenderPluginResolver.js.map +1 -0
- package/dist/cjs/contexts/PayloadPluginResolver/Context.d.ts +5 -0
- package/dist/cjs/contexts/PayloadPluginResolver/Context.d.ts.map +1 -0
- package/dist/cjs/contexts/PayloadPluginResolver/Context.js +7 -0
- package/dist/cjs/contexts/PayloadPluginResolver/Context.js.map +1 -0
- package/dist/cjs/contexts/PayloadPluginResolver/Provider.d.ts +8 -0
- package/dist/cjs/contexts/PayloadPluginResolver/Provider.d.ts.map +1 -0
- package/dist/cjs/contexts/PayloadPluginResolver/Provider.js +16 -0
- package/dist/cjs/contexts/PayloadPluginResolver/Provider.js.map +1 -0
- package/dist/cjs/contexts/PayloadPluginResolver/State.d.ts +7 -0
- package/dist/cjs/contexts/PayloadPluginResolver/State.d.ts.map +1 -0
- package/dist/cjs/contexts/PayloadPluginResolver/State.js +3 -0
- package/dist/cjs/contexts/PayloadPluginResolver/State.js.map +1 -0
- package/dist/cjs/contexts/PayloadPluginResolver/index.d.ts +5 -0
- package/dist/cjs/contexts/PayloadPluginResolver/index.d.ts.map +1 -0
- package/dist/cjs/contexts/PayloadPluginResolver/index.js +8 -0
- package/dist/cjs/contexts/PayloadPluginResolver/index.js.map +1 -0
- package/dist/cjs/contexts/PayloadPluginResolver/use.d.ts +2 -0
- package/dist/cjs/contexts/PayloadPluginResolver/use.d.ts.map +1 -0
- package/dist/cjs/contexts/PayloadPluginResolver/use.js +10 -0
- package/dist/cjs/contexts/PayloadPluginResolver/use.js.map +1 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/Context.d.ts +5 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/Context.d.ts.map +1 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/Context.js +7 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/Context.js.map +1 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/Provider.d.ts +8 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/Provider.d.ts.map +1 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/Provider.js +16 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/Provider.js.map +1 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/State.d.ts +7 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/State.d.ts.map +1 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/State.js +3 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/State.js.map +1 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/index.d.ts +5 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/index.d.ts.map +1 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/index.js +8 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/index.js.map +1 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/use.d.ts +2 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/use.d.ts.map +1 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/use.js +10 -0
- package/dist/cjs/contexts/PayloadRenderPluginResolver/use.js.map +1 -0
- package/dist/cjs/contexts/index.d.ts +3 -0
- package/dist/cjs/contexts/index.d.ts.map +1 -0
- package/dist/cjs/contexts/index.js +6 -0
- package/dist/cjs/contexts/index.js.map +1 -0
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/docs.json +1035 -0
- package/dist/esm/XyoPayloadRenderPluginResolver.d.ts +10 -0
- package/dist/esm/XyoPayloadRenderPluginResolver.d.ts.map +1 -0
- package/dist/esm/XyoPayloadRenderPluginResolver.js +30 -0
- package/dist/esm/XyoPayloadRenderPluginResolver.js.map +1 -0
- package/dist/esm/contexts/PayloadPluginResolver/Context.d.ts +5 -0
- package/dist/esm/contexts/PayloadPluginResolver/Context.d.ts.map +1 -0
- package/dist/esm/contexts/PayloadPluginResolver/Context.js +4 -0
- package/dist/esm/contexts/PayloadPluginResolver/Context.js.map +1 -0
- package/dist/esm/contexts/PayloadPluginResolver/Provider.d.ts +8 -0
- package/dist/esm/contexts/PayloadPluginResolver/Provider.d.ts.map +1 -0
- package/dist/esm/contexts/PayloadPluginResolver/Provider.js +12 -0
- package/dist/esm/contexts/PayloadPluginResolver/Provider.js.map +1 -0
- package/dist/esm/contexts/PayloadPluginResolver/State.d.ts +7 -0
- package/dist/esm/contexts/PayloadPluginResolver/State.d.ts.map +1 -0
- package/dist/esm/contexts/PayloadPluginResolver/State.js +2 -0
- package/dist/esm/contexts/PayloadPluginResolver/State.js.map +1 -0
- package/dist/esm/contexts/PayloadPluginResolver/index.d.ts +5 -0
- package/dist/esm/contexts/PayloadPluginResolver/index.d.ts.map +1 -0
- package/dist/esm/contexts/PayloadPluginResolver/index.js +5 -0
- package/dist/esm/contexts/PayloadPluginResolver/index.js.map +1 -0
- package/dist/esm/contexts/PayloadPluginResolver/use.d.ts +2 -0
- package/dist/esm/contexts/PayloadPluginResolver/use.d.ts.map +1 -0
- package/dist/esm/contexts/PayloadPluginResolver/use.js +6 -0
- package/dist/esm/contexts/PayloadPluginResolver/use.js.map +1 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/Context.d.ts +5 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/Context.d.ts.map +1 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/Context.js +4 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/Context.js.map +1 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/Provider.d.ts +8 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/Provider.d.ts.map +1 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/Provider.js +12 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/Provider.js.map +1 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/State.d.ts +7 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/State.d.ts.map +1 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/State.js +2 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/State.js.map +1 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/index.d.ts +5 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/index.d.ts.map +1 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/index.js +5 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/index.js.map +1 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/use.d.ts +2 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/use.d.ts.map +1 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/use.js +6 -0
- package/dist/esm/contexts/PayloadRenderPluginResolver/use.js.map +1 -0
- package/dist/esm/contexts/index.d.ts +3 -0
- package/dist/esm/contexts/index.d.ts.map +1 -0
- package/dist/esm/contexts/index.js +3 -0
- package/dist/esm/contexts/index.js.map +1 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/package.json +68 -0
- package/src/XyoPayloadRenderPluginResolver.ts +35 -0
- package/src/contexts/PayloadPluginResolver/Context.ts +7 -0
- package/src/contexts/PayloadPluginResolver/Provider.tsx +29 -0
- package/src/contexts/PayloadPluginResolver/State.ts +7 -0
- package/src/contexts/PayloadPluginResolver/index.ts +4 -0
- package/src/contexts/PayloadPluginResolver/use.ts +7 -0
- package/src/contexts/PayloadRenderPluginResolver/Context.ts +7 -0
- package/src/contexts/PayloadRenderPluginResolver/Provider.tsx +29 -0
- package/src/contexts/PayloadRenderPluginResolver/State.ts +8 -0
- package/src/contexts/PayloadRenderPluginResolver/index.ts +4 -0
- package/src/contexts/PayloadRenderPluginResolver/use.ts +7 -0
- package/src/contexts/index.ts +2 -0
- package/src/index.ts +2 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { XyoPayload } from '@xyo-network/payload';
|
|
2
|
+
import { XyoPayloadRenderPlugin } from '@xyo-network/react-payload-plugin';
|
|
3
|
+
export declare class XyoPayloadRenderPluginResolver {
|
|
4
|
+
protected plugins: XyoPayloadRenderPlugin[];
|
|
5
|
+
protected schemaDefaultPlugin: Map<string, XyoPayloadRenderPlugin>;
|
|
6
|
+
register(plugin: XyoPayloadRenderPlugin, defaultForSchema?: string[]): this;
|
|
7
|
+
resolve(payload: XyoPayload): XyoPayloadRenderPlugin | undefined;
|
|
8
|
+
list(payload?: XyoPayload): XyoPayloadRenderPlugin[];
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=XyoPayloadRenderPluginResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XyoPayloadRenderPluginResolver.d.ts","sourceRoot":"","sources":["../../src/XyoPayloadRenderPluginResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAE1E,qBAAa,8BAA8B;IACzC,SAAS,CAAC,OAAO,EAAE,sBAAsB,EAAE,CAAK;IAChD,SAAS,CAAC,mBAAmB,sCAA4C;IAElE,QAAQ,CAAC,MAAM,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE;IASpE,OAAO,CAAC,OAAO,EAAE,UAAU;IAI3B,IAAI,CAAC,OAAO,CAAC,EAAE,UAAU;CAajC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/sdk-js';
|
|
2
|
+
export class XyoPayloadRenderPluginResolver {
|
|
3
|
+
plugins = [];
|
|
4
|
+
schemaDefaultPlugin = new Map();
|
|
5
|
+
register(plugin, defaultForSchema) {
|
|
6
|
+
this.plugins.push(plugin);
|
|
7
|
+
defaultForSchema?.forEach((schema) => {
|
|
8
|
+
assertEx(plugin.canRender({ schema }), 'Default renderer must be able to render schema');
|
|
9
|
+
this.schemaDefaultPlugin.set(schema, plugin);
|
|
10
|
+
});
|
|
11
|
+
return this;
|
|
12
|
+
}
|
|
13
|
+
resolve(payload) {
|
|
14
|
+
return this.schemaDefaultPlugin.get(payload.schema) ?? [...this.plugins.values()].find((plugin) => plugin.canRender(payload));
|
|
15
|
+
}
|
|
16
|
+
list(payload) {
|
|
17
|
+
if (!payload) {
|
|
18
|
+
return this.plugins;
|
|
19
|
+
}
|
|
20
|
+
const defaultPlugin = this.schemaDefaultPlugin.get(payload.schema);
|
|
21
|
+
const result = defaultPlugin ? [defaultPlugin] : [];
|
|
22
|
+
this.plugins.some((plugin) => {
|
|
23
|
+
if (defaultPlugin !== plugin && plugin.canRender(payload)) {
|
|
24
|
+
result.push(plugin);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=XyoPayloadRenderPluginResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XyoPayloadRenderPluginResolver.js","sourceRoot":"","sources":["../../src/XyoPayloadRenderPluginResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAIzC,MAAM,OAAO,8BAA8B;IAC/B,OAAO,GAA6B,EAAE,CAAA;IACtC,mBAAmB,GAAG,IAAI,GAAG,EAAkC,CAAA;IAElE,QAAQ,CAAC,MAA8B,EAAE,gBAA2B;QACzE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACzB,gBAAgB,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACnC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,gDAAgD,CAAC,CAAA;YACxF,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,OAAO,CAAC,OAAmB;QAChC,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IAC/H,CAAC;IAEM,IAAI,CAAC,OAAoB;QAC9B,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC,OAAO,CAAA;SACpB;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAClE,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACnD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3B,IAAI,aAAa,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBACzD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;aACpB;QACH,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { PayloadPluginResolverState } from './State';
|
|
3
|
+
declare const PayloadPluginResolverContext: import("react").Context<PayloadPluginResolverState & import("@xyo-network/react-shared").ContextExState>;
|
|
4
|
+
export { PayloadPluginResolverContext };
|
|
5
|
+
//# sourceMappingURL=Context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../../src/contexts/PayloadPluginResolver/Context.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAEpD,QAAA,MAAM,4BAA4B,0GAAgD,CAAA;AAElF,OAAO,EAAE,4BAA4B,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../../src/contexts/PayloadPluginResolver/Context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAI3D,MAAM,4BAA4B,GAAG,eAAe,EAA8B,CAAA;AAElF,OAAO,EAAE,4BAA4B,EAAE,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { XyoPayloadPluginResolver } from '@xyo-network/payload-plugin';
|
|
3
|
+
import { ContextExProviderProps } from '@xyo-network/react-shared';
|
|
4
|
+
export declare type PayloadPluginResolverProviderProps = ContextExProviderProps<{
|
|
5
|
+
resolver: XyoPayloadPluginResolver;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const PayloadPluginResolverProvider: React.FC<PayloadPluginResolverProviderProps>;
|
|
8
|
+
//# sourceMappingURL=Provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/PayloadPluginResolver/Provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAKlE,oBAAY,kCAAkC,GAAG,sBAAsB,CAAC;IACtE,QAAQ,EAAE,wBAAwB,CAAA;CACnC,CAAC,CAAA;AAEF,eAAO,MAAM,6BAA6B,EAAE,KAAK,CAAC,EAAE,CAAC,kCAAkC,CAkBtF,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { PayloadPluginResolverContext } from './Context';
|
|
4
|
+
export const PayloadPluginResolverProvider = ({ resolver: resolverProp, required = false, children, }) => {
|
|
5
|
+
const [resolver, setResolver] = useState(resolverProp);
|
|
6
|
+
return (_jsx(PayloadPluginResolverContext.Provider, { value: {
|
|
7
|
+
provided: true,
|
|
8
|
+
resolver,
|
|
9
|
+
setResolver,
|
|
10
|
+
}, children: resolver ? children : required ? null : children }));
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=Provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/contexts/PayloadPluginResolver/Provider.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAA;AAMxD,MAAM,CAAC,MAAM,6BAA6B,GAAiD,CAAC,EAC1F,QAAQ,EAAE,YAAY,EACtB,QAAQ,GAAG,KAAK,EAChB,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAA2B,YAAY,CAAC,CAAA;IAEhF,OAAO,CACL,KAAC,4BAA4B,CAAC,QAAQ,IACpC,KAAK,EAAE;YACL,QAAQ,EAAE,IAAI;YACd,QAAQ;YACR,WAAW;SACZ,YAEA,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GACX,CACzC,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { XyoPayloadPluginResolver } from '@xyo-network/payload-plugin';
|
|
2
|
+
import { Dispatch } from 'react';
|
|
3
|
+
export interface PayloadPluginResolverState {
|
|
4
|
+
resolver?: XyoPayloadPluginResolver;
|
|
5
|
+
setResolver?: Dispatch<XyoPayloadPluginResolver>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=State.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../../src/contexts/PayloadPluginResolver/State.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,wBAAwB,CAAA;IACnC,WAAW,CAAC,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAA;CACjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"State.js","sourceRoot":"","sources":["../../../../src/contexts/PayloadPluginResolver/State.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/contexts/PayloadPluginResolver/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/contexts/PayloadPluginResolver/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../../src/contexts/PayloadPluginResolver/use.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,wBAAwB,6IAEpC,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { useContextEx } from '@xyo-network/react-shared';
|
|
2
|
+
import { PayloadPluginResolverContext } from './Context';
|
|
3
|
+
export const usePayloadPluginResolver = (required = false) => {
|
|
4
|
+
return useContextEx(PayloadPluginResolverContext, 'PayloadPluginResolver', required);
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=use.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use.js","sourceRoot":"","sources":["../../../../src/contexts/PayloadPluginResolver/use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,OAAO,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAA;AAExD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,EAAE;IAC3D,OAAO,YAAY,CAAC,4BAA4B,EAAE,uBAAuB,EAAE,QAAQ,CAAC,CAAA;AACtF,CAAC,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { PayloadRenderPluginResolverState } from './State';
|
|
3
|
+
declare const PayloadRenderPluginResolverContext: import("react").Context<PayloadRenderPluginResolverState & import("@xyo-network/react-shared").ContextExState>;
|
|
4
|
+
export { PayloadRenderPluginResolverContext };
|
|
5
|
+
//# sourceMappingURL=Context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../../src/contexts/PayloadRenderPluginResolver/Context.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,gCAAgC,EAAE,MAAM,SAAS,CAAA;AAE1D,QAAA,MAAM,kCAAkC,gHAAsD,CAAA;AAE9F,OAAO,EAAE,kCAAkC,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../../src/contexts/PayloadRenderPluginResolver/Context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAI3D,MAAM,kCAAkC,GAAG,eAAe,EAAoC,CAAA;AAE9F,OAAO,EAAE,kCAAkC,EAAE,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ContextExProviderProps } from '@xyo-network/react-shared';
|
|
3
|
+
import { XyoPayloadRenderPluginResolver } from '../../XyoPayloadRenderPluginResolver';
|
|
4
|
+
export declare type PayloadRenderPluginResolverProviderProps = ContextExProviderProps<{
|
|
5
|
+
resolver: XyoPayloadRenderPluginResolver;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const PayloadRenderPluginResolverProvider: React.FC<PayloadRenderPluginResolverProviderProps>;
|
|
8
|
+
//# sourceMappingURL=Provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/PayloadRenderPluginResolver/Provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAGlE,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAA;AAGrF,oBAAY,wCAAwC,GAAG,sBAAsB,CAAC;IAC5E,QAAQ,EAAE,8BAA8B,CAAA;CACzC,CAAC,CAAA;AAEF,eAAO,MAAM,mCAAmC,EAAE,KAAK,CAAC,EAAE,CAAC,wCAAwC,CAkBlG,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { PayloadRenderPluginResolverContext } from './Context';
|
|
4
|
+
export const PayloadRenderPluginResolverProvider = ({ resolver: resolverProp, required = false, children, }) => {
|
|
5
|
+
const [resolver, setResolver] = useState(resolverProp);
|
|
6
|
+
return (_jsx(PayloadRenderPluginResolverContext.Provider, { value: {
|
|
7
|
+
provided: true,
|
|
8
|
+
resolver,
|
|
9
|
+
setResolver,
|
|
10
|
+
}, children: resolver ? children : required ? null : children }));
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=Provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/contexts/PayloadRenderPluginResolver/Provider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGhC,OAAO,EAAE,kCAAkC,EAAE,MAAM,WAAW,CAAA;AAM9D,MAAM,CAAC,MAAM,mCAAmC,GAAuD,CAAC,EACtG,QAAQ,EAAE,YAAY,EACtB,QAAQ,GAAG,KAAK,EAChB,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAiC,YAAY,CAAC,CAAA;IAEtF,OAAO,CACL,KAAC,kCAAkC,CAAC,QAAQ,IAC1C,KAAK,EAAE;YACL,QAAQ,EAAE,IAAI;YACd,QAAQ;YACR,WAAW;SACZ,YAEA,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GACL,CAC/C,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Dispatch } from 'react';
|
|
2
|
+
import { XyoPayloadRenderPluginResolver } from '../../XyoPayloadRenderPluginResolver';
|
|
3
|
+
export interface PayloadRenderPluginResolverState {
|
|
4
|
+
resolver?: XyoPayloadRenderPluginResolver;
|
|
5
|
+
setResolver?: Dispatch<XyoPayloadRenderPluginResolver>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=State.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../../src/contexts/PayloadRenderPluginResolver/State.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAA;AAErF,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,EAAE,8BAA8B,CAAA;IACzC,WAAW,CAAC,EAAE,QAAQ,CAAC,8BAA8B,CAAC,CAAA;CACvD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"State.js","sourceRoot":"","sources":["../../../../src/contexts/PayloadRenderPluginResolver/State.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/contexts/PayloadRenderPluginResolver/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/contexts/PayloadRenderPluginResolver/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../../src/contexts/PayloadRenderPluginResolver/use.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,8BAA8B,mJAE1C,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { useContextEx } from '@xyo-network/react-shared';
|
|
2
|
+
import { PayloadRenderPluginResolverContext } from './Context';
|
|
3
|
+
export const usePayloadRenderPluginResolver = (required = false) => {
|
|
4
|
+
return useContextEx(PayloadRenderPluginResolverContext, 'PayloadRenderPluginResolver', required);
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=use.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use.js","sourceRoot":"","sources":["../../../../src/contexts/PayloadRenderPluginResolver/use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,OAAO,EAAE,kCAAkC,EAAE,MAAM,WAAW,CAAA;AAE9D,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,EAAE;IACjE,OAAO,YAAY,CAAC,kCAAkC,EAAE,6BAA6B,EAAE,QAAQ,CAAC,CAAA;AAClG,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contexts/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contexts/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,kCAAkC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,kCAAkC,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@xyo-network/react-payload-plugin-resolver",
|
|
3
|
+
"author": {
|
|
4
|
+
"email": "support@xyo.network",
|
|
5
|
+
"name": "XYO Development Team",
|
|
6
|
+
"url": "https://xyo.network"
|
|
7
|
+
},
|
|
8
|
+
"bugs": {
|
|
9
|
+
"email": "support@xyo.network",
|
|
10
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@xylabs/sdk-js": "^2.6.6",
|
|
14
|
+
"@xyo-network/payload": "^2.26.7",
|
|
15
|
+
"@xyo-network/payload-plugin": "^2.26.7",
|
|
16
|
+
"@xyo-network/react-payload-plugin": "^2.28.0",
|
|
17
|
+
"@xyo-network/react-shared": "^2.28.0",
|
|
18
|
+
"react": "^18.2.0",
|
|
19
|
+
"tslib": "^2.4.0"
|
|
20
|
+
},
|
|
21
|
+
"description": "Common React library for all XYO projects that use React",
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@xylabs/tsconfig-dom": "^2.5.119"
|
|
24
|
+
},
|
|
25
|
+
"browser": "dist/esm/index.js",
|
|
26
|
+
"docs": "dist/docs.json",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"node": {
|
|
30
|
+
"import": "./dist/esm/index.js",
|
|
31
|
+
"require": "./dist/cjs/index.js"
|
|
32
|
+
},
|
|
33
|
+
"browser": {
|
|
34
|
+
"import": "./dist/esm/index.js",
|
|
35
|
+
"require": "./dist/cjs/index.js"
|
|
36
|
+
},
|
|
37
|
+
"default": "./dist/esm/index.js"
|
|
38
|
+
},
|
|
39
|
+
"./dist/docs.json": {
|
|
40
|
+
"default": "./dist/docs.json"
|
|
41
|
+
},
|
|
42
|
+
"./package.json": "./package.json"
|
|
43
|
+
},
|
|
44
|
+
"main": "dist/cjs/index.js",
|
|
45
|
+
"module": "dist/esm/index.js",
|
|
46
|
+
"homepage": "https://xyo.network",
|
|
47
|
+
"keywords": [
|
|
48
|
+
"xyo",
|
|
49
|
+
"utility",
|
|
50
|
+
"typescript",
|
|
51
|
+
"react"
|
|
52
|
+
],
|
|
53
|
+
"license": "LGPL-3.0",
|
|
54
|
+
"publishConfig": {
|
|
55
|
+
"access": "public"
|
|
56
|
+
},
|
|
57
|
+
"repository": {
|
|
58
|
+
"type": "git",
|
|
59
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js.git"
|
|
60
|
+
},
|
|
61
|
+
"scripts": {
|
|
62
|
+
"lint-pkg": "npmPkgJsonLint .",
|
|
63
|
+
"license": "yarn license-checker --exclude \"MIT, ISC, Apache-2.0, BSD, BSD-2-Clause, CC-BY-4.0, Unlicense, CC-BY-3.0, CC0-1.0\""
|
|
64
|
+
},
|
|
65
|
+
"sideEffects": false,
|
|
66
|
+
"types": "dist/esm/index.d.ts",
|
|
67
|
+
"version": "2.28.0"
|
|
68
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/sdk-js'
|
|
2
|
+
import { XyoPayload } from '@xyo-network/payload'
|
|
3
|
+
import { XyoPayloadRenderPlugin } from '@xyo-network/react-payload-plugin'
|
|
4
|
+
|
|
5
|
+
export class XyoPayloadRenderPluginResolver {
|
|
6
|
+
protected plugins: XyoPayloadRenderPlugin[] = []
|
|
7
|
+
protected schemaDefaultPlugin = new Map<string, XyoPayloadRenderPlugin>()
|
|
8
|
+
|
|
9
|
+
public register(plugin: XyoPayloadRenderPlugin, defaultForSchema?: string[]) {
|
|
10
|
+
this.plugins.push(plugin)
|
|
11
|
+
defaultForSchema?.forEach((schema) => {
|
|
12
|
+
assertEx(plugin.canRender({ schema }), 'Default renderer must be able to render schema')
|
|
13
|
+
this.schemaDefaultPlugin.set(schema, plugin)
|
|
14
|
+
})
|
|
15
|
+
return this
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public resolve(payload: XyoPayload) {
|
|
19
|
+
return this.schemaDefaultPlugin.get(payload.schema) ?? [...this.plugins.values()].find((plugin) => plugin.canRender(payload))
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
public list(payload?: XyoPayload) {
|
|
23
|
+
if (!payload) {
|
|
24
|
+
return this.plugins
|
|
25
|
+
}
|
|
26
|
+
const defaultPlugin = this.schemaDefaultPlugin.get(payload.schema)
|
|
27
|
+
const result = defaultPlugin ? [defaultPlugin] : []
|
|
28
|
+
this.plugins.some((plugin) => {
|
|
29
|
+
if (defaultPlugin !== plugin && plugin.canRender(payload)) {
|
|
30
|
+
result.push(plugin)
|
|
31
|
+
}
|
|
32
|
+
})
|
|
33
|
+
return result
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { XyoPayloadPluginResolver } from '@xyo-network/payload-plugin'
|
|
2
|
+
import { ContextExProviderProps } from '@xyo-network/react-shared'
|
|
3
|
+
import { useState } from 'react'
|
|
4
|
+
|
|
5
|
+
import { PayloadPluginResolverContext } from './Context'
|
|
6
|
+
|
|
7
|
+
export type PayloadPluginResolverProviderProps = ContextExProviderProps<{
|
|
8
|
+
resolver: XyoPayloadPluginResolver
|
|
9
|
+
}>
|
|
10
|
+
|
|
11
|
+
export const PayloadPluginResolverProvider: React.FC<PayloadPluginResolverProviderProps> = ({
|
|
12
|
+
resolver: resolverProp,
|
|
13
|
+
required = false,
|
|
14
|
+
children,
|
|
15
|
+
}) => {
|
|
16
|
+
const [resolver, setResolver] = useState<XyoPayloadPluginResolver>(resolverProp)
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<PayloadPluginResolverContext.Provider
|
|
20
|
+
value={{
|
|
21
|
+
provided: true,
|
|
22
|
+
resolver,
|
|
23
|
+
setResolver,
|
|
24
|
+
}}
|
|
25
|
+
>
|
|
26
|
+
{resolver ? children : required ? null : children}
|
|
27
|
+
</PayloadPluginResolverContext.Provider>
|
|
28
|
+
)
|
|
29
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { useContextEx } from '@xyo-network/react-shared'
|
|
2
|
+
|
|
3
|
+
import { PayloadPluginResolverContext } from './Context'
|
|
4
|
+
|
|
5
|
+
export const usePayloadPluginResolver = (required = false) => {
|
|
6
|
+
return useContextEx(PayloadPluginResolverContext, 'PayloadPluginResolver', required)
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createContextEx } from '@xyo-network/react-shared'
|
|
2
|
+
|
|
3
|
+
import { PayloadRenderPluginResolverState } from './State'
|
|
4
|
+
|
|
5
|
+
const PayloadRenderPluginResolverContext = createContextEx<PayloadRenderPluginResolverState>()
|
|
6
|
+
|
|
7
|
+
export { PayloadRenderPluginResolverContext }
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ContextExProviderProps } from '@xyo-network/react-shared'
|
|
2
|
+
import { useState } from 'react'
|
|
3
|
+
|
|
4
|
+
import { XyoPayloadRenderPluginResolver } from '../../XyoPayloadRenderPluginResolver'
|
|
5
|
+
import { PayloadRenderPluginResolverContext } from './Context'
|
|
6
|
+
|
|
7
|
+
export type PayloadRenderPluginResolverProviderProps = ContextExProviderProps<{
|
|
8
|
+
resolver: XyoPayloadRenderPluginResolver
|
|
9
|
+
}>
|
|
10
|
+
|
|
11
|
+
export const PayloadRenderPluginResolverProvider: React.FC<PayloadRenderPluginResolverProviderProps> = ({
|
|
12
|
+
resolver: resolverProp,
|
|
13
|
+
required = false,
|
|
14
|
+
children,
|
|
15
|
+
}) => {
|
|
16
|
+
const [resolver, setResolver] = useState<XyoPayloadRenderPluginResolver>(resolverProp)
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<PayloadRenderPluginResolverContext.Provider
|
|
20
|
+
value={{
|
|
21
|
+
provided: true,
|
|
22
|
+
resolver,
|
|
23
|
+
setResolver,
|
|
24
|
+
}}
|
|
25
|
+
>
|
|
26
|
+
{resolver ? children : required ? null : children}
|
|
27
|
+
</PayloadRenderPluginResolverContext.Provider>
|
|
28
|
+
)
|
|
29
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Dispatch } from 'react'
|
|
2
|
+
|
|
3
|
+
import { XyoPayloadRenderPluginResolver } from '../../XyoPayloadRenderPluginResolver'
|
|
4
|
+
|
|
5
|
+
export interface PayloadRenderPluginResolverState {
|
|
6
|
+
resolver?: XyoPayloadRenderPluginResolver
|
|
7
|
+
setResolver?: Dispatch<XyoPayloadRenderPluginResolver>
|
|
8
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { useContextEx } from '@xyo-network/react-shared'
|
|
2
|
+
|
|
3
|
+
import { PayloadRenderPluginResolverContext } from './Context'
|
|
4
|
+
|
|
5
|
+
export const usePayloadRenderPluginResolver = (required = false) => {
|
|
6
|
+
return useContextEx(PayloadRenderPluginResolverContext, 'PayloadRenderPluginResolver', required)
|
|
7
|
+
}
|
package/src/index.ts
ADDED