cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
65 lines (64 loc) • 1.99 kB
JavaScript
import { __extends } from "../../../tslib/tslib.es6.mjs";
import Displayable from "./Displayable.mjs";
import { getBoundingRect } from "../contain/text.mjs";
import { DEFAULT_PATH_STYLE } from "./Path.mjs";
import { defaults, createObject } from "../core/util.mjs";
import { DEFAULT_FONT } from "../core/platform.mjs";
var DEFAULT_TSPAN_STYLE = defaults({
strokeFirst: true,
font: DEFAULT_FONT,
x: 0,
y: 0,
textAlign: "left",
textBaseline: "top",
miterLimit: 2
}, DEFAULT_PATH_STYLE);
var TSpan = function(_super) {
__extends(TSpan2, _super);
function TSpan2() {
return _super !== null && _super.apply(this, arguments) || this;
}
TSpan2.prototype.hasStroke = function() {
var style = this.style;
var stroke = style.stroke;
return stroke != null && stroke !== "none" && style.lineWidth > 0;
};
TSpan2.prototype.hasFill = function() {
var style = this.style;
var fill = style.fill;
return fill != null && fill !== "none";
};
TSpan2.prototype.createStyle = function(obj) {
return createObject(DEFAULT_TSPAN_STYLE, obj);
};
TSpan2.prototype.setBoundingRect = function(rect) {
this._rect = rect;
};
TSpan2.prototype.getBoundingRect = function() {
var style = this.style;
if (!this._rect) {
var text = style.text;
text != null ? text += "" : text = "";
var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);
rect.x += style.x || 0;
rect.y += style.y || 0;
if (this.hasStroke()) {
var w = style.lineWidth;
rect.x -= w / 2;
rect.y -= w / 2;
rect.width += w;
rect.height += w;
}
this._rect = rect;
}
return this._rect;
};
TSpan2.initDefaultProps = function() {
var tspanProto = TSpan2.prototype;
tspanProto.dirtyRectTolerance = 10;
}();
return TSpan2;
}(Displayable);
TSpan.prototype.type = "tspan";
var TSpan$1 = TSpan;
export { DEFAULT_TSPAN_STYLE, TSpan$1 as default };