jsdom
Version:
A JavaScript implementation of many web standards
36 lines (27 loc) • 955 B
JavaScript
;
const CSSConditionRuleImpl = require("./CSSConditionRule-impl.js").implementation;
const { serializeGroupingRuleBody } = require("./CSSGroupingRule-impl.js");
const MediaList = require("../../../generated/idl/MediaList.js");
const { evaluateMediaList } = require("./MediaList-impl.js");
class CSSMediaRuleImpl extends CSSConditionRuleImpl {
constructor(globalObject, args, privateData) {
super(globalObject, args, privateData);
this.media = MediaList.createImpl(globalObject, [], {
mediaText: this._conditionText,
onChange: () => this._invalidateStyleCache()
});
}
get type() {
return 4; // MEDIA_RULE
}
get matches() {
return evaluateMediaList(this.media._list);
}
get conditionText() {
return this.media.mediaText;
}
get cssText() {
return `@media ${this.media.mediaText} ${serializeGroupingRuleBody(this.cssRules._list)}`;
}
}
exports.implementation = CSSMediaRuleImpl;