Skip to content

Commit

Permalink
Merge branch 'next' into feat-2828
Browse files Browse the repository at this point in the history
  • Loading branch information
lijinke666 committed Aug 23, 2024
2 parents 5be6842 + f0db754 commit 486dcd1
Show file tree
Hide file tree
Showing 30 changed files with 602 additions and 239 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ province city 数值 数值 数值 数值

exports[`PivotSheet Export Test should export correct data with formatter for custom column headers 1`] = `
" 自定义节点 a-1 自定义节点 a-1 自定义节点 a-1 自定义节点 a-1 自定义节点 a-2
自定义节点 a-2 自定义节点 a-1-1 自定义节点 a-1-1 自定义节点 a-1-2
自定义节点 a-1-1 自定义节点 a-1-1 自定义节点 a-1-1 自定义节点 a-1-2
type sub_type 指标1 指标2
家具 桌子 13 2 - -
家具 椅子 11 8 - -"
Expand All @@ -243,6 +243,21 @@ exports[`PivotSheet Export Test should export correct data with formatter for cu
自定义节点 a-2 - -"
`;

exports[`PivotSheet Export Test should export correctly corner text for custom columns 1`] = `
" 自定义节点 a-1 自定义节点 a-1 自定义节点 a-1 自定义节点 a-1 自定义节点 a-2
自定义节点 a-1-1 自定义节点 a-1-1 自定义节点 a-1-1 自定义节点 a-1-2
type sub_type 指标1 指标2
家具 桌子 13 2 - -
家具 椅子 11 8 - -"
`;

exports[`PivotSheet Export Test should export correctly corner text for custom columns and single rows 1`] = `
"自定义节点 a-1 自定义节点 a-1 自定义节点 a-1 自定义节点 a-1 自定义节点 a-2
自定义节点 a-1-1 自定义节点 a-1-1 自定义节点 a-1-1 自定义节点 a-1-2
type 指标1 指标2
家具 11 8 - -"
`;

exports[`PivotSheet Export Test should export correctly data for single row data by { async: false } 1`] = `
Array [
" type 笔 笔",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,20 @@ exports[`PivotSheet Export Test Custom Tree Export Test should export correct da
自定义节点 a-2 - -"
`;

exports[`PivotSheet Export Test should called with cell view meta when export formatted data 1`] = `
" type 家具 家具 办公用品 办公用品
sub_type 桌子 沙发 笔 纸张
province city number number number number
浙江省 杭州市 - - - -
浙江省 绍兴市 - - - -
浙江省 宁波市 - - - -
浙江省 舟山市 - - - -
四川省 成都市 - - - -
四川省 绵阳市 - - - -
四川省 南充市 - - - -
四川省 乐山市 - - - -"
`;

exports[`PivotSheet Export Test should export correct HTML data 1`] = `"<meta charset=\\"utf-8\\"><table><tbody><tr><td></td><td>类别</td><td>家具</td><td>家具</td><td>办公用品</td><td>办公用品</td></tr><tr><td></td><td>子类别</td><td>桌子</td><td>沙发</td><td>笔</td><td>纸张</td></tr><tr><td>省份</td><td>城市</td><td>数量</td><td>数量</td><td>数量</td><td>数量</td></tr><tr><td>浙江省</td><td>杭州市</td><td>7789</td><td>5343</td><td>945</td><td>1343</td></tr><tr><td>浙江省</td><td>绍兴市</td><td>2367</td><td>632</td><td>1304</td><td>1354</td></tr><tr><td>浙江省</td><td>宁波市</td><td>3877</td><td>7234</td><td>1145</td><td>1523</td></tr><tr><td>浙江省</td><td>舟山市</td><td>4342</td><td>834</td><td>1432</td><td>1634</td></tr><tr><td>四川省</td><td>成都市</td><td>1723</td><td>2451</td><td>2335</td><td>4004</td></tr><tr><td>四川省</td><td>绵阳市</td><td>1822</td><td>2244</td><td>245</td><td>3077</td></tr><tr><td>四川省</td><td>南充市</td><td>1943</td><td>2333</td><td>2457</td><td>3551</td></tr><tr><td>四川省</td><td>乐山市</td><td>2330</td><td>2445</td><td>2458</td><td>352</td></tr></tbody></table>"`;

exports[`PivotSheet Export Test should export correct all type data 1`] = `
Expand Down Expand Up @@ -259,6 +273,87 @@ province city 数值 数值 数值 数值
四川省 乐山市 2330 2445 2458 352"
`;

exports[`TableSheet Export Test should called with cell view meta when export formatted data 1`] = `
"province city type sub_type number
浙江省 杭州市 家具 桌子 -
浙江省 绍兴市 家具 桌子 -
浙江省 宁波市 家具 桌子 -
浙江省 舟山市 家具 桌子 -
浙江省 杭州市 家具 沙发 -
浙江省 绍兴市 家具 沙发 -
浙江省 宁波市 家具 沙发 -
浙江省 舟山市 家具 沙发 -
浙江省 杭州市 办公用品 笔 -
浙江省 绍兴市 办公用品 笔 -
浙江省 宁波市 办公用品 笔 -
浙江省 舟山市 办公用品 笔 -
浙江省 杭州市 办公用品 纸张 -
浙江省 绍兴市 办公用品 纸张 -
浙江省 宁波市 办公用品 纸张 -
浙江省 舟山市 办公用品 纸张 -
四川省 成都市 家具 桌子 -
四川省 绵阳市 家具 桌子 -
四川省 南充市 家具 桌子 -
四川省 乐山市 家具 桌子 -
四川省 成都市 家具 沙发 -
四川省 绵阳市 家具 沙发 -
四川省 南充市 家具 沙发 -
四川省 乐山市 家具 沙发 -
四川省 成都市 办公用品 笔 -
四川省 绵阳市 办公用品 笔 -
四川省 南充市 办公用品 笔 -
四川省 乐山市 办公用品 笔 -
四川省 成都市 办公用品 纸张 -
四川省 绵阳市 办公用品 纸张 -
四川省 南充市 办公用品 纸张 -
四川省 乐山市 办公用品 纸张 -
- - 家具 桌子 -
- - 家具 - -
- - 家具 沙发 -
- - 办公用品 - -
- - 办公用品 笔 -
- - 办公用品 纸张 -
浙江省 - 家具 桌子 -
浙江省 - 家具 沙发 -
浙江省 - 办公用品 笔 -
浙江省 - 办公用品 纸张 -
四川省 - 家具 桌子 -
四川省 - 家具 沙发 -
四川省 - 办公用品 笔 -
四川省 - 办公用品 纸张 -
浙江省 杭州市 家具 - -
浙江省 杭州市 办公用品 - -
浙江省 杭州市 - - -
浙江省 绍兴市 家具 - -
浙江省 绍兴市 办公用品 - -
浙江省 绍兴市 - - -
浙江省 宁波市 家具 - -
浙江省 宁波市 办公用品 - -
浙江省 宁波市 - - -
浙江省 舟山市 家具 - -
浙江省 舟山市 办公用品 - -
浙江省 舟山市 - - -
四川省 成都市 家具 - -
四川省 成都市 办公用品 - -
四川省 成都市 - - -
四川省 绵阳市 家具 - -
四川省 绵阳市 办公用品 - -
四川省 绵阳市 - - -
四川省 南充市 家具 - -
四川省 南充市 办公用品 - -
四川省 南充市 - - -
四川省 乐山市 家具 - -
四川省 乐山市 办公用品 - -
四川省 乐山市 - - -
浙江省 - 家具 - -
浙江省 - 办公用品 - -
浙江省 - - - -
四川省 - 家具 - -
四川省 - 办公用品 - -
四川省 - - - -
- - - - -"
`;

exports[`TableSheet Export Test should export correct HTML data 1`] = `"<meta charset=\\"utf-8\\"><table><tbody><tr><td>类别</td><td>子类别</td></tr><tr><td>家具</td><td>桌子</td></tr><tr><td>家具</td><td>桌子</td></tr><tr><td>家具</td><td>桌子</td></tr><tr><td>家具</td><td>桌子</td></tr><tr><td>家具</td><td>沙发</td></tr><tr><td>家具</td><td>沙发</td></tr><tr><td>家具</td><td>沙发</td></tr><tr><td>家具</td><td>沙发</td></tr><tr><td>办公用品</td><td>笔</td></tr><tr><td>办公用品</td><td>笔</td></tr><tr><td>办公用品</td><td>笔</td></tr><tr><td>办公用品</td><td>笔</td></tr><tr><td>办公用品</td><td>纸张</td></tr><tr><td>办公用品</td><td>纸张</td></tr><tr><td>办公用品</td><td>纸张</td></tr><tr><td>办公用品</td><td>纸张</td></tr><tr><td>家具</td><td>桌子</td></tr><tr><td>家具</td><td>桌子</td></tr><tr><td>家具</td><td>桌子</td></tr><tr><td>家具</td><td>桌子</td></tr><tr><td>家具</td><td>沙发</td></tr><tr><td>家具</td><td>沙发</td></tr><tr><td>家具</td><td>沙发</td></tr><tr><td>家具</td><td>沙发</td></tr><tr><td>办公用品</td><td>笔</td></tr><tr><td>办公用品</td><td>笔</td></tr><tr><td>办公用品</td><td>笔</td></tr><tr><td>办公用品</td><td>笔</td></tr><tr><td>办公用品</td><td>纸张</td></tr><tr><td>办公用品</td><td>纸张</td></tr><tr><td>办公用品</td><td>纸张</td></tr><tr><td>办公用品</td><td>纸张</td></tr></tbody></table>"`;

exports[`TableSheet Export Test should export correct all type data 1`] = `
Expand Down
49 changes: 49 additions & 0 deletions packages/s2-core/__tests__/unit/utils/export/copy-spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -556,6 +556,33 @@ describe('List Table Core Data Process', () => {

expect(getCopyPlainContent(s2)).toMatchInlineSnapshot(`"custom data"`);
});

it('should called with cell view meta when brush select formatted data', async () => {
const formatter = jest.fn();

s2.setOptions({
interaction: {
copy: {
withFormat: true,
},
},
});
s2.setDataCfg({
meta: [{ field: 'number', formatter }],
});

await s2.render();

s2.interaction.changeState({
cells: s2.facet.getDataCells().map((cell) => getCellMeta(cell)),
stateName: InteractionStateName.SELECTED,
});

const viewMeta = s2.facet.getCellMeta(18, 5);

getCopyPlainContent(s2);
expect(formatter).toHaveBeenLastCalledWith(1943, viewMeta.data, viewMeta);
});
});

describe('Pivot Table Core Data Process', () => {
Expand Down Expand Up @@ -1226,6 +1253,28 @@ describe('Pivot Table Core Data Process', () => {

expect(getCopyPlainContent(s2)).toMatchInlineSnapshot(`"custom data"`);
});

// https://github.com/antvis/S2/issues/2866
it('should called with cell view meta when brush select formatted data', async () => {
const formatter = jest.fn();

s2.setOptions({
interaction: {
copy: { enable: true, withHeader: true, withFormat: true },
},
});

const meta: Meta[] = [{ field: 'number', formatter }];

s2.setDataCfg(getDataCfg(meta));

await s2.render();

const viewMeta = s2.facet.getCellMeta(10, 4);

getCopyPlainContent(s2);
expect(formatter).toHaveBeenLastCalledWith(16838, viewMeta.data, viewMeta);
});
});

describe('Tree Table Core Data Process', () => {
Expand Down
30 changes: 30 additions & 0 deletions packages/s2-core/__tests__/unit/utils/export/export-pivot-spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -575,4 +575,34 @@ describe('PivotSheet Export Test', () => {
formatData: true,
});
});

it('should export correctly corner text for custom columns', async () => {
const sheet = new PivotSheet(
getContainer(),
{
data: CustomGridData,
fields: customColGridSimpleFields,
},
assembleOptions(),
);

await expectMatchSnapshot(sheet);
});

// https://github.com/antvis/S2/issues/2844
it('should export correctly corner text for custom columns and single rows', async () => {
const sheet = new PivotSheet(
getContainer(),
{
data: CustomGridData,
fields: {
...customColGridSimpleFields,
rows: ['type'],
},
},
assembleOptions(),
);

await expectMatchSnapshot(sheet);
});
});
45 changes: 45 additions & 0 deletions packages/s2-core/__tests__/unit/utils/export/export-spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,27 @@ describe('TableSheet Export Test', () => {

await expectMatchSnapshot(s2, true, asyncGetAllData);
});

it('should called with cell view meta when export formatted data', async () => {
const formatter = jest.fn();

const s2 = new TableSheet(
getContainer(),
assembleDataCfg({
meta: [{ field: 'number', formatter }],
fields: {
columns: ['province', 'city', 'type', 'sub_type', 'number'],
},
}),
assembleOptions(),
);

await expectMatchSnapshot(s2);

const viewMeta = s2.facet.getCellMeta(76, 4);

expect(formatter).toHaveBeenLastCalledWith(78868, viewMeta.data, viewMeta);
});
});

describe('PivotSheet Export Test', () => {
Expand Down Expand Up @@ -423,6 +444,30 @@ describe('PivotSheet Export Test', () => {
await expectMatchSnapshot(s2, true, asyncGetAllData);
});

// https://github.com/antvis/S2/issues/2866
it('should called with cell view meta when export formatted data', async () => {
const formatter = jest.fn();

const s2 = new PivotSheet(
getContainer(),
assembleDataCfg({
meta: [
{
field: 'number',
formatter,
},
],
}),
s2Options,
);

await expectMatchSnapshot(s2);

const viewMeta = s2.facet.getCellMeta(7, 3);

expect(formatter).toHaveBeenLastCalledWith(352, viewMeta.data, viewMeta);
});

describe('Custom Tree Export Test', () => {
let s2: SpreadSheet;

Expand Down
37 changes: 37 additions & 0 deletions packages/s2-core/__tests__/unit/utils/tooltip-spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1103,6 +1103,43 @@ describe('Tooltip Utils Tests', () => {
`);
});
});

// https://github.com/antvis/S2/issues/2843
test('should get empty cell name for custom chart shape', () => {
s2 = createFakeSpreadSheet();

s2.dataSet = {
getFieldFormatter: () => {},
getCustomFieldDescription: () => {},
getFieldName: () => {
return {
values: {
test: '1',
},
};
},
};

s2.facet = {
getRowLeafNodes: () => [],
getColLeafNodes: () => [],
} as unknown as BaseFacet;

const cell = createMockCellInfo('test-a');

const tooltipData = getTooltipData({
cellInfos: [],
options: {
enableFormat: true,
hideSummary: true,
onlyShowCellText: true,
},
targetCell: cell.mockCell,
spreadsheet: s2,
});

expect(tooltipData.name).toEqual('');
});
});

test('should set container style', () => {
Expand Down
2 changes: 1 addition & 1 deletion packages/s2-core/src/common/interface/basic.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export type { GetCellMeta, LayoutResult } from './facet';
export type Formatter = (
value: DataItem,
data?: DataItem | ViewMetaData | ViewMetaData[],
meta?: Node | ViewMeta,
meta?: Node | ViewMeta | null | undefined,
) => SimpleData;

export interface FormatResult {
Expand Down
4 changes: 2 additions & 2 deletions packages/s2-core/src/data-set/cell-data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import type { RawData } from '../common/interface/s2DataConfig';

export class CellData {
constructor(
private raw: RawData,
private extraField: string,
public readonly raw: RawData,
public readonly extraField: string,
) {}

static getCellData(raw: RawData, extraField: string) {
Expand Down
2 changes: 1 addition & 1 deletion packages/s2-core/src/facet/pivot-facet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ export class PivotFacet extends FrozenFacet {
/**
* 根据行列索引获取单元格元数据
*/
public getCellMeta(rowIndex = 0, colIndex = 0) {
public getCellMeta(rowIndex: number = 0, colIndex: number = 0) {
const { options, dataSet } = this.spreadsheet;
const { rowLeafNodes, colLeafNodes } = this.getLayoutResult();
const row = rowLeafNodes[rowIndex];
Expand Down
2 changes: 1 addition & 1 deletion packages/s2-core/src/facet/table-facet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,7 @@ export class TableFacet extends FrozenFacet {
};
}

public getCellMeta(rowIndex = 0, colIndex = 0) {
public getCellMeta(rowIndex: number = 0, colIndex: number = 0) {
const { options, dataSet } = this.spreadsheet;
const colLeafNodes = this.getColLeafNodes();
const colNode = colLeafNodes[colIndex];
Expand Down
Loading

0 comments on commit 486dcd1

Please sign in to comment.