-
Notifications
You must be signed in to change notification settings - Fork 981
Expand file tree
/
Copy pathindex.js
More file actions
56 lines (49 loc) · 1.14 KB
/
index.js
File metadata and controls
56 lines (49 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import { BodyComponent } from 'mjml-core'
import buildPreview from './helpers/preview'
export default class MjBody extends BodyComponent {
static componentName = 'mj-body'
static allowedAttributes = {
width: 'unit(px)',
'background-color': 'color',
id: 'string',
}
static defaultAttributes = {
width: '600px',
}
getChildContext() {
return {
...this.context,
containerWidth: this.getAttribute('width'),
}
}
getStyles() {
return {
div: {
'word-spacing': 'normal',
'background-color': this.getAttribute('background-color'),
},
}
}
render() {
const {
globalData: { lang, dir, title, preview },
} = this.context
return `<body${this.htmlAttributes({
id: this.getAttribute('id'),
class: this.getAttribute('css-class'),
'xml:lang': lang,
})}>
${buildPreview(preview)}
<div${this.htmlAttributes({
...(title && { 'aria-label': title }),
'aria-roledescription': 'email',
role: 'article',
lang,
dir,
style: 'div',
})}>
${this.renderChildren()}
</div>
</body>`
}
}