summaryrefslogtreecommitdiff
path: root/alarm/node_modules/cssstyle/lib/properties/azimuth.js
diff options
context:
space:
mode:
Diffstat (limited to 'alarm/node_modules/cssstyle/lib/properties/azimuth.js')
-rw-r--r--alarm/node_modules/cssstyle/lib/properties/azimuth.js67
1 files changed, 67 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,
+};