diff options
Diffstat (limited to 'school/node_modules/cssstyle/lib/properties/fontSize.js')
-rw-r--r-- | school/node_modules/cssstyle/lib/properties/fontSize.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/school/node_modules/cssstyle/lib/properties/fontSize.js b/school/node_modules/cssstyle/lib/properties/fontSize.js new file mode 100644 index 0000000..c956324 --- /dev/null +++ b/school/node_modules/cssstyle/lib/properties/fontSize.js @@ -0,0 +1,38 @@ +'use strict'; + +var TYPES = require('../parsers').TYPES; +var valueType = require('../parsers').valueType; +var parseMeasurement = require('../parsers').parseMeasurement; + +var absoluteSizes = ['xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large']; +var relativeSizes = ['larger', 'smaller']; + +module.exports.isValid = function(v) { + var type = valueType(v.toLowerCase()); + return ( + type === TYPES.LENGTH || + type === TYPES.PERCENT || + (type === TYPES.KEYWORD && absoluteSizes.indexOf(v.toLowerCase()) !== -1) || + (type === TYPES.KEYWORD && relativeSizes.indexOf(v.toLowerCase()) !== -1) + ); +}; + +function parse(v) { + const valueAsString = String(v).toLowerCase(); + const optionalArguments = absoluteSizes.concat(relativeSizes); + const isOptionalArgument = optionalArguments.some( + stringValue => stringValue.toLowerCase() === valueAsString + ); + return isOptionalArgument ? valueAsString : parseMeasurement(v); +} + +module.exports.definition = { + set: function(v) { + this._setProperty('font-size', parse(v)); + }, + get: function() { + return this.getPropertyValue('font-size'); + }, + enumerable: true, + configurable: true, +}; |