import { __extends } from "tslib"; 
 | 
import Displayable from './Displayable.js'; 
 | 
import { getBoundingRect } from '../contain/text.js'; 
 | 
import { DEFAULT_PATH_STYLE } from './Path.js'; 
 | 
import { createObject, defaults } from '../core/util.js'; 
 | 
import { DEFAULT_FONT } from '../core/platform.js'; 
 | 
export 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(TSpan, _super); 
 | 
    function TSpan() { 
 | 
        return _super !== null && _super.apply(this, arguments) || this; 
 | 
    } 
 | 
    TSpan.prototype.hasStroke = function () { 
 | 
        var style = this.style; 
 | 
        var stroke = style.stroke; 
 | 
        return stroke != null && stroke !== 'none' && style.lineWidth > 0; 
 | 
    }; 
 | 
    TSpan.prototype.hasFill = function () { 
 | 
        var style = this.style; 
 | 
        var fill = style.fill; 
 | 
        return fill != null && fill !== 'none'; 
 | 
    }; 
 | 
    TSpan.prototype.createStyle = function (obj) { 
 | 
        return createObject(DEFAULT_TSPAN_STYLE, obj); 
 | 
    }; 
 | 
    TSpan.prototype.setBoundingRect = function (rect) { 
 | 
        this._rect = rect; 
 | 
    }; 
 | 
    TSpan.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; 
 | 
    }; 
 | 
    TSpan.initDefaultProps = (function () { 
 | 
        var tspanProto = TSpan.prototype; 
 | 
        tspanProto.dirtyRectTolerance = 10; 
 | 
    })(); 
 | 
    return TSpan; 
 | 
}(Displayable)); 
 | 
TSpan.prototype.type = 'tspan'; 
 | 
export default TSpan; 
 |