@@ -8,17 +8,17 @@ export interface JsonRenderIndexEntry {
88 stateKey : string ;
99 title : string ;
1010}
11- export interface JsonRenderView {
11+ export interface JsonRenderView < SpecType extends DevframeJsonRenderSpec = DevframeJsonRenderSpec > {
1212 readonly id : string ;
1313 readonly title : string ;
1414 readonly ref : JsonRenderViewStateRef ;
15- update : ( _ : DevframeJsonRenderSpec ) => void ;
15+ update : ( _ : SpecType ) => void ;
1616 patchState : ( _ : JsonRenderStatePatch [ ] ) => void ;
17- value : ( ) => DevframeJsonRenderSpec ;
17+ value : ( ) => SpecType ;
1818 dispose : ( ) => void ;
1919}
20- export interface JsonRenderViewInlineRef {
21- spec : DevframeJsonRenderSpec ;
20+ export interface JsonRenderViewInlineRef < SpecType extends DevframeJsonRenderSpec = DevframeJsonRenderSpec > {
21+ spec : SpecType ;
2222}
2323export interface JsonRenderViewStateRef {
2424 stateKey : string ;
@@ -27,9 +27,12 @@ export interface JsonRenderViewStateRef {
2727
2828// #region Types
2929export type BaseComponentName = keyof typeof basePropSchemas ;
30- export type DevframeJsonRenderSpec = Spec ;
30+ export type CatalogUIElement < CatalogType extends Catalog > = { [ ComponentName in keyof InferCatalogComponents < CatalogType > & string ] : UIElement < ComponentName , InferComponentProps < CatalogType , ComponentName > > ; } [ keyof InferCatalogComponents < CatalogType > & string ] ;
31+ export type DevframeJsonRenderSpec < Element extends UIElement = UIElement > = Omit < Spec , 'elements' > & {
32+ elements : Record < string , Element > ;
33+ } ;
3134export type JsonRenderIndex = Record < string , JsonRenderIndexEntry > ;
32- export type JsonRenderViewRef = JsonRenderViewStateRef | JsonRenderViewInlineRef ;
35+ export type JsonRenderViewRef < SpecType extends DevframeJsonRenderSpec = DevframeJsonRenderSpec > = JsonRenderViewStateRef | JsonRenderViewInlineRef < SpecType > ;
3336// #endregion
3437
3538// #region Variables
0 commit comments