source: frontend/node_modules/cssstyle/lib/properties/backgroundPosition.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 12 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 1.5 KB
Line 
1'use strict';
2
3var parsers = require('../parsers');
4
5var valid_keywords = ['top', 'center', 'bottom', 'left', 'right'];
6
7var parse = function parse(v) {
8 if (v === '' || v === null) {
9 return undefined;
10 }
11 var parts = v.split(/\s+/);
12 if (parts.length > 2 || parts.length < 1) {
13 return undefined;
14 }
15 var types = [];
16 parts.forEach(function(part, index) {
17 types[index] = parsers.valueType(part);
18 });
19 if (parts.length === 1) {
20 if (types[0] === parsers.TYPES.LENGTH || types[0] === parsers.TYPES.PERCENT) {
21 return v;
22 }
23 if (types[0] === parsers.TYPES.KEYWORD) {
24 if (valid_keywords.indexOf(v.toLowerCase()) !== -1 || v.toLowerCase() === 'inherit') {
25 return v;
26 }
27 }
28 return undefined;
29 }
30 if (
31 (types[0] === parsers.TYPES.LENGTH || types[0] === parsers.TYPES.PERCENT) &&
32 (types[1] === parsers.TYPES.LENGTH || types[1] === parsers.TYPES.PERCENT)
33 ) {
34 return v;
35 }
36 if (types[0] !== parsers.TYPES.KEYWORD || types[1] !== parsers.TYPES.KEYWORD) {
37 return undefined;
38 }
39 if (valid_keywords.indexOf(parts[0]) !== -1 && valid_keywords.indexOf(parts[1]) !== -1) {
40 return v;
41 }
42 return undefined;
43};
44
45module.exports.isValid = function isValid(v) {
46 return parse(v) !== undefined;
47};
48
49module.exports.definition = {
50 set: function(v) {
51 this._setProperty('background-position', parse(v));
52 },
53 get: function() {
54 return this.getPropertyValue('background-position');
55 },
56 enumerable: true,
57 configurable: true,
58};
Note: See TracBrowser for help on using the repository browser.