/** * This prototype output a collection of files */ prototype(Carbon.IncludeAssets:Collection) < prototype(Neos.Fusion:Component) { @propTypes { type = ${PropTypes.oneOf(['metaTop', 'asyncJs', 'cssWithImport', 'syncJs', 'syncCss', 'asyncCss', 'preload', 'deferJs', 'rest'])} collection = ${PropTypes.arrayOf(PropTypes.string)} assetPackage = ${PropTypes.string} cacheBuster = ${PropTypes.boolean} cached = ${PropTypes.boolean} disableCacheBusterForPreloadAsset = ${PropTypes.boolean} paths = ${ PropTypes.dataStructure({ 'Inline': PropTypes.dataStructure({ 'CSS': PropTypes.string, 'JS': PropTypes.string, 'MJS': PropTypes.string, 'HTML': PropTypes.string }), 'File': PropTypes.dataStructure({ 'CSS': PropTypes.string, 'JS': PropTypes.string, 'MJS': PropTypes.string, 'PRELOADASSET': PropTypes.string, 'PRELOADCSS': PropTypes.string, 'PRELOADSCRIPT': PropTypes.string, 'MODULEPRELOAD': PropTypes.string }) }).isRequired } wrapper = ${PropTypes.string} } collection = ${[]} assetPackage = ${null} cacheBuster = ${Configuration.setting('Carbon.IncludeAssets.Default.CacheBuster')} disableCacheBusterForPreloadAsset = ${Configuration.setting('Carbon.IncludeAssets.Default.DisableCacheBusterForPreloadAsset')} paths = ${Configuration.setting('Carbon.IncludeAssets.Default.Path')} wrapper = ${null} cached = false @if.hasAssetPackage = ${this.assetPackage && Carbon.Array.check(this.collection)} @private.content = Neos.Fusion:Loop { items = ${props.collection} itemRenderer = Neos.Fusion:Case { hasTypeAndIsHtmlFile { condition = ${props.type && Carbon.IncludeAssets.isHtmlFile(item)} renderer = Carbon.IncludeAssets:File { file = ${item} assetPackage = ${props.assetPackage} paths = ${props.paths} @process.filter = ${Carbon.IncludeAssets.filterTypeFromHtml(props.type, value)} } } default { condition = true renderer = Carbon.IncludeAssets:File { @process.type.@if.set = ${props.type} @process.type = ${Carbon.IncludeAssets.isType(props.type, value) ? value : ''} file = ${item} assetPackage = ${props.assetPackage} cacheBuster = ${props.cacheBuster} disableCacheBusterForPreloadAsset = ${props.disableCacheBusterForPreloadAsset} paths = ${props.paths} cached = ${props.cached} } } } } renderer = Carbon.IncludeAssets:Internal.Wrapper { @if.set = ${private.content} wrapper = ${props.wrapper} content = ${private.content} } }