"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== |