summaryrefslogtreecommitdiff
path: root/alarm/node_modules/cssstyle/lib/properties
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2022-10-18 08:59:09 +0200
committerMinteck <contact@minteck.org>2022-10-18 08:59:09 +0200
commit2c4ae43e688a9873e86211ea0e7aeb9ba770dd77 (patch)
tree17848d95522dab25d3cdeb9c4a6450e2a234861f /alarm/node_modules/cssstyle/lib/properties
parent108525534c28013cfe1897c30e4565f9893f3766 (diff)
downloadpluralconnect-2c4ae43e688a9873e86211ea0e7aeb9ba770dd77.tar.gz
pluralconnect-2c4ae43e688a9873e86211ea0e7aeb9ba770dd77.tar.bz2
pluralconnect-2c4ae43e688a9873e86211ea0e7aeb9ba770dd77.zip
Update
Diffstat (limited to 'alarm/node_modules/cssstyle/lib/properties')
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/azimuth.js67
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/background.js19
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/backgroundAttachment.js24
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/backgroundColor.js36
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/backgroundImage.js32
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/backgroundPosition.js58
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/backgroundRepeat.js32
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/border.js33
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderBottom.js17
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderBottomColor.js16
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderBottomStyle.js21
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderBottomWidth.js16
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderCollapse.js26
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderColor.js30
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderLeft.js17
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderLeftColor.js16
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderLeftStyle.js21
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderLeftWidth.js16
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderRight.js17
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderRightColor.js16
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderRightStyle.js21
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderRightWidth.js16
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderSpacing.js41
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderStyle.js38
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderTop.js17
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderTopColor.js16
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderTopStyle.js21
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderTopWidth.js17
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/borderWidth.js46
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/bottom.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/clear.js16
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/clip.js47
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/color.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/cssFloat.js12
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/flex.js45
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/flexBasis.js28
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/flexGrow.js19
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/flexShrink.js19
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/float.js12
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/floodColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/font.js43
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/fontFamily.js33
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/fontSize.js38
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/fontStyle.js18
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/fontVariant.js18
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/fontWeight.js33
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/height.js24
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/left.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/lightingColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/lineHeight.js26
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/margin.js68
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/marginBottom.js13
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/marginLeft.js13
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/marginRight.js13
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/marginTop.js13
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/opacity.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/outlineColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/padding.js61
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/paddingBottom.js13
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/paddingLeft.js13
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/paddingRight.js13
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/paddingTop.js13
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/right.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/stopColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/textLineThroughColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/textOverlineColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/textUnderlineColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/top.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/webkitBorderAfterColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/webkitBorderBeforeColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/webkitBorderEndColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/webkitBorderStartColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/webkitColumnRuleColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/webkitMatchNearestMailBlockquoteColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/webkitTapHighlightColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/webkitTextEmphasisColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/webkitTextFillColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/webkitTextStrokeColor.js14
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/width.js24
79 files changed, 1773 insertions, 0 deletions
diff --git a/alarm/node_modules/cssstyle/lib/properties/azimuth.js b/alarm/node_modules/cssstyle/lib/properties/azimuth.js
new file mode 100644
index 0000000..f23a68d
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/azimuth.js
@@ -0,0 +1,67 @@
+'use strict';
+
+var parsers = require('../parsers');
+
+module.exports.definition = {
+ set: function(v) {
+ var valueType = parsers.valueType(v);
+ if (valueType === parsers.TYPES.ANGLE) {
+ return this._setProperty('azimuth', parsers.parseAngle(v));
+ }
+ if (valueType === parsers.TYPES.KEYWORD) {
+ var keywords = v
+ .toLowerCase()
+ .trim()
+ .split(/\s+/);
+ var hasBehind = false;
+ if (keywords.length > 2) {
+ return;
+ }
+ var behindIndex = keywords.indexOf('behind');
+ hasBehind = behindIndex !== -1;
+
+ if (keywords.length === 2) {
+ if (!hasBehind) {
+ return;
+ }
+ keywords.splice(behindIndex, 1);
+ }
+ if (keywords[0] === 'leftwards' || keywords[0] === 'rightwards') {
+ if (hasBehind) {
+ return;
+ }
+ return this._setProperty('azimuth', keywords[0]);
+ }
+ if (keywords[0] === 'behind') {
+ return this._setProperty('azimuth', '180deg');
+ }
+ switch (keywords[0]) {
+ case 'left-side':
+ return this._setProperty('azimuth', '270deg');
+ case 'far-left':
+ return this._setProperty('azimuth', (hasBehind ? 240 : 300) + 'deg');
+ case 'left':
+ return this._setProperty('azimuth', (hasBehind ? 220 : 320) + 'deg');
+ case 'center-left':
+ return this._setProperty('azimuth', (hasBehind ? 200 : 340) + 'deg');
+ case 'center':
+ return this._setProperty('azimuth', (hasBehind ? 180 : 0) + 'deg');
+ case 'center-right':
+ return this._setProperty('azimuth', (hasBehind ? 160 : 20) + 'deg');
+ case 'right':
+ return this._setProperty('azimuth', (hasBehind ? 140 : 40) + 'deg');
+ case 'far-right':
+ return this._setProperty('azimuth', (hasBehind ? 120 : 60) + 'deg');
+ case 'right-side':
+ return this._setProperty('azimuth', '90deg');
+ default:
+ return;
+ }
+ }
+ },
+ get: function() {
+ return this.getPropertyValue('azimuth');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/background.js b/alarm/node_modules/cssstyle/lib/properties/background.js
new file mode 100644
index 0000000..b843e0c
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/background.js
@@ -0,0 +1,19 @@
+'use strict';
+
+var shorthandSetter = require('../parsers').shorthandSetter;
+var shorthandGetter = require('../parsers').shorthandGetter;
+
+var shorthand_for = {
+ 'background-color': require('./backgroundColor'),
+ 'background-image': require('./backgroundImage'),
+ 'background-repeat': require('./backgroundRepeat'),
+ 'background-attachment': require('./backgroundAttachment'),
+ 'background-position': require('./backgroundPosition'),
+};
+
+module.exports.definition = {
+ set: shorthandSetter('background', shorthand_for),
+ get: shorthandGetter('background', shorthand_for),
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/backgroundAttachment.js b/alarm/node_modules/cssstyle/lib/properties/backgroundAttachment.js
new file mode 100644
index 0000000..98c8f76
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/backgroundAttachment.js
@@ -0,0 +1,24 @@
+'use strict';
+
+var parsers = require('../parsers');
+
+var isValid = (module.exports.isValid = function isValid(v) {
+ return (
+ parsers.valueType(v) === parsers.TYPES.KEYWORD &&
+ (v.toLowerCase() === 'scroll' || v.toLowerCase() === 'fixed' || v.toLowerCase() === 'inherit')
+ );
+});
+
+module.exports.definition = {
+ set: function(v) {
+ if (!isValid(v)) {
+ return;
+ }
+ this._setProperty('background-attachment', v);
+ },
+ get: function() {
+ return this.getPropertyValue('background-attachment');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/backgroundColor.js b/alarm/node_modules/cssstyle/lib/properties/backgroundColor.js
new file mode 100644
index 0000000..5cee717
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/backgroundColor.js
@@ -0,0 +1,36 @@
+'use strict';
+
+var parsers = require('../parsers');
+
+var parse = function parse(v) {
+ var parsed = parsers.parseColor(v);
+ if (parsed !== undefined) {
+ return parsed;
+ }
+ if (
+ parsers.valueType(v) === parsers.TYPES.KEYWORD &&
+ (v.toLowerCase() === 'transparent' || v.toLowerCase() === 'inherit')
+ ) {
+ return v;
+ }
+ return undefined;
+};
+
+module.exports.isValid = function isValid(v) {
+ return parse(v) !== undefined;
+};
+
+module.exports.definition = {
+ set: function(v) {
+ var parsed = parse(v);
+ if (parsed === undefined) {
+ return;
+ }
+ this._setProperty('background-color', parsed);
+ },
+ get: function() {
+ return this.getPropertyValue('background-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/backgroundImage.js b/alarm/node_modules/cssstyle/lib/properties/backgroundImage.js
new file mode 100644
index 0000000..b6479a1
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/backgroundImage.js
@@ -0,0 +1,32 @@
+'use strict';
+
+var parsers = require('../parsers');
+
+var parse = function parse(v) {
+ var parsed = parsers.parseUrl(v);
+ if (parsed !== undefined) {
+ return parsed;
+ }
+ if (
+ parsers.valueType(v) === parsers.TYPES.KEYWORD &&
+ (v.toLowerCase() === 'none' || v.toLowerCase() === 'inherit')
+ ) {
+ return v;
+ }
+ return undefined;
+};
+
+module.exports.isValid = function isValid(v) {
+ return parse(v) !== undefined;
+};
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('background-image', parse(v));
+ },
+ get: function() {
+ return this.getPropertyValue('background-image');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/backgroundPosition.js b/alarm/node_modules/cssstyle/lib/properties/backgroundPosition.js
new file mode 100644
index 0000000..4405fe6
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/backgroundPosition.js
@@ -0,0 +1,58 @@
+'use strict';
+
+var parsers = require('../parsers');
+
+var valid_keywords = ['top', 'center', 'bottom', 'left', 'right'];
+
+var parse = function parse(v) {
+ if (v === '' || v === null) {
+ return undefined;
+ }
+ var parts = v.split(/\s+/);
+ if (parts.length > 2 || parts.length < 1) {
+ return undefined;
+ }
+ var types = [];
+ parts.forEach(function(part, index) {
+ types[index] = parsers.valueType(part);
+ });
+ if (parts.length === 1) {
+ if (types[0] === parsers.TYPES.LENGTH || types[0] === parsers.TYPES.PERCENT) {
+ return v;
+ }
+ if (types[0] === parsers.TYPES.KEYWORD) {
+ if (valid_keywords.indexOf(v.toLowerCase()) !== -1 || v.toLowerCase() === 'inherit') {
+ return v;
+ }
+ }
+ return undefined;
+ }
+ if (
+ (types[0] === parsers.TYPES.LENGTH || types[0] === parsers.TYPES.PERCENT) &&
+ (types[1] === parsers.TYPES.LENGTH || types[1] === parsers.TYPES.PERCENT)
+ ) {
+ return v;
+ }
+ if (types[0] !== parsers.TYPES.KEYWORD || types[1] !== parsers.TYPES.KEYWORD) {
+ return undefined;
+ }
+ if (valid_keywords.indexOf(parts[0]) !== -1 && valid_keywords.indexOf(parts[1]) !== -1) {
+ return v;
+ }
+ return undefined;
+};
+
+module.exports.isValid = function isValid(v) {
+ return parse(v) !== undefined;
+};
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('background-position', parse(v));
+ },
+ get: function() {
+ return this.getPropertyValue('background-position');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/backgroundRepeat.js b/alarm/node_modules/cssstyle/lib/properties/backgroundRepeat.js
new file mode 100644
index 0000000..379ade0
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/backgroundRepeat.js
@@ -0,0 +1,32 @@
+'use strict';
+
+var parsers = require('../parsers');
+
+var parse = function parse(v) {
+ if (
+ parsers.valueType(v) === parsers.TYPES.KEYWORD &&
+ (v.toLowerCase() === 'repeat' ||
+ v.toLowerCase() === 'repeat-x' ||
+ v.toLowerCase() === 'repeat-y' ||
+ v.toLowerCase() === 'no-repeat' ||
+ v.toLowerCase() === 'inherit')
+ ) {
+ return v;
+ }
+ return undefined;
+};
+
+module.exports.isValid = function isValid(v) {
+ return parse(v) !== undefined;
+};
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('background-repeat', parse(v));
+ },
+ get: function() {
+ return this.getPropertyValue('background-repeat');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/border.js b/alarm/node_modules/cssstyle/lib/properties/border.js
new file mode 100644
index 0000000..bf5b5d6
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/border.js
@@ -0,0 +1,33 @@
+'use strict';
+
+var shorthandSetter = require('../parsers').shorthandSetter;
+var shorthandGetter = require('../parsers').shorthandGetter;
+
+var shorthand_for = {
+ 'border-width': require('./borderWidth'),
+ 'border-style': require('./borderStyle'),
+ 'border-color': require('./borderColor'),
+};
+
+var myShorthandSetter = shorthandSetter('border', shorthand_for);
+var myShorthandGetter = shorthandGetter('border', shorthand_for);
+
+module.exports.definition = {
+ set: function(v) {
+ if (v.toString().toLowerCase() === 'none') {
+ v = '';
+ }
+ myShorthandSetter.call(this, v);
+ this.removeProperty('border-top');
+ this.removeProperty('border-left');
+ this.removeProperty('border-right');
+ this.removeProperty('border-bottom');
+ this._values['border-top'] = this._values.border;
+ this._values['border-left'] = this._values.border;
+ this._values['border-right'] = this._values.border;
+ this._values['border-bottom'] = this._values.border;
+ },
+ get: myShorthandGetter,
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderBottom.js b/alarm/node_modules/cssstyle/lib/properties/borderBottom.js
new file mode 100644
index 0000000..aae2e5f
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderBottom.js
@@ -0,0 +1,17 @@
+'use strict';
+
+var shorthandSetter = require('../parsers').shorthandSetter;
+var shorthandGetter = require('../parsers').shorthandGetter;
+
+var shorthand_for = {
+ 'border-bottom-width': require('./borderBottomWidth'),
+ 'border-bottom-style': require('./borderBottomStyle'),
+ 'border-bottom-color': require('./borderBottomColor'),
+};
+
+module.exports.definition = {
+ set: shorthandSetter('border-bottom', shorthand_for),
+ get: shorthandGetter('border-bottom', shorthand_for),
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderBottomColor.js b/alarm/node_modules/cssstyle/lib/properties/borderBottomColor.js
new file mode 100644
index 0000000..da5a4b5
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderBottomColor.js
@@ -0,0 +1,16 @@
+'use strict';
+
+var isValid = (module.exports.isValid = require('./borderColor').isValid);
+
+module.exports.definition = {
+ set: function(v) {
+ if (isValid(v)) {
+ this._setProperty('border-bottom-color', v);
+ }
+ },
+ get: function() {
+ return this.getPropertyValue('border-bottom-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderBottomStyle.js b/alarm/node_modules/cssstyle/lib/properties/borderBottomStyle.js
new file mode 100644
index 0000000..35c44f0
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderBottomStyle.js
@@ -0,0 +1,21 @@
+'use strict';
+
+var isValid = require('./borderStyle').isValid;
+module.exports.isValid = isValid;
+
+module.exports.definition = {
+ set: function(v) {
+ if (isValid(v)) {
+ if (v.toLowerCase() === 'none') {
+ v = '';
+ this.removeProperty('border-bottom-width');
+ }
+ this._setProperty('border-bottom-style', v);
+ }
+ },
+ get: function() {
+ return this.getPropertyValue('border-bottom-style');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderBottomWidth.js b/alarm/node_modules/cssstyle/lib/properties/borderBottomWidth.js
new file mode 100644
index 0000000..db2e3b8
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderBottomWidth.js
@@ -0,0 +1,16 @@
+'use strict';
+
+var isValid = (module.exports.isValid = require('./borderWidth').isValid);
+
+module.exports.definition = {
+ set: function(v) {
+ if (isValid(v)) {
+ this._setProperty('border-bottom-width', v);
+ }
+ },
+ get: function() {
+ return this.getPropertyValue('border-bottom-width');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderCollapse.js b/alarm/node_modules/cssstyle/lib/properties/borderCollapse.js
new file mode 100644
index 0000000..49bdeb0
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderCollapse.js
@@ -0,0 +1,26 @@
+'use strict';
+
+var parsers = require('../parsers');
+
+var parse = function parse(v) {
+ if (
+ parsers.valueType(v) === parsers.TYPES.KEYWORD &&
+ (v.toLowerCase() === 'collapse' ||
+ v.toLowerCase() === 'separate' ||
+ v.toLowerCase() === 'inherit')
+ ) {
+ return v;
+ }
+ return undefined;
+};
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('border-collapse', parse(v));
+ },
+ get: function() {
+ return this.getPropertyValue('border-collapse');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderColor.js b/alarm/node_modules/cssstyle/lib/properties/borderColor.js
new file mode 100644
index 0000000..6605e07
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderColor.js
@@ -0,0 +1,30 @@
+'use strict';
+
+var parsers = require('../parsers');
+var implicitSetter = require('../parsers').implicitSetter;
+
+module.exports.isValid = function parse(v) {
+ if (typeof v !== 'string') {
+ return false;
+ }
+ return (
+ v === '' || v.toLowerCase() === 'transparent' || parsers.valueType(v) === parsers.TYPES.COLOR
+ );
+};
+var isValid = module.exports.isValid;
+
+var parser = function(v) {
+ if (isValid(v)) {
+ return v.toLowerCase();
+ }
+ return undefined;
+};
+
+module.exports.definition = {
+ set: implicitSetter('border', 'color', isValid, parser),
+ get: function() {
+ return this.getPropertyValue('border-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderLeft.js b/alarm/node_modules/cssstyle/lib/properties/borderLeft.js
new file mode 100644
index 0000000..a05945e
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderLeft.js
@@ -0,0 +1,17 @@
+'use strict';
+
+var shorthandSetter = require('../parsers').shorthandSetter;
+var shorthandGetter = require('../parsers').shorthandGetter;
+
+var shorthand_for = {
+ 'border-left-width': require('./borderLeftWidth'),
+ 'border-left-style': require('./borderLeftStyle'),
+ 'border-left-color': require('./borderLeftColor'),
+};
+
+module.exports.definition = {
+ set: shorthandSetter('border-left', shorthand_for),
+ get: shorthandGetter('border-left', shorthand_for),
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderLeftColor.js b/alarm/node_modules/cssstyle/lib/properties/borderLeftColor.js
new file mode 100644
index 0000000..eb3f273
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderLeftColor.js
@@ -0,0 +1,16 @@
+'use strict';
+
+var isValid = (module.exports.isValid = require('./borderColor').isValid);
+
+module.exports.definition = {
+ set: function(v) {
+ if (isValid(v)) {
+ this._setProperty('border-left-color', v);
+ }
+ },
+ get: function() {
+ return this.getPropertyValue('border-left-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderLeftStyle.js b/alarm/node_modules/cssstyle/lib/properties/borderLeftStyle.js
new file mode 100644
index 0000000..5e8a113
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderLeftStyle.js
@@ -0,0 +1,21 @@
+'use strict';
+
+var isValid = require('./borderStyle').isValid;
+module.exports.isValid = isValid;
+
+module.exports.definition = {
+ set: function(v) {
+ if (isValid(v)) {
+ if (v.toLowerCase() === 'none') {
+ v = '';
+ this.removeProperty('border-left-width');
+ }
+ this._setProperty('border-left-style', v);
+ }
+ },
+ get: function() {
+ return this.getPropertyValue('border-left-style');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderLeftWidth.js b/alarm/node_modules/cssstyle/lib/properties/borderLeftWidth.js
new file mode 100644
index 0000000..8c680b1
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderLeftWidth.js
@@ -0,0 +1,16 @@
+'use strict';
+
+var isValid = (module.exports.isValid = require('./borderWidth').isValid);
+
+module.exports.definition = {
+ set: function(v) {
+ if (isValid(v)) {
+ this._setProperty('border-left-width', v);
+ }
+ },
+ get: function() {
+ return this.getPropertyValue('border-left-width');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderRight.js b/alarm/node_modules/cssstyle/lib/properties/borderRight.js
new file mode 100644
index 0000000..17e26df
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderRight.js
@@ -0,0 +1,17 @@
+'use strict';
+
+var shorthandSetter = require('../parsers').shorthandSetter;
+var shorthandGetter = require('../parsers').shorthandGetter;
+
+var shorthand_for = {
+ 'border-right-width': require('./borderRightWidth'),
+ 'border-right-style': require('./borderRightStyle'),
+ 'border-right-color': require('./borderRightColor'),
+};
+
+module.exports.definition = {
+ set: shorthandSetter('border-right', shorthand_for),
+ get: shorthandGetter('border-right', shorthand_for),
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderRightColor.js b/alarm/node_modules/cssstyle/lib/properties/borderRightColor.js
new file mode 100644
index 0000000..7c188f2
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderRightColor.js
@@ -0,0 +1,16 @@
+'use strict';
+
+var isValid = (module.exports.isValid = require('./borderColor').isValid);
+
+module.exports.definition = {
+ set: function(v) {
+ if (isValid(v)) {
+ this._setProperty('border-right-color', v);
+ }
+ },
+ get: function() {
+ return this.getPropertyValue('border-right-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderRightStyle.js b/alarm/node_modules/cssstyle/lib/properties/borderRightStyle.js
new file mode 100644
index 0000000..68e8209
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderRightStyle.js
@@ -0,0 +1,21 @@
+'use strict';
+
+var isValid = require('./borderStyle').isValid;
+module.exports.isValid = isValid;
+
+module.exports.definition = {
+ set: function(v) {
+ if (isValid(v)) {
+ if (v.toLowerCase() === 'none') {
+ v = '';
+ this.removeProperty('border-right-width');
+ }
+ this._setProperty('border-right-style', v);
+ }
+ },
+ get: function() {
+ return this.getPropertyValue('border-right-style');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderRightWidth.js b/alarm/node_modules/cssstyle/lib/properties/borderRightWidth.js
new file mode 100644
index 0000000..d1090d7
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderRightWidth.js
@@ -0,0 +1,16 @@
+'use strict';
+
+var isValid = (module.exports.isValid = require('./borderWidth').isValid);
+
+module.exports.definition = {
+ set: function(v) {
+ if (isValid(v)) {
+ this._setProperty('border-right-width', v);
+ }
+ },
+ get: function() {
+ return this.getPropertyValue('border-right-width');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderSpacing.js b/alarm/node_modules/cssstyle/lib/properties/borderSpacing.js
new file mode 100644
index 0000000..ff1ce88
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderSpacing.js
@@ -0,0 +1,41 @@
+'use strict';
+
+var parsers = require('../parsers');
+
+// <length> <length>? | inherit
+// if one, it applies to both horizontal and verical spacing
+// if two, the first applies to the horizontal and the second applies to vertical spacing
+
+var parse = function parse(v) {
+ if (v === '' || v === null) {
+ return undefined;
+ }
+ if (v === 0) {
+ return '0px';
+ }
+ if (v.toLowerCase() === 'inherit') {
+ return v;
+ }
+ var parts = v.split(/\s+/);
+ if (parts.length !== 1 && parts.length !== 2) {
+ return undefined;
+ }
+ parts.forEach(function(part) {
+ if (parsers.valueType(part) !== parsers.TYPES.LENGTH) {
+ return undefined;
+ }
+ });
+
+ return v;
+};
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('border-spacing', parse(v));
+ },
+ get: function() {
+ return this.getPropertyValue('border-spacing');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderStyle.js b/alarm/node_modules/cssstyle/lib/properties/borderStyle.js
new file mode 100644
index 0000000..6e3e674
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderStyle.js
@@ -0,0 +1,38 @@
+'use strict';
+
+var implicitSetter = require('../parsers').implicitSetter;
+
+// the valid border-styles:
+var styles = [
+ 'none',
+ 'hidden',
+ 'dotted',
+ 'dashed',
+ 'solid',
+ 'double',
+ 'groove',
+ 'ridge',
+ 'inset',
+ 'outset',
+];
+
+module.exports.isValid = function parse(v) {
+ return typeof v === 'string' && (v === '' || styles.indexOf(v) !== -1);
+};
+var isValid = module.exports.isValid;
+
+var parser = function(v) {
+ if (isValid(v)) {
+ return v.toLowerCase();
+ }
+ return undefined;
+};
+
+module.exports.definition = {
+ set: implicitSetter('border', 'style', isValid, parser),
+ get: function() {
+ return this.getPropertyValue('border-style');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderTop.js b/alarm/node_modules/cssstyle/lib/properties/borderTop.js
new file mode 100644
index 0000000..c56d592
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderTop.js
@@ -0,0 +1,17 @@
+'use strict';
+
+var shorthandSetter = require('../parsers').shorthandSetter;
+var shorthandGetter = require('../parsers').shorthandGetter;
+
+var shorthand_for = {
+ 'border-top-width': require('./borderTopWidth'),
+ 'border-top-style': require('./borderTopStyle'),
+ 'border-top-color': require('./borderTopColor'),
+};
+
+module.exports.definition = {
+ set: shorthandSetter('border-top', shorthand_for),
+ get: shorthandGetter('border-top', shorthand_for),
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderTopColor.js b/alarm/node_modules/cssstyle/lib/properties/borderTopColor.js
new file mode 100644
index 0000000..cc35392
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderTopColor.js
@@ -0,0 +1,16 @@
+'use strict';
+
+var isValid = (module.exports.isValid = require('./borderColor').isValid);
+
+module.exports.definition = {
+ set: function(v) {
+ if (isValid(v)) {
+ this._setProperty('border-top-color', v);
+ }
+ },
+ get: function() {
+ return this.getPropertyValue('border-top-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderTopStyle.js b/alarm/node_modules/cssstyle/lib/properties/borderTopStyle.js
new file mode 100644
index 0000000..938ea40
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderTopStyle.js
@@ -0,0 +1,21 @@
+'use strict';
+
+var isValid = require('./borderStyle').isValid;
+module.exports.isValid = isValid;
+
+module.exports.definition = {
+ set: function(v) {
+ if (isValid(v)) {
+ if (v.toLowerCase() === 'none') {
+ v = '';
+ this.removeProperty('border-top-width');
+ }
+ this._setProperty('border-top-style', v);
+ }
+ },
+ get: function() {
+ return this.getPropertyValue('border-top-style');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderTopWidth.js b/alarm/node_modules/cssstyle/lib/properties/borderTopWidth.js
new file mode 100644
index 0000000..9407253
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderTopWidth.js
@@ -0,0 +1,17 @@
+'use strict';
+
+var isValid = require('./borderWidth').isValid;
+module.exports.isValid = isValid;
+
+module.exports.definition = {
+ set: function(v) {
+ if (isValid(v)) {
+ this._setProperty('border-top-width', v);
+ }
+ },
+ get: function() {
+ return this.getPropertyValue('border-top-width');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/borderWidth.js b/alarm/node_modules/cssstyle/lib/properties/borderWidth.js
new file mode 100644
index 0000000..2b6d871
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/borderWidth.js
@@ -0,0 +1,46 @@
+'use strict';
+
+var parsers = require('../parsers');
+var implicitSetter = require('../parsers').implicitSetter;
+
+// the valid border-widths:
+var widths = ['thin', 'medium', 'thick'];
+
+module.exports.isValid = function parse(v) {
+ var length = parsers.parseLength(v);
+ if (length !== undefined) {
+ return true;
+ }
+ if (typeof v !== 'string') {
+ return false;
+ }
+ if (v === '') {
+ return true;
+ }
+ v = v.toLowerCase();
+ if (widths.indexOf(v) === -1) {
+ return false;
+ }
+ return true;
+};
+var isValid = module.exports.isValid;
+
+var parser = function(v) {
+ var length = parsers.parseLength(v);
+ if (length !== undefined) {
+ return length;
+ }
+ if (isValid(v)) {
+ return v.toLowerCase();
+ }
+ return undefined;
+};
+
+module.exports.definition = {
+ set: implicitSetter('border', 'width', isValid, parser),
+ get: function() {
+ return this.getPropertyValue('border-width');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/bottom.js b/alarm/node_modules/cssstyle/lib/properties/bottom.js
new file mode 100644
index 0000000..e9d72b2
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/bottom.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseMeasurement = require('../parsers').parseMeasurement;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('bottom', parseMeasurement(v));
+ },
+ get: function() {
+ return this.getPropertyValue('bottom');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/clear.js b/alarm/node_modules/cssstyle/lib/properties/clear.js
new file mode 100644
index 0000000..22d9802
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/clear.js
@@ -0,0 +1,16 @@
+'use strict';
+
+var parseKeyword = require('../parsers').parseKeyword;
+
+var clear_keywords = ['none', 'left', 'right', 'both', 'inherit'];
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('clear', parseKeyword(v, clear_keywords));
+ },
+ get: function() {
+ return this.getPropertyValue('clear');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/clip.js b/alarm/node_modules/cssstyle/lib/properties/clip.js
new file mode 100644
index 0000000..91ba675
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/clip.js
@@ -0,0 +1,47 @@
+'use strict';
+
+var parseMeasurement = require('../parsers').parseMeasurement;
+
+var shape_regex = /^rect\((.*)\)$/i;
+
+var parse = function(val) {
+ if (val === '' || val === null) {
+ return val;
+ }
+ if (typeof val !== 'string') {
+ return undefined;
+ }
+ val = val.toLowerCase();
+ if (val === 'auto' || val === 'inherit') {
+ return val;
+ }
+ var matches = val.match(shape_regex);
+ if (!matches) {
+ return undefined;
+ }
+ var parts = matches[1].split(/\s*,\s*/);
+ if (parts.length !== 4) {
+ return undefined;
+ }
+ var valid = parts.every(function(part, index) {
+ var measurement = parseMeasurement(part);
+ parts[index] = measurement;
+ return measurement !== undefined;
+ });
+ if (!valid) {
+ return undefined;
+ }
+ parts = parts.join(', ');
+ return val.replace(matches[1], parts);
+};
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('clip', parse(v));
+ },
+ get: function() {
+ return this.getPropertyValue('clip');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/color.js b/alarm/node_modules/cssstyle/lib/properties/color.js
new file mode 100644
index 0000000..1b5ca3d
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/color.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/cssFloat.js b/alarm/node_modules/cssstyle/lib/properties/cssFloat.js
new file mode 100644
index 0000000..1c619cc
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/cssFloat.js
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('float', v);
+ },
+ get: function() {
+ return this.getPropertyValue('float');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/flex.js b/alarm/node_modules/cssstyle/lib/properties/flex.js
new file mode 100644
index 0000000..b56fd55
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/flex.js
@@ -0,0 +1,45 @@
+'use strict';
+
+var shorthandParser = require('../parsers').shorthandParser;
+var shorthandSetter = require('../parsers').shorthandSetter;
+var shorthandGetter = require('../parsers').shorthandGetter;
+
+var shorthand_for = {
+ 'flex-grow': require('./flexGrow'),
+ 'flex-shrink': require('./flexShrink'),
+ 'flex-basis': require('./flexBasis'),
+};
+
+var myShorthandSetter = shorthandSetter('flex', shorthand_for);
+
+module.exports.isValid = function isValid(v) {
+ return shorthandParser(v, shorthand_for) !== undefined;
+};
+
+module.exports.definition = {
+ set: function(v) {
+ var normalizedValue = String(v)
+ .trim()
+ .toLowerCase();
+
+ if (normalizedValue === 'none') {
+ myShorthandSetter.call(this, '0 0 auto');
+ return;
+ }
+ if (normalizedValue === 'initial') {
+ myShorthandSetter.call(this, '0 1 auto');
+ return;
+ }
+ if (normalizedValue === 'auto') {
+ this.removeProperty('flex-grow');
+ this.removeProperty('flex-shrink');
+ this.setProperty('flex-basis', normalizedValue);
+ return;
+ }
+
+ myShorthandSetter.call(this, v);
+ },
+ get: shorthandGetter('flex', shorthand_for),
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/flexBasis.js b/alarm/node_modules/cssstyle/lib/properties/flexBasis.js
new file mode 100644
index 0000000..0c7cddf
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/flexBasis.js
@@ -0,0 +1,28 @@
+'use strict';
+
+var parseMeasurement = require('../parsers').parseMeasurement;
+
+function parse(v) {
+ if (String(v).toLowerCase() === 'auto') {
+ return 'auto';
+ }
+ if (String(v).toLowerCase() === 'inherit') {
+ return 'inherit';
+ }
+ return parseMeasurement(v);
+}
+
+module.exports.isValid = function isValid(v) {
+ return parse(v) !== undefined;
+};
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('flex-basis', parse(v));
+ },
+ get: function() {
+ return this.getPropertyValue('flex-basis');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/flexGrow.js b/alarm/node_modules/cssstyle/lib/properties/flexGrow.js
new file mode 100644
index 0000000..6e29663
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/flexGrow.js
@@ -0,0 +1,19 @@
+'use strict';
+
+var parseNumber = require('../parsers').parseNumber;
+var POSITION_AT_SHORTHAND = require('../constants').POSITION_AT_SHORTHAND;
+
+module.exports.isValid = function isValid(v, positionAtFlexShorthand) {
+ return parseNumber(v) !== undefined && positionAtFlexShorthand === POSITION_AT_SHORTHAND.first;
+};
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('flex-grow', parseNumber(v));
+ },
+ get: function() {
+ return this.getPropertyValue('flex-grow');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/flexShrink.js b/alarm/node_modules/cssstyle/lib/properties/flexShrink.js
new file mode 100644
index 0000000..63ff86f
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/flexShrink.js
@@ -0,0 +1,19 @@
+'use strict';
+
+var parseNumber = require('../parsers').parseNumber;
+var POSITION_AT_SHORTHAND = require('../constants').POSITION_AT_SHORTHAND;
+
+module.exports.isValid = function isValid(v, positionAtFlexShorthand) {
+ return parseNumber(v) !== undefined && positionAtFlexShorthand === POSITION_AT_SHORTHAND.second;
+};
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('flex-shrink', parseNumber(v));
+ },
+ get: function() {
+ return this.getPropertyValue('flex-shrink');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/float.js b/alarm/node_modules/cssstyle/lib/properties/float.js
new file mode 100644
index 0000000..1c619cc
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/float.js
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('float', v);
+ },
+ get: function() {
+ return this.getPropertyValue('float');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/floodColor.js b/alarm/node_modules/cssstyle/lib/properties/floodColor.js
new file mode 100644
index 0000000..8a4f29c
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/floodColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('flood-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('flood-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/font.js b/alarm/node_modules/cssstyle/lib/properties/font.js
new file mode 100644
index 0000000..9492dc6
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/font.js
@@ -0,0 +1,43 @@
+'use strict';
+
+var TYPES = require('../parsers').TYPES;
+var valueType = require('../parsers').valueType;
+var shorthandParser = require('../parsers').shorthandParser;
+var shorthandSetter = require('../parsers').shorthandSetter;
+var shorthandGetter = require('../parsers').shorthandGetter;
+
+var shorthand_for = {
+ 'font-family': require('./fontFamily'),
+ 'font-size': require('./fontSize'),
+ 'font-style': require('./fontStyle'),
+ 'font-variant': require('./fontVariant'),
+ 'font-weight': require('./fontWeight'),
+ 'line-height': require('./lineHeight'),
+};
+
+var static_fonts = [
+ 'caption',
+ 'icon',
+ 'menu',
+ 'message-box',
+ 'small-caption',
+ 'status-bar',
+ 'inherit',
+];
+
+var setter = shorthandSetter('font', shorthand_for);
+
+module.exports.definition = {
+ set: function(v) {
+ var short = shorthandParser(v, shorthand_for);
+ if (short !== undefined) {
+ return setter.call(this, v);
+ }
+ if (valueType(v) === TYPES.KEYWORD && static_fonts.indexOf(v.toLowerCase()) !== -1) {
+ this._setProperty('font', v);
+ }
+ },
+ get: shorthandGetter('font', shorthand_for),
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/fontFamily.js b/alarm/node_modules/cssstyle/lib/properties/fontFamily.js
new file mode 100644
index 0000000..40bd1c1
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/fontFamily.js
@@ -0,0 +1,33 @@
+'use strict';
+
+var TYPES = require('../parsers').TYPES;
+var valueType = require('../parsers').valueType;
+
+var partsRegEx = /\s*,\s*/;
+module.exports.isValid = function isValid(v) {
+ if (v === '' || v === null) {
+ return true;
+ }
+ var parts = v.split(partsRegEx);
+ var len = parts.length;
+ var i;
+ var type;
+ for (i = 0; i < len; i++) {
+ type = valueType(parts[i]);
+ if (type === TYPES.STRING || type === TYPES.KEYWORD) {
+ return true;
+ }
+ }
+ return false;
+};
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('font-family', v);
+ },
+ get: function() {
+ return this.getPropertyValue('font-family');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/fontSize.js b/alarm/node_modules/cssstyle/lib/properties/fontSize.js
new file mode 100644
index 0000000..c956324
--- /dev/null
+++ b/alarm/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,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/fontStyle.js b/alarm/node_modules/cssstyle/lib/properties/fontStyle.js
new file mode 100644
index 0000000..63d5e92
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/fontStyle.js
@@ -0,0 +1,18 @@
+'use strict';
+
+var valid_styles = ['normal', 'italic', 'oblique', 'inherit'];
+
+module.exports.isValid = function(v) {
+ return valid_styles.indexOf(v.toLowerCase()) !== -1;
+};
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('font-style', v);
+ },
+ get: function() {
+ return this.getPropertyValue('font-style');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/fontVariant.js b/alarm/node_modules/cssstyle/lib/properties/fontVariant.js
new file mode 100644
index 0000000..f03b5ea
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/fontVariant.js
@@ -0,0 +1,18 @@
+'use strict';
+
+var valid_variants = ['normal', 'small-caps', 'inherit'];
+
+module.exports.isValid = function isValid(v) {
+ return valid_variants.indexOf(v.toLowerCase()) !== -1;
+};
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('font-variant', v);
+ },
+ get: function() {
+ return this.getPropertyValue('font-variant');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/fontWeight.js b/alarm/node_modules/cssstyle/lib/properties/fontWeight.js
new file mode 100644
index 0000000..b854f6a
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/fontWeight.js
@@ -0,0 +1,33 @@
+'use strict';
+
+var valid_weights = [
+ 'normal',
+ 'bold',
+ 'bolder',
+ 'lighter',
+ '100',
+ '200',
+ '300',
+ '400',
+ '500',
+ '600',
+ '700',
+ '800',
+ '900',
+ 'inherit',
+];
+
+module.exports.isValid = function isValid(v) {
+ return valid_weights.indexOf(v.toLowerCase()) !== -1;
+};
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('font-weight', v);
+ },
+ get: function() {
+ return this.getPropertyValue('font-weight');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/height.js b/alarm/node_modules/cssstyle/lib/properties/height.js
new file mode 100644
index 0000000..82543c0
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/height.js
@@ -0,0 +1,24 @@
+'use strict';
+
+var parseMeasurement = require('../parsers').parseMeasurement;
+
+function parse(v) {
+ if (String(v).toLowerCase() === 'auto') {
+ return 'auto';
+ }
+ if (String(v).toLowerCase() === 'inherit') {
+ return 'inherit';
+ }
+ return parseMeasurement(v);
+}
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('height', parse(v));
+ },
+ get: function() {
+ return this.getPropertyValue('height');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/left.js b/alarm/node_modules/cssstyle/lib/properties/left.js
new file mode 100644
index 0000000..72bb2fa
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/left.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseMeasurement = require('../parsers').parseMeasurement;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('left', parseMeasurement(v));
+ },
+ get: function() {
+ return this.getPropertyValue('left');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/lightingColor.js b/alarm/node_modules/cssstyle/lib/properties/lightingColor.js
new file mode 100644
index 0000000..9f9643d
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/lightingColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('lighting-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('lighting-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/lineHeight.js b/alarm/node_modules/cssstyle/lib/properties/lineHeight.js
new file mode 100644
index 0000000..6f7a037
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/lineHeight.js
@@ -0,0 +1,26 @@
+'use strict';
+
+var TYPES = require('../parsers').TYPES;
+var valueType = require('../parsers').valueType;
+
+module.exports.isValid = function isValid(v) {
+ var type = valueType(v);
+ return (
+ (type === TYPES.KEYWORD && v.toLowerCase() === 'normal') ||
+ v.toLowerCase() === 'inherit' ||
+ type === TYPES.NUMBER ||
+ type === TYPES.LENGTH ||
+ type === TYPES.PERCENT
+ );
+};
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('line-height', v);
+ },
+ get: function() {
+ return this.getPropertyValue('line-height');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/margin.js b/alarm/node_modules/cssstyle/lib/properties/margin.js
new file mode 100644
index 0000000..2a8f972
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/margin.js
@@ -0,0 +1,68 @@
+'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;
diff --git a/alarm/node_modules/cssstyle/lib/properties/marginBottom.js b/alarm/node_modules/cssstyle/lib/properties/marginBottom.js
new file mode 100644
index 0000000..378172e
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/marginBottom.js
@@ -0,0 +1,13 @@
+'use strict';
+
+var margin = require('./margin.js');
+var parsers = require('../parsers.js');
+
+module.exports.definition = {
+ set: parsers.subImplicitSetter('margin', 'bottom', margin.isValid, margin.parser),
+ get: function() {
+ return this.getPropertyValue('margin-bottom');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/marginLeft.js b/alarm/node_modules/cssstyle/lib/properties/marginLeft.js
new file mode 100644
index 0000000..0c67317
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/marginLeft.js
@@ -0,0 +1,13 @@
+'use strict';
+
+var margin = require('./margin.js');
+var parsers = require('../parsers.js');
+
+module.exports.definition = {
+ set: parsers.subImplicitSetter('margin', 'left', margin.isValid, margin.parser),
+ get: function() {
+ return this.getPropertyValue('margin-left');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/marginRight.js b/alarm/node_modules/cssstyle/lib/properties/marginRight.js
new file mode 100644
index 0000000..6cdf26b
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/marginRight.js
@@ -0,0 +1,13 @@
+'use strict';
+
+var margin = require('./margin.js');
+var parsers = require('../parsers.js');
+
+module.exports.definition = {
+ set: parsers.subImplicitSetter('margin', 'right', margin.isValid, margin.parser),
+ get: function() {
+ return this.getPropertyValue('margin-right');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/marginTop.js b/alarm/node_modules/cssstyle/lib/properties/marginTop.js
new file mode 100644
index 0000000..6a57621
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/marginTop.js
@@ -0,0 +1,13 @@
+'use strict';
+
+var margin = require('./margin.js');
+var parsers = require('../parsers.js');
+
+module.exports.definition = {
+ set: parsers.subImplicitSetter('margin', 'top', margin.isValid, margin.parser),
+ get: function() {
+ return this.getPropertyValue('margin-top');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/opacity.js b/alarm/node_modules/cssstyle/lib/properties/opacity.js
new file mode 100644
index 0000000..b26a3b6
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/opacity.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseNumber = require('../parsers').parseNumber;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('opacity', parseNumber(v));
+ },
+ get: function() {
+ return this.getPropertyValue('opacity');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/outlineColor.js b/alarm/node_modules/cssstyle/lib/properties/outlineColor.js
new file mode 100644
index 0000000..fc8093d
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/outlineColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('outline-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('outline-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/padding.js b/alarm/node_modules/cssstyle/lib/properties/padding.js
new file mode 100644
index 0000000..1287b19
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/padding.js
@@ -0,0 +1,61 @@
+'use strict';
+
+var parsers = require('../parsers.js');
+var TYPES = parsers.TYPES;
+
+var isValid = function(v) {
+ var type = parsers.valueType(v);
+ return (
+ type === TYPES.LENGTH ||
+ type === TYPES.PERCENT ||
+ (type === TYPES.INTEGER && (v === '0' || v === 0))
+ );
+};
+
+var parser = function(v) {
+ return parsers.parseMeasurement(v);
+};
+
+var mySetter = parsers.implicitSetter('padding', '', isValid, parser);
+var myGlobal = parsers.implicitSetter(
+ 'padding',
+ '',
+ 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('padding');
+ },
+ enumerable: true,
+ configurable: true,
+};
+
+module.exports.isValid = isValid;
+module.exports.parser = parser;
diff --git a/alarm/node_modules/cssstyle/lib/properties/paddingBottom.js b/alarm/node_modules/cssstyle/lib/properties/paddingBottom.js
new file mode 100644
index 0000000..3ce88e5
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/paddingBottom.js
@@ -0,0 +1,13 @@
+'use strict';
+
+var padding = require('./padding.js');
+var parsers = require('../parsers.js');
+
+module.exports.definition = {
+ set: parsers.subImplicitSetter('padding', 'bottom', padding.isValid, padding.parser),
+ get: function() {
+ return this.getPropertyValue('padding-bottom');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/paddingLeft.js b/alarm/node_modules/cssstyle/lib/properties/paddingLeft.js
new file mode 100644
index 0000000..0436338
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/paddingLeft.js
@@ -0,0 +1,13 @@
+'use strict';
+
+var padding = require('./padding.js');
+var parsers = require('../parsers.js');
+
+module.exports.definition = {
+ set: parsers.subImplicitSetter('padding', 'left', padding.isValid, padding.parser),
+ get: function() {
+ return this.getPropertyValue('padding-left');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/paddingRight.js b/alarm/node_modules/cssstyle/lib/properties/paddingRight.js
new file mode 100644
index 0000000..ff9bd34
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/paddingRight.js
@@ -0,0 +1,13 @@
+'use strict';
+
+var padding = require('./padding.js');
+var parsers = require('../parsers.js');
+
+module.exports.definition = {
+ set: parsers.subImplicitSetter('padding', 'right', padding.isValid, padding.parser),
+ get: function() {
+ return this.getPropertyValue('padding-right');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/paddingTop.js b/alarm/node_modules/cssstyle/lib/properties/paddingTop.js
new file mode 100644
index 0000000..eca8781
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/paddingTop.js
@@ -0,0 +1,13 @@
+'use strict';
+
+var padding = require('./padding.js');
+var parsers = require('../parsers.js');
+
+module.exports.definition = {
+ set: parsers.subImplicitSetter('padding', 'top', padding.isValid, padding.parser),
+ get: function() {
+ return this.getPropertyValue('padding-top');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/right.js b/alarm/node_modules/cssstyle/lib/properties/right.js
new file mode 100644
index 0000000..eb4c3d4
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/right.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseMeasurement = require('../parsers').parseMeasurement;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('right', parseMeasurement(v));
+ },
+ get: function() {
+ return this.getPropertyValue('right');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/stopColor.js b/alarm/node_modules/cssstyle/lib/properties/stopColor.js
new file mode 100644
index 0000000..912d8e2
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/stopColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('stop-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('stop-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/textLineThroughColor.js b/alarm/node_modules/cssstyle/lib/properties/textLineThroughColor.js
new file mode 100644
index 0000000..ae53dbb
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/textLineThroughColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('text-line-through-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('text-line-through-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/textOverlineColor.js b/alarm/node_modules/cssstyle/lib/properties/textOverlineColor.js
new file mode 100644
index 0000000..c6adf7c
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/textOverlineColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('text-overline-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('text-overline-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/textUnderlineColor.js b/alarm/node_modules/cssstyle/lib/properties/textUnderlineColor.js
new file mode 100644
index 0000000..a243a9c
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/textUnderlineColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('text-underline-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('text-underline-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/top.js b/alarm/node_modules/cssstyle/lib/properties/top.js
new file mode 100644
index 0000000..f71986f
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/top.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseMeasurement = require('../parsers').parseMeasurement;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('top', parseMeasurement(v));
+ },
+ get: function() {
+ return this.getPropertyValue('top');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/webkitBorderAfterColor.js b/alarm/node_modules/cssstyle/lib/properties/webkitBorderAfterColor.js
new file mode 100644
index 0000000..ed02194
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/webkitBorderAfterColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('-webkit-border-after-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('-webkit-border-after-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/webkitBorderBeforeColor.js b/alarm/node_modules/cssstyle/lib/properties/webkitBorderBeforeColor.js
new file mode 100644
index 0000000..a4507a1
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/webkitBorderBeforeColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('-webkit-border-before-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('-webkit-border-before-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/webkitBorderEndColor.js b/alarm/node_modules/cssstyle/lib/properties/webkitBorderEndColor.js
new file mode 100644
index 0000000..499545d
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/webkitBorderEndColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('-webkit-border-end-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('-webkit-border-end-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/webkitBorderStartColor.js b/alarm/node_modules/cssstyle/lib/properties/webkitBorderStartColor.js
new file mode 100644
index 0000000..8429e32
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/webkitBorderStartColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('-webkit-border-start-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('-webkit-border-start-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/webkitColumnRuleColor.js b/alarm/node_modules/cssstyle/lib/properties/webkitColumnRuleColor.js
new file mode 100644
index 0000000..7130d5f
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/webkitColumnRuleColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('-webkit-column-rule-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('-webkit-column-rule-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/webkitMatchNearestMailBlockquoteColor.js b/alarm/node_modules/cssstyle/lib/properties/webkitMatchNearestMailBlockquoteColor.js
new file mode 100644
index 0000000..e075891
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/webkitMatchNearestMailBlockquoteColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('-webkit-match-nearest-mail-blockquote-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('-webkit-match-nearest-mail-blockquote-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/webkitTapHighlightColor.js b/alarm/node_modules/cssstyle/lib/properties/webkitTapHighlightColor.js
new file mode 100644
index 0000000..d019329
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/webkitTapHighlightColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('-webkit-tap-highlight-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('-webkit-tap-highlight-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/webkitTextEmphasisColor.js b/alarm/node_modules/cssstyle/lib/properties/webkitTextEmphasisColor.js
new file mode 100644
index 0000000..cdeab53
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/webkitTextEmphasisColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('-webkit-text-emphasis-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('-webkit-text-emphasis-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/webkitTextFillColor.js b/alarm/node_modules/cssstyle/lib/properties/webkitTextFillColor.js
new file mode 100644
index 0000000..ef5bd67
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/webkitTextFillColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('-webkit-text-fill-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('-webkit-text-fill-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/webkitTextStrokeColor.js b/alarm/node_modules/cssstyle/lib/properties/webkitTextStrokeColor.js
new file mode 100644
index 0000000..72a2277
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/webkitTextStrokeColor.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var parseColor = require('../parsers').parseColor;
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('-webkit-text-stroke-color', parseColor(v));
+ },
+ get: function() {
+ return this.getPropertyValue('-webkit-text-stroke-color');
+ },
+ enumerable: true,
+ configurable: true,
+};
diff --git a/alarm/node_modules/cssstyle/lib/properties/width.js b/alarm/node_modules/cssstyle/lib/properties/width.js
new file mode 100644
index 0000000..a8c365d
--- /dev/null
+++ b/alarm/node_modules/cssstyle/lib/properties/width.js
@@ -0,0 +1,24 @@
+'use strict';
+
+var parseMeasurement = require('../parsers').parseMeasurement;
+
+function parse(v) {
+ if (String(v).toLowerCase() === 'auto') {
+ return 'auto';
+ }
+ if (String(v).toLowerCase() === 'inherit') {
+ return 'inherit';
+ }
+ return parseMeasurement(v);
+}
+
+module.exports.definition = {
+ set: function(v) {
+ this._setProperty('width', parse(v));
+ },
+ get: function() {
+ return this.getPropertyValue('width');
+ },
+ enumerable: true,
+ configurable: true,
+};