tophf 2015-05-07 02:19:21 +03:00
parent c6b4c6c738
commit dda1ac7259

View File

@ -21,7 +21,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE. THE SOFTWARE.
*/ */
/* Build: v0.10.0 07-May-2015 01:08:02 */ /* Build: v0.10.0 07-May-2015 02:11:31 */
var exports = exports || {}; var exports = exports || {};
var CSSLint = (function(){ var CSSLint = (function(){
/*! /*!
@ -47,10 +47,11 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE. THE SOFTWARE.
*/ */
/* Version v0.2.5, Build time: 7-May-2014 03:37:38 */ /* Version v0.2.5dev+PR, Build time: 6-May-2015 08:03:14 */
var parserlib = {}; var parserlib = {};
(function(){ (function(){
/** /**
* A generic base to inherit from for any object * A generic base to inherit from for any object
* that needs event handling. * that needs event handling.
@ -405,6 +406,7 @@ StringReader.prototype = {
} }
}; };
/** /**
* Type to use when a syntax error occurs. * Type to use when a syntax error occurs.
* @class SyntaxError * @class SyntaxError
@ -921,6 +923,8 @@ TokenStreamBase.prototype = {
}; };
parserlib.util = { parserlib.util = {
StringReader: StringReader, StringReader: StringReader,
SyntaxError : SyntaxError, SyntaxError : SyntaxError,
@ -929,6 +933,8 @@ EventTarget : EventTarget,
TokenStreamBase : TokenStreamBase TokenStreamBase : TokenStreamBase
}; };
})(); })();
/* /*
Parser-Lib Parser-Lib
Copyright (c) 2009-2011 Nicholas C. Zakas. All rights reserved. Copyright (c) 2009-2011 Nicholas C. Zakas. All rights reserved.
@ -952,7 +958,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE. THE SOFTWARE.
*/ */
/* Version v0.2.5, Build time: 7-May-2014 03:37:38 */ /* Version v0.2.5dev+PR, Build time: 6-May-2015 08:03:14 */
(function(){ (function(){
var EventTarget = parserlib.util.EventTarget, var EventTarget = parserlib.util.EventTarget,
TokenStreamBase = parserlib.util.TokenStreamBase, TokenStreamBase = parserlib.util.TokenStreamBase,
@ -960,6 +966,7 @@ StringReader = parserlib.util.StringReader,
SyntaxError = parserlib.util.SyntaxError, SyntaxError = parserlib.util.SyntaxError,
SyntaxUnit = parserlib.util.SyntaxUnit; SyntaxUnit = parserlib.util.SyntaxUnit;
var Colors = { var Colors = {
aliceblue :"#f0f8ff", aliceblue :"#f0f8ff",
antiquewhite :"#faebd7", antiquewhite :"#faebd7",
@ -1177,6 +1184,7 @@ function Combinator(text, line, col){
Combinator.prototype = new SyntaxUnit(); Combinator.prototype = new SyntaxUnit();
Combinator.prototype.constructor = Combinator; Combinator.prototype.constructor = Combinator;
/*global SyntaxUnit, Parser*/ /*global SyntaxUnit, Parser*/
/** /**
* Represents a media feature, such as max-width:500. * Represents a media feature, such as max-width:500.
@ -1209,6 +1217,7 @@ function MediaFeature(name, value){
MediaFeature.prototype = new SyntaxUnit(); MediaFeature.prototype = new SyntaxUnit();
MediaFeature.prototype.constructor = MediaFeature; MediaFeature.prototype.constructor = MediaFeature;
/*global SyntaxUnit, Parser*/ /*global SyntaxUnit, Parser*/
/** /**
* Represents an individual media query. * Represents an individual media query.
@ -1252,6 +1261,7 @@ function MediaQuery(modifier, mediaType, features, line, col){
MediaQuery.prototype = new SyntaxUnit(); MediaQuery.prototype = new SyntaxUnit();
MediaQuery.prototype.constructor = MediaQuery; MediaQuery.prototype.constructor = MediaQuery;
/*global Tokens, TokenStream, SyntaxError, Properties, Validation, ValidationError, SyntaxUnit, /*global Tokens, TokenStream, SyntaxError, Properties, Validation, ValidationError, SyntaxUnit,
PropertyValue, PropertyValuePart, SelectorPart, SelectorSubPart, Selector, PropertyValue, PropertyValuePart, SelectorPart, SelectorSubPart, Selector,
PropertyName, Combinator, MediaFeature, MediaQuery, EventTarget */ PropertyName, Combinator, MediaFeature, MediaQuery, EventTarget */
@ -1381,6 +1391,10 @@ Parser.prototype = function(){
this._viewport(); this._viewport();
this._skipCruft(); this._skipCruft();
break; break;
case Tokens.DOCUMENT_SYM:
this._document();
this._skipCruft();
break;
case Tokens.UNKNOWN_SYM: //unknown @ rule case Tokens.UNKNOWN_SYM: //unknown @ rule
tokenStream.get(); tokenStream.get();
if (!this.options.strict){ if (!this.options.strict){
@ -1622,6 +1636,8 @@ Parser.prototype = function(){
this._font_face(); this._font_face();
} else if (tokenStream.peek() == Tokens.VIEWPORT_SYM){ } else if (tokenStream.peek() == Tokens.VIEWPORT_SYM){
this._viewport(); this._viewport();
} else if (tokenStream.peek() == Tokens.DOCUMENT_SYM){
this._document();
} else if (!this._ruleset()){ } else if (!this._ruleset()){
break; break;
} }
@ -1780,6 +1796,8 @@ Parser.prototype = function(){
*/ */
var tokenStream = this._tokenStream; var tokenStream = this._tokenStream;
this._readWhitespace();
tokenStream.mustMatch(Tokens.IDENT); tokenStream.mustMatch(Tokens.IDENT);
return SyntaxUnit.fromToken(tokenStream.token()); return SyntaxUnit.fromToken(tokenStream.token());
@ -2003,6 +2021,92 @@ Parser.prototype = function(){
}, },
_document: function(){
/*
* document
* : DOCUMENT_SYM S*
* _document_function [ ',' S* _document_function ]* S*
* '{' S* ruleset* '}'
* ;
*/
var tokenStream = this._tokenStream,
token,
tt,
functions = [],
prefix = "";
tokenStream.mustMatch(Tokens.DOCUMENT_SYM);
token = tokenStream.token();
if (/^@\-([^\-]+)\-/.test(token.value)) {
prefix = RegExp.$1;
}
this._readWhitespace();
functions.push(this._document_function());
while(tokenStream.match(Tokens.COMMA)) {
this._readWhitespace();
functions.push(this._document_function());
}
tokenStream.mustMatch(Tokens.LBRACE);
this._readWhitespace();
this.fire({
type: "startdocument",
functions: functions,
prefix: prefix,
line: token.startLine,
col: token.startCol
});
while(true) {
if (tokenStream.peek() == Tokens.PAGE_SYM){
this._page();
} else if (tokenStream.peek() == Tokens.FONT_FACE_SYM){
this._font_face();
} else if (tokenStream.peek() == Tokens.VIEWPORT_SYM){
this._viewport();
} else if (tokenStream.peek() == Tokens.MEDIA_SYM){
this._media();
} else if (!this._ruleset()){
break;
}
}
tokenStream.mustMatch(Tokens.RBRACE);
this._readWhitespace();
this.fire({
type: "enddocument",
functions: functions,
prefix: prefix,
line: token.startLine,
col: token.startCol
});
},
_document_function: function(){
/*
* document_function
* : function | URI S*
* ;
*/
var tokenStream = this._tokenStream,
value;
if (tokenStream.match(Tokens.URI)) {
value = tokenStream.token().value;
this._readWhitespace();
} else {
value = this._function();
}
return value;
},
_operator: function(inFunction){ _operator: function(inFunction){
/* /*
@ -3545,6 +3649,7 @@ nth
['-'|'+']? INTEGER | {O}{D}{D} | {E}{V}{E}{N} ] S* ['-'|'+']? INTEGER | {O}{D}{D} | {E}{V}{E}{N} ] S*
; ;
*/ */
/*global Validation, ValidationTypes, ValidationError*/ /*global Validation, ValidationTypes, ValidationError*/
var Properties = { var Properties = {
@ -3556,7 +3661,7 @@ var Properties = {
"-webkit-align-content" : "flex-start | flex-end | center | space-between | space-around | stretch", "-webkit-align-content" : "flex-start | flex-end | center | space-between | space-around | stretch",
"-webkit-align-self" : "auto | flex-start | flex-end | center | baseline | stretch", "-webkit-align-self" : "auto | flex-start | flex-end | center | baseline | stretch",
"alignment-adjust" : "auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | <percentage> | <length>", "alignment-adjust" : "auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | <percentage> | <length>",
"alignment-baseline" : "baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical", "alignment-baseline" : "auto | baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical | inherit",
"animation" : 1, "animation" : 1,
"animation-delay" : { multi: "<time>", comma: true }, "animation-delay" : { multi: "<time>", comma: true },
"animation-direction" : { multi: "normal | alternate", comma: true }, "animation-direction" : { multi: "normal | alternate", comma: true },
@ -3640,7 +3745,7 @@ var Properties = {
"background-position" : { multi: "<bg-position>", comma: true }, "background-position" : { multi: "<bg-position>", comma: true },
"background-repeat" : { multi: "<repeat-style>" }, "background-repeat" : { multi: "<repeat-style>" },
"background-size" : { multi: "<bg-size>", comma: true }, "background-size" : { multi: "<bg-size>", comma: true },
"baseline-shift" : "baseline | sub | super | <percentage> | <length>", "baseline-shift" : "baseline | sub | super | <percentage> | <length> | inherit",
"behavior" : 1, "behavior" : 1,
"binding" : 1, "binding" : 1,
"bleed" : "<length>", "bleed" : "<length>",
@ -3761,6 +3866,7 @@ var Properties = {
"-moz-box-ordinal-group" : "<integer>", "-moz-box-ordinal-group" : "<integer>",
"-moz-box-orient" : "horizontal | vertical | inline-axis | block-axis | inherit", "-moz-box-orient" : "horizontal | vertical | inline-axis | block-axis | inherit",
"-moz-box-pack" : "start | end | center | justify", "-moz-box-pack" : "start | end | center | justify",
"-o-box-decoration-break" : "slice | clone",
"-webkit-box-align" : "start | end | center | baseline | stretch", "-webkit-box-align" : "start | end | center | baseline | stretch",
"-webkit-box-decoration-break" : "slice |clone", "-webkit-box-decoration-break" : "slice |clone",
"-webkit-box-direction" : "normal | reverse | inherit", "-webkit-box-direction" : "normal | reverse | inherit",
@ -3770,6 +3876,7 @@ var Properties = {
"-webkit-box-ordinal-group" : "<integer>", "-webkit-box-ordinal-group" : "<integer>",
"-webkit-box-orient" : "horizontal | vertical | inline-axis | block-axis | inherit", "-webkit-box-orient" : "horizontal | vertical | inline-axis | block-axis | inherit",
"-webkit-box-pack" : "start | end | center | justify", "-webkit-box-pack" : "start | end | center | justify",
"box-decoration-break" : "slice | clone",
"box-shadow" : function (expression) { "box-shadow" : function (expression) {
var result = false, var result = false,
part; part;
@ -3792,8 +3899,13 @@ var Properties = {
"caption-side" : "top | bottom | inherit", "caption-side" : "top | bottom | inherit",
"clear" : "none | right | left | both | inherit", "clear" : "none | right | left | both | inherit",
"clip" : 1, "clip" : 1,
"clip-path" : 1,
"clip-rule" : "nonzero | evenodd | inherit",
"color" : "<color> | inherit", "color" : "<color> | inherit",
"color-interpolation" : "auto | sRGB | linearRGB | inherit",
"color-interpolation-filters" : "auto | sRGB | linearRGB | inherit",
"color-profile" : 1, "color-profile" : 1,
"color-rendering" : "auto | optimizeSpeed | optimizeQuality | inherit",
"column-count" : "<integer> | auto", //http://www.w3.org/TR/css3-multicol/ "column-count" : "<integer> | auto", //http://www.w3.org/TR/css3-multicol/
"column-fill" : "auto | balance", "column-fill" : "auto | balance",
"column-gap" : "<length> | normal", "column-gap" : "<length> | normal",
@ -3815,8 +3927,8 @@ var Properties = {
//D //D
"direction" : "ltr | rtl | inherit", "direction" : "ltr | rtl | inherit",
"display" : "inline | block | list-item | inline-block | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | grid | inline-grid | none | inherit | -moz-box | -moz-inline-block | -moz-inline-box | -moz-inline-grid | -moz-inline-stack | -moz-inline-table | -moz-grid | -moz-grid-group | -moz-grid-line | -moz-groupbox | -moz-deck | -moz-popup | -moz-stack | -moz-marker | -webkit-box | -webkit-inline-box | -ms-flexbox | -ms-inline-flexbox | flex | -webkit-flex | inline-flex | -webkit-inline-flex", "display" : "inline | block | list-item | inline-block | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | grid | inline-grid | run-in | ruby | ruby-base | ruby-text | ruby-base-container | ruby-text-container | contents | none | inherit | -moz-box | -moz-inline-block | -moz-inline-box | -moz-inline-grid | -moz-inline-stack | -moz-inline-table | -moz-grid | -moz-grid-group | -moz-grid-line | -moz-groupbox | -moz-deck | -moz-popup | -moz-stack | -moz-marker | -webkit-box | -webkit-inline-box | -ms-flexbox | -ms-inline-flexbox | flex | -webkit-flex | inline-flex | -webkit-inline-flex",
"dominant-baseline" : 1, "dominant-baseline" : "auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge | inherit",
"drop-initial-after-adjust" : "central | middle | after-edge | text-after-edge | ideographic | alphabetic | mathematical | <percentage> | <length>", "drop-initial-after-adjust" : "central | middle | after-edge | text-after-edge | ideographic | alphabetic | mathematical | <percentage> | <length>",
"drop-initial-after-align" : "baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical", "drop-initial-after-align" : "baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical",
"drop-initial-before-adjust" : "before-edge | text-before-edge | central | middle | hanging | mathematical | <percentage> | <length>", "drop-initial-before-adjust" : "before-edge | text-before-edge | central | middle | hanging | mathematical | <percentage> | <length>",
@ -3827,8 +3939,12 @@ var Properties = {
//E //E
"elevation" : "<angle> | below | level | above | higher | lower | inherit", "elevation" : "<angle> | below | level | above | higher | lower | inherit",
"empty-cells" : "show | hide | inherit", "empty-cells" : "show | hide | inherit",
"enable-background" : 1,
//F //F
"fill" : 1,
"fill-opacity" : "<number> | inherit",
"fill-rule" : "nonzero | evenodd | inherit",
"filter" : 1, "filter" : 1,
"fit" : "fill | hidden | meet | slice", "fit" : "fill | hidden | meet | slice",
"fit-position" : 1, "fit-position" : 1,
@ -3854,29 +3970,51 @@ var Properties = {
"-ms-flex-wrap" : "nowrap | wrap | wrap-reverse", "-ms-flex-wrap" : "nowrap | wrap | wrap-reverse",
"float" : "left | right | none | inherit", "float" : "left | right | none | inherit",
"float-offset" : 1, "float-offset" : 1,
"flood-color" : 1,
"flood-opacity" : "<number> | inherit",
"font" : 1, "font" : 1,
"font-family" : 1, "font-family" : 1,
"font-feature-settings" : "<feature-tag-value> | normal | inherit",
"font-kerning" : "auto | normal | none | initial | inherit | unset",
"font-size" : "<absolute-size> | <relative-size> | <length> | <percentage> | inherit", "font-size" : "<absolute-size> | <relative-size> | <length> | <percentage> | inherit",
"font-size-adjust" : "<number> | none | inherit", "font-size-adjust" : "<number> | none | inherit",
"font-stretch" : "normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit", "font-stretch" : "normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit",
"font-style" : "normal | italic | oblique | inherit", "font-style" : "normal | italic | oblique | inherit",
"font-variant" : "normal | small-caps | inherit", "font-variant" : "normal | small-caps | inherit",
"font-variant-caps" : "normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps",
"font-variant-position" : "normal | sub | super | inherit | initial | unset",
"font-weight" : "normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit", "font-weight" : "normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit",
//G //G
"glyph-orientation-horizontal" : "<angle> | inherit",
"glyph-orientation-vertical" : "auto | <angle> | inherit",
"grid" : 1,
"grid-area" : 1,
"grid-auto-columns" : 1,
"grid-auto-flow" : 1,
"grid-auto-position" : 1,
"grid-auto-rows" : 1,
"grid-cell-stacking" : "columns | rows | layer", "grid-cell-stacking" : "columns | rows | layer",
"grid-column" : 1, "grid-column" : 1,
"grid-columns" : 1, "grid-columns" : 1,
"grid-column-align" : "start | end | center | stretch", "grid-column-align" : "start | end | center | stretch",
"grid-column-sizing" : 1, "grid-column-sizing" : 1,
"grid-column-start" : 1,
"grid-column-end" : 1,
"grid-column-span" : "<integer>", "grid-column-span" : "<integer>",
"grid-flow" : "none | rows | columns", "grid-flow" : "none | rows | columns",
"grid-layer" : "<integer>", "grid-layer" : "<integer>",
"grid-row" : 1, "grid-row" : 1,
"grid-rows" : 1, "grid-rows" : 1,
"grid-row-align" : "start | end | center | stretch", "grid-row-align" : "start | end | center | stretch",
"grid-row-start" : 1,
"grid-row-end" : 1,
"grid-row-span" : "<integer>", "grid-row-span" : "<integer>",
"grid-row-sizing" : 1, "grid-row-sizing" : 1,
"grid-template" : 1,
"grid-template-areas" : 1,
"grid-template-columns" : 1,
"grid-template-rows" : 1,
//H //H
"hanging-punctuation" : 1, "hanging-punctuation" : 1,
@ -3891,17 +4029,22 @@ var Properties = {
//I //I
"icon" : 1, "icon" : 1,
"image-orientation" : "angle | auto", "image-orientation" : "angle | auto",
"image-rendering" : 1, "image-rendering" : "auto | optimizeSpeed | optimizeQuality | inherit",
"image-resolution" : 1, "image-resolution" : 1,
"ime-mode" : "auto | normal | active | inactive | disabled | inherit",
"inline-box-align" : "initial | last | <integer>", "inline-box-align" : "initial | last | <integer>",
//J //J
"justify-content" : "flex-start | flex-end | center | space-between | space-around", "justify-content" : "flex-start | flex-end | center | space-between | space-around",
"-webkit-justify-content" : "flex-start | flex-end | center | space-between | space-around", "-webkit-justify-content" : "flex-start | flex-end | center | space-between | space-around",
//K
"kerning" : "auto | <length> | inherit",
//L //L
"left" : "<margin-width> | inherit", "left" : "<margin-width> | inherit",
"letter-spacing" : "<length> | normal | inherit", "letter-spacing" : "<length> | normal | inherit",
"lighting-color" : 1,
"line-height" : "<number> | <length> | <percentage> | normal | inherit", "line-height" : "<number> | <length> | <percentage> | normal | inherit",
"line-break" : "auto | loose | normal | strict", "line-break" : "auto | loose | normal | strict",
"line-stacking" : 1, "line-stacking" : 1,
@ -3922,11 +4065,16 @@ var Properties = {
"mark" : 1, "mark" : 1,
"mark-after" : 1, "mark-after" : 1,
"mark-before" : 1, "mark-before" : 1,
"marker" : 1,
"marker-end" : 1,
"marker-mid" : 1,
"marker-start" : 1,
"marks" : 1, "marks" : 1,
"marquee-direction" : 1, "marquee-direction" : 1,
"marquee-play-count" : 1, "marquee-play-count" : 1,
"marquee-speed" : 1, "marquee-speed" : 1,
"marquee-style" : 1, "marquee-style" : 1,
"mask" : 1,
"max-height" : "<length> | <percentage> | <content-sizing> | none | inherit", "max-height" : "<length> | <percentage> | <content-sizing> | none | inherit",
"max-width" : "<length> | <percentage> | <content-sizing> | none | inherit", "max-width" : "<length> | <percentage> | <content-sizing> | none | inherit",
"min-height" : "<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit", "min-height" : "<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit",
@ -3941,6 +4089,8 @@ var Properties = {
"nav-up" : 1, "nav-up" : 1,
//O //O
"object-fit" : "fill | contain | cover | none | scale-down",
"object-position" : "<bg-position>",
"opacity" : "<number> | inherit", "opacity" : "<number> | inherit",
"order" : "<integer>", "order" : "<integer>",
"-webkit-order" : "<integer>", "-webkit-order" : "<integer>",
@ -4000,6 +4150,7 @@ var Properties = {
"ruby-span" : 1, "ruby-span" : 1,
//S //S
"shape-rendering" : "auto | optimizeSpeed | crispEdges | geometricPrecision | inherit",
"size" : 1, "size" : 1,
"speak" : "normal | none | spell-out | inherit", "speak" : "normal | none | spell-out | inherit",
"speak-header" : "once | always | inherit", "speak-header" : "once | always | inherit",
@ -4007,17 +4158,29 @@ var Properties = {
"speak-punctuation" : "code | none | inherit", "speak-punctuation" : "code | none | inherit",
"speech-rate" : 1, "speech-rate" : 1,
"src" : 1, "src" : 1,
"stop-color" : 1,
"stop-opacity" : "<number> | inherit",
"stress" : 1, "stress" : 1,
"string-set" : 1, "string-set" : 1,
"stroke" : 1,
"stroke-dasharray" : 1,
"stroke-dashoffset" : "<percentage> | <length> | inherit",
"stroke-linecap" : "butt | round | square | inherit",
"stroke-linejoin" : "miter | round | bevel | inherit",
"stroke-miterlimit" : "<number> | inherit",
"stroke-opacity" : "<number> | inherit",
"stroke-width" : "<percentage> | <length> | inherit",
//T
"table-layout" : "auto | fixed | inherit", "table-layout" : "auto | fixed | inherit",
"tab-size" : "<integer> | <length>", "tab-size" : "<integer> | <length>",
"target" : 1, "target" : 1,
"target-name" : 1, "target-name" : 1,
"target-new" : 1, "target-new" : 1,
"target-position" : 1, "target-position" : 1,
"text-align" : "left | right | center | justify | inherit" , "text-align" : "left | right | center | justify | match-parent | start | end | inherit" ,
"text-align-last" : 1, "text-align-last" : 1,
"text-anchor" : "start | middle | end | inherit",
"text-decoration" : 1, "text-decoration" : 1,
"text-emphasis" : 1, "text-emphasis" : 1,
"text-height" : 1, "text-height" : 1,
@ -4047,7 +4210,7 @@ var Properties = {
"user-select" : "none | text | toggle | element | elements | all | inherit", "user-select" : "none | text | toggle | element | elements | all | inherit",
//V //V
"vertical-align" : "auto | use-script | baseline | sub | super | top | text-top | central | middle | bottom | text-bottom | <percentage> | <length>", "vertical-align" : "auto | use-script | baseline | sub | super | top | text-top | central | middle | bottom | text-bottom | <percentage> | <length> | inherit",
"visibility" : "visible | hidden | collapse | inherit", "visibility" : "visible | hidden | collapse | inherit",
"voice-balance" : 1, "voice-balance" : 1,
"voice-duration" : 1, "voice-duration" : 1,
@ -4064,6 +4227,7 @@ var Properties = {
"white-space-collapse" : 1, "white-space-collapse" : 1,
"widows" : "<integer> | inherit", "widows" : "<integer> | inherit",
"width" : "<length> | <percentage> | <content-sizing> | auto | inherit", "width" : "<length> | <percentage> | <content-sizing> | auto | inherit",
"will-change" : { multi: "<ident>", comma: true },
"word-break" : "normal | keep-all | break-all", "word-break" : "normal | keep-all | break-all",
"word-spacing" : "<length> | normal | inherit", "word-spacing" : "<length> | normal | inherit",
"word-wrap" : "normal | break-word", "word-wrap" : "normal | break-word",
@ -4073,6 +4237,7 @@ var Properties = {
"z-index" : "<integer> | auto | inherit", "z-index" : "<integer> | auto | inherit",
"zoom" : "<number> | <percentage> | normal" "zoom" : "<number> | <percentage> | normal"
}; };
/*global SyntaxUnit, Parser*/ /*global SyntaxUnit, Parser*/
/** /**
* Represents a selector combinator (whitespace, +, >). * Represents a selector combinator (whitespace, +, >).
@ -4103,6 +4268,7 @@ PropertyName.prototype.constructor = PropertyName;
PropertyName.prototype.toString = function(){ PropertyName.prototype.toString = function(){
return (this.hack ? this.hack : "") + this.text; return (this.hack ? this.hack : "") + this.text;
}; };
/*global SyntaxUnit, Parser*/ /*global SyntaxUnit, Parser*/
/** /**
* Represents a single part of a CSS property value, meaning that it represents * Represents a single part of a CSS property value, meaning that it represents
@ -4132,6 +4298,7 @@ function PropertyValue(parts, line, col){
PropertyValue.prototype = new SyntaxUnit(); PropertyValue.prototype = new SyntaxUnit();
PropertyValue.prototype.constructor = PropertyValue; PropertyValue.prototype.constructor = PropertyValue;
/*global SyntaxUnit, Parser*/ /*global SyntaxUnit, Parser*/
/** /**
* A utility class that allows for easy iteration over the various parts of a * A utility class that allows for easy iteration over the various parts of a
@ -4257,6 +4424,7 @@ PropertyValueIterator.prototype.restore = function(){
} }
}; };
/*global SyntaxUnit, Parser, Colors*/ /*global SyntaxUnit, Parser, Colors*/
/** /**
* Represents a single part of a CSS property value, meaning that it represents * Represents a single part of a CSS property value, meaning that it represents
@ -4431,6 +4599,7 @@ PropertyValuePart.prototype.constructor = PropertyValuePart;
PropertyValuePart.fromToken = function(token){ PropertyValuePart.fromToken = function(token){
return new PropertyValuePart(token.value, token.startLine, token.startCol); return new PropertyValuePart(token.value, token.startLine, token.startCol);
}; };
var Pseudos = { var Pseudos = {
":first-letter": 1, ":first-letter": 1,
":first-line": 1, ":first-line": 1,
@ -4479,6 +4648,7 @@ function Selector(parts, line, col){
Selector.prototype = new SyntaxUnit(); Selector.prototype = new SyntaxUnit();
Selector.prototype.constructor = Selector; Selector.prototype.constructor = Selector;
/*global SyntaxUnit, Parser*/ /*global SyntaxUnit, Parser*/
/** /**
* Represents a single part of a selector string, meaning a single set of * Represents a single part of a selector string, meaning a single set of
@ -4521,6 +4691,7 @@ function SelectorPart(elementName, modifiers, text, line, col){
SelectorPart.prototype = new SyntaxUnit(); SelectorPart.prototype = new SyntaxUnit();
SelectorPart.prototype.constructor = SelectorPart; SelectorPart.prototype.constructor = SelectorPart;
/*global SyntaxUnit, Parser*/ /*global SyntaxUnit, Parser*/
/** /**
* Represents a selector modifier string, meaning a class name, element name, * Represents a selector modifier string, meaning a class name, element name,
@ -4557,6 +4728,7 @@ function SelectorSubPart(text, type, line, col){
SelectorSubPart.prototype = new SyntaxUnit(); SelectorSubPart.prototype = new SyntaxUnit();
SelectorSubPart.prototype.constructor = SelectorSubPart; SelectorSubPart.prototype.constructor = SelectorSubPart;
/*global Pseudos, SelectorPart*/ /*global Pseudos, SelectorPart*/
/** /**
* Represents a selector's specificity. * Represents a selector's specificity.
@ -4680,6 +4852,7 @@ Specificity.calculate = function(selector){
return new Specificity(0, b, c, d); return new Specificity(0, b, c, d);
}; };
/*global Tokens, TokenStreamBase*/ /*global Tokens, TokenStreamBase*/
var h = /^[0-9a-fA-F]$/, var h = /^[0-9a-fA-F]$/,
@ -5192,17 +5365,18 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
identOrFunctionToken: function(first, startLine, startCol){ identOrFunctionToken: function(first, startLine, startCol){
var reader = this._reader, var reader = this._reader,
ident = this.readName(first), ident = this.readName(first),
tt = Tokens.IDENT; tt = Tokens.IDENT,
uriFns = ["url(", "url-prefix(", "domain("];
//if there's a left paren immediately after, it's a URI or function //if there's a left paren immediately after, it's a URI or function
if (reader.peek() == "("){ if (reader.peek() == "("){
ident += reader.read(); ident += reader.read();
if (ident.toLowerCase() == "url("){ if (uriFns.indexOf(ident.toLowerCase()) > -1){
tt = Tokens.URI; tt = Tokens.URI;
ident = this.readURI(ident); ident = this.readURI(ident);
//didn't find a valid URL or there's no closing paren //didn't find a valid URL or there's no closing paren
if (ident.toLowerCase() == "url("){ if (uriFns.indexOf(ident.toLowerCase()) > -1){
tt = Tokens.FUNCTION; tt = Tokens.FUNCTION;
} }
} else { } else {
@ -5684,6 +5858,7 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
} }
}); });
var Tokens = [ var Tokens = [
/* /*
@ -5717,7 +5892,8 @@ var Tokens = [
{ name: "FONT_FACE_SYM", text: "@font-face"}, { name: "FONT_FACE_SYM", text: "@font-face"},
{ name: "CHARSET_SYM", text: "@charset"}, { name: "CHARSET_SYM", text: "@charset"},
{ name: "NAMESPACE_SYM", text: "@namespace"}, { name: "NAMESPACE_SYM", text: "@namespace"},
{ name: "VIEWPORT_SYM", text: ["@viewport", "@-ms-viewport"]}, { name: "VIEWPORT_SYM", text: ["@viewport", "@-ms-viewport", "@-o-viewport"]},
{ name: "DOCUMENT_SYM", text: ["@document", "@-moz-document"]},
{ name: "UNKNOWN_SYM" }, { name: "UNKNOWN_SYM" },
//{ name: "ATKEYWORD"}, //{ name: "ATKEYWORD"},
@ -5895,6 +6071,7 @@ var Tokens = [
//This file will likely change a lot! Very experimental! //This file will likely change a lot! Very experimental!
/*global Properties, ValidationTypes, ValidationError, PropertyValueIterator */ /*global Properties, ValidationTypes, ValidationError, PropertyValueIterator */
var Validation = { var Validation = {
@ -6229,7 +6406,7 @@ var ValidationTypes = {
}, },
"<color>": function(part){ "<color>": function(part){
return part.type == "color" || part == "transparent"; return part.type == "color" || part == "transparent" || part == "currentColor";
}, },
"<number>": function(part){ "<number>": function(part){
@ -6310,6 +6487,10 @@ var ValidationTypes = {
"<flex-wrap>": function(part){ "<flex-wrap>": function(part){
return ValidationTypes.isLiteral(part, "nowrap | wrap | wrap-reverse"); return ValidationTypes.isLiteral(part, "nowrap | wrap | wrap-reverse");
},
"<feature-tag-value>": function(part){
return (part.type == "function" && /^[A-Z0-9]{4}$/i.test(part));
} }
}, },
@ -6528,6 +6709,8 @@ var ValidationTypes = {
} }
}; };
parserlib.css = { parserlib.css = {
Colors :Colors, Colors :Colors,
Combinator :Combinator, Combinator :Combinator,
@ -6547,12 +6730,16 @@ ValidationError :ValidationError
}; };
})(); })();
(function(){ (function(){
for(var prop in parserlib){ for(var prop in parserlib){
exports[prop] = parserlib[prop]; exports[prop] = parserlib[prop];
} }
})(); })();
var clone = (function() { var clone = (function() {
'use strict'; 'use strict';