|
|
- '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,
- };
|