all files / src/Actions/actions/ MarkAttributeValueObsolete.js

88% Statements 22/25
14.29% Branches 1/7
75% Functions 3/4
88% Lines 22/25
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46              71× 71× 71× 71× 71×                     71× 71×       20× 20× 20×        
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const template_api_1 = require("@opticss/template-api");
const Action_1 = require("../Action");
/**
 * Note that an attribute value is not used and will be removed from the
 * template.
 */
class MarkAttributeValueObsolete extends Action_1.MultiAction {
    constructor(pass, selectors, attribute, reason, optimization = "mergeDeclarations") {
        super(optimization);
        this.pass = pass;
        this.selectors = selectors;
        this.attribute = attribute;
        this.reason = reason;
    }
    get sourcePosition() {
        if (this.selectors.length > 0 && this.selectors[0].rule.source && this.selectors[0].rule.source.start) {
            return this.selectors[0].rule.source.start;
        }
        else {
            return undefined;
        }
    }
    perform() {
        this.pass.styleMapping.attributeIsObsolete(this.attribute);
        return this;
    }
    logStrings() {
        let logs = new Array();
        let mainMessage = `Attribute ${template_api_1.simpleAttributeToString(this.attribute)} will be removed from templates. ${this.reason}`;
        let firstPos = this.nodeSourcePosition(this.selectors[0].rule);
        Eif (firstPos) {
            firstPos.line = -1;
        }
        logs.push(this.annotateLogMessage(mainMessage, firstPos));
        for (let sel of this.selectors) {
            let rulePos = this.nodeSourcePosition(sel.rule);
            let msg = `Was used in selector: ${sel.parsedSelector}`;
            logs.push(this.annotateLogMessage(msg, rulePos, 1));
        }
        return logs;
    }
}
exports.MarkAttributeValueObsolete = MarkAttributeValueObsolete;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFya0F0dHJpYnV0ZVZhbHVlT2Jzb2xldGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvQWN0aW9ucy9hY3Rpb25zL01hcmtBdHRyaWJ1dGVWYWx1ZU9ic29sZXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0Esd0RBRytCO0FBSy9CLHNDQUF3QztBQUV4Qzs7O0dBR0c7QUFDSCxnQ0FBd0MsU0FBUSxvQkFBVztJQU16RCxZQUNFLElBQXNCLEVBQ3RCLFNBQWtDLEVBQ2xDLFNBQTBCLEVBQzFCLE1BQWMsRUFDZCxlQUFvQyxtQkFBbUI7UUFFdkQsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLGNBQWM7UUFDaEIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDckcsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQzVDO2FBQU07WUFDTCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLElBQUksR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBQy9CLElBQUksV0FBVyxHQUFHLGFBQWEsc0NBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQ0FBb0MsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3hILElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9ELElBQUksUUFBUSxFQUFFO1lBQUUsUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztTQUFFO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzFELEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUM5QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hELElBQUksR0FBRyxHQUFHLHlCQUF5QixHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUE1Q0QsZ0VBNENDIn0=