@contensis/canvas-react 1.1.0 → 1.3.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/dist/canvas-react.d.mts +60 -6
- package/dist/canvas-react.d.ts +60 -6
- package/dist/canvas-react.js +65 -1
- package/dist/canvas-react.js.map +1 -1
- package/dist/{esm/canvas-react.js → canvas-react.mjs} +62 -2
- package/dist/canvas-react.mjs.map +1 -0
- package/package.json +2 -2
- package/dist/esm/canvas-react.js.map +0 -1
package/dist/canvas-react.d.mts
CHANGED
|
@@ -3,6 +3,7 @@ import React, { FunctionComponent, ClassType, Component as Component$1, Componen
|
|
|
3
3
|
type InlineBlock = FragmentBlock | AnchorBlock | LinkBlock | InlineEntryBlock;
|
|
4
4
|
type InlineChildren = string | InlineBlock[];
|
|
5
5
|
type DecoratorTypeMap<T> = {
|
|
6
|
+
abbreviation: T;
|
|
6
7
|
code: T;
|
|
7
8
|
delete: T;
|
|
8
9
|
emphasis: T;
|
|
@@ -40,9 +41,9 @@ type EntrySys = {
|
|
|
40
41
|
projectId?: string;
|
|
41
42
|
dataFormat?: 'entry';
|
|
42
43
|
};
|
|
43
|
-
type Entry = BaseEntry<EntrySys>;
|
|
44
|
+
type Entry$1 = BaseEntry<EntrySys>;
|
|
44
45
|
type Image$1 = {
|
|
45
|
-
asset?: Asset;
|
|
46
|
+
asset?: Asset$1;
|
|
46
47
|
caption?: string;
|
|
47
48
|
transformations?: Transformations;
|
|
48
49
|
altText?: string;
|
|
@@ -59,7 +60,7 @@ type AssetSys = {
|
|
|
59
60
|
height?: number;
|
|
60
61
|
};
|
|
61
62
|
};
|
|
62
|
-
type Asset = BaseEntry<AssetSys> & {
|
|
63
|
+
type Asset$1 = BaseEntry<AssetSys> & {
|
|
63
64
|
altText?: string;
|
|
64
65
|
};
|
|
65
66
|
type Transformations = {
|
|
@@ -98,7 +99,7 @@ type LinkSys = EntrySys & {
|
|
|
98
99
|
node?: Node;
|
|
99
100
|
};
|
|
100
101
|
type Link$1 = BaseEntry<LinkSys>;
|
|
101
|
-
type Block = AnchorBlock | CodeBlock | ComponentBlock | DividerBlock | FormContentTypeBlock | FragmentBlock | HeadingBlock | ImageBlock | InlineEntryBlock | LinkBlock | ListBlock | ListItemBlock | PanelBlock | ParagraphBlock | QuoteBlock | TableBlock | TableBodyBlock | TableCaptionBlock | TableCellBlock | TableFooterBlock | TableHeaderBlock | TableHeaderCellBlock | TableRowBlock;
|
|
102
|
+
type Block = AnchorBlock | AssetBlock | CodeBlock | ComponentBlock | DividerBlock | EntryBlock | FormContentTypeBlock | FragmentBlock | HeadingBlock | ImageBlock | InlineEntryBlock | LinkBlock | LiquidBlock | ListBlock | ListItemBlock | PanelBlock | ParagraphBlock | QuoteBlock | TableBlock | TableBodyBlock | TableCaptionBlock | TableCellBlock | TableFooterBlock | TableHeaderBlock | TableHeaderCellBlock | TableRowBlock;
|
|
102
103
|
type AnchorBlock = {
|
|
103
104
|
type: '_anchor';
|
|
104
105
|
id: string;
|
|
@@ -107,6 +108,14 @@ type AnchorBlock = {
|
|
|
107
108
|
id?: string;
|
|
108
109
|
};
|
|
109
110
|
};
|
|
111
|
+
type AssetBlock = {
|
|
112
|
+
type: '_asset';
|
|
113
|
+
id: string;
|
|
114
|
+
value?: Asset$1;
|
|
115
|
+
properties?: {
|
|
116
|
+
id?: string;
|
|
117
|
+
};
|
|
118
|
+
};
|
|
110
119
|
type CodeBlock = {
|
|
111
120
|
type: '_code';
|
|
112
121
|
id: string;
|
|
@@ -136,6 +145,14 @@ type DividerBlock = {
|
|
|
136
145
|
id?: string;
|
|
137
146
|
};
|
|
138
147
|
};
|
|
148
|
+
type EntryBlock = {
|
|
149
|
+
type: '_entry';
|
|
150
|
+
id: string;
|
|
151
|
+
value?: Entry$1;
|
|
152
|
+
properties?: {
|
|
153
|
+
id?: string;
|
|
154
|
+
};
|
|
155
|
+
};
|
|
139
156
|
type FormContentType$1 = {
|
|
140
157
|
id: string;
|
|
141
158
|
};
|
|
@@ -156,6 +173,9 @@ type FragmentBlock = {
|
|
|
156
173
|
properties?: {
|
|
157
174
|
id?: string;
|
|
158
175
|
decorators?: DecoratorType[];
|
|
176
|
+
abbreviation?: {
|
|
177
|
+
title?: string;
|
|
178
|
+
};
|
|
159
179
|
};
|
|
160
180
|
};
|
|
161
181
|
type HeadingBlock = {
|
|
@@ -178,7 +198,7 @@ type ImageBlock = {
|
|
|
178
198
|
type InlineEntryBlock = {
|
|
179
199
|
type: '_inlineEntry';
|
|
180
200
|
id: string;
|
|
181
|
-
value?: Entry;
|
|
201
|
+
value?: Entry$1;
|
|
182
202
|
properties?: {
|
|
183
203
|
id?: string;
|
|
184
204
|
};
|
|
@@ -193,6 +213,16 @@ type LinkBlock = {
|
|
|
193
213
|
newTab?: boolean;
|
|
194
214
|
};
|
|
195
215
|
};
|
|
216
|
+
type LiquidType = 'tag' | 'variable';
|
|
217
|
+
type LiquidBlock = {
|
|
218
|
+
type: '_liquid';
|
|
219
|
+
id: string;
|
|
220
|
+
value?: string;
|
|
221
|
+
properties?: {
|
|
222
|
+
id?: string;
|
|
223
|
+
type?: LiquidType;
|
|
224
|
+
};
|
|
225
|
+
};
|
|
196
226
|
type ListType = 'ordered' | 'unordered';
|
|
197
227
|
type ListBlock = {
|
|
198
228
|
type: '_list';
|
|
@@ -336,15 +366,23 @@ type DecoratorRenderer = Renderer<RenderDecoratorPropsWithChildren>;
|
|
|
336
366
|
type DecoratorRenderers = Record<DecoratorType, DecoratorRenderer>;
|
|
337
367
|
type ComponentRenderer = Renderer<RenderBlockPropsWithChildren<ComponentBlock>>;
|
|
338
368
|
type ComponentRenderers = Record<string, ComponentRenderer>;
|
|
369
|
+
type EntryRenderer = Renderer<RenderBlockPropsWithChildren<EntryBlock>>;
|
|
370
|
+
type EntryRenderers = Record<string, EntryRenderer>;
|
|
371
|
+
type AssetRenderer = Renderer<RenderBlockPropsWithChildren<AssetBlock>>;
|
|
372
|
+
type AssetRenderers = Record<string, AssetRenderer>;
|
|
339
373
|
type RendererContextValue = {
|
|
340
374
|
blocks?: BlockRenderers;
|
|
341
375
|
decorators?: DecoratorRenderers;
|
|
342
376
|
components?: ComponentRenderers;
|
|
377
|
+
entries?: EntryRenderers;
|
|
378
|
+
assets?: AssetRenderers;
|
|
343
379
|
};
|
|
344
380
|
type RendererOverridesContextValue = {
|
|
345
381
|
blocks?: Partial<BlockRenderers>;
|
|
346
382
|
decorators?: Partial<DecoratorRenderers>;
|
|
347
383
|
components?: ComponentRenderers;
|
|
384
|
+
entries?: EntryRenderers;
|
|
385
|
+
assets?: AssetRenderers;
|
|
348
386
|
};
|
|
349
387
|
type RendererContextProviderProps = WithChildren & RendererOverridesContextValue;
|
|
350
388
|
|
|
@@ -380,6 +418,10 @@ declare function Anchor(props: RenderBlockPropsWithChildren<AnchorBlock>): React
|
|
|
380
418
|
declare namespace Anchor {
|
|
381
419
|
var Children: (props: RenderBlockProps<AnchorBlock>) => React.JSX.Element;
|
|
382
420
|
}
|
|
421
|
+
declare function Asset(props: RenderBlockPropsWithChildren<AssetBlock>): React.JSX.Element;
|
|
422
|
+
declare namespace Asset {
|
|
423
|
+
var Children: (props: RenderBlockProps<AssetBlock>) => React.JSX.Element;
|
|
424
|
+
}
|
|
383
425
|
declare function Code(props: RenderBlockPropsWithChildren<CodeBlock>): React.JSX.Element;
|
|
384
426
|
declare namespace Code {
|
|
385
427
|
var Children: (props: RenderBlockProps<CodeBlock>) => React.JSX.Element;
|
|
@@ -392,6 +434,10 @@ declare function Divider(props: RenderBlockPropsWithChildren<DividerBlock>): Rea
|
|
|
392
434
|
declare namespace Divider {
|
|
393
435
|
var Children: (props: RenderBlockProps<DividerBlock>) => React.JSX.Element;
|
|
394
436
|
}
|
|
437
|
+
declare function Entry(props: RenderBlockPropsWithChildren<EntryBlock>): React.JSX.Element;
|
|
438
|
+
declare namespace Entry {
|
|
439
|
+
var Children: (props: RenderBlockProps<EntryBlock>) => React.JSX.Element;
|
|
440
|
+
}
|
|
395
441
|
declare function FormContentType(_props: RenderBlockPropsWithChildren<FormContentTypeBlock>): null;
|
|
396
442
|
declare namespace FormContentType {
|
|
397
443
|
var Children: (_props: RenderBlockProps<FormContentTypeBlock>) => null;
|
|
@@ -416,6 +462,10 @@ declare function Link(props: RenderBlockPropsWithChildren<LinkBlock>): React.JSX
|
|
|
416
462
|
declare namespace Link {
|
|
417
463
|
var Children: (props: RenderBlockProps<LinkBlock>) => React.JSX.Element;
|
|
418
464
|
}
|
|
465
|
+
declare function Liquid(props: RenderBlockPropsWithChildren<LiquidBlock>): React.JSX.Element;
|
|
466
|
+
declare namespace Liquid {
|
|
467
|
+
var Children: (props: RenderBlockProps<LiquidBlock>) => React.JSX.Element;
|
|
468
|
+
}
|
|
419
469
|
declare function List(props: RenderBlockPropsWithChildren<ListBlock>): React.JSX.Element;
|
|
420
470
|
declare namespace List {
|
|
421
471
|
var Children: (props: RenderBlockProps<ListBlock>) => React.JSX.Element;
|
|
@@ -469,6 +519,10 @@ declare namespace TableRow {
|
|
|
469
519
|
var Children: (props: RenderBlockProps<TableRowBlock>) => React.JSX.Element;
|
|
470
520
|
}
|
|
471
521
|
declare function DecoratorChildren(props: RenderDecoratorPropsWithChildren): React.JSX.Element;
|
|
522
|
+
declare function Abbreviation(props: RenderDecoratorPropsWithChildren): React.JSX.Element;
|
|
523
|
+
declare namespace Abbreviation {
|
|
524
|
+
var Children: typeof DecoratorChildren;
|
|
525
|
+
}
|
|
472
526
|
declare function InlineCode(props: RenderDecoratorPropsWithChildren): React.JSX.Element;
|
|
473
527
|
declare namespace InlineCode {
|
|
474
528
|
var Children: typeof DecoratorChildren;
|
|
@@ -522,4 +576,4 @@ declare namespace Variable {
|
|
|
522
576
|
var Children: typeof DecoratorChildren;
|
|
523
577
|
}
|
|
524
578
|
|
|
525
|
-
export { Anchor, type AnchorBlock, type Block, type BlockRenderer, Code, type CodeBlock, Component, type ComponentBlock, type DecoratorType, Delete, Divider, type DividerBlock, Emphasis, FormContentType, type FormContentTypeBlock, Fragment, type FragmentBlock, Heading, type HeadingBlock, Image, type ImageBlock, InlineCode, InlineEntry, type InlineEntryBlock, Insert, Keyboard, LineBreak, Link, type LinkBlock, List, type ListBlock, ListItem, type ListItemBlock, Mark, Panel, type PanelBlock, Paragraph, type ParagraphBlock, Quote, type QuoteBlock, type RenderBlockProps, type RenderBlockPropsWithChildren, RenderChildren, RenderContextProvider, type RenderDecoratorProps, type RenderDecoratorPropsWithChildren, Renderer, RendererContext, Strikethrough, Strong, Subscript, Superscript, Table, type TableBlock, TableBody, type TableBodyBlock, TableCaption, type TableCaptionBlock, TableCell, type TableCellBlock, TableFooter, type TableFooterBlock, TableHeader, type TableHeaderBlock, TableHeaderCell, type TableHeaderCellBlock, TableRow, type TableRowBlock, Underline, Variable };
|
|
579
|
+
export { Abbreviation, Anchor, type AnchorBlock, Asset, type AssetBlock, type Block, type BlockRenderer, Code, type CodeBlock, Component, type ComponentBlock, type DecoratorType, Delete, Divider, type DividerBlock, Emphasis, Entry, type EntryBlock, FormContentType, type FormContentTypeBlock, Fragment, type FragmentBlock, Heading, type HeadingBlock, Image, type ImageBlock, InlineCode, InlineEntry, type InlineEntryBlock, Insert, Keyboard, LineBreak, Link, type LinkBlock, Liquid, type LiquidBlock, List, type ListBlock, ListItem, type ListItemBlock, Mark, Panel, type PanelBlock, Paragraph, type ParagraphBlock, Quote, type QuoteBlock, type RenderBlockProps, type RenderBlockPropsWithChildren, RenderChildren, RenderContextProvider, type RenderDecoratorProps, type RenderDecoratorPropsWithChildren, Renderer, RendererContext, Strikethrough, Strong, Subscript, Superscript, Table, type TableBlock, TableBody, type TableBodyBlock, TableCaption, type TableCaptionBlock, TableCell, type TableCellBlock, TableFooter, type TableFooterBlock, TableHeader, type TableHeaderBlock, TableHeaderCell, type TableHeaderCellBlock, TableRow, type TableRowBlock, Underline, Variable };
|
package/dist/canvas-react.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import React, { FunctionComponent, ClassType, Component as Component$1, Componen
|
|
|
3
3
|
type InlineBlock = FragmentBlock | AnchorBlock | LinkBlock | InlineEntryBlock;
|
|
4
4
|
type InlineChildren = string | InlineBlock[];
|
|
5
5
|
type DecoratorTypeMap<T> = {
|
|
6
|
+
abbreviation: T;
|
|
6
7
|
code: T;
|
|
7
8
|
delete: T;
|
|
8
9
|
emphasis: T;
|
|
@@ -40,9 +41,9 @@ type EntrySys = {
|
|
|
40
41
|
projectId?: string;
|
|
41
42
|
dataFormat?: 'entry';
|
|
42
43
|
};
|
|
43
|
-
type Entry = BaseEntry<EntrySys>;
|
|
44
|
+
type Entry$1 = BaseEntry<EntrySys>;
|
|
44
45
|
type Image$1 = {
|
|
45
|
-
asset?: Asset;
|
|
46
|
+
asset?: Asset$1;
|
|
46
47
|
caption?: string;
|
|
47
48
|
transformations?: Transformations;
|
|
48
49
|
altText?: string;
|
|
@@ -59,7 +60,7 @@ type AssetSys = {
|
|
|
59
60
|
height?: number;
|
|
60
61
|
};
|
|
61
62
|
};
|
|
62
|
-
type Asset = BaseEntry<AssetSys> & {
|
|
63
|
+
type Asset$1 = BaseEntry<AssetSys> & {
|
|
63
64
|
altText?: string;
|
|
64
65
|
};
|
|
65
66
|
type Transformations = {
|
|
@@ -98,7 +99,7 @@ type LinkSys = EntrySys & {
|
|
|
98
99
|
node?: Node;
|
|
99
100
|
};
|
|
100
101
|
type Link$1 = BaseEntry<LinkSys>;
|
|
101
|
-
type Block = AnchorBlock | CodeBlock | ComponentBlock | DividerBlock | FormContentTypeBlock | FragmentBlock | HeadingBlock | ImageBlock | InlineEntryBlock | LinkBlock | ListBlock | ListItemBlock | PanelBlock | ParagraphBlock | QuoteBlock | TableBlock | TableBodyBlock | TableCaptionBlock | TableCellBlock | TableFooterBlock | TableHeaderBlock | TableHeaderCellBlock | TableRowBlock;
|
|
102
|
+
type Block = AnchorBlock | AssetBlock | CodeBlock | ComponentBlock | DividerBlock | EntryBlock | FormContentTypeBlock | FragmentBlock | HeadingBlock | ImageBlock | InlineEntryBlock | LinkBlock | LiquidBlock | ListBlock | ListItemBlock | PanelBlock | ParagraphBlock | QuoteBlock | TableBlock | TableBodyBlock | TableCaptionBlock | TableCellBlock | TableFooterBlock | TableHeaderBlock | TableHeaderCellBlock | TableRowBlock;
|
|
102
103
|
type AnchorBlock = {
|
|
103
104
|
type: '_anchor';
|
|
104
105
|
id: string;
|
|
@@ -107,6 +108,14 @@ type AnchorBlock = {
|
|
|
107
108
|
id?: string;
|
|
108
109
|
};
|
|
109
110
|
};
|
|
111
|
+
type AssetBlock = {
|
|
112
|
+
type: '_asset';
|
|
113
|
+
id: string;
|
|
114
|
+
value?: Asset$1;
|
|
115
|
+
properties?: {
|
|
116
|
+
id?: string;
|
|
117
|
+
};
|
|
118
|
+
};
|
|
110
119
|
type CodeBlock = {
|
|
111
120
|
type: '_code';
|
|
112
121
|
id: string;
|
|
@@ -136,6 +145,14 @@ type DividerBlock = {
|
|
|
136
145
|
id?: string;
|
|
137
146
|
};
|
|
138
147
|
};
|
|
148
|
+
type EntryBlock = {
|
|
149
|
+
type: '_entry';
|
|
150
|
+
id: string;
|
|
151
|
+
value?: Entry$1;
|
|
152
|
+
properties?: {
|
|
153
|
+
id?: string;
|
|
154
|
+
};
|
|
155
|
+
};
|
|
139
156
|
type FormContentType$1 = {
|
|
140
157
|
id: string;
|
|
141
158
|
};
|
|
@@ -156,6 +173,9 @@ type FragmentBlock = {
|
|
|
156
173
|
properties?: {
|
|
157
174
|
id?: string;
|
|
158
175
|
decorators?: DecoratorType[];
|
|
176
|
+
abbreviation?: {
|
|
177
|
+
title?: string;
|
|
178
|
+
};
|
|
159
179
|
};
|
|
160
180
|
};
|
|
161
181
|
type HeadingBlock = {
|
|
@@ -178,7 +198,7 @@ type ImageBlock = {
|
|
|
178
198
|
type InlineEntryBlock = {
|
|
179
199
|
type: '_inlineEntry';
|
|
180
200
|
id: string;
|
|
181
|
-
value?: Entry;
|
|
201
|
+
value?: Entry$1;
|
|
182
202
|
properties?: {
|
|
183
203
|
id?: string;
|
|
184
204
|
};
|
|
@@ -193,6 +213,16 @@ type LinkBlock = {
|
|
|
193
213
|
newTab?: boolean;
|
|
194
214
|
};
|
|
195
215
|
};
|
|
216
|
+
type LiquidType = 'tag' | 'variable';
|
|
217
|
+
type LiquidBlock = {
|
|
218
|
+
type: '_liquid';
|
|
219
|
+
id: string;
|
|
220
|
+
value?: string;
|
|
221
|
+
properties?: {
|
|
222
|
+
id?: string;
|
|
223
|
+
type?: LiquidType;
|
|
224
|
+
};
|
|
225
|
+
};
|
|
196
226
|
type ListType = 'ordered' | 'unordered';
|
|
197
227
|
type ListBlock = {
|
|
198
228
|
type: '_list';
|
|
@@ -336,15 +366,23 @@ type DecoratorRenderer = Renderer<RenderDecoratorPropsWithChildren>;
|
|
|
336
366
|
type DecoratorRenderers = Record<DecoratorType, DecoratorRenderer>;
|
|
337
367
|
type ComponentRenderer = Renderer<RenderBlockPropsWithChildren<ComponentBlock>>;
|
|
338
368
|
type ComponentRenderers = Record<string, ComponentRenderer>;
|
|
369
|
+
type EntryRenderer = Renderer<RenderBlockPropsWithChildren<EntryBlock>>;
|
|
370
|
+
type EntryRenderers = Record<string, EntryRenderer>;
|
|
371
|
+
type AssetRenderer = Renderer<RenderBlockPropsWithChildren<AssetBlock>>;
|
|
372
|
+
type AssetRenderers = Record<string, AssetRenderer>;
|
|
339
373
|
type RendererContextValue = {
|
|
340
374
|
blocks?: BlockRenderers;
|
|
341
375
|
decorators?: DecoratorRenderers;
|
|
342
376
|
components?: ComponentRenderers;
|
|
377
|
+
entries?: EntryRenderers;
|
|
378
|
+
assets?: AssetRenderers;
|
|
343
379
|
};
|
|
344
380
|
type RendererOverridesContextValue = {
|
|
345
381
|
blocks?: Partial<BlockRenderers>;
|
|
346
382
|
decorators?: Partial<DecoratorRenderers>;
|
|
347
383
|
components?: ComponentRenderers;
|
|
384
|
+
entries?: EntryRenderers;
|
|
385
|
+
assets?: AssetRenderers;
|
|
348
386
|
};
|
|
349
387
|
type RendererContextProviderProps = WithChildren & RendererOverridesContextValue;
|
|
350
388
|
|
|
@@ -380,6 +418,10 @@ declare function Anchor(props: RenderBlockPropsWithChildren<AnchorBlock>): React
|
|
|
380
418
|
declare namespace Anchor {
|
|
381
419
|
var Children: (props: RenderBlockProps<AnchorBlock>) => React.JSX.Element;
|
|
382
420
|
}
|
|
421
|
+
declare function Asset(props: RenderBlockPropsWithChildren<AssetBlock>): React.JSX.Element;
|
|
422
|
+
declare namespace Asset {
|
|
423
|
+
var Children: (props: RenderBlockProps<AssetBlock>) => React.JSX.Element;
|
|
424
|
+
}
|
|
383
425
|
declare function Code(props: RenderBlockPropsWithChildren<CodeBlock>): React.JSX.Element;
|
|
384
426
|
declare namespace Code {
|
|
385
427
|
var Children: (props: RenderBlockProps<CodeBlock>) => React.JSX.Element;
|
|
@@ -392,6 +434,10 @@ declare function Divider(props: RenderBlockPropsWithChildren<DividerBlock>): Rea
|
|
|
392
434
|
declare namespace Divider {
|
|
393
435
|
var Children: (props: RenderBlockProps<DividerBlock>) => React.JSX.Element;
|
|
394
436
|
}
|
|
437
|
+
declare function Entry(props: RenderBlockPropsWithChildren<EntryBlock>): React.JSX.Element;
|
|
438
|
+
declare namespace Entry {
|
|
439
|
+
var Children: (props: RenderBlockProps<EntryBlock>) => React.JSX.Element;
|
|
440
|
+
}
|
|
395
441
|
declare function FormContentType(_props: RenderBlockPropsWithChildren<FormContentTypeBlock>): null;
|
|
396
442
|
declare namespace FormContentType {
|
|
397
443
|
var Children: (_props: RenderBlockProps<FormContentTypeBlock>) => null;
|
|
@@ -416,6 +462,10 @@ declare function Link(props: RenderBlockPropsWithChildren<LinkBlock>): React.JSX
|
|
|
416
462
|
declare namespace Link {
|
|
417
463
|
var Children: (props: RenderBlockProps<LinkBlock>) => React.JSX.Element;
|
|
418
464
|
}
|
|
465
|
+
declare function Liquid(props: RenderBlockPropsWithChildren<LiquidBlock>): React.JSX.Element;
|
|
466
|
+
declare namespace Liquid {
|
|
467
|
+
var Children: (props: RenderBlockProps<LiquidBlock>) => React.JSX.Element;
|
|
468
|
+
}
|
|
419
469
|
declare function List(props: RenderBlockPropsWithChildren<ListBlock>): React.JSX.Element;
|
|
420
470
|
declare namespace List {
|
|
421
471
|
var Children: (props: RenderBlockProps<ListBlock>) => React.JSX.Element;
|
|
@@ -469,6 +519,10 @@ declare namespace TableRow {
|
|
|
469
519
|
var Children: (props: RenderBlockProps<TableRowBlock>) => React.JSX.Element;
|
|
470
520
|
}
|
|
471
521
|
declare function DecoratorChildren(props: RenderDecoratorPropsWithChildren): React.JSX.Element;
|
|
522
|
+
declare function Abbreviation(props: RenderDecoratorPropsWithChildren): React.JSX.Element;
|
|
523
|
+
declare namespace Abbreviation {
|
|
524
|
+
var Children: typeof DecoratorChildren;
|
|
525
|
+
}
|
|
472
526
|
declare function InlineCode(props: RenderDecoratorPropsWithChildren): React.JSX.Element;
|
|
473
527
|
declare namespace InlineCode {
|
|
474
528
|
var Children: typeof DecoratorChildren;
|
|
@@ -522,4 +576,4 @@ declare namespace Variable {
|
|
|
522
576
|
var Children: typeof DecoratorChildren;
|
|
523
577
|
}
|
|
524
578
|
|
|
525
|
-
export { Anchor, type AnchorBlock, type Block, type BlockRenderer, Code, type CodeBlock, Component, type ComponentBlock, type DecoratorType, Delete, Divider, type DividerBlock, Emphasis, FormContentType, type FormContentTypeBlock, Fragment, type FragmentBlock, Heading, type HeadingBlock, Image, type ImageBlock, InlineCode, InlineEntry, type InlineEntryBlock, Insert, Keyboard, LineBreak, Link, type LinkBlock, List, type ListBlock, ListItem, type ListItemBlock, Mark, Panel, type PanelBlock, Paragraph, type ParagraphBlock, Quote, type QuoteBlock, type RenderBlockProps, type RenderBlockPropsWithChildren, RenderChildren, RenderContextProvider, type RenderDecoratorProps, type RenderDecoratorPropsWithChildren, Renderer, RendererContext, Strikethrough, Strong, Subscript, Superscript, Table, type TableBlock, TableBody, type TableBodyBlock, TableCaption, type TableCaptionBlock, TableCell, type TableCellBlock, TableFooter, type TableFooterBlock, TableHeader, type TableHeaderBlock, TableHeaderCell, type TableHeaderCellBlock, TableRow, type TableRowBlock, Underline, Variable };
|
|
579
|
+
export { Abbreviation, Anchor, type AnchorBlock, Asset, type AssetBlock, type Block, type BlockRenderer, Code, type CodeBlock, Component, type ComponentBlock, type DecoratorType, Delete, Divider, type DividerBlock, Emphasis, Entry, type EntryBlock, FormContentType, type FormContentTypeBlock, Fragment, type FragmentBlock, Heading, type HeadingBlock, Image, type ImageBlock, InlineCode, InlineEntry, type InlineEntryBlock, Insert, Keyboard, LineBreak, Link, type LinkBlock, Liquid, type LiquidBlock, List, type ListBlock, ListItem, type ListItemBlock, Mark, Panel, type PanelBlock, Paragraph, type ParagraphBlock, Quote, type QuoteBlock, type RenderBlockProps, type RenderBlockPropsWithChildren, RenderChildren, RenderContextProvider, type RenderDecoratorProps, type RenderDecoratorPropsWithChildren, Renderer, RendererContext, Strikethrough, Strong, Subscript, Superscript, Table, type TableBlock, TableBody, type TableBodyBlock, TableCaption, type TableCaptionBlock, TableCell, type TableCellBlock, TableFooter, type TableFooterBlock, TableHeader, type TableHeaderBlock, TableHeaderCell, type TableHeaderCellBlock, TableRow, type TableRowBlock, Underline, Variable };
|
package/dist/canvas-react.js
CHANGED
|
@@ -56,12 +56,15 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
56
56
|
// src/index.ts
|
|
57
57
|
var src_exports = {};
|
|
58
58
|
__export(src_exports, {
|
|
59
|
+
Abbreviation: () => Abbreviation,
|
|
59
60
|
Anchor: () => Anchor,
|
|
61
|
+
Asset: () => Asset,
|
|
60
62
|
Code: () => Code,
|
|
61
63
|
Component: () => Component,
|
|
62
64
|
Delete: () => Delete,
|
|
63
65
|
Divider: () => Divider,
|
|
64
66
|
Emphasis: () => Emphasis,
|
|
67
|
+
Entry: () => Entry,
|
|
65
68
|
FormContentType: () => FormContentType,
|
|
66
69
|
Fragment: () => Fragment,
|
|
67
70
|
Heading: () => Heading,
|
|
@@ -72,6 +75,7 @@ __export(src_exports, {
|
|
|
72
75
|
Keyboard: () => Keyboard,
|
|
73
76
|
LineBreak: () => LineBreak,
|
|
74
77
|
Link: () => Link,
|
|
78
|
+
Liquid: () => Liquid,
|
|
75
79
|
List: () => List,
|
|
76
80
|
ListItem: () => ListItem,
|
|
77
81
|
Mark: () => Mark,
|
|
@@ -116,7 +120,7 @@ function RenderContextProvider(props) {
|
|
|
116
120
|
prev[decoratorType] = (overrideDecorators == null ? void 0 : overrideDecorators[decoratorType]) || DECORATOR_RENDERERS[decoratorType];
|
|
117
121
|
return prev;
|
|
118
122
|
}, {});
|
|
119
|
-
const value = { blocks, decorators, components: props.components };
|
|
123
|
+
const value = { blocks, decorators, components: props.components, entries: props.entries, assets: props == null ? void 0 : props.assets };
|
|
120
124
|
return /* @__PURE__ */ import_react.default.createElement(RendererContext.Provider, { value }, props.children);
|
|
121
125
|
}
|
|
122
126
|
function useBlocks() {
|
|
@@ -131,6 +135,14 @@ function useComponents() {
|
|
|
131
135
|
const value = (0, import_react.useContext)(RendererContext);
|
|
132
136
|
return value.components || {};
|
|
133
137
|
}
|
|
138
|
+
function useEntries() {
|
|
139
|
+
const value = (0, import_react.useContext)(RendererContext);
|
|
140
|
+
return value.entries || {};
|
|
141
|
+
}
|
|
142
|
+
function useAssets() {
|
|
143
|
+
const value = (0, import_react.useContext)(RendererContext);
|
|
144
|
+
return value.assets || {};
|
|
145
|
+
}
|
|
134
146
|
function RenderBlock(props) {
|
|
135
147
|
const blocks = useBlocks();
|
|
136
148
|
const Component2 = blocks[props.block.type];
|
|
@@ -190,6 +202,21 @@ function Anchor(props) {
|
|
|
190
202
|
return /* @__PURE__ */ import_react.default.createElement("a", __spreadValues({}, attributes), /* @__PURE__ */ import_react.default.createElement(RenderContents, { contents: props.children, fallback: /* @__PURE__ */ import_react.default.createElement(Anchor.Children, { block: props.block }) }));
|
|
191
203
|
}
|
|
192
204
|
Anchor.Children = RenderBlockChildrenFactory();
|
|
205
|
+
function Asset(props) {
|
|
206
|
+
var _a, _b, _c;
|
|
207
|
+
const contentTypeId = (_c = (_b = (_a = props == null ? void 0 : props.block) == null ? void 0 : _a.value) == null ? void 0 : _b.sys) == null ? void 0 : _c.contentTypeId;
|
|
208
|
+
const components = useAssets();
|
|
209
|
+
const AssetElement = !!contentTypeId ? components == null ? void 0 : components[contentTypeId] : void 0;
|
|
210
|
+
const attributes = getAttributes(props);
|
|
211
|
+
return !!AssetElement ? /* @__PURE__ */ import_react.default.createElement(AssetElement, __spreadValues({}, props)) : /* @__PURE__ */ import_react.default.createElement("div", __spreadValues({}, attributes), /* @__PURE__ */ import_react.default.createElement(RenderContents, { contents: props.children, fallback: /* @__PURE__ */ import_react.default.createElement(Asset.Children, { block: props.block }) }));
|
|
212
|
+
}
|
|
213
|
+
Asset.Children = function(props) {
|
|
214
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
215
|
+
const href = (_c = (_b = (_a = props == null ? void 0 : props.block) == null ? void 0 : _a.value) == null ? void 0 : _b.sys) == null ? void 0 : _c.uri;
|
|
216
|
+
const entryTitle = ((_e = (_d = props == null ? void 0 : props.block) == null ? void 0 : _d.value) == null ? void 0 : _e.entryTitle) || "";
|
|
217
|
+
const entryDescription = ((_g = (_f = props == null ? void 0 : props.block) == null ? void 0 : _f.value) == null ? void 0 : _g.entryDescription) || "";
|
|
218
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", null, !!href ? /* @__PURE__ */ import_react.default.createElement("a", { href }, entryTitle) : entryTitle), !!entryDescription ? /* @__PURE__ */ import_react.default.createElement("div", null, entryDescription) : null);
|
|
219
|
+
};
|
|
193
220
|
function Code(props) {
|
|
194
221
|
var _a, _b, _c, _d;
|
|
195
222
|
const attributes = getAttributes(props, {
|
|
@@ -230,6 +257,21 @@ function Divider(props) {
|
|
|
230
257
|
return /* @__PURE__ */ import_react.default.createElement("hr", __spreadValues({}, attributes));
|
|
231
258
|
}
|
|
232
259
|
Divider.Children = EmptyChildrenFactory();
|
|
260
|
+
function Entry(props) {
|
|
261
|
+
var _a, _b, _c;
|
|
262
|
+
const contentTypeId = (_c = (_b = (_a = props == null ? void 0 : props.block) == null ? void 0 : _a.value) == null ? void 0 : _b.sys) == null ? void 0 : _c.contentTypeId;
|
|
263
|
+
const components = useEntries();
|
|
264
|
+
const EntryElement = !!contentTypeId ? components == null ? void 0 : components[contentTypeId] : void 0;
|
|
265
|
+
const attributes = getAttributes(props);
|
|
266
|
+
return !!EntryElement ? /* @__PURE__ */ import_react.default.createElement(EntryElement, __spreadValues({}, props)) : /* @__PURE__ */ import_react.default.createElement("div", __spreadValues({}, attributes), /* @__PURE__ */ import_react.default.createElement(RenderContents, { contents: props.children, fallback: /* @__PURE__ */ import_react.default.createElement(Entry.Children, { block: props.block }) }));
|
|
267
|
+
}
|
|
268
|
+
Entry.Children = function(props) {
|
|
269
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
270
|
+
const href = (_c = (_b = (_a = props == null ? void 0 : props.block) == null ? void 0 : _a.value) == null ? void 0 : _b.sys) == null ? void 0 : _c.uri;
|
|
271
|
+
const entryTitle = ((_e = (_d = props == null ? void 0 : props.block) == null ? void 0 : _d.value) == null ? void 0 : _e.entryTitle) || "";
|
|
272
|
+
const entryDescription = ((_g = (_f = props == null ? void 0 : props.block) == null ? void 0 : _f.value) == null ? void 0 : _g.entryDescription) || "";
|
|
273
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", null, !!href ? /* @__PURE__ */ import_react.default.createElement("a", { href }, entryTitle) : entryTitle), !!entryDescription ? /* @__PURE__ */ import_react.default.createElement("div", null, entryDescription) : null);
|
|
274
|
+
};
|
|
233
275
|
function FormContentType(_props) {
|
|
234
276
|
return null;
|
|
235
277
|
}
|
|
@@ -310,6 +352,13 @@ function Link(props) {
|
|
|
310
352
|
return !!attributes.href ? /* @__PURE__ */ import_react.default.createElement("a", __spreadValues({}, attributes), /* @__PURE__ */ import_react.default.createElement(RenderContents, { contents: props.children, fallback: /* @__PURE__ */ import_react.default.createElement(Link.Children, { block: props.block }) })) : /* @__PURE__ */ import_react.default.createElement(RenderContents, { contents: props.children, fallback: /* @__PURE__ */ import_react.default.createElement(Link.Children, { block: props.block }) });
|
|
311
353
|
}
|
|
312
354
|
Link.Children = RenderBlockChildrenFactory();
|
|
355
|
+
function Liquid(props) {
|
|
356
|
+
return /* @__PURE__ */ import_react.default.createElement(RenderContents, { contents: props.children, fallback: /* @__PURE__ */ import_react.default.createElement(Liquid.Children, { block: props.block }) });
|
|
357
|
+
}
|
|
358
|
+
Liquid.Children = function(props) {
|
|
359
|
+
var _a;
|
|
360
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, (_a = props.block) == null ? void 0 : _a.value);
|
|
361
|
+
};
|
|
313
362
|
function List(props) {
|
|
314
363
|
var _a, _b, _c, _d;
|
|
315
364
|
const isOrdered = ((_b = (_a = props.block) == null ? void 0 : _a.properties) == null ? void 0 : _b.listType) === "ordered";
|
|
@@ -413,6 +462,13 @@ function Decorators(props) {
|
|
|
413
462
|
function DecoratorChildren(props) {
|
|
414
463
|
return /* @__PURE__ */ import_react.default.createElement(Decorators, { block: props.block, decorators: props.otherDecorators });
|
|
415
464
|
}
|
|
465
|
+
function Abbreviation(props) {
|
|
466
|
+
var _a, _b, _c;
|
|
467
|
+
const title = (_c = (_b = (_a = props == null ? void 0 : props.block) == null ? void 0 : _a.properties) == null ? void 0 : _b.abbreviation) == null ? void 0 : _c.title;
|
|
468
|
+
const attributes = getAttributes(props, { title });
|
|
469
|
+
return /* @__PURE__ */ import_react.default.createElement("abbr", __spreadValues({}, attributes), /* @__PURE__ */ import_react.default.createElement(RenderContents, { contents: props.children, fallback: /* @__PURE__ */ import_react.default.createElement(InlineCode.Children, { block: props.block, decorator: props.decorator, otherDecorators: props.otherDecorators }) }));
|
|
470
|
+
}
|
|
471
|
+
Abbreviation.Children = DecoratorChildren;
|
|
416
472
|
function InlineCode(props) {
|
|
417
473
|
const attributes = getAttributes(props);
|
|
418
474
|
return /* @__PURE__ */ import_react.default.createElement("code", __spreadValues({}, attributes), /* @__PURE__ */ import_react.default.createElement(RenderContents, { contents: props.children, fallback: /* @__PURE__ */ import_react.default.createElement(InlineCode.Children, { block: props.block, decorator: props.decorator, otherDecorators: props.otherDecorators }) }));
|
|
@@ -482,15 +538,18 @@ function Variable(props) {
|
|
|
482
538
|
Variable.Children = DecoratorChildren;
|
|
483
539
|
var BLOCK_RENDERERS = {
|
|
484
540
|
"_anchor": Anchor,
|
|
541
|
+
"_asset": Asset,
|
|
485
542
|
"_code": CodeWithCaption,
|
|
486
543
|
"_component": Component,
|
|
487
544
|
"_divider": Divider,
|
|
545
|
+
"_entry": Entry,
|
|
488
546
|
"_formContentType": FormContentType,
|
|
489
547
|
"_fragment": Fragment,
|
|
490
548
|
"_heading": Heading,
|
|
491
549
|
"_image": ImageWithCaption,
|
|
492
550
|
"_inlineEntry": InlineEntry,
|
|
493
551
|
"_link": Link,
|
|
552
|
+
"_liquid": Liquid,
|
|
494
553
|
"_list": List,
|
|
495
554
|
"_listItem": ListItem,
|
|
496
555
|
"_panel": Panel,
|
|
@@ -506,6 +565,7 @@ var BLOCK_RENDERERS = {
|
|
|
506
565
|
"_tableRow": TableRow
|
|
507
566
|
};
|
|
508
567
|
var DECORATOR_RENDERERS = {
|
|
568
|
+
"abbreviation": Abbreviation,
|
|
509
569
|
"code": InlineCode,
|
|
510
570
|
"delete": Delete,
|
|
511
571
|
"emphasis": Emphasis,
|
|
@@ -522,12 +582,15 @@ var DECORATOR_RENDERERS = {
|
|
|
522
582
|
};
|
|
523
583
|
// Annotate the CommonJS export names for ESM import in node:
|
|
524
584
|
0 && (module.exports = {
|
|
585
|
+
Abbreviation,
|
|
525
586
|
Anchor,
|
|
587
|
+
Asset,
|
|
526
588
|
Code,
|
|
527
589
|
Component,
|
|
528
590
|
Delete,
|
|
529
591
|
Divider,
|
|
530
592
|
Emphasis,
|
|
593
|
+
Entry,
|
|
531
594
|
FormContentType,
|
|
532
595
|
Fragment,
|
|
533
596
|
Heading,
|
|
@@ -538,6 +601,7 @@ var DECORATOR_RENDERERS = {
|
|
|
538
601
|
Keyboard,
|
|
539
602
|
LineBreak,
|
|
540
603
|
Link,
|
|
604
|
+
Liquid,
|
|
541
605
|
List,
|
|
542
606
|
ListItem,
|
|
543
607
|
Mark,
|
package/dist/canvas-react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/renderer.tsx"],"sourcesContent":["export * from '@contensis/canvas-types';\nexport * from './renderer';\n","import React, { ClassType, ComponentClass, FunctionComponent, Component as ReactComponent, createContext, useContext } from 'react';\nimport {\n AnchorBlock,\n Block,\n CodeBlock,\n ComponentBlock,\n DecoratorType,\n DividerBlock,\n FormContentTypeBlock,\n FragmentBlock,\n HeadingBlock,\n ImageBlock,\n InlineEntryBlock,\n LinkBlock,\n ListBlock,\n ListItemBlock,\n PanelBlock,\n ParagraphBlock,\n QuoteBlock,\n TableBlock,\n TableBodyBlock,\n TableCaptionBlock, TableCellBlock,\n TableFooterBlock,\n TableHeaderBlock,\n TableHeaderCellBlock,\n TableRowBlock\n} from '@contensis/canvas-types';\n\ntype Attributes = Record<string, any>;\ntype WithChildren = { children?: JSX.Element | undefined };\n\ntype RendererProps = { data: Block[] };\ntype RenderBlocksProps = { blocks: Block[] };\ntype RenderBlockProps<T extends Block> = { block: T };\ntype RenderBlockPropsWithChildren<T extends Block>\n = RenderBlockProps<T> & WithChildren & Attributes;\n\ntype RenderContentsProps = { contents: undefined | JSX.Element, fallback: JSX.Element };\ntype RenderTextProps = { text: string };\n\ntype DecoratorProps = { block: FragmentBlock, decorators: undefined | DecoratorType[] };\n\ntype TypedBlock<TType extends Block['type']> = Extract<Block, { type: TType }>;\n\ntype Renderer<TProps> = FunctionComponent<TProps> | ClassType<TProps, ReactComponent<TProps>, ComponentClass<TProps>>;\n\ntype BlockRenderer<T extends Block> = Renderer<RenderBlockPropsWithChildren<T>>;\ntype BlockRenderers = {\n [TType in Block['type']]: BlockRenderer<TypedBlock<TType>>\n};\n\n\ntype RenderDecoratorProps = { block: FragmentBlock, decorator: undefined | DecoratorType, otherDecorators: undefined | DecoratorType[] };\ntype RenderDecoratorPropsWithChildren = RenderDecoratorProps & WithChildren & Attributes;\n\ntype DecoratorRenderer = Renderer<RenderDecoratorPropsWithChildren>;\ntype DecoratorRenderers = Record<DecoratorType, DecoratorRenderer>;\n\ntype ComponentRenderer = Renderer<RenderBlockPropsWithChildren<ComponentBlock>>;\ntype ComponentRenderers = Record<string, ComponentRenderer>;\n\ntype RendererContextValue = {\n blocks?: BlockRenderers,\n decorators?: DecoratorRenderers,\n components?: ComponentRenderers\n};\n\ntype RendererOverridesContextValue = {\n blocks?: Partial<BlockRenderers>,\n decorators?: Partial<DecoratorRenderers>,\n components?: ComponentRenderers\n};\n\ntype RendererContextProviderProps = WithChildren & RendererOverridesContextValue;\n\nexport type { BlockRenderer, RenderBlockProps, RenderBlockPropsWithChildren, RenderDecoratorProps, RenderDecoratorPropsWithChildren };\n\nexport const RendererContext = createContext<RendererContextValue>({});\n\n/** \n * Provides context to the <Renderer> component to return Canvas data as React components\n *\n * @link https://www.npmjs.com/package/@contensis/canvas-react#usage\n *\n * @param blocks - Override the default rendering of Canvas content blocks\n * @param components - Render method for Contensis Components within the Canvas field\n * @param decorators - Override the rendering of HTML elements within a text field\n * \n * @example \n * <RenderContextProvider blocks={{ _table: Table }} components={{ banner: Banner }} decorators={{ strong: Strong }}>\n * <Renderer data={data} />\n * </RenderContextProvider>\n * \n */\nexport function RenderContextProvider(props: RendererContextProviderProps) {\n\n const overrideBlocks = props.blocks;\n const blocks = Object.keys(BLOCK_RENDERERS)\n .reduce((prev, type) => {\n const blockType = type as Block['type'];\n const renderer: any = overrideBlocks?.[blockType] || BLOCK_RENDERERS[blockType];\n (prev as any)[blockType] = renderer;\n return prev;\n }, {} as BlockRenderers);\n\n const overrideDecorators = props.decorators;\n const decorators = Object.keys(DECORATOR_RENDERERS)\n .reduce((prev, type) => {\n const decoratorType = type as DecoratorType;\n prev[decoratorType] = overrideDecorators?.[decoratorType] || DECORATOR_RENDERERS[decoratorType];\n return prev;\n }, {} as DecoratorRenderers);\n\n const value = { blocks, decorators, components: props.components };\n\n return (\n <RendererContext.Provider value={value}>\n {props.children}\n </RendererContext.Provider>\n );\n}\n\nfunction useBlocks() {\n const value = useContext(RendererContext);\n return value.blocks || BLOCK_RENDERERS;\n}\n\nfunction useDecorators() {\n const value = useContext(RendererContext);\n return value.decorators || DECORATOR_RENDERERS;\n}\n\nfunction useComponents() {\n const value = useContext(RendererContext);\n return value.components || {};\n}\n\nfunction RenderBlock<TBlock extends Block>(props: RenderBlockProps<TBlock>) {\n const blocks = useBlocks();\n const Component = blocks[props.block.type] as BlockRenderer<TBlock>;\n return !!Component ? (<Component block={props.block} />) : null;\n}\n\nfunction RenderBlocks(props: RenderBlocksProps) {\n return (<>{props.blocks.map(block => <RenderBlock block={block} key={block.id} />)}</>);\n}\n\nfunction RenderContents(props: RenderContentsProps) {\n return (props.contents ? props.contents : props.fallback);\n}\n\nexport function RenderChildren(props: RenderBlockProps<Block>) {\n const isArray = Array.isArray(props.block?.value);\n const isString = typeof props.block?.value === 'string';\n\n const render = () => {\n if (isArray) {\n return (<RenderBlocks blocks={props.block.value as any} />);\n } else if (isString) {\n return (<RenderText text={props.block.value as any} />);\n } else {\n return (<RenderText text={''} />);\n }\n };\n\n return render();\n};\n\nfunction RenderText(props: RenderTextProps) {\n return (<>{props.text}</>);\n};\n\n/** \n * The default render method for processing Canvas data \n * \n * @link https://www.npmjs.com/package/@contensis/canvas-react#usage\n * \n * @param data - Accepts Canvas data\n * \n * */\nexport function Renderer(props: RendererProps) {\n return (<RenderBlocks blocks={props.data} />);\n}\n\ntype AttributeProps = RenderBlockProps<Block>\n | RenderBlockPropsWithChildren<Block>\n | RenderDecoratorProps\n | RenderDecoratorPropsWithChildren;\n\nfunction getAttributes(props: AttributeProps, extra: Record<string, any> = {}) {\n const { block, ...rest } = props;\n let { children, decorator, otherDecorators, ...attributes } = rest as Record<string, any>;\n attributes = {\n id: block?.properties?.id,\n ...extra,\n ...attributes\n };\n return attributes;\n}\n\nfunction WithCaption(props: WithChildren & { caption: undefined | string }) {\n return (\n !!props.caption\n ? (\n <figure>\n {props.children}\n <figcaption>{props.caption}</figcaption>\n </figure>\n )\n : (props.children || null)\n );\n};\n\nfunction RenderBlockChildrenFactory<T extends Block>() {\n return function (props: RenderBlockProps<T>) {\n return (<RenderChildren block={props.block} />);\n };\n}\n\nfunction EmptyChildrenFactory<T extends Block>() {\n return function (props: RenderBlockProps<T>) {\n return (<></>);\n };\n}\n\nexport function Anchor(props: RenderBlockPropsWithChildren<AnchorBlock>) {\n const attributes = getAttributes(props);\n return (\n <a {...attributes}>\n <RenderContents contents={props.children} fallback={<Anchor.Children block={props.block} />} />\n </a>\n );\n}\n\nAnchor.Children = RenderBlockChildrenFactory<AnchorBlock>();\n\nexport function Code(props: RenderBlockPropsWithChildren<CodeBlock>) {\n const attributes = getAttributes(props, {\n 'data-language': props.block?.value?.language\n });\n const codeAttributes = getAttributes(props, {\n className: `language-${props.block?.value?.language}`\n });\n return (\n <pre {...attributes}>\n <code {...codeAttributes}>\n <RenderContents contents={props.children} fallback={<Code.Children block={props.block} />} />\n </code>\n </pre>\n );\n}\n\nCode.Children = function (props: RenderBlockProps<CodeBlock>) {\n return (<>{props.block?.value?.code}</>);\n};\n\nfunction CodeWithCaption(props: RenderBlockPropsWithChildren<CodeBlock>) {\n return (\n <WithCaption caption={props.block?.value?.caption}>\n <Code {...props} />\n </WithCaption>\n );\n}\n\nexport function Component(props: RenderBlockPropsWithChildren<ComponentBlock>) {\n const component = props?.block.properties?.component;\n const components = useComponents();\n const ComponentElement = !!component ? components?.[component] : undefined;\n\n const value = props.block.value ? JSON.stringify(props.block.value) : '';\n const attributes = getAttributes(props, {\n className: 'component',\n 'data-component': props.block.properties?.component,\n 'data-component-value': value,\n });\n\n return (!!ComponentElement)\n ? (<ComponentElement {...props} />)\n : (\n <div {...attributes}>\n <RenderContents contents={props.children} fallback={<Component.Children block={props.block} />} />\n </div>\n );\n}\n\nComponent.Children = function (props: RenderBlockProps<ComponentBlock>) {\n return (<>Component: {props.block?.properties?.component}</>);\n};\n\nexport function Divider(props: RenderBlockPropsWithChildren<DividerBlock>) {\n const attributes = getAttributes(props);\n return (<hr {...attributes} />);\n}\n\nDivider.Children = EmptyChildrenFactory<DividerBlock>();\n\nexport function FormContentType(_props: RenderBlockPropsWithChildren<FormContentTypeBlock>) {\n return null;\n}\n\nFormContentType.Children = function (_props: RenderBlockProps<FormContentTypeBlock>) {\n return null;\n};\n\nexport function Fragment(props: RenderBlockPropsWithChildren<FragmentBlock>) {\n const hasDecorators = !!props.block?.properties?.decorators?.length;\n const decorators = props.block?.properties?.decorators;\n return (\n hasDecorators\n ? (<Decorators block={props.block} decorators={decorators}></Decorators>)\n : (<RenderContents contents={props.children} fallback={<Fragment.Children block={props.block} />} />)\n );\n}\n\nFragment.Children = RenderBlockChildrenFactory<FragmentBlock>();\n\nexport function Heading(props: RenderBlockPropsWithChildren<HeadingBlock>) {\n const attributes = getAttributes(props);\n const render = () => {\n switch (props?.block?.properties?.level) {\n case 2: {\n return (\n <h2 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h2>\n );\n }\n case 3: {\n return (\n <h3 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h3>\n );\n }\n case 4: {\n return (\n <h4 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h4>\n );\n }\n case 5: {\n return (\n <h5 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h5>\n );\n }\n case 6: {\n return (\n <h6 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h6>\n );\n }\n default: {\n return (\n <h1 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h1>\n );\n }\n }\n };\n return render();\n}\n\nHeading.Children = RenderBlockChildrenFactory<HeadingBlock>();\n\nexport function Image(props: RenderBlockPropsWithChildren<ImageBlock>) {\n const src = props.block?.value?.asset?.sys?.uri;\n const attributes = getAttributes(props, {\n src,\n alt: props.block?.value?.altText,\n title: props?.block?.value?.caption,\n });\n return (<img {...attributes} />);\n}\n\nImage.Children = EmptyChildrenFactory<ImageBlock>();\n\nfunction ImageWithCaption(props: RenderBlockPropsWithChildren<ImageBlock>) {\n return (\n <WithCaption caption={props.block?.value?.caption}>\n <Image {...props} />\n </WithCaption>\n );\n}\n\nexport function InlineEntry(props: RenderBlockPropsWithChildren<InlineEntryBlock>) {\n const href = props?.block?.value?.sys?.uri;\n const attributes = getAttributes(props, {\n href\n });\n return (!!attributes.href\n ? (\n <a {...attributes}>\n <RenderContents contents={props.children} fallback={<InlineEntry.Children block={props.block} />} />\n </a>\n )\n : (<RenderContents contents={props.children} fallback={<InlineEntry.Children block={props.block} />} />)\n );\n}\n\nInlineEntry.Children = function (props: RenderBlockProps<InlineEntryBlock>) {\n const entryTitle = props?.block?.value?.entryTitle || '';\n return (<>{entryTitle}</>);\n};\n\nexport function Link(props: RenderBlockPropsWithChildren<LinkBlock>) {\n const linkValue = props?.block?.properties?.link;\n const attributes = getAttributes(props, {\n href: linkValue?.sys?.uri,\n target: props?.block?.properties?.newTab ? '_blank' : null,\n rel: props?.block?.properties?.newTab ? 'noopener noreferrer' : null\n });\n return (!!attributes.href\n ? (\n <a {...attributes}>\n <RenderContents contents={props.children} fallback={<Link.Children block={props.block} />} />\n </a>\n )\n : (<RenderContents contents={props.children} fallback={<Link.Children block={props.block} />} />)\n );\n}\n\nLink.Children = RenderBlockChildrenFactory<LinkBlock>();\n\nexport function List(props: RenderBlockPropsWithChildren<ListBlock>) {\n const isOrdered = (props.block?.properties?.listType === 'ordered');\n const attributes = getAttributes(props, {\n start: isOrdered ? props.block?.properties?.start : null,\n });\n return (isOrdered\n ? (\n <ol {...attributes}>\n <RenderContents contents={props.children} fallback={<List.Children block={props.block} />} />\n </ol>\n )\n : (\n <ul {...attributes}>\n <RenderContents contents={props.children} fallback={<List.Children block={props.block} />} />\n </ul>\n )\n );\n}\n\nList.Children = RenderBlockChildrenFactory<ListBlock>();\n\nexport function ListItem(props: RenderBlockPropsWithChildren<ListItemBlock>) {\n const attributes = getAttributes(props);\n return (\n <li {...attributes}>\n <RenderContents contents={props.children} fallback={<ListItem.Children block={props.block} />} />\n </li>\n );\n}\n\nListItem.Children = RenderBlockChildrenFactory<ListItemBlock>();\n\nexport function Panel(props: RenderBlockPropsWithChildren<PanelBlock>) {\n const attributes = getAttributes(props, {\n className: ['panel', props.block?.properties?.panelType || 'info'].join(' ')\n });\n return (\n <aside {...attributes}>\n <RenderContents contents={props.children} fallback={<Panel.Children block={props.block} />} />\n </aside>\n );\n}\n\nPanel.Children = RenderBlockChildrenFactory<PanelBlock>();\n\nexport function Paragraph(props: RenderBlockPropsWithChildren<ParagraphBlock>) {\n const attributes = getAttributes(props, {\n className: props.block?.properties?.paragraphType\n });\n return (\n <p {...attributes}>\n <RenderContents contents={props.children} fallback={<Paragraph.Children block={props.block} />} />\n </p>\n );\n}\n\nParagraph.Children = RenderBlockChildrenFactory<ParagraphBlock>();\n\n\nexport function Quote(props: RenderBlockPropsWithChildren<QuoteBlock>) {\n const attributes = getAttributes(props, {\n 'cite': props.block?.properties?.url\n });\n return (\n <blockquote {...attributes}>\n <RenderContents contents={props.children} fallback={<Quote.Children block={props.block} />} />\n </blockquote>\n );\n}\n\nQuote.Children = function (props: RenderBlockProps<QuoteBlock>) {\n const source = props.block?.properties?.source;\n const citation = props.block?.properties?.citation;\n const hasChildren = !!source || !!citation;\n return (\n hasChildren\n ? (\n <>\n <p>\n <RenderChildren block={props.block} />\n </p>\n <footer>{source} {!!citation ? (<cite>{citation}</cite>) : (<></>)}</footer>\n </>\n )\n : (<RenderChildren block={props.block} />)\n );\n // return (<RenderChildren block={props.block} />);\n // return (\n // <Show when={hasChildren()} fallback={<RenderChildren block={props.block} />}>\n // <p>\n // <RenderChildren block={props.block} />\n // </p>\n // <Show when={citation()} fallback={<footer>{source()}</footer>}>\n // <footer>{source()} <cite>{citation()}</cite></footer>\n // </Show>\n // </Show>\n // );\n};\n\n\nexport function Table(props: RenderBlockPropsWithChildren<TableBlock>) {\n const attributes = getAttributes(props);\n return (\n <table {...attributes}>\n <RenderContents contents={props.children} fallback={<Table.Children block={props.block} />} />\n </table>\n );\n}\n\nTable.Children = RenderBlockChildrenFactory<TableBlock>();\n\nexport function TableBody(props: RenderBlockPropsWithChildren<TableBodyBlock>) {\n const attributes = getAttributes(props);\n return (\n <tbody {...attributes}>\n <RenderContents contents={props.children} fallback={<TableBody.Children block={props.block} />} />\n </tbody>\n );\n}\n\nTableBody.Children = RenderBlockChildrenFactory<TableBodyBlock>();\n\nexport function TableCaption(props: RenderBlockPropsWithChildren<TableCaptionBlock>) {\n const attributes = getAttributes(props);\n return (\n <caption {...attributes}>\n <RenderContents contents={props.children} fallback={<TableCaption.Children block={props.block} />} />\n </caption>\n );\n}\n\nTableCaption.Children = RenderBlockChildrenFactory<TableCaptionBlock>();\n\nexport function TableCell(props: RenderBlockPropsWithChildren<TableCellBlock>) {\n const attributes = getAttributes(props);\n return (\n <td {...attributes}>\n <RenderContents contents={props.children} fallback={<TableCell.Children block={props.block} />} />\n </td>\n );\n}\n\nTableCell.Children = RenderBlockChildrenFactory<TableCellBlock>();\n\nexport function TableFooter(props: RenderBlockPropsWithChildren<TableFooterBlock>) {\n const attributes = getAttributes(props);\n return (\n <tfoot {...attributes}>\n <RenderContents contents={props.children} fallback={<TableFooter.Children block={props.block} />} />\n </tfoot>\n );\n}\n\nTableFooter.Children = RenderBlockChildrenFactory<TableFooterBlock>();\n\nexport function TableHeader(props: RenderBlockPropsWithChildren<TableHeaderBlock>) {\n const attributes = getAttributes(props);\n return (\n <thead {...attributes}>\n <RenderContents contents={props.children} fallback={<TableHeader.Children block={props.block} />} />\n </thead>\n );\n}\n\nTableHeader.Children = RenderBlockChildrenFactory<TableHeaderBlock>();\n\nexport function TableHeaderCell(props: RenderBlockPropsWithChildren<TableHeaderCellBlock>) {\n const attributes = getAttributes(props);\n return (\n <th {...attributes}>\n <RenderContents contents={props.children} fallback={<TableHeaderCell.Children block={props.block} />} />\n </th>\n );\n}\n\nTableHeaderCell.Children = RenderBlockChildrenFactory<TableHeaderCellBlock>();\n\nexport function TableRow(props: RenderBlockPropsWithChildren<TableRowBlock>) {\n const attributes = getAttributes(props);\n return (\n <tr {...attributes}>\n <RenderContents contents={props.children} fallback={<TableRow.Children block={props.block} />} />\n </tr>\n );\n}\n\nTableRow.Children = RenderBlockChildrenFactory<TableRowBlock>();\n\n\nfunction Decorators(props: DecoratorProps) {\n const decorators = useDecorators();\n const remainingDecorators = !!props.decorators ? [...props.decorators] : undefined;\n const firstDecorator = !!remainingDecorators ? remainingDecorators.shift() : undefined;\n const DecoratorComponent = !!firstDecorator ? decorators[firstDecorator] : undefined;\n\n const render = () => {\n if (!!DecoratorComponent) {\n return (<DecoratorComponent block={props.block} decorator={firstDecorator} otherDecorators={remainingDecorators} />);\n } else if (firstDecorator) {\n return (<Decorators block={props.block} decorators={remainingDecorators} />);\n } else {\n return (<Fragment.Children block={props.block} />);\n }\n };\n\n return render();\n}\n\nfunction DecoratorChildren(props: RenderDecoratorPropsWithChildren) {\n return (<Decorators block={props.block} decorators={props.otherDecorators} />)\n}\n\nexport function InlineCode(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <code {...attributes}>\n <RenderContents contents={props.children} fallback={<InlineCode.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </code>\n );\n}\n\nInlineCode.Children = DecoratorChildren;\n\nexport function Delete(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <del {...attributes}>\n <RenderContents contents={props.children} fallback={<Delete.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </del>\n );\n}\n\nDelete.Children = DecoratorChildren;\n\nexport function Emphasis(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <em {...attributes}>\n <RenderContents contents={props.children} fallback={<Emphasis.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </em>\n );\n}\n\nEmphasis.Children = DecoratorChildren;\n\nexport function Insert(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <ins {...attributes}>\n <RenderContents contents={props.children} fallback={<Insert.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </ins>\n );\n}\n\nInsert.Children = DecoratorChildren;\n\nexport function Keyboard(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <kbd {...attributes}>\n <RenderContents contents={props.children} fallback={<Keyboard.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </kbd>\n );\n}\n\nKeyboard.Children = DecoratorChildren;\n\nexport function LineBreak(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (<br {...attributes} />);\n}\n\nLineBreak.Children = function (props: RenderDecoratorPropsWithChildren) {\n return (<></>)\n}\n\nexport function Mark(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <mark {...attributes}>\n <RenderContents contents={props.children} fallback={<Mark.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </mark>\n );\n}\n\nMark.Children = DecoratorChildren;\n\nexport function Strong(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <strong {...attributes}>\n <RenderContents contents={props.children} fallback={<Strong.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </strong>\n );\n}\n\nStrong.Children = DecoratorChildren;\n\nexport function Strikethrough(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <s {...attributes}>\n <RenderContents contents={props.children} fallback={<Strikethrough.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </s>\n );\n}\n\nStrikethrough.Children = DecoratorChildren;\n\nexport function Subscript(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <sub {...attributes}>\n <RenderContents contents={props.children} fallback={<Subscript.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </sub>\n );\n}\n\nSubscript.Children = DecoratorChildren;\n\nexport function Superscript(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <sup {...attributes}>\n <RenderContents contents={props.children} fallback={<Superscript.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </sup>\n );\n}\n\nSuperscript.Children = DecoratorChildren;\n\nexport function Underline(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <u {...attributes}>\n <RenderContents contents={props.children} fallback={<Underline.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </u>\n );\n}\n\nUnderline.Children = DecoratorChildren;\n\nexport function Variable(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <var {...attributes}>\n <RenderContents contents={props.children} fallback={<Variable.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </var>\n );\n}\n\nVariable.Children = DecoratorChildren;\n\n\nconst BLOCK_RENDERERS: BlockRenderers = {\n '_anchor': Anchor,\n '_code': CodeWithCaption,\n '_component': Component,\n '_divider': Divider,\n '_formContentType': FormContentType,\n '_fragment': Fragment,\n '_heading': Heading,\n '_image': ImageWithCaption,\n '_inlineEntry': InlineEntry,\n '_link': Link,\n '_list': List,\n '_listItem': ListItem,\n '_panel': Panel,\n '_paragraph': Paragraph,\n '_quote': Quote,\n '_table': Table,\n '_tableBody': TableBody,\n '_tableCaption': TableCaption,\n '_tableCell': TableCell,\n '_tableFooter': TableFooter,\n '_tableHeader': TableHeader,\n '_tableHeaderCell': TableHeaderCell,\n '_tableRow': TableRow,\n};\n\nconst DECORATOR_RENDERERS: DecoratorRenderers = {\n 'code': InlineCode,\n 'delete': Delete,\n 'emphasis': Emphasis,\n 'insert': Insert,\n 'keyboard': Keyboard,\n 'linebreak': LineBreak,\n 'mark': Mark,\n 'strikethrough': Strikethrough,\n 'strong': Strong,\n 'subscript': Subscript,\n 'superscript': Superscript,\n 'underline': Underline,\n 'variable': Variable\n};"],"mappings":"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","names":["React","Component","React","React","React"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/renderer.tsx"],"sourcesContent":["export * from '@contensis/canvas-types';\nexport * from './renderer';\n","import React, { ClassType, ComponentClass, FunctionComponent, Component as ReactComponent, createContext, useContext } from 'react';\nimport {\n AnchorBlock,\n AssetBlock,\n Block,\n CodeBlock,\n ComponentBlock,\n DecoratorType,\n DividerBlock,\n EntryBlock,\n FormContentTypeBlock,\n FragmentBlock,\n HeadingBlock,\n ImageBlock,\n InlineEntryBlock,\n LinkBlock,\n LiquidBlock,\n ListBlock,\n ListItemBlock,\n PanelBlock,\n ParagraphBlock,\n QuoteBlock,\n TableBlock,\n TableBodyBlock,\n TableCaptionBlock, TableCellBlock,\n TableFooterBlock,\n TableHeaderBlock,\n TableHeaderCellBlock,\n TableRowBlock\n} from '@contensis/canvas-types';\n\ntype Attributes = Record<string, any>;\ntype WithChildren = { children?: JSX.Element | undefined };\n\ntype RendererProps = { data: Block[] };\ntype RenderBlocksProps = { blocks: Block[] };\ntype RenderBlockProps<T extends Block> = { block: T };\ntype RenderBlockPropsWithChildren<T extends Block>\n = RenderBlockProps<T> & WithChildren & Attributes;\n\ntype RenderContentsProps = { contents: undefined | JSX.Element, fallback: JSX.Element };\ntype RenderTextProps = { text: string };\n\ntype DecoratorProps = { block: FragmentBlock, decorators: undefined | DecoratorType[] };\n\ntype TypedBlock<TType extends Block['type']> = Extract<Block, { type: TType }>;\n\ntype Renderer<TProps> = FunctionComponent<TProps> | ClassType<TProps, ReactComponent<TProps>, ComponentClass<TProps>>;\n\ntype BlockRenderer<T extends Block> = Renderer<RenderBlockPropsWithChildren<T>>;\ntype BlockRenderers = {\n [TType in Block['type']]: BlockRenderer<TypedBlock<TType>>\n};\n\n\ntype RenderDecoratorProps = { block: FragmentBlock, decorator: undefined | DecoratorType, otherDecorators: undefined | DecoratorType[] };\ntype RenderDecoratorPropsWithChildren = RenderDecoratorProps & WithChildren & Attributes;\n\ntype DecoratorRenderer = Renderer<RenderDecoratorPropsWithChildren>;\ntype DecoratorRenderers = Record<DecoratorType, DecoratorRenderer>;\n\ntype ComponentRenderer = Renderer<RenderBlockPropsWithChildren<ComponentBlock>>;\ntype ComponentRenderers = Record<string, ComponentRenderer>;\ntype EntryRenderer = Renderer<RenderBlockPropsWithChildren<EntryBlock>>;\ntype EntryRenderers = Record<string, EntryRenderer>;\ntype AssetRenderer = Renderer<RenderBlockPropsWithChildren<AssetBlock>>;\ntype AssetRenderers = Record<string, AssetRenderer>;\n\ntype RendererContextValue = {\n blocks?: BlockRenderers,\n decorators?: DecoratorRenderers,\n components?: ComponentRenderers,\n entries?: EntryRenderers,\n assets?: AssetRenderers,\n};\n\ntype RendererOverridesContextValue = {\n blocks?: Partial<BlockRenderers>,\n decorators?: Partial<DecoratorRenderers>,\n components?: ComponentRenderers,\n entries?: EntryRenderers,\n assets?: AssetRenderers,\n};\n\ntype RendererContextProviderProps = WithChildren & RendererOverridesContextValue;\n\nexport type { BlockRenderer, RenderBlockProps, RenderBlockPropsWithChildren, RenderDecoratorProps, RenderDecoratorPropsWithChildren };\n\nexport const RendererContext = createContext<RendererContextValue>({});\n\n/** \n * Provides context to the <Renderer> component to return Canvas data as React components\n *\n * @link https://www.npmjs.com/package/@contensis/canvas-react#usage\n *\n * @param blocks - Override the default rendering of Canvas content blocks\n * @param components - Render method for Contensis Components within the Canvas field\n * @param decorators - Override the rendering of HTML elements within a text field\n * \n * @example \n * <RenderContextProvider blocks={{ _table: Table }} components={{ banner: Banner }} decorators={{ strong: Strong }}>\n * <Renderer data={data} />\n * </RenderContextProvider>\n * \n */\nexport function RenderContextProvider(props: RendererContextProviderProps) {\n\n const overrideBlocks = props.blocks;\n const blocks = Object.keys(BLOCK_RENDERERS)\n .reduce((prev, type) => {\n const blockType = type as Block['type'];\n const renderer: any = overrideBlocks?.[blockType] || BLOCK_RENDERERS[blockType];\n (prev as any)[blockType] = renderer;\n return prev;\n }, {} as BlockRenderers);\n\n const overrideDecorators = props.decorators;\n const decorators = Object.keys(DECORATOR_RENDERERS)\n .reduce((prev, type) => {\n const decoratorType = type as DecoratorType;\n prev[decoratorType] = overrideDecorators?.[decoratorType] || DECORATOR_RENDERERS[decoratorType];\n return prev;\n }, {} as DecoratorRenderers);\n\n const value = { blocks, decorators, components: props.components, entries: props.entries, assets: props?.assets };\n\n return (\n <RendererContext.Provider value={value}>\n {props.children}\n </RendererContext.Provider>\n );\n}\n\nfunction useBlocks() {\n const value = useContext(RendererContext);\n return value.blocks || BLOCK_RENDERERS;\n}\n\nfunction useDecorators() {\n const value = useContext(RendererContext);\n return value.decorators || DECORATOR_RENDERERS;\n}\n\nfunction useComponents() {\n const value = useContext(RendererContext);\n return value.components || {};\n}\n\nfunction useEntries() {\n const value = useContext(RendererContext);\n return value.entries || {};\n}\n\nfunction useAssets() {\n const value = useContext(RendererContext);\n return value.assets || {};\n}\n\nfunction RenderBlock<TBlock extends Block>(props: RenderBlockProps<TBlock>) {\n const blocks = useBlocks();\n const Component = blocks[props.block.type] as BlockRenderer<TBlock>;\n return !!Component ? (<Component block={props.block} />) : null;\n}\n\nfunction RenderBlocks(props: RenderBlocksProps) {\n return (<>{props.blocks.map(block => <RenderBlock block={block} key={block.id} />)}</>);\n}\n\nfunction RenderContents(props: RenderContentsProps) {\n return (props.contents ? props.contents : props.fallback);\n}\n\nexport function RenderChildren(props: RenderBlockProps<Block>) {\n const isArray = Array.isArray(props.block?.value);\n const isString = typeof props.block?.value === 'string';\n\n const render = () => {\n if (isArray) {\n return (<RenderBlocks blocks={props.block.value as any} />);\n } else if (isString) {\n return (<RenderText text={props.block.value as any} />);\n } else {\n return (<RenderText text={''} />);\n }\n };\n\n return render();\n};\n\nfunction RenderText(props: RenderTextProps) {\n return (<>{props.text}</>);\n};\n\n/** \n * The default render method for processing Canvas data \n * \n * @link https://www.npmjs.com/package/@contensis/canvas-react#usage\n * \n * @param data - Accepts Canvas data\n * \n * */\nexport function Renderer(props: RendererProps) {\n return (<RenderBlocks blocks={props.data} />);\n}\n\ntype AttributeProps = RenderBlockProps<Block>\n | RenderBlockPropsWithChildren<Block>\n | RenderDecoratorProps\n | RenderDecoratorPropsWithChildren;\n\nfunction getAttributes(props: AttributeProps, extra: Record<string, any> = {}) {\n const { block, ...rest } = props;\n let { children, decorator, otherDecorators, ...attributes } = rest as Record<string, any>;\n attributes = {\n id: block?.properties?.id,\n ...extra,\n ...attributes\n };\n return attributes;\n}\n\nfunction WithCaption(props: WithChildren & { caption: undefined | string }) {\n return (\n !!props.caption\n ? (\n <figure>\n {props.children}\n <figcaption>{props.caption}</figcaption>\n </figure>\n )\n : (props.children || null)\n );\n};\n\nfunction RenderBlockChildrenFactory<T extends Block>() {\n return function (props: RenderBlockProps<T>) {\n return (<RenderChildren block={props.block} />);\n };\n}\n\nfunction EmptyChildrenFactory<T extends Block>() {\n return function (props: RenderBlockProps<T>) {\n return (<></>);\n };\n}\n\nexport function Anchor(props: RenderBlockPropsWithChildren<AnchorBlock>) {\n const attributes = getAttributes(props);\n return (\n <a {...attributes}>\n <RenderContents contents={props.children} fallback={<Anchor.Children block={props.block} />} />\n </a>\n );\n}\n\nAnchor.Children = RenderBlockChildrenFactory<AnchorBlock>();\n\nexport function Asset(props: RenderBlockPropsWithChildren<AssetBlock>) {\n const contentTypeId = props?.block?.value?.sys?.contentTypeId;\n const components = useAssets();\n const AssetElement = !!contentTypeId ? components?.[contentTypeId] : undefined;\n const attributes = getAttributes(props);\n return (!!AssetElement)\n ? <AssetElement {...props} />\n : (\n <div {...attributes}>\n <RenderContents contents={props.children} fallback={<Asset.Children block={props.block} />} />\n </div>\n );\n}\n\nAsset.Children = function (props: RenderBlockProps<AssetBlock>) {\n const href = props?.block?.value?.sys?.uri;\n const entryTitle = props?.block?.value?.entryTitle || '';\n const entryDescription = props?.block?.value?.entryDescription || '';\n return (<>\n <div>\n {!!href ? <a href={href}>{entryTitle}</a> : entryTitle}\n </div>\n {!!entryDescription ? <div>{entryDescription}</div> : null}\n </>);\n};\n\nexport function Code(props: RenderBlockPropsWithChildren<CodeBlock>) {\n const attributes = getAttributes(props, {\n 'data-language': props.block?.value?.language\n });\n const codeAttributes = getAttributes(props, {\n className: `language-${props.block?.value?.language}`\n });\n return (\n <pre {...attributes}>\n <code {...codeAttributes}>\n <RenderContents contents={props.children} fallback={<Code.Children block={props.block} />} />\n </code>\n </pre>\n );\n}\n\nCode.Children = function (props: RenderBlockProps<CodeBlock>) {\n return (<>{props.block?.value?.code}</>);\n};\n\nfunction CodeWithCaption(props: RenderBlockPropsWithChildren<CodeBlock>) {\n return (\n <WithCaption caption={props.block?.value?.caption}>\n <Code {...props} />\n </WithCaption>\n );\n}\n\nexport function Component(props: RenderBlockPropsWithChildren<ComponentBlock>) {\n const component = props?.block.properties?.component;\n const components = useComponents();\n const ComponentElement = !!component ? components?.[component] : undefined;\n\n const value = props.block.value ? JSON.stringify(props.block.value) : '';\n const attributes = getAttributes(props, {\n className: 'component',\n 'data-component': props.block.properties?.component,\n 'data-component-value': value,\n });\n\n return (!!ComponentElement)\n ? (<ComponentElement {...props} />)\n : (\n <div {...attributes}>\n <RenderContents contents={props.children} fallback={<Component.Children block={props.block} />} />\n </div>\n );\n}\n\nComponent.Children = function (props: RenderBlockProps<ComponentBlock>) {\n return (<>Component: {props.block?.properties?.component}</>);\n};\n\nexport function Divider(props: RenderBlockPropsWithChildren<DividerBlock>) {\n const attributes = getAttributes(props);\n return (<hr {...attributes} />);\n}\n\nDivider.Children = EmptyChildrenFactory<DividerBlock>();\n\nexport function Entry(props: RenderBlockPropsWithChildren<EntryBlock>) {\n const contentTypeId = props?.block?.value?.sys?.contentTypeId;\n const components = useEntries();\n const EntryElement = !!contentTypeId ? components?.[contentTypeId] : undefined;\n const attributes = getAttributes(props);\n return (!!EntryElement)\n ? <EntryElement {...props} />\n : (\n <div {...attributes}>\n <RenderContents contents={props.children} fallback={<Entry.Children block={props.block} />} />\n </div>\n );\n}\n\nEntry.Children = function (props: RenderBlockProps<EntryBlock>) {\n const href = props?.block?.value?.sys?.uri;\n const entryTitle = props?.block?.value?.entryTitle || '';\n const entryDescription = props?.block?.value?.entryDescription || '';\n return (<>\n <div>\n {!!href ? <a href={href}>{entryTitle}</a> : entryTitle}\n </div>\n {!!entryDescription ? <div>{entryDescription}</div> : null}\n </>);\n};\n\nexport function FormContentType(_props: RenderBlockPropsWithChildren<FormContentTypeBlock>) {\n return null;\n}\n\nFormContentType.Children = function (_props: RenderBlockProps<FormContentTypeBlock>) {\n return null;\n};\n\nexport function Fragment(props: RenderBlockPropsWithChildren<FragmentBlock>) {\n const hasDecorators = !!props.block?.properties?.decorators?.length;\n const decorators = props.block?.properties?.decorators;\n return (\n hasDecorators\n ? (<Decorators block={props.block} decorators={decorators}></Decorators>)\n : (<RenderContents contents={props.children} fallback={<Fragment.Children block={props.block} />} />)\n );\n}\n\nFragment.Children = RenderBlockChildrenFactory<FragmentBlock>();\n\nexport function Heading(props: RenderBlockPropsWithChildren<HeadingBlock>) {\n const attributes = getAttributes(props);\n const render = () => {\n switch (props?.block?.properties?.level) {\n case 2: {\n return (\n <h2 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h2>\n );\n }\n case 3: {\n return (\n <h3 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h3>\n );\n }\n case 4: {\n return (\n <h4 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h4>\n );\n }\n case 5: {\n return (\n <h5 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h5>\n );\n }\n case 6: {\n return (\n <h6 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h6>\n );\n }\n default: {\n return (\n <h1 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h1>\n );\n }\n }\n };\n return render();\n}\n\nHeading.Children = RenderBlockChildrenFactory<HeadingBlock>();\n\nexport function Image(props: RenderBlockPropsWithChildren<ImageBlock>) {\n const src = props.block?.value?.asset?.sys?.uri;\n const attributes = getAttributes(props, {\n src,\n alt: props.block?.value?.altText,\n title: props?.block?.value?.caption,\n });\n return (<img {...attributes} />);\n}\n\nImage.Children = EmptyChildrenFactory<ImageBlock>();\n\nfunction ImageWithCaption(props: RenderBlockPropsWithChildren<ImageBlock>) {\n return (\n <WithCaption caption={props.block?.value?.caption}>\n <Image {...props} />\n </WithCaption>\n );\n}\n\nexport function InlineEntry(props: RenderBlockPropsWithChildren<InlineEntryBlock>) {\n const href = props?.block?.value?.sys?.uri;\n const attributes = getAttributes(props, {\n href\n });\n return (!!attributes.href\n ? (\n <a {...attributes}>\n <RenderContents contents={props.children} fallback={<InlineEntry.Children block={props.block} />} />\n </a>\n )\n : (<RenderContents contents={props.children} fallback={<InlineEntry.Children block={props.block} />} />)\n );\n}\n\nInlineEntry.Children = function (props: RenderBlockProps<InlineEntryBlock>) {\n const entryTitle = props?.block?.value?.entryTitle || '';\n return (<>{entryTitle}</>);\n};\n\nexport function Link(props: RenderBlockPropsWithChildren<LinkBlock>) {\n const linkValue = props?.block?.properties?.link;\n const attributes = getAttributes(props, {\n href: linkValue?.sys?.uri,\n target: props?.block?.properties?.newTab ? '_blank' : null,\n rel: props?.block?.properties?.newTab ? 'noopener noreferrer' : null\n });\n return (!!attributes.href\n ? (\n <a {...attributes}>\n <RenderContents contents={props.children} fallback={<Link.Children block={props.block} />} />\n </a>\n )\n : (<RenderContents contents={props.children} fallback={<Link.Children block={props.block} />} />)\n );\n}\n\nLink.Children = RenderBlockChildrenFactory<LinkBlock>();\n\nexport function Liquid(props: RenderBlockPropsWithChildren<LiquidBlock>) {\n return (\n <RenderContents contents={props.children} fallback={<Liquid.Children block={props.block} />} />\n );\n}\n\nLiquid.Children = function (props: RenderBlockProps<LiquidBlock>) {\n return (<>{props.block?.value}</>);\n};\n\nexport function List(props: RenderBlockPropsWithChildren<ListBlock>) {\n const isOrdered = (props.block?.properties?.listType === 'ordered');\n const attributes = getAttributes(props, {\n start: isOrdered ? props.block?.properties?.start : null,\n });\n return (isOrdered\n ? (\n <ol {...attributes}>\n <RenderContents contents={props.children} fallback={<List.Children block={props.block} />} />\n </ol>\n )\n : (\n <ul {...attributes}>\n <RenderContents contents={props.children} fallback={<List.Children block={props.block} />} />\n </ul>\n )\n );\n}\n\nList.Children = RenderBlockChildrenFactory<ListBlock>();\n\nexport function ListItem(props: RenderBlockPropsWithChildren<ListItemBlock>) {\n const attributes = getAttributes(props);\n return (\n <li {...attributes}>\n <RenderContents contents={props.children} fallback={<ListItem.Children block={props.block} />} />\n </li>\n );\n}\n\nListItem.Children = RenderBlockChildrenFactory<ListItemBlock>();\n\nexport function Panel(props: RenderBlockPropsWithChildren<PanelBlock>) {\n const attributes = getAttributes(props, {\n className: ['panel', props.block?.properties?.panelType || 'info'].join(' ')\n });\n return (\n <aside {...attributes}>\n <RenderContents contents={props.children} fallback={<Panel.Children block={props.block} />} />\n </aside>\n );\n}\n\nPanel.Children = RenderBlockChildrenFactory<PanelBlock>();\n\nexport function Paragraph(props: RenderBlockPropsWithChildren<ParagraphBlock>) {\n const attributes = getAttributes(props, {\n className: props.block?.properties?.paragraphType\n });\n return (\n <p {...attributes}>\n <RenderContents contents={props.children} fallback={<Paragraph.Children block={props.block} />} />\n </p>\n );\n}\n\nParagraph.Children = RenderBlockChildrenFactory<ParagraphBlock>();\n\n\nexport function Quote(props: RenderBlockPropsWithChildren<QuoteBlock>) {\n const attributes = getAttributes(props, {\n 'cite': props.block?.properties?.url\n });\n return (\n <blockquote {...attributes}>\n <RenderContents contents={props.children} fallback={<Quote.Children block={props.block} />} />\n </blockquote>\n );\n}\n\nQuote.Children = function (props: RenderBlockProps<QuoteBlock>) {\n const source = props.block?.properties?.source;\n const citation = props.block?.properties?.citation;\n const hasChildren = !!source || !!citation;\n return (\n hasChildren\n ? (\n <>\n <p>\n <RenderChildren block={props.block} />\n </p>\n <footer>{source} {!!citation ? (<cite>{citation}</cite>) : (<></>)}</footer>\n </>\n )\n : (<RenderChildren block={props.block} />)\n );\n};\n\n\nexport function Table(props: RenderBlockPropsWithChildren<TableBlock>) {\n const attributes = getAttributes(props);\n return (\n <table {...attributes}>\n <RenderContents contents={props.children} fallback={<Table.Children block={props.block} />} />\n </table>\n );\n}\n\nTable.Children = RenderBlockChildrenFactory<TableBlock>();\n\nexport function TableBody(props: RenderBlockPropsWithChildren<TableBodyBlock>) {\n const attributes = getAttributes(props);\n return (\n <tbody {...attributes}>\n <RenderContents contents={props.children} fallback={<TableBody.Children block={props.block} />} />\n </tbody>\n );\n}\n\nTableBody.Children = RenderBlockChildrenFactory<TableBodyBlock>();\n\nexport function TableCaption(props: RenderBlockPropsWithChildren<TableCaptionBlock>) {\n const attributes = getAttributes(props);\n return (\n <caption {...attributes}>\n <RenderContents contents={props.children} fallback={<TableCaption.Children block={props.block} />} />\n </caption>\n );\n}\n\nTableCaption.Children = RenderBlockChildrenFactory<TableCaptionBlock>();\n\nexport function TableCell(props: RenderBlockPropsWithChildren<TableCellBlock>) {\n const attributes = getAttributes(props);\n return (\n <td {...attributes}>\n <RenderContents contents={props.children} fallback={<TableCell.Children block={props.block} />} />\n </td>\n );\n}\n\nTableCell.Children = RenderBlockChildrenFactory<TableCellBlock>();\n\nexport function TableFooter(props: RenderBlockPropsWithChildren<TableFooterBlock>) {\n const attributes = getAttributes(props);\n return (\n <tfoot {...attributes}>\n <RenderContents contents={props.children} fallback={<TableFooter.Children block={props.block} />} />\n </tfoot>\n );\n}\n\nTableFooter.Children = RenderBlockChildrenFactory<TableFooterBlock>();\n\nexport function TableHeader(props: RenderBlockPropsWithChildren<TableHeaderBlock>) {\n const attributes = getAttributes(props);\n return (\n <thead {...attributes}>\n <RenderContents contents={props.children} fallback={<TableHeader.Children block={props.block} />} />\n </thead>\n );\n}\n\nTableHeader.Children = RenderBlockChildrenFactory<TableHeaderBlock>();\n\nexport function TableHeaderCell(props: RenderBlockPropsWithChildren<TableHeaderCellBlock>) {\n const attributes = getAttributes(props);\n return (\n <th {...attributes}>\n <RenderContents contents={props.children} fallback={<TableHeaderCell.Children block={props.block} />} />\n </th>\n );\n}\n\nTableHeaderCell.Children = RenderBlockChildrenFactory<TableHeaderCellBlock>();\n\nexport function TableRow(props: RenderBlockPropsWithChildren<TableRowBlock>) {\n const attributes = getAttributes(props);\n return (\n <tr {...attributes}>\n <RenderContents contents={props.children} fallback={<TableRow.Children block={props.block} />} />\n </tr>\n );\n}\n\nTableRow.Children = RenderBlockChildrenFactory<TableRowBlock>();\n\n\nfunction Decorators(props: DecoratorProps) {\n const decorators = useDecorators();\n const remainingDecorators = !!props.decorators ? [...props.decorators] : undefined;\n const firstDecorator = !!remainingDecorators ? remainingDecorators.shift() : undefined;\n const DecoratorComponent = !!firstDecorator ? decorators[firstDecorator] : undefined;\n\n const render = () => {\n if (!!DecoratorComponent) {\n return (<DecoratorComponent block={props.block} decorator={firstDecorator} otherDecorators={remainingDecorators} />);\n } else if (firstDecorator) {\n return (<Decorators block={props.block} decorators={remainingDecorators} />);\n } else {\n return (<Fragment.Children block={props.block} />);\n }\n };\n\n return render();\n}\n\nfunction DecoratorChildren(props: RenderDecoratorPropsWithChildren) {\n return (<Decorators block={props.block} decorators={props.otherDecorators} />)\n}\n\nexport function Abbreviation(props: RenderDecoratorPropsWithChildren) { \n const title = props?.block?.properties?.abbreviation?.title;\n const attributes = getAttributes(props, { title });\n return (\n <abbr {...attributes}>\n <RenderContents contents={props.children} fallback={<InlineCode.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </abbr>\n );\n}\n\nAbbreviation.Children = DecoratorChildren;\n\nexport function InlineCode(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <code {...attributes}>\n <RenderContents contents={props.children} fallback={<InlineCode.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </code>\n );\n}\n\nInlineCode.Children = DecoratorChildren;\n\nexport function Delete(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <del {...attributes}>\n <RenderContents contents={props.children} fallback={<Delete.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </del>\n );\n}\n\nDelete.Children = DecoratorChildren;\n\nexport function Emphasis(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <em {...attributes}>\n <RenderContents contents={props.children} fallback={<Emphasis.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </em>\n );\n}\n\nEmphasis.Children = DecoratorChildren;\n\nexport function Insert(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <ins {...attributes}>\n <RenderContents contents={props.children} fallback={<Insert.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </ins>\n );\n}\n\nInsert.Children = DecoratorChildren;\n\nexport function Keyboard(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <kbd {...attributes}>\n <RenderContents contents={props.children} fallback={<Keyboard.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </kbd>\n );\n}\n\nKeyboard.Children = DecoratorChildren;\n\nexport function LineBreak(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (<br {...attributes} />);\n}\n\nLineBreak.Children = function (props: RenderDecoratorPropsWithChildren) {\n return (<></>)\n}\n\nexport function Mark(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <mark {...attributes}>\n <RenderContents contents={props.children} fallback={<Mark.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </mark>\n );\n}\n\nMark.Children = DecoratorChildren;\n\nexport function Strong(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <strong {...attributes}>\n <RenderContents contents={props.children} fallback={<Strong.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </strong>\n );\n}\n\nStrong.Children = DecoratorChildren;\n\nexport function Strikethrough(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <s {...attributes}>\n <RenderContents contents={props.children} fallback={<Strikethrough.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </s>\n );\n}\n\nStrikethrough.Children = DecoratorChildren;\n\nexport function Subscript(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <sub {...attributes}>\n <RenderContents contents={props.children} fallback={<Subscript.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </sub>\n );\n}\n\nSubscript.Children = DecoratorChildren;\n\nexport function Superscript(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <sup {...attributes}>\n <RenderContents contents={props.children} fallback={<Superscript.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </sup>\n );\n}\n\nSuperscript.Children = DecoratorChildren;\n\nexport function Underline(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <u {...attributes}>\n <RenderContents contents={props.children} fallback={<Underline.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </u>\n );\n}\n\nUnderline.Children = DecoratorChildren;\n\nexport function Variable(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <var {...attributes}>\n <RenderContents contents={props.children} fallback={<Variable.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </var>\n );\n}\n\nVariable.Children = DecoratorChildren;\n\nconst BLOCK_RENDERERS: BlockRenderers = {\n '_anchor': Anchor,\n '_asset': Asset,\n '_code': CodeWithCaption,\n '_component': Component,\n '_divider': Divider,\n '_entry': Entry,\n '_formContentType': FormContentType,\n '_fragment': Fragment,\n '_heading': Heading,\n '_image': ImageWithCaption,\n '_inlineEntry': InlineEntry,\n '_link': Link,\n '_liquid': Liquid,\n '_list': List,\n '_listItem': ListItem,\n '_panel': Panel,\n '_paragraph': Paragraph,\n '_quote': Quote,\n '_table': Table,\n '_tableBody': TableBody,\n '_tableCaption': TableCaption,\n '_tableCell': TableCell,\n '_tableFooter': TableFooter,\n '_tableHeader': TableHeader,\n '_tableHeaderCell': TableHeaderCell,\n '_tableRow': TableRow,\n};\n\nconst DECORATOR_RENDERERS: DecoratorRenderers = {\n 'abbreviation': Abbreviation,\n 'code': InlineCode,\n 'delete': Delete,\n 'emphasis': Emphasis,\n 'insert': Insert,\n 'keyboard': Keyboard,\n 'linebreak': LineBreak,\n 'mark': Mark,\n 'strikethrough': Strikethrough,\n 'strong': Strong,\n 'subscript': Subscript,\n 'superscript': Superscript,\n 'underline': Underline,\n 'variable': Variable\n};"],"mappings":"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","names":["React","Component","React","React","React"]}
|
|
@@ -44,7 +44,7 @@ function RenderContextProvider(props) {
|
|
|
44
44
|
prev[decoratorType] = (overrideDecorators == null ? void 0 : overrideDecorators[decoratorType]) || DECORATOR_RENDERERS[decoratorType];
|
|
45
45
|
return prev;
|
|
46
46
|
}, {});
|
|
47
|
-
const value = { blocks, decorators, components: props.components };
|
|
47
|
+
const value = { blocks, decorators, components: props.components, entries: props.entries, assets: props == null ? void 0 : props.assets };
|
|
48
48
|
return /* @__PURE__ */ React.createElement(RendererContext.Provider, { value }, props.children);
|
|
49
49
|
}
|
|
50
50
|
function useBlocks() {
|
|
@@ -59,6 +59,14 @@ function useComponents() {
|
|
|
59
59
|
const value = useContext(RendererContext);
|
|
60
60
|
return value.components || {};
|
|
61
61
|
}
|
|
62
|
+
function useEntries() {
|
|
63
|
+
const value = useContext(RendererContext);
|
|
64
|
+
return value.entries || {};
|
|
65
|
+
}
|
|
66
|
+
function useAssets() {
|
|
67
|
+
const value = useContext(RendererContext);
|
|
68
|
+
return value.assets || {};
|
|
69
|
+
}
|
|
62
70
|
function RenderBlock(props) {
|
|
63
71
|
const blocks = useBlocks();
|
|
64
72
|
const Component2 = blocks[props.block.type];
|
|
@@ -118,6 +126,21 @@ function Anchor(props) {
|
|
|
118
126
|
return /* @__PURE__ */ React.createElement("a", __spreadValues({}, attributes), /* @__PURE__ */ React.createElement(RenderContents, { contents: props.children, fallback: /* @__PURE__ */ React.createElement(Anchor.Children, { block: props.block }) }));
|
|
119
127
|
}
|
|
120
128
|
Anchor.Children = RenderBlockChildrenFactory();
|
|
129
|
+
function Asset(props) {
|
|
130
|
+
var _a, _b, _c;
|
|
131
|
+
const contentTypeId = (_c = (_b = (_a = props == null ? void 0 : props.block) == null ? void 0 : _a.value) == null ? void 0 : _b.sys) == null ? void 0 : _c.contentTypeId;
|
|
132
|
+
const components = useAssets();
|
|
133
|
+
const AssetElement = !!contentTypeId ? components == null ? void 0 : components[contentTypeId] : void 0;
|
|
134
|
+
const attributes = getAttributes(props);
|
|
135
|
+
return !!AssetElement ? /* @__PURE__ */ React.createElement(AssetElement, __spreadValues({}, props)) : /* @__PURE__ */ React.createElement("div", __spreadValues({}, attributes), /* @__PURE__ */ React.createElement(RenderContents, { contents: props.children, fallback: /* @__PURE__ */ React.createElement(Asset.Children, { block: props.block }) }));
|
|
136
|
+
}
|
|
137
|
+
Asset.Children = function(props) {
|
|
138
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
139
|
+
const href = (_c = (_b = (_a = props == null ? void 0 : props.block) == null ? void 0 : _a.value) == null ? void 0 : _b.sys) == null ? void 0 : _c.uri;
|
|
140
|
+
const entryTitle = ((_e = (_d = props == null ? void 0 : props.block) == null ? void 0 : _d.value) == null ? void 0 : _e.entryTitle) || "";
|
|
141
|
+
const entryDescription = ((_g = (_f = props == null ? void 0 : props.block) == null ? void 0 : _f.value) == null ? void 0 : _g.entryDescription) || "";
|
|
142
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", null, !!href ? /* @__PURE__ */ React.createElement("a", { href }, entryTitle) : entryTitle), !!entryDescription ? /* @__PURE__ */ React.createElement("div", null, entryDescription) : null);
|
|
143
|
+
};
|
|
121
144
|
function Code(props) {
|
|
122
145
|
var _a, _b, _c, _d;
|
|
123
146
|
const attributes = getAttributes(props, {
|
|
@@ -158,6 +181,21 @@ function Divider(props) {
|
|
|
158
181
|
return /* @__PURE__ */ React.createElement("hr", __spreadValues({}, attributes));
|
|
159
182
|
}
|
|
160
183
|
Divider.Children = EmptyChildrenFactory();
|
|
184
|
+
function Entry(props) {
|
|
185
|
+
var _a, _b, _c;
|
|
186
|
+
const contentTypeId = (_c = (_b = (_a = props == null ? void 0 : props.block) == null ? void 0 : _a.value) == null ? void 0 : _b.sys) == null ? void 0 : _c.contentTypeId;
|
|
187
|
+
const components = useEntries();
|
|
188
|
+
const EntryElement = !!contentTypeId ? components == null ? void 0 : components[contentTypeId] : void 0;
|
|
189
|
+
const attributes = getAttributes(props);
|
|
190
|
+
return !!EntryElement ? /* @__PURE__ */ React.createElement(EntryElement, __spreadValues({}, props)) : /* @__PURE__ */ React.createElement("div", __spreadValues({}, attributes), /* @__PURE__ */ React.createElement(RenderContents, { contents: props.children, fallback: /* @__PURE__ */ React.createElement(Entry.Children, { block: props.block }) }));
|
|
191
|
+
}
|
|
192
|
+
Entry.Children = function(props) {
|
|
193
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
194
|
+
const href = (_c = (_b = (_a = props == null ? void 0 : props.block) == null ? void 0 : _a.value) == null ? void 0 : _b.sys) == null ? void 0 : _c.uri;
|
|
195
|
+
const entryTitle = ((_e = (_d = props == null ? void 0 : props.block) == null ? void 0 : _d.value) == null ? void 0 : _e.entryTitle) || "";
|
|
196
|
+
const entryDescription = ((_g = (_f = props == null ? void 0 : props.block) == null ? void 0 : _f.value) == null ? void 0 : _g.entryDescription) || "";
|
|
197
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", null, !!href ? /* @__PURE__ */ React.createElement("a", { href }, entryTitle) : entryTitle), !!entryDescription ? /* @__PURE__ */ React.createElement("div", null, entryDescription) : null);
|
|
198
|
+
};
|
|
161
199
|
function FormContentType(_props) {
|
|
162
200
|
return null;
|
|
163
201
|
}
|
|
@@ -238,6 +276,13 @@ function Link(props) {
|
|
|
238
276
|
return !!attributes.href ? /* @__PURE__ */ React.createElement("a", __spreadValues({}, attributes), /* @__PURE__ */ React.createElement(RenderContents, { contents: props.children, fallback: /* @__PURE__ */ React.createElement(Link.Children, { block: props.block }) })) : /* @__PURE__ */ React.createElement(RenderContents, { contents: props.children, fallback: /* @__PURE__ */ React.createElement(Link.Children, { block: props.block }) });
|
|
239
277
|
}
|
|
240
278
|
Link.Children = RenderBlockChildrenFactory();
|
|
279
|
+
function Liquid(props) {
|
|
280
|
+
return /* @__PURE__ */ React.createElement(RenderContents, { contents: props.children, fallback: /* @__PURE__ */ React.createElement(Liquid.Children, { block: props.block }) });
|
|
281
|
+
}
|
|
282
|
+
Liquid.Children = function(props) {
|
|
283
|
+
var _a;
|
|
284
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, (_a = props.block) == null ? void 0 : _a.value);
|
|
285
|
+
};
|
|
241
286
|
function List(props) {
|
|
242
287
|
var _a, _b, _c, _d;
|
|
243
288
|
const isOrdered = ((_b = (_a = props.block) == null ? void 0 : _a.properties) == null ? void 0 : _b.listType) === "ordered";
|
|
@@ -341,6 +386,13 @@ function Decorators(props) {
|
|
|
341
386
|
function DecoratorChildren(props) {
|
|
342
387
|
return /* @__PURE__ */ React.createElement(Decorators, { block: props.block, decorators: props.otherDecorators });
|
|
343
388
|
}
|
|
389
|
+
function Abbreviation(props) {
|
|
390
|
+
var _a, _b, _c;
|
|
391
|
+
const title = (_c = (_b = (_a = props == null ? void 0 : props.block) == null ? void 0 : _a.properties) == null ? void 0 : _b.abbreviation) == null ? void 0 : _c.title;
|
|
392
|
+
const attributes = getAttributes(props, { title });
|
|
393
|
+
return /* @__PURE__ */ React.createElement("abbr", __spreadValues({}, attributes), /* @__PURE__ */ React.createElement(RenderContents, { contents: props.children, fallback: /* @__PURE__ */ React.createElement(InlineCode.Children, { block: props.block, decorator: props.decorator, otherDecorators: props.otherDecorators }) }));
|
|
394
|
+
}
|
|
395
|
+
Abbreviation.Children = DecoratorChildren;
|
|
344
396
|
function InlineCode(props) {
|
|
345
397
|
const attributes = getAttributes(props);
|
|
346
398
|
return /* @__PURE__ */ React.createElement("code", __spreadValues({}, attributes), /* @__PURE__ */ React.createElement(RenderContents, { contents: props.children, fallback: /* @__PURE__ */ React.createElement(InlineCode.Children, { block: props.block, decorator: props.decorator, otherDecorators: props.otherDecorators }) }));
|
|
@@ -410,15 +462,18 @@ function Variable(props) {
|
|
|
410
462
|
Variable.Children = DecoratorChildren;
|
|
411
463
|
var BLOCK_RENDERERS = {
|
|
412
464
|
"_anchor": Anchor,
|
|
465
|
+
"_asset": Asset,
|
|
413
466
|
"_code": CodeWithCaption,
|
|
414
467
|
"_component": Component,
|
|
415
468
|
"_divider": Divider,
|
|
469
|
+
"_entry": Entry,
|
|
416
470
|
"_formContentType": FormContentType,
|
|
417
471
|
"_fragment": Fragment,
|
|
418
472
|
"_heading": Heading,
|
|
419
473
|
"_image": ImageWithCaption,
|
|
420
474
|
"_inlineEntry": InlineEntry,
|
|
421
475
|
"_link": Link,
|
|
476
|
+
"_liquid": Liquid,
|
|
422
477
|
"_list": List,
|
|
423
478
|
"_listItem": ListItem,
|
|
424
479
|
"_panel": Panel,
|
|
@@ -434,6 +489,7 @@ var BLOCK_RENDERERS = {
|
|
|
434
489
|
"_tableRow": TableRow
|
|
435
490
|
};
|
|
436
491
|
var DECORATOR_RENDERERS = {
|
|
492
|
+
"abbreviation": Abbreviation,
|
|
437
493
|
"code": InlineCode,
|
|
438
494
|
"delete": Delete,
|
|
439
495
|
"emphasis": Emphasis,
|
|
@@ -449,12 +505,15 @@ var DECORATOR_RENDERERS = {
|
|
|
449
505
|
"variable": Variable
|
|
450
506
|
};
|
|
451
507
|
export {
|
|
508
|
+
Abbreviation,
|
|
452
509
|
Anchor,
|
|
510
|
+
Asset,
|
|
453
511
|
Code,
|
|
454
512
|
Component,
|
|
455
513
|
Delete,
|
|
456
514
|
Divider,
|
|
457
515
|
Emphasis,
|
|
516
|
+
Entry,
|
|
458
517
|
FormContentType,
|
|
459
518
|
Fragment,
|
|
460
519
|
Heading,
|
|
@@ -465,6 +524,7 @@ export {
|
|
|
465
524
|
Keyboard,
|
|
466
525
|
LineBreak,
|
|
467
526
|
Link,
|
|
527
|
+
Liquid,
|
|
468
528
|
List,
|
|
469
529
|
ListItem,
|
|
470
530
|
Mark,
|
|
@@ -490,4 +550,4 @@ export {
|
|
|
490
550
|
Underline,
|
|
491
551
|
Variable
|
|
492
552
|
};
|
|
493
|
-
//# sourceMappingURL=canvas-react.
|
|
553
|
+
//# sourceMappingURL=canvas-react.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/renderer.tsx"],"sourcesContent":["import React, { ClassType, ComponentClass, FunctionComponent, Component as ReactComponent, createContext, useContext } from 'react';\nimport {\n AnchorBlock,\n AssetBlock,\n Block,\n CodeBlock,\n ComponentBlock,\n DecoratorType,\n DividerBlock,\n EntryBlock,\n FormContentTypeBlock,\n FragmentBlock,\n HeadingBlock,\n ImageBlock,\n InlineEntryBlock,\n LinkBlock,\n LiquidBlock,\n ListBlock,\n ListItemBlock,\n PanelBlock,\n ParagraphBlock,\n QuoteBlock,\n TableBlock,\n TableBodyBlock,\n TableCaptionBlock, TableCellBlock,\n TableFooterBlock,\n TableHeaderBlock,\n TableHeaderCellBlock,\n TableRowBlock\n} from '@contensis/canvas-types';\n\ntype Attributes = Record<string, any>;\ntype WithChildren = { children?: JSX.Element | undefined };\n\ntype RendererProps = { data: Block[] };\ntype RenderBlocksProps = { blocks: Block[] };\ntype RenderBlockProps<T extends Block> = { block: T };\ntype RenderBlockPropsWithChildren<T extends Block>\n = RenderBlockProps<T> & WithChildren & Attributes;\n\ntype RenderContentsProps = { contents: undefined | JSX.Element, fallback: JSX.Element };\ntype RenderTextProps = { text: string };\n\ntype DecoratorProps = { block: FragmentBlock, decorators: undefined | DecoratorType[] };\n\ntype TypedBlock<TType extends Block['type']> = Extract<Block, { type: TType }>;\n\ntype Renderer<TProps> = FunctionComponent<TProps> | ClassType<TProps, ReactComponent<TProps>, ComponentClass<TProps>>;\n\ntype BlockRenderer<T extends Block> = Renderer<RenderBlockPropsWithChildren<T>>;\ntype BlockRenderers = {\n [TType in Block['type']]: BlockRenderer<TypedBlock<TType>>\n};\n\n\ntype RenderDecoratorProps = { block: FragmentBlock, decorator: undefined | DecoratorType, otherDecorators: undefined | DecoratorType[] };\ntype RenderDecoratorPropsWithChildren = RenderDecoratorProps & WithChildren & Attributes;\n\ntype DecoratorRenderer = Renderer<RenderDecoratorPropsWithChildren>;\ntype DecoratorRenderers = Record<DecoratorType, DecoratorRenderer>;\n\ntype ComponentRenderer = Renderer<RenderBlockPropsWithChildren<ComponentBlock>>;\ntype ComponentRenderers = Record<string, ComponentRenderer>;\ntype EntryRenderer = Renderer<RenderBlockPropsWithChildren<EntryBlock>>;\ntype EntryRenderers = Record<string, EntryRenderer>;\ntype AssetRenderer = Renderer<RenderBlockPropsWithChildren<AssetBlock>>;\ntype AssetRenderers = Record<string, AssetRenderer>;\n\ntype RendererContextValue = {\n blocks?: BlockRenderers,\n decorators?: DecoratorRenderers,\n components?: ComponentRenderers,\n entries?: EntryRenderers,\n assets?: AssetRenderers,\n};\n\ntype RendererOverridesContextValue = {\n blocks?: Partial<BlockRenderers>,\n decorators?: Partial<DecoratorRenderers>,\n components?: ComponentRenderers,\n entries?: EntryRenderers,\n assets?: AssetRenderers,\n};\n\ntype RendererContextProviderProps = WithChildren & RendererOverridesContextValue;\n\nexport type { BlockRenderer, RenderBlockProps, RenderBlockPropsWithChildren, RenderDecoratorProps, RenderDecoratorPropsWithChildren };\n\nexport const RendererContext = createContext<RendererContextValue>({});\n\n/** \n * Provides context to the <Renderer> component to return Canvas data as React components\n *\n * @link https://www.npmjs.com/package/@contensis/canvas-react#usage\n *\n * @param blocks - Override the default rendering of Canvas content blocks\n * @param components - Render method for Contensis Components within the Canvas field\n * @param decorators - Override the rendering of HTML elements within a text field\n * \n * @example \n * <RenderContextProvider blocks={{ _table: Table }} components={{ banner: Banner }} decorators={{ strong: Strong }}>\n * <Renderer data={data} />\n * </RenderContextProvider>\n * \n */\nexport function RenderContextProvider(props: RendererContextProviderProps) {\n\n const overrideBlocks = props.blocks;\n const blocks = Object.keys(BLOCK_RENDERERS)\n .reduce((prev, type) => {\n const blockType = type as Block['type'];\n const renderer: any = overrideBlocks?.[blockType] || BLOCK_RENDERERS[blockType];\n (prev as any)[blockType] = renderer;\n return prev;\n }, {} as BlockRenderers);\n\n const overrideDecorators = props.decorators;\n const decorators = Object.keys(DECORATOR_RENDERERS)\n .reduce((prev, type) => {\n const decoratorType = type as DecoratorType;\n prev[decoratorType] = overrideDecorators?.[decoratorType] || DECORATOR_RENDERERS[decoratorType];\n return prev;\n }, {} as DecoratorRenderers);\n\n const value = { blocks, decorators, components: props.components, entries: props.entries, assets: props?.assets };\n\n return (\n <RendererContext.Provider value={value}>\n {props.children}\n </RendererContext.Provider>\n );\n}\n\nfunction useBlocks() {\n const value = useContext(RendererContext);\n return value.blocks || BLOCK_RENDERERS;\n}\n\nfunction useDecorators() {\n const value = useContext(RendererContext);\n return value.decorators || DECORATOR_RENDERERS;\n}\n\nfunction useComponents() {\n const value = useContext(RendererContext);\n return value.components || {};\n}\n\nfunction useEntries() {\n const value = useContext(RendererContext);\n return value.entries || {};\n}\n\nfunction useAssets() {\n const value = useContext(RendererContext);\n return value.assets || {};\n}\n\nfunction RenderBlock<TBlock extends Block>(props: RenderBlockProps<TBlock>) {\n const blocks = useBlocks();\n const Component = blocks[props.block.type] as BlockRenderer<TBlock>;\n return !!Component ? (<Component block={props.block} />) : null;\n}\n\nfunction RenderBlocks(props: RenderBlocksProps) {\n return (<>{props.blocks.map(block => <RenderBlock block={block} key={block.id} />)}</>);\n}\n\nfunction RenderContents(props: RenderContentsProps) {\n return (props.contents ? props.contents : props.fallback);\n}\n\nexport function RenderChildren(props: RenderBlockProps<Block>) {\n const isArray = Array.isArray(props.block?.value);\n const isString = typeof props.block?.value === 'string';\n\n const render = () => {\n if (isArray) {\n return (<RenderBlocks blocks={props.block.value as any} />);\n } else if (isString) {\n return (<RenderText text={props.block.value as any} />);\n } else {\n return (<RenderText text={''} />);\n }\n };\n\n return render();\n};\n\nfunction RenderText(props: RenderTextProps) {\n return (<>{props.text}</>);\n};\n\n/** \n * The default render method for processing Canvas data \n * \n * @link https://www.npmjs.com/package/@contensis/canvas-react#usage\n * \n * @param data - Accepts Canvas data\n * \n * */\nexport function Renderer(props: RendererProps) {\n return (<RenderBlocks blocks={props.data} />);\n}\n\ntype AttributeProps = RenderBlockProps<Block>\n | RenderBlockPropsWithChildren<Block>\n | RenderDecoratorProps\n | RenderDecoratorPropsWithChildren;\n\nfunction getAttributes(props: AttributeProps, extra: Record<string, any> = {}) {\n const { block, ...rest } = props;\n let { children, decorator, otherDecorators, ...attributes } = rest as Record<string, any>;\n attributes = {\n id: block?.properties?.id,\n ...extra,\n ...attributes\n };\n return attributes;\n}\n\nfunction WithCaption(props: WithChildren & { caption: undefined | string }) {\n return (\n !!props.caption\n ? (\n <figure>\n {props.children}\n <figcaption>{props.caption}</figcaption>\n </figure>\n )\n : (props.children || null)\n );\n};\n\nfunction RenderBlockChildrenFactory<T extends Block>() {\n return function (props: RenderBlockProps<T>) {\n return (<RenderChildren block={props.block} />);\n };\n}\n\nfunction EmptyChildrenFactory<T extends Block>() {\n return function (props: RenderBlockProps<T>) {\n return (<></>);\n };\n}\n\nexport function Anchor(props: RenderBlockPropsWithChildren<AnchorBlock>) {\n const attributes = getAttributes(props);\n return (\n <a {...attributes}>\n <RenderContents contents={props.children} fallback={<Anchor.Children block={props.block} />} />\n </a>\n );\n}\n\nAnchor.Children = RenderBlockChildrenFactory<AnchorBlock>();\n\nexport function Asset(props: RenderBlockPropsWithChildren<AssetBlock>) {\n const contentTypeId = props?.block?.value?.sys?.contentTypeId;\n const components = useAssets();\n const AssetElement = !!contentTypeId ? components?.[contentTypeId] : undefined;\n const attributes = getAttributes(props);\n return (!!AssetElement)\n ? <AssetElement {...props} />\n : (\n <div {...attributes}>\n <RenderContents contents={props.children} fallback={<Asset.Children block={props.block} />} />\n </div>\n );\n}\n\nAsset.Children = function (props: RenderBlockProps<AssetBlock>) {\n const href = props?.block?.value?.sys?.uri;\n const entryTitle = props?.block?.value?.entryTitle || '';\n const entryDescription = props?.block?.value?.entryDescription || '';\n return (<>\n <div>\n {!!href ? <a href={href}>{entryTitle}</a> : entryTitle}\n </div>\n {!!entryDescription ? <div>{entryDescription}</div> : null}\n </>);\n};\n\nexport function Code(props: RenderBlockPropsWithChildren<CodeBlock>) {\n const attributes = getAttributes(props, {\n 'data-language': props.block?.value?.language\n });\n const codeAttributes = getAttributes(props, {\n className: `language-${props.block?.value?.language}`\n });\n return (\n <pre {...attributes}>\n <code {...codeAttributes}>\n <RenderContents contents={props.children} fallback={<Code.Children block={props.block} />} />\n </code>\n </pre>\n );\n}\n\nCode.Children = function (props: RenderBlockProps<CodeBlock>) {\n return (<>{props.block?.value?.code}</>);\n};\n\nfunction CodeWithCaption(props: RenderBlockPropsWithChildren<CodeBlock>) {\n return (\n <WithCaption caption={props.block?.value?.caption}>\n <Code {...props} />\n </WithCaption>\n );\n}\n\nexport function Component(props: RenderBlockPropsWithChildren<ComponentBlock>) {\n const component = props?.block.properties?.component;\n const components = useComponents();\n const ComponentElement = !!component ? components?.[component] : undefined;\n\n const value = props.block.value ? JSON.stringify(props.block.value) : '';\n const attributes = getAttributes(props, {\n className: 'component',\n 'data-component': props.block.properties?.component,\n 'data-component-value': value,\n });\n\n return (!!ComponentElement)\n ? (<ComponentElement {...props} />)\n : (\n <div {...attributes}>\n <RenderContents contents={props.children} fallback={<Component.Children block={props.block} />} />\n </div>\n );\n}\n\nComponent.Children = function (props: RenderBlockProps<ComponentBlock>) {\n return (<>Component: {props.block?.properties?.component}</>);\n};\n\nexport function Divider(props: RenderBlockPropsWithChildren<DividerBlock>) {\n const attributes = getAttributes(props);\n return (<hr {...attributes} />);\n}\n\nDivider.Children = EmptyChildrenFactory<DividerBlock>();\n\nexport function Entry(props: RenderBlockPropsWithChildren<EntryBlock>) {\n const contentTypeId = props?.block?.value?.sys?.contentTypeId;\n const components = useEntries();\n const EntryElement = !!contentTypeId ? components?.[contentTypeId] : undefined;\n const attributes = getAttributes(props);\n return (!!EntryElement)\n ? <EntryElement {...props} />\n : (\n <div {...attributes}>\n <RenderContents contents={props.children} fallback={<Entry.Children block={props.block} />} />\n </div>\n );\n}\n\nEntry.Children = function (props: RenderBlockProps<EntryBlock>) {\n const href = props?.block?.value?.sys?.uri;\n const entryTitle = props?.block?.value?.entryTitle || '';\n const entryDescription = props?.block?.value?.entryDescription || '';\n return (<>\n <div>\n {!!href ? <a href={href}>{entryTitle}</a> : entryTitle}\n </div>\n {!!entryDescription ? <div>{entryDescription}</div> : null}\n </>);\n};\n\nexport function FormContentType(_props: RenderBlockPropsWithChildren<FormContentTypeBlock>) {\n return null;\n}\n\nFormContentType.Children = function (_props: RenderBlockProps<FormContentTypeBlock>) {\n return null;\n};\n\nexport function Fragment(props: RenderBlockPropsWithChildren<FragmentBlock>) {\n const hasDecorators = !!props.block?.properties?.decorators?.length;\n const decorators = props.block?.properties?.decorators;\n return (\n hasDecorators\n ? (<Decorators block={props.block} decorators={decorators}></Decorators>)\n : (<RenderContents contents={props.children} fallback={<Fragment.Children block={props.block} />} />)\n );\n}\n\nFragment.Children = RenderBlockChildrenFactory<FragmentBlock>();\n\nexport function Heading(props: RenderBlockPropsWithChildren<HeadingBlock>) {\n const attributes = getAttributes(props);\n const render = () => {\n switch (props?.block?.properties?.level) {\n case 2: {\n return (\n <h2 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h2>\n );\n }\n case 3: {\n return (\n <h3 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h3>\n );\n }\n case 4: {\n return (\n <h4 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h4>\n );\n }\n case 5: {\n return (\n <h5 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h5>\n );\n }\n case 6: {\n return (\n <h6 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h6>\n );\n }\n default: {\n return (\n <h1 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h1>\n );\n }\n }\n };\n return render();\n}\n\nHeading.Children = RenderBlockChildrenFactory<HeadingBlock>();\n\nexport function Image(props: RenderBlockPropsWithChildren<ImageBlock>) {\n const src = props.block?.value?.asset?.sys?.uri;\n const attributes = getAttributes(props, {\n src,\n alt: props.block?.value?.altText,\n title: props?.block?.value?.caption,\n });\n return (<img {...attributes} />);\n}\n\nImage.Children = EmptyChildrenFactory<ImageBlock>();\n\nfunction ImageWithCaption(props: RenderBlockPropsWithChildren<ImageBlock>) {\n return (\n <WithCaption caption={props.block?.value?.caption}>\n <Image {...props} />\n </WithCaption>\n );\n}\n\nexport function InlineEntry(props: RenderBlockPropsWithChildren<InlineEntryBlock>) {\n const href = props?.block?.value?.sys?.uri;\n const attributes = getAttributes(props, {\n href\n });\n return (!!attributes.href\n ? (\n <a {...attributes}>\n <RenderContents contents={props.children} fallback={<InlineEntry.Children block={props.block} />} />\n </a>\n )\n : (<RenderContents contents={props.children} fallback={<InlineEntry.Children block={props.block} />} />)\n );\n}\n\nInlineEntry.Children = function (props: RenderBlockProps<InlineEntryBlock>) {\n const entryTitle = props?.block?.value?.entryTitle || '';\n return (<>{entryTitle}</>);\n};\n\nexport function Link(props: RenderBlockPropsWithChildren<LinkBlock>) {\n const linkValue = props?.block?.properties?.link;\n const attributes = getAttributes(props, {\n href: linkValue?.sys?.uri,\n target: props?.block?.properties?.newTab ? '_blank' : null,\n rel: props?.block?.properties?.newTab ? 'noopener noreferrer' : null\n });\n return (!!attributes.href\n ? (\n <a {...attributes}>\n <RenderContents contents={props.children} fallback={<Link.Children block={props.block} />} />\n </a>\n )\n : (<RenderContents contents={props.children} fallback={<Link.Children block={props.block} />} />)\n );\n}\n\nLink.Children = RenderBlockChildrenFactory<LinkBlock>();\n\nexport function Liquid(props: RenderBlockPropsWithChildren<LiquidBlock>) {\n return (\n <RenderContents contents={props.children} fallback={<Liquid.Children block={props.block} />} />\n );\n}\n\nLiquid.Children = function (props: RenderBlockProps<LiquidBlock>) {\n return (<>{props.block?.value}</>);\n};\n\nexport function List(props: RenderBlockPropsWithChildren<ListBlock>) {\n const isOrdered = (props.block?.properties?.listType === 'ordered');\n const attributes = getAttributes(props, {\n start: isOrdered ? props.block?.properties?.start : null,\n });\n return (isOrdered\n ? (\n <ol {...attributes}>\n <RenderContents contents={props.children} fallback={<List.Children block={props.block} />} />\n </ol>\n )\n : (\n <ul {...attributes}>\n <RenderContents contents={props.children} fallback={<List.Children block={props.block} />} />\n </ul>\n )\n );\n}\n\nList.Children = RenderBlockChildrenFactory<ListBlock>();\n\nexport function ListItem(props: RenderBlockPropsWithChildren<ListItemBlock>) {\n const attributes = getAttributes(props);\n return (\n <li {...attributes}>\n <RenderContents contents={props.children} fallback={<ListItem.Children block={props.block} />} />\n </li>\n );\n}\n\nListItem.Children = RenderBlockChildrenFactory<ListItemBlock>();\n\nexport function Panel(props: RenderBlockPropsWithChildren<PanelBlock>) {\n const attributes = getAttributes(props, {\n className: ['panel', props.block?.properties?.panelType || 'info'].join(' ')\n });\n return (\n <aside {...attributes}>\n <RenderContents contents={props.children} fallback={<Panel.Children block={props.block} />} />\n </aside>\n );\n}\n\nPanel.Children = RenderBlockChildrenFactory<PanelBlock>();\n\nexport function Paragraph(props: RenderBlockPropsWithChildren<ParagraphBlock>) {\n const attributes = getAttributes(props, {\n className: props.block?.properties?.paragraphType\n });\n return (\n <p {...attributes}>\n <RenderContents contents={props.children} fallback={<Paragraph.Children block={props.block} />} />\n </p>\n );\n}\n\nParagraph.Children = RenderBlockChildrenFactory<ParagraphBlock>();\n\n\nexport function Quote(props: RenderBlockPropsWithChildren<QuoteBlock>) {\n const attributes = getAttributes(props, {\n 'cite': props.block?.properties?.url\n });\n return (\n <blockquote {...attributes}>\n <RenderContents contents={props.children} fallback={<Quote.Children block={props.block} />} />\n </blockquote>\n );\n}\n\nQuote.Children = function (props: RenderBlockProps<QuoteBlock>) {\n const source = props.block?.properties?.source;\n const citation = props.block?.properties?.citation;\n const hasChildren = !!source || !!citation;\n return (\n hasChildren\n ? (\n <>\n <p>\n <RenderChildren block={props.block} />\n </p>\n <footer>{source} {!!citation ? (<cite>{citation}</cite>) : (<></>)}</footer>\n </>\n )\n : (<RenderChildren block={props.block} />)\n );\n};\n\n\nexport function Table(props: RenderBlockPropsWithChildren<TableBlock>) {\n const attributes = getAttributes(props);\n return (\n <table {...attributes}>\n <RenderContents contents={props.children} fallback={<Table.Children block={props.block} />} />\n </table>\n );\n}\n\nTable.Children = RenderBlockChildrenFactory<TableBlock>();\n\nexport function TableBody(props: RenderBlockPropsWithChildren<TableBodyBlock>) {\n const attributes = getAttributes(props);\n return (\n <tbody {...attributes}>\n <RenderContents contents={props.children} fallback={<TableBody.Children block={props.block} />} />\n </tbody>\n );\n}\n\nTableBody.Children = RenderBlockChildrenFactory<TableBodyBlock>();\n\nexport function TableCaption(props: RenderBlockPropsWithChildren<TableCaptionBlock>) {\n const attributes = getAttributes(props);\n return (\n <caption {...attributes}>\n <RenderContents contents={props.children} fallback={<TableCaption.Children block={props.block} />} />\n </caption>\n );\n}\n\nTableCaption.Children = RenderBlockChildrenFactory<TableCaptionBlock>();\n\nexport function TableCell(props: RenderBlockPropsWithChildren<TableCellBlock>) {\n const attributes = getAttributes(props);\n return (\n <td {...attributes}>\n <RenderContents contents={props.children} fallback={<TableCell.Children block={props.block} />} />\n </td>\n );\n}\n\nTableCell.Children = RenderBlockChildrenFactory<TableCellBlock>();\n\nexport function TableFooter(props: RenderBlockPropsWithChildren<TableFooterBlock>) {\n const attributes = getAttributes(props);\n return (\n <tfoot {...attributes}>\n <RenderContents contents={props.children} fallback={<TableFooter.Children block={props.block} />} />\n </tfoot>\n );\n}\n\nTableFooter.Children = RenderBlockChildrenFactory<TableFooterBlock>();\n\nexport function TableHeader(props: RenderBlockPropsWithChildren<TableHeaderBlock>) {\n const attributes = getAttributes(props);\n return (\n <thead {...attributes}>\n <RenderContents contents={props.children} fallback={<TableHeader.Children block={props.block} />} />\n </thead>\n );\n}\n\nTableHeader.Children = RenderBlockChildrenFactory<TableHeaderBlock>();\n\nexport function TableHeaderCell(props: RenderBlockPropsWithChildren<TableHeaderCellBlock>) {\n const attributes = getAttributes(props);\n return (\n <th {...attributes}>\n <RenderContents contents={props.children} fallback={<TableHeaderCell.Children block={props.block} />} />\n </th>\n );\n}\n\nTableHeaderCell.Children = RenderBlockChildrenFactory<TableHeaderCellBlock>();\n\nexport function TableRow(props: RenderBlockPropsWithChildren<TableRowBlock>) {\n const attributes = getAttributes(props);\n return (\n <tr {...attributes}>\n <RenderContents contents={props.children} fallback={<TableRow.Children block={props.block} />} />\n </tr>\n );\n}\n\nTableRow.Children = RenderBlockChildrenFactory<TableRowBlock>();\n\n\nfunction Decorators(props: DecoratorProps) {\n const decorators = useDecorators();\n const remainingDecorators = !!props.decorators ? [...props.decorators] : undefined;\n const firstDecorator = !!remainingDecorators ? remainingDecorators.shift() : undefined;\n const DecoratorComponent = !!firstDecorator ? decorators[firstDecorator] : undefined;\n\n const render = () => {\n if (!!DecoratorComponent) {\n return (<DecoratorComponent block={props.block} decorator={firstDecorator} otherDecorators={remainingDecorators} />);\n } else if (firstDecorator) {\n return (<Decorators block={props.block} decorators={remainingDecorators} />);\n } else {\n return (<Fragment.Children block={props.block} />);\n }\n };\n\n return render();\n}\n\nfunction DecoratorChildren(props: RenderDecoratorPropsWithChildren) {\n return (<Decorators block={props.block} decorators={props.otherDecorators} />)\n}\n\nexport function Abbreviation(props: RenderDecoratorPropsWithChildren) { \n const title = props?.block?.properties?.abbreviation?.title;\n const attributes = getAttributes(props, { title });\n return (\n <abbr {...attributes}>\n <RenderContents contents={props.children} fallback={<InlineCode.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </abbr>\n );\n}\n\nAbbreviation.Children = DecoratorChildren;\n\nexport function InlineCode(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <code {...attributes}>\n <RenderContents contents={props.children} fallback={<InlineCode.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </code>\n );\n}\n\nInlineCode.Children = DecoratorChildren;\n\nexport function Delete(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <del {...attributes}>\n <RenderContents contents={props.children} fallback={<Delete.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </del>\n );\n}\n\nDelete.Children = DecoratorChildren;\n\nexport function Emphasis(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <em {...attributes}>\n <RenderContents contents={props.children} fallback={<Emphasis.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </em>\n );\n}\n\nEmphasis.Children = DecoratorChildren;\n\nexport function Insert(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <ins {...attributes}>\n <RenderContents contents={props.children} fallback={<Insert.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </ins>\n );\n}\n\nInsert.Children = DecoratorChildren;\n\nexport function Keyboard(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <kbd {...attributes}>\n <RenderContents contents={props.children} fallback={<Keyboard.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </kbd>\n );\n}\n\nKeyboard.Children = DecoratorChildren;\n\nexport function LineBreak(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (<br {...attributes} />);\n}\n\nLineBreak.Children = function (props: RenderDecoratorPropsWithChildren) {\n return (<></>)\n}\n\nexport function Mark(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <mark {...attributes}>\n <RenderContents contents={props.children} fallback={<Mark.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </mark>\n );\n}\n\nMark.Children = DecoratorChildren;\n\nexport function Strong(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <strong {...attributes}>\n <RenderContents contents={props.children} fallback={<Strong.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </strong>\n );\n}\n\nStrong.Children = DecoratorChildren;\n\nexport function Strikethrough(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <s {...attributes}>\n <RenderContents contents={props.children} fallback={<Strikethrough.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </s>\n );\n}\n\nStrikethrough.Children = DecoratorChildren;\n\nexport function Subscript(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <sub {...attributes}>\n <RenderContents contents={props.children} fallback={<Subscript.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </sub>\n );\n}\n\nSubscript.Children = DecoratorChildren;\n\nexport function Superscript(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <sup {...attributes}>\n <RenderContents contents={props.children} fallback={<Superscript.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </sup>\n );\n}\n\nSuperscript.Children = DecoratorChildren;\n\nexport function Underline(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <u {...attributes}>\n <RenderContents contents={props.children} fallback={<Underline.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </u>\n );\n}\n\nUnderline.Children = DecoratorChildren;\n\nexport function Variable(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <var {...attributes}>\n <RenderContents contents={props.children} fallback={<Variable.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </var>\n );\n}\n\nVariable.Children = DecoratorChildren;\n\nconst BLOCK_RENDERERS: BlockRenderers = {\n '_anchor': Anchor,\n '_asset': Asset,\n '_code': CodeWithCaption,\n '_component': Component,\n '_divider': Divider,\n '_entry': Entry,\n '_formContentType': FormContentType,\n '_fragment': Fragment,\n '_heading': Heading,\n '_image': ImageWithCaption,\n '_inlineEntry': InlineEntry,\n '_link': Link,\n '_liquid': Liquid,\n '_list': List,\n '_listItem': ListItem,\n '_panel': Panel,\n '_paragraph': Paragraph,\n '_quote': Quote,\n '_table': Table,\n '_tableBody': TableBody,\n '_tableCaption': TableCaption,\n '_tableCell': TableCell,\n '_tableFooter': TableFooter,\n '_tableHeader': TableHeader,\n '_tableHeaderCell': TableHeaderCell,\n '_tableRow': TableRow,\n};\n\nconst DECORATOR_RENDERERS: DecoratorRenderers = {\n 'abbreviation': Abbreviation,\n 'code': InlineCode,\n 'delete': Delete,\n 'emphasis': Emphasis,\n 'insert': Insert,\n 'keyboard': Keyboard,\n 'linebreak': LineBreak,\n 'mark': Mark,\n 'strikethrough': Strikethrough,\n 'strong': Strong,\n 'subscript': Subscript,\n 'superscript': Superscript,\n 'underline': Underline,\n 'variable': Variable\n};"],"mappings":"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","names":["Component"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contensis/canvas-react",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Render canvas content with React",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"contensis",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"exports": {
|
|
44
44
|
".": {
|
|
45
45
|
"require": "./dist/canvas-react.js",
|
|
46
|
-
"import": "./dist/
|
|
46
|
+
"import": "./dist/canvas-react.mjs",
|
|
47
47
|
"types": "./dist/canvas-react.d.ts"
|
|
48
48
|
}
|
|
49
49
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/renderer.tsx"],"sourcesContent":["import React, { ClassType, ComponentClass, FunctionComponent, Component as ReactComponent, createContext, useContext } from 'react';\nimport {\n AnchorBlock,\n Block,\n CodeBlock,\n ComponentBlock,\n DecoratorType,\n DividerBlock,\n FormContentTypeBlock,\n FragmentBlock,\n HeadingBlock,\n ImageBlock,\n InlineEntryBlock,\n LinkBlock,\n ListBlock,\n ListItemBlock,\n PanelBlock,\n ParagraphBlock,\n QuoteBlock,\n TableBlock,\n TableBodyBlock,\n TableCaptionBlock, TableCellBlock,\n TableFooterBlock,\n TableHeaderBlock,\n TableHeaderCellBlock,\n TableRowBlock\n} from '@contensis/canvas-types';\n\ntype Attributes = Record<string, any>;\ntype WithChildren = { children?: JSX.Element | undefined };\n\ntype RendererProps = { data: Block[] };\ntype RenderBlocksProps = { blocks: Block[] };\ntype RenderBlockProps<T extends Block> = { block: T };\ntype RenderBlockPropsWithChildren<T extends Block>\n = RenderBlockProps<T> & WithChildren & Attributes;\n\ntype RenderContentsProps = { contents: undefined | JSX.Element, fallback: JSX.Element };\ntype RenderTextProps = { text: string };\n\ntype DecoratorProps = { block: FragmentBlock, decorators: undefined | DecoratorType[] };\n\ntype TypedBlock<TType extends Block['type']> = Extract<Block, { type: TType }>;\n\ntype Renderer<TProps> = FunctionComponent<TProps> | ClassType<TProps, ReactComponent<TProps>, ComponentClass<TProps>>;\n\ntype BlockRenderer<T extends Block> = Renderer<RenderBlockPropsWithChildren<T>>;\ntype BlockRenderers = {\n [TType in Block['type']]: BlockRenderer<TypedBlock<TType>>\n};\n\n\ntype RenderDecoratorProps = { block: FragmentBlock, decorator: undefined | DecoratorType, otherDecorators: undefined | DecoratorType[] };\ntype RenderDecoratorPropsWithChildren = RenderDecoratorProps & WithChildren & Attributes;\n\ntype DecoratorRenderer = Renderer<RenderDecoratorPropsWithChildren>;\ntype DecoratorRenderers = Record<DecoratorType, DecoratorRenderer>;\n\ntype ComponentRenderer = Renderer<RenderBlockPropsWithChildren<ComponentBlock>>;\ntype ComponentRenderers = Record<string, ComponentRenderer>;\n\ntype RendererContextValue = {\n blocks?: BlockRenderers,\n decorators?: DecoratorRenderers,\n components?: ComponentRenderers\n};\n\ntype RendererOverridesContextValue = {\n blocks?: Partial<BlockRenderers>,\n decorators?: Partial<DecoratorRenderers>,\n components?: ComponentRenderers\n};\n\ntype RendererContextProviderProps = WithChildren & RendererOverridesContextValue;\n\nexport type { BlockRenderer, RenderBlockProps, RenderBlockPropsWithChildren, RenderDecoratorProps, RenderDecoratorPropsWithChildren };\n\nexport const RendererContext = createContext<RendererContextValue>({});\n\n/** \n * Provides context to the <Renderer> component to return Canvas data as React components\n *\n * @link https://www.npmjs.com/package/@contensis/canvas-react#usage\n *\n * @param blocks - Override the default rendering of Canvas content blocks\n * @param components - Render method for Contensis Components within the Canvas field\n * @param decorators - Override the rendering of HTML elements within a text field\n * \n * @example \n * <RenderContextProvider blocks={{ _table: Table }} components={{ banner: Banner }} decorators={{ strong: Strong }}>\n * <Renderer data={data} />\n * </RenderContextProvider>\n * \n */\nexport function RenderContextProvider(props: RendererContextProviderProps) {\n\n const overrideBlocks = props.blocks;\n const blocks = Object.keys(BLOCK_RENDERERS)\n .reduce((prev, type) => {\n const blockType = type as Block['type'];\n const renderer: any = overrideBlocks?.[blockType] || BLOCK_RENDERERS[blockType];\n (prev as any)[blockType] = renderer;\n return prev;\n }, {} as BlockRenderers);\n\n const overrideDecorators = props.decorators;\n const decorators = Object.keys(DECORATOR_RENDERERS)\n .reduce((prev, type) => {\n const decoratorType = type as DecoratorType;\n prev[decoratorType] = overrideDecorators?.[decoratorType] || DECORATOR_RENDERERS[decoratorType];\n return prev;\n }, {} as DecoratorRenderers);\n\n const value = { blocks, decorators, components: props.components };\n\n return (\n <RendererContext.Provider value={value}>\n {props.children}\n </RendererContext.Provider>\n );\n}\n\nfunction useBlocks() {\n const value = useContext(RendererContext);\n return value.blocks || BLOCK_RENDERERS;\n}\n\nfunction useDecorators() {\n const value = useContext(RendererContext);\n return value.decorators || DECORATOR_RENDERERS;\n}\n\nfunction useComponents() {\n const value = useContext(RendererContext);\n return value.components || {};\n}\n\nfunction RenderBlock<TBlock extends Block>(props: RenderBlockProps<TBlock>) {\n const blocks = useBlocks();\n const Component = blocks[props.block.type] as BlockRenderer<TBlock>;\n return !!Component ? (<Component block={props.block} />) : null;\n}\n\nfunction RenderBlocks(props: RenderBlocksProps) {\n return (<>{props.blocks.map(block => <RenderBlock block={block} key={block.id} />)}</>);\n}\n\nfunction RenderContents(props: RenderContentsProps) {\n return (props.contents ? props.contents : props.fallback);\n}\n\nexport function RenderChildren(props: RenderBlockProps<Block>) {\n const isArray = Array.isArray(props.block?.value);\n const isString = typeof props.block?.value === 'string';\n\n const render = () => {\n if (isArray) {\n return (<RenderBlocks blocks={props.block.value as any} />);\n } else if (isString) {\n return (<RenderText text={props.block.value as any} />);\n } else {\n return (<RenderText text={''} />);\n }\n };\n\n return render();\n};\n\nfunction RenderText(props: RenderTextProps) {\n return (<>{props.text}</>);\n};\n\n/** \n * The default render method for processing Canvas data \n * \n * @link https://www.npmjs.com/package/@contensis/canvas-react#usage\n * \n * @param data - Accepts Canvas data\n * \n * */\nexport function Renderer(props: RendererProps) {\n return (<RenderBlocks blocks={props.data} />);\n}\n\ntype AttributeProps = RenderBlockProps<Block>\n | RenderBlockPropsWithChildren<Block>\n | RenderDecoratorProps\n | RenderDecoratorPropsWithChildren;\n\nfunction getAttributes(props: AttributeProps, extra: Record<string, any> = {}) {\n const { block, ...rest } = props;\n let { children, decorator, otherDecorators, ...attributes } = rest as Record<string, any>;\n attributes = {\n id: block?.properties?.id,\n ...extra,\n ...attributes\n };\n return attributes;\n}\n\nfunction WithCaption(props: WithChildren & { caption: undefined | string }) {\n return (\n !!props.caption\n ? (\n <figure>\n {props.children}\n <figcaption>{props.caption}</figcaption>\n </figure>\n )\n : (props.children || null)\n );\n};\n\nfunction RenderBlockChildrenFactory<T extends Block>() {\n return function (props: RenderBlockProps<T>) {\n return (<RenderChildren block={props.block} />);\n };\n}\n\nfunction EmptyChildrenFactory<T extends Block>() {\n return function (props: RenderBlockProps<T>) {\n return (<></>);\n };\n}\n\nexport function Anchor(props: RenderBlockPropsWithChildren<AnchorBlock>) {\n const attributes = getAttributes(props);\n return (\n <a {...attributes}>\n <RenderContents contents={props.children} fallback={<Anchor.Children block={props.block} />} />\n </a>\n );\n}\n\nAnchor.Children = RenderBlockChildrenFactory<AnchorBlock>();\n\nexport function Code(props: RenderBlockPropsWithChildren<CodeBlock>) {\n const attributes = getAttributes(props, {\n 'data-language': props.block?.value?.language\n });\n const codeAttributes = getAttributes(props, {\n className: `language-${props.block?.value?.language}`\n });\n return (\n <pre {...attributes}>\n <code {...codeAttributes}>\n <RenderContents contents={props.children} fallback={<Code.Children block={props.block} />} />\n </code>\n </pre>\n );\n}\n\nCode.Children = function (props: RenderBlockProps<CodeBlock>) {\n return (<>{props.block?.value?.code}</>);\n};\n\nfunction CodeWithCaption(props: RenderBlockPropsWithChildren<CodeBlock>) {\n return (\n <WithCaption caption={props.block?.value?.caption}>\n <Code {...props} />\n </WithCaption>\n );\n}\n\nexport function Component(props: RenderBlockPropsWithChildren<ComponentBlock>) {\n const component = props?.block.properties?.component;\n const components = useComponents();\n const ComponentElement = !!component ? components?.[component] : undefined;\n\n const value = props.block.value ? JSON.stringify(props.block.value) : '';\n const attributes = getAttributes(props, {\n className: 'component',\n 'data-component': props.block.properties?.component,\n 'data-component-value': value,\n });\n\n return (!!ComponentElement)\n ? (<ComponentElement {...props} />)\n : (\n <div {...attributes}>\n <RenderContents contents={props.children} fallback={<Component.Children block={props.block} />} />\n </div>\n );\n}\n\nComponent.Children = function (props: RenderBlockProps<ComponentBlock>) {\n return (<>Component: {props.block?.properties?.component}</>);\n};\n\nexport function Divider(props: RenderBlockPropsWithChildren<DividerBlock>) {\n const attributes = getAttributes(props);\n return (<hr {...attributes} />);\n}\n\nDivider.Children = EmptyChildrenFactory<DividerBlock>();\n\nexport function FormContentType(_props: RenderBlockPropsWithChildren<FormContentTypeBlock>) {\n return null;\n}\n\nFormContentType.Children = function (_props: RenderBlockProps<FormContentTypeBlock>) {\n return null;\n};\n\nexport function Fragment(props: RenderBlockPropsWithChildren<FragmentBlock>) {\n const hasDecorators = !!props.block?.properties?.decorators?.length;\n const decorators = props.block?.properties?.decorators;\n return (\n hasDecorators\n ? (<Decorators block={props.block} decorators={decorators}></Decorators>)\n : (<RenderContents contents={props.children} fallback={<Fragment.Children block={props.block} />} />)\n );\n}\n\nFragment.Children = RenderBlockChildrenFactory<FragmentBlock>();\n\nexport function Heading(props: RenderBlockPropsWithChildren<HeadingBlock>) {\n const attributes = getAttributes(props);\n const render = () => {\n switch (props?.block?.properties?.level) {\n case 2: {\n return (\n <h2 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h2>\n );\n }\n case 3: {\n return (\n <h3 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h3>\n );\n }\n case 4: {\n return (\n <h4 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h4>\n );\n }\n case 5: {\n return (\n <h5 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h5>\n );\n }\n case 6: {\n return (\n <h6 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h6>\n );\n }\n default: {\n return (\n <h1 {...attributes}>\n <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n </h1>\n );\n }\n }\n };\n return render();\n}\n\nHeading.Children = RenderBlockChildrenFactory<HeadingBlock>();\n\nexport function Image(props: RenderBlockPropsWithChildren<ImageBlock>) {\n const src = props.block?.value?.asset?.sys?.uri;\n const attributes = getAttributes(props, {\n src,\n alt: props.block?.value?.altText,\n title: props?.block?.value?.caption,\n });\n return (<img {...attributes} />);\n}\n\nImage.Children = EmptyChildrenFactory<ImageBlock>();\n\nfunction ImageWithCaption(props: RenderBlockPropsWithChildren<ImageBlock>) {\n return (\n <WithCaption caption={props.block?.value?.caption}>\n <Image {...props} />\n </WithCaption>\n );\n}\n\nexport function InlineEntry(props: RenderBlockPropsWithChildren<InlineEntryBlock>) {\n const href = props?.block?.value?.sys?.uri;\n const attributes = getAttributes(props, {\n href\n });\n return (!!attributes.href\n ? (\n <a {...attributes}>\n <RenderContents contents={props.children} fallback={<InlineEntry.Children block={props.block} />} />\n </a>\n )\n : (<RenderContents contents={props.children} fallback={<InlineEntry.Children block={props.block} />} />)\n );\n}\n\nInlineEntry.Children = function (props: RenderBlockProps<InlineEntryBlock>) {\n const entryTitle = props?.block?.value?.entryTitle || '';\n return (<>{entryTitle}</>);\n};\n\nexport function Link(props: RenderBlockPropsWithChildren<LinkBlock>) {\n const linkValue = props?.block?.properties?.link;\n const attributes = getAttributes(props, {\n href: linkValue?.sys?.uri,\n target: props?.block?.properties?.newTab ? '_blank' : null,\n rel: props?.block?.properties?.newTab ? 'noopener noreferrer' : null\n });\n return (!!attributes.href\n ? (\n <a {...attributes}>\n <RenderContents contents={props.children} fallback={<Link.Children block={props.block} />} />\n </a>\n )\n : (<RenderContents contents={props.children} fallback={<Link.Children block={props.block} />} />)\n );\n}\n\nLink.Children = RenderBlockChildrenFactory<LinkBlock>();\n\nexport function List(props: RenderBlockPropsWithChildren<ListBlock>) {\n const isOrdered = (props.block?.properties?.listType === 'ordered');\n const attributes = getAttributes(props, {\n start: isOrdered ? props.block?.properties?.start : null,\n });\n return (isOrdered\n ? (\n <ol {...attributes}>\n <RenderContents contents={props.children} fallback={<List.Children block={props.block} />} />\n </ol>\n )\n : (\n <ul {...attributes}>\n <RenderContents contents={props.children} fallback={<List.Children block={props.block} />} />\n </ul>\n )\n );\n}\n\nList.Children = RenderBlockChildrenFactory<ListBlock>();\n\nexport function ListItem(props: RenderBlockPropsWithChildren<ListItemBlock>) {\n const attributes = getAttributes(props);\n return (\n <li {...attributes}>\n <RenderContents contents={props.children} fallback={<ListItem.Children block={props.block} />} />\n </li>\n );\n}\n\nListItem.Children = RenderBlockChildrenFactory<ListItemBlock>();\n\nexport function Panel(props: RenderBlockPropsWithChildren<PanelBlock>) {\n const attributes = getAttributes(props, {\n className: ['panel', props.block?.properties?.panelType || 'info'].join(' ')\n });\n return (\n <aside {...attributes}>\n <RenderContents contents={props.children} fallback={<Panel.Children block={props.block} />} />\n </aside>\n );\n}\n\nPanel.Children = RenderBlockChildrenFactory<PanelBlock>();\n\nexport function Paragraph(props: RenderBlockPropsWithChildren<ParagraphBlock>) {\n const attributes = getAttributes(props, {\n className: props.block?.properties?.paragraphType\n });\n return (\n <p {...attributes}>\n <RenderContents contents={props.children} fallback={<Paragraph.Children block={props.block} />} />\n </p>\n );\n}\n\nParagraph.Children = RenderBlockChildrenFactory<ParagraphBlock>();\n\n\nexport function Quote(props: RenderBlockPropsWithChildren<QuoteBlock>) {\n const attributes = getAttributes(props, {\n 'cite': props.block?.properties?.url\n });\n return (\n <blockquote {...attributes}>\n <RenderContents contents={props.children} fallback={<Quote.Children block={props.block} />} />\n </blockquote>\n );\n}\n\nQuote.Children = function (props: RenderBlockProps<QuoteBlock>) {\n const source = props.block?.properties?.source;\n const citation = props.block?.properties?.citation;\n const hasChildren = !!source || !!citation;\n return (\n hasChildren\n ? (\n <>\n <p>\n <RenderChildren block={props.block} />\n </p>\n <footer>{source} {!!citation ? (<cite>{citation}</cite>) : (<></>)}</footer>\n </>\n )\n : (<RenderChildren block={props.block} />)\n );\n // return (<RenderChildren block={props.block} />);\n // return (\n // <Show when={hasChildren()} fallback={<RenderChildren block={props.block} />}>\n // <p>\n // <RenderChildren block={props.block} />\n // </p>\n // <Show when={citation()} fallback={<footer>{source()}</footer>}>\n // <footer>{source()} <cite>{citation()}</cite></footer>\n // </Show>\n // </Show>\n // );\n};\n\n\nexport function Table(props: RenderBlockPropsWithChildren<TableBlock>) {\n const attributes = getAttributes(props);\n return (\n <table {...attributes}>\n <RenderContents contents={props.children} fallback={<Table.Children block={props.block} />} />\n </table>\n );\n}\n\nTable.Children = RenderBlockChildrenFactory<TableBlock>();\n\nexport function TableBody(props: RenderBlockPropsWithChildren<TableBodyBlock>) {\n const attributes = getAttributes(props);\n return (\n <tbody {...attributes}>\n <RenderContents contents={props.children} fallback={<TableBody.Children block={props.block} />} />\n </tbody>\n );\n}\n\nTableBody.Children = RenderBlockChildrenFactory<TableBodyBlock>();\n\nexport function TableCaption(props: RenderBlockPropsWithChildren<TableCaptionBlock>) {\n const attributes = getAttributes(props);\n return (\n <caption {...attributes}>\n <RenderContents contents={props.children} fallback={<TableCaption.Children block={props.block} />} />\n </caption>\n );\n}\n\nTableCaption.Children = RenderBlockChildrenFactory<TableCaptionBlock>();\n\nexport function TableCell(props: RenderBlockPropsWithChildren<TableCellBlock>) {\n const attributes = getAttributes(props);\n return (\n <td {...attributes}>\n <RenderContents contents={props.children} fallback={<TableCell.Children block={props.block} />} />\n </td>\n );\n}\n\nTableCell.Children = RenderBlockChildrenFactory<TableCellBlock>();\n\nexport function TableFooter(props: RenderBlockPropsWithChildren<TableFooterBlock>) {\n const attributes = getAttributes(props);\n return (\n <tfoot {...attributes}>\n <RenderContents contents={props.children} fallback={<TableFooter.Children block={props.block} />} />\n </tfoot>\n );\n}\n\nTableFooter.Children = RenderBlockChildrenFactory<TableFooterBlock>();\n\nexport function TableHeader(props: RenderBlockPropsWithChildren<TableHeaderBlock>) {\n const attributes = getAttributes(props);\n return (\n <thead {...attributes}>\n <RenderContents contents={props.children} fallback={<TableHeader.Children block={props.block} />} />\n </thead>\n );\n}\n\nTableHeader.Children = RenderBlockChildrenFactory<TableHeaderBlock>();\n\nexport function TableHeaderCell(props: RenderBlockPropsWithChildren<TableHeaderCellBlock>) {\n const attributes = getAttributes(props);\n return (\n <th {...attributes}>\n <RenderContents contents={props.children} fallback={<TableHeaderCell.Children block={props.block} />} />\n </th>\n );\n}\n\nTableHeaderCell.Children = RenderBlockChildrenFactory<TableHeaderCellBlock>();\n\nexport function TableRow(props: RenderBlockPropsWithChildren<TableRowBlock>) {\n const attributes = getAttributes(props);\n return (\n <tr {...attributes}>\n <RenderContents contents={props.children} fallback={<TableRow.Children block={props.block} />} />\n </tr>\n );\n}\n\nTableRow.Children = RenderBlockChildrenFactory<TableRowBlock>();\n\n\nfunction Decorators(props: DecoratorProps) {\n const decorators = useDecorators();\n const remainingDecorators = !!props.decorators ? [...props.decorators] : undefined;\n const firstDecorator = !!remainingDecorators ? remainingDecorators.shift() : undefined;\n const DecoratorComponent = !!firstDecorator ? decorators[firstDecorator] : undefined;\n\n const render = () => {\n if (!!DecoratorComponent) {\n return (<DecoratorComponent block={props.block} decorator={firstDecorator} otherDecorators={remainingDecorators} />);\n } else if (firstDecorator) {\n return (<Decorators block={props.block} decorators={remainingDecorators} />);\n } else {\n return (<Fragment.Children block={props.block} />);\n }\n };\n\n return render();\n}\n\nfunction DecoratorChildren(props: RenderDecoratorPropsWithChildren) {\n return (<Decorators block={props.block} decorators={props.otherDecorators} />)\n}\n\nexport function InlineCode(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <code {...attributes}>\n <RenderContents contents={props.children} fallback={<InlineCode.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </code>\n );\n}\n\nInlineCode.Children = DecoratorChildren;\n\nexport function Delete(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <del {...attributes}>\n <RenderContents contents={props.children} fallback={<Delete.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </del>\n );\n}\n\nDelete.Children = DecoratorChildren;\n\nexport function Emphasis(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <em {...attributes}>\n <RenderContents contents={props.children} fallback={<Emphasis.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </em>\n );\n}\n\nEmphasis.Children = DecoratorChildren;\n\nexport function Insert(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <ins {...attributes}>\n <RenderContents contents={props.children} fallback={<Insert.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </ins>\n );\n}\n\nInsert.Children = DecoratorChildren;\n\nexport function Keyboard(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <kbd {...attributes}>\n <RenderContents contents={props.children} fallback={<Keyboard.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </kbd>\n );\n}\n\nKeyboard.Children = DecoratorChildren;\n\nexport function LineBreak(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (<br {...attributes} />);\n}\n\nLineBreak.Children = function (props: RenderDecoratorPropsWithChildren) {\n return (<></>)\n}\n\nexport function Mark(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <mark {...attributes}>\n <RenderContents contents={props.children} fallback={<Mark.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </mark>\n );\n}\n\nMark.Children = DecoratorChildren;\n\nexport function Strong(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <strong {...attributes}>\n <RenderContents contents={props.children} fallback={<Strong.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </strong>\n );\n}\n\nStrong.Children = DecoratorChildren;\n\nexport function Strikethrough(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <s {...attributes}>\n <RenderContents contents={props.children} fallback={<Strikethrough.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </s>\n );\n}\n\nStrikethrough.Children = DecoratorChildren;\n\nexport function Subscript(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <sub {...attributes}>\n <RenderContents contents={props.children} fallback={<Subscript.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </sub>\n );\n}\n\nSubscript.Children = DecoratorChildren;\n\nexport function Superscript(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <sup {...attributes}>\n <RenderContents contents={props.children} fallback={<Superscript.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </sup>\n );\n}\n\nSuperscript.Children = DecoratorChildren;\n\nexport function Underline(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <u {...attributes}>\n <RenderContents contents={props.children} fallback={<Underline.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </u>\n );\n}\n\nUnderline.Children = DecoratorChildren;\n\nexport function Variable(props: RenderDecoratorPropsWithChildren) {\n const attributes = getAttributes(props);\n return (\n <var {...attributes}>\n <RenderContents contents={props.children} fallback={<Variable.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n </var>\n );\n}\n\nVariable.Children = DecoratorChildren;\n\n\nconst BLOCK_RENDERERS: BlockRenderers = {\n '_anchor': Anchor,\n '_code': CodeWithCaption,\n '_component': Component,\n '_divider': Divider,\n '_formContentType': FormContentType,\n '_fragment': Fragment,\n '_heading': Heading,\n '_image': ImageWithCaption,\n '_inlineEntry': InlineEntry,\n '_link': Link,\n '_list': List,\n '_listItem': ListItem,\n '_panel': Panel,\n '_paragraph': Paragraph,\n '_quote': Quote,\n '_table': Table,\n '_tableBody': TableBody,\n '_tableCaption': TableCaption,\n '_tableCell': TableCell,\n '_tableFooter': TableFooter,\n '_tableHeader': TableHeader,\n '_tableHeaderCell': TableHeaderCell,\n '_tableRow': TableRow,\n};\n\nconst DECORATOR_RENDERERS: DecoratorRenderers = {\n 'code': InlineCode,\n 'delete': Delete,\n 'emphasis': Emphasis,\n 'insert': Insert,\n 'keyboard': Keyboard,\n 'linebreak': LineBreak,\n 'mark': Mark,\n 'strikethrough': Strikethrough,\n 'strong': Strong,\n 'subscript': Subscript,\n 'superscript': Superscript,\n 'underline': Underline,\n 'variable': Variable\n};"],"mappings":"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","names":["Component"]}
|