Blame view

node_modules/zrender/lib/graphic/TSpan.js 2.06 KB
bd028579   易尊强   2/28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
  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;