UNPKG

@gouvfr/dsfr-roller

Version:

Le module `dsfr-roller` permet de publier le site de documentation du Système de Design de l’État - DSFR

69 lines (62 loc) 1.88 kB
import { Node } from '../../../node.js' import { log } from '@gouvfr/dsfr-forge'; class GuidelineContainerDirective extends Node { structure (data) { const image = Node.getImageChild(data); if (!image) { log.warn('GuidelineContainerDirective: missing image'); return data; } const valid = data.properties.valid === true; const col = data.properties.col || '12'; const title = valid ? data.fragments.do : data.fragments.dont; const description = data.children.filter(child => { switch (true) { case child?.data?.directiveLabel === true: return false; case Node.getImageChild(child) !== null: return false; default: return true; } }); return super.structure({ type: 'htmlContainer', tagName: 'div', classes: ['fr-col-12', `fr-col-md-${col}`], children: [ { type: 'htmlContainer', tagName: 'div', classes: ['dsfr-doc-guideline', 'fr-mb-6v', `dsfr-doc-guideline--${valid ? 'do' : 'dont'}`], children: [ { type: 'image', classes: ['dsfr-doc-guideline__img'], ...image }, { type: 'htmlContainer', tagName: 'div', classes: ['dsfr-doc-guideline__content'], children: [ { type: 'paragraph', classes: ['dsfr-doc-guideline__title'], children: [ { type: 'text', value: title } ] }, ].concat(description) } ] } ] }); } } GuidelineContainerDirective.NAME = 'dsfr-doc-guideline'; export { GuidelineContainerDirective };