Buckets:
ktongue/docker_container / CAD_kevin /frontend /node_modules /autoprefixer /lib /hacks /mask-composite.js
| let Declaration = require('../declaration') | |
| class MaskComposite extends Declaration { | |
| /** | |
| * Prefix mask-composite for webkit | |
| */ | |
| insert(decl, prefix, prefixes) { | |
| let isCompositeProp = decl.prop === 'mask-composite' | |
| let compositeValues | |
| if (isCompositeProp) { | |
| compositeValues = decl.value.split(',') | |
| } else { | |
| compositeValues = decl.value.match(MaskComposite.regexp) || [] | |
| } | |
| compositeValues = compositeValues.map(el => el.trim()).filter(el => el) | |
| let hasCompositeValues = compositeValues.length | |
| let compositeDecl | |
| if (hasCompositeValues) { | |
| compositeDecl = this.clone(decl) | |
| compositeDecl.value = compositeValues | |
| .map(value => MaskComposite.oldValues[value] || value) | |
| .join(', ') | |
| if (compositeValues.includes('intersect')) { | |
| compositeDecl.value += ', xor' | |
| } | |
| compositeDecl.prop = prefix + 'mask-composite' | |
| } | |
| if (isCompositeProp) { | |
| if (!hasCompositeValues) { | |
| return undefined | |
| } | |
| if (this.needCascade(decl)) { | |
| compositeDecl.raws.before = this.calcBefore(prefixes, decl, prefix) | |
| } | |
| return decl.parent.insertBefore(decl, compositeDecl) | |
| } | |
| let cloned = this.clone(decl) | |
| cloned.prop = prefix + cloned.prop | |
| if (hasCompositeValues) { | |
| cloned.value = cloned.value.replace(MaskComposite.regexp, '') | |
| } | |
| if (this.needCascade(decl)) { | |
| cloned.raws.before = this.calcBefore(prefixes, decl, prefix) | |
| } | |
| decl.parent.insertBefore(decl, cloned) | |
| if (!hasCompositeValues) { | |
| return decl | |
| } | |
| if (this.needCascade(decl)) { | |
| compositeDecl.raws.before = this.calcBefore(prefixes, decl, prefix) | |
| } | |
| return decl.parent.insertBefore(decl, compositeDecl) | |
| } | |
| } | |
| MaskComposite.names = ['mask', 'mask-composite'] | |
| MaskComposite.oldValues = { | |
| add: 'source-over', | |
| exclude: 'xor', | |
| intersect: 'source-in', | |
| subtract: 'source-out' | |
| } | |
| MaskComposite.regexp = new RegExp( | |
| `\\s+(${Object.keys(MaskComposite.oldValues).join( | |
| '|' | |
| )})\\b(?!\\))\\s*(?=[,])`, | |
| 'ig' | |
| ) | |
| module.exports = MaskComposite | |
Xet Storage Details
- Size:
- 2.11 kB
- Xet hash:
- cd7aa8590040accc8afc52a64b60d0bf849913dee2dfafbfe13a3712610c80f0
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.