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
57
58
59
60
61
62
63
| let Declaration = require('../declaration')
|
| class BreakProps extends Declaration {
| /**
| * Don’t prefix some values
| */
| insert(decl, prefix, prefixes) {
| if (decl.prop !== 'break-inside') {
| return super.insert(decl, prefix, prefixes)
| }
| if (/region/i.test(decl.value) || /page/i.test(decl.value)) {
| return undefined
| }
| return super.insert(decl, prefix, prefixes)
| }
|
| /**
| * Return property name by final spec
| */
| normalize(prop) {
| if (prop.includes('inside')) {
| return 'break-inside'
| }
| if (prop.includes('before')) {
| return 'break-before'
| }
| return 'break-after'
| }
|
| /**
| * Change name for -webkit- and -moz- prefix
| */
| prefixed(prop, prefix) {
| return `${prefix}column-${prop}`
| }
|
| /**
| * Change prefixed value for avoid-column and avoid-page
| */
| set(decl, prefix) {
| if (
| (decl.prop === 'break-inside' && decl.value === 'avoid-column') ||
| decl.value === 'avoid-page'
| ) {
| decl.value = 'avoid'
| }
| return super.set(decl, prefix)
| }
| }
|
| BreakProps.names = [
| 'break-inside',
| 'page-break-inside',
| 'column-break-inside',
| 'break-before',
| 'page-break-before',
| 'column-break-before',
| 'break-after',
| 'page-break-after',
| 'column-break-after'
| ]
|
| module.exports = BreakProps
|
|