关于文本元素换行、超出隐藏的一点建议
1、文本元素目前支持换行，但是遇到多个换行符，会忽略中间的空白行，原因在于：处理各段落文本时，只处理了"非空"段落：
```js
/**
 * idraw/packages/renderer/src/lib/draw/text.ts
 */ 

const descTextList = descText.split('\n');
// ...
descTextList.forEach((tempText) => {
  // 当tempText为空字符串时，就不会进行下面的处理了
  for (let i = 0; i < tempText.length; i++) {
    // ...
    if(xxx){
      // 空白段落未能加入 lines 数组中，就不会渲染
      lines.push({xxx})
    }
  })
})
```
不知道是否能将空白行考虑进去，如下：
```js
descTextList.forEach((tempText) => {
  // 当前段落为空白行，直接推入 lines 数组，结束当前段落的处理流程
  if (tempText.length === 0) {
    lines.push({
      text: '',
      width: 0
    });
    lineNum++;
    return true;
  }

  for (let i = 0; i < tempText.length; i++) {
    // ...
  })
})
```
增加以上代码，亲测有效

Tip: 在处理第二个问题时以上写法会导致 空白行不会被超出隐藏的bug，需要改为：
```js
descTextList.forEach((tempText) => {
  // 当前段落为空白行时，将tempText设置为' '，进而可以继续后续的处理流程
  if (!tempText) {
    tempText = ' ';
  }

  for (let i = 0; i < tempText.length; i++) {
    // ...
  })
})
```


2、文本元素目前支持超出区域隐藏，但是仅支持单行文本（不存在换行符）的超出隐藏，遇到存在换行符的多行场景，高度超出隐藏存在bug：各段落自身内容高度与文本区域高度对比，然后隐藏段落各自的超出部分。
符合直觉的期望应该是将文本所有内容当做一个整体去做超出隐藏。
原因在于：用于比较文本高度和文本区域高度的 `lineNum` 仅在单个段落的处理逻辑中计算，所以有了以上bug现象：
```js
/**
 * idraw/packages/renderer/src/lib/draw/text.ts
 */

descTextList.forEach((tempText) => {
  let lineText = '';
  // lineNum每处理一个新段落都会初始化为0
  let lineNum = 0;
  // ...

  for (let i = 0; i < tempText.length; i++) {
    // 结果是只判断当前段落是否超出
    if ((lineNum + 1) * fontHeight > elem.h) {
      break;
    }
   // ...
  }
});
```
如果期望将整个文本当做一个整体，则需要考虑整体文本的 `lineNum`：
```js
// ... 

// 从整体文本考虑 lineNum，将其定义于遍历段落之前
let lineNum = 0;

// 引入idx用以判断当前文本是不是最后一段内容
descTextList.forEach((tempText,idx) => {
  let lineText = '';

  if (!tempText) {
    tempText = ' '
  }

  for (let i = 0; i < tempText.length; i++) {
    // ...

    if ((lineNum + 1) * fontHeight > elem.h) {
      break;
    }

    if (lineText && tempText.length - 1 === i) {
      // 条件改为 (lineNum + 1) * fontHeight <= elem.h、
      // 解决 (lineNum + 1) * fontHeight == elem.h 时当前段落未能存入lines 导致内容丢失的问题
      if ((lineNum + 1) * fontHeight <= elem.h) {
        lines.push({
          text: lineText,
          width: ctx.calcScreenNum(ctx.measureText(lineText).width),
        });

        // 如果不是最后一段...lineNum 也要自增... 否则存在换行场景时，超出隐藏依然有异常
        if(idx < descTextList.length - 1){
          lineNum ++
        }
        break;
      }
    }
  }

// ...
```
以上代码本地亲测有效，可以解决前文提及的疑似问题，仅供参考。