| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | var textHelper = require("../helper/text");var BoundingRect = require("../../core/BoundingRect");var _constant = require("../constant");var WILL_BE_RESTORED = _constant.WILL_BE_RESTORED;/** * Mixin for drawing text in a element bounding rect * @module zrender/mixin/RectText */var tmpRect = new BoundingRect();var RectText = function () {};RectText.prototype = {  constructor: RectText,  /**   * Draw text in a rect with specified position.   * @param  {CanvasRenderingContext2D} ctx   * @param  {Object} rect Displayable rect   */  drawRectText: function (ctx, rect) {    var style = this.style;    rect = style.textRect || rect; // Optimize, avoid normalize every time.    this.__dirty && textHelper.normalizeTextStyle(style, true);    var text = style.text; // Convert to string    text != null && (text += '');    if (!textHelper.needDrawText(text, style)) {      return;    } // FIXME    // Do not provide prevEl to `textHelper.renderText` for ctx prop cache,    // but use `ctx.save()` and `ctx.restore()`. Because the cache for rect    // text propably break the cache for its host elements.    ctx.save(); // Transform rect to view space    var transform = this.transform;    if (!style.transformText) {      if (transform) {        tmpRect.copy(rect);        tmpRect.applyTransform(transform);        rect = tmpRect;      }    } else {      this.setTransform(ctx);    } // transformText and textRotation can not be used at the same time.    textHelper.renderText(this, ctx, text, style, rect, WILL_BE_RESTORED);    ctx.restore();  }};var _default = RectText;module.exports = _default;
 |