nehan
Version:
Html layout engine for paged-media written in Typescript
53 lines • 2.04 kB
JavaScript
import { LogicalEdge, LogicalEdgeDirections, CssText, CssCascade, Utils, } from "./public-api";
export var LogicalBorderStyleValue;
(function (LogicalBorderStyleValue) {
LogicalBorderStyleValue["NONE"] = "none";
LogicalBorderStyleValue["HIDDEN"] = "hidden";
LogicalBorderStyleValue["DOTTED"] = "dotted";
LogicalBorderStyleValue["DASHED"] = "dashed";
LogicalBorderStyleValue["SOLID"] = "solid";
LogicalBorderStyleValue["DOUBLE"] = "double";
LogicalBorderStyleValue["GROOVE"] = "groove";
LogicalBorderStyleValue["RIDGE"] = "ridge";
LogicalBorderStyleValue["INSET"] = "inset";
LogicalBorderStyleValue["OUTSET"] = "outset";
})(LogicalBorderStyleValue || (LogicalBorderStyleValue = {}));
export class LogicalBorderStyle extends LogicalEdge {
static parseShorthand(css_text) {
let vs = CssText.getValue4D(css_text.value);
return [
{ prop: "border-before-style", value: vs[0] },
{ prop: "border-end-style", value: vs[1] },
{ prop: "border-after-style", value: vs[2] },
{ prop: "border-start-style", value: vs[3] }
];
}
static load(element) {
return new LogicalBorderStyle(LogicalEdgeDirections.reduce((style, direction) => {
style[direction] = CssCascade.getValue(element, `border-${direction}-style`);
return style;
}, {}));
}
static get noneValue() {
return {
before: "none",
end: "none",
after: "none",
start: "none"
};
}
static get none() {
return new LogicalBorderStyle(LogicalBorderStyle.noneValue);
}
clone() {
return new LogicalBorderStyle(this.values);
}
getPropByLogicalDirection(direction) {
return `border-${direction}-style`;
}
acceptCssEvaluator(visitor) {
return visitor.visitLogicalBorderStyle(this);
}
}
LogicalBorderStyle.values = Utils.Enum.toValueArray(LogicalBorderStyleValue);
//# sourceMappingURL=logical-border-style.js.map