From 76cb9c2a39d477a64824a985ade40507e3bbade1 Mon Sep 17 00:00:00 2001 From: Adam Mathes Date: Fri, 13 Feb 2026 21:34:48 -0800 Subject: feat(vanilla): add testing infrastructure and tests (NK-wjnczv) --- .../node_modules/@acemir/cssom/lib/CSSMediaRule.js | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 vanilla/node_modules/@acemir/cssom/lib/CSSMediaRule.js (limited to 'vanilla/node_modules/@acemir/cssom/lib/CSSMediaRule.js') diff --git a/vanilla/node_modules/@acemir/cssom/lib/CSSMediaRule.js b/vanilla/node_modules/@acemir/cssom/lib/CSSMediaRule.js new file mode 100644 index 0000000..5f07d6a --- /dev/null +++ b/vanilla/node_modules/@acemir/cssom/lib/CSSMediaRule.js @@ -0,0 +1,74 @@ +//.CommonJS +var CSSOM = { + CSSRule: require("./CSSRule").CSSRule, + CSSRuleList: require("./CSSRuleList").CSSRuleList, + CSSGroupingRule: require("./CSSGroupingRule").CSSGroupingRule, + CSSConditionRule: require("./CSSConditionRule").CSSConditionRule, + MediaList: require("./MediaList").MediaList +}; +///CommonJS + + +/** + * @constructor + * @see http://dev.w3.org/csswg/cssom/#cssmediarule + * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSMediaRule + */ +CSSOM.CSSMediaRule = function CSSMediaRule() { + CSSOM.CSSConditionRule.call(this); + this.__media = new CSSOM.MediaList(); +}; + +CSSOM.CSSMediaRule.prototype = Object.create(CSSOM.CSSConditionRule.prototype); +CSSOM.CSSMediaRule.prototype.constructor = CSSOM.CSSMediaRule; + +Object.setPrototypeOf(CSSOM.CSSMediaRule, CSSOM.CSSConditionRule); + +Object.defineProperty(CSSOM.CSSMediaRule.prototype, "type", { + value: 4, + writable: false +}); + +// https://opensource.apple.com/source/WebCore/WebCore-7611.1.21.161.3/css/CSSMediaRule.cpp +Object.defineProperties(CSSOM.CSSMediaRule.prototype, { + "media": { + get: function() { + return this.__media; + }, + set: function(value) { + if (typeof value === "string") { + this.__media.mediaText = value; + } else { + this.__media = value; + } + }, + configurable: true, + enumerable: true + }, + "conditionText": { + get: function() { + return this.media.mediaText; + } + }, + "cssText": { + get: function() { + var values = ""; + var valuesArr = [" {"]; + if (this.cssRules.length) { + valuesArr.push(this.cssRules.reduce(function(acc, rule){ + if (rule.cssText !== "") { + acc.push(rule.cssText); + } + return acc; + }, []).join("\n ")); + } + values = valuesArr.join("\n ") + "\n}"; + return "@media " + this.media.mediaText + values; + } + } +}); + + +//.CommonJS +exports.CSSMediaRule = CSSOM.CSSMediaRule; +///CommonJS -- cgit v1.2.3