|
|
- 'use strict';
-
- var parsers = require('../parsers.js');
- var TYPES = parsers.TYPES;
-
- var isValid = function(v) {
- if (v.toLowerCase() === 'auto') {
- return true;
- }
- var type = parsers.valueType(v);
- return (
- type === TYPES.LENGTH ||
- type === TYPES.PERCENT ||
- (type === TYPES.INTEGER && (v === '0' || v === 0))
- );
- };
-
- var parser = function(v) {
- var V = v.toLowerCase();
- if (V === 'auto') {
- return V;
- }
- return parsers.parseMeasurement(v);
- };
-
- var mySetter = parsers.implicitSetter('margin', '', isValid, parser);
- var myGlobal = parsers.implicitSetter(
- 'margin',
- '',
- function() {
- return true;
- },
- function(v) {
- return v;
- }
- );
-
- module.exports.definition = {
- set: function(v) {
- if (typeof v === 'number') {
- v = String(v);
- }
- if (typeof v !== 'string') {
- return;
- }
- var V = v.toLowerCase();
- switch (V) {
- case 'inherit':
- case 'initial':
- case 'unset':
- case '':
- myGlobal.call(this, V);
- break;
-
- default:
- mySetter.call(this, v);
- break;
- }
- },
- get: function() {
- return this.getPropertyValue('margin');
- },
- enumerable: true,
- configurable: true,
- };
-
- module.exports.isValid = isValid;
- module.exports.parser = parser;
|