From 5cba31a4bddb8d4e37e5371d53a30e57d7c484de Mon Sep 17 00:00:00 2001 From: lijinke666 Date: Fri, 5 Jul 2024 16:10:01 +0800 Subject: [PATCH 1/6] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E6=95=B0=E6=8D=AE=E6=97=B6=E7=A9=BA?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=8D=A0=E4=BD=8D=E7=AC=A6=E6=9C=AA=E7=94=9F?= =?UTF-8?q?=E6=95=88=20close=20#2808?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../__snapshots__/export-pivot-spec.ts.snap | 31 ++-- .../__snapshots__/export-table-spec.ts.snap | 165 +++++++++++------- .../unit/utils/export/export-pivot-spec.ts | 45 ++++- .../unit/utils/export/export-table-spec.ts | 36 +++- packages/s2-core/src/cell/base-cell.ts | 13 +- packages/s2-core/src/cell/data-cell.ts | 2 +- .../s2-core/src/common/interface/basic.ts | 4 +- packages/s2-core/src/facet/layout/node.ts | 5 + packages/s2-core/src/facet/table-facet.ts | 7 +- .../s2-core/src/utils/export/copy/common.ts | 13 +- packages/s2-core/src/utils/text.ts | 2 +- .../s2-react/__tests__/data/mock-dataset.json | 8 +- packages/s2-react/playground/config.tsx | 13 +- 13 files changed, 255 insertions(+), 89 deletions(-) diff --git a/packages/s2-core/__tests__/unit/utils/export/__snapshots__/export-pivot-spec.ts.snap b/packages/s2-core/__tests__/unit/utils/export/__snapshots__/export-pivot-spec.ts.snap index 957a27dc4d..95670a4171 100644 --- a/packages/s2-core/__tests__/unit/utils/export/__snapshots__/export-pivot-spec.ts.snap +++ b/packages/s2-core/__tests__/unit/utils/export/__snapshots__/export-pivot-spec.ts.snap @@ -190,12 +190,12 @@ exports[`PivotSheet Export Test should export correct data when data is incomple " province 浙江省 浙江省 浙江省 浙江省 四川省 四川省 四川省 四川省 city 杭州市 绍兴市 宁波市 舟山市 成都市 绵阳市 南充市 乐山市 type sub_type number number number number number number number number -家具 -家具 桌子 2367 3877 4342 1723 1822 1943 2330 -家具 沙发 632 7234 834 2451 2244 2333 2445 -办公用品 -办公用品 笔 -办公用品 纸张 1354 1523 1634 4004 3077 3551 352" +家具 - - - - - - - - +家具 桌子 - 2367 3877 4342 1723 1822 1943 2330 +家具 沙发 - 632 7234 834 2451 2244 2333 2445 +办公用品 - - - - - - - - +办公用品 笔 - - - - - - - - +办公用品 纸张 - 1354 1523 1634 4004 3077 3551 352" `; exports[`PivotSheet Export Test should export correct data when series number 1`] = ` @@ -230,8 +230,8 @@ exports[`PivotSheet Export Test should export correct data with formatter for cu " 自定义节点 a-1 自定义节点 a-1 自定义节点 a-1 自定义节点 a-1 自定义节点 a-2 自定义节点 a-2 自定义节点 a-1-1 自定义节点 a-1-1 自定义节点 a-1-2 type sub_type 指标1 指标2 -家具 桌子 13 2 -家具 椅子 11 8 " +家具 桌子 13 2 - - +家具 椅子 11 8 - -" `; exports[`PivotSheet Export Test should export correct data with formatter for custom row headers 1`] = ` @@ -239,8 +239,8 @@ exports[`PivotSheet Export Test should export correct data with formatter for cu 自定义节点 a-1 自定义节点 a-1-1 指标1 桌子 椅子 自定义节点 a-1 自定义节点 a-1-1 指标1 13 11 自定义节点 a-1 自定义节点 a-1-1 指标2 2 8 -自定义节点 a-1 自定义节点 a-1-2 -自定义节点 a-2 " +自定义节点 a-1 自定义节点 a-1-2 - - +自定义节点 a-2 - -" `; exports[`PivotSheet Export Test should export correctly data for single row data by { async: false } 1`] = ` @@ -258,3 +258,14 @@ Array [ "浙江 义乌 1 2", ] `; + +exports[`PivotSheet Export Test should export placeholder data 1`] = ` +" province null 浙江省 浙江省 浙江省 浙江省 四川省 四川省 四川省 四川省 + city null 杭州市 绍兴市 宁波市 舟山市 成都市 绵阳市 南充市 乐山市 +type sub_type number number number number number number number number number +null null 7789 占位符 占位符 占位符 占位符 占位符 占位符 占位符 占位符 +家具 桌子 占位符 7789 2367 3877 4342 1723 1822 1943 2330 +家具 沙发 占位符 5343 632 7234 834 2451 2244 2333 2445 +办公用品 笔 占位符 945 1304 1145 1432 2335 245 2457 2458 +办公用品 纸张 占位符 1343 1354 1523 1634 4004 3077 3551 352" +`; diff --git a/packages/s2-core/__tests__/unit/utils/export/__snapshots__/export-table-spec.ts.snap b/packages/s2-core/__tests__/unit/utils/export/__snapshots__/export-table-spec.ts.snap index df9081a2f2..f718fe40b5 100644 --- a/packages/s2-core/__tests__/unit/utils/export/__snapshots__/export-table-spec.ts.snap +++ b/packages/s2-core/__tests__/unit/utils/export/__snapshots__/export-table-spec.ts.snap @@ -39,38 +39,38 @@ exports[`TableSheet Export Test should apply formatter for col header by { forma exports[`TableSheet Export Test should apply formatter for custom col header by { formatHeader: true, formatData: true } 1`] = ` "地区 地区 类型 金额 金额 省份 城市 价格 数量 -浙江省 杭州市-@ 家具 7789-$ -浙江省 绍兴市-@ 家具 2367-$ -浙江省 宁波市-@ 家具 3877-$ -浙江省 舟山市-@ 家具 4342-$ -浙江省 杭州市-@ 家具 5343-$ -浙江省 绍兴市-@ 家具 632-$ -浙江省 宁波市-@ 家具 7234-$ -浙江省 舟山市-@ 家具 834-$ -浙江省 杭州市-@ 办公用品 945-$ -浙江省 绍兴市-@ 办公用品 1304-$ -浙江省 宁波市-@ 办公用品 1145-$ -浙江省 舟山市-@ 办公用品 1432-$ -浙江省 杭州市-@ 办公用品 1343-$ -浙江省 绍兴市-@ 办公用品 1354-$ -浙江省 宁波市-@ 办公用品 1523-$ -浙江省 舟山市-@ 办公用品 1634-$ -四川省 成都市-@ 家具 1723-$ -四川省 绵阳市-@ 家具 1822-$ -四川省 南充市-@ 家具 1943-$ -四川省 乐山市-@ 家具 2330-$ -四川省 成都市-@ 家具 2451-$ -四川省 绵阳市-@ 家具 2244-$ -四川省 南充市-@ 家具 2333-$ -四川省 乐山市-@ 家具 2445-$ -四川省 成都市-@ 办公用品 2335-$ -四川省 绵阳市-@ 办公用品 245-$ -四川省 南充市-@ 办公用品 2457-$ -四川省 乐山市-@ 办公用品 2458-$ -四川省 成都市-@ 办公用品 4004-$ -四川省 绵阳市-@ 办公用品 3077-$ -四川省 南充市-@ 办公用品 3551-$ -四川省 乐山市-@ 办公用品 352-$" +浙江省 杭州市-@ 家具 - 7789-$ +浙江省 绍兴市-@ 家具 - 2367-$ +浙江省 宁波市-@ 家具 - 3877-$ +浙江省 舟山市-@ 家具 - 4342-$ +浙江省 杭州市-@ 家具 - 5343-$ +浙江省 绍兴市-@ 家具 - 632-$ +浙江省 宁波市-@ 家具 - 7234-$ +浙江省 舟山市-@ 家具 - 834-$ +浙江省 杭州市-@ 办公用品 - 945-$ +浙江省 绍兴市-@ 办公用品 - 1304-$ +浙江省 宁波市-@ 办公用品 - 1145-$ +浙江省 舟山市-@ 办公用品 - 1432-$ +浙江省 杭州市-@ 办公用品 - 1343-$ +浙江省 绍兴市-@ 办公用品 - 1354-$ +浙江省 宁波市-@ 办公用品 - 1523-$ +浙江省 舟山市-@ 办公用品 - 1634-$ +四川省 成都市-@ 家具 - 1723-$ +四川省 绵阳市-@ 家具 - 1822-$ +四川省 南充市-@ 家具 - 1943-$ +四川省 乐山市-@ 家具 - 2330-$ +四川省 成都市-@ 家具 - 2451-$ +四川省 绵阳市-@ 家具 - 2244-$ +四川省 南充市-@ 家具 - 2333-$ +四川省 乐山市-@ 家具 - 2445-$ +四川省 成都市-@ 办公用品 - 2335-$ +四川省 绵阳市-@ 办公用品 - 245-$ +四川省 南充市-@ 办公用品 - 2457-$ +四川省 乐山市-@ 办公用品 - 2458-$ +四川省 成都市-@ 办公用品 - 4004-$ +四川省 绵阳市-@ 办公用品 - 3077-$ +四川省 南充市-@ 办公用品 - 3551-$ +四川省 乐山市-@ 办公用品 - 352-$" `; exports[`TableSheet Export Test should export correct data when the split separator is configured 1`] = ` @@ -454,6 +454,43 @@ Array [ ] `; +exports[`TableSheet Export Test should export placeholder data 1`] = ` +"province city type sub_type number +占位符 占位符 占位符 占位符 7789 +浙江省 杭州市 家具 桌子 7789 +浙江省 绍兴市 家具 桌子 2367 +浙江省 宁波市 家具 桌子 3877 +浙江省 舟山市 家具 桌子 4342 +浙江省 杭州市 家具 沙发 5343 +浙江省 绍兴市 家具 沙发 632 +浙江省 宁波市 家具 沙发 7234 +浙江省 舟山市 家具 沙发 834 +浙江省 杭州市 办公用品 笔 945 +浙江省 绍兴市 办公用品 笔 1304 +浙江省 宁波市 办公用品 笔 1145 +浙江省 舟山市 办公用品 笔 1432 +浙江省 杭州市 办公用品 纸张 1343 +浙江省 绍兴市 办公用品 纸张 1354 +浙江省 宁波市 办公用品 纸张 1523 +浙江省 舟山市 办公用品 纸张 1634 +四川省 成都市 家具 桌子 1723 +四川省 绵阳市 家具 桌子 1822 +四川省 南充市 家具 桌子 1943 +四川省 乐山市 家具 桌子 2330 +四川省 成都市 家具 沙发 2451 +四川省 绵阳市 家具 沙发 2244 +四川省 南充市 家具 沙发 2333 +四川省 乐山市 家具 沙发 2445 +四川省 成都市 办公用品 笔 2335 +四川省 绵阳市 办公用品 笔 245 +四川省 南充市 办公用品 笔 2457 +四川省 乐山市 办公用品 笔 2458 +四川省 成都市 办公用品 纸张 4004 +四川省 绵阳市 办公用品 纸张 3077 +四川省 南充市 办公用品 纸张 3551 +四川省 乐山市 办公用品 纸张 352" +`; + exports[`TableSheet Export Test should not apply formatter for col header and data cells by { formatHeader: false, formatData: false } 1`] = ` "province type city number 浙江省 家具 杭州市 7789 @@ -566,36 +603,36 @@ province city price number exports[`TableSheet Export Test should not apply formatter for custom col header by { formatHeader: false, formatData: true } 1`] = ` "area area type money money province city price number -浙江省 杭州市-@ 家具 7789-$ -浙江省 绍兴市-@ 家具 2367-$ -浙江省 宁波市-@ 家具 3877-$ -浙江省 舟山市-@ 家具 4342-$ -浙江省 杭州市-@ 家具 5343-$ -浙江省 绍兴市-@ 家具 632-$ -浙江省 宁波市-@ 家具 7234-$ -浙江省 舟山市-@ 家具 834-$ -浙江省 杭州市-@ 办公用品 945-$ -浙江省 绍兴市-@ 办公用品 1304-$ -浙江省 宁波市-@ 办公用品 1145-$ -浙江省 舟山市-@ 办公用品 1432-$ -浙江省 杭州市-@ 办公用品 1343-$ -浙江省 绍兴市-@ 办公用品 1354-$ -浙江省 宁波市-@ 办公用品 1523-$ -浙江省 舟山市-@ 办公用品 1634-$ -四川省 成都市-@ 家具 1723-$ -四川省 绵阳市-@ 家具 1822-$ -四川省 南充市-@ 家具 1943-$ -四川省 乐山市-@ 家具 2330-$ -四川省 成都市-@ 家具 2451-$ -四川省 绵阳市-@ 家具 2244-$ -四川省 南充市-@ 家具 2333-$ -四川省 乐山市-@ 家具 2445-$ -四川省 成都市-@ 办公用品 2335-$ -四川省 绵阳市-@ 办公用品 245-$ -四川省 南充市-@ 办公用品 2457-$ -四川省 乐山市-@ 办公用品 2458-$ -四川省 成都市-@ 办公用品 4004-$ -四川省 绵阳市-@ 办公用品 3077-$ -四川省 南充市-@ 办公用品 3551-$ -四川省 乐山市-@ 办公用品 352-$" +浙江省 杭州市-@ 家具 - 7789-$ +浙江省 绍兴市-@ 家具 - 2367-$ +浙江省 宁波市-@ 家具 - 3877-$ +浙江省 舟山市-@ 家具 - 4342-$ +浙江省 杭州市-@ 家具 - 5343-$ +浙江省 绍兴市-@ 家具 - 632-$ +浙江省 宁波市-@ 家具 - 7234-$ +浙江省 舟山市-@ 家具 - 834-$ +浙江省 杭州市-@ 办公用品 - 945-$ +浙江省 绍兴市-@ 办公用品 - 1304-$ +浙江省 宁波市-@ 办公用品 - 1145-$ +浙江省 舟山市-@ 办公用品 - 1432-$ +浙江省 杭州市-@ 办公用品 - 1343-$ +浙江省 绍兴市-@ 办公用品 - 1354-$ +浙江省 宁波市-@ 办公用品 - 1523-$ +浙江省 舟山市-@ 办公用品 - 1634-$ +四川省 成都市-@ 家具 - 1723-$ +四川省 绵阳市-@ 家具 - 1822-$ +四川省 南充市-@ 家具 - 1943-$ +四川省 乐山市-@ 家具 - 2330-$ +四川省 成都市-@ 家具 - 2451-$ +四川省 绵阳市-@ 家具 - 2244-$ +四川省 南充市-@ 家具 - 2333-$ +四川省 乐山市-@ 家具 - 2445-$ +四川省 成都市-@ 办公用品 - 2335-$ +四川省 绵阳市-@ 办公用品 - 245-$ +四川省 南充市-@ 办公用品 - 2457-$ +四川省 乐山市-@ 办公用品 - 2458-$ +四川省 成都市-@ 办公用品 - 4004-$ +四川省 绵阳市-@ 办公用品 - 3077-$ +四川省 南充市-@ 办公用品 - 3551-$ +四川省 乐山市-@ 办公用品 - 352-$" `; diff --git a/packages/s2-core/__tests__/unit/utils/export/export-pivot-spec.ts b/packages/s2-core/__tests__/unit/utils/export/export-pivot-spec.ts index 576b1287a8..630fd1734a 100644 --- a/packages/s2-core/__tests__/unit/utils/export/export-pivot-spec.ts +++ b/packages/s2-core/__tests__/unit/utils/export/export-pivot-spec.ts @@ -1,10 +1,14 @@ /* eslint-disable jest/expect-expect */ import { CopyMIMEType } from '@/common/interface/export'; -import { map, omit } from 'lodash'; +import { clone, map, omit } from 'lodash'; import { data as originData } from 'tests/data/mock-dataset.json'; import { assembleDataCfg, assembleOptions } from 'tests/util'; import { createPivotSheet, getContainer } from 'tests/util/helpers'; -import { PivotSheet, asyncGetAllPlainData } from '../../../../src'; +import { + PivotSheet, + asyncGetAllPlainData, + type DataItem, +} from '../../../../src'; import { CSV_SEPARATOR, LINE_SEPARATOR, @@ -501,4 +505,41 @@ describe('PivotSheet Export Test', () => { expect(data.split(LINE_SEPARATOR)).toHaveLength(count); }); + + // https://github.com/antvis/S2/issues/2808 + it('should export placeholder data', async () => { + const data = clone(originData); + + data.unshift({ + number: 7789, + province: null, + city: null, + type: null, + sub_type: null, + }); + + const s2 = new PivotSheet( + getContainer(), + assembleDataCfg({ + meta: [], + data, + fields: { + valueInCols: true, + columns: ['province', 'city'], + rows: ['type', 'sub_type'], + values: ['number'], + }, + }), + assembleOptions({ + hierarchyType: 'grid', + placeholder: { + cell: '占位符', + }, + }), + ); + + await expectMatchSnapshot(s2, { + formatData: true, + }); + }); }); diff --git a/packages/s2-core/__tests__/unit/utils/export/export-table-spec.ts b/packages/s2-core/__tests__/unit/utils/export/export-table-spec.ts index e291cd7730..6a55feddd9 100644 --- a/packages/s2-core/__tests__/unit/utils/export/export-table-spec.ts +++ b/packages/s2-core/__tests__/unit/utils/export/export-table-spec.ts @@ -2,7 +2,7 @@ import { CopyMIMEType } from '@/common/interface/export'; import { TableSheet } from '@/sheet-type'; import { asyncGetAllPlainData } from '@/utils'; -import { slice } from 'lodash'; +import { clone, slice } from 'lodash'; import { data as originData } from 'tests/data/mock-dataset.json'; import { CSV_SEPARATOR, @@ -11,6 +11,7 @@ import { S2DataConfig, S2Options, TAB_SEPARATOR, + type DataItem, } from '../../../../src'; import { customColSimpleColumns } from '../../../data/custom-table-col-fields'; import { @@ -517,4 +518,37 @@ describe('TableSheet Export Test', () => { expect(data).toMatchSnapshot(); }); + + // https://github.com/antvis/S2/issues/2808 + it('should export placeholder data', async () => { + const data = clone(originData); + + data.unshift({ + number: 7789, + province: null, + city: null, + type: null, + sub_type: null, + }); + + const s2 = new TableSheet( + getContainer(), + assembleDataCfg({ + meta: [], + data, + fields: { + columns: ['province', 'city', 'type', 'sub_type', 'number'], + }, + }), + assembleOptions({ + placeholder: { + cell: '占位符', + }, + }), + ); + + await expectMatchSnapshot(s2, { + formatData: true, + }); + }); }); diff --git a/packages/s2-core/src/cell/base-cell.ts b/packages/s2-core/src/cell/base-cell.ts index aa5cfc1ac7..16c81ed0e7 100644 --- a/packages/s2-core/src/cell/base-cell.ts +++ b/packages/s2-core/src/cell/base-cell.ts @@ -316,6 +316,13 @@ export abstract class BaseCell extends Group { return this.getFormattedFieldValue().formattedValue; } + /** + * 获取单元格原始的数值 + */ + public getFieldOriginalValue() { + return this.getFormattedFieldValue().value; + } + protected shouldInit() { const { width, height } = this.meta; @@ -431,11 +438,15 @@ export abstract class BaseCell extends Group { }); } + protected getDisplayText(text: string | number) { + return getDisplayText(text, this.getEmptyPlaceholder()); + } + public renderTextShape( style: TextStyleProps, options?: RenderTextShapeOptions, ): CustomText { - const text = getDisplayText(style.text, this.getEmptyPlaceholder()); + const text = this.getDisplayText(style.text); const shallowRender = options?.shallowRender || this.isShallowRender(); this.textShape = renderText({ diff --git a/packages/s2-core/src/cell/data-cell.ts b/packages/s2-core/src/cell/data-cell.ts index 169f0fd315..685c16f3db 100644 --- a/packages/s2-core/src/cell/data-cell.ts +++ b/packages/s2-core/src/cell/data-cell.ts @@ -377,7 +377,7 @@ export class DataCell extends BaseCell { return { value: fieldValue, - formattedValue, + formattedValue: formattedValue ?? this.getDisplayText(formattedValue), }; } diff --git a/packages/s2-core/src/common/interface/basic.ts b/packages/s2-core/src/common/interface/basic.ts index a92d3a52ab..fa2484d923 100644 --- a/packages/s2-core/src/common/interface/basic.ts +++ b/packages/s2-core/src/common/interface/basic.ts @@ -431,8 +431,10 @@ export interface ViewMeta { colIndex: number; // value field(unique field id) for conditions setting valueField: string; - // field's real display label value + // field's real original value fieldValue: DataItem; + // field's real formatted value + formattedFieldValue?: DataItem; // subTotals or grandTotals isTotals?: boolean; // cell's row query condition diff --git a/packages/s2-core/src/facet/layout/node.ts b/packages/s2-core/src/facet/layout/node.ts index 6e396bb895..559cc8435a 100644 --- a/packages/s2-core/src/facet/layout/node.ts +++ b/packages/s2-core/src/facet/layout/node.ts @@ -21,6 +21,7 @@ export interface BaseNodeConfig { */ field: string; value: string; + formattedValue?: string; level?: number; rowIndex?: number; colIndex?: number; @@ -59,6 +60,8 @@ export class Node { public value: string; + public formattedValue?: string; + // field key public field: string; @@ -159,6 +162,7 @@ export class Node { id, field, value, + formattedValue, parent, level, rowIndex, @@ -182,6 +186,7 @@ export class Node { this.id = id; this.field = field; this.value = value; + this.formattedValue = formattedValue; this.parent = parent; this.level = level!; this.rowIndex = rowIndex!; diff --git a/packages/s2-core/src/facet/table-facet.ts b/packages/s2-core/src/facet/table-facet.ts index ef37dbe1ac..56d5627f93 100644 --- a/packages/s2-core/src/facet/table-facet.ts +++ b/packages/s2-core/src/facet/table-facet.ts @@ -384,6 +384,9 @@ export class TableFacet extends FrozenFacet { }); } + const valueField = colNode.field; + const fieldValue = data as DataItem; + const cellMeta: ViewMeta = { spreadsheet: this.spreadsheet, x, @@ -398,8 +401,8 @@ export class TableFacet extends FrozenFacet { isTotals: false, colId: colNode.id, rowId: String(rowIndex), - valueField: colNode.field, - fieldValue: data as DataItem, + valueField, + fieldValue, id: getDataCellId(String(rowIndex), colNode.id), }; diff --git a/packages/s2-core/src/utils/export/copy/common.ts b/packages/s2-core/src/utils/export/copy/common.ts index 9d33fc0169..ecafe5244b 100644 --- a/packages/s2-core/src/utils/export/copy/common.ts +++ b/packages/s2-core/src/utils/export/copy/common.ts @@ -13,6 +13,7 @@ import { type Transformer, } from '../../../common/interface/export'; import type { Node } from '../../../facet/layout/node'; +import { getDisplayText, getEmptyPlaceholder } from '../../text'; import type { BaseDataSet } from './../../../data-set/base-data-set'; // 把 string[][] 矩阵转换成 CopyablePlain @@ -65,8 +66,18 @@ export function getFormatter( formatData = false, dataSet: BaseDataSet, ) { + const { spreadsheet } = dataSet; + if (formatData) { - return dataSet.getFieldFormatter(field!); + return (value: DataItem) => { + const formattedValue = dataSet.getFieldFormatter(field!)(value); + + // 如果格式化后的值是空,则兜底占位符, 保证导出结果和表格一致: https://github.com/antvis/S2/issues/2808 + return getDisplayText( + formattedValue, + getEmptyPlaceholder(spreadsheet, spreadsheet.options.placeholder), + ); + }; } return (value: DataItem) => value; diff --git a/packages/s2-core/src/utils/text.ts b/packages/s2-core/src/utils/text.ts index 1289701269..92303a8319 100644 --- a/packages/s2-core/src/utils/text.ts +++ b/packages/s2-core/src/utils/text.ts @@ -189,7 +189,7 @@ export const getEmptyPlaceholder = ( * | text icon | text icon | text icon | * -------------------------------------------- * @param box SimpleBBox 整体绘制内容包围盒 - * @param textValues SimpleDataItem[][] 指标集合 + * @param textValues SimpleDataItem[][] 指标集合 * @param widthPercent number[] 每行指标的宽度百分比 */ export const getContentAreaForMultiData = ( diff --git a/packages/s2-react/__tests__/data/mock-dataset.json b/packages/s2-react/__tests__/data/mock-dataset.json index d42360ebc8..aeb5f2b2c1 100644 --- a/packages/s2-react/__tests__/data/mock-dataset.json +++ b/packages/s2-react/__tests__/data/mock-dataset.json @@ -46,10 +46,10 @@ "data": [ { "number": 7789, - "province": "浙江省", - "city": "杭州市", - "type": "家具", - "sub_type": "桌子" + "province": null, + "city": null, + "type": null, + "sub_type": null }, { "number": 2367, diff --git a/packages/s2-react/playground/config.tsx b/packages/s2-react/playground/config.tsx index 24ab755a64..1b3465d42a 100644 --- a/packages/s2-react/playground/config.tsx +++ b/packages/s2-react/playground/config.tsx @@ -79,7 +79,18 @@ export const tableSheetDataCfg: S2DataConfig = { export const pivotSheetDataCfg: S2DataConfig = { data, totalData, - meta, + meta: [ + { + field: 'type', + name: '类别', + formatter: (v) => `${v}-@`, + }, + { + field: 'number', + name: '数量', + formatter: (v) => `${v}-x`, + }, + ], fields, }; From 1232a84f8e41a17c196612e1f05f9b7a66a72be3 Mon Sep 17 00:00:00 2001 From: lijinke666 Date: Tue, 9 Jul 2024 19:08:51 +0800 Subject: [PATCH 2/6] =?UTF-8?q?fix:=20=E9=81=BF=E5=85=8D=E7=BB=B4=E5=80=BC?= =?UTF-8?q?=E4=B8=BA=20null=20=E6=97=B6=E8=BD=AC=E6=8D=A2=E6=88=90=20'null?= =?UTF-8?q?'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../__snapshots__/export-pivot-spec.ts.snap | 17 ++++- .../unit/utils/export/export-pivot-spec.ts | 33 +++++++++ packages/s2-core/src/cell/base-cell.ts | 30 +------- packages/s2-core/src/cell/data-cell.ts | 3 +- packages/s2-core/src/cell/header-cell.ts | 2 +- .../s2-core/src/common/interface/basic.ts | 66 ++++++++++++------ .../s2-core/src/common/interface/hooks.ts | 3 +- .../src/common/interface/s2DataConfig.ts | 11 +-- .../s2-core/src/common/interface/tooltip.ts | 8 ++- .../s2-core/src/data-set/base-data-set.ts | 12 ++-- .../s2-core/src/data-set/pivot-data-set.ts | 12 ++-- .../s2-core/src/data-set/table-data-set.ts | 2 +- .../src/facet/layout/build-gird-hierarchy.ts | 6 +- .../s2-core/src/facet/layout/layout-hooks.ts | 5 +- packages/s2-core/src/facet/layout/node.ts | 5 -- packages/s2-core/src/facet/pivot-facet.ts | 2 +- .../s2-core/src/sheet-type/spread-sheet.ts | 8 +++ .../src/utils/dataset/pivot-data-set.ts | 9 ++- .../utils/export/copy/base-data-cell-copy.ts | 5 +- .../s2-core/src/utils/export/copy/common.ts | 34 +++++---- .../utils/export/copy/pivot-data-cell-copy.ts | 26 ++++--- .../utils/export/copy/pivot-header-copy.ts | 6 +- packages/s2-core/src/utils/export/method.ts | 6 +- .../src/utils/layout/generate-header-nodes.ts | 12 +++- .../s2-core/src/utils/layout/generate-id.ts | 69 +++++++++++-------- packages/s2-core/src/utils/layout/index.ts | 7 +- packages/s2-core/src/utils/text.ts | 9 ++- packages/s2-core/src/utils/tooltip.ts | 14 +--- packages/s2-react/playground/config.tsx | 16 ++++- .../src/components/export/strategy-copy.ts | 19 ++--- .../custom-cell/edit-cell/index.tsx | 2 +- .../custom-tooltip/col-cell-tooltip.tsx | 3 +- s2-site/docs/api/basic-class/base-cell.zh.md | 1 - 33 files changed, 277 insertions(+), 186 deletions(-) diff --git a/packages/s2-core/__tests__/unit/utils/export/__snapshots__/export-pivot-spec.ts.snap b/packages/s2-core/__tests__/unit/utils/export/__snapshots__/export-pivot-spec.ts.snap index 95670a4171..c8675559a2 100644 --- a/packages/s2-core/__tests__/unit/utils/export/__snapshots__/export-pivot-spec.ts.snap +++ b/packages/s2-core/__tests__/unit/utils/export/__snapshots__/export-pivot-spec.ts.snap @@ -259,11 +259,22 @@ Array [ ] `; +exports[`PivotSheet Export Test should export empty dimension values data 1`] = ` +" province 浙江省 浙江省 浙江省 浙江省 四川省 四川省 四川省 四川省 + city 杭州市 绍兴市 宁波市 舟山市 成都市 绵阳市 南充市 乐山市 +type sub_type number number number number number number number number number + 7789 +家具 桌子 7789 2367 3877 4342 1723 1822 1943 2330 +家具 沙发 5343 632 7234 834 2451 2244 2333 2445 +办公用品 笔 945 1304 1145 1432 2335 245 2457 2458 +办公用品 纸张 1343 1354 1523 1634 4004 3077 3551 352" +`; + exports[`PivotSheet Export Test should export placeholder data 1`] = ` -" province null 浙江省 浙江省 浙江省 浙江省 四川省 四川省 四川省 四川省 - city null 杭州市 绍兴市 宁波市 舟山市 成都市 绵阳市 南充市 乐山市 +" province 占位符 浙江省 浙江省 浙江省 浙江省 四川省 四川省 四川省 四川省 + city 占位符 杭州市 绍兴市 宁波市 舟山市 成都市 绵阳市 南充市 乐山市 type sub_type number number number number number number number number number -null null 7789 占位符 占位符 占位符 占位符 占位符 占位符 占位符 占位符 +占位符 占位符 7789 占位符 占位符 占位符 占位符 占位符 占位符 占位符 占位符 家具 桌子 占位符 7789 2367 3877 4342 1723 1822 1943 2330 家具 沙发 占位符 5343 632 7234 834 2451 2244 2333 2445 办公用品 笔 占位符 945 1304 1145 1432 2335 245 2457 2458 diff --git a/packages/s2-core/__tests__/unit/utils/export/export-pivot-spec.ts b/packages/s2-core/__tests__/unit/utils/export/export-pivot-spec.ts index 630fd1734a..67dff86427 100644 --- a/packages/s2-core/__tests__/unit/utils/export/export-pivot-spec.ts +++ b/packages/s2-core/__tests__/unit/utils/export/export-pivot-spec.ts @@ -506,6 +506,38 @@ describe('PivotSheet Export Test', () => { expect(data.split(LINE_SEPARATOR)).toHaveLength(count); }); + it('should export empty dimension values data', async () => { + const data = clone(originData); + + data.unshift({ + number: 7789, + province: null, + city: null, + type: null, + sub_type: null, + }); + + const s2 = new PivotSheet( + getContainer(), + assembleDataCfg({ + meta: [], + data, + fields: { + valueInCols: true, + columns: ['province', 'city'], + rows: ['type', 'sub_type'], + values: ['number'], + }, + }), + assembleOptions(), + ); + + await expectMatchSnapshot(s2, { + formatHeader: false, + formatData: false, + }); + }); + // https://github.com/antvis/S2/issues/2808 it('should export placeholder data', async () => { const data = clone(originData); @@ -539,6 +571,7 @@ describe('PivotSheet Export Test', () => { ); await expectMatchSnapshot(s2, { + formatHeader: true, formatData: true, }); }); diff --git a/packages/s2-core/src/cell/base-cell.ts b/packages/s2-core/src/cell/base-cell.ts index f376de2bfb..cefc583e78 100644 --- a/packages/s2-core/src/cell/base-cell.ts +++ b/packages/s2-core/src/cell/base-cell.ts @@ -76,10 +76,6 @@ import { } from '../utils/g-renders'; import { isLinkFieldNode } from '../utils/interaction/link-field'; import { isMobile } from '../utils/is-mobile'; -import { - getDisplayText, - getEmptyPlaceholder as getEmptyPlaceholderInner, -} from '../utils/text'; export abstract class BaseCell extends Group { // cell's data meta info @@ -291,17 +287,6 @@ export abstract class BaseCell extends Group { ); } - /** - * 获取单元格空值占位符 - */ - public getEmptyPlaceholder() { - const { - options: { placeholder }, - } = this.spreadsheet; - - return getEmptyPlaceholderInner(this, placeholder); - } - /** * 获取文本包围盒 */ @@ -316,13 +301,6 @@ export abstract class BaseCell extends Group { return this.getFormattedFieldValue().formattedValue; } - /** - * 获取单元格原始的数值 - */ - public getFieldOriginalValue() { - return this.getFormattedFieldValue().value; - } - protected shouldInit() { const { width, height } = this.meta; @@ -438,15 +416,11 @@ export abstract class BaseCell extends Group { }); } - protected getDisplayText(text: string | number) { - return getDisplayText(text, this.getEmptyPlaceholder()); - } - public renderTextShape( style: TextStyleProps, options?: RenderTextShapeOptions, ): CustomText { - const text = this.getDisplayText(style.text); + const text = this.spreadsheet.getDisplayText(style.text, this); const shallowRender = options?.shallowRender || this.isShallowRender(); this.textShape = renderText({ @@ -492,7 +466,7 @@ export abstract class BaseCell extends Group { ...textStyle, x: 0, y: 0, - text: this.getFieldValue(), + text: this.getFieldValue()!, wordWrapWidth: maxTextWidth, }); diff --git a/packages/s2-core/src/cell/data-cell.ts b/packages/s2-core/src/cell/data-cell.ts index 685c16f3db..1a80385d33 100644 --- a/packages/s2-core/src/cell/data-cell.ts +++ b/packages/s2-core/src/cell/data-cell.ts @@ -377,7 +377,8 @@ export class DataCell extends BaseCell { return { value: fieldValue, - formattedValue: formattedValue ?? this.getDisplayText(formattedValue), + formattedValue: + formattedValue ?? this.spreadsheet.getDisplayText(formattedValue!), }; } diff --git a/packages/s2-core/src/cell/header-cell.ts b/packages/s2-core/src/cell/header-cell.ts index e62005b90c..e06667c7bc 100644 --- a/packages/s2-core/src/cell/header-cell.ts +++ b/packages/s2-core/src/cell/header-cell.ts @@ -169,7 +169,7 @@ export abstract class HeaderCell< const formattedValue = shouldFormat && formatter - ? formatter(value, undefined, this.meta) + ? formatter(value, undefined, this.meta)! : value; return { diff --git a/packages/s2-core/src/common/interface/basic.ts b/packages/s2-core/src/common/interface/basic.ts index 5dc1a93bde..0bc101837e 100644 --- a/packages/s2-core/src/common/interface/basic.ts +++ b/packages/s2-core/src/common/interface/basic.ts @@ -27,13 +27,13 @@ export type { GetCellMeta, LayoutResult } from './facet'; * 3. tooltip, 且仅在选择多个单元格时,data 类型为数组 */ export type Formatter = ( - v: unknown, + value: DataItem, data?: SimpleData | ViewMetaData | ViewMetaData[], meta?: Node | ViewMeta, -) => string; +) => SimpleData; export interface FormatResult { - formattedValue: string; + formattedValue: SimpleData; value: DataItem; } @@ -417,46 +417,70 @@ export type TempMergedCell = { export type ViewMetaData = Data | CellData; export interface ViewMeta { + /** 表格实例 */ spreadsheet: SpreadSheet; - // cell's unique id + + /** 数据唯一标识 */ id: string; - // cell's coordination-x + + /** x 坐标 */ x: number; - // cell's coordination-y + + /** y 坐标 */ y: number; - // cell's width + + /** 单元格宽度 */ width: number; - // cell's height + + /** 单元格高度 */ height: number; - // cell origin data raws(multiple data) + + /** 单元格数据 */ data: ViewMetaData | SimpleData | undefined; - // cell' row index (in rowLeafNodes) + + /** 行索引 */ rowIndex: number; - // cell' col index (in colLeafNodes) + + /** 列索引 */ colIndex: number; - // value field(unique field id) for conditions setting + + /** 数值字段, 对应 s2DataConfig.fields */ valueField: string; - // field's real original value + + /** 数值 */ fieldValue: DataItem; - // field's real formatted value - formattedFieldValue?: DataItem; - // subTotals or grandTotals + + /** 是否是汇总字段 */ isTotals?: boolean; - // cell's row query condition + + /** 行查询条件 */ rowQuery?: Query; - // cell's col query condition + + /** 列查询条件 */ colQuery?: Query; - // rowId of cell + + /** 行 id */ rowId?: string; + + /** 列 id */ colId?: string; + + /** 字段名 */ field?: string; + + /** 是否为冻结角头 */ isFrozenCorner?: boolean; - label?: string; - value?: string | number; + + /** 行列查询条件 */ query?: Query; + + /** 叶子节点 */ isLeaf?: boolean; + + /** 是否是浅渲染 */ shallowRender?: boolean; + /** 其他字段 */ [key: string]: unknown; } diff --git a/packages/s2-core/src/common/interface/hooks.ts b/packages/s2-core/src/common/interface/hooks.ts index 0c3bd44c25..de7ef360ca 100644 --- a/packages/s2-core/src/common/interface/hooks.ts +++ b/packages/s2-core/src/common/interface/hooks.ts @@ -1,5 +1,6 @@ import type { ViewMeta } from '../../common/interface/basic'; import type { Hierarchy } from '../../facet/layout/hierarchy'; +import type { FieldValue } from '../../facet/layout/interface'; import type { Node } from '../../facet/layout/node'; import type { SpreadSheet } from '../../sheet-type'; @@ -10,7 +11,7 @@ export type LayoutArrange = ( spreadsheet: SpreadSheet, parent: Node, field: string, - fieldValues: string[], + fieldValues: FieldValue[], ) => string[]; /** diff --git a/packages/s2-core/src/common/interface/s2DataConfig.ts b/packages/s2-core/src/common/interface/s2DataConfig.ts index e3a3a63b76..8822fc8769 100644 --- a/packages/s2-core/src/common/interface/s2DataConfig.ts +++ b/packages/s2-core/src/common/interface/s2DataConfig.ts @@ -68,14 +68,9 @@ export interface MultiData { [key: string]: unknown; } -export type SimpleData = string | number | null; - -export type DataItem = - | SimpleData - | MultiData - | Record - | undefined - | null; +export type SimpleData = string | number | null | undefined; + +export type DataItem = SimpleData | MultiData | Record; export type RawData = Record; diff --git a/packages/s2-core/src/common/interface/tooltip.ts b/packages/s2-core/src/common/interface/tooltip.ts index 8e2f911e3a..a6f1feb11b 100644 --- a/packages/s2-core/src/common/interface/tooltip.ts +++ b/packages/s2-core/src/common/interface/tooltip.ts @@ -1,6 +1,10 @@ import type { FederatedPointerEvent as CanvasEvent, PointLike } from '@antv/g'; import type * as CSS from 'csstype'; -import type { S2CellType, ViewMetaData } from '../../common/interface'; +import type { + S2CellType, + SimpleData, + ViewMetaData, +} from '../../common/interface'; import type { SpreadSheet } from '../../sheet-type'; import type { BaseTooltip } from '../../ui/tooltip'; @@ -70,7 +74,7 @@ export type TooltipPosition = PointLike; export type TooltipDetailListItem = { name: string; - value: string | number; + value: SimpleData; icon?: Element | string; }; diff --git a/packages/s2-core/src/data-set/base-data-set.ts b/packages/s2-core/src/data-set/base-data-set.ts index 1d7a266fec..1ab5f938f3 100644 --- a/packages/s2-core/src/data-set/base-data-set.ts +++ b/packages/s2-core/src/data-set/base-data-set.ts @@ -31,6 +31,7 @@ import type { import type { ValueRange } from '../common/interface/condition'; import type { Node } from '../facet/layout/node'; import type { SpreadSheet } from '../sheet-type'; +import { resolveNillString } from '../utils'; import { getValueRangeState, setValueRangeState, @@ -171,10 +172,10 @@ export abstract class BaseDataSet { } // 行/列头单元格, 取节点本身标题 - return ( + return resolveNillString( (meta as Node)?.value || - this.getFieldName(meta?.field as CustomHeaderField) - ); + this.getFieldName(meta?.field as CustomHeaderField), + )!; } /** @@ -329,7 +330,10 @@ export abstract class BaseDataSet { * @param field * @param query */ - public abstract getDimensionValues(field: string, query?: Query): string[]; + public abstract getDimensionValues( + field: string, + query?: Query, + ): SimpleData[]; /** * 获取单个的单元格数据 diff --git a/packages/s2-core/src/data-set/pivot-data-set.ts b/packages/s2-core/src/data-set/pivot-data-set.ts index f92e7f2b65..b41a2f7940 100644 --- a/packages/s2-core/src/data-set/pivot-data-set.ts +++ b/packages/s2-core/src/data-set/pivot-data-set.ts @@ -39,9 +39,11 @@ import type { PartDrillDownFieldInLevel, RawData, S2DataConfig, + SimpleData, ViewMeta, } from '../common/interface'; import { Node } from '../facet/layout/node'; +import { resolveNillString } from '../utils'; import { getAggregationAndCalcFuncByQuery } from '../utils/data-set-operate'; import { deleteMetaById, @@ -80,7 +82,7 @@ export class PivotDataSet extends BaseDataSet { // sorted dimension values public sortedDimensionValues: SortedDimensionValues; - private dimensionValuesCache: Map; + private dimensionValuesCache: Map; getExistValuesByDataItem(data: RawData, values: string[]) { return getExistValues(data, values); @@ -361,7 +363,7 @@ export class PivotDataSet extends BaseDataSet { return {}; } - public getDimensionValues(field: string, query: Query = {}): string[] { + public getDimensionValues(field: string, query: Query = {}): SimpleData[] { const { pivotMeta, dimensions } = this.getFieldsAndPivotMetaByField(field); if (!pivotMeta || !dimensions) { @@ -381,7 +383,7 @@ export class PivotDataSet extends BaseDataSet { MULTI_VALUE, ); - const values = getSatisfiedPivotMetaValues({ + const metaValues = getSatisfiedPivotMetaValues({ pivotMeta, dimensionValues, fields: dimensions, @@ -390,7 +392,9 @@ export class PivotDataSet extends BaseDataSet { sortedDimensionValues: this.sortedDimensionValues, }); - const result = uniq(values.map((v) => v.value)); + const result = uniq( + metaValues.map((meta) => resolveNillString(meta.value)), + ); if (isGetAllDimensionValues) { this.dimensionValuesCache.set(field, result); diff --git a/packages/s2-core/src/data-set/table-data-set.ts b/packages/s2-core/src/data-set/table-data-set.ts index 7a1fac3a70..5c9aa43466 100644 --- a/packages/s2-core/src/data-set/table-data-set.ts +++ b/packages/s2-core/src/data-set/table-data-set.ts @@ -166,7 +166,7 @@ export class TableDataSet extends BaseDataSet { }); }; - public getDimensionValues(): string[] { + public getDimensionValues(): SimpleData[] { return []; } diff --git a/packages/s2-core/src/facet/layout/build-gird-hierarchy.ts b/packages/s2-core/src/facet/layout/build-gird-hierarchy.ts index e33c770bef..87734069f8 100644 --- a/packages/s2-core/src/facet/layout/build-gird-hierarchy.ts +++ b/packages/s2-core/src/facet/layout/build-gird-hierarchy.ts @@ -40,7 +40,7 @@ const buildTotalGridHierarchy = (params: GridHeaderParams) => { ...(dimValues || []).map( (value) => new TotalClass({ - label: value, + label: value as string, isSubTotals: parentNode.isSubTotals!, isGrandTotals: parentNode.isGrandTotals!, isTotalRoot: false, @@ -97,12 +97,12 @@ const buildNormalGridHierarchy = (params: GridHeaderParams) => { const arrangedValues = layoutArrange( spreadsheet, - dimValues, + dimValues as FieldValue[], parentNode, currentField, ); - fieldValues.push(...(arrangedValues || [])); + fieldValues.push(...((arrangedValues as FieldValue[]) || [])); // add skeleton for empty data diff --git a/packages/s2-core/src/facet/layout/layout-hooks.ts b/packages/s2-core/src/facet/layout/layout-hooks.ts index ccb0220352..6de0ea78e8 100644 --- a/packages/s2-core/src/facet/layout/layout-hooks.ts +++ b/packages/s2-core/src/facet/layout/layout-hooks.ts @@ -2,16 +2,17 @@ import { each, isBoolean, isEmpty } from 'lodash'; import type { SpreadSheet } from '../../sheet-type'; import type { Hierarchy } from '../layout/hierarchy'; import type { Node } from '../layout/node'; +import type { FieldValue } from './interface'; /** * re-arrange field values by custom arrange hooks */ export const layoutArrange = ( spreadsheet: SpreadSheet, - fieldValues: string[], + fieldValues: FieldValue[], parent: Node, field: string, -): string[] => { +): FieldValue[] => { if (spreadsheet.options.layoutArrange) { return spreadsheet.options.layoutArrange( spreadsheet, diff --git a/packages/s2-core/src/facet/layout/node.ts b/packages/s2-core/src/facet/layout/node.ts index 559cc8435a..6e396bb895 100644 --- a/packages/s2-core/src/facet/layout/node.ts +++ b/packages/s2-core/src/facet/layout/node.ts @@ -21,7 +21,6 @@ export interface BaseNodeConfig { */ field: string; value: string; - formattedValue?: string; level?: number; rowIndex?: number; colIndex?: number; @@ -60,8 +59,6 @@ export class Node { public value: string; - public formattedValue?: string; - // field key public field: string; @@ -162,7 +159,6 @@ export class Node { id, field, value, - formattedValue, parent, level, rowIndex, @@ -186,7 +182,6 @@ export class Node { this.id = id; this.field = field; this.value = value; - this.formattedValue = formattedValue; this.parent = parent; this.level = level!; this.rowIndex = rowIndex!; diff --git a/packages/s2-core/src/facet/pivot-facet.ts b/packages/s2-core/src/facet/pivot-facet.ts index 189e947f60..fb58eb967e 100644 --- a/packages/s2-core/src/facet/pivot-facet.ts +++ b/packages/s2-core/src/facet/pivot-facet.ts @@ -849,7 +849,7 @@ export class PivotFacet extends FrozenFacet { ); const maxLabel = maxBy(allLabels, (label) => `${label}`.length); const rowNodeWidth = - this.spreadsheet.measureTextWidth(maxLabel, rowTextStyle) + + this.spreadsheet.measureTextWidth(maxLabel!, rowTextStyle) + rowIconWidth + rowCellStyle!.padding!.left! + rowCellStyle!.padding!.right! + diff --git a/packages/s2-core/src/sheet-type/spread-sheet.ts b/packages/s2-core/src/sheet-type/spread-sheet.ts index cefd7dc0df..2dcfe8a201 100644 --- a/packages/s2-core/src/sheet-type/spread-sheet.ts +++ b/packages/s2-core/src/sheet-type/spread-sheet.ts @@ -64,6 +64,7 @@ import { RootInteraction } from '../interaction/root'; import { getTheme } from '../theme'; import { HdAdapter } from '../ui/hd-adapter'; import { BaseTooltip } from '../ui/tooltip'; +import { getDisplayText, getEmptyPlaceholder } from '../utils'; import { removeOffscreenCanvas } from '../utils/canvas'; import { clearValueRangeState } from '../utils/condition/state-controller'; import { hideColumnsByThunkGroup } from '../utils/hide-columns'; @@ -928,4 +929,11 @@ export abstract class SpreadSheet extends EE { return text ?? getDefaultSeriesNumberText(); } + + public getDisplayText(value: string | number, meta?: Record) { + return getDisplayText( + value, + getEmptyPlaceholder(meta || this, this.options.placeholder), + )!; + } } diff --git a/packages/s2-core/src/utils/dataset/pivot-data-set.ts b/packages/s2-core/src/utils/dataset/pivot-data-set.ts index 1f48882d46..470c7aed82 100644 --- a/packages/s2-core/src/utils/dataset/pivot-data-set.ts +++ b/packages/s2-core/src/utils/dataset/pivot-data-set.ts @@ -35,6 +35,7 @@ import type { TotalStatus, } from '../../data-set/interface'; import type { Node } from '../../facet/layout/node'; +import { generateNillString } from '../layout/generate-id'; export function filterExtraDimension(dimensions: string[] = []) { return dimensions.filter((d) => d !== EXTRA_FIELD); @@ -71,7 +72,7 @@ export function transformDimensionsValues( if (!(dimension in record)) { res.push(placeholder); } else { - res.push(String(value)); + res.push(generateNillString(value as string)); } return res; @@ -106,7 +107,7 @@ export function transformDimensionsValuesWithExtraFields( res.push(TOTAL_VALUE); } } else { - res.push(String(value)); + res.push(generateNillString(value as string)); } return res; @@ -217,7 +218,9 @@ export function getDataPath(params: DataPathParams): DataPath { if (isFirstCreate && currentMeta && !currentMeta?.has(value)) { const currentDimensions = dimensionValues .slice(0, i + 1) - .map((it) => String(it)); + .map((dimensionValue) => + generateNillString(dimensionValue as string), + ); const id = currentDimensions.join(NODE_ID_SEPARATOR); const isTotal = value === TOTAL_VALUE; diff --git a/packages/s2-core/src/utils/export/copy/base-data-cell-copy.ts b/packages/s2-core/src/utils/export/copy/base-data-cell-copy.ts index af0752e506..0350abe815 100644 --- a/packages/s2-core/src/utils/export/copy/base-data-cell-copy.ts +++ b/packages/s2-core/src/utils/export/copy/base-data-cell-copy.ts @@ -2,6 +2,7 @@ import { AsyncRenderThreshold, TAB_SEPARATOR, type DataItem, + type SimpleData, } from '../../../common'; import type { CopyAndExportUnifyConfig, @@ -45,7 +46,7 @@ export abstract class BaseDataCellCopy { } private matrixPlainTextTransformer( - dataMatrix: string[][], + dataMatrix: SimpleData[][], separator: string, ): CopyablePlain { return this.config.transformers[CopyMIMEType.PLAIN]( @@ -61,7 +62,7 @@ export abstract class BaseDataCellCopy { }; protected matrixTransformer( - dataMatrix: string[][], + dataMatrix: SimpleData[][], separator = TAB_SEPARATOR, ): [CopyablePlain, CopyableHTML] { return [ diff --git a/packages/s2-core/src/utils/export/copy/common.ts b/packages/s2-core/src/utils/export/copy/common.ts index ecafe5244b..07c20d1beb 100644 --- a/packages/s2-core/src/utils/export/copy/common.ts +++ b/packages/s2-core/src/utils/export/copy/common.ts @@ -1,5 +1,5 @@ import { escape, map, max } from 'lodash'; -import type { DataItem } from '../../../common'; +import type { DataItem, SimpleData } from '../../../common'; import { LINE_SEPARATOR, ROOT_NODE_ID, TAB_SEPARATOR } from '../../../common'; import { CopyMIMEType, @@ -13,7 +13,6 @@ import { type Transformer, } from '../../../common/interface/export'; import type { Node } from '../../../facet/layout/node'; -import { getDisplayText, getEmptyPlaceholder } from '../../text'; import type { BaseDataSet } from './../../../data-set/base-data-set'; // 把 string[][] 矩阵转换成 CopyablePlain @@ -73,10 +72,7 @@ export function getFormatter( const formattedValue = dataSet.getFieldFormatter(field!)(value); // 如果格式化后的值是空,则兜底占位符, 保证导出结果和表格一致: https://github.com/antvis/S2/issues/2808 - return getDisplayText( - formattedValue, - getEmptyPlaceholder(spreadsheet, spreadsheet.options.placeholder), - ); + return spreadsheet.getDisplayText(formattedValue!); }; } @@ -90,11 +86,11 @@ export const assembleMatrix = ({ dataMatrix, cornerMatrix, }: { - colMatrix: string[][]; - dataMatrix: string[][]; - rowMatrix?: string[][]; - cornerMatrix?: string[][]; -}): string[][] => { + colMatrix: SimpleData[][]; + dataMatrix: SimpleData[][]; + rowMatrix?: SimpleData[][]; + cornerMatrix?: SimpleData[][]; +}): SimpleData[][] => { const rowWidth = rowMatrix?.[0]?.length ?? 0; const colHeight = colMatrix?.length ?? 0; const dataWidth = dataMatrix[0]?.length ?? 0; @@ -102,7 +98,7 @@ export const assembleMatrix = ({ const matrixWidth = rowWidth + dataWidth; const matrixHeight = colHeight + dataHeight; - let matrix: (string | undefined)[][] = Array.from( + let matrix: SimpleData[][] = Array.from( Array(matrixHeight), () => new Array(matrixWidth), ); @@ -134,19 +130,19 @@ export const assembleMatrix = ({ }), ); - return matrix as string[][]; + return matrix as SimpleData[][]; }; -export function getMaxRowLen(matrix: string[][]): number { +export function getMaxRowLen(matrix: SimpleData[][]): number { return max(map(matrix, (row) => row.length)) ?? 0; } /** * 补全 matrix 中的元素个数, 使得每一行的元素个数一致,以最大的行元素个数为准 - * @param {string[][]} matrix - * @return {string[][]} + * @param {SimpleData[][]} matrix + * @return {SimpleData[][]} */ -export function completeMatrix(matrix: string[][]): string[][] { +export function completeMatrix(matrix: SimpleData[][]): SimpleData[][] { const maxRowLen = getMaxRowLen(matrix); return map(matrix, (row) => { @@ -240,7 +236,9 @@ export const getNodeFormatData = (leafNode: Node) => { const formatter = node.spreadsheet?.dataSet?.getFieldFormatter?.( node.field, ); - const formatterLabel = formatter?.(node.value) ?? node.value; + const formatterLabel = node.spreadsheet?.getDisplayText( + formatter?.(node.value) ?? node.value, + )!; line.unshift(formatterLabel); if (node?.parent) { diff --git a/packages/s2-core/src/utils/export/copy/pivot-data-cell-copy.ts b/packages/s2-core/src/utils/export/copy/pivot-data-cell-copy.ts index 18d2e06637..ef1e0b6387 100644 --- a/packages/s2-core/src/utils/export/copy/pivot-data-cell-copy.ts +++ b/packages/s2-core/src/utils/export/copy/pivot-data-cell-copy.ts @@ -16,6 +16,7 @@ import { type DataItem, type MiniChartData, type MultiData, + type SimpleData, } from '../../../common'; import type { CopyAllDataParams, @@ -260,7 +261,9 @@ export class PivotDataCellCopy extends BaseDataCellCopy { return formatter(value ?? ''); }; - protected getCustomRowCornerMatrix = (rowMatrix?: string[][]): string[][] => { + protected getCustomRowCornerMatrix = ( + rowMatrix?: SimpleData[][], + ): SimpleData[][] => { const maxRowLen = getMaxRowLen(rowMatrix ?? []); const cornerNodes = this.spreadsheet.facet.getCornerNodes(); // 对 cornerNodes 进行排序, cornerType === CornerNodeType.Col 的放在前面 @@ -297,7 +300,7 @@ export class PivotDataCellCopy extends BaseDataCellCopy { : this.spreadsheet.dataSet.getField(field); }; - protected getCornerMatrix = (rowMatrix?: string[][]): string[][] => { + protected getCornerMatrix = (rowMatrix?: SimpleData[][]): SimpleData[][] => { if (this.spreadsheet.isCustomRowFields()) { return this.getCustomRowCornerMatrix(rowMatrix); } @@ -331,14 +334,14 @@ export class PivotDataCellCopy extends BaseDataCellCopy { ); }; - protected getColMatrix(): string[][] { + protected getColMatrix(): SimpleData[][] { return zip( ...map(this.leafColNodes, (node) => this.getHeaderNodeMatrix(node)), - ) as string[][]; + ) as SimpleData[][]; } - protected getRowMatrix(): string[][] { - const rowMatrix: string[][] = map(this.leafRowNodes, (node) => + protected getRowMatrix(): SimpleData[][] { + const rowMatrix: SimpleData[][] = map(this.leafRowNodes, (node) => this.getHeaderNodeMatrix(node), ); @@ -367,7 +370,7 @@ export class PivotDataCellCopy extends BaseDataCellCopy { return convertString(dataItem); }), - ) as string[][]; + ) as SimpleData[][]; // 不带表头复制 if (!copy?.withHeader) { @@ -386,7 +389,7 @@ export class PivotDataCellCopy extends BaseDataCellCopy { getPivotCopyData(): CopyableList { const { copy } = this.spreadsheet.options.interaction!; - const dataMatrix = this.getDataMatrixByHeaderNode() as string[][]; + const dataMatrix = this.getDataMatrixByHeaderNode() as SimpleData[][]; // 不带表头复制 if (!copy?.withHeader) { @@ -408,15 +411,16 @@ export class PivotDataCellCopy extends BaseDataCellCopy { const colMatrix = this.getColMatrix(); const cornerMatrix = this.getCornerMatrix(rowMatrix); - let dataMatrix: string[][] = []; + let dataMatrix: SimpleData[][] = []; // 把两类导出都封装成异步的,保证导出类型的一致 if (this.config.async) { - dataMatrix = (await this.getDataMatrixByHeaderNodeRIC()) as string[][]; + dataMatrix = + (await this.getDataMatrixByHeaderNodeRIC()) as SimpleData[][]; } else { dataMatrix = (await Promise.resolve( this.getDataMatrixByHeaderNode(), - )) as string[][]; + )) as SimpleData[][]; } const resultMatrix = this.matrixTransformer( diff --git a/packages/s2-core/src/utils/export/copy/pivot-header-copy.ts b/packages/s2-core/src/utils/export/copy/pivot-header-copy.ts index d9b4bb967c..29a7cf715f 100644 --- a/packages/s2-core/src/utils/export/copy/pivot-header-copy.ts +++ b/packages/s2-core/src/utils/export/copy/pivot-header-copy.ts @@ -1,6 +1,6 @@ import { filter, isEmpty, map, max, repeat, zip } from 'lodash'; import type { ColCell, RowCell } from '../../../cell'; -import { CellType, NODE_ID_SEPARATOR } from '../../../common'; +import { CellType, NODE_ID_SEPARATOR, type SimpleData } from '../../../common'; import type { CopyableList } from '../../../common/interface/export'; import { getAllLevels, @@ -33,13 +33,13 @@ function getLastLevelCells( * @param lastLevelCells * @param maxLevel * @param allLevel - * @returns {string[][]} + * @returns {SimpleData[][]} */ function getHeaderCellMatrix( lastLevelCells: Array, maxLevel: number, allLevel: Set, -): string[][] { +): SimpleData[][] { return map(lastLevelCells, (cell: RowCell | ColCell) => { const meta = cell.getMeta(); const { id, value, isTotals, level, spreadsheet } = meta; diff --git a/packages/s2-core/src/utils/export/method.ts b/packages/s2-core/src/utils/export/method.ts index fb75b27bcb..16a7e8bb50 100644 --- a/packages/s2-core/src/utils/export/method.ts +++ b/packages/s2-core/src/utils/export/method.ts @@ -9,9 +9,11 @@ import { SERIES_NUMBER_FIELD, type CellMeta, type DataItem, + type SimpleData, } from '../../common'; import type { Node } from '../../facet/layout/node'; import type { SpreadSheet } from '../../sheet-type'; +import { resolveNillString } from '../layout'; export function keyEqualTo(key: string, compareKey: string) { if (!key || !compareKey) { @@ -54,7 +56,7 @@ export const getHeaderMeasureFieldNames = ( fields: string[], spreadsheet: SpreadSheet, formatHeader: boolean = true, -): string[] => { +): SimpleData[] => { return map(fields, (field) => { // https://github.com/antvis/S2/issues/2755 if (field === SERIES_NUMBER_FIELD) { @@ -63,7 +65,7 @@ export const getHeaderMeasureFieldNames = ( // https://github.com/antvis/S2/issues/2688 if (!formatHeader) { - return field; + return resolveNillString(field); } return spreadsheet.dataSet.getFieldName(field); diff --git a/packages/s2-core/src/utils/layout/generate-header-nodes.ts b/packages/s2-core/src/utils/layout/generate-header-nodes.ts index 83dc8a64a2..b17e6ca92c 100644 --- a/packages/s2-core/src/utils/layout/generate-header-nodes.ts +++ b/packages/s2-core/src/utils/layout/generate-header-nodes.ts @@ -1,12 +1,15 @@ import { EMPTY_FIELD_VALUE, EXTRA_FIELD } from '../../common/constant'; import { i18n } from '../../common/i18n'; import { buildGridHierarchy } from '../../facet/layout/build-gird-hierarchy'; -import type { HeaderNodesParams } from '../../facet/layout/interface'; +import type { + FieldValue, + HeaderNodesParams, +} from '../../facet/layout/interface'; import { layoutHierarchy } from '../../facet/layout/layout-hooks'; import { Node } from '../../facet/layout/node'; import { TotalClass } from '../../facet/layout/total-class'; import { TotalMeasure } from '../../facet/layout/total-measure'; -import { generateId } from '../../utils/layout/generate-id'; +import { generateId, resolveNillString } from '../../utils/layout/generate-id'; import { whetherLeafByLevel } from './whether-leaf-by-level'; // eslint-disable-next-line max-lines-per-function @@ -26,7 +29,10 @@ export const generateHeaderNodes = (params: HeaderNodesParams) => { const isTableMode = spreadsheet.isTableMode(); - for (const [index, fieldValue] of fieldValues.entries()) { + for (const [index, originalFieldValue] of fieldValues.entries()) { + const fieldValue = resolveNillString( + originalFieldValue as string, + ) as FieldValue; const isTotals = fieldValue instanceof TotalClass; const isTotalMeasure = fieldValue instanceof TotalMeasure; let value: string; diff --git a/packages/s2-core/src/utils/layout/generate-id.ts b/packages/s2-core/src/utils/layout/generate-id.ts index c510086e9e..2bff144238 100644 --- a/packages/s2-core/src/utils/layout/generate-id.ts +++ b/packages/s2-core/src/utils/layout/generate-id.ts @@ -1,4 +1,5 @@ import { isNull, isUndefined } from 'lodash'; +import type { SimpleData } from '../../common'; import { NODE_ID_SEPARATOR, NULL_SYMBOL_ID, @@ -7,41 +8,49 @@ import { } from '../../common/constant'; /** - * Row and column header node id generator. + * 维值转为字符串时, 如果是null/undefined, 则添加标记, 便于转回来. + * null/undefined => "$$null$$/$$undefined$$" */ +export const generateNillString = (value: string) => { + if (isUndefined(value)) { + return UNDEFINED_SYMBOL_ID; + } + + if (isNull(value)) { + return NULL_SYMBOL_ID; + } + + return String(value); +}; + +/** + * 维值如果含有空值标记, 则转换为 null/undefined. + * "$$null$$/$$undefined$$"" => null/undefined + */ +export const resolveNillString = (value: string) => { + if (value === NULL_SYMBOL_ID) { + return null; + } + + if (value === UNDEFINED_SYMBOL_ID) { + return undefined; + } + + return String(value); +}; export const generateId = (...ids: string[]): string => { - return ids - .map((value) => { - if (isUndefined(value)) { - return UNDEFINED_SYMBOL_ID; - } - - if (isNull(value)) { - return NULL_SYMBOL_ID; - } - - return String(value); - }) - .join(NODE_ID_SEPARATOR); + return ids.map(generateNillString).join(NODE_ID_SEPARATOR); }; export const resolveId = (id = '') => { - return id - .split(NODE_ID_SEPARATOR) - .reduce<(string | null | undefined)[]>((result, current) => { - if (current === ROOT_NODE_ID) { - return result; - } - - if (current === NULL_SYMBOL_ID) { - result.push(null); - } else if (current === UNDEFINED_SYMBOL_ID) { - result.push(undefined); - } else { - result.push(current); - } - + return id.split(NODE_ID_SEPARATOR).reduce((result, current) => { + if (current === ROOT_NODE_ID) { return result; - }, []); + } + + result.push(resolveNillString(current)); + + return result; + }, []); }; diff --git a/packages/s2-core/src/utils/layout/index.ts b/packages/s2-core/src/utils/layout/index.ts index f45b5d57fb..442edeaa4e 100644 --- a/packages/s2-core/src/utils/layout/index.ts +++ b/packages/s2-core/src/utils/layout/index.ts @@ -1,2 +1,7 @@ export * from './frozen'; -export { generateId, resolveId } from './generate-id'; +export { + generateId, + generateNillString, + resolveId, + resolveNillString, +} from './generate-id'; diff --git a/packages/s2-core/src/utils/text.ts b/packages/s2-core/src/utils/text.ts index 92303a8319..114d2e2545 100644 --- a/packages/s2-core/src/utils/text.ts +++ b/packages/s2-core/src/utils/text.ts @@ -40,16 +40,19 @@ import { import type { GroupedIcons } from './cell/header-cell'; import { getIconPosition } from './condition/condition'; import { renderMiniChart } from './g-mini-charts'; +import { resolveNillString } from './layout'; export const getDisplayText = ( - text: string | number | null | undefined, + text: SimpleData, placeholder?: string | undefined | null, ) => { const emptyPlaceholder = placeholder ?? EMPTY_PLACEHOLDER; + const isInvalidNumber = isNumber(text) && Number.isNaN(text); // 对应维度缺少维度数据时, 会使用 EMPTY_FIELD_VALUE 填充, 实际渲染时统一转成 "-" - const isEmptyText = isNil(text) || text === '' || text === EMPTY_FIELD_VALUE; + const isEmptyString = text === '' || text === EMPTY_FIELD_VALUE; + const isEmptyText = isNil(text) || isInvalidNumber || isEmptyString; - return isEmptyText ? emptyPlaceholder : `${text}`; + return isEmptyText ? emptyPlaceholder : resolveNillString(text as string); }; /** diff --git a/packages/s2-core/src/utils/tooltip.ts b/packages/s2-core/src/utils/tooltip.ts index 7796cb9ca8..59b17b79b1 100644 --- a/packages/s2-core/src/utils/tooltip.ts +++ b/packages/s2-core/src/utils/tooltip.ts @@ -17,7 +17,6 @@ import { isEmpty, isEqual, isFunction, - isNil, isNumber, isObject, last, @@ -42,6 +41,7 @@ import { i18n } from '../common/i18n'; import type { AutoAdjustPositionOptions, Data, + SimpleData, Tooltip, TooltipDetailListItem, TooltipSummaryOptionsValue, @@ -175,19 +175,11 @@ export const setTooltipContainerStyle = ( container.classList.toggle(TOOLTIP_CONTAINER_HIDE_CLS, !visible); }; -/* format */ -export const getFriendlyVal = (val: any): number | string => { - const isInvalidNumber = isNumber(val) && Number.isNaN(val); - const isEmptyString = val === ''; - - return isNil(val) || isInvalidNumber || isEmptyString ? '-' : val; -}; - export const getFieldFormatter = (spreadsheet: SpreadSheet, field: string) => { const formatter = spreadsheet?.dataSet?.getFieldFormatter(field); - return (v: unknown, data?: ViewMetaData) => - getFriendlyVal(formatter(v, data)); + return (value: SimpleData, data?: ViewMetaData) => + spreadsheet.getDisplayText(formatter(value, data)!); }; export const getListItem = ( diff --git a/packages/s2-react/playground/config.tsx b/packages/s2-react/playground/config.tsx index 56594992a7..43e4f595c4 100644 --- a/packages/s2-react/playground/config.tsx +++ b/packages/s2-react/playground/config.tsx @@ -83,12 +83,24 @@ export const pivotSheetDataCfg: S2DataConfig = { { field: 'type', name: '类别', - formatter: (v) => `${v}-@`, + formatter: (v) => { + if (!v) { + return v; + } + + return `${v}-@`; + }, }, { field: 'number', name: '数量', - formatter: (v) => `${v}-x`, + formatter: (v) => { + if (!v) { + return v; + } + + return `${v}-x`; + }, }, ], fields, diff --git a/packages/s2-react/src/components/export/strategy-copy.ts b/packages/s2-react/src/components/export/strategy-copy.ts index c86a528695..a7f838c3e4 100644 --- a/packages/s2-react/src/components/export/strategy-copy.ts +++ b/packages/s2-react/src/components/export/strategy-copy.ts @@ -9,6 +9,7 @@ import { type CopyableList, type Node, type SheetCopyConstructorParams, + type SimpleData, type ViewMeta, } from '@antv/s2'; import { flatten, forEach, get, isArray, isNil, isObject, map } from 'lodash'; @@ -53,7 +54,7 @@ class StrategyCopyData extends PivotDataCellCopy { /* Process the data when the value position is on the rows. */ private processValueInRow = (viewMeta: ViewMeta, placeholder: string[]) => { - let tempCells: string[] = []; + let tempCellValues: SimpleData[] = []; const defaultResult = placeholder ?? ['']; if (!viewMeta) { @@ -63,12 +64,12 @@ class StrategyCopyData extends PivotDataCellCopy { const { fieldValue, valueField, data } = viewMeta; if (isObject(fieldValue)) { - tempCells = processObjectValueInRow( + tempCellValues = processObjectValueInRow( fieldValue, this.config.formatHeader, - ) as unknown as string[]; + ) as unknown as SimpleData[]; - return tempCells ?? placeholder; + return tempCellValues ?? placeholder; } // 如果本身格子的数据是 null, 但是一个格子又需要绘制多个指标时,需要使用placeholder填充 @@ -78,19 +79,19 @@ class StrategyCopyData extends PivotDataCellCopy { // The main measure. if (!this.config.formatHeader) { - tempCells.push((fieldValue as string) ?? ''); + tempCellValues.push((fieldValue as SimpleData) ?? ''); } else { const mainFormatter = this.spreadsheet.dataSet.getFieldFormatter(valueField); - const tempCell = mainFormatter(fieldValue, data) ?? ''; + const tempCellValue = mainFormatter(fieldValue, data) ?? ''; - tempCells.push(tempCell); + tempCellValues.push(tempCellValue); } - return tempCells ?? placeholder; + return tempCellValues ?? placeholder; }; - protected getCornerMatrix = (rowMatrix?: string[][]): string[][] => { + protected getCornerMatrix = (rowMatrix?: SimpleData[][]): SimpleData[][] => { return this.getCustomRowCornerMatrix(rowMatrix); }; diff --git a/packages/s2-react/src/components/sheets/editable-sheet/custom-cell/edit-cell/index.tsx b/packages/s2-react/src/components/sheets/editable-sheet/custom-cell/edit-cell/index.tsx index 860c825b22..102a633ccc 100644 --- a/packages/s2-react/src/components/sheets/editable-sheet/custom-cell/edit-cell/index.tsx +++ b/packages/s2-react/src/components/sheets/editable-sheet/custom-cell/edit-cell/index.tsx @@ -94,7 +94,7 @@ function EditCellComponent( displayData[rowIndex][valueField] = inputVal; // 编辑后的值作为格式化后的结果, formatter 不再触发, 避免二次格式化 - s2.dataSet.displayFormattedValueMap?.set(id, inputVal); + s2.dataSet.displayFormattedValueMap?.set(id, inputVal as string); await s2.render(); const editedMeta = customMerge(cell!.getMeta(), { diff --git a/packages/s2-react/src/components/sheets/strategy-sheet/custom-tooltip/col-cell-tooltip.tsx b/packages/s2-react/src/components/sheets/strategy-sheet/custom-tooltip/col-cell-tooltip.tsx index 284423933a..6376c9befe 100644 --- a/packages/s2-react/src/components/sheets/strategy-sheet/custom-tooltip/col-cell-tooltip.tsx +++ b/packages/s2-react/src/components/sheets/strategy-sheet/custom-tooltip/col-cell-tooltip.tsx @@ -1,3 +1,4 @@ +import type { Node } from '@antv/s2'; import { getStrategySheetTooltipClsName as tooltipCls } from '@antv/s2-shared'; import cls from 'classnames'; import { isFunction } from 'lodash'; @@ -10,7 +11,7 @@ export const StrategySheetColCellTooltip: React.FC = ({ cell, label, }) => { - const meta = cell.getMeta(); + const meta = cell.getMeta() as Node; // 趋势分析表叶子节点显示是指标标题, tooltip 中没必要再显示了 if (meta.isLeaf && meta.level !== 0) { diff --git a/s2-site/docs/api/basic-class/base-cell.zh.md b/s2-site/docs/api/basic-class/base-cell.zh.md index 28fadb0f85..540db97336 100644 --- a/s2-site/docs/api/basic-class/base-cell.zh.md +++ b/s2-site/docs/api/basic-class/base-cell.zh.md @@ -45,7 +45,6 @@ cell.getActualText() | getMultiLineActualTextHeight | 实际渲染的多行文本高度 (每一行文本高度的总和) | `() => number` | | isTextOverflowing | 文本是否溢出 (有省略号) | `() => boolean` | | isMultiLineText | 是否是多行文本 | `() => boolean` | -| getEmptyPlaceholder | 获取单元格空值占位符 | `() => string` | | getTextLineBoundingRects | 获取文本包围盒 | `() => string` | | getFieldValue | 获取单元格展示的数值 | `() => string` | From 07c4f859d91163bd8b7c5a76b50d355c4044a2f3 Mon Sep 17 00:00:00 2001 From: lijinke666 Date: Wed, 10 Jul 2024 11:43:58 +0800 Subject: [PATCH 3/6] =?UTF-8?q?test:=20=20=E5=A2=9E=E5=8A=A0=E5=8D=95?= =?UTF-8?q?=E6=B5=8B=E5=92=8C=E6=96=87=E6=A1=A3=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../__snapshots__/issue-2684-spec.ts.snap | 6 +- .../__snapshots__/issue-2808-spec.ts.snap | 751 ++++++++++++++++++ .../s2-core/__tests__/bugs/issue-2808-spec.ts | 58 ++ .../spreadsheet/empty-string-values-spec.ts | 8 +- .../__tests__/unit/facet/pivot-facet-spec.ts | 1 + .../__tests__/unit/facet/table-facet-spec.ts | 1 + .../export/__snapshots__/copy-spec.ts.snap | 30 +- .../export/__snapshots__/export-spec.ts.snap | 234 +++--- packages/s2-core/__tests__/util/helpers.ts | 1 + .../s2-core/src/utils/layout/generate-id.ts | 2 +- packages/s2-core/src/utils/text.ts | 9 +- s2-site/docs/api/basic-class/node.zh.md | 2 +- s2-site/docs/manual/migration-v2.zh.md | 14 + 13 files changed, 972 insertions(+), 145 deletions(-) create mode 100644 packages/s2-core/__tests__/bugs/__snapshots__/issue-2808-spec.ts.snap create mode 100644 packages/s2-core/__tests__/bugs/issue-2808-spec.ts diff --git a/packages/s2-core/__tests__/bugs/__snapshots__/issue-2684-spec.ts.snap b/packages/s2-core/__tests__/bugs/__snapshots__/issue-2684-spec.ts.snap index 3f62f86ac7..926b204f45 100644 --- a/packages/s2-core/__tests__/bugs/__snapshots__/issue-2684-spec.ts.snap +++ b/packages/s2-core/__tests__/bugs/__snapshots__/issue-2684-spec.ts.snap @@ -5,8 +5,8 @@ Array [ Object { "content": " 两片罐事业部 宝翼制罐 河北制罐 成都制罐 哈尔滨制罐 dq dq dq dq dq -2018年-三月 53332 -2019年-三月 53332 +2018年-三月 53332 - - - - +2019年-三月 53332 - - - - 2023年-三月 53332 67456 53332 66293.333333 97192.090909 2023年-四月 67454 0 70442.733333 56665 100535.760606 2023年-五月 23566 -10000 73786.40303 65554 103879.430303 @@ -17,7 +17,7 @@ Array [ "type": "text/plain", }, Object { - "content": "
两片罐事业部宝翼制罐河北制罐成都制罐哈尔滨制罐
dqdqdqdqdq
2018年-三月53332
2019年-三月53332
2023年-三月53332674565333266293.33333397192.090909
2023年-四月67454070442.73333356665100535.760606
2023年-五月23566-1000073786.4030365554103879.430303
2023年-六月674562222277130.07272753332107223.1
2023年-七月03999880473.74242470442.73333361292.833333
2023年-八月04887783817.41212173786.4030366293.333333
2023年-九月222224999987161.08181877130.07272756665
", + "content": "
两片罐事业部宝翼制罐河北制罐成都制罐哈尔滨制罐
dqdqdqdqdq
2018年-三月53332----
2019年-三月53332----
2023年-三月53332674565333266293.33333397192.090909
2023年-四月67454070442.73333356665100535.760606
2023年-五月23566-1000073786.4030365554103879.430303
2023年-六月674562222277130.07272753332107223.1
2023年-七月03999880473.74242470442.73333361292.833333
2023年-八月04887783817.41212173786.4030366293.333333
2023年-九月222224999987161.08181877130.07272756665
", "type": "text/html", }, ] diff --git a/packages/s2-core/__tests__/bugs/__snapshots__/issue-2808-spec.ts.snap b/packages/s2-core/__tests__/bugs/__snapshots__/issue-2808-spec.ts.snap new file mode 100644 index 0000000000..8280738dd1 --- /dev/null +++ b/packages/s2-core/__tests__/bugs/__snapshots__/issue-2808-spec.ts.snap @@ -0,0 +1,751 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Cell Nill Value Tests should get correctly empty placeholder cell value 1`] = ` +Array [ + Object { + "actualText": "省份", + "id": "province", + "value": "省份", + }, + Object { + "actualText": "城市", + "id": "city", + "value": "城市", + }, + Object { + "actualText": "类别", + "id": "type", + "value": "类别", + }, + Object { + "actualText": "子类别", + "id": "sub_type", + "value": "子类别", + }, + Object { + "actualText": "我是占位符", + "id": "root[&]$$null$$", + "value": undefined, + }, + Object { + "actualText": "我是占位符", + "id": "root[&]$$null$$[&]$$null$$", + "value": undefined, + }, + Object { + "actualText": "浙江省", + "id": "root[&]浙江省", + "value": "浙江省", + }, + Object { + "actualText": "杭州市", + "id": "root[&]浙江省[&]杭州市", + "value": "杭州市", + }, + Object { + "actualText": "绍兴市", + "id": "root[&]浙江省[&]绍兴市", + "value": "绍兴市", + }, + Object { + "actualText": "宁波市", + "id": "root[&]浙江省[&]宁波市", + "value": "宁波市", + }, + Object { + "actualText": "舟山市", + "id": "root[&]浙江省[&]舟山市", + "value": "舟山市", + }, + Object { + "actualText": "四川省", + "id": "root[&]四川省", + "value": "四川省", + }, + Object { + "actualText": "成都市", + "id": "root[&]四川省[&]成都市", + "value": "成都市", + }, + Object { + "actualText": "绵阳市", + "id": "root[&]四川省[&]绵阳市", + "value": "绵阳市", + }, + Object { + "actualText": "南充市", + "id": "root[&]四川省[&]南充市", + "value": "南充市", + }, + Object { + "actualText": "乐山市", + "id": "root[&]四川省[&]乐山市", + "value": "乐山市", + }, + Object { + "actualText": "我是占位符", + "id": "root[&]$$null$$", + "value": undefined, + }, + Object { + "actualText": "我是占位符", + "id": "root[&]$$null$$[&]$$null$$", + "value": undefined, + }, + Object { + "actualText": "数量", + "id": "root[&]$$null$$[&]$$null$$[&]number", + "value": "number", + }, + Object { + "actualText": "家具", + "id": "root[&]家具", + "value": "家具", + }, + Object { + "actualText": "桌子", + "id": "root[&]家具[&]桌子", + "value": "桌子", + }, + Object { + "actualText": "数量", + "id": "root[&]家具[&]桌子[&]number", + "value": "number", + }, + Object { + "actualText": "沙发", + "id": "root[&]家具[&]沙发", + "value": "沙发", + }, + Object { + "actualText": "数量", + "id": "root[&]家具[&]沙发[&]number", + "value": "number", + }, + Object { + "actualText": "办公用品", + "id": "root[&]办公用品", + "value": "办公用品", + }, + Object { + "actualText": "笔", + "id": "root[&]办公用品[&]笔", + "value": "笔", + }, + Object { + "actualText": "数量", + "id": "root[&]办公用品[&]笔[&]number", + "value": "number", + }, + Object { + "actualText": "纸张", + "id": "root[&]办公用品[&]纸张", + "value": "纸张", + }, + Object { + "actualText": "数量", + "id": "root[&]办公用品[&]纸张[&]number", + "value": "number", + }, + Object { + "actualText": "7789", + "id": "root[&]$$null$$[&]$$null$$-root[&]$$null$$[&]$$null$$[&]number", + "value": 7789, + }, + Object { + "actualText": "我是占位符", + "id": "root[&]浙江省[&]杭州市-root[&]$$null$$[&]$$null$$[&]number", + "value": null, + }, + Object { + "actualText": "我是占位符", + "id": "root[&]浙江省[&]绍兴市-root[&]$$null$$[&]$$null$$[&]number", + "value": null, + }, + Object { + "actualText": "我是占位符", + "id": "root[&]浙江省[&]宁波市-root[&]$$null$$[&]$$null$$[&]number", + "value": null, + }, + Object { + "actualText": "我是占位符", + "id": "root[&]浙江省[&]舟山市-root[&]$$null$$[&]$$null$$[&]number", + "value": null, + }, + Object { + "actualText": "我是占位符", + "id": "root[&]四川省[&]成都市-root[&]$$null$$[&]$$null$$[&]number", + "value": null, + }, + Object { + "actualText": "我是占位符", + "id": "root[&]四川省[&]绵阳市-root[&]$$null$$[&]$$null$$[&]number", + "value": null, + }, + Object { + "actualText": "我是占位符", + "id": "root[&]四川省[&]南充市-root[&]$$null$$[&]$$null$$[&]number", + "value": null, + }, + Object { + "actualText": "我是占位符", + "id": "root[&]四川省[&]乐山市-root[&]$$null$$[&]$$null$$[&]number", + "value": null, + }, + Object { + "actualText": "我是占位符", + "id": "root[&]$$null$$[&]$$null$$-root[&]家具[&]桌子[&]number", + "value": null, + }, + Object { + "actualText": "7789", + "id": "root[&]浙江省[&]杭州市-root[&]家具[&]桌子[&]number", + "value": 7789, + }, + Object { + "actualText": "2367", + "id": "root[&]浙江省[&]绍兴市-root[&]家具[&]桌子[&]number", + "value": 2367, + }, + Object { + "actualText": "3877", + "id": "root[&]浙江省[&]宁波市-root[&]家具[&]桌子[&]number", + "value": 3877, + }, + Object { + "actualText": "4342", + "id": "root[&]浙江省[&]舟山市-root[&]家具[&]桌子[&]number", + "value": 4342, + }, + Object { + "actualText": "1723", + "id": "root[&]四川省[&]成都市-root[&]家具[&]桌子[&]number", + "value": 1723, + }, + Object { + "actualText": "1822", + "id": "root[&]四川省[&]绵阳市-root[&]家具[&]桌子[&]number", + "value": 1822, + }, + Object { + "actualText": "1943", + "id": "root[&]四川省[&]南充市-root[&]家具[&]桌子[&]number", + "value": 1943, + }, + Object { + "actualText": "2330", + "id": "root[&]四川省[&]乐山市-root[&]家具[&]桌子[&]number", + "value": 2330, + }, + Object { + "actualText": "我是占位符", + "id": "root[&]$$null$$[&]$$null$$-root[&]家具[&]沙发[&]number", + "value": null, + }, + Object { + "actualText": "5343", + "id": "root[&]浙江省[&]杭州市-root[&]家具[&]沙发[&]number", + "value": 5343, + }, + Object { + "actualText": "632", + "id": "root[&]浙江省[&]绍兴市-root[&]家具[&]沙发[&]number", + "value": 632, + }, + Object { + "actualText": "7234", + "id": "root[&]浙江省[&]宁波市-root[&]家具[&]沙发[&]number", + "value": 7234, + }, + Object { + "actualText": "834", + "id": "root[&]浙江省[&]舟山市-root[&]家具[&]沙发[&]number", + "value": 834, + }, + Object { + "actualText": "2451", + "id": "root[&]四川省[&]成都市-root[&]家具[&]沙发[&]number", + "value": 2451, + }, + Object { + "actualText": "2244", + "id": "root[&]四川省[&]绵阳市-root[&]家具[&]沙发[&]number", + "value": 2244, + }, + Object { + "actualText": "2333", + "id": "root[&]四川省[&]南充市-root[&]家具[&]沙发[&]number", + "value": 2333, + }, + Object { + "actualText": "2445", + "id": "root[&]四川省[&]乐山市-root[&]家具[&]沙发[&]number", + "value": 2445, + }, + Object { + "actualText": "我是占位符", + "id": "root[&]$$null$$[&]$$null$$-root[&]办公用品[&]笔[&]number", + "value": null, + }, + Object { + "actualText": "945", + "id": "root[&]浙江省[&]杭州市-root[&]办公用品[&]笔[&]number", + "value": 945, + }, + Object { + "actualText": "1304", + "id": "root[&]浙江省[&]绍兴市-root[&]办公用品[&]笔[&]number", + "value": 1304, + }, + Object { + "actualText": "1145", + "id": "root[&]浙江省[&]宁波市-root[&]办公用品[&]笔[&]number", + "value": 1145, + }, + Object { + "actualText": "1432", + "id": "root[&]浙江省[&]舟山市-root[&]办公用品[&]笔[&]number", + "value": 1432, + }, + Object { + "actualText": "2335", + "id": "root[&]四川省[&]成都市-root[&]办公用品[&]笔[&]number", + "value": 2335, + }, + Object { + "actualText": "245", + "id": "root[&]四川省[&]绵阳市-root[&]办公用品[&]笔[&]number", + "value": 245, + }, + Object { + "actualText": "2457", + "id": "root[&]四川省[&]南充市-root[&]办公用品[&]笔[&]number", + "value": 2457, + }, + Object { + "actualText": "2458", + "id": "root[&]四川省[&]乐山市-root[&]办公用品[&]笔[&]number", + "value": 2458, + }, + Object { + "actualText": "我是占位符", + "id": "root[&]$$null$$[&]$$null$$-root[&]办公用品[&]纸张[&]number", + "value": null, + }, + Object { + "actualText": "1343", + "id": "root[&]浙江省[&]杭州市-root[&]办公用品[&]纸张[&]number", + "value": 1343, + }, + Object { + "actualText": "1354", + "id": "root[&]浙江省[&]绍兴市-root[&]办公用品[&]纸张[&]number", + "value": 1354, + }, + Object { + "actualText": "1523", + "id": "root[&]浙江省[&]宁波市-root[&]办公用品[&]纸张[&]number", + "value": 1523, + }, + Object { + "actualText": "1634", + "id": "root[&]浙江省[&]舟山市-root[&]办公用品[&]纸张[&]number", + "value": 1634, + }, + Object { + "actualText": "4004", + "id": "root[&]四川省[&]成都市-root[&]办公用品[&]纸张[&]number", + "value": 4004, + }, + Object { + "actualText": "3077", + "id": "root[&]四川省[&]绵阳市-root[&]办公用品[&]纸张[&]number", + "value": 3077, + }, + Object { + "actualText": "3551", + "id": "root[&]四川省[&]南充市-root[&]办公用品[&]纸张[&]number", + "value": 3551, + }, + Object { + "actualText": "352", + "id": "root[&]四川省[&]乐山市-root[&]办公用品[&]纸张[&]number", + "value": 352, + }, +] +`; + +exports[`Cell Nill Value Tests should get correctly nill cell value 1`] = ` +Array [ + Object { + "actualText": "省份", + "id": "province", + "value": "省份", + }, + Object { + "actualText": "城市", + "id": "city", + "value": "城市", + }, + Object { + "actualText": "类别", + "id": "type", + "value": "类别", + }, + Object { + "actualText": "子类别", + "id": "sub_type", + "value": "子类别", + }, + Object { + "actualText": "-", + "id": "root[&]$$null$$", + "value": undefined, + }, + Object { + "actualText": "-", + "id": "root[&]$$null$$[&]$$null$$", + "value": undefined, + }, + Object { + "actualText": "浙江省", + "id": "root[&]浙江省", + "value": "浙江省", + }, + Object { + "actualText": "杭州市", + "id": "root[&]浙江省[&]杭州市", + "value": "杭州市", + }, + Object { + "actualText": "绍兴市", + "id": "root[&]浙江省[&]绍兴市", + "value": "绍兴市", + }, + Object { + "actualText": "宁波市", + "id": "root[&]浙江省[&]宁波市", + "value": "宁波市", + }, + Object { + "actualText": "舟山市", + "id": "root[&]浙江省[&]舟山市", + "value": "舟山市", + }, + Object { + "actualText": "四川省", + "id": "root[&]四川省", + "value": "四川省", + }, + Object { + "actualText": "成都市", + "id": "root[&]四川省[&]成都市", + "value": "成都市", + }, + Object { + "actualText": "绵阳市", + "id": "root[&]四川省[&]绵阳市", + "value": "绵阳市", + }, + Object { + "actualText": "南充市", + "id": "root[&]四川省[&]南充市", + "value": "南充市", + }, + Object { + "actualText": "乐山市", + "id": "root[&]四川省[&]乐山市", + "value": "乐山市", + }, + Object { + "actualText": "-", + "id": "root[&]$$null$$", + "value": undefined, + }, + Object { + "actualText": "-", + "id": "root[&]$$null$$[&]$$null$$", + "value": undefined, + }, + Object { + "actualText": "数量", + "id": "root[&]$$null$$[&]$$null$$[&]number", + "value": "number", + }, + Object { + "actualText": "家具", + "id": "root[&]家具", + "value": "家具", + }, + Object { + "actualText": "桌子", + "id": "root[&]家具[&]桌子", + "value": "桌子", + }, + Object { + "actualText": "数量", + "id": "root[&]家具[&]桌子[&]number", + "value": "number", + }, + Object { + "actualText": "沙发", + "id": "root[&]家具[&]沙发", + "value": "沙发", + }, + Object { + "actualText": "数量", + "id": "root[&]家具[&]沙发[&]number", + "value": "number", + }, + Object { + "actualText": "办公用品", + "id": "root[&]办公用品", + "value": "办公用品", + }, + Object { + "actualText": "笔", + "id": "root[&]办公用品[&]笔", + "value": "笔", + }, + Object { + "actualText": "数量", + "id": "root[&]办公用品[&]笔[&]number", + "value": "number", + }, + Object { + "actualText": "纸张", + "id": "root[&]办公用品[&]纸张", + "value": "纸张", + }, + Object { + "actualText": "数量", + "id": "root[&]办公用品[&]纸张[&]number", + "value": "number", + }, + Object { + "actualText": "7789", + "id": "root[&]$$null$$[&]$$null$$-root[&]$$null$$[&]$$null$$[&]number", + "value": 7789, + }, + Object { + "actualText": "-", + "id": "root[&]浙江省[&]杭州市-root[&]$$null$$[&]$$null$$[&]number", + "value": null, + }, + Object { + "actualText": "-", + "id": "root[&]浙江省[&]绍兴市-root[&]$$null$$[&]$$null$$[&]number", + "value": null, + }, + Object { + "actualText": "-", + "id": "root[&]浙江省[&]宁波市-root[&]$$null$$[&]$$null$$[&]number", + "value": null, + }, + Object { + "actualText": "-", + "id": "root[&]浙江省[&]舟山市-root[&]$$null$$[&]$$null$$[&]number", + "value": null, + }, + Object { + "actualText": "-", + "id": "root[&]四川省[&]成都市-root[&]$$null$$[&]$$null$$[&]number", + "value": null, + }, + Object { + "actualText": "-", + "id": "root[&]四川省[&]绵阳市-root[&]$$null$$[&]$$null$$[&]number", + "value": null, + }, + Object { + "actualText": "-", + "id": "root[&]四川省[&]南充市-root[&]$$null$$[&]$$null$$[&]number", + "value": null, + }, + Object { + "actualText": "-", + "id": "root[&]四川省[&]乐山市-root[&]$$null$$[&]$$null$$[&]number", + "value": null, + }, + Object { + "actualText": "-", + "id": "root[&]$$null$$[&]$$null$$-root[&]家具[&]桌子[&]number", + "value": null, + }, + Object { + "actualText": "7789", + "id": "root[&]浙江省[&]杭州市-root[&]家具[&]桌子[&]number", + "value": 7789, + }, + Object { + "actualText": "2367", + "id": "root[&]浙江省[&]绍兴市-root[&]家具[&]桌子[&]number", + "value": 2367, + }, + Object { + "actualText": "3877", + "id": "root[&]浙江省[&]宁波市-root[&]家具[&]桌子[&]number", + "value": 3877, + }, + Object { + "actualText": "4342", + "id": "root[&]浙江省[&]舟山市-root[&]家具[&]桌子[&]number", + "value": 4342, + }, + Object { + "actualText": "1723", + "id": "root[&]四川省[&]成都市-root[&]家具[&]桌子[&]number", + "value": 1723, + }, + Object { + "actualText": "1822", + "id": "root[&]四川省[&]绵阳市-root[&]家具[&]桌子[&]number", + "value": 1822, + }, + Object { + "actualText": "1943", + "id": "root[&]四川省[&]南充市-root[&]家具[&]桌子[&]number", + "value": 1943, + }, + Object { + "actualText": "2330", + "id": "root[&]四川省[&]乐山市-root[&]家具[&]桌子[&]number", + "value": 2330, + }, + Object { + "actualText": "-", + "id": "root[&]$$null$$[&]$$null$$-root[&]家具[&]沙发[&]number", + "value": null, + }, + Object { + "actualText": "5343", + "id": "root[&]浙江省[&]杭州市-root[&]家具[&]沙发[&]number", + "value": 5343, + }, + Object { + "actualText": "632", + "id": "root[&]浙江省[&]绍兴市-root[&]家具[&]沙发[&]number", + "value": 632, + }, + Object { + "actualText": "7234", + "id": "root[&]浙江省[&]宁波市-root[&]家具[&]沙发[&]number", + "value": 7234, + }, + Object { + "actualText": "834", + "id": "root[&]浙江省[&]舟山市-root[&]家具[&]沙发[&]number", + "value": 834, + }, + Object { + "actualText": "2451", + "id": "root[&]四川省[&]成都市-root[&]家具[&]沙发[&]number", + "value": 2451, + }, + Object { + "actualText": "2244", + "id": "root[&]四川省[&]绵阳市-root[&]家具[&]沙发[&]number", + "value": 2244, + }, + Object { + "actualText": "2333", + "id": "root[&]四川省[&]南充市-root[&]家具[&]沙发[&]number", + "value": 2333, + }, + Object { + "actualText": "2445", + "id": "root[&]四川省[&]乐山市-root[&]家具[&]沙发[&]number", + "value": 2445, + }, + Object { + "actualText": "-", + "id": "root[&]$$null$$[&]$$null$$-root[&]办公用品[&]笔[&]number", + "value": null, + }, + Object { + "actualText": "945", + "id": "root[&]浙江省[&]杭州市-root[&]办公用品[&]笔[&]number", + "value": 945, + }, + Object { + "actualText": "1304", + "id": "root[&]浙江省[&]绍兴市-root[&]办公用品[&]笔[&]number", + "value": 1304, + }, + Object { + "actualText": "1145", + "id": "root[&]浙江省[&]宁波市-root[&]办公用品[&]笔[&]number", + "value": 1145, + }, + Object { + "actualText": "1432", + "id": "root[&]浙江省[&]舟山市-root[&]办公用品[&]笔[&]number", + "value": 1432, + }, + Object { + "actualText": "2335", + "id": "root[&]四川省[&]成都市-root[&]办公用品[&]笔[&]number", + "value": 2335, + }, + Object { + "actualText": "245", + "id": "root[&]四川省[&]绵阳市-root[&]办公用品[&]笔[&]number", + "value": 245, + }, + Object { + "actualText": "2457", + "id": "root[&]四川省[&]南充市-root[&]办公用品[&]笔[&]number", + "value": 2457, + }, + Object { + "actualText": "2458", + "id": "root[&]四川省[&]乐山市-root[&]办公用品[&]笔[&]number", + "value": 2458, + }, + Object { + "actualText": "-", + "id": "root[&]$$null$$[&]$$null$$-root[&]办公用品[&]纸张[&]number", + "value": null, + }, + Object { + "actualText": "1343", + "id": "root[&]浙江省[&]杭州市-root[&]办公用品[&]纸张[&]number", + "value": 1343, + }, + Object { + "actualText": "1354", + "id": "root[&]浙江省[&]绍兴市-root[&]办公用品[&]纸张[&]number", + "value": 1354, + }, + Object { + "actualText": "1523", + "id": "root[&]浙江省[&]宁波市-root[&]办公用品[&]纸张[&]number", + "value": 1523, + }, + Object { + "actualText": "1634", + "id": "root[&]浙江省[&]舟山市-root[&]办公用品[&]纸张[&]number", + "value": 1634, + }, + Object { + "actualText": "4004", + "id": "root[&]四川省[&]成都市-root[&]办公用品[&]纸张[&]number", + "value": 4004, + }, + Object { + "actualText": "3077", + "id": "root[&]四川省[&]绵阳市-root[&]办公用品[&]纸张[&]number", + "value": 3077, + }, + Object { + "actualText": "3551", + "id": "root[&]四川省[&]南充市-root[&]办公用品[&]纸张[&]number", + "value": 3551, + }, + Object { + "actualText": "352", + "id": "root[&]四川省[&]乐山市-root[&]办公用品[&]纸张[&]number", + "value": 352, + }, +] +`; diff --git a/packages/s2-core/__tests__/bugs/issue-2808-spec.ts b/packages/s2-core/__tests__/bugs/issue-2808-spec.ts new file mode 100644 index 0000000000..824eb513bb --- /dev/null +++ b/packages/s2-core/__tests__/bugs/issue-2808-spec.ts @@ -0,0 +1,58 @@ +/** + * @description spec for issue #2808 + * https://github.com/antvis/S2/issues/2808 + */ +import { type S2Options } from '../../src'; +import { createPivotSheet } from '../util/helpers'; + +describe('Cell Nill Value Tests', () => { + const getCellMetaList = async (s2Options?: S2Options) => { + const s2 = createPivotSheet( + { width: 800, height: 600, ...s2Options }, + { useSimpleData: false }, + ); + + const data = [ + { + number: 7789, + province: null, + city: null, + type: null, + sub_type: null, + }, + ...s2.dataCfg.data, + ]; + + s2.setDataCfg({ + data, + }); + + await s2.render(); + + return s2.facet.getCells().map((cell) => { + const meta = cell.getMeta(); + + return { + id: meta.id, + value: meta.value || meta.fieldValue, + actualText: cell.getActualText(), + }; + }); + }; + + test('should get correctly nill cell value', async () => { + const metaList = await getCellMetaList(); + + expect(metaList).toMatchSnapshot(); + }); + + test('should get correctly empty placeholder cell value', async () => { + const metaList = await getCellMetaList({ + placeholder: { + cell: '我是占位符', + }, + }); + + expect(metaList).toMatchSnapshot(); + }); +}); diff --git a/packages/s2-core/__tests__/spreadsheet/empty-string-values-spec.ts b/packages/s2-core/__tests__/spreadsheet/empty-string-values-spec.ts index 851bf34a5e..928f494f6a 100644 --- a/packages/s2-core/__tests__/spreadsheet/empty-string-values-spec.ts +++ b/packages/s2-core/__tests__/spreadsheet/empty-string-values-spec.ts @@ -81,7 +81,7 @@ describe('Empty String Values Tests', () => { test('should get correctly first dimension values', () => { const values = s2.dataSet.getDimensionValues('first'); - expect(values).toEqual(['', 'null', '非空维度']); + expect(values).toEqual(['', null, '非空维度']); }); test('should get correctly second dimension values', () => { @@ -102,7 +102,7 @@ describe('Empty String Values Tests', () => { expect(values).toEqual(['维值1', '维值2']); - values = s2.dataSet.getDimensionValues('second', { first: 'null' }); + values = s2.dataSet.getDimensionValues('second', { first: null }); expect(values).toEqual(['维值3', '维值4']); values = s2.dataSet.getDimensionValues('second', { first: '非空维度' }); @@ -115,8 +115,8 @@ describe('Empty String Values Tests', () => { expect(nodes.map((node) => node.id)).toEqual([ 'root[&][&]维值1', 'root[&][&]维值2', - 'root[&]null[&]维值3', - 'root[&]null[&]维值4', + 'root[&]$$null$$[&]维值3', + 'root[&]$$null$$[&]维值4', 'root[&]非空维度[&]维值5', 'root[&]非空维度[&]维值6', ]); diff --git a/packages/s2-core/__tests__/unit/facet/pivot-facet-spec.ts b/packages/s2-core/__tests__/unit/facet/pivot-facet-spec.ts index 06878d82d3..fa792a18a9 100644 --- a/packages/s2-core/__tests__/unit/facet/pivot-facet-spec.ts +++ b/packages/s2-core/__tests__/unit/facet/pivot-facet-spec.ts @@ -99,6 +99,7 @@ jest.mock('@/sheet-type', () => { measureTextWidth: jest.fn() as unknown as SpreadSheet['measureTextWidth'], getSeriesNumberText: jest.fn(() => getDefaultSeriesNumberText()), + getDisplayText: jest.fn((value) => value), }; }), }; diff --git a/packages/s2-core/__tests__/unit/facet/table-facet-spec.ts b/packages/s2-core/__tests__/unit/facet/table-facet-spec.ts index 0ab1fd7c08..5bdb18ef77 100644 --- a/packages/s2-core/__tests__/unit/facet/table-facet-spec.ts +++ b/packages/s2-core/__tests__/unit/facet/table-facet-spec.ts @@ -84,6 +84,7 @@ jest.mock('@/sheet-type', () => { measureTextWidthRoughly: jest.fn(), measureTextWidth: jest.fn(), getSeriesNumberText: jest.fn(() => getDefaultSeriesNumberText()), + getDisplayText: jest.fn((value) => value), }; }), }; diff --git a/packages/s2-core/__tests__/unit/utils/export/__snapshots__/copy-spec.ts.snap b/packages/s2-core/__tests__/unit/utils/export/__snapshots__/copy-spec.ts.snap index da40abda1a..94d5443b32 100644 --- a/packages/s2-core/__tests__/unit/utils/export/__snapshots__/copy-spec.ts.snap +++ b/packages/s2-core/__tests__/unit/utils/export/__snapshots__/copy-spec.ts.snap @@ -61,15 +61,15 @@ exports[`List Table Core Data Process should copy all data with header in table `; exports[`List Table Core Data Process should copy correct data when selected diagonal cells 1`] = ` -"浙江省 - - - - - - - - 宁波市" +"浙江省 - +- - +- - +- - +- - +- - +- - +- - +- 宁波市" `; exports[`List Table Core Data Process should copy correctly data with header in table mode if contain repeat column 1`] = ` @@ -365,12 +365,12 @@ exports[`Tree Table Core Data Process should copy all data in tree mode 1`] = ` exports[`Tree Table Core Data Process should copy all data in tree mode for custom row cell 1`] = ` "家具 家具 家具 总计 桌子 椅子 小计 - - -13 11 -2 8 - - " +- - - - +- - - - +13 11 - - +2 8 - - +- - - - +- - - -" `; exports[`Tree Table Core Data Process should copy all data in tree mode with format 1`] = ` diff --git a/packages/s2-core/__tests__/unit/utils/export/__snapshots__/export-spec.ts.snap b/packages/s2-core/__tests__/unit/utils/export/__snapshots__/export-spec.ts.snap index 178c2991dd..7721a2ad22 100644 --- a/packages/s2-core/__tests__/unit/utils/export/__snapshots__/export-spec.ts.snap +++ b/packages/s2-core/__tests__/unit/utils/export/__snapshots__/export-spec.ts.snap @@ -5,30 +5,30 @@ exports[`PivotSheet Export Test Custom Tree Export Test should export correct da 层级1 自定义节点 a-1-1 指标1 桌子 椅子 自定义节点 a-1 自定义节点 a-1-1 指标1 13 11 自定义节点 a-1 自定义节点 a-1-1 指标2 2 8 -自定义节点 a-1 自定义节点 a-1-2 -自定义节点 a-2 " +自定义节点 a-1 自定义节点 a-1-2 - - +自定义节点 a-2 - -" `; exports[`PivotSheet Export Test Custom Tree Export Test should export correct data in tree mode for custom row cell 1`] = ` " 类型 家具 家具 层级1/层级2/数值 桌子 椅子 -自定义节点 a-1 -自定义节点 a-1 自定义节点 a-1-1 +自定义节点 a-1 - - +自定义节点 a-1 自定义节点 a-1-1 - - 自定义节点 a-1 自定义节点 a-1-1 指标1 13 11 自定义节点 a-1 自定义节点 a-1-1 指标2 2 8 -自定义节点 a-1 自定义节点 a-1-2 -自定义节点 a-2 " +自定义节点 a-1 自定义节点 a-1-2 - - +自定义节点 a-2 - -" `; exports[`PivotSheet Export Test Custom Tree Export Test should export correct data in tree mode for custom row cell and custom corner text 1`] = ` " 类型 家具 家具 自定义 桌子 椅子 -自定义节点 a-1 -自定义节点 a-1 自定义节点 a-1-1 +自定义节点 a-1 - - +自定义节点 a-1 自定义节点 a-1-1 - - 自定义节点 a-1 自定义节点 a-1-1 指标1 13 11 自定义节点 a-1 自定义节点 a-1-1 指标2 2 8 -自定义节点 a-1 自定义节点 a-1-2 -自定义节点 a-2 " +自定义节点 a-1 自定义节点 a-1-2 - - +自定义节点 a-2 - -" `; exports[`PivotSheet Export Test should export correct data by {formatHeader: true} 1`] = ` @@ -79,17 +79,17 @@ exports[`PivotSheet Export Test should export correct data in grid mode with gro exports[`PivotSheet Export Test should export correct data in grid mode with grouped totals in row 1`] = ` " 类别 家具 家具 家具 办公用品 办公用品 办公用品 总计 总计 总计 总计 子类别 桌子 沙发 小计 笔 纸张 小计 桌子 沙发 笔 纸张 -浙江省 杭州市 数量 7789 5343 13132 945 1343 2288 -浙江省 绍兴市 数量 2367 632 2999 1304 1354 2658 -浙江省 宁波市 数量 3877 7234 11111 1145 1523 2668 -浙江省 舟山市 数量 4342 834 5176 1432 1634 3066 -浙江省 小计 18375 14043 32418 4826 5854 10680 -四川省 成都市 数量 1723 2451 4174 2335 4004 6339 -四川省 绵阳市 数量 1822 2244 4066 245 3077 3322 -四川省 南充市 数量 1943 2333 4276 2457 3551 6008 -四川省 乐山市 数量 2330 2445 4775 2458 352 2810 -四川省 小计 7818 9473 17291 7495 10984 18479 -总计 26193 23516 49709 12321 16838 29159 " +浙江省 杭州市 数量 7789 5343 13132 945 1343 2288 - - - - +浙江省 绍兴市 数量 2367 632 2999 1304 1354 2658 - - - - +浙江省 宁波市 数量 3877 7234 11111 1145 1523 2668 - - - - +浙江省 舟山市 数量 4342 834 5176 1432 1634 3066 - - - - +浙江省 小计 18375 14043 32418 4826 5854 10680 - - - - +四川省 成都市 数量 1723 2451 4174 2335 4004 6339 - - - - +四川省 绵阳市 数量 1822 2244 4066 245 3077 3322 - - - - +四川省 南充市 数量 1943 2333 4276 2457 3551 6008 - - - - +四川省 乐山市 数量 2330 2445 4775 2458 352 2810 - - - - +四川省 小计 7818 9473 17291 7495 10984 18479 - - - - +总计 26193 23516 49709 12321 16838 29159 - - - -" `; exports[`PivotSheet Export Test should export correct data in grid mode with totals in col 1`] = ` @@ -142,12 +142,12 @@ exports[`PivotSheet Export Test should export correct data in tree mode 1`] = ` " 类别 家具 家具 办公用品 办公用品 子类别 桌子 沙发 笔 纸张 省份 城市 数量 数量 数量 数量 -浙江省 +浙江省 - - - - 浙江省 杭州市 7789 5343 945 1343 浙江省 绍兴市 2367 632 1304 1354 浙江省 宁波市 3877 7234 1145 1523 浙江省 舟山市 4342 834 1432 1634 -四川省 +四川省 - - - - 四川省 成都市 1723 2451 2335 4004 四川省 绵阳市 1822 2244 245 3077 四川省 南充市 1943 2333 2457 3551 @@ -158,12 +158,12 @@ exports[`PivotSheet Export Test should export correct data in tree mode and coll " 类别 家具 家具 办公用品 办公用品 子类别 桌子 沙发 笔 纸张 省份 城市 数量 数量 数量 数量 -浙江省 +浙江省 - - - - 浙江省 杭州市 7789 5343 945 1343 浙江省 绍兴市 2367 632 1304 1354 浙江省 宁波市 3877 7234 1145 1523 浙江省 舟山市 4342 834 1432 1634 -四川省 +四川省 - - - - 四川省 成都市 1723 2451 2335 4004 四川省 绵阳市 1822 2244 245 3077 四川省 南充市 1943 2333 2457 3551 @@ -174,8 +174,8 @@ exports[`PivotSheet Export Test should export correct data in tree mode and row "类别 家具 家具 办公用品 办公用品 子类别 桌子 沙发 笔 纸张 省份 数量 数量 数量 数量 -浙江省 -四川省 " +浙江省 - - - - +四川省 - - - -" `; exports[`PivotSheet Export Test should export correct value field name by {formatHeader: false, formatData: true} 1`] = ` @@ -268,51 +268,51 @@ exports[`TableSheet Export Test should export correct data with no series number 四川省 绵阳市 办公用品 纸张 3077 四川省 南充市 办公用品 纸张 3551 四川省 乐山市 办公用品 纸张 352 - 家具 桌子 26193 - 家具 49709 - 家具 沙发 23516 - 办公用品 29159 - 办公用品 笔 12321 - 办公用品 纸张 16838 -浙江省 家具 桌子 18375 -浙江省 家具 沙发 14043 -浙江省 办公用品 笔 4826 -浙江省 办公用品 纸张 5854 -四川省 家具 桌子 7818 -四川省 家具 沙发 9473 -四川省 办公用品 笔 7495 -四川省 办公用品 纸张 10984 -浙江省 杭州市 家具 13132 -浙江省 杭州市 办公用品 2288 -浙江省 杭州市 15420 -浙江省 绍兴市 家具 2999 -浙江省 绍兴市 办公用品 2658 -浙江省 绍兴市 5657 -浙江省 宁波市 家具 11111 -浙江省 宁波市 办公用品 2668 -浙江省 宁波市 13779 -浙江省 舟山市 家具 5176 -浙江省 舟山市 办公用品 3066 -浙江省 舟山市 8242 -四川省 成都市 家具 4174 -四川省 成都市 办公用品 6339 -四川省 成都市 10513 -四川省 绵阳市 家具 4066 -四川省 绵阳市 办公用品 3322 -四川省 绵阳市 7388 -四川省 南充市 家具 4276 -四川省 南充市 办公用品 6008 -四川省 南充市 10284 -四川省 乐山市 家具 4775 -四川省 乐山市 办公用品 2810 -四川省 乐山市 7585 -浙江省 家具 32418 -浙江省 办公用品 10680 -浙江省 43098 -四川省 家具 17291 -四川省 办公用品 18479 -四川省 35770 - 78868" +- - 家具 桌子 26193 +- - 家具 - 49709 +- - 家具 沙发 23516 +- - 办公用品 - 29159 +- - 办公用品 笔 12321 +- - 办公用品 纸张 16838 +浙江省 - 家具 桌子 18375 +浙江省 - 家具 沙发 14043 +浙江省 - 办公用品 笔 4826 +浙江省 - 办公用品 纸张 5854 +四川省 - 家具 桌子 7818 +四川省 - 家具 沙发 9473 +四川省 - 办公用品 笔 7495 +四川省 - 办公用品 纸张 10984 +浙江省 杭州市 家具 - 13132 +浙江省 杭州市 办公用品 - 2288 +浙江省 杭州市 - - 15420 +浙江省 绍兴市 家具 - 2999 +浙江省 绍兴市 办公用品 - 2658 +浙江省 绍兴市 - - 5657 +浙江省 宁波市 家具 - 11111 +浙江省 宁波市 办公用品 - 2668 +浙江省 宁波市 - - 13779 +浙江省 舟山市 家具 - 5176 +浙江省 舟山市 办公用品 - 3066 +浙江省 舟山市 - - 8242 +四川省 成都市 家具 - 4174 +四川省 成都市 办公用品 - 6339 +四川省 成都市 - - 10513 +四川省 绵阳市 家具 - 4066 +四川省 绵阳市 办公用品 - 3322 +四川省 绵阳市 - - 7388 +四川省 南充市 家具 - 4276 +四川省 南充市 办公用品 - 6008 +四川省 南充市 - - 10284 +四川省 乐山市 家具 - 4775 +四川省 乐山市 办公用品 - 2810 +四川省 乐山市 - - 7585 +浙江省 - 家具 - 32418 +浙江省 - 办公用品 - 10680 +浙江省 - - - 43098 +四川省 - 家具 - 17291 +四川省 - 办公用品 - 18479 +四川省 - - - 35770 +- - - - 78868" `; exports[`TableSheet Export Test should export correct data with series number 1`] = ` @@ -349,49 +349,49 @@ exports[`TableSheet Export Test should export correct data with series number 1` 30 四川省 绵阳市 办公用品-产品 纸张 3077 31 四川省 南充市 办公用品-产品 纸张 3551 32 四川省 乐山市 办公用品-产品 纸张 352 -33 家具-产品 桌子 26193 -34 家具-产品 49709 -35 家具-产品 沙发 23516 -36 办公用品-产品 29159 -37 办公用品-产品 笔 12321 -38 办公用品-产品 纸张 16838 -39 浙江省 家具-产品 桌子 18375 -40 浙江省 家具-产品 沙发 14043 -41 浙江省 办公用品-产品 笔 4826 -42 浙江省 办公用品-产品 纸张 5854 -43 四川省 家具-产品 桌子 7818 -44 四川省 家具-产品 沙发 9473 -45 四川省 办公用品-产品 笔 7495 -46 四川省 办公用品-产品 纸张 10984 -47 浙江省 杭州市 家具-产品 13132 -48 浙江省 杭州市 办公用品-产品 2288 -49 浙江省 杭州市 15420 -50 浙江省 绍兴市 家具-产品 2999 -51 浙江省 绍兴市 办公用品-产品 2658 -52 浙江省 绍兴市 5657 -53 浙江省 宁波市 家具-产品 11111 -54 浙江省 宁波市 办公用品-产品 2668 -55 浙江省 宁波市 13779 -56 浙江省 舟山市 家具-产品 5176 -57 浙江省 舟山市 办公用品-产品 3066 -58 浙江省 舟山市 8242 -59 四川省 成都市 家具-产品 4174 -60 四川省 成都市 办公用品-产品 6339 -61 四川省 成都市 10513 -62 四川省 绵阳市 家具-产品 4066 -63 四川省 绵阳市 办公用品-产品 3322 -64 四川省 绵阳市 7388 -65 四川省 南充市 家具-产品 4276 -66 四川省 南充市 办公用品-产品 6008 -67 四川省 南充市 10284 -68 四川省 乐山市 家具-产品 4775 -69 四川省 乐山市 办公用品-产品 2810 -70 四川省 乐山市 7585 -71 浙江省 家具-产品 32418 -72 浙江省 办公用品-产品 10680 -73 浙江省 43098 -74 四川省 家具-产品 17291 -75 四川省 办公用品-产品 18479 -76 四川省 35770 -77 78868" +33 - - 家具-产品 桌子 26193 +34 - - 家具-产品 - 49709 +35 - - 家具-产品 沙发 23516 +36 - - 办公用品-产品 - 29159 +37 - - 办公用品-产品 笔 12321 +38 - - 办公用品-产品 纸张 16838 +39 浙江省 - 家具-产品 桌子 18375 +40 浙江省 - 家具-产品 沙发 14043 +41 浙江省 - 办公用品-产品 笔 4826 +42 浙江省 - 办公用品-产品 纸张 5854 +43 四川省 - 家具-产品 桌子 7818 +44 四川省 - 家具-产品 沙发 9473 +45 四川省 - 办公用品-产品 笔 7495 +46 四川省 - 办公用品-产品 纸张 10984 +47 浙江省 杭州市 家具-产品 - 13132 +48 浙江省 杭州市 办公用品-产品 - 2288 +49 浙江省 杭州市 - - 15420 +50 浙江省 绍兴市 家具-产品 - 2999 +51 浙江省 绍兴市 办公用品-产品 - 2658 +52 浙江省 绍兴市 - - 5657 +53 浙江省 宁波市 家具-产品 - 11111 +54 浙江省 宁波市 办公用品-产品 - 2668 +55 浙江省 宁波市 - - 13779 +56 浙江省 舟山市 家具-产品 - 5176 +57 浙江省 舟山市 办公用品-产品 - 3066 +58 浙江省 舟山市 - - 8242 +59 四川省 成都市 家具-产品 - 4174 +60 四川省 成都市 办公用品-产品 - 6339 +61 四川省 成都市 - - 10513 +62 四川省 绵阳市 家具-产品 - 4066 +63 四川省 绵阳市 办公用品-产品 - 3322 +64 四川省 绵阳市 - - 7388 +65 四川省 南充市 家具-产品 - 4276 +66 四川省 南充市 办公用品-产品 - 6008 +67 四川省 南充市 - - 10284 +68 四川省 乐山市 家具-产品 - 4775 +69 四川省 乐山市 办公用品-产品 - 2810 +70 四川省 乐山市 - - 7585 +71 浙江省 - 家具-产品 - 32418 +72 浙江省 - 办公用品-产品 - 10680 +73 浙江省 - - - 43098 +74 四川省 - 家具-产品 - 17291 +75 四川省 - 办公用品-产品 - 18479 +76 四川省 - - - 35770 +77 - - - - 78868" `; diff --git a/packages/s2-core/__tests__/util/helpers.ts b/packages/s2-core/__tests__/util/helpers.ts index 3e0cfbe2ae..77798f9228 100644 --- a/packages/s2-core/__tests__/util/helpers.ts +++ b/packages/s2-core/__tests__/util/helpers.ts @@ -231,6 +231,7 @@ export const createFakeSpreadSheet = (config?: { s2.measureTextWidth = jest.fn(); s2.isFrozenRowHeader = jest.fn(); s2.getSeriesNumberText = jest.fn(() => getDefaultSeriesNumberText()); + s2.getDisplayText = jest.fn((value) => value); s2.theme = getTheme({ name: 'default', spreadsheet: s2, diff --git a/packages/s2-core/src/utils/layout/generate-id.ts b/packages/s2-core/src/utils/layout/generate-id.ts index 2bff144238..536dd83550 100644 --- a/packages/s2-core/src/utils/layout/generate-id.ts +++ b/packages/s2-core/src/utils/layout/generate-id.ts @@ -36,7 +36,7 @@ export const resolveNillString = (value: string) => { return undefined; } - return String(value); + return value; }; export const generateId = (...ids: string[]): string => { diff --git a/packages/s2-core/src/utils/text.ts b/packages/s2-core/src/utils/text.ts index 114d2e2545..49d0964c2e 100644 --- a/packages/s2-core/src/utils/text.ts +++ b/packages/s2-core/src/utils/text.ts @@ -46,13 +46,14 @@ export const getDisplayText = ( text: SimpleData, placeholder?: string | undefined | null, ) => { + const displayText = resolveNillString(text as string); const emptyPlaceholder = placeholder ?? EMPTY_PLACEHOLDER; - const isInvalidNumber = isNumber(text) && Number.isNaN(text); + const isInvalidNumber = isNumber(displayText) && Number.isNaN(displayText); // 对应维度缺少维度数据时, 会使用 EMPTY_FIELD_VALUE 填充, 实际渲染时统一转成 "-" - const isEmptyString = text === '' || text === EMPTY_FIELD_VALUE; - const isEmptyText = isNil(text) || isInvalidNumber || isEmptyString; + const isEmptyString = displayText === '' || displayText === EMPTY_FIELD_VALUE; + const isEmptyText = isNil(displayText) || isInvalidNumber || isEmptyString; - return isEmptyText ? emptyPlaceholder : resolveNillString(text as string); + return isEmptyText ? emptyPlaceholder : resolveNillString(`${displayText}`); }; /** diff --git a/s2-site/docs/api/basic-class/node.zh.md b/s2-site/docs/api/basic-class/node.zh.md index d90c6f65fa..93d5a46515 100644 --- a/s2-site/docs/api/basic-class/node.zh.md +++ b/s2-site/docs/api/basic-class/node.zh.md @@ -11,7 +11,7 @@ node.isTotals // false | 参数 | 说明 | 类型 | | --- | --- | --- | -| id | 节点 id | `string` | +| id | 节点 id (如维值为空,会将 `null` 转换为 `$$null$$`, 便于内部识别原始维值) | `string` | | field | 节点 key | `string` | | value | 节点值 | `string` | | level | 节点等级 | `number` | diff --git a/s2-site/docs/manual/migration-v2.zh.md b/s2-site/docs/manual/migration-v2.zh.md index aa12c0fce3..33a88497ad 100644 --- a/s2-site/docs/manual/migration-v2.zh.md +++ b/s2-site/docs/manual/migration-v2.zh.md @@ -746,6 +746,20 @@ s2.on(S2Event.GLOBAL_LINK_FIELD_JUMP, (data) => { 具体请查看 [链接跳转](/manual/advanced/interaction/link-jump) 相关文档。 +#### 行列维值为空时 ID 生成规则变更 + +在 `1.x` 中由于会将维值转为字符串,如果维值为空 (null), 会转换成 `"null"`, 导致无法获取原始维值,`2.x` 版本中会对该情况增加特殊标识,便于识别 `null` 的情况,正确识别原始维值,以及空值占位符逻辑。 + +```diff +{ +- id: 'root[&]null', +- value: 'null' + ++ id: 'root[&]$$null$$', ++ value: null +} +``` + ### 组件层 @antv/s2-react #### 支持 React 18 和 Ant Design 5.0 From 267b529405bf3d4d4b80975158d08ddda07b6033 Mon Sep 17 00:00:00 2001 From: lijinke666 Date: Wed, 10 Jul 2024 16:19:54 +0800 Subject: [PATCH 4/6] =?UTF-8?q?fix:=20=E7=BB=9F=E4=B8=80=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=8C=96=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../multi-line-text-spec.ts.snap | 1994 ++++++++--------- .../unit/data-set/pivot-data-set-spec.ts | 34 +- .../unit/data-set/table-data-set-spec.ts | 2 +- .../__tests__/unit/facet/pivot-facet-spec.ts | 1 - .../__tests__/unit/facet/table-facet-spec.ts | 1 - .../unit/utils/layout/generate-id-spec.ts | 81 +- .../unit/utils/layout/generate-id.spec.ts | 55 - .../s2-core/__tests__/unit/utils/text-spec.ts | 31 + packages/s2-core/__tests__/util/helpers.ts | 1 - packages/s2-core/src/cell/base-cell.ts | 25 +- packages/s2-core/src/cell/data-cell.ts | 3 +- .../s2-core/src/common/interface/basic.ts | 2 +- .../s2-core/src/data-set/base-data-set.ts | 26 +- .../s2-core/src/sheet-type/spread-sheet.ts | 8 - .../src/utils/dataset/pivot-data-set.ts | 4 +- .../s2-core/src/utils/export/copy/common.ts | 21 +- .../s2-core/src/utils/layout/generate-id.ts | 4 +- packages/s2-core/src/utils/text.ts | 2 +- packages/s2-core/src/utils/tooltip.ts | 18 +- s2-site/docs/api/basic-class/base-cell.zh.md | 2 +- s2-site/docs/manual/migration-v2.zh.md | 2 +- 21 files changed, 1190 insertions(+), 1127 deletions(-) delete mode 100644 packages/s2-core/__tests__/unit/utils/layout/generate-id.spec.ts diff --git a/packages/s2-core/__tests__/spreadsheet/__snapshots__/multi-line-text-spec.ts.snap b/packages/s2-core/__tests__/spreadsheet/__snapshots__/multi-line-text-spec.ts.snap index 1f0a0eb37f..ed4293c5e8 100644 --- a/packages/s2-core/__tests__/spreadsheet/__snapshots__/multi-line-text-spec.ts.snap +++ b/packages/s2-core/__tests__/spreadsheet/__snapshots__/multi-line-text-spec.ts.snap @@ -619,7 +619,7 @@ Array [ "23672367236", "1111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 96, }, Object { @@ -630,7 +630,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 96, }, Object { @@ -641,7 +641,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 96, }, Object { @@ -674,7 +674,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 96, }, Object { @@ -685,7 +685,7 @@ Array [ "multiLineActualTexts": Array [ "1822", ], - "originalText": "1822", + "originalText": 1822, "width": 96, }, Object { @@ -696,7 +696,7 @@ Array [ "multiLineActualTexts": Array [ "1943", ], - "originalText": "1943", + "originalText": 1943, "width": 96, }, Object { @@ -707,7 +707,7 @@ Array [ "multiLineActualTexts": Array [ "2330", ], - "originalText": "2330", + "originalText": 2330, "width": 96, }, Object { @@ -729,7 +729,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 96, }, Object { @@ -740,7 +740,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 96, }, Object { @@ -751,7 +751,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 96, }, Object { @@ -762,7 +762,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 96, }, Object { @@ -784,7 +784,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 96, }, Object { @@ -795,7 +795,7 @@ Array [ "multiLineActualTexts": Array [ "2244", ], - "originalText": "2244", + "originalText": 2244, "width": 96, }, Object { @@ -806,7 +806,7 @@ Array [ "multiLineActualTexts": Array [ "2333", ], - "originalText": "2333", + "originalText": 2333, "width": 96, }, Object { @@ -817,7 +817,7 @@ Array [ "multiLineActualTexts": Array [ "2445", ], - "originalText": "2445", + "originalText": 2445, "width": 96, }, Object { @@ -951,7 +951,7 @@ Array [ "multiLineActualTexts": Array [ "1304", ], - "originalText": "1304", + "originalText": 1304, "width": 96, }, Object { @@ -962,7 +962,7 @@ Array [ "multiLineActualTexts": Array [ "1145", ], - "originalText": "1145", + "originalText": 1145, "width": 96, }, Object { @@ -973,7 +973,7 @@ Array [ "multiLineActualTexts": Array [ "1432", ], - "originalText": "1432", + "originalText": 1432, "width": 96, }, Object { @@ -984,7 +984,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 96, }, Object { @@ -1006,7 +1006,7 @@ Array [ "multiLineActualTexts": Array [ "2335", ], - "originalText": "2335", + "originalText": 2335, "width": 96, }, Object { @@ -1017,7 +1017,7 @@ Array [ "multiLineActualTexts": Array [ "245", ], - "originalText": "245", + "originalText": 245, "width": 96, }, Object { @@ -1028,7 +1028,7 @@ Array [ "multiLineActualTexts": Array [ "2457", ], - "originalText": "2457", + "originalText": 2457, "width": 96, }, Object { @@ -1039,7 +1039,7 @@ Array [ "multiLineActualTexts": Array [ "2458", ], - "originalText": "2458", + "originalText": 2458, "width": 96, }, Object { @@ -1061,7 +1061,7 @@ Array [ "multiLineActualTexts": Array [ "1354", ], - "originalText": "1354", + "originalText": 1354, "width": 96, }, Object { @@ -1072,7 +1072,7 @@ Array [ "multiLineActualTexts": Array [ "1523", ], - "originalText": "1523", + "originalText": 1523, "width": 96, }, Object { @@ -1083,7 +1083,7 @@ Array [ "multiLineActualTexts": Array [ "1634", ], - "originalText": "1634", + "originalText": 1634, "width": 96, }, Object { @@ -1094,7 +1094,7 @@ Array [ "multiLineActualTexts": Array [ "1343", ], - "originalText": "1343", + "originalText": 1343, "width": 96, }, Object { @@ -1116,7 +1116,7 @@ Array [ "multiLineActualTexts": Array [ "4004", ], - "originalText": "4004", + "originalText": 4004, "width": 96, }, Object { @@ -1127,7 +1127,7 @@ Array [ "multiLineActualTexts": Array [ "3077", ], - "originalText": "3077", + "originalText": 3077, "width": 96, }, Object { @@ -1138,7 +1138,7 @@ Array [ "multiLineActualTexts": Array [ "3551", ], - "originalText": "3551", + "originalText": 3551, "width": 96, }, Object { @@ -1149,7 +1149,7 @@ Array [ "multiLineActualTexts": Array [ "352", ], - "originalText": "352", + "originalText": 352, "width": 96, }, ] @@ -1361,7 +1361,7 @@ Array [ "multiLineActualTexts": Array [ "2367236723...", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 96, }, Object { @@ -1372,7 +1372,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 96, }, Object { @@ -1383,7 +1383,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 96, }, Object { @@ -1416,7 +1416,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 96, }, Object { @@ -1427,7 +1427,7 @@ Array [ "multiLineActualTexts": Array [ "1822", ], - "originalText": "1822", + "originalText": 1822, "width": 96, }, Object { @@ -1438,7 +1438,7 @@ Array [ "multiLineActualTexts": Array [ "1943", ], - "originalText": "1943", + "originalText": 1943, "width": 96, }, Object { @@ -1449,7 +1449,7 @@ Array [ "multiLineActualTexts": Array [ "2330", ], - "originalText": "2330", + "originalText": 2330, "width": 96, }, Object { @@ -1460,7 +1460,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 96, }, Object { @@ -1471,7 +1471,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 96, }, Object { @@ -1482,7 +1482,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 96, }, Object { @@ -1493,7 +1493,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 96, }, Object { @@ -1515,7 +1515,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 96, }, Object { @@ -1526,7 +1526,7 @@ Array [ "multiLineActualTexts": Array [ "2244", ], - "originalText": "2244", + "originalText": 2244, "width": 96, }, Object { @@ -1537,7 +1537,7 @@ Array [ "multiLineActualTexts": Array [ "2333", ], - "originalText": "2333", + "originalText": 2333, "width": 96, }, Object { @@ -1548,7 +1548,7 @@ Array [ "multiLineActualTexts": Array [ "2445", ], - "originalText": "2445", + "originalText": 2445, "width": 96, }, ] @@ -1881,7 +1881,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 119.67, }, Object { @@ -1892,7 +1892,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 119.67, }, Object { @@ -1925,7 +1925,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 119.67, }, Object { @@ -1936,7 +1936,7 @@ Array [ "multiLineActualTexts": Array [ "1822", ], - "originalText": "1822", + "originalText": 1822, "width": 119.67, }, Object { @@ -1947,7 +1947,7 @@ Array [ "multiLineActualTexts": Array [ "1943", ], - "originalText": "1943", + "originalText": 1943, "width": 119.67, }, Object { @@ -1958,7 +1958,7 @@ Array [ "multiLineActualTexts": Array [ "2330", ], - "originalText": "2330", + "originalText": 2330, "width": 119.67, }, Object { @@ -1969,7 +1969,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 119.67, }, Object { @@ -1980,7 +1980,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 119.67, }, Object { @@ -1991,7 +1991,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 119.67, }, Object { @@ -2002,7 +2002,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 119.67, }, Object { @@ -2013,7 +2013,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 119.67, }, Object { @@ -2024,7 +2024,7 @@ Array [ "multiLineActualTexts": Array [ "2244", ], - "originalText": "2244", + "originalText": 2244, "width": 119.67, }, Object { @@ -2035,7 +2035,7 @@ Array [ "multiLineActualTexts": Array [ "2333", ], - "originalText": "2333", + "originalText": 2333, "width": 119.67, }, Object { @@ -2046,7 +2046,7 @@ Array [ "multiLineActualTexts": Array [ "2445", ], - "originalText": "2445", + "originalText": 2445, "width": 119.67, }, Object { @@ -2057,7 +2057,7 @@ Array [ "multiLineActualTexts": Array [ "1145", ], - "originalText": "1145", + "originalText": 1145, "width": 119.67, }, Object { @@ -2068,7 +2068,7 @@ Array [ "multiLineActualTexts": Array [ "1432", ], - "originalText": "1432", + "originalText": 1432, "width": 119.67, }, Object { @@ -2079,7 +2079,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 119.67, }, Object { @@ -2090,7 +2090,7 @@ Array [ "multiLineActualTexts": Array [ "1304", ], - "originalText": "1304", + "originalText": 1304, "width": 119.67, }, Object { @@ -2101,7 +2101,7 @@ Array [ "multiLineActualTexts": Array [ "2335", ], - "originalText": "2335", + "originalText": 2335, "width": 119.67, }, Object { @@ -2112,7 +2112,7 @@ Array [ "multiLineActualTexts": Array [ "245", ], - "originalText": "245", + "originalText": 245, "width": 119.67, }, Object { @@ -2123,7 +2123,7 @@ Array [ "multiLineActualTexts": Array [ "2457", ], - "originalText": "2457", + "originalText": 2457, "width": 119.67, }, Object { @@ -2134,7 +2134,7 @@ Array [ "multiLineActualTexts": Array [ "2458", ], - "originalText": "2458", + "originalText": 2458, "width": 119.67, }, Object { @@ -2145,7 +2145,7 @@ Array [ "multiLineActualTexts": Array [ "1523", ], - "originalText": "1523", + "originalText": 1523, "width": 119.67, }, Object { @@ -2156,7 +2156,7 @@ Array [ "multiLineActualTexts": Array [ "1634", ], - "originalText": "1634", + "originalText": 1634, "width": 119.67, }, Object { @@ -2167,7 +2167,7 @@ Array [ "multiLineActualTexts": Array [ "1343", ], - "originalText": "1343", + "originalText": 1343, "width": 119.67, }, Object { @@ -2178,7 +2178,7 @@ Array [ "multiLineActualTexts": Array [ "1354", ], - "originalText": "1354", + "originalText": 1354, "width": 119.67, }, Object { @@ -2189,7 +2189,7 @@ Array [ "multiLineActualTexts": Array [ "4004", ], - "originalText": "4004", + "originalText": 4004, "width": 119.67, }, Object { @@ -2200,7 +2200,7 @@ Array [ "multiLineActualTexts": Array [ "3077", ], - "originalText": "3077", + "originalText": 3077, "width": 119.67, }, Object { @@ -2211,7 +2211,7 @@ Array [ "multiLineActualTexts": Array [ "3551", ], - "originalText": "3551", + "originalText": 3551, "width": 119.67, }, Object { @@ -2222,7 +2222,7 @@ Array [ "multiLineActualTexts": Array [ "352", ], - "originalText": "352", + "originalText": 352, "width": 119.67, }, ] @@ -2642,7 +2642,7 @@ Array [ "236723672361", "111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 102.57, }, Object { @@ -2653,7 +2653,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 102.57, }, Object { @@ -2664,7 +2664,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 102.57, }, Object { @@ -2697,7 +2697,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 102.57, }, Object { @@ -2708,7 +2708,7 @@ Array [ "multiLineActualTexts": Array [ "1822", ], - "originalText": "1822", + "originalText": 1822, "width": 102.57, }, Object { @@ -2719,7 +2719,7 @@ Array [ "multiLineActualTexts": Array [ "1943", ], - "originalText": "1943", + "originalText": 1943, "width": 102.57, }, Object { @@ -2730,7 +2730,7 @@ Array [ "multiLineActualTexts": Array [ "2330", ], - "originalText": "2330", + "originalText": 2330, "width": 102.57, }, Object { @@ -2741,7 +2741,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 102.57, }, Object { @@ -2752,7 +2752,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 102.57, }, Object { @@ -2763,7 +2763,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 102.57, }, Object { @@ -2774,7 +2774,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 102.57, }, Object { @@ -2796,7 +2796,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 102.57, }, Object { @@ -2807,7 +2807,7 @@ Array [ "multiLineActualTexts": Array [ "2244", ], - "originalText": "2244", + "originalText": 2244, "width": 102.57, }, Object { @@ -2818,7 +2818,7 @@ Array [ "multiLineActualTexts": Array [ "2333", ], - "originalText": "2333", + "originalText": 2333, "width": 102.57, }, Object { @@ -2829,7 +2829,7 @@ Array [ "multiLineActualTexts": Array [ "2445", ], - "originalText": "2445", + "originalText": 2445, "width": 102.57, }, Object { @@ -2941,7 +2941,7 @@ Array [ "multiLineActualTexts": Array [ "1304", ], - "originalText": "1304", + "originalText": 1304, "width": 102.57, }, Object { @@ -2952,7 +2952,7 @@ Array [ "multiLineActualTexts": Array [ "1145", ], - "originalText": "1145", + "originalText": 1145, "width": 102.57, }, Object { @@ -2963,7 +2963,7 @@ Array [ "multiLineActualTexts": Array [ "1432", ], - "originalText": "1432", + "originalText": 1432, "width": 102.57, }, Object { @@ -2974,7 +2974,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 102.57, }, Object { @@ -2996,7 +2996,7 @@ Array [ "multiLineActualTexts": Array [ "2335", ], - "originalText": "2335", + "originalText": 2335, "width": 102.57, }, Object { @@ -3007,7 +3007,7 @@ Array [ "multiLineActualTexts": Array [ "245", ], - "originalText": "245", + "originalText": 245, "width": 102.57, }, Object { @@ -3018,7 +3018,7 @@ Array [ "multiLineActualTexts": Array [ "2457", ], - "originalText": "2457", + "originalText": 2457, "width": 102.57, }, Object { @@ -3029,7 +3029,7 @@ Array [ "multiLineActualTexts": Array [ "2458", ], - "originalText": "2458", + "originalText": 2458, "width": 102.57, }, Object { @@ -3040,7 +3040,7 @@ Array [ "multiLineActualTexts": Array [ "1354", ], - "originalText": "1354", + "originalText": 1354, "width": 102.57, }, Object { @@ -3051,7 +3051,7 @@ Array [ "multiLineActualTexts": Array [ "1523", ], - "originalText": "1523", + "originalText": 1523, "width": 102.57, }, Object { @@ -3062,7 +3062,7 @@ Array [ "multiLineActualTexts": Array [ "1634", ], - "originalText": "1634", + "originalText": 1634, "width": 102.57, }, Object { @@ -3073,7 +3073,7 @@ Array [ "multiLineActualTexts": Array [ "1343", ], - "originalText": "1343", + "originalText": 1343, "width": 102.57, }, Object { @@ -3095,7 +3095,7 @@ Array [ "multiLineActualTexts": Array [ "4004", ], - "originalText": "4004", + "originalText": 4004, "width": 102.57, }, Object { @@ -3106,7 +3106,7 @@ Array [ "multiLineActualTexts": Array [ "3077", ], - "originalText": "3077", + "originalText": 3077, "width": 102.57, }, Object { @@ -3117,7 +3117,7 @@ Array [ "multiLineActualTexts": Array [ "3551", ], - "originalText": "3551", + "originalText": 3551, "width": 102.57, }, Object { @@ -3128,7 +3128,7 @@ Array [ "multiLineActualTexts": Array [ "352", ], - "originalText": "352", + "originalText": 352, "width": 102.57, }, ] @@ -3345,7 +3345,7 @@ Array [ "23672367236", "1111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 96, }, Object { @@ -3356,7 +3356,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 96, }, Object { @@ -3367,7 +3367,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 96, }, Object { @@ -3400,7 +3400,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 96, }, Object { @@ -3411,7 +3411,7 @@ Array [ "multiLineActualTexts": Array [ "1822", ], - "originalText": "1822", + "originalText": 1822, "width": 96, }, Object { @@ -3422,7 +3422,7 @@ Array [ "multiLineActualTexts": Array [ "1943", ], - "originalText": "1943", + "originalText": 1943, "width": 96, }, Object { @@ -3433,7 +3433,7 @@ Array [ "multiLineActualTexts": Array [ "2330", ], - "originalText": "2330", + "originalText": 2330, "width": 96, }, Object { @@ -3444,7 +3444,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 96, }, Object { @@ -3455,7 +3455,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 96, }, Object { @@ -3466,7 +3466,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 96, }, Object { @@ -3477,7 +3477,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 96, }, Object { @@ -3499,7 +3499,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 96, }, Object { @@ -3510,7 +3510,7 @@ Array [ "multiLineActualTexts": Array [ "2244", ], - "originalText": "2244", + "originalText": 2244, "width": 96, }, Object { @@ -3521,7 +3521,7 @@ Array [ "multiLineActualTexts": Array [ "2333", ], - "originalText": "2333", + "originalText": 2333, "width": 96, }, Object { @@ -3532,7 +3532,7 @@ Array [ "multiLineActualTexts": Array [ "2445", ], - "originalText": "2445", + "originalText": 2445, "width": 96, }, ] @@ -3749,7 +3749,7 @@ Array [ "23672367236", "1111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 96, }, Object { @@ -3760,7 +3760,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 96, }, Object { @@ -3771,7 +3771,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 96, }, Object { @@ -3804,7 +3804,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 96, }, Object { @@ -3815,7 +3815,7 @@ Array [ "multiLineActualTexts": Array [ "1822", ], - "originalText": "1822", + "originalText": 1822, "width": 96, }, Object { @@ -3826,7 +3826,7 @@ Array [ "multiLineActualTexts": Array [ "1943", ], - "originalText": "1943", + "originalText": 1943, "width": 96, }, Object { @@ -3837,7 +3837,7 @@ Array [ "multiLineActualTexts": Array [ "2330", ], - "originalText": "2330", + "originalText": 2330, "width": 96, }, Object { @@ -3848,7 +3848,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 96, }, Object { @@ -3859,7 +3859,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 96, }, Object { @@ -3870,7 +3870,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 96, }, Object { @@ -3881,7 +3881,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 96, }, Object { @@ -3903,7 +3903,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 96, }, Object { @@ -3914,7 +3914,7 @@ Array [ "multiLineActualTexts": Array [ "2244", ], - "originalText": "2244", + "originalText": 2244, "width": 96, }, Object { @@ -3925,7 +3925,7 @@ Array [ "multiLineActualTexts": Array [ "2333", ], - "originalText": "2333", + "originalText": 2333, "width": 96, }, Object { @@ -3936,7 +3936,7 @@ Array [ "multiLineActualTexts": Array [ "2445", ], - "originalText": "2445", + "originalText": 2445, "width": 96, }, ] @@ -4153,7 +4153,7 @@ Array [ "23672367236", "1111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 96, }, Object { @@ -4164,7 +4164,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 96, }, Object { @@ -4175,7 +4175,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 96, }, Object { @@ -4208,7 +4208,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 96, }, Object { @@ -4219,7 +4219,7 @@ Array [ "multiLineActualTexts": Array [ "1822", ], - "originalText": "1822", + "originalText": 1822, "width": 96, }, Object { @@ -4230,7 +4230,7 @@ Array [ "multiLineActualTexts": Array [ "1943", ], - "originalText": "1943", + "originalText": 1943, "width": 96, }, Object { @@ -4241,7 +4241,7 @@ Array [ "multiLineActualTexts": Array [ "2330", ], - "originalText": "2330", + "originalText": 2330, "width": 96, }, Object { @@ -4252,7 +4252,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 96, }, Object { @@ -4263,7 +4263,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 96, }, Object { @@ -4274,7 +4274,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 96, }, Object { @@ -4285,7 +4285,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 96, }, Object { @@ -4307,7 +4307,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 96, }, Object { @@ -4318,7 +4318,7 @@ Array [ "multiLineActualTexts": Array [ "2244", ], - "originalText": "2244", + "originalText": 2244, "width": 96, }, Object { @@ -4329,7 +4329,7 @@ Array [ "multiLineActualTexts": Array [ "2333", ], - "originalText": "2333", + "originalText": 2333, "width": 96, }, Object { @@ -4340,7 +4340,7 @@ Array [ "multiLineActualTexts": Array [ "2445", ], - "originalText": "2445", + "originalText": 2445, "width": 96, }, ] @@ -4557,7 +4557,7 @@ Array [ "23672367236", "1111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 96, }, Object { @@ -4568,7 +4568,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 96, }, Object { @@ -4579,7 +4579,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 96, }, Object { @@ -4612,7 +4612,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 96, }, Object { @@ -4623,7 +4623,7 @@ Array [ "multiLineActualTexts": Array [ "1822", ], - "originalText": "1822", + "originalText": 1822, "width": 96, }, Object { @@ -4634,7 +4634,7 @@ Array [ "multiLineActualTexts": Array [ "1943", ], - "originalText": "1943", + "originalText": 1943, "width": 96, }, Object { @@ -4645,7 +4645,7 @@ Array [ "multiLineActualTexts": Array [ "2330", ], - "originalText": "2330", + "originalText": 2330, "width": 96, }, Object { @@ -4656,7 +4656,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 96, }, Object { @@ -4667,7 +4667,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 96, }, Object { @@ -4678,7 +4678,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 96, }, Object { @@ -4689,7 +4689,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 96, }, Object { @@ -4711,7 +4711,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 96, }, Object { @@ -4722,7 +4722,7 @@ Array [ "multiLineActualTexts": Array [ "2244", ], - "originalText": "2244", + "originalText": 2244, "width": 96, }, Object { @@ -4733,7 +4733,7 @@ Array [ "multiLineActualTexts": Array [ "2333", ], - "originalText": "2333", + "originalText": 2333, "width": 96, }, Object { @@ -4744,7 +4744,7 @@ Array [ "multiLineActualTexts": Array [ "2445", ], - "originalText": "2445", + "originalText": 2445, "width": 96, }, ] @@ -4961,7 +4961,7 @@ Array [ "23672367236", "1111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 96, }, Object { @@ -4972,7 +4972,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 96, }, Object { @@ -4983,7 +4983,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 96, }, Object { @@ -5016,7 +5016,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 96, }, Object { @@ -5027,7 +5027,7 @@ Array [ "multiLineActualTexts": Array [ "1822", ], - "originalText": "1822", + "originalText": 1822, "width": 96, }, Object { @@ -5038,7 +5038,7 @@ Array [ "multiLineActualTexts": Array [ "1943", ], - "originalText": "1943", + "originalText": 1943, "width": 96, }, Object { @@ -5049,7 +5049,7 @@ Array [ "multiLineActualTexts": Array [ "2330", ], - "originalText": "2330", + "originalText": 2330, "width": 96, }, Object { @@ -5060,7 +5060,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 96, }, Object { @@ -5071,7 +5071,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 96, }, Object { @@ -5082,7 +5082,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 96, }, Object { @@ -5093,7 +5093,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 96, }, Object { @@ -5115,7 +5115,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 96, }, Object { @@ -5126,7 +5126,7 @@ Array [ "multiLineActualTexts": Array [ "2244", ], - "originalText": "2244", + "originalText": 2244, "width": 96, }, Object { @@ -5137,7 +5137,7 @@ Array [ "multiLineActualTexts": Array [ "2333", ], - "originalText": "2333", + "originalText": 2333, "width": 96, }, Object { @@ -5148,7 +5148,7 @@ Array [ "multiLineActualTexts": Array [ "2445", ], - "originalText": "2445", + "originalText": 2445, "width": 96, }, ] @@ -5257,7 +5257,7 @@ Array [ "23672367236", "1111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 96, }, Object { @@ -5268,7 +5268,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 96, }, Object { @@ -5279,7 +5279,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 96, }, Object { @@ -5290,7 +5290,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 96, }, Object { @@ -5301,7 +5301,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 96, }, Object { @@ -5312,7 +5312,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 96, }, ] @@ -5515,7 +5515,7 @@ Array [ "23672367236", "1111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 96, }, Object { @@ -5526,7 +5526,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 96, }, Object { @@ -5537,7 +5537,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 96, }, Object { @@ -5570,7 +5570,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 96, }, Object { @@ -5581,7 +5581,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 96, }, Object { @@ -5592,7 +5592,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 96, }, Object { @@ -5603,7 +5603,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 96, }, Object { @@ -5831,7 +5831,7 @@ Array [ "23672367236", "1111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 96, }, Object { @@ -5842,7 +5842,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 96, }, Object { @@ -5853,7 +5853,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 96, }, Object { @@ -5886,7 +5886,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 96, }, Object { @@ -5897,7 +5897,7 @@ Array [ "multiLineActualTexts": Array [ "1822", ], - "originalText": "1822", + "originalText": 1822, "width": 96, }, Object { @@ -5908,7 +5908,7 @@ Array [ "multiLineActualTexts": Array [ "1943", ], - "originalText": "1943", + "originalText": 1943, "width": 96, }, Object { @@ -5919,7 +5919,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 96, }, Object { @@ -5930,7 +5930,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 96, }, Object { @@ -5941,7 +5941,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 96, }, Object { @@ -5952,7 +5952,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 96, }, Object { @@ -5974,7 +5974,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 96, }, Object { @@ -5985,7 +5985,7 @@ Array [ "multiLineActualTexts": Array [ "2244", ], - "originalText": "2244", + "originalText": 2244, "width": 96, }, Object { @@ -5996,7 +5996,7 @@ Array [ "multiLineActualTexts": Array [ "2333", ], - "originalText": "2333", + "originalText": 2333, "width": 96, }, ] @@ -6188,7 +6188,7 @@ Array [ "multiLineActualTexts": Array [ "2367236723...", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 96, }, Object { @@ -6199,7 +6199,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 96, }, Object { @@ -6210,7 +6210,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 96, }, Object { @@ -6243,7 +6243,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 96, }, Object { @@ -6254,7 +6254,7 @@ Array [ "multiLineActualTexts": Array [ "1822", ], - "originalText": "1822", + "originalText": 1822, "width": 96, }, Object { @@ -6265,7 +6265,7 @@ Array [ "multiLineActualTexts": Array [ "1943", ], - "originalText": "1943", + "originalText": 1943, "width": 96, }, Object { @@ -6276,7 +6276,7 @@ Array [ "multiLineActualTexts": Array [ "2330", ], - "originalText": "2330", + "originalText": 2330, "width": 96, }, Object { @@ -6287,7 +6287,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 96, }, Object { @@ -6298,7 +6298,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 96, }, Object { @@ -6309,7 +6309,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 96, }, Object { @@ -6320,7 +6320,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 96, }, Object { @@ -6342,7 +6342,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 96, }, Object { @@ -6353,7 +6353,7 @@ Array [ "multiLineActualTexts": Array [ "2244", ], - "originalText": "2244", + "originalText": 2244, "width": 96, }, Object { @@ -6364,7 +6364,7 @@ Array [ "multiLineActualTexts": Array [ "2333", ], - "originalText": "2333", + "originalText": 2333, "width": 96, }, Object { @@ -6375,7 +6375,7 @@ Array [ "multiLineActualTexts": Array [ "2445", ], - "originalText": "2445", + "originalText": 2445, "width": 96, }, ] @@ -6587,7 +6587,7 @@ Array [ "multiLineActualTexts": Array [ "236723672361111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 96, }, Object { @@ -6598,7 +6598,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 96, }, Object { @@ -6609,7 +6609,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 96, }, Object { @@ -6642,7 +6642,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 96, }, Object { @@ -6653,7 +6653,7 @@ Array [ "multiLineActualTexts": Array [ "1822", ], - "originalText": "1822", + "originalText": 1822, "width": 96, }, Object { @@ -6664,7 +6664,7 @@ Array [ "multiLineActualTexts": Array [ "1943", ], - "originalText": "1943", + "originalText": 1943, "width": 96, }, Object { @@ -6675,7 +6675,7 @@ Array [ "multiLineActualTexts": Array [ "2330", ], - "originalText": "2330", + "originalText": 2330, "width": 96, }, Object { @@ -6686,7 +6686,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 96, }, Object { @@ -6697,7 +6697,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 96, }, Object { @@ -6708,7 +6708,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 96, }, Object { @@ -6719,7 +6719,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 96, }, Object { @@ -6741,7 +6741,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 96, }, Object { @@ -6752,7 +6752,7 @@ Array [ "multiLineActualTexts": Array [ "2244", ], - "originalText": "2244", + "originalText": 2244, "width": 96, }, Object { @@ -6763,7 +6763,7 @@ Array [ "multiLineActualTexts": Array [ "2333", ], - "originalText": "2333", + "originalText": 2333, "width": 96, }, Object { @@ -6774,7 +6774,7 @@ Array [ "multiLineActualTexts": Array [ "2445", ], - "originalText": "2445", + "originalText": 2445, "width": 96, }, ] @@ -6986,7 +6986,7 @@ Array [ "multiLineActualTexts": Array [ "236723@@@", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 96, }, Object { @@ -6997,7 +6997,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 96, }, Object { @@ -7008,7 +7008,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 96, }, Object { @@ -7041,7 +7041,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 96, }, Object { @@ -7052,7 +7052,7 @@ Array [ "multiLineActualTexts": Array [ "1822", ], - "originalText": "1822", + "originalText": 1822, "width": 96, }, Object { @@ -7063,7 +7063,7 @@ Array [ "multiLineActualTexts": Array [ "1943", ], - "originalText": "1943", + "originalText": 1943, "width": 96, }, Object { @@ -7074,7 +7074,7 @@ Array [ "multiLineActualTexts": Array [ "2330", ], - "originalText": "2330", + "originalText": 2330, "width": 96, }, Object { @@ -7085,7 +7085,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 96, }, Object { @@ -7096,7 +7096,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 96, }, Object { @@ -7107,7 +7107,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 96, }, Object { @@ -7118,7 +7118,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 96, }, Object { @@ -7140,7 +7140,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 96, }, Object { @@ -7151,7 +7151,7 @@ Array [ "multiLineActualTexts": Array [ "2244", ], - "originalText": "2244", + "originalText": 2244, "width": 96, }, Object { @@ -7162,7 +7162,7 @@ Array [ "multiLineActualTexts": Array [ "2333", ], - "originalText": "2333", + "originalText": 2333, "width": 96, }, Object { @@ -7173,7 +7173,7 @@ Array [ "multiLineActualTexts": Array [ "2445", ], - "originalText": "2445", + "originalText": 2445, "width": 96, }, ] @@ -7394,7 +7394,7 @@ Array [ "23672367236", "1111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 96, }, Object { @@ -7405,7 +7405,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 96, }, Object { @@ -7416,7 +7416,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 96, }, Object { @@ -7449,7 +7449,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 96, }, Object { @@ -7460,7 +7460,7 @@ Array [ "multiLineActualTexts": Array [ "1822", ], - "originalText": "1822", + "originalText": 1822, "width": 96, }, Object { @@ -7471,7 +7471,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 96, }, Object { @@ -7482,7 +7482,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 96, }, Object { @@ -7493,7 +7493,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 96, }, Object { @@ -7504,7 +7504,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 96, }, Object { @@ -7526,7 +7526,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 96, }, Object { @@ -7537,7 +7537,7 @@ Array [ "multiLineActualTexts": Array [ "2244", ], - "originalText": "2244", + "originalText": 2244, "width": 96, }, ] @@ -8128,7 +8128,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103, }, Object { @@ -8139,7 +8139,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103, }, Object { @@ -8150,7 +8150,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103, }, Object { @@ -8201,7 +8201,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 103, }, Object { @@ -8241,7 +8241,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103, }, Object { @@ -8252,7 +8252,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 103, }, Object { @@ -8263,7 +8263,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 103, }, Object { @@ -8274,7 +8274,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103, }, Object { @@ -8314,7 +8314,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 103, }, Object { @@ -8469,7 +8469,7 @@ Array [ "multiLineActualTexts": Array [ "1304", ], - "originalText": "1304", + "originalText": 1304, "width": 103, }, Object { @@ -8480,7 +8480,7 @@ Array [ "multiLineActualTexts": Array [ "1145", ], - "originalText": "1145", + "originalText": 1145, "width": 103, }, Object { @@ -8491,7 +8491,7 @@ Array [ "multiLineActualTexts": Array [ "1432", ], - "originalText": "1432", + "originalText": 1432, "width": 103, }, Object { @@ -8502,7 +8502,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 103, }, Object { @@ -8542,7 +8542,7 @@ Array [ "multiLineActualTexts": Array [ "2335", ], - "originalText": "2335", + "originalText": 2335, "width": 103, }, Object { @@ -8582,7 +8582,7 @@ Array [ "multiLineActualTexts": Array [ "1354", ], - "originalText": "1354", + "originalText": 1354, "width": 103, }, Object { @@ -8593,7 +8593,7 @@ Array [ "multiLineActualTexts": Array [ "1523", ], - "originalText": "1523", + "originalText": 1523, "width": 103, }, Object { @@ -8604,7 +8604,7 @@ Array [ "multiLineActualTexts": Array [ "1634", ], - "originalText": "1634", + "originalText": 1634, "width": 103, }, Object { @@ -8615,7 +8615,7 @@ Array [ "multiLineActualTexts": Array [ "1343", ], - "originalText": "1343", + "originalText": 1343, "width": 103, }, Object { @@ -8655,7 +8655,7 @@ Array [ "multiLineActualTexts": Array [ "4004", ], - "originalText": "4004", + "originalText": 4004, "width": 103, }, ] @@ -8872,7 +8872,7 @@ Array [ "23672367236", "1111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 96, }, Object { @@ -8883,7 +8883,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 96, }, Object { @@ -8894,7 +8894,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 96, }, Object { @@ -8927,7 +8927,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 96, }, Object { @@ -8938,7 +8938,7 @@ Array [ "multiLineActualTexts": Array [ "1822", ], - "originalText": "1822", + "originalText": 1822, "width": 96, }, Object { @@ -8949,7 +8949,7 @@ Array [ "multiLineActualTexts": Array [ "1943", ], - "originalText": "1943", + "originalText": 1943, "width": 96, }, Object { @@ -8960,7 +8960,7 @@ Array [ "multiLineActualTexts": Array [ "2330", ], - "originalText": "2330", + "originalText": 2330, "width": 96, }, Object { @@ -8971,7 +8971,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 96, }, Object { @@ -8982,7 +8982,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 96, }, Object { @@ -8993,7 +8993,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 96, }, Object { @@ -9004,7 +9004,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 96, }, Object { @@ -9026,7 +9026,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 96, }, Object { @@ -9037,7 +9037,7 @@ Array [ "multiLineActualTexts": Array [ "2244", ], - "originalText": "2244", + "originalText": 2244, "width": 96, }, Object { @@ -9048,7 +9048,7 @@ Array [ "multiLineActualTexts": Array [ "2333", ], - "originalText": "2333", + "originalText": 2333, "width": 96, }, Object { @@ -9059,7 +9059,7 @@ Array [ "multiLineActualTexts": Array [ "2445", ], - "originalText": "2445", + "originalText": 2445, "width": 96, }, ] @@ -9492,7 +9492,7 @@ Array [ "236723672361", "111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 102.57, }, Object { @@ -9503,7 +9503,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 102.57, }, Object { @@ -9514,7 +9514,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 102.57, }, Object { @@ -9547,7 +9547,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 102.57, }, Object { @@ -9558,7 +9558,7 @@ Array [ "multiLineActualTexts": Array [ "1822", ], - "originalText": "1822", + "originalText": 1822, "width": 102.57, }, Object { @@ -9569,7 +9569,7 @@ Array [ "multiLineActualTexts": Array [ "1943", ], - "originalText": "1943", + "originalText": 1943, "width": 102.57, }, Object { @@ -9580,7 +9580,7 @@ Array [ "multiLineActualTexts": Array [ "2330", ], - "originalText": "2330", + "originalText": 2330, "width": 102.57, }, Object { @@ -9591,7 +9591,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 102.57, }, Object { @@ -9602,7 +9602,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 102.57, }, Object { @@ -9613,7 +9613,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 102.57, }, Object { @@ -9624,7 +9624,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 102.57, }, Object { @@ -9646,7 +9646,7 @@ Array [ "multiLineActualTexts": Array [ "2451", ], - "originalText": "2451", + "originalText": 2451, "width": 102.57, }, Object { @@ -9657,7 +9657,7 @@ Array [ "multiLineActualTexts": Array [ "2244", ], - "originalText": "2244", + "originalText": 2244, "width": 102.57, }, Object { @@ -9668,7 +9668,7 @@ Array [ "multiLineActualTexts": Array [ "2333", ], - "originalText": "2333", + "originalText": 2333, "width": 102.57, }, Object { @@ -9679,7 +9679,7 @@ Array [ "multiLineActualTexts": Array [ "2445", ], - "originalText": "2445", + "originalText": 2445, "width": 102.57, }, Object { @@ -9791,7 +9791,7 @@ Array [ "multiLineActualTexts": Array [ "1304", ], - "originalText": "1304", + "originalText": 1304, "width": 102.57, }, Object { @@ -9802,7 +9802,7 @@ Array [ "multiLineActualTexts": Array [ "1145", ], - "originalText": "1145", + "originalText": 1145, "width": 102.57, }, Object { @@ -9813,7 +9813,7 @@ Array [ "multiLineActualTexts": Array [ "1432", ], - "originalText": "1432", + "originalText": 1432, "width": 102.57, }, Object { @@ -9824,7 +9824,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 102.57, }, Object { @@ -9846,7 +9846,7 @@ Array [ "multiLineActualTexts": Array [ "2335", ], - "originalText": "2335", + "originalText": 2335, "width": 102.57, }, Object { @@ -9857,7 +9857,7 @@ Array [ "multiLineActualTexts": Array [ "245", ], - "originalText": "245", + "originalText": 245, "width": 102.57, }, Object { @@ -9868,7 +9868,7 @@ Array [ "multiLineActualTexts": Array [ "2457", ], - "originalText": "2457", + "originalText": 2457, "width": 102.57, }, Object { @@ -9879,7 +9879,7 @@ Array [ "multiLineActualTexts": Array [ "2458", ], - "originalText": "2458", + "originalText": 2458, "width": 102.57, }, Object { @@ -9890,7 +9890,7 @@ Array [ "multiLineActualTexts": Array [ "1354", ], - "originalText": "1354", + "originalText": 1354, "width": 102.57, }, Object { @@ -9901,7 +9901,7 @@ Array [ "multiLineActualTexts": Array [ "1523", ], - "originalText": "1523", + "originalText": 1523, "width": 102.57, }, Object { @@ -9912,7 +9912,7 @@ Array [ "multiLineActualTexts": Array [ "1634", ], - "originalText": "1634", + "originalText": 1634, "width": 102.57, }, Object { @@ -9923,7 +9923,7 @@ Array [ "multiLineActualTexts": Array [ "1343", ], - "originalText": "1343", + "originalText": 1343, "width": 102.57, }, Object { @@ -9945,7 +9945,7 @@ Array [ "multiLineActualTexts": Array [ "4004", ], - "originalText": "4004", + "originalText": 4004, "width": 102.57, }, Object { @@ -9956,7 +9956,7 @@ Array [ "multiLineActualTexts": Array [ "3077", ], - "originalText": "3077", + "originalText": 3077, "width": 102.57, }, Object { @@ -9967,7 +9967,7 @@ Array [ "multiLineActualTexts": Array [ "3551", ], - "originalText": "3551", + "originalText": 3551, "width": 102.57, }, Object { @@ -9978,7 +9978,7 @@ Array [ "multiLineActualTexts": Array [ "352", ], - "originalText": "352", + "originalText": 352, "width": 102.57, }, ] @@ -10010,7 +10010,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -10021,7 +10021,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -10032,7 +10032,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -10043,7 +10043,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -10054,7 +10054,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -10065,7 +10065,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -10076,7 +10076,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -10087,7 +10087,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -10098,7 +10098,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, ] @@ -10190,7 +10190,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -10201,7 +10201,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -10212,7 +10212,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -10223,7 +10223,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -10234,7 +10234,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -10245,7 +10245,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -10256,7 +10256,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -10267,7 +10267,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -10278,7 +10278,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -10698,7 +10698,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -10723,7 +10723,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -10734,7 +10734,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -10745,7 +10745,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -10756,7 +10756,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, Object { @@ -10767,7 +10767,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103.8, }, Object { @@ -10778,7 +10778,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 103.8, }, Object { @@ -10789,7 +10789,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 103.8, }, ] @@ -10821,7 +10821,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -10832,7 +10832,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -10843,7 +10843,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -10854,7 +10854,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -10865,7 +10865,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -10876,7 +10876,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -10887,7 +10887,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -10898,7 +10898,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -10909,7 +10909,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, ] @@ -11006,7 +11006,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -11017,7 +11017,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -11028,7 +11028,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -11039,7 +11039,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -11050,7 +11050,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -11061,7 +11061,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -11072,7 +11072,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -11083,7 +11083,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -11094,7 +11094,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -11514,7 +11514,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -11539,7 +11539,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -11550,7 +11550,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -11561,7 +11561,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -11572,7 +11572,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, Object { @@ -11583,7 +11583,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103.8, }, Object { @@ -11594,7 +11594,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 103.8, }, Object { @@ -11605,7 +11605,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 103.8, }, ] @@ -11637,7 +11637,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, ] @@ -11734,7 +11734,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -11790,7 +11790,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, ] @@ -11861,7 +11861,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -11872,7 +11872,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, ] @@ -11969,7 +11969,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -11980,7 +11980,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -12092,7 +12092,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -12176,7 +12176,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -12187,7 +12187,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -12198,7 +12198,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -12209,7 +12209,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -12220,7 +12220,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -12231,7 +12231,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -12242,7 +12242,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -12253,7 +12253,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -12264,7 +12264,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -12275,7 +12275,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -12286,7 +12286,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -12297,7 +12297,7 @@ Array [ "multiLineActualTexts": Array [ "12", ], - "originalText": "12", + "originalText": 12, "width": 80, }, Object { @@ -12308,7 +12308,7 @@ Array [ "multiLineActualTexts": Array [ "13", ], - "originalText": "13", + "originalText": 13, "width": 80, }, Object { @@ -12319,7 +12319,7 @@ Array [ "multiLineActualTexts": Array [ "14", ], - "originalText": "14", + "originalText": 14, "width": 80, }, Object { @@ -12330,7 +12330,7 @@ Array [ "multiLineActualTexts": Array [ "15", ], - "originalText": "15", + "originalText": 15, "width": 80, }, Object { @@ -12341,7 +12341,7 @@ Array [ "multiLineActualTexts": Array [ "16", ], - "originalText": "16", + "originalText": 16, "width": 80, }, Object { @@ -12352,7 +12352,7 @@ Array [ "multiLineActualTexts": Array [ "17", ], - "originalText": "17", + "originalText": 17, "width": 80, }, ] @@ -12446,7 +12446,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -12457,7 +12457,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -12468,7 +12468,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -12479,7 +12479,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -12490,7 +12490,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -12501,7 +12501,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -12512,7 +12512,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -12523,7 +12523,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -12534,7 +12534,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -12545,7 +12545,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -12556,7 +12556,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -12567,7 +12567,7 @@ Array [ "multiLineActualTexts": Array [ "12", ], - "originalText": "12", + "originalText": 12, "width": 80, }, Object { @@ -12578,7 +12578,7 @@ Array [ "multiLineActualTexts": Array [ "13", ], - "originalText": "13", + "originalText": 13, "width": 80, }, Object { @@ -12589,7 +12589,7 @@ Array [ "multiLineActualTexts": Array [ "14", ], - "originalText": "14", + "originalText": 14, "width": 80, }, Object { @@ -12600,7 +12600,7 @@ Array [ "multiLineActualTexts": Array [ "15", ], - "originalText": "15", + "originalText": 15, "width": 80, }, Object { @@ -12611,7 +12611,7 @@ Array [ "multiLineActualTexts": Array [ "16", ], - "originalText": "16", + "originalText": 16, "width": 80, }, Object { @@ -12622,7 +12622,7 @@ Array [ "multiLineActualTexts": Array [ "17", ], - "originalText": "17", + "originalText": 17, "width": 80, }, Object { @@ -13401,7 +13401,7 @@ Array [ "multiLineActualTexts": Array [ "236723672361111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 143.8, }, Object { @@ -13424,7 +13424,7 @@ Array [ "multiLineActualTexts": Array [ "236723672361111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 143.8, }, Object { @@ -13435,7 +13435,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 143.8, }, Object { @@ -13446,7 +13446,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 143.8, }, Object { @@ -13457,7 +13457,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 143.8, }, Object { @@ -13468,7 +13468,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 143.8, }, Object { @@ -13479,7 +13479,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 143.8, }, Object { @@ -13490,7 +13490,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 143.8, }, Object { @@ -13501,7 +13501,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 143.8, }, Object { @@ -13512,7 +13512,7 @@ Array [ "multiLineActualTexts": Array [ "1304", ], - "originalText": "1304", + "originalText": 1304, "width": 143.8, }, Object { @@ -13523,7 +13523,7 @@ Array [ "multiLineActualTexts": Array [ "1145", ], - "originalText": "1145", + "originalText": 1145, "width": 143.8, }, Object { @@ -13534,7 +13534,7 @@ Array [ "multiLineActualTexts": Array [ "1432", ], - "originalText": "1432", + "originalText": 1432, "width": 143.8, }, Object { @@ -13545,7 +13545,7 @@ Array [ "multiLineActualTexts": Array [ "1343", ], - "originalText": "1343", + "originalText": 1343, "width": 143.8, }, Object { @@ -13556,7 +13556,7 @@ Array [ "multiLineActualTexts": Array [ "1354", ], - "originalText": "1354", + "originalText": 1354, "width": 143.8, }, Object { @@ -13567,7 +13567,7 @@ Array [ "multiLineActualTexts": Array [ "1523", ], - "originalText": "1523", + "originalText": 1523, "width": 143.8, }, ] @@ -13599,7 +13599,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -13610,7 +13610,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -13621,7 +13621,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -13632,7 +13632,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -13643,7 +13643,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -13654,7 +13654,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -13665,7 +13665,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -13676,7 +13676,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -13687,7 +13687,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -13698,7 +13698,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -13709,7 +13709,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -13720,7 +13720,7 @@ Array [ "multiLineActualTexts": Array [ "12", ], - "originalText": "12", + "originalText": 12, "width": 80, }, Object { @@ -13731,7 +13731,7 @@ Array [ "multiLineActualTexts": Array [ "13", ], - "originalText": "13", + "originalText": 13, "width": 80, }, ] @@ -13820,7 +13820,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -13831,7 +13831,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -13842,7 +13842,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -13853,7 +13853,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -13864,7 +13864,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -13875,7 +13875,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -13886,7 +13886,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -13897,7 +13897,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -13908,7 +13908,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -13919,7 +13919,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -13930,7 +13930,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -13941,7 +13941,7 @@ Array [ "multiLineActualTexts": Array [ "12", ], - "originalText": "12", + "originalText": 12, "width": 80, }, Object { @@ -13952,7 +13952,7 @@ Array [ "multiLineActualTexts": Array [ "13", ], - "originalText": "13", + "originalText": 13, "width": 80, }, Object { @@ -14535,7 +14535,7 @@ Array [ "multiLineActualTexts": Array [ "23672367236...", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -14557,7 +14557,7 @@ Array [ "multiLineActualTexts": Array [ "23672367236...", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -14568,7 +14568,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -14579,7 +14579,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -14590,7 +14590,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, Object { @@ -14601,7 +14601,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103.8, }, Object { @@ -14612,7 +14612,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 103.8, }, Object { @@ -14623,7 +14623,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 103.8, }, Object { @@ -14634,7 +14634,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 103.8, }, Object { @@ -14645,7 +14645,7 @@ Array [ "multiLineActualTexts": Array [ "1304", ], - "originalText": "1304", + "originalText": 1304, "width": 103.8, }, Object { @@ -14656,7 +14656,7 @@ Array [ "multiLineActualTexts": Array [ "1145", ], - "originalText": "1145", + "originalText": 1145, "width": 103.8, }, Object { @@ -14667,7 +14667,7 @@ Array [ "multiLineActualTexts": Array [ "1432", ], - "originalText": "1432", + "originalText": 1432, "width": 103.8, }, ] @@ -14699,7 +14699,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -14710,7 +14710,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -14721,7 +14721,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -14732,7 +14732,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -14743,7 +14743,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -14754,7 +14754,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -14765,7 +14765,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -14776,7 +14776,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -14787,7 +14787,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -14798,7 +14798,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, ] @@ -14893,7 +14893,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -14904,7 +14904,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -14915,7 +14915,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -14926,7 +14926,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -14937,7 +14937,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -14948,7 +14948,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -14959,7 +14959,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -14970,7 +14970,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -14981,7 +14981,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -14992,7 +14992,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -15452,7 +15452,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -15477,7 +15477,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -15488,7 +15488,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -15499,7 +15499,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -15510,7 +15510,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, Object { @@ -15521,7 +15521,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103.8, }, Object { @@ -15532,7 +15532,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 103.8, }, Object { @@ -15543,7 +15543,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 103.8, }, Object { @@ -15554,7 +15554,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 103.8, }, ] @@ -15586,7 +15586,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -15597,7 +15597,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -15608,7 +15608,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -15619,7 +15619,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -15630,7 +15630,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -15641,7 +15641,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -15652,7 +15652,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -15663,7 +15663,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -15674,7 +15674,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -15685,7 +15685,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, ] @@ -15780,7 +15780,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -15791,7 +15791,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -15802,7 +15802,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -15813,7 +15813,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -15824,7 +15824,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -15835,7 +15835,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -15846,7 +15846,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -15857,7 +15857,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -15868,7 +15868,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -15879,7 +15879,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -16339,7 +16339,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -16364,7 +16364,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -16375,7 +16375,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -16386,7 +16386,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -16397,7 +16397,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, Object { @@ -16408,7 +16408,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103.8, }, Object { @@ -16419,7 +16419,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 103.8, }, Object { @@ -16430,7 +16430,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 103.8, }, Object { @@ -16441,7 +16441,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 103.8, }, ] @@ -16473,7 +16473,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -16484,7 +16484,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -16495,7 +16495,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -16506,7 +16506,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -16517,7 +16517,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -16528,7 +16528,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -16539,7 +16539,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -16550,7 +16550,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -16561,7 +16561,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -16572,7 +16572,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -16583,7 +16583,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, ] @@ -16672,7 +16672,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -16683,7 +16683,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -16694,7 +16694,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -16705,7 +16705,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -16716,7 +16716,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -16727,7 +16727,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -16738,7 +16738,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -16749,7 +16749,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -16760,7 +16760,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -16771,7 +16771,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -16782,7 +16782,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -17277,7 +17277,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -17288,7 +17288,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -17299,7 +17299,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, Object { @@ -17310,7 +17310,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103.8, }, Object { @@ -17321,7 +17321,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 103.8, }, Object { @@ -17332,7 +17332,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 103.8, }, Object { @@ -17343,7 +17343,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 103.8, }, Object { @@ -17354,7 +17354,7 @@ Array [ "multiLineActualTexts": Array [ "1304", ], - "originalText": "1304", + "originalText": 1304, "width": 103.8, }, Object { @@ -17365,7 +17365,7 @@ Array [ "multiLineActualTexts": Array [ "1145", ], - "originalText": "1145", + "originalText": 1145, "width": 103.8, }, Object { @@ -17376,7 +17376,7 @@ Array [ "multiLineActualTexts": Array [ "1432", ], - "originalText": "1432", + "originalText": 1432, "width": 103.8, }, Object { @@ -17387,7 +17387,7 @@ Array [ "multiLineActualTexts": Array [ "1343", ], - "originalText": "1343", + "originalText": 1343, "width": 103.8, }, ] @@ -17419,7 +17419,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -17430,7 +17430,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -17441,7 +17441,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -17452,7 +17452,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -17463,7 +17463,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -17474,7 +17474,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -17485,7 +17485,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, ] @@ -17580,7 +17580,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -17591,7 +17591,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -17602,7 +17602,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -17613,7 +17613,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -17624,7 +17624,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -17635,7 +17635,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -17646,7 +17646,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -17974,7 +17974,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -17999,7 +17999,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -18010,7 +18010,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -18021,7 +18021,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -18032,7 +18032,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, Object { @@ -18043,7 +18043,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103.8, }, ] @@ -18149,7 +18149,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -18160,7 +18160,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -18171,7 +18171,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -18182,7 +18182,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -18193,7 +18193,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -18204,7 +18204,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -18215,7 +18215,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -18226,7 +18226,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, ] @@ -18323,7 +18323,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -18334,7 +18334,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -18345,7 +18345,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -18356,7 +18356,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -18367,7 +18367,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -18378,7 +18378,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -18389,7 +18389,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -18400,7 +18400,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -18776,7 +18776,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -18801,7 +18801,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -18812,7 +18812,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -18823,7 +18823,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -18834,7 +18834,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, Object { @@ -18845,7 +18845,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103.8, }, Object { @@ -18856,7 +18856,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 103.8, }, ] @@ -18888,7 +18888,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -18899,7 +18899,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -18910,7 +18910,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -18921,7 +18921,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -18932,7 +18932,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -18943,7 +18943,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -18954,7 +18954,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -18965,7 +18965,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -18976,7 +18976,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -18987,7 +18987,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -18998,7 +18998,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -19009,7 +19009,7 @@ Array [ "multiLineActualTexts": Array [ "12", ], - "originalText": "12", + "originalText": 12, "width": 80, }, Object { @@ -19020,7 +19020,7 @@ Array [ "multiLineActualTexts": Array [ "13", ], - "originalText": "13", + "originalText": 13, "width": 80, }, Object { @@ -19031,7 +19031,7 @@ Array [ "multiLineActualTexts": Array [ "14", ], - "originalText": "14", + "originalText": 14, "width": 80, }, Object { @@ -19042,7 +19042,7 @@ Array [ "multiLineActualTexts": Array [ "15", ], - "originalText": "15", + "originalText": 15, "width": 80, }, Object { @@ -19053,7 +19053,7 @@ Array [ "multiLineActualTexts": Array [ "16", ], - "originalText": "16", + "originalText": 16, "width": 80, }, Object { @@ -19064,7 +19064,7 @@ Array [ "multiLineActualTexts": Array [ "17", ], - "originalText": "17", + "originalText": 17, "width": 80, }, Object { @@ -19075,7 +19075,7 @@ Array [ "multiLineActualTexts": Array [ "18", ], - "originalText": "18", + "originalText": 18, "width": 80, }, ] @@ -19167,7 +19167,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -19178,7 +19178,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -19189,7 +19189,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -19200,7 +19200,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -19211,7 +19211,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -19222,7 +19222,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -19233,7 +19233,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -19244,7 +19244,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -19255,7 +19255,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -19266,7 +19266,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -19277,7 +19277,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -19288,7 +19288,7 @@ Array [ "multiLineActualTexts": Array [ "12", ], - "originalText": "12", + "originalText": 12, "width": 80, }, Object { @@ -19299,7 +19299,7 @@ Array [ "multiLineActualTexts": Array [ "13", ], - "originalText": "13", + "originalText": 13, "width": 80, }, Object { @@ -19310,7 +19310,7 @@ Array [ "multiLineActualTexts": Array [ "14", ], - "originalText": "14", + "originalText": 14, "width": 80, }, Object { @@ -19321,7 +19321,7 @@ Array [ "multiLineActualTexts": Array [ "15", ], - "originalText": "15", + "originalText": 15, "width": 80, }, Object { @@ -19332,7 +19332,7 @@ Array [ "multiLineActualTexts": Array [ "16", ], - "originalText": "16", + "originalText": 16, "width": 80, }, Object { @@ -19343,7 +19343,7 @@ Array [ "multiLineActualTexts": Array [ "17", ], - "originalText": "17", + "originalText": 17, "width": 80, }, Object { @@ -19354,7 +19354,7 @@ Array [ "multiLineActualTexts": Array [ "18", ], - "originalText": "18", + "originalText": 18, "width": 80, }, Object { @@ -20162,7 +20162,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -20186,7 +20186,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -20197,7 +20197,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -20208,7 +20208,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -20219,7 +20219,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, Object { @@ -20230,7 +20230,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103.8, }, Object { @@ -20241,7 +20241,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 103.8, }, Object { @@ -20252,7 +20252,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 103.8, }, Object { @@ -20263,7 +20263,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 103.8, }, Object { @@ -20274,7 +20274,7 @@ Array [ "multiLineActualTexts": Array [ "1304", ], - "originalText": "1304", + "originalText": 1304, "width": 103.8, }, Object { @@ -20285,7 +20285,7 @@ Array [ "multiLineActualTexts": Array [ "1145", ], - "originalText": "1145", + "originalText": 1145, "width": 103.8, }, Object { @@ -20296,7 +20296,7 @@ Array [ "multiLineActualTexts": Array [ "1432", ], - "originalText": "1432", + "originalText": 1432, "width": 103.8, }, Object { @@ -20307,7 +20307,7 @@ Array [ "multiLineActualTexts": Array [ "1343", ], - "originalText": "1343", + "originalText": 1343, "width": 103.8, }, Object { @@ -20318,7 +20318,7 @@ Array [ "multiLineActualTexts": Array [ "1354", ], - "originalText": "1354", + "originalText": 1354, "width": 103.8, }, Object { @@ -20329,7 +20329,7 @@ Array [ "multiLineActualTexts": Array [ "1523", ], - "originalText": "1523", + "originalText": 1523, "width": 103.8, }, Object { @@ -20340,7 +20340,7 @@ Array [ "multiLineActualTexts": Array [ "1634", ], - "originalText": "1634", + "originalText": 1634, "width": 103.8, }, Object { @@ -20351,7 +20351,7 @@ Array [ "multiLineActualTexts": Array [ "1723", ], - "originalText": "1723", + "originalText": 1723, "width": 103.8, }, ] @@ -20383,7 +20383,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -20394,7 +20394,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -20405,7 +20405,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -20416,7 +20416,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, ] @@ -20508,7 +20508,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -20519,7 +20519,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -20530,7 +20530,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -20541,7 +20541,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -20733,7 +20733,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -20757,7 +20757,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -20768,7 +20768,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, ] @@ -20800,7 +20800,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -20811,7 +20811,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -20822,7 +20822,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -20833,7 +20833,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -20844,7 +20844,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -20855,7 +20855,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -20866,7 +20866,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -20877,7 +20877,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -20888,7 +20888,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -20899,7 +20899,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -20910,7 +20910,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, ] @@ -21002,7 +21002,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -21013,7 +21013,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -21024,7 +21024,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -21035,7 +21035,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -21046,7 +21046,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -21057,7 +21057,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -21068,7 +21068,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -21079,7 +21079,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -21090,7 +21090,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -21101,7 +21101,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -21112,7 +21112,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -21612,7 +21612,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -21636,7 +21636,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -21647,7 +21647,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -21658,7 +21658,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -21669,7 +21669,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, Object { @@ -21680,7 +21680,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103.8, }, Object { @@ -21691,7 +21691,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 103.8, }, Object { @@ -21702,7 +21702,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 103.8, }, Object { @@ -21713,7 +21713,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 103.8, }, Object { @@ -21724,7 +21724,7 @@ Array [ "multiLineActualTexts": Array [ "1304", ], - "originalText": "1304", + "originalText": 1304, "width": 103.8, }, ] @@ -21756,7 +21756,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -21767,7 +21767,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -21778,7 +21778,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -21789,7 +21789,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -21800,7 +21800,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -21811,7 +21811,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -21822,7 +21822,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -21833,7 +21833,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -21844,7 +21844,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -21855,7 +21855,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -21866,7 +21866,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -21877,7 +21877,7 @@ Array [ "multiLineActualTexts": Array [ "12", ], - "originalText": "12", + "originalText": 12, "width": 80, }, Object { @@ -21888,7 +21888,7 @@ Array [ "multiLineActualTexts": Array [ "13", ], - "originalText": "13", + "originalText": 13, "width": 80, }, Object { @@ -21899,7 +21899,7 @@ Array [ "multiLineActualTexts": Array [ "14", ], - "originalText": "14", + "originalText": 14, "width": 80, }, Object { @@ -21910,7 +21910,7 @@ Array [ "multiLineActualTexts": Array [ "15", ], - "originalText": "15", + "originalText": 15, "width": 80, }, Object { @@ -21921,7 +21921,7 @@ Array [ "multiLineActualTexts": Array [ "16", ], - "originalText": "16", + "originalText": 16, "width": 80, }, Object { @@ -21932,7 +21932,7 @@ Array [ "multiLineActualTexts": Array [ "17", ], - "originalText": "17", + "originalText": 17, "width": 80, }, ] @@ -22027,7 +22027,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -22038,7 +22038,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -22049,7 +22049,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -22060,7 +22060,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -22071,7 +22071,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -22082,7 +22082,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -22093,7 +22093,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -22104,7 +22104,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -22115,7 +22115,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -22126,7 +22126,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -22137,7 +22137,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -22148,7 +22148,7 @@ Array [ "multiLineActualTexts": Array [ "12", ], - "originalText": "12", + "originalText": 12, "width": 80, }, Object { @@ -22159,7 +22159,7 @@ Array [ "multiLineActualTexts": Array [ "13", ], - "originalText": "13", + "originalText": 13, "width": 80, }, Object { @@ -22170,7 +22170,7 @@ Array [ "multiLineActualTexts": Array [ "14", ], - "originalText": "14", + "originalText": 14, "width": 80, }, Object { @@ -22181,7 +22181,7 @@ Array [ "multiLineActualTexts": Array [ "15", ], - "originalText": "15", + "originalText": 15, "width": 80, }, Object { @@ -22192,7 +22192,7 @@ Array [ "multiLineActualTexts": Array [ "16", ], - "originalText": "16", + "originalText": 16, "width": 80, }, Object { @@ -22203,7 +22203,7 @@ Array [ "multiLineActualTexts": Array [ "17", ], - "originalText": "17", + "originalText": 17, "width": 80, }, Object { @@ -22971,7 +22971,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -22996,7 +22996,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -23007,7 +23007,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -23018,7 +23018,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -23029,7 +23029,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, Object { @@ -23040,7 +23040,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103.8, }, Object { @@ -23051,7 +23051,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 103.8, }, Object { @@ -23062,7 +23062,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 103.8, }, Object { @@ -23073,7 +23073,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 103.8, }, Object { @@ -23084,7 +23084,7 @@ Array [ "multiLineActualTexts": Array [ "1304", ], - "originalText": "1304", + "originalText": 1304, "width": 103.8, }, Object { @@ -23095,7 +23095,7 @@ Array [ "multiLineActualTexts": Array [ "1145", ], - "originalText": "1145", + "originalText": 1145, "width": 103.8, }, Object { @@ -23106,7 +23106,7 @@ Array [ "multiLineActualTexts": Array [ "1432", ], - "originalText": "1432", + "originalText": 1432, "width": 103.8, }, Object { @@ -23117,7 +23117,7 @@ Array [ "multiLineActualTexts": Array [ "1343", ], - "originalText": "1343", + "originalText": 1343, "width": 103.8, }, Object { @@ -23128,7 +23128,7 @@ Array [ "multiLineActualTexts": Array [ "1354", ], - "originalText": "1354", + "originalText": 1354, "width": 103.8, }, Object { @@ -23139,7 +23139,7 @@ Array [ "multiLineActualTexts": Array [ "1523", ], - "originalText": "1523", + "originalText": 1523, "width": 103.8, }, Object { @@ -23150,7 +23150,7 @@ Array [ "multiLineActualTexts": Array [ "1634", ], - "originalText": "1634", + "originalText": 1634, "width": 103.8, }, ] @@ -23182,7 +23182,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -23193,7 +23193,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -23204,7 +23204,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -23215,7 +23215,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -23226,7 +23226,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -23237,7 +23237,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -23248,7 +23248,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -23259,7 +23259,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -23270,7 +23270,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, ] @@ -23365,7 +23365,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -23376,7 +23376,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -23387,7 +23387,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -23398,7 +23398,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -23409,7 +23409,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -23420,7 +23420,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -23431,7 +23431,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -23442,7 +23442,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -23453,7 +23453,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -23869,7 +23869,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -23894,7 +23894,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -23905,7 +23905,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -23916,7 +23916,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -23927,7 +23927,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, Object { @@ -23938,7 +23938,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103.8, }, Object { @@ -23949,7 +23949,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 103.8, }, Object { @@ -23960,7 +23960,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 103.8, }, ] @@ -23992,7 +23992,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -24003,7 +24003,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -24014,7 +24014,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -24025,7 +24025,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, ] @@ -24120,7 +24120,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -24131,7 +24131,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -24142,7 +24142,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -24153,7 +24153,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -24349,7 +24349,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -24374,7 +24374,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -24385,7 +24385,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, ] @@ -24417,7 +24417,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -24428,7 +24428,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -24439,7 +24439,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -24450,7 +24450,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -24461,7 +24461,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -24472,7 +24472,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, ] @@ -24567,7 +24567,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -24578,7 +24578,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -24589,7 +24589,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -24600,7 +24600,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -24611,7 +24611,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -24622,7 +24622,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -24906,7 +24906,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -24931,7 +24931,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -24942,7 +24942,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -24953,7 +24953,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -24964,7 +24964,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, ] @@ -24996,7 +24996,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -25007,7 +25007,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -25018,7 +25018,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -25029,7 +25029,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -25040,7 +25040,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -25051,7 +25051,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -25062,7 +25062,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -25073,7 +25073,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -25084,7 +25084,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -25095,7 +25095,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -25106,7 +25106,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -25117,7 +25117,7 @@ Array [ "multiLineActualTexts": Array [ "12", ], - "originalText": "12", + "originalText": 12, "width": 80, }, Object { @@ -25128,7 +25128,7 @@ Array [ "multiLineActualTexts": Array [ "13", ], - "originalText": "13", + "originalText": 13, "width": 80, }, ] @@ -25217,7 +25217,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -25228,7 +25228,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -25239,7 +25239,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -25250,7 +25250,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -25261,7 +25261,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -25272,7 +25272,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -25283,7 +25283,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -25294,7 +25294,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -25305,7 +25305,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -25316,7 +25316,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -25327,7 +25327,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -25338,7 +25338,7 @@ Array [ "multiLineActualTexts": Array [ "12", ], - "originalText": "12", + "originalText": 12, "width": 80, }, Object { @@ -25349,7 +25349,7 @@ Array [ "multiLineActualTexts": Array [ "13", ], - "originalText": "13", + "originalText": 13, "width": 80, }, Object { @@ -25932,7 +25932,7 @@ Array [ "multiLineActualTexts": Array [ "236723672361111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -25954,7 +25954,7 @@ Array [ "multiLineActualTexts": Array [ "236723672361111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -25965,7 +25965,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -25976,7 +25976,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -25987,7 +25987,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, Object { @@ -25998,7 +25998,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103.8, }, Object { @@ -26009,7 +26009,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 103.8, }, Object { @@ -26020,7 +26020,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 103.8, }, Object { @@ -26031,7 +26031,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 103.8, }, Object { @@ -26042,7 +26042,7 @@ Array [ "multiLineActualTexts": Array [ "1304", ], - "originalText": "1304", + "originalText": 1304, "width": 103.8, }, Object { @@ -26053,7 +26053,7 @@ Array [ "multiLineActualTexts": Array [ "1145", ], - "originalText": "1145", + "originalText": 1145, "width": 103.8, }, Object { @@ -26064,7 +26064,7 @@ Array [ "multiLineActualTexts": Array [ "1432", ], - "originalText": "1432", + "originalText": 1432, "width": 103.8, }, ] @@ -26096,7 +26096,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -26107,7 +26107,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -26118,7 +26118,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -26129,7 +26129,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -26140,7 +26140,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -26151,7 +26151,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -26162,7 +26162,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -26173,7 +26173,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -26184,7 +26184,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -26195,7 +26195,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -26206,7 +26206,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -26217,7 +26217,7 @@ Array [ "multiLineActualTexts": Array [ "12", ], - "originalText": "12", + "originalText": 12, "width": 80, }, Object { @@ -26228,7 +26228,7 @@ Array [ "multiLineActualTexts": Array [ "13", ], - "originalText": "13", + "originalText": 13, "width": 80, }, ] @@ -26317,7 +26317,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -26328,7 +26328,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -26339,7 +26339,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -26350,7 +26350,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -26361,7 +26361,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -26372,7 +26372,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -26383,7 +26383,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -26394,7 +26394,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -26405,7 +26405,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -26416,7 +26416,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -26427,7 +26427,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -26438,7 +26438,7 @@ Array [ "multiLineActualTexts": Array [ "12", ], - "originalText": "12", + "originalText": 12, "width": 80, }, Object { @@ -26449,7 +26449,7 @@ Array [ "multiLineActualTexts": Array [ "13", ], - "originalText": "13", + "originalText": 13, "width": 80, }, Object { @@ -27032,7 +27032,7 @@ Array [ "multiLineActualTexts": Array [ "2367236@@@", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -27054,7 +27054,7 @@ Array [ "multiLineActualTexts": Array [ "2367236@@@", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -27065,7 +27065,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -27076,7 +27076,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -27087,7 +27087,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, Object { @@ -27098,7 +27098,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103.8, }, Object { @@ -27109,7 +27109,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 103.8, }, Object { @@ -27120,7 +27120,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 103.8, }, Object { @@ -27131,7 +27131,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 103.8, }, Object { @@ -27142,7 +27142,7 @@ Array [ "multiLineActualTexts": Array [ "1304", ], - "originalText": "1304", + "originalText": 1304, "width": 103.8, }, Object { @@ -27153,7 +27153,7 @@ Array [ "multiLineActualTexts": Array [ "1145", ], - "originalText": "1145", + "originalText": 1145, "width": 103.8, }, Object { @@ -27164,7 +27164,7 @@ Array [ "multiLineActualTexts": Array [ "1432", ], - "originalText": "1432", + "originalText": 1432, "width": 103.8, }, ] @@ -27196,7 +27196,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -27207,7 +27207,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -27218,7 +27218,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -27229,7 +27229,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -27240,7 +27240,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -27251,7 +27251,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -27262,7 +27262,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -27273,7 +27273,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -27284,7 +27284,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -27295,7 +27295,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, ] @@ -27390,7 +27390,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -27401,7 +27401,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -27412,7 +27412,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -27423,7 +27423,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -27434,7 +27434,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -27445,7 +27445,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -27456,7 +27456,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -27467,7 +27467,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -27478,7 +27478,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -27489,7 +27489,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -27949,7 +27949,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -27974,7 +27974,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -27985,7 +27985,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -27996,7 +27996,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -28007,7 +28007,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, Object { @@ -28018,7 +28018,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103.8, }, Object { @@ -28029,7 +28029,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 103.8, }, Object { @@ -28040,7 +28040,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 103.8, }, Object { @@ -28051,7 +28051,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 103.8, }, ] @@ -28083,7 +28083,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -28094,7 +28094,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -28105,7 +28105,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -28116,7 +28116,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -28127,7 +28127,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -28138,7 +28138,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -28149,7 +28149,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -28160,7 +28160,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -28171,7 +28171,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -28182,7 +28182,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -28193,7 +28193,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, ] @@ -28285,7 +28285,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -28296,7 +28296,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -28307,7 +28307,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -28318,7 +28318,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -28329,7 +28329,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -28340,7 +28340,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -28351,7 +28351,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -28362,7 +28362,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -28373,7 +28373,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -28384,7 +28384,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -28395,7 +28395,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -28895,7 +28895,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -28919,7 +28919,7 @@ Array [ "2367236723611", "11", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 103.8, }, Object { @@ -28930,7 +28930,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 103.8, }, Object { @@ -28941,7 +28941,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 103.8, }, Object { @@ -28952,7 +28952,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 103.8, }, Object { @@ -28963,7 +28963,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 103.8, }, Object { @@ -28974,7 +28974,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 103.8, }, Object { @@ -28985,7 +28985,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 103.8, }, Object { @@ -28996,7 +28996,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 103.8, }, Object { @@ -29007,7 +29007,7 @@ Array [ "multiLineActualTexts": Array [ "1304", ], - "originalText": "1304", + "originalText": 1304, "width": 103.8, }, ] @@ -29039,7 +29039,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -29050,7 +29050,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -29061,7 +29061,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -29072,7 +29072,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -29083,7 +29083,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -29094,7 +29094,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -29105,7 +29105,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -29116,7 +29116,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -29127,7 +29127,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -29138,7 +29138,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -29149,7 +29149,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -29160,7 +29160,7 @@ Array [ "multiLineActualTexts": Array [ "12", ], - "originalText": "12", + "originalText": 12, "width": 80, }, Object { @@ -29171,7 +29171,7 @@ Array [ "multiLineActualTexts": Array [ "13", ], - "originalText": "13", + "originalText": 13, "width": 80, }, Object { @@ -29182,7 +29182,7 @@ Array [ "multiLineActualTexts": Array [ "14", ], - "originalText": "14", + "originalText": 14, "width": 80, }, Object { @@ -29193,7 +29193,7 @@ Array [ "multiLineActualTexts": Array [ "15", ], - "originalText": "15", + "originalText": 15, "width": 80, }, Object { @@ -29204,7 +29204,7 @@ Array [ "multiLineActualTexts": Array [ "16", ], - "originalText": "16", + "originalText": 16, "width": 80, }, Object { @@ -29215,7 +29215,7 @@ Array [ "multiLineActualTexts": Array [ "17", ], - "originalText": "17", + "originalText": 17, "width": 80, }, ] @@ -29309,7 +29309,7 @@ Array [ "multiLineActualTexts": Array [ "1", ], - "originalText": "1", + "originalText": 1, "width": 80, }, Object { @@ -29320,7 +29320,7 @@ Array [ "multiLineActualTexts": Array [ "2", ], - "originalText": "2", + "originalText": 2, "width": 80, }, Object { @@ -29331,7 +29331,7 @@ Array [ "multiLineActualTexts": Array [ "3", ], - "originalText": "3", + "originalText": 3, "width": 80, }, Object { @@ -29342,7 +29342,7 @@ Array [ "multiLineActualTexts": Array [ "4", ], - "originalText": "4", + "originalText": 4, "width": 80, }, Object { @@ -29353,7 +29353,7 @@ Array [ "multiLineActualTexts": Array [ "5", ], - "originalText": "5", + "originalText": 5, "width": 80, }, Object { @@ -29364,7 +29364,7 @@ Array [ "multiLineActualTexts": Array [ "6", ], - "originalText": "6", + "originalText": 6, "width": 80, }, Object { @@ -29375,7 +29375,7 @@ Array [ "multiLineActualTexts": Array [ "7", ], - "originalText": "7", + "originalText": 7, "width": 80, }, Object { @@ -29386,7 +29386,7 @@ Array [ "multiLineActualTexts": Array [ "8", ], - "originalText": "8", + "originalText": 8, "width": 80, }, Object { @@ -29397,7 +29397,7 @@ Array [ "multiLineActualTexts": Array [ "9", ], - "originalText": "9", + "originalText": 9, "width": 80, }, Object { @@ -29408,7 +29408,7 @@ Array [ "multiLineActualTexts": Array [ "10", ], - "originalText": "10", + "originalText": 10, "width": 80, }, Object { @@ -29419,7 +29419,7 @@ Array [ "multiLineActualTexts": Array [ "11", ], - "originalText": "11", + "originalText": 11, "width": 80, }, Object { @@ -29430,7 +29430,7 @@ Array [ "multiLineActualTexts": Array [ "12", ], - "originalText": "12", + "originalText": 12, "width": 80, }, Object { @@ -29441,7 +29441,7 @@ Array [ "multiLineActualTexts": Array [ "13", ], - "originalText": "13", + "originalText": 13, "width": 80, }, Object { @@ -29452,7 +29452,7 @@ Array [ "multiLineActualTexts": Array [ "14", ], - "originalText": "14", + "originalText": 14, "width": 80, }, Object { @@ -29463,7 +29463,7 @@ Array [ "multiLineActualTexts": Array [ "15", ], - "originalText": "15", + "originalText": 15, "width": 80, }, Object { @@ -29474,7 +29474,7 @@ Array [ "multiLineActualTexts": Array [ "16", ], - "originalText": "16", + "originalText": 16, "width": 80, }, Object { @@ -29485,7 +29485,7 @@ Array [ "multiLineActualTexts": Array [ "17", ], - "originalText": "17", + "originalText": 17, "width": 80, }, Object { @@ -30252,7 +30252,7 @@ Array [ "multiLineActualTexts": Array [ "236723672361111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 143.8, }, Object { @@ -30275,7 +30275,7 @@ Array [ "multiLineActualTexts": Array [ "236723672361111", ], - "originalText": "236723672361111", + "originalText": 236723672361111, "width": 143.8, }, Object { @@ -30286,7 +30286,7 @@ Array [ "multiLineActualTexts": Array [ "3877", ], - "originalText": "3877", + "originalText": 3877, "width": 143.8, }, Object { @@ -30297,7 +30297,7 @@ Array [ "multiLineActualTexts": Array [ "4342", ], - "originalText": "4342", + "originalText": 4342, "width": 143.8, }, Object { @@ -30308,7 +30308,7 @@ Array [ "multiLineActualTexts": Array [ "5343", ], - "originalText": "5343", + "originalText": 5343, "width": 143.8, }, Object { @@ -30319,7 +30319,7 @@ Array [ "multiLineActualTexts": Array [ "632", ], - "originalText": "632", + "originalText": 632, "width": 143.8, }, Object { @@ -30330,7 +30330,7 @@ Array [ "multiLineActualTexts": Array [ "7234", ], - "originalText": "7234", + "originalText": 7234, "width": 143.8, }, Object { @@ -30341,7 +30341,7 @@ Array [ "multiLineActualTexts": Array [ "834", ], - "originalText": "834", + "originalText": 834, "width": 143.8, }, Object { @@ -30352,7 +30352,7 @@ Array [ "multiLineActualTexts": Array [ "945", ], - "originalText": "945", + "originalText": 945, "width": 143.8, }, Object { @@ -30363,7 +30363,7 @@ Array [ "multiLineActualTexts": Array [ "1304", ], - "originalText": "1304", + "originalText": 1304, "width": 143.8, }, Object { @@ -30374,7 +30374,7 @@ Array [ "multiLineActualTexts": Array [ "1145", ], - "originalText": "1145", + "originalText": 1145, "width": 143.8, }, Object { @@ -30385,7 +30385,7 @@ Array [ "multiLineActualTexts": Array [ "1432", ], - "originalText": "1432", + "originalText": 1432, "width": 143.8, }, Object { @@ -30396,7 +30396,7 @@ Array [ "multiLineActualTexts": Array [ "1343", ], - "originalText": "1343", + "originalText": 1343, "width": 143.8, }, Object { @@ -30407,7 +30407,7 @@ Array [ "multiLineActualTexts": Array [ "1354", ], - "originalText": "1354", + "originalText": 1354, "width": 143.8, }, Object { @@ -30418,7 +30418,7 @@ Array [ "multiLineActualTexts": Array [ "1523", ], - "originalText": "1523", + "originalText": 1523, "width": 143.8, }, Object { @@ -30429,7 +30429,7 @@ Array [ "multiLineActualTexts": Array [ "1634", ], - "originalText": "1634", + "originalText": 1634, "width": 143.8, }, ] diff --git a/packages/s2-core/__tests__/unit/data-set/pivot-data-set-spec.ts b/packages/s2-core/__tests__/unit/data-set/pivot-data-set-spec.ts index fa2e7c8116..f9ae37178e 100644 --- a/packages/s2-core/__tests__/unit/data-set/pivot-data-set-spec.ts +++ b/packages/s2-core/__tests__/unit/data-set/pivot-data-set-spec.ts @@ -458,19 +458,23 @@ describe('Pivot Dataset Test', () => { field: 'price', name: '价格', description: '价格描述', + formatter: () => 'price-formatter-value', }, { field: 'cost', name: '成本', description: '成本描述', + formatter: () => 'cost-formatter-value', }, { field: ['test-a', 'test-b'], name: 'test', + formatter: () => 3, }, { field: /c+$/, name: 'test-regexp', + formatter: () => 4, }, ], fields: { @@ -513,11 +517,13 @@ describe('Pivot Dataset Test', () => { description: '价格描述', field: 'price', name: '价格', + formatter: expect.any(Function), }); expect(dataSet.getFieldMeta('cost')).toStrictEqual({ field: 'cost', name: '成本', description: '成本描述', + formatter: expect.any(Function), }); expect(dataSet.getFieldMeta('')).toBeUndefined(); expect(dataSet.getFieldMeta('not-found-field')).toBeUndefined(); @@ -538,23 +544,32 @@ describe('Pivot Dataset Test', () => { expect(dataSet.getFieldDescription('')).toBeUndefined(); expect(dataSet.getFieldDescription('xxxx')).toBeUndefined(); }); + + test('should return correct field formatter', () => { + expect(dataSet.getFieldFormatter('price')()).toStrictEqual( + 'price-formatter-value', + ); + expect(dataSet.getFieldFormatter('cost')()).toStrictEqual( + 'cost-formatter-value', + ); + expect(dataSet.getFieldFormatter('')()).toEqual('-'); + expect(dataSet.getFieldFormatter('xxxx')()).toEqual('-'); + }); }); describe('row formatter test', () => { let dataConfig: S2DataConfig; - const mockPriceFormatter = jest.fn(); - const mockCostFormatter = jest.fn(); beforeEach(() => { dataConfig = assembleDataCfg({ meta: [ { field: 'price', - formatter: mockPriceFormatter, + formatter: () => 'price-formatter-value', }, { field: 'cost', - formatter: mockCostFormatter, + formatter: () => 'cost-formatter-value', }, ], fields: { @@ -565,23 +580,18 @@ describe('Pivot Dataset Test', () => { dataSet.setDataCfg(dataConfig); }); - afterEach(() => { - mockPriceFormatter.mockReset(); - mockCostFormatter.mockReset(); - }); - test('should return correct total measure formatter when values in rows', () => { const priceFormatter = dataSet.getFieldFormatter(TOTAL_VALUE, { rowQuery: { [EXTRA_FIELD]: 'price' }, } as unknown as ViewMeta); - expect(priceFormatter).toEqual(mockPriceFormatter); + expect(priceFormatter()).toEqual('price-formatter-value'); const costFormatter = dataSet.getFieldFormatter(TOTAL_VALUE, { rowQuery: { [EXTRA_FIELD]: 'cost' }, } as unknown as ViewMeta); - expect(costFormatter).toEqual(mockCostFormatter); + expect(costFormatter()).toEqual('cost-formatter-value'); }); test('should return default total measure formatter when values in rows', () => { @@ -589,7 +599,7 @@ describe('Pivot Dataset Test', () => { rowQuery: {}, } as unknown as ViewMeta); - expect(defaultFormatter).toEqual(mockPriceFormatter); + expect(defaultFormatter()).toEqual('price-formatter-value'); }); }); diff --git a/packages/s2-core/__tests__/unit/data-set/table-data-set-spec.ts b/packages/s2-core/__tests__/unit/data-set/table-data-set-spec.ts index af9be08ede..a8968b9d78 100644 --- a/packages/s2-core/__tests__/unit/data-set/table-data-set-spec.ts +++ b/packages/s2-core/__tests__/unit/data-set/table-data-set-spec.ts @@ -82,7 +82,7 @@ describe('Table Mode Dataset Test', () => { ${'sub_type'} | ${'子类型'} | ${'子类型描述'} | ${mockSubTypeFormatter} ${'number'} | ${'数量'} | ${'数量描述'} | ${mockNumberFormatter} `( - 'should return correct filed meta when field=$field', + 'should return correct filed meta by $field', ({ field, name, description }) => { expect(dataSet.getFieldName(field)).toStrictEqual(name); expect(dataSet.getFieldDescription(field)).toStrictEqual(description); diff --git a/packages/s2-core/__tests__/unit/facet/pivot-facet-spec.ts b/packages/s2-core/__tests__/unit/facet/pivot-facet-spec.ts index fa792a18a9..06878d82d3 100644 --- a/packages/s2-core/__tests__/unit/facet/pivot-facet-spec.ts +++ b/packages/s2-core/__tests__/unit/facet/pivot-facet-spec.ts @@ -99,7 +99,6 @@ jest.mock('@/sheet-type', () => { measureTextWidth: jest.fn() as unknown as SpreadSheet['measureTextWidth'], getSeriesNumberText: jest.fn(() => getDefaultSeriesNumberText()), - getDisplayText: jest.fn((value) => value), }; }), }; diff --git a/packages/s2-core/__tests__/unit/facet/table-facet-spec.ts b/packages/s2-core/__tests__/unit/facet/table-facet-spec.ts index 5bdb18ef77..0ab1fd7c08 100644 --- a/packages/s2-core/__tests__/unit/facet/table-facet-spec.ts +++ b/packages/s2-core/__tests__/unit/facet/table-facet-spec.ts @@ -84,7 +84,6 @@ jest.mock('@/sheet-type', () => { measureTextWidthRoughly: jest.fn(), measureTextWidth: jest.fn(), getSeriesNumberText: jest.fn(() => getDefaultSeriesNumberText()), - getDisplayText: jest.fn((value) => value), }; }), }; diff --git a/packages/s2-core/__tests__/unit/utils/layout/generate-id-spec.ts b/packages/s2-core/__tests__/unit/utils/layout/generate-id-spec.ts index 5c086e39d3..89d8759dc2 100644 --- a/packages/s2-core/__tests__/unit/utils/layout/generate-id-spec.ts +++ b/packages/s2-core/__tests__/unit/utils/layout/generate-id-spec.ts @@ -1,7 +1,84 @@ -import { generateId } from '../../../../src/utils/layout/generate-id'; +import { + generateId, + generateNillString, + resolveId, + resolveNillString, +} from '../../../../src/utils/layout/generate-id'; describe('generate-id test', () => { - test('should get correctly id', () => { + test('#generateId()', () => { expect(generateId('parent', 'value')).toEqual('parent[&]value'); + expect(generateId('parent', 'null')).toEqual('parent[&]null'); + expect(generateId('parent', 'undefined')).toEqual('parent[&]undefined'); + expect(generateId('parent', null)).toEqual('parent[&]$$null$$'); + expect(generateId('parent', undefined)).toEqual('parent[&]$$undefined$$'); + expect(generateId('parent', 1)).toEqual('parent[&]1'); + }); + + test('#resolveId()', () => { + expect(resolveId('parent[&]value')).toEqual(['parent', 'value']); + expect(resolveId('parent[&]null')).toEqual(['parent', 'null']); + expect(resolveId('parent[&]undefined')).toEqual(['parent', 'undefined']); + expect(resolveId('parent[&]$$null$$')).toEqual(['parent', null]); + expect(resolveId('parent[&]$$undefined$$')).toEqual(['parent', undefined]); + expect(resolveId('parent[&]1')).toEqual(['parent', '1']); + }); + + test('#generateNillString()', () => { + expect(generateNillString('value')).toEqual('value'); + expect(generateNillString(null)).toEqual('$$null$$'); + expect(generateNillString(undefined)).toEqual('$$undefined$$'); + expect(generateNillString(1)).toEqual('1'); + }); + + test('#resolveNillString()', () => { + expect(resolveNillString('value')).toEqual('value'); + expect(resolveNillString('null')).toEqual('null'); + expect(resolveNillString('undefined')).toEqual('undefined'); + expect(resolveNillString('$$null$$')).toEqual(null); + expect(resolveNillString('$$undefined$$')).toEqual(undefined); + expect(resolveNillString('1')).toEqual('1'); + }); + + test('should generate correct id for normal string variables', () => { + expect(generateId('root', 'child')).toEqual('root[&]child'); + + expect(generateId('parent', 'child', 'grandChild')).toEqual( + 'parent[&]child[&]grandChild', + ); + }); + + test('should distinguish null and `null` in id', () => { + expect(generateId('root', 'child', null, 'null')).toEqual( + 'root[&]child[&]$$null$$[&]null', + ); + + expect(generateId('root', 'child', undefined, 'undefined')).toEqual( + 'root[&]child[&]$$undefined$$[&]undefined', + ); + }); + + test('should get correct id for normal string variables', () => { + expect(resolveId('root[&]child')).toEqual(['child']); + + expect(resolveId('parent[&]child[&]grandChild')).toEqual([ + 'parent', + 'child', + 'grandChild', + ]); + }); + + test('should get correct id to distinguish null and `null` in id', () => { + expect(resolveId('root[&]child[&]$$null$$[&]null')).toEqual([ + 'child', + null, + 'null', + ]); + + expect(resolveId('root[&]child[&]$$undefined$$[&]undefined')).toEqual([ + 'child', + undefined, + 'undefined', + ]); }); }); diff --git a/packages/s2-core/__tests__/unit/utils/layout/generate-id.spec.ts b/packages/s2-core/__tests__/unit/utils/layout/generate-id.spec.ts deleted file mode 100644 index f55f713516..0000000000 --- a/packages/s2-core/__tests__/unit/utils/layout/generate-id.spec.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { generateId, resolveId } from '@/utils'; - -describe('generate id test', () => { - test('should generate correct id for normal string variables', () => { - expect(generateId('root', 'child')).toEqual('root[&]child'); - - expect(generateId('parent', 'child', 'grandChild')).toEqual( - 'parent[&]child[&]grandChild', - ); - }); - - test('should distinguish null and `null` in id', () => { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - expect(generateId('root', 'child', null, 'null')).toEqual( - 'root[&]child[&]$$null$$[&]null', - ); - - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - expect(generateId('root', 'child', undefined, 'undefined')).toEqual( - 'root[&]child[&]$$undefined$$[&]undefined', - ); - }); -}); - -describe('resolve id test', () => { - test('should get correct id for normal string variables', () => { - expect(resolveId('root[&]child')).toEqual(['child']); - - expect(resolveId('parent[&]child[&]grandChild')).toEqual([ - 'parent', - 'child', - 'grandChild', - ]); - }); - - test('should get correct id to distinguish null and `null` in id', () => { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - expect(resolveId('root[&]child[&]$$null$$[&]null')).toEqual([ - 'child', - null, - 'null', - ]); - - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - expect(resolveId('root[&]child[&]$$undefined$$[&]undefined')).toEqual([ - 'child', - undefined, - 'undefined', - ]); - }); -}); diff --git a/packages/s2-core/__tests__/unit/utils/text-spec.ts b/packages/s2-core/__tests__/unit/utils/text-spec.ts index e2147ab798..960a86fae7 100644 --- a/packages/s2-core/__tests__/unit/utils/text-spec.ts +++ b/packages/s2-core/__tests__/unit/utils/text-spec.ts @@ -3,6 +3,7 @@ import { drawCustomContent, getCellWidth, getContentAreaForMultiData, + getDisplayText, getEmptyPlaceholder, isUnchangedValue, isUpDataValue, @@ -354,3 +355,33 @@ describe('isUnchangedValue', () => { expect(render).not.toThrow(); }); }); + +describe('getDisplayText', () => { + test.each` + value | result + ${'value'} | ${'value'} + ${null} | ${'-'} + ${undefined} | ${'-'} + ${0} | ${0} + ${1} | ${1} + ${-1} | ${-1} + ${Infinity} | ${Infinity} + ${NaN} | ${'-'} + `('should get correct display text for $value', ({ value, result }) => { + expect(getDisplayText(value)).toEqual(result); + }); + + test.each` + value | result + ${'value'} | ${'value'} + ${null} | ${'@'} + ${undefined} | ${'@'} + ${0} | ${0} + ${1} | ${1} + ${-1} | ${-1} + ${Infinity} | ${Infinity} + ${NaN} | ${'@'} + `('should get correct empty placeholder for $value', ({ value, result }) => { + expect(getDisplayText(value, '@')).toEqual(result); + }); +}); diff --git a/packages/s2-core/__tests__/util/helpers.ts b/packages/s2-core/__tests__/util/helpers.ts index 77798f9228..3e0cfbe2ae 100644 --- a/packages/s2-core/__tests__/util/helpers.ts +++ b/packages/s2-core/__tests__/util/helpers.ts @@ -231,7 +231,6 @@ export const createFakeSpreadSheet = (config?: { s2.measureTextWidth = jest.fn(); s2.isFrozenRowHeader = jest.fn(); s2.getSeriesNumberText = jest.fn(() => getDefaultSeriesNumberText()); - s2.getDisplayText = jest.fn((value) => value); s2.theme = getTheme({ name: 'default', spreadsheet: s2, diff --git a/packages/s2-core/src/cell/base-cell.ts b/packages/s2-core/src/cell/base-cell.ts index cefc583e78..c4f6e1f76d 100644 --- a/packages/s2-core/src/cell/base-cell.ts +++ b/packages/s2-core/src/cell/base-cell.ts @@ -49,6 +49,7 @@ import { type ResizeArea, type ResizeInteractionOptions, type S2CellType, + type SimpleData, type StateShapeLayer, type TextTheme, } from '../common/interface'; @@ -76,6 +77,10 @@ import { } from '../utils/g-renders'; import { isLinkFieldNode } from '../utils/interaction/link-field'; import { isMobile } from '../utils/is-mobile'; +import { + getDisplayText, + getEmptyPlaceholder as getEmptyPlaceholderInner, +} from '../utils/text'; export abstract class BaseCell extends Group { // cell's data meta info @@ -100,7 +105,7 @@ export abstract class BaseCell extends Group { protected actualText: string; - protected originalText: string; + protected originalText: SimpleData; protected conditions: Conditions; @@ -265,7 +270,7 @@ export abstract class BaseCell extends Group { /** * 获取原始的文本 (不含省略号) */ - public getOriginalText(): string { + public getOriginalText(): SimpleData { return this.originalText; } @@ -294,6 +299,17 @@ export abstract class BaseCell extends Group { return this.textShape?.getLineBoundingRects() || []; } + /** + * 获取单元格空值占位符 + */ + public getEmptyPlaceholder() { + const { + options: { placeholder }, + } = this.spreadsheet; + + return getEmptyPlaceholderInner(this, placeholder); + } + /** * 获取单元格展示的数值 */ @@ -420,7 +436,7 @@ export abstract class BaseCell extends Group { style: TextStyleProps, options?: RenderTextShapeOptions, ): CustomText { - const text = this.spreadsheet.getDisplayText(style.text, this); + const text = getDisplayText(style.text, this.getEmptyPlaceholder()); const shallowRender = options?.shallowRender || this.isShallowRender(); this.textShape = renderText({ @@ -428,7 +444,8 @@ export abstract class BaseCell extends Group { textShape: shallowRender ? undefined : this.textShape, style: { ...style, - text, + // 文本必须为字符串 + text: `${text}`, }, }); diff --git a/packages/s2-core/src/cell/data-cell.ts b/packages/s2-core/src/cell/data-cell.ts index 1a80385d33..169f0fd315 100644 --- a/packages/s2-core/src/cell/data-cell.ts +++ b/packages/s2-core/src/cell/data-cell.ts @@ -377,8 +377,7 @@ export class DataCell extends BaseCell { return { value: fieldValue, - formattedValue: - formattedValue ?? this.spreadsheet.getDisplayText(formattedValue!), + formattedValue, }; } diff --git a/packages/s2-core/src/common/interface/basic.ts b/packages/s2-core/src/common/interface/basic.ts index 0bc101837e..6039a8399c 100644 --- a/packages/s2-core/src/common/interface/basic.ts +++ b/packages/s2-core/src/common/interface/basic.ts @@ -28,7 +28,7 @@ export type { GetCellMeta, LayoutResult } from './facet'; */ export type Formatter = ( value: DataItem, - data?: SimpleData | ViewMetaData | ViewMetaData[], + data?: DataItem | ViewMetaData | ViewMetaData[], meta?: Node | ViewMeta, ) => SimpleData; diff --git a/packages/s2-core/src/data-set/base-data-set.ts b/packages/s2-core/src/data-set/base-data-set.ts index 1ab5f938f3..93e3cbf707 100644 --- a/packages/s2-core/src/data-set/base-data-set.ts +++ b/packages/s2-core/src/data-set/base-data-set.ts @@ -31,13 +31,13 @@ import type { import type { ValueRange } from '../common/interface/condition'; import type { Node } from '../facet/layout/node'; import type { SpreadSheet } from '../sheet-type'; -import { resolveNillString } from '../utils'; import { getValueRangeState, setValueRangeState, } from '../utils/condition/state-controller'; import { generateExtraFieldMeta } from '../utils/dataset/pivot-data-set'; import type { Indexes } from '../utils/indexes'; +import { getDisplayText, getEmptyPlaceholder } from '../utils/text'; import type { GetCellMultiDataParams } from './index'; import type { GetCellDataParams, Query } from './interface'; @@ -172,10 +172,10 @@ export abstract class BaseDataSet { } // 行/列头单元格, 取节点本身标题 - return resolveNillString( + return ( (meta as Node)?.value || - this.getFieldName(meta?.field as CustomHeaderField), - )!; + this.getFieldName(meta?.field as CustomHeaderField) + ); } /** @@ -212,13 +212,27 @@ export abstract class BaseDataSet { }; /** - * 获得字段格式方法 + * 获得字段格式化方法 * @param field */ public getFieldFormatter(field: CustomHeaderField): Formatter { const realField = this.getField(field); - return get(this.getFieldMeta(realField, this.meta), 'formatter', identity); + const formatter = get( + this.getFieldMeta(realField, this.meta), + 'formatter', + identity, + ); + + // 如果格式化后的值是空,则兜底占位符, 保证导出结果和表格一致: https://github.com/antvis/S2/issues/2808 + return (value, data, meta) => { + const placeholder = getEmptyPlaceholder( + meta as Record, + this.spreadsheet?.options?.placeholder, + ); + + return getDisplayText(formatter?.(value, data, meta), placeholder); + }; } /** diff --git a/packages/s2-core/src/sheet-type/spread-sheet.ts b/packages/s2-core/src/sheet-type/spread-sheet.ts index 2dcfe8a201..cefd7dc0df 100644 --- a/packages/s2-core/src/sheet-type/spread-sheet.ts +++ b/packages/s2-core/src/sheet-type/spread-sheet.ts @@ -64,7 +64,6 @@ import { RootInteraction } from '../interaction/root'; import { getTheme } from '../theme'; import { HdAdapter } from '../ui/hd-adapter'; import { BaseTooltip } from '../ui/tooltip'; -import { getDisplayText, getEmptyPlaceholder } from '../utils'; import { removeOffscreenCanvas } from '../utils/canvas'; import { clearValueRangeState } from '../utils/condition/state-controller'; import { hideColumnsByThunkGroup } from '../utils/hide-columns'; @@ -929,11 +928,4 @@ export abstract class SpreadSheet extends EE { return text ?? getDefaultSeriesNumberText(); } - - public getDisplayText(value: string | number, meta?: Record) { - return getDisplayText( - value, - getEmptyPlaceholder(meta || this, this.options.placeholder), - )!; - } } diff --git a/packages/s2-core/src/utils/dataset/pivot-data-set.ts b/packages/s2-core/src/utils/dataset/pivot-data-set.ts index 470c7aed82..015a9d2864 100644 --- a/packages/s2-core/src/utils/dataset/pivot-data-set.ts +++ b/packages/s2-core/src/utils/dataset/pivot-data-set.ts @@ -218,9 +218,7 @@ export function getDataPath(params: DataPathParams): DataPath { if (isFirstCreate && currentMeta && !currentMeta?.has(value)) { const currentDimensions = dimensionValues .slice(0, i + 1) - .map((dimensionValue) => - generateNillString(dimensionValue as string), - ); + .map((dimensionValue) => generateNillString(dimensionValue)); const id = currentDimensions.join(NODE_ID_SEPARATOR); const isTotal = value === TOTAL_VALUE; diff --git a/packages/s2-core/src/utils/export/copy/common.ts b/packages/s2-core/src/utils/export/copy/common.ts index 07c20d1beb..45978101e6 100644 --- a/packages/s2-core/src/utils/export/copy/common.ts +++ b/packages/s2-core/src/utils/export/copy/common.ts @@ -1,5 +1,5 @@ import { escape, map, max } from 'lodash'; -import type { DataItem, SimpleData } from '../../../common'; +import type { DataItem, Formatter, SimpleData } from '../../../common'; import { LINE_SEPARATOR, ROOT_NODE_ID, TAB_SEPARATOR } from '../../../common'; import { CopyMIMEType, @@ -64,19 +64,12 @@ export function getFormatter( field: string, formatData = false, dataSet: BaseDataSet, -) { - const { spreadsheet } = dataSet; - +): Formatter { if (formatData) { - return (value: DataItem) => { - const formattedValue = dataSet.getFieldFormatter(field!)(value); - - // 如果格式化后的值是空,则兜底占位符, 保证导出结果和表格一致: https://github.com/antvis/S2/issues/2808 - return spreadsheet.getDisplayText(formattedValue!); - }; + return dataSet.getFieldFormatter(field!); } - return (value: DataItem) => value; + return ((value) => value) as Formatter; } // 生成矩阵:https://gw.alipayobjects.com/zos/antfincdn/bxBVt0nXx/a182c1d4-81bf-469f-b868-8b2e29acfc5f.png @@ -236,11 +229,9 @@ export const getNodeFormatData = (leafNode: Node) => { const formatter = node.spreadsheet?.dataSet?.getFieldFormatter?.( node.field, ); - const formatterLabel = node.spreadsheet?.getDisplayText( - formatter?.(node.value) ?? node.value, - )!; + const value = formatter?.(node.value); - line.unshift(formatterLabel); + line.unshift(value as string); if (node?.parent) { return getNodeFormatterLabel(node.parent); } diff --git a/packages/s2-core/src/utils/layout/generate-id.ts b/packages/s2-core/src/utils/layout/generate-id.ts index 536dd83550..37a223694e 100644 --- a/packages/s2-core/src/utils/layout/generate-id.ts +++ b/packages/s2-core/src/utils/layout/generate-id.ts @@ -11,7 +11,7 @@ import { * 维值转为字符串时, 如果是null/undefined, 则添加标记, 便于转回来. * null/undefined => "$$null$$/$$undefined$$" */ -export const generateNillString = (value: string) => { +export const generateNillString = (value: SimpleData) => { if (isUndefined(value)) { return UNDEFINED_SYMBOL_ID; } @@ -39,7 +39,7 @@ export const resolveNillString = (value: string) => { return value; }; -export const generateId = (...ids: string[]): string => { +export const generateId = (...ids: SimpleData[]): string => { return ids.map(generateNillString).join(NODE_ID_SEPARATOR); }; diff --git a/packages/s2-core/src/utils/text.ts b/packages/s2-core/src/utils/text.ts index 49d0964c2e..a6c5e130cc 100644 --- a/packages/s2-core/src/utils/text.ts +++ b/packages/s2-core/src/utils/text.ts @@ -53,7 +53,7 @@ export const getDisplayText = ( const isEmptyString = displayText === '' || displayText === EMPTY_FIELD_VALUE; const isEmptyText = isNil(displayText) || isInvalidNumber || isEmptyString; - return isEmptyText ? emptyPlaceholder : resolveNillString(`${displayText}`); + return isEmptyText ? emptyPlaceholder : resolveNillString(displayText); }; /** diff --git a/packages/s2-core/src/utils/tooltip.ts b/packages/s2-core/src/utils/tooltip.ts index 59b17b79b1..2763aea0da 100644 --- a/packages/s2-core/src/utils/tooltip.ts +++ b/packages/s2-core/src/utils/tooltip.ts @@ -41,7 +41,6 @@ import { i18n } from '../common/i18n'; import type { AutoAdjustPositionOptions, Data, - SimpleData, Tooltip, TooltipDetailListItem, TooltipSummaryOptionsValue, @@ -175,13 +174,6 @@ export const setTooltipContainerStyle = ( container.classList.toggle(TOOLTIP_CONTAINER_HIDE_CLS, !visible); }; -export const getFieldFormatter = (spreadsheet: SpreadSheet, field: string) => { - const formatter = spreadsheet?.dataSet?.getFieldFormatter(field); - - return (value: SimpleData, data?: ViewMetaData) => - spreadsheet.getDisplayText(formatter(value, data)!); -}; - export const getListItem = ( spreadsheet: SpreadSheet, { @@ -202,7 +194,7 @@ export const getListItem = ( spreadsheet?.dataSet.getCustomRowFieldName(targetCell!) || spreadsheet?.dataSet?.getFieldName(field); - const formatter = getFieldFormatter(spreadsheet, field); + const formatter = spreadsheet?.dataSet?.getFieldFormatter(field); // 非数值类型的 data 不展示 (趋势分析表/迷你图/G2 图表),上层通过自定义 tooltip 的方式去自行定制 const dataValue = CellData.getFieldValue(data, field); @@ -532,12 +524,12 @@ export const getSummaries = (params: SummaryParam): TooltipSummaryOptions[] => { value = emptyPlaceholder; originVal = emptyPlaceholder; } else { - const currentFormatter = getFieldFormatter(spreadsheet, field); + const formatter = spreadsheet?.dataSet?.getFieldFormatter(field); const dataSum = getDataSumByField(selected, VALUE_FIELD); originVal = dataSum; value = - currentFormatter?.(dataSum, selected) ?? + formatter?.(dataSum, selected) ?? parseFloat(dataSum.toPrecision(PRECISION)); } @@ -586,8 +578,8 @@ export const getTooltipData = (params: TooltipDataParam): TooltipData => { 'valueField', ) as string; - const currentFormatter = getFieldFormatter(spreadsheet, valueField); - const formattedValue = currentFormatter(value) as string; + const formatter = spreadsheet?.dataSet?.getFieldFormatter(valueField); + const formattedValue = formatter?.(value) as string; const cellText = options.enableFormat ? spreadsheet.dataSet.getFieldName(value) || formattedValue : spreadsheet.dataSet.getFieldName(valueField); diff --git a/s2-site/docs/api/basic-class/base-cell.zh.md b/s2-site/docs/api/basic-class/base-cell.zh.md index 540db97336..7d9a75c14d 100644 --- a/s2-site/docs/api/basic-class/base-cell.zh.md +++ b/s2-site/docs/api/basic-class/base-cell.zh.md @@ -37,7 +37,7 @@ cell.getActualText() | addConditionIconShape | 添加 icon 图层 | `(shape: GuiIcon) => void` | | isShallowRender | 是否是浅渲染 | `( ) => boolean` | | getActualText | 获取实际渲染的文本 (含省略号) | `() => string` | -| getOriginalText | 获取原始的文本 (不含省略号) | `() => string` | +| getOriginalText | 获取原始的文本 (不含省略号) | `() => string \| number` | | getActualTextWidth | 实际渲染的文本宽度,如果是多行文本,取最大的一行宽度 | `() => number` | | getActualTextHeight | 实际渲染的文本宽度,如果是多行文本,取每一行文本高度的总和 | `() => number` | | getMultiLineActualTexts | 获取实际渲染的多行文本 (含省略号) | `() => string[]` | diff --git a/s2-site/docs/manual/migration-v2.zh.md b/s2-site/docs/manual/migration-v2.zh.md index 33a88497ad..9a516bae10 100644 --- a/s2-site/docs/manual/migration-v2.zh.md +++ b/s2-site/docs/manual/migration-v2.zh.md @@ -638,7 +638,7 @@ const s2Options = { + s2.dataSet.getField(field: CustomTreeNode | string) + s2.dataSet.getFieldMeta(field: CustomTreeNode | string) + s2.dataSet.getFieldName(field: CustomTreeNode | string) -+ s2.dataSet.getFieldFormatter(field: CustomTreeNode | string) ++ s2.dataSet.getFieldFormatter(field: CustomTreeNode | string, withPlaceholder?: boolean) ``` 2. 获取单元格数据 API 的参数统一。 From 055aad2185fa91edec7d67cd0713ea7fd6b74639 Mon Sep 17 00:00:00 2001 From: lijinke666 Date: Wed, 10 Jul 2024 16:44:42 +0800 Subject: [PATCH 5/6] =?UTF-8?q?test:=20=E5=8D=95=E6=B5=8B=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../s2-core/__tests__/bugs/issue-2804-spec.ts | 8 +-- .../__tests__/unit/facet/table-facet-spec.ts | 15 +++-- packages/s2-core/src/facet/pivot-facet.ts | 6 +- .../s2-core/src/sheet-type/spread-sheet.ts | 15 ++--- .../s2-react/__tests__/data/mock-dataset.json | 8 +-- packages/s2-react/playground/config.tsx | 61 +++++++------------ s2-site/docs/api/basic-class/base-cell.zh.md | 3 +- s2-site/docs/manual/migration-v2.zh.md | 2 +- 8 files changed, 50 insertions(+), 68 deletions(-) diff --git a/packages/s2-core/__tests__/bugs/issue-2804-spec.ts b/packages/s2-core/__tests__/bugs/issue-2804-spec.ts index 9cb9499cb1..ca2831927d 100644 --- a/packages/s2-core/__tests__/bugs/issue-2804-spec.ts +++ b/packages/s2-core/__tests__/bugs/issue-2804-spec.ts @@ -5,7 +5,7 @@ * https://github.com/antvis/S2/issues/2804 */ import { PivotSheet } from '@/sheet-type'; -import { S2Options } from '../../src'; +import type { S2Options } from '../../src'; import * as mockDataConfig from '../data/data-issue-2804.json'; import { getContainer } from '../util/helpers'; @@ -16,12 +16,12 @@ const s2Options: S2Options = { }; describe('Tree Leaf Node Status Tests', () => { - test('should get correctly tree icon and leaf node status', () => { + test('should get correctly tree icon and leaf node status', async () => { const s2 = new PivotSheet(getContainer(), mockDataConfig, s2Options); - s2.render(); + await s2.render(); - const [a1, a2] = s2.getRowNodes(); + const [a1, a2] = s2.facet.getRowNodes(); expect(a1.isLeaf).toBeTruthy(); expect(a1.isTotals).toBeFalsy(); diff --git a/packages/s2-core/__tests__/unit/facet/table-facet-spec.ts b/packages/s2-core/__tests__/unit/facet/table-facet-spec.ts index 0ab1fd7c08..985733b6c0 100644 --- a/packages/s2-core/__tests__/unit/facet/table-facet-spec.ts +++ b/packages/s2-core/__tests__/unit/facet/table-facet-spec.ts @@ -18,7 +18,7 @@ import { Canvas, Group, type CanvasConfig } from '@antv/g'; import { Renderer } from '@antv/g-canvas'; import { pick } from 'lodash'; import { assembleDataCfg, assembleOptions } from 'tests/util'; -import { getDefaultSeriesNumberText } from '../../../src'; +import { EMPTY_PLACEHOLDER, getDefaultSeriesNumberText } from '../../../src'; import { data } from '../../data/mock-dataset.json'; import { createFakeSpreadSheet } from '../../util/helpers'; @@ -88,6 +88,7 @@ jest.mock('@/sheet-type', () => { }), }; }); + jest.mock('@/data-set/table-data-set', () => { return { TableDataSet: jest.fn().mockImplementation(() => { @@ -255,7 +256,9 @@ describe('Table Mode Facet Test With Compact Layout', () => { return LABEL_WIDTH[2]; case '沙发': return LABEL_WIDTH[3]; - case 'undefined': + case undefined: + case null: + case EMPTY_PLACEHOLDER: return LABEL_WIDTH[4]; default: return 0; @@ -278,7 +281,7 @@ describe('Table Mode Facet Test With Compact Layout', () => { ); test('col hierarchy coordinate with compact layout', () => { - const COMPACT_WIDTH = [53, 53, 65, 41, 73]; + const COMPACT_WIDTH = [73, 73, 73, 73, 73]; let lastX = 0; @@ -304,7 +307,9 @@ describe('Table Mode Facet Test With Compact Layout', () => { return LABEL_WIDTH[2]; case '沙发': return LABEL_WIDTH[3]; - case 'undefined': // serialnumber & price + case undefined: + case null: + case EMPTY_PLACEHOLDER: return LABEL_WIDTH[4]; default: return 0; @@ -329,7 +334,7 @@ describe('Table Mode Facet Test With Compact Layout', () => { const { colCell } = s2.options.style!; test('col hierarchy coordinate with compact layout with seriesNumber', () => { - const COMPACT_WIDTH = [80, 53, 53, 65, 41, 73]; + const COMPACT_WIDTH = [80, 73, 73, 73, 73, 73]; let lastX = 0; diff --git a/packages/s2-core/src/facet/pivot-facet.ts b/packages/s2-core/src/facet/pivot-facet.ts index fb58eb967e..48ce7e80ae 100644 --- a/packages/s2-core/src/facet/pivot-facet.ts +++ b/packages/s2-core/src/facet/pivot-facet.ts @@ -927,14 +927,14 @@ export class PivotFacet extends FrozenFacet { this.spreadsheet.dataSet.getFieldFormatter(cellData[EXTRA_FIELD])?.( valueData, ) ?? valueData; - const cellLabel = `${formattedValue}`; + const cellLabel = formattedValue; const cellLabelWidth = this.spreadsheet.measureTextWidth( - cellLabel, + cellLabel as string, dataCellTextStyle, ); if (cellLabelWidth > maxDataLabelWidth) { - maxDataLabel = cellLabel; + maxDataLabel = cellLabel as string; maxDataLabelWidth = cellLabelWidth; } } diff --git a/packages/s2-core/src/sheet-type/spread-sheet.ts b/packages/s2-core/src/sheet-type/spread-sheet.ts index cefd7dc0df..acb1c2eff5 100644 --- a/packages/s2-core/src/sheet-type/spread-sheet.ts +++ b/packages/s2-core/src/sheet-type/spread-sheet.ts @@ -45,6 +45,7 @@ import type { S2Options, S2RenderOptions, S2Theme, + SimpleData, SortMethod, ThemeCfg, ThemeName, @@ -786,7 +787,7 @@ export abstract class SpreadSheet extends EE { * @returns 文本测量信息 TextMetrics */ public measureText = memoize( - (text: number | string = '', font: unknown): TextMetrics | null => { + (text: SimpleData, font: unknown): TextMetrics | null => { if (!font) { return null; } @@ -807,7 +808,7 @@ export abstract class SpreadSheet extends EE { return ctx.measureText(String(text)); }, - (text: any, font) => [text, ...values(font)].join(''), + (text: SimpleData, font) => [text, ...values(font)].join(''), ); /** @@ -816,10 +817,7 @@ export abstract class SpreadSheet extends EE { * @param font 文本 css 样式 * @returns 文本宽度 */ - public measureTextWidth = ( - text: number | string = '', - font: unknown, - ): number => { + public measureTextWidth = (text: SimpleData, font: unknown): number => { const textMetrics = this.measureText(text, font); return textMetrics?.width || 0; @@ -831,10 +829,7 @@ export abstract class SpreadSheet extends EE { * @param font 文本 css 样式 * @returns 文本高度 */ - public measureTextHeight = ( - text: number | string = '', - font: unknown, - ): number => { + public measureTextHeight = (text: SimpleData, font: unknown): number => { const textMetrics = this.measureText(text, font); if (!textMetrics) { diff --git a/packages/s2-react/__tests__/data/mock-dataset.json b/packages/s2-react/__tests__/data/mock-dataset.json index aeb5f2b2c1..d42360ebc8 100644 --- a/packages/s2-react/__tests__/data/mock-dataset.json +++ b/packages/s2-react/__tests__/data/mock-dataset.json @@ -46,10 +46,10 @@ "data": [ { "number": 7789, - "province": null, - "city": null, - "type": null, - "sub_type": null + "province": "浙江省", + "city": "杭州市", + "type": "家具", + "sub_type": "桌子" }, { "number": 2367, diff --git a/packages/s2-react/playground/config.tsx b/packages/s2-react/playground/config.tsx index 43e4f595c4..4dcd012e31 100644 --- a/packages/s2-react/playground/config.tsx +++ b/packages/s2-react/playground/config.tsx @@ -79,30 +79,7 @@ export const tableSheetDataCfg: S2DataConfig = { export const pivotSheetDataCfg: S2DataConfig = { data, totalData, - meta: [ - { - field: 'type', - name: '类别', - formatter: (v) => { - if (!v) { - return v; - } - - return `${v}-@`; - }, - }, - { - field: 'number', - name: '数量', - formatter: (v) => { - if (!v) { - return v; - } - - return `${v}-x`; - }, - }, - ], + meta, fields, }; @@ -114,28 +91,32 @@ export const pivotSheetDataCfgForCompactMode = customMerge( data: [ ...pivotSheetDataCfg.data, { - province: '浙江', - city: '杭州', - type: '笔', - price: '11111111', + province: '浙江省', + city: '杭州市', + sub_type: '笔', + type: '家具', + number: 11111111, }, { - province: '浙江', - city: '杭州', - type: '纸张', - price: '2', + province: '浙江省', + city: '杭州市', + sub_type: '纸张', + type: '办公用品', + number: 2, }, { - province: '浙江', - city: '舟山', - type: '笔', - price: '2', + province: '浙江省', + city: '舟山市', + sub_type: '笔', + type: '办公用品', + number: 2, }, { - province: '浙江', - city: '舟山', - type: '纸张', - price: '133.333', + province: '浙江省', + city: '舟山市', + sub_type: '纸张', + type: '办公用品', + number: 133.333, }, ], }, diff --git a/s2-site/docs/api/basic-class/base-cell.zh.md b/s2-site/docs/api/basic-class/base-cell.zh.md index 7d9a75c14d..7e9ea02c0d 100644 --- a/s2-site/docs/api/basic-class/base-cell.zh.md +++ b/s2-site/docs/api/basic-class/base-cell.zh.md @@ -37,7 +37,7 @@ cell.getActualText() | addConditionIconShape | 添加 icon 图层 | `(shape: GuiIcon) => void` | | isShallowRender | 是否是浅渲染 | `( ) => boolean` | | getActualText | 获取实际渲染的文本 (含省略号) | `() => string` | -| getOriginalText | 获取原始的文本 (不含省略号) | `() => string \| number` | +| getOriginalText | 获取原始的文本(不含省略号) | `() => string \| number` | | getActualTextWidth | 实际渲染的文本宽度,如果是多行文本,取最大的一行宽度 | `() => number` | | getActualTextHeight | 实际渲染的文本宽度,如果是多行文本,取每一行文本高度的总和 | `() => number` | | getMultiLineActualTexts | 获取实际渲染的多行文本 (含省略号) | `() => string[]` | @@ -45,6 +45,7 @@ cell.getActualText() | getMultiLineActualTextHeight | 实际渲染的多行文本高度 (每一行文本高度的总和) | `() => number` | | isTextOverflowing | 文本是否溢出 (有省略号) | `() => boolean` | | isMultiLineText | 是否是多行文本 | `() => boolean` | +| getEmptyPlaceholder | 获取单元格空值占位符 | `() => string` | | getTextLineBoundingRects | 获取文本包围盒 | `() => string` | | getFieldValue | 获取单元格展示的数值 | `() => string` | diff --git a/s2-site/docs/manual/migration-v2.zh.md b/s2-site/docs/manual/migration-v2.zh.md index 9a516bae10..33a88497ad 100644 --- a/s2-site/docs/manual/migration-v2.zh.md +++ b/s2-site/docs/manual/migration-v2.zh.md @@ -638,7 +638,7 @@ const s2Options = { + s2.dataSet.getField(field: CustomTreeNode | string) + s2.dataSet.getFieldMeta(field: CustomTreeNode | string) + s2.dataSet.getFieldName(field: CustomTreeNode | string) -+ s2.dataSet.getFieldFormatter(field: CustomTreeNode | string, withPlaceholder?: boolean) ++ s2.dataSet.getFieldFormatter(field: CustomTreeNode | string) ``` 2. 获取单元格数据 API 的参数统一。 From 5209bb5103c5f81f88c51b55eef256d6842799b0 Mon Sep 17 00:00:00 2001 From: lijinke666 Date: Mon, 29 Jul 2024 16:50:31 +0800 Subject: [PATCH 6/6] =?UTF-8?q?test:=20=E6=9B=B4=E6=96=B0=E5=BF=AB?= =?UTF-8?q?=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../__snapshots__/miss-dimension-values-spec.ts.snap | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/s2-core/__tests__/spreadsheet/__snapshots__/miss-dimension-values-spec.ts.snap b/packages/s2-core/__tests__/spreadsheet/__snapshots__/miss-dimension-values-spec.ts.snap index 1256d6f5b3..3c0793b6c4 100644 --- a/packages/s2-core/__tests__/spreadsheet/__snapshots__/miss-dimension-values-spec.ts.snap +++ b/packages/s2-core/__tests__/spreadsheet/__snapshots__/miss-dimension-values-spec.ts.snap @@ -2,20 +2,20 @@ exports[`Miss Dimension Values Tests should replace empty dimension value placeholder when copy formatted data 1`] = ` "一级维度 二级维度 三级维度 数值 -总计 $$empty_field_value$$ $$empty_field_value$$ 1732771 +总计 - - 1732771 维值-1 维值-2 维度-3 12222 维值-1 维值-3 维值-3 11111 维值-1 维值-3 维度-3 11111 -维值-1 维值-3 小计 +维值-1 维值-3 小计 - 维值-1 小计 456 测试-1 测试-2 维度-3 4444567 -测试-1 测试-3 $$empty_field_value$$ 785222 +测试-1 测试-3 - 785222 测试-1 测试-4 维度-3 6455644 测试-1 测试-5 维度-3 1111 测试-1 小计 125555 -测试-6 测试-x $$empty_field_value$$ 111111 -测试-6 测试-7 $$empty_field_value$$ 67878 -测试-6 测试-8 $$empty_field_value$$ 456.464 +测试-6 测试-x - 111111 +测试-6 测试-7 - 67878 +测试-6 测试-8 - 456.464 测试-6 小计 123.416" `;