source: node_modules/autoprefixer/lib/hacks/grid-template.js@ 2058e5c

Last change on this file since 2058e5c was 2058e5c, checked in by istevanoska <ilinastevanoska@…>, 6 months ago

Working / before login

  • Property mode set to 100644
File size: 1.4 KB
Line 
1let Declaration = require('../declaration')
2let {
3 getGridGap,
4 inheritGridGap,
5 parseTemplate,
6 warnGridGap,
7 warnMissedAreas
8} = require('./grid-utils')
9
10class GridTemplate extends Declaration {
11 /**
12 * Translate grid-template to separate -ms- prefixed properties
13 */
14 insert(decl, prefix, prefixes, result) {
15 if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes)
16
17 if (decl.parent.some(i => i.prop === '-ms-grid-rows')) {
18 return undefined
19 }
20
21 let gap = getGridGap(decl)
22
23 /**
24 * we must insert inherited gap values in some cases:
25 * if we are inside media query && if we have no grid-gap value
26 */
27 let inheritedGap = inheritGridGap(decl, gap)
28
29 let { areas, columns, rows } = parseTemplate({
30 decl,
31 gap: inheritedGap || gap
32 })
33
34 let hasAreas = Object.keys(areas).length > 0
35 let hasRows = Boolean(rows)
36 let hasColumns = Boolean(columns)
37
38 warnGridGap({
39 decl,
40 gap,
41 hasColumns,
42 result
43 })
44
45 warnMissedAreas(areas, decl, result)
46
47 if ((hasRows && hasColumns) || hasAreas) {
48 decl.cloneBefore({
49 prop: '-ms-grid-rows',
50 raws: {},
51 value: rows
52 })
53 }
54
55 if (hasColumns) {
56 decl.cloneBefore({
57 prop: '-ms-grid-columns',
58 raws: {},
59 value: columns
60 })
61 }
62
63 return decl
64 }
65}
66
67GridTemplate.names = ['grid-template']
68
69module.exports = GridTemplate
Note: See TracBrowser for help on using the repository browser.