Source code
Revision control
Copy as Markdown
Other Tools
/*
* Copyright 2008 The Closure Compiler Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @fileoverview Definitions for W3C's CSS specification
* The whole file has been fully type annotated.
* @externs
* @author stevey@google.com (Steve Yegge)
*
* TODO(nicksantos): When there are no more occurrences of w3c_range.js and
* gecko_dom.js being included directly in BUILD files, bug dbeam to split the
* bottom part of this file into a separate externs.
*/
/**
* @constructor
*/
function StyleSheet() {}
/**
* @type {string}
*/
StyleSheet.prototype.type;
/**
* @type {boolean}
*/
StyleSheet.prototype.disabled;
/**
* @type {Node}
*/
StyleSheet.prototype.ownerNode;
/**
* @type {StyleSheet}
* @see http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheet-parentStyleSheet
*/
StyleSheet.prototype.parentStyleSheet;
/**
* @type {string}
*/
StyleSheet.prototype.href;
/**
* @type {string}
*/
StyleSheet.prototype.title;
/**
* @type {MediaList}
*/
StyleSheet.prototype.media;
/**
* @constructor
*/
function StyleSheetList() {}
/**
* @type {number}
*/
StyleSheetList.prototype.length;
/**
* @param {number} index
* @return {StyleSheet}
*/
StyleSheetList.prototype.item = function(index) {};
/**
* @constructor
*/
function MediaList() {}
/**
* @type {string}
*/
MediaList.prototype.mediaText;
/**
* @type {number}
*/
MediaList.prototype.length;
/**
* @param {number} index
* @return {string}
*/
MediaList.prototype.item = function(index) {};
/**
* @interface
*/
function LinkStyle() {}
/**
* @type {StyleSheet}
*/
LinkStyle.prototype.sheet;
/**
* @constructor
*/
function DocumentStyle() {}
/**
* @type {StyleSheetList}
*/
DocumentStyle.prototype.styleSheets;
/**
* @constructor
* @extends {StyleSheet}
*/
function CSSStyleSheet() {}
/**
* @type {CSSRule}
*/
CSSStyleSheet.prototype.ownerRule;
/**
* @type {CSSRuleList}
*/
CSSStyleSheet.prototype.cssRules;
/**
* @param {string} rule
* @param {number} index
* @return {number}
*/
CSSStyleSheet.prototype.insertRule = function(rule, index) {};
/**
* @param {number} index
*/
CSSStyleSheet.prototype.deleteRule = function(index) {};
/**
* @constructor
*/
function CSSRuleList() {}
/**
* @type {number}
*/
CSSRuleList.prototype.length;
/**
* @param {number} index
* @return {CSSRule}
*/
CSSRuleList.prototype.item = function(index) {};
/**
* @constructor
*/
function CSSRule() {}
/**
* @type {number}
*/
CSSRule.prototype.type;
/**
* @type {string}
*/
CSSRule.prototype.cssText;
/**
* @type {CSSStyleSheet}
*/
CSSRule.prototype.parentStyleSheet;
/**
* @type {CSSRule}
*/
CSSRule.prototype.parentRule;
/**
* @type {CSSStyleDeclaration}
*/
CSSRule.prototype.style;
/**
* Indicates that the rule is a {@see CSSUnknownRule}.
* @type {number}
*/
CSSRule.UNKNOWN_RULE = 0;
/**
* Indicates that the rule is a {@see CSSStyleRule}.
* @type {number}
*/
CSSRule.STYLE_RULE = 1;
/**
* Indicates that the rule is a {@see CSSCharsetRule}.
* @type {number}
*/
CSSRule.CHARSET_RULE = 2;
/**
* Indicates that the rule is a {@see CSSImportRule}.
* @type {number}
*/
CSSRule.IMPORT_RULE = 3;
/**
* Indicates that the rule is a {@see CSSMediaRule}.
* @type {number}
*/
CSSRule.MEDIA_RULE = 4;
/**
* Indicates that the rule is a {@see CSSFontFaceRule}.
* @type {number}
*/
CSSRule.FONT_FACE_RULE = 5;
/**
* Indicates that the rule is a {@see CSSPageRule}.
* @type {number}
*/
CSSRule.PAGE_RULE = 6;
/**
* @constructor
* @extends {CSSRule}
*/
function CSSStyleRule() {}
/**
* @type {string}
*/
CSSStyleRule.prototype.selectorText;
/**
* @type {CSSStyleDeclaration}
*/
CSSStyleRule.prototype.style;
/**
* @constructor
* @extends {CSSRule}
*/
function CSSMediaRule() {}
/**
* @type {MediaList}
*/
CSSMediaRule.prototype.media;
/**
* @type {CSSRuleList}
*/
CSSMediaRule.prototype.cssRules;
/**
* @param {string} rule
* @param {number} index
* @return {number}
*/
CSSMediaRule.prototype.insertRule = function(rule, index) {};
/**
* @param {number} index
*/
CSSMediaRule.prototype.deleteRule = function(index) {};
/**
* @constructor
* @extends {CSSRule}
*/
function CSSFontFaceRule() {}
/**
* @type {CSSStyleDeclaration}
*/
CSSFontFaceRule.prototype.style;
/**
* @constructor
* @extends {CSSRule}
*/
function CSSPageRule() {}
/**
* @type {string}
*/
CSSPageRule.prototype.selectorText;
/**
* @type {CSSStyleDeclaration}
*/
CSSPageRule.prototype.style;
/**
* @constructor
* @extends {CSSRule}
*/
function CSSImportRule() {}
/**
* @type {string}
*/
CSSImportRule.prototype.href;
/**
* @type {MediaList}
*/
CSSImportRule.prototype.media;
/**
* @type {CSSStyleSheet}
*/
CSSImportRule.prototype.styleSheet;
/**
* @constructor
* @extends {CSSRule}
*/
function CSSCharsetRule() {}
/**
* @type {string}
*/
CSSCharsetRule.prototype.encoding;
/**
* @constructor
* @extends {CSSRule}
*/
function CSSUnknownRule() {}
/**
* @constructor
* @extends {CSSProperties}
*/
function CSSStyleDeclaration() {}
/**
* @type {string}
*/
CSSStyleDeclaration.prototype.cssText;
/**
* @type {number}
*/
CSSStyleDeclaration.prototype.length;
/**
* @type {CSSRule}
*/
CSSStyleDeclaration.prototype.parentRule;
/**
* @param {string} propertyName
* @return {CSSValue}
*/
CSSStyleDeclaration.prototype.getPropertyCSSValue = function(propertyName) {};
/**
* @param {string} propertyName
* @return {string}
*/
CSSStyleDeclaration.prototype.getPropertyPriority = function(propertyName) {};
/**
* @param {string} propertyName
* @return {string}
*/
CSSStyleDeclaration.prototype.getPropertyValue = function(propertyName) {};
/**
* @param {number} index
* @return {string}
*/
CSSStyleDeclaration.prototype.item = function(index) {};
/**
* @param {string} propertyName
* @return {string}
*/
CSSStyleDeclaration.prototype.removeProperty = function(propertyName) {};
/**
* @param {string} propertyName
* @param {string} value
* @param {string=} opt_priority
* @return {undefined}
*/
CSSStyleDeclaration.prototype.setProperty = function(propertyName, value, opt_priority) {};
// IE-specific
/**
* @param {string} name
* @param {number=} opt_flags
* @return {string|number|boolean|null}
*/
CSSStyleDeclaration.prototype.getAttribute = function(name, opt_flags) {};
/**
* @param {string} name
* @return {string|number|boolean|null}
*/
CSSStyleDeclaration.prototype.getExpression = function(name) {};
/**
* @param {string} name
* @param {number=} opt_flags
* @return {boolean}
*/
CSSStyleDeclaration.prototype.removeAttribute =
function(name, opt_flags) {};
/**
* @param {string} name
* @return {boolean}
*/
CSSStyleDeclaration.prototype.removeExpression = function(name) {};
/**
* @param {string} name
* @param {*} value
* @param {number=} opt_flags
*/
CSSStyleDeclaration.prototype.setAttribute = function(name, value, opt_flags) {};
/**
* @param {string} name
* @param {string} expr
* @param {string=} opt_language
* @return {undefined}
*/
CSSStyleDeclaration.prototype.setExpression =
function(name, expr, opt_language) {};
/**
* @constructor
*/
function CSSValue() {}
/**
* @type {string}
*/
CSSValue.prototype.cssText;
/**
* @type {number}
*/
CSSValue.prototype.cssValueType;
/**
* @type {number}
*/
CSSValue.CSS_INHERIT = 0;
/**
* @type {number}
*/
CSSValue.CSS_PRIMITIVE_VALUE = 1;
/**
* @type {number}
*/
CSSValue.CSS_VALUE_LIST = 2;
/**
* @type {number}
*/
CSSValue.CSS_CUSTOM = 3;
/**
* @constructor
* @extends {CSSValue}
*/
function CSSPrimitiveValue() {}
/**
* @type {number}
*/
CSSPrimitiveValue.prototype.primitiveType;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_UNKNOWN = 0;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_NUMBER = 1;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_PERCENTAGE = 2;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_EMS = 3;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_EXS = 4;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_PX = 5;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_CM = 6;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_MM = 7;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_IN = 8;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_PT = 9;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_PC = 10;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_DEG = 11;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_RAD = 12;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_GRAD = 13;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_MS = 14;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_S = 15;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_HZ = 16;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_KHZ = 17;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_DIMENSION = 18;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_STRING = 19;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_URI = 20;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_IDENT = 21;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_ATTR = 22;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_COUNTER = 23;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_RECT = 24;
/**
* @type {number}
*/
CSSPrimitiveValue.CSS_RGBCOLOR = 25;
/**
* @return {Counter}
* @throws DOMException {@see DomException.INVALID_ACCESS_ERR}
*/
CSSPrimitiveValue.prototype.getCounterValue = function() {};
/**
* @param {number} unitType
* @return {number}
* @throws DOMException {@see DomException.INVALID_ACCESS_ERR}
*/
CSSPrimitiveValue.prototype.getFloatValue = function(unitType) {};
/**
* @return {RGBColor}
* @throws DOMException {@see DomException.INVALID_ACCESS_ERR}
*/
CSSPrimitiveValue.prototype.getRGBColorValue = function() {};
/**
* @return {Rect}
* @throws DOMException {@see DomException.INVALID_ACCESS_ERR}
*/
CSSPrimitiveValue.prototype.getRectValue = function() {};
/**
* @return {string}
* @throws DOMException {@see DomException.INVALID_ACCESS_ERR}
*/
CSSPrimitiveValue.prototype.getStringValue = function() {};
/**
* @param {number} unitType
* @param {number} floatValue
* @return {undefined}
* @throws DOMException {@see DomException.INVALID_ACCESS_ERR},
* {@see DomException.NO_MODIFICATION_ALLOWED_ERR}
*/
CSSPrimitiveValue.prototype.setFloatValue = function(unitType, floatValue) {};
/**
* @param {number} stringType
* @param {string} stringValue
* @return {undefined}
* @throws DOMException {@see DomException.INVALID_ACCESS_ERR},
* {@see DomException.NO_MODIFICATION_ALLOWED_ERR}
*/
CSSPrimitiveValue.prototype.setStringValue = function(stringType, stringValue) {};
/**
* @constructor
* @extends {CSSValue}
*/
function CSSValueList() {}
/**
* @type {number}
*/
CSSValueList.prototype.length;
/**
* @param {number} index
* @return {CSSValue}
*/
CSSValueList.prototype.item = function(index) {};
/**
* @constructor
*/
function RGBColor() {}
/**
* @type {CSSPrimitiveValue}
*/
RGBColor.prototype.red;
/**
* @type {CSSPrimitiveValue}
*/
RGBColor.prototype.green;
/**
* @type {CSSPrimitiveValue}
*/
RGBColor.prototype.blue;
/**
* @constructor
*/
function Rect() {}
/**
* @type {CSSPrimitiveValue}
*/
Rect.prototype.top;
/**
* @type {CSSPrimitiveValue}
*/
Rect.prototype.right;
/**
* @type {CSSPrimitiveValue}
*/
Rect.prototype.bottom;
/**
* @type {CSSPrimitiveValue}
*/
Rect.prototype.left;
/**
* @constructor
*/
function Counter() {}
/**
* @type {string}
*/
Counter.prototype.identifier;
/**
* @type {string}
*/
Counter.prototype.listStyle;
/**
* @type {string}
*/
Counter.prototype.separator;
/**
* @constructor
*/
function ViewCSS() {}
/**
* @param {Element} elt
* @param {?string=} opt_pseudoElt This argument is required according to the
* CSS2 specification, but optional in all major browsers. See the note at
* @return {CSSStyleDeclaration}
*/
ViewCSS.prototype.getComputedStyle = function(elt, opt_pseudoElt) {};
/**
* @constructor
*/
function DocumentCSS() {}
/**
* @param {Element} elt
* @param {string} pseudoElt
* @return {CSSStyleDeclaration}
*/
DocumentCSS.prototype.getOverrideStyle = function(elt, pseudoElt) {};
/**
* @constructor
*/
function DOMImplementationCSS() {}
/**
* @param {string} title
* @param {string} media
* @return {CSSStyleSheet}
* @throws DOMException {@see DomException.SYNTAX_ERR}
*/
DOMImplementationCSS.prototype.createCSSStyleSheet = function(title, media) {};
/**
* @constructor
*/
function ElementCSSInlineStyle() {}
/**
* @type {CSSStyleDeclaration}
*/
ElementCSSInlineStyle.prototype.style;
/**
* @constructor
*/
function CSSProperties() {}
// CSS 2 properties
/**
* @type {string}
*/
CSSProperties.prototype.azimuth;
/**
* @type {string}
*/
CSSProperties.prototype.background;
/**
* @type {string}
*/
CSSProperties.prototype.backgroundAttachment;
/**
* @type {string}
*/
CSSProperties.prototype.backgroundColor;
/**
* @type {string}
*/
CSSProperties.prototype.backgroundImage;
/**
* @type {string}
*/
CSSProperties.prototype.backgroundPosition;
/**
* @type {string}
*/
CSSProperties.prototype.backgroundRepeat;
/**
* @type {string}
*/
CSSProperties.prototype.backgroundSize;
/**
* @implicitCast
* @type {string}
*/
CSSProperties.prototype.border;
/**
* @type {string}
*/
CSSProperties.prototype.borderCollapse;
/**
* @type {string}
*/
CSSProperties.prototype.borderColor;
/**
* @type {string}
*/
CSSProperties.prototype.borderSpacing;
/**
* @type {string}
*/
CSSProperties.prototype.borderStyle;
/**
* @type {string}
*/
CSSProperties.prototype.borderTop;
/**
* @type {string}
*/
CSSProperties.prototype.borderRight;
/**
* @type {string}
*/
CSSProperties.prototype.borderBottom;
/**
* @type {string}
*/
CSSProperties.prototype.borderLeft;
/**
* @type {string}
*/
CSSProperties.prototype.borderTopColor;
/**
* @type {string}
*/
CSSProperties.prototype.borderRightColor;
/**
* @type {string}
*/
CSSProperties.prototype.borderBottomColor;
/**
* @type {string}
*/
CSSProperties.prototype.borderLeftColor;
/**
* @type {string}
*/
CSSProperties.prototype.borderTopStyle;
/**
* @type {string}
*/
CSSProperties.prototype.borderRightStyle;
/**
* @type {string}
*/
CSSProperties.prototype.borderBottomStyle;
/**
* @type {string}
*/
CSSProperties.prototype.borderLeftStyle;
/**
* @type {string|number}
*/
CSSProperties.prototype.borderTopWidth;
/**
* @type {string|number}
*/
CSSProperties.prototype.borderRightWidth;
/**
* @type {string|number}
*/
CSSProperties.prototype.borderBottomWidth;
/**
* @type {string|number}
*/
CSSProperties.prototype.borderLeftWidth;
/**
* @type {string|number}
*/
CSSProperties.prototype.borderWidth;
/**
* @type {string|number}
*/
CSSProperties.prototype.borderRadius;
/**
* @type {string|number}
*/
CSSProperties.prototype.borderBottomLeftRadius;
/**
* @type {string|number}
*/
CSSProperties.prototype.borderBottomRightRadius;
/**
* @type {string|number}
*/
CSSProperties.prototype.borderTopLeftRadius;
/**
* @type {string|number}
*/
CSSProperties.prototype.borderTopRightRadius;
/**
* @type {string|number}
*/
CSSProperties.prototype.bottom;
/**
* @type {string}
*/
CSSProperties.prototype.captionSide;
/**
* @type {string}
*/
CSSProperties.prototype.clear;
/**
* @type {string}
*/
CSSProperties.prototype.clip;
/**
* @type {string}
*/
CSSProperties.prototype.color;
/**
* @type {string}
*/
CSSProperties.prototype.content;
/**
* @type {string}
*/
CSSProperties.prototype.counterIncrement;
/**
* @type {string}
*/
CSSProperties.prototype.counterReset;
/**
* This is not an official part of the W3C spec. In practice, this is a settable
* property that works cross-browser. It is used in goog.dom.setProperties() and
* needs to be extern'd so the --disambiguate_properties JS compiler pass works.
* @type {string}
*/
CSSProperties.prototype.cssText;
/**
* @type {string}
*/
CSSProperties.prototype.cue;
/**
* @type {string}
*/
CSSProperties.prototype.cueAfter;
/**
* @type {string}
*/
CSSProperties.prototype.cueBefore;
/**
* @type {string}
*/
CSSProperties.prototype.cursor;
/**
* @type {string}
*/
CSSProperties.prototype.direction;
/**
* @type {string}
*/
CSSProperties.prototype.display;
/**
* @type {string}
*/
CSSProperties.prototype.elevation;
/**
* @type {string}
*/
CSSProperties.prototype.emptyCells;
/**
* @type {string}
*/
CSSProperties.prototype.cssFloat;
/**
* @type {string}
*/
CSSProperties.prototype.font;
/**
* @type {string}
*/
CSSProperties.prototype.fontFamily;
/**
* @type {string|number}
*/
CSSProperties.prototype.fontSize;
/**
* @type {string}
*/
CSSProperties.prototype.fontSizeAdjust;
/**
* @type {string}
*/
CSSProperties.prototype.fontStretch;
/**
* @type {string}
*/
CSSProperties.prototype.fontStyle;
/**
* @type {string}
*/
CSSProperties.prototype.fontVariant;
/**
* @type {string}
*/
CSSProperties.prototype.fontWeight;
/**
* @type {string|number}
*/
CSSProperties.prototype.height;
/**
* @type {string|number}
*/
CSSProperties.prototype.left;
/**
* @type {string}
*/
CSSProperties.prototype.letterSpacing;
/**
* @type {string|number}
*/
CSSProperties.prototype.lineHeight;
/**
* @type {string}
*/
CSSProperties.prototype.listStyle;
/**
* @type {string}
*/
CSSProperties.prototype.listStyleImage;
/**
* @type {string}
*/
CSSProperties.prototype.listStylePosition;
/**
* @type {string}
*/
CSSProperties.prototype.listStyleType;
/**
* @type {string|number}
*/
CSSProperties.prototype.margin;
/**
* @type {string|number}
*/
CSSProperties.prototype.marginTop;
/**
* @type {string|number}
*/
CSSProperties.prototype.marginRight;
/**
* @type {string|number}
*/
CSSProperties.prototype.marginBottom;
/**
* @type {string|number}
*/
CSSProperties.prototype.marginLeft;
/**
* @type {string}
*/
CSSProperties.prototype.markerOffset;
/**
* @type {string}
*/
CSSProperties.prototype.marks;
/**
* @type {string|number}
*/
CSSProperties.prototype.maxHeight;
/**
* @type {string|number}
*/
CSSProperties.prototype.maxWidth;
/**
* @type {string|number}
*/
CSSProperties.prototype.minHeight;
/**
* @type {string|number}
*/
CSSProperties.prototype.minWidth;
/**
* @type {string}
*/
CSSProperties.prototype.orphans;
/**
* @type {string}
*/
CSSProperties.prototype.outline;
/**
* @type {string}
*/
CSSProperties.prototype.outlineColor;
/**
* @type {string}
*/
CSSProperties.prototype.outlineStyle;
/**
* @type {string|number}
*/
CSSProperties.prototype.outlineWidth;
/**
* @type {string}
*/
CSSProperties.prototype.overflow;
/**
* @type {string|number}
*/
CSSProperties.prototype.padding;
/**
* @type {string|number}
*/
CSSProperties.prototype.paddingTop;
/**
* @type {string|number}
*/
CSSProperties.prototype.paddingRight;
/**
* @type {string|number}
*/
CSSProperties.prototype.paddingBottom;
/**
* @type {string|number}
*/
CSSProperties.prototype.paddingLeft;
/**
* @type {string}
*/
CSSProperties.prototype.page;
/**
* @type {string}
*/
CSSProperties.prototype.pageBreakAfter;
/**
* @type {string}
*/
CSSProperties.prototype.pageBreakBefore;
/**
* @type {string}
*/
CSSProperties.prototype.pageBreakInside;
/**
* @type {string}
*/
CSSProperties.prototype.pause;
/**
* @type {string}
*/
CSSProperties.prototype.pauseAfter;
/**
* @type {string}
*/
CSSProperties.prototype.pauseBefore;
/**
* @type {string}
*/
CSSProperties.prototype.pitch;
/**
* @type {string}
*/
CSSProperties.prototype.pitchRange;
/**
* @type {string}
*/
CSSProperties.prototype.playDuring;
/**
* @type {string}
*/
CSSProperties.prototype.position;
/**
* @type {string}
*/
CSSProperties.prototype.quotes;
/**
* @type {string}
*/
CSSProperties.prototype.resize;
/**
* @type {string}
*/
CSSProperties.prototype.richness;
/**
* @type {string|number}
*/
CSSProperties.prototype.right;
/**
* @type {string}
*/
CSSProperties.prototype.size;
/**
* @type {string}
*/
CSSProperties.prototype.speak;
/**
* @type {string}
*/
CSSProperties.prototype.speakHeader;
/**
* @type {string}
*/
CSSProperties.prototype.speakNumeral;
/**
* @type {string}
*/
CSSProperties.prototype.speakPunctuation;
/**
* @type {string}
*/
CSSProperties.prototype.speechRate;
/**
* @type {string}
*/
CSSProperties.prototype.stress;
/**
* @type {string}
*/
CSSProperties.prototype.tableLayout;
/**
* @type {string}
*/
CSSProperties.prototype.textAlign;
/**
* @type {string}
*/
CSSProperties.prototype.textDecoration;
/**
* @type {string}
*/
CSSProperties.prototype.textIndent;
/**
* @type {string}
*/
CSSProperties.prototype.textShadow;
/**
* @type {string}
*/
CSSProperties.prototype.textTransform;
/**
* @type {string|number}
*/
CSSProperties.prototype.top;
/**
* @type {string}
*/
CSSProperties.prototype.unicodeBidi;
/**
* @type {string}
*/
CSSProperties.prototype.verticalAlign;
/**
* @type {string}
*/
CSSProperties.prototype.visibility;
/**
* @type {string}
*/
CSSProperties.prototype.voiceFamily;
/**
* @type {string}
*/
CSSProperties.prototype.volume;
/**
* @type {string}
*/
CSSProperties.prototype.whiteSpace;
/**
* @type {string}
*/
CSSProperties.prototype.widows;
/**
* @type {string|number}
*/
CSSProperties.prototype.width;
/**
* @type {string}
*/
CSSProperties.prototype.wordSpacing;
/**
* @type {string}
*/
CSSProperties.prototype.wordWrap;
/**
* @type {string|number}
*/
CSSProperties.prototype.zIndex;
// CSS 3 properties
/**
* @type {string}
*/
CSSProperties.prototype.boxShadow;
/**
* @type {string}
*/
CSSProperties.prototype.boxSizing;
/**
* @type {string|number}
*/
CSSProperties.prototype.opacity;
/**
* @type {string}
*/
CSSProperties.prototype.textOverflow;
// CSS 3 transforms
/**
* @type {string}
*/
CSSProperties.prototype.backfaceVisibility;
/**
* @type {string}
*/
CSSProperties.prototype.perspective;
/**
* @type {string|number}
*/
CSSProperties.prototype.perspectiveOrigin;
/**
* @type {string}
*/
CSSProperties.prototype.transform;
/**
* @type {string|number}
*/
CSSProperties.prototype.transformOrigin;
/**
* @type {string}
*/
CSSProperties.prototype.transformStyle;
// CSS 3 transitions
/**
* @type {string}
*/
CSSProperties.prototype.transition;
/**
* @type {string}
*/
CSSProperties.prototype.transitionDelay;
/**
* @type {string}
*/
CSSProperties.prototype.transitionDuration;
/**
* @type {string}
*/
CSSProperties.prototype.transitionProperty;
/**
* @type {string}
*/
CSSProperties.prototype.transitionTimingFunction;
/**
* @type {string}
*/
CSSProperties.prototype.pointerEvents;
/**
* TODO(dbeam): Put this in separate file named w3c_cssom.js.
* Externs for the CSSOM View Module.
*/
/**
* @param {string} media_query_list
* @return {MediaQueryList}
*/
Window.prototype.matchMedia = function(media_query_list) {};
/**
* @type {number}
*/
Window.prototype.innerWidth;
/**
* @type {number}
*/
Window.prototype.innerHeight;
/**
* @type {number}
*/
Window.prototype.scrollX;
/**
* @type {number}
*/
Window.prototype.pageXOffset;
/**
* @type {number}
*/
Window.prototype.scrollY;
/**
* @type {number}
*/
Window.prototype.pageYOffset;
/**
* @param {number} x
* @param {number} y
*/
Window.prototype.scroll = function(x, y) {};
/**
* @param {number} x
* @param {number} y
*/
Window.prototype.scrollTo = function(x, y) {};
/**
* @param {number} x
* @param {number} y
*/
Window.prototype.scrollBy = function(x, y) {};
/**
* @type {number}
*/
Window.prototype.screenX;
/**
* @type {number}
*/
Window.prototype.screenY;
/**
* @type {number}
*/
Window.prototype.outerWidth;
/**
* @type {number}
*/
Window.prototype.outerHeight;
/**
* @constructor
*/
function MediaQueryList() {}
/**
* @type {string}
*/
MediaQueryList.prototype.media;
/**
* @type {boolean}
*/
MediaQueryList.prototype.matches;
/**
* @param {MediaQueryListListener} listener
*/
MediaQueryList.prototype.addListener = function(listener) {};
/**
* @param {MediaQueryListListener} listener
*/
MediaQueryList.prototype.removeListener = function(listener) {};
/**
* @typedef {(function(!MediaQueryList) : void)}
*/
var MediaQueryListListener;
/**
* @constructor
*/
function Screen() {}
/**
* @type {number}
*/
Screen.prototype.availWidth;
/**
* @type {number}
*/
Screen.prototype.availHeight;
/**
* @type {number}
*/
Screen.prototype.width;
/**
* @type {number}
*/
Screen.prototype.height;
/**
* @type {number}
*/
Screen.prototype.colorDepth;
/**
* @type {number}
*/
Screen.prototype.pixelDepth;
/**
* @param {number} x
* @param {number} y
* @return {?Element}
*/
Document.prototype.elementFromPoint = function(x, y) {};
/**
* @param {number} x
* @param {number} y
* @return {CaretPosition}
*/
Document.prototype.caretPositionFromPoint = function(x, y) {};
/**
* @constructor
*/
function CaretPosition() {}
/**
* @type {Node}
*/
CaretPosition.prototype.offsetNode;
/**
* @type {number}
*/
CaretPosition.prototype.offset;
/**
* @return {!ClientRectList}
*/
Element.prototype.getClientRects = function() {};
/**
* @return {!ClientRect}
*/
Element.prototype.getBoundingClientRect = function() {};
/**
* @param {boolean=} opt_top
*/
Element.prototype.scrollIntoView = function(opt_top) {};
/**
* @type {number}
*/
Element.prototype.scrollTop;
/**
* @type {number}
*/
Element.prototype.scrollLeft;
/**
* @type {number}
*/
Element.prototype.scrollWidth;
/**
* @type {number}
*/
Element.prototype.scrollHeight;
/**
* @type {number}
*/
Element.prototype.clientTop;
/**
* @type {number}
*/
Element.prototype.clientLeft;
/**
* @type {number}
*/
Element.prototype.clientWidth;
/**
* @type {number}
*/
Element.prototype.clientHeight;
/**
* @type {Element}
*/
HTMLElement.prototype.offsetParent;
/**
* @type {number}
*/
HTMLElement.prototype.offsetTop;
/**
* @type {number}
*/
HTMLElement.prototype.offsetLeft;
/**
* @type {number}
*/
HTMLElement.prototype.offsetWidth;
/**
* @type {number}
*/
HTMLElement.prototype.offsetHeight;
/**
* @return {!ClientRectList}
*/
Range.prototype.getClientRects = function() {};
/**
* @return {!ClientRect}
*/
Range.prototype.getBoundingClientRect = function() {};
// MouseEvent: screen{X,Y} and client{X,Y} are in DOM Level 2/3 Event as well,
// so it seems like a specification issue. I've emailed www-style@w3.org in
// hopes of resolving the conflict, but in the mean time they can live here
/**
* @type {number}
*/
//MouseEvent.prototype.screenX;
/**
* @type {number}
*/
//MouseEvent.prototype.screenY;
/**
* @type {number}
*/
MouseEvent.prototype.pageX;
/**
* @type {number}
*/
MouseEvent.prototype.pageY;
/**
* @type {number}
*/
//MouseEvent.prototype.clientX;
/**
* @type {number}
*/
//MouseEvent.prototype.clientY;
/**
* @type {number}
*/
MouseEvent.prototype.x;
/**
* @type {number}
*/
MouseEvent.prototype.y;
/**
* @type {number}
*/
MouseEvent.prototype.offsetX;
/**
* @type {number}
*/
MouseEvent.prototype.offsetY;
/**
* @constructor
*/
function ClientRectList() {}
/**
* @type {number}
*/
ClientRectList.prototype.length;
/**
* @param {number} index
* @return {ClientRect}
*/
ClientRectList.prototype.item = function(index) {};
/**
* @constructor
*/
function ClientRect() {}
/**
* @type {number}
*/
ClientRect.prototype.top;
/**
* @type {number}
*/
ClientRect.prototype.right;
/**
* @type {number}
*/
ClientRect.prototype.bottom;
/**
* @type {number}
*/
ClientRect.prototype.left;
/**
* @type {number}
*/
ClientRect.prototype.width;
/**
* @type {number}
*/
ClientRect.prototype.height;
/**
* @constructor
*/
function CSSInterface() {}
/**
* @param {string} property
* @param {string=} opt_value
* @return {boolean}
*/
CSSInterface.prototype.supports = function(property, opt_value) {};
/**
* TODO(nicksantos): This suppress tag probably isn't needed, and
* should be removed.
* @suppress {duplicate}
* @type {CSSInterface}
*/
var CSS;
/** @type {CSSInterface} */
Window.prototype.CSS;
/**
* @enum {string}
*/
var FontFaceLoadStatus = {
ERROR: 'error',
LOADED: 'loaded',
LOADING: 'loading',
UNLOADED: 'unloaded'
};
/**
* @typedef {{
* style: (string|undefined),
* weight: (string|undefined),
* stretch: (string|undefined),
* unicodeRange: (string|undefined),
* variant: (string|undefined),
* featureSettings: (string|undefined)
* }}
*/
var FontFaceDescriptors;
/**
* @constructor
* @param {string} fontFamily
* @param {string} source
* @param {!FontFaceDescriptors} descriptors
*/
function FontFace(fontFamily, source, descriptors) {}
/**
* @type {string}
*/
FontFace.prototype.family;
/**
* @type {string}
*/
FontFace.prototype.style;
/**
* @type {string}
*/
FontFace.prototype.weight;
/**
* @type {string}
*/
FontFace.prototype.stretch;
/**
* @type {string}
*/
FontFace.prototype.unicodeRange;
/**
* @type {string}
*/
FontFace.prototype.variant;
/**
* @type {string}
*/
FontFace.prototype.featureSettings;
/**
* @type {FontFaceLoadStatus}
*/
FontFace.prototype.status;
/**
* @return {!Promise.<!FontFace>}
*/
FontFace.prototype.load = function() {};
/**
* @enum
*/
var FontFaceSetLoadStatus = {
LOADED: 'loaded',
LOADING: 'loading'
};
/**
* @interface
*/
function FontFaceSet() {}
// Event handlers
/** @type {?function (Event)} */ FontFaceSet.prototype.onloading;
/** @type {?function (Event)} */ FontFaceSet.prototype.onloadingdone;
/** @type {?function (Event)} */ FontFaceSet.prototype.onloadingerror;
/**
* @param {!FontFace} value
*/
FontFaceSet.prototype.add = function(value) {};
/**
*/
FontFaceSet.prototype.clear = function() {};
/**
* @param {!FontFace} value
*/
FontFaceSet.prototype.delete = function(value) {};
/**
* @param {!FontFace} font
* @return {boolean}
*/
FontFaceSet.prototype.has = function(font) {};
/**
* @param {function(!FontFace, number, !FontFaceSet)} cb
* @param {Object|undefined=} opt_selfObj
*/
FontFaceSet.prototype.forEach = function(cb, opt_selfObj) {};
/**
* @param {string} font
* @param {string=} opt_text
* @return {!Promise.<!Array.<!FontFace>>}
*/
FontFaceSet.prototype.load = function(font, opt_text) {};
/**
* @param {string} font
* @param {string=} opt_text
* @return {boolean}
*/
FontFaceSet.prototype.check = function(font, opt_text) {};
/**
* @type {!Promise.<!FontFaceSet>}
*/
FontFaceSet.prototype.ready;
/**
* @type {FontFaceSetLoadStatus}
*/
FontFaceSet.prototype.status;