@@ -3,13 +3,32 @@ import { RenderOption } from '.';
33import { Metadata } from '../Models/metadata-model' ;
44import { EmbeddedItem } from '../Models/embedded-object' ;
55import { EntryNode } from '../Models/json-rte-model' ;
6+ import { sanitizeHTML } from '../helper/sanitize'
67
78export const defaultOptions : RenderOption = {
8- [ StyleType . BLOCK ] : ( item : EmbeddedItem | EntryNode ) =>
9- `<div><p>${ item . title || item . uid } </p><p>Content type: <span>${ item . _content_type_uid || ( item . system ? item . system . content_type_uid : '' ) } </span></p></div>` ,
10- [ StyleType . INLINE ] : ( item : EmbeddedItem | EntryNode ) => `<span>${ item . title || item . uid } </span>` ,
11- [ StyleType . LINK ] : ( item : EmbeddedItem | EntryNode , metadata : Metadata ) => `<a href="${ item . url } ">${ metadata . text || item . title || item . uid || ( item . system ? item . system . uid : '' ) } </a>` ,
12- [ StyleType . DISPLAY ] : ( item : EmbeddedItem | EntryNode , metadata : Metadata ) => `<img src="${ item . url } " alt="${ metadata . attributes . alt || item . title || item . filename || item . uid
13- || ( item . system ? item . system . uid : '' ) } " />`,
14- [ StyleType . DOWNLOAD ] : ( item : EmbeddedItem | EntryNode , metadata : Metadata ) => `<a href="${ item . url } ">${ metadata . text || item . title || item . uid || ( item . system ? item . system . content_type_uid : '' ) } </a>` ,
9+ [ StyleType . BLOCK ] : ( item : EmbeddedItem | EntryNode ) => {
10+ const title = sanitizeHTML ( item . title || item . uid ) ;
11+ const content_type_uid = sanitizeHTML ( item . _content_type_uid || ( item . system ? item . system . content_type_uid : '' ) ) ;
12+ return `<div><p>${ title } </p><p>Content type: <span>${ content_type_uid } </span></p></div>` ;
13+ } ,
14+ [ StyleType . INLINE ] : ( item : EmbeddedItem | EntryNode ) => {
15+ const title = sanitizeHTML ( item . title || item . uid ) ;
16+ return `<span>${ title } </span>` ;
17+ } ,
18+ [ StyleType . LINK ] : ( item : EmbeddedItem | EntryNode , metadata : Metadata ) => {
19+ const url = sanitizeHTML ( item . url || 'undefined' ) ;
20+ const text = sanitizeHTML ( metadata . text || item . title || item . uid || ( item . system ? item . system . uid : '' ) ) ;
21+ return `<a href="${ url } ">${ text } </a>` ;
22+ } ,
23+ [ StyleType . DISPLAY ] : ( item : EmbeddedItem | EntryNode , metadata : Metadata ) => {
24+ const url = sanitizeHTML ( item . url || 'undefined' ) ;
25+ const alt = sanitizeHTML ( metadata . attributes . alt || item . title || item . filename || item . uid
26+ || ( item . system ? item . system . uid : '' ) ) ;
27+ return `<img src="${ url } " alt="${ alt } " />` ;
28+ } ,
29+ [ StyleType . DOWNLOAD ] : ( item : EmbeddedItem | EntryNode , metadata : Metadata ) => {
30+ const href = sanitizeHTML ( item . url || 'undefined' ) ;
31+ const text = sanitizeHTML ( metadata . text || item . title || item . uid || ( item . system ? item . system . content_type_uid : '' ) ) ;
32+ return `<a href="${ href } ">${ text } </a>` ;
33+ } ,
1534} ;
0 commit comments