react / wstein / node_modules / jest-cli / node_modules / jsdom / node_modules / cssom / lib / CSSImportRule.js
81143 views//.CommonJS1var CSSOM = {2CSSRule: require("./CSSRule").CSSRule,3CSSStyleSheet: require("./CSSStyleSheet").CSSStyleSheet,4MediaList: require("./MediaList").MediaList5};6///CommonJS789/**10* @constructor11* @see http://dev.w3.org/csswg/cssom/#cssimportrule12* @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSImportRule13*/14CSSOM.CSSImportRule = function CSSImportRule() {15CSSOM.CSSRule.call(this);16this.href = "";17this.media = new CSSOM.MediaList;18this.styleSheet = new CSSOM.CSSStyleSheet;19};2021CSSOM.CSSImportRule.prototype = new CSSOM.CSSRule;22CSSOM.CSSImportRule.prototype.constructor = CSSOM.CSSImportRule;23CSSOM.CSSImportRule.prototype.type = 3;2425Object.defineProperty(CSSOM.CSSImportRule.prototype, "cssText", {26get: function() {27var mediaText = this.media.mediaText;28return "@import url(" + this.href + ")" + (mediaText ? " " + mediaText : "") + ";";29},30set: function(cssText) {31var i = 0;3233/**34* @import url(partial.css) screen, handheld;35* || |36* after-import media37* |38* url39*/40var state = '';4142var buffer = '';43var index;44var mediaText = '';45for (var character; character = cssText.charAt(i); i++) {4647switch (character) {48case ' ':49case '\t':50case '\r':51case '\n':52case '\f':53if (state === 'after-import') {54state = 'url';55} else {56buffer += character;57}58break;5960case '@':61if (!state && cssText.indexOf('@import', i) === i) {62state = 'after-import';63i += 'import'.length;64buffer = '';65}66break;6768case 'u':69if (state === 'url' && cssText.indexOf('url(', i) === i) {70index = cssText.indexOf(')', i + 1);71if (index === -1) {72throw i + ': ")" not found';73}74i += 'url('.length;75var url = cssText.slice(i, index);76if (url[0] === url[url.length - 1]) {77if (url[0] === '"' || url[0] === "'") {78url = url.slice(1, -1);79}80}81this.href = url;82i = index;83state = 'media';84}85break;8687case '"':88if (state === 'url') {89index = cssText.indexOf('"', i + 1);90if (!index) {91throw i + ": '\"' not found";92}93this.href = cssText.slice(i + 1, index);94i = index;95state = 'media';96}97break;9899case "'":100if (state === 'url') {101index = cssText.indexOf("'", i + 1);102if (!index) {103throw i + ': "\'" not found';104}105this.href = cssText.slice(i + 1, index);106i = index;107state = 'media';108}109break;110111case ';':112if (state === 'media') {113if (buffer) {114this.media.mediaText = buffer.trim();115}116}117break;118119default:120if (state === 'media') {121buffer += character;122}123break;124}125}126}127});128129130//.CommonJS131exports.CSSImportRule = CSSOM.CSSImportRule;132///CommonJS133134135