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

96.55% Statements 28/29
80% Branches 8/10
100% Functions 6/6
96.55% Lines 28/29
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 47 48 49            16× 16× 16× 16× 16× 16× 16× 16×         16×                      
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const Action_1 = require("../Action");
/**
 * Changes a Rule's selector string.
 */
class AnnotateMergeConflict extends Action_1.Action {
    constructor(mergedDecl, mergedSel, unmergedDecl, unmergedSel, conflictDecl, conflictSel, element, optimization = "mergeDeclarations") {
        super(optimization);
        this.mergedDecl = mergedDecl;
        this.mergedSel = mergedSel;
        this.unmergedDecl = unmergedDecl;
        this.unmergedSel = unmergedSel;
        this.conflictDecl = conflictDecl;
        this.conflictSel = conflictSel;
        this.element = element;
    }
    get sourcePosition() {
        return this.nodeSourcePosition(this.conflictDecl);
    }
    perform() {
        return this;
    }
    logString() {
        let mainPosition = this.sourcePosition;
        let mergePos = this.nodeSourcePosition(this.mergedDecl);
        let omitMergeFile = mainPosition && mergePos && mainPosition.filename === mergePos.filename;
        let mergeStr = `${this.declString(this.mergedSel, this.mergedDecl)} (at ${this.positionString(mergePos, omitMergeFile)})`;
        let unmergedPos = this.nodeSourcePosition(this.unmergedDecl);
        let omitUnmergedFile = mainPosition && unmergedPos && mainPosition.filename === unmergedPos.filename;
        let unmergedStr = `${this.declString(this.unmergedSel, this.unmergedDecl)} (at ${this.positionString(unmergedPos, omitUnmergedFile)})`;
        let conflictStr = this.declString(this.conflictSel, this.conflictDecl);
        let elStr = this.elementString();
        return this.annotateLogMessage(`Couldn't merge ${unmergedStr} with ${mergeStr} because it conflicts with ${conflictStr} on element ${elStr}`);
    }
    elementString(element = this.element) {
        let elStr = element.toString();
        let elPos = this.positionString(element.sourceLocation.start);
        Iif (elPos) {
            elStr += ` (at ${elPos})`;
        }
        return elStr;
    }
    declString(selector, decl) {
        return `${selector} { ${decl.prop}: ${decl.value}${decl.important ? " !important" : ""}; }`;
    }
}
exports.AnnotateMergeConflict = AnnotateMergeConflict;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW5ub3RhdGVNZXJnZUNvbmZsaWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL0FjdGlvbnMvYWN0aW9ucy9Bbm5vdGF0ZU1lcmdlQ29uZmxpY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSxzQ0FBbUM7QUFFbkM7O0dBRUc7QUFDSCwyQkFBbUMsU0FBUSxlQUFNO0lBUy9DLFlBQ0UsVUFBK0IsRUFDL0IsU0FBeUIsRUFDekIsWUFBaUMsRUFDakMsV0FBMkIsRUFDM0IsWUFBaUMsRUFDakMsV0FBMkIsRUFDM0IsT0FBZ0IsRUFDaEIsZUFBb0MsbUJBQW1CO1FBRXZELEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQ0QsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELFNBQVM7UUFDUCxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQ3ZDLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEQsSUFBSSxhQUFhLEdBQUcsWUFBWSxJQUFJLFFBQVEsSUFBSSxZQUFZLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDNUYsSUFBSSxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUM7UUFDMUgsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3RCxJQUFJLGdCQUFnQixHQUFHLFlBQVksSUFBSSxXQUFXLElBQUksWUFBWSxDQUFDLFFBQVEsS0FBSyxXQUFXLENBQUMsUUFBUSxDQUFDO1FBQ3JHLElBQUksV0FBVyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUM7UUFDdkksSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2RSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQzVCLGtCQUFrQixXQUFXLFNBQVMsUUFBUSw4QkFBOEIsV0FBVyxlQUFlLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFtQixJQUFJLENBQUMsT0FBTztRQUMzQyxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlELElBQUksS0FBSyxFQUFFO1lBQ1QsS0FBSyxJQUFJLFFBQVEsS0FBSyxHQUFHLENBQUM7U0FDM0I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxVQUFVLENBQUMsUUFBd0IsRUFBRSxJQUF5QjtRQUM1RCxPQUFPLEdBQUcsUUFBUSxNQUFNLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDO0lBQzlGLENBQUM7Q0FDRjtBQTdERCxzREE2REMifQ==