| 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; |