@visactor/vtable 0.16.1 → 0.16.2-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/core/BaseTable.js +1 -1
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/scenegraph/layout/move-cell.js +21 -4
- package/cjs/scenegraph/layout/move-cell.js.map +1 -1
- package/dist/vtable.js +38 -8
- package/dist/vtable.min.js +1 -1
- package/es/core/BaseTable.js +1 -1
- package/es/core/BaseTable.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/scenegraph/layout/move-cell.js +20 -7
- package/es/scenegraph/layout/move-cell.js.map +1 -1
- package/package.json +5 -5
package/es/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ import type { MousePointerCellEvent } from './ts-types/events';
|
|
|
12
12
|
import * as CustomLayout from './render/layout';
|
|
13
13
|
export { getDataCellPath } from './tools/get-data-path';
|
|
14
14
|
export * from './render/jsx';
|
|
15
|
-
export declare const version = "0.16.1";
|
|
15
|
+
export declare const version = "0.16.2-alpha.1";
|
|
16
16
|
export { TYPES, core, ListTable, ListTableConstructorOptions, PivotTable, PivotTableConstructorOptions, PivotChartConstructorOptions, PivotChart, IHeaderTreeDefine, IDimension, IIndicator, ITitleDefine, ICornerDefine, ColumnsDefine, ColumnDefine, LinkColumnDefine, ChartColumnDefine, ImageColumnDefine, SparklineColumnDefine, ProgressbarColumnDefine, TextColumnDefine, GroupColumnDefine, TextAlignType, TextBaselineType, themes, data, MousePointerCellEvent, getIcons, clearGlobal, register, DataStatistics, CustomLayout };
|
|
17
17
|
declare function getIcons(): {
|
|
18
18
|
[key: string]: TYPES.ColumnIconOption;
|
package/es/index.js
CHANGED
|
@@ -24,7 +24,7 @@ export { getDataCellPath } from "./tools/get-data-path";
|
|
|
24
24
|
|
|
25
25
|
export * from "./render/jsx";
|
|
26
26
|
|
|
27
|
-
export const version = "0.16.1";
|
|
27
|
+
export const version = "0.16.2-alpha.1";
|
|
28
28
|
|
|
29
29
|
export { TYPES, core, ListTable, PivotTable, PivotChart, themes, data, getIcons, clearGlobal, register, DataStatistics, CustomLayout };
|
|
30
30
|
|
package/es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAC;AAsB3D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC;AAKhD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,cAAc,cAAc,CAAC;AAE7B,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAC;AAsB3D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC;AAKhD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,cAAc,cAAc,CAAC;AAE7B,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAIxC,OAAO,EAKL,KAAK,EACL,IAAI,EACJ,SAAS,EAET,UAAU,EAGV,UAAU,EAiBV,MAAM,EACN,IAAI,EAEJ,QAAQ,EACR,WAAW,EAEX,QAAQ,EAIR,cAAc,EACd,YAAY,EACb,CAAC;AAGF,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AACD,KAAK,CAAC,eAAe,CAAC","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport * as TYPES from './ts-types';\nimport * as core from './core';\nimport * as data from './data';\nimport * as icons from './icons';\nimport * as register from './register';\nimport * as themes from './themes';\nimport * as DataStatistics from './dataset/DataStatistics';\nimport type {\n ColumnDefine,\n ColumnsDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n TextAlignType,\n TextBaselineType\n} from './ts-types';\nimport { ListTable } from './ListTable';\nimport { PivotTable } from './PivotTable';\nimport { PivotChart } from './PivotChart';\nimport type { MousePointerCellEvent } from './ts-types/events';\nimport * as CustomLayout from './render/layout';\n\n// import { container, loadCanvasPicker } from '@visactor/vrender';\n// loadCanvasPicker(container);\n\nexport { getDataCellPath } from './tools/get-data-path';\nexport * from './render/jsx';\n\nexport const version = \"0.16.2-alpha.1\";\n/**\n * @namespace VTable\n */\nexport {\n /**\n * Types\n * @namespace VTable.TYPES\n */\n TYPES,\n core,\n ListTable,\n ListTableConstructorOptions,\n PivotTable,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n PivotChart,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n ColumnsDefine,\n ColumnDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n TextAlignType,\n TextBaselineType,\n themes,\n data,\n MousePointerCellEvent,\n getIcons,\n clearGlobal,\n //plugin registers\n register,\n /**\n * 暂不推荐使用\n */\n DataStatistics,\n CustomLayout\n};\n\n/** @private */\nfunction getIcons(): {\n [key: string]: TYPES.ColumnIconOption;\n} {\n return icons.get();\n}\n/** 清理内部的全局变量 如注册的icon theme等 以及共享的header column类实例 */\nfunction clearGlobal() {\n register.clearAll();\n // headers.type.clearGlobal();\n // columns.type.clearGlobal();\n}\nTYPES.AggregationType;\n"]}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import { Group } from "@visactor/vrender";
|
|
2
|
-
|
|
3
1
|
import { getCellMergeInfo } from "../utils/get-cell-merge";
|
|
4
2
|
|
|
5
|
-
const groupForPosition = new Group({});
|
|
6
|
-
|
|
7
3
|
export function moveHeaderPosition(colSource, rowSource, colTarget, rowTarget, table) {
|
|
8
4
|
const scene = table.scenegraph, cellLocation = table.getCellLocation(colTarget, rowTarget), direction = "columnHeader" === cellLocation ? "column" : "rowHeader" === cellLocation ? "row" : void 0;
|
|
9
5
|
let sourceColStart = 0, sourceRowStart = 0, sourceColEnd = 0, sourceRowEnd = 0, targetColStart = 0, targetRowStart = 0, targetColEnd = 0, targetRowEnd = 0;
|
|
@@ -36,11 +32,28 @@ export function moveHeaderPosition(colSource, rowSource, colTarget, rowTarget, t
|
|
|
36
32
|
child.setAttribute("width", columnWidth);
|
|
37
33
|
})));
|
|
38
34
|
}
|
|
39
|
-
scene.updateContainer();
|
|
40
|
-
for (let col = updateColStart; col <= updateColEnd; col++) {
|
|
35
|
+
if (scene.updateContainer(), "column" === direction) for (let col = updateColStart; col <= updateColEnd; col++) {
|
|
41
36
|
const columnGroup = table.scenegraph.getColGroup(col);
|
|
42
37
|
null == columnGroup || columnGroup.setAttribute("chartInstance", void 0);
|
|
43
|
-
for (let row =
|
|
38
|
+
for (let row = 0; row <= table.frozenRowCount - 1; row++) scene.updateCellContent(col, row);
|
|
39
|
+
for (let row = scene.bodyRowStart; row <= scene.bodyRowEnd; row++) scene.updateCellContent(col, row);
|
|
40
|
+
for (let row = table.rowCount - table.bottomFrozenRowCount; row <= table.rowCount - 1; row++) scene.updateCellContent(col, row);
|
|
41
|
+
} else {
|
|
42
|
+
for (let col = 0; col <= table.frozenColCount - 1; col++) {
|
|
43
|
+
const columnGroup = table.scenegraph.getColGroup(col);
|
|
44
|
+
null == columnGroup || columnGroup.setAttribute("chartInstance", void 0);
|
|
45
|
+
for (let row = updateRowStart; row <= updateRowEnd; row++) scene.updateCellContent(col, row);
|
|
46
|
+
}
|
|
47
|
+
for (let col = scene.bodyColStart; col <= scene.bodyColEnd; col++) {
|
|
48
|
+
const columnGroup = table.scenegraph.getColGroup(col);
|
|
49
|
+
null == columnGroup || columnGroup.setAttribute("chartInstance", void 0);
|
|
50
|
+
for (let row = updateRowStart; row <= updateRowEnd; row++) scene.updateCellContent(col, row);
|
|
51
|
+
}
|
|
52
|
+
for (let col = table.colCount - table.rightFrozenColCount; col <= table.colCount - 1; col++) {
|
|
53
|
+
const columnGroup = table.scenegraph.getColGroup(col);
|
|
54
|
+
null == columnGroup || columnGroup.setAttribute("chartInstance", void 0);
|
|
55
|
+
for (let row = updateRowStart; row <= updateRowEnd; row++) scene.updateCellContent(col, row);
|
|
56
|
+
}
|
|
44
57
|
}
|
|
45
58
|
}
|
|
46
59
|
//# sourceMappingURL=move-cell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scenegraph/layout/move-cell.ts"],"names":[],"mappings":"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","file":"move-cell.js","sourcesContent":["import { Group } from '@visactor/vrender';\nimport { getCellMergeInfo } from '../utils/get-cell-merge';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\nconst groupForPosition = new Group({});\n\nexport function moveHeaderPosition(\n colSource: number,\n rowSource: number,\n colTarget: number,\n rowTarget: number,\n table: BaseTableAPI\n) {\n const scene = table.scenegraph;\n\n // 判断方向\n const cellLocation = table.getCellLocation(colTarget, rowTarget);\n const direction = cellLocation === 'columnHeader' ? 'column' : cellLocation === 'rowHeader' ? 'row' : undefined;\n\n let sourceColStart = 0;\n let sourceRowStart = 0;\n let sourceColEnd = 0;\n let sourceRowEnd = 0;\n let targetColStart = 0;\n let targetRowStart = 0;\n let targetColEnd = 0;\n let targetRowEnd = 0;\n if (direction === 'column') {\n const sourceMergeInfo = getCellMergeInfo(table, colSource, rowSource);\n const targetMergeInfo = getCellMergeInfo(table, colTarget, rowTarget);\n if (sourceMergeInfo && targetMergeInfo) {\n sourceColStart = sourceMergeInfo.start.col;\n sourceColEnd = sourceMergeInfo.end.col;\n targetColStart = targetMergeInfo.start.col;\n targetColEnd = targetMergeInfo.end.col;\n\n sourceRowStart = sourceMergeInfo.start.row;\n targetRowStart = targetMergeInfo.start.row;\n } else {\n sourceColStart = colSource;\n sourceColEnd = colSource;\n targetColStart = colTarget;\n targetColEnd = colTarget;\n\n sourceRowStart = rowSource;\n targetRowStart = rowTarget;\n }\n // sourceRowStart = rowSource;\n sourceRowEnd = table.rowCount - 1;\n // targetRowStart = rowTarget;\n targetRowEnd = table.rowCount - 1;\n } else if (direction === 'row') {\n const sourceMergeInfo = getCellMergeInfo(table, colSource, rowSource);\n const targetMergeInfo = getCellMergeInfo(table, colTarget, rowTarget);\n if (sourceMergeInfo && targetMergeInfo) {\n sourceRowStart = sourceMergeInfo.start.row;\n sourceRowEnd = sourceMergeInfo.end.row;\n targetRowStart = targetMergeInfo.start.row;\n targetRowEnd = targetMergeInfo.end.row;\n\n sourceColStart = sourceMergeInfo.start.col;\n targetColStart = targetMergeInfo.start.col;\n } else {\n sourceRowStart = rowSource;\n sourceRowEnd = rowSource;\n targetRowStart = rowTarget;\n targetRowEnd = rowTarget;\n\n sourceColStart = colSource;\n targetColStart = colTarget;\n }\n // sourceColStart = colSource;\n sourceColEnd = table.colCount - 1;\n // targetColStart = colTarget;\n targetColEnd = table.colCount - 1;\n }\n\n const updateColStart = Math.min(sourceColStart, targetColStart);\n const updateColEnd = Math.max(sourceColEnd, targetColEnd);\n const updateRowStart = Math.min(sourceRowStart, targetRowStart);\n const updateRowEnd = Math.max(sourceRowEnd, targetRowEnd);\n\n // 更新columnGroup列宽\n for (let col = updateColStart; col <= updateColEnd; col++) {\n const columnWidth = table.getColWidth(col);\n const columnHeaderGroup = table.scenegraph.getColGroup(col, true);\n const columnGroup = table.scenegraph.getColGroup(col);\n const columnBottomGroup = table.scenegraph.getColGroupInBottom(col);\n if (columnHeaderGroup) {\n columnHeaderGroup.setAttribute('width', columnWidth);\n columnHeaderGroup.forEachChildren((child: Group) => {\n child.setAttribute('width', columnWidth);\n });\n }\n if (columnGroup) {\n columnGroup.setAttribute('width', columnWidth);\n columnGroup.forEachChildren((child: Group) => {\n child.setAttribute('width', columnWidth);\n });\n }\n if (columnBottomGroup) {\n columnBottomGroup.setAttribute('width', columnWidth);\n columnBottomGroup.forEachChildren((child: Group) => {\n child.setAttribute('width', columnWidth);\n });\n }\n }\n\n // 更新容器尺寸\n // scene.updateContainerAttrWidthAndX();\n scene.updateContainer();\n\n for (let col = updateColStart; col <= updateColEnd; col++) {\n // 将该列的chartInstance清除掉\n const columnGroup = table.scenegraph.getColGroup(col);\n columnGroup?.setAttribute('chartInstance', undefined);\n // 更新单元格记录全量属性,不更新column theme\n for (let row = updateRowStart; row <= updateRowEnd; row++) {\n scene.updateCellContent(col, row);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/scenegraph/layout/move-cell.ts"],"names":[],"mappings":"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","file":"move-cell.js","sourcesContent":["import type { Group } from '@visactor/vrender';\nimport { getCellMergeInfo } from '../utils/get-cell-merge';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nexport function moveHeaderPosition(\n colSource: number,\n rowSource: number,\n colTarget: number,\n rowTarget: number,\n table: BaseTableAPI\n) {\n const scene = table.scenegraph;\n\n // 判断方向\n const cellLocation = table.getCellLocation(colTarget, rowTarget);\n const direction = cellLocation === 'columnHeader' ? 'column' : cellLocation === 'rowHeader' ? 'row' : undefined;\n\n let sourceColStart = 0;\n let sourceRowStart = 0;\n let sourceColEnd = 0;\n let sourceRowEnd = 0;\n let targetColStart = 0;\n let targetRowStart = 0;\n let targetColEnd = 0;\n let targetRowEnd = 0;\n if (direction === 'column') {\n const sourceMergeInfo = getCellMergeInfo(table, colSource, rowSource);\n const targetMergeInfo = getCellMergeInfo(table, colTarget, rowTarget);\n if (sourceMergeInfo && targetMergeInfo) {\n sourceColStart = sourceMergeInfo.start.col;\n sourceColEnd = sourceMergeInfo.end.col;\n targetColStart = targetMergeInfo.start.col;\n targetColEnd = targetMergeInfo.end.col;\n\n sourceRowStart = sourceMergeInfo.start.row;\n targetRowStart = targetMergeInfo.start.row;\n } else {\n sourceColStart = colSource;\n sourceColEnd = colSource;\n targetColStart = colTarget;\n targetColEnd = colTarget;\n\n sourceRowStart = rowSource;\n targetRowStart = rowTarget;\n }\n // sourceRowStart = rowSource;\n sourceRowEnd = table.rowCount - 1;\n // targetRowStart = rowTarget;\n targetRowEnd = table.rowCount - 1;\n } else if (direction === 'row') {\n const sourceMergeInfo = getCellMergeInfo(table, colSource, rowSource);\n const targetMergeInfo = getCellMergeInfo(table, colTarget, rowTarget);\n if (sourceMergeInfo && targetMergeInfo) {\n sourceRowStart = sourceMergeInfo.start.row;\n sourceRowEnd = sourceMergeInfo.end.row;\n targetRowStart = targetMergeInfo.start.row;\n targetRowEnd = targetMergeInfo.end.row;\n\n sourceColStart = sourceMergeInfo.start.col;\n targetColStart = targetMergeInfo.start.col;\n } else {\n sourceRowStart = rowSource;\n sourceRowEnd = rowSource;\n targetRowStart = rowTarget;\n targetRowEnd = rowTarget;\n\n sourceColStart = colSource;\n targetColStart = colTarget;\n }\n // sourceColStart = colSource;\n sourceColEnd = table.colCount - 1;\n // targetColStart = colTarget;\n targetColEnd = table.colCount - 1;\n }\n\n const updateColStart = Math.min(sourceColStart, targetColStart);\n const updateColEnd = Math.max(sourceColEnd, targetColEnd);\n const updateRowStart = Math.min(sourceRowStart, targetRowStart);\n const updateRowEnd = Math.max(sourceRowEnd, targetRowEnd);\n\n // 更新columnGroup列宽\n for (let col = updateColStart; col <= updateColEnd; col++) {\n const columnWidth = table.getColWidth(col);\n const columnHeaderGroup = table.scenegraph.getColGroup(col, true);\n const columnGroup = table.scenegraph.getColGroup(col);\n const columnBottomGroup = table.scenegraph.getColGroupInBottom(col);\n if (columnHeaderGroup) {\n columnHeaderGroup.setAttribute('width', columnWidth);\n columnHeaderGroup.forEachChildren((child: Group) => {\n child.setAttribute('width', columnWidth);\n });\n }\n if (columnGroup) {\n columnGroup.setAttribute('width', columnWidth);\n columnGroup.forEachChildren((child: Group) => {\n child.setAttribute('width', columnWidth);\n });\n }\n if (columnBottomGroup) {\n columnBottomGroup.setAttribute('width', columnWidth);\n columnBottomGroup.forEachChildren((child: Group) => {\n child.setAttribute('width', columnWidth);\n });\n }\n }\n\n // 更新容器尺寸\n // scene.updateContainerAttrWidthAndX();\n scene.updateContainer();\n\n if (direction === 'column') {\n for (let col = updateColStart; col <= updateColEnd; col++) {\n // 将该列的chartInstance清除掉\n const columnGroup = table.scenegraph.getColGroup(col);\n columnGroup?.setAttribute('chartInstance', undefined);\n\n // 将上下表头 和中间body部分分别更新\n for (let row = 0; row <= table.frozenRowCount - 1; row++) {\n scene.updateCellContent(col, row);\n }\n for (let row = scene.bodyRowStart; row <= scene.bodyRowEnd; row++) {\n scene.updateCellContent(col, row);\n }\n for (let row = table.rowCount - table.bottomFrozenRowCount; row <= table.rowCount - 1; row++) {\n scene.updateCellContent(col, row);\n }\n }\n } else {\n // 将左侧冻结列or行表头的单元格更新\n for (let col = 0; col <= table.frozenColCount - 1; col++) {\n // 将该列的chartInstance清除掉\n const columnGroup = table.scenegraph.getColGroup(col);\n columnGroup?.setAttribute('chartInstance', undefined);\n for (let row = updateRowStart; row <= updateRowEnd; row++) {\n scene.updateCellContent(col, row);\n }\n }\n // 将中间body的单元格更新\n for (let col = scene.bodyColStart; col <= scene.bodyColEnd; col++) {\n // 将该列的chartInstance清除掉\n const columnGroup = table.scenegraph.getColGroup(col);\n columnGroup?.setAttribute('chartInstance', undefined);\n for (let row = updateRowStart; row <= updateRowEnd; row++) {\n scene.updateCellContent(col, row);\n }\n }\n // 将右侧冻结列的单元格更新\n for (let col = table.colCount - table.rightFrozenColCount; col <= table.colCount - 1; col++) {\n // 将该列的chartInstance清除掉\n const columnGroup = table.scenegraph.getColGroup(col);\n columnGroup?.setAttribute('chartInstance', undefined);\n for (let row = updateRowStart; row <= updateRowEnd; row++) {\n scene.updateCellContent(col, row);\n }\n }\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visactor/vtable",
|
|
3
|
-
"version": "0.16.1",
|
|
3
|
+
"version": "0.16.2-alpha.1",
|
|
4
4
|
"description": "canvas table width high performance",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"grid",
|
|
@@ -35,14 +35,14 @@
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
+
"@visactor/vtable-editors": "0.16.2-alpha.1",
|
|
38
39
|
"@visactor/vrender": "0.16.20",
|
|
39
40
|
"@visactor/vrender-components": "0.16.20",
|
|
40
41
|
"@visactor/vutils-extension": "1.5.1-alpha.0",
|
|
41
42
|
"@visactor/vutils": "~0.16.10",
|
|
42
43
|
"@visactor/vscale": "0.16.0",
|
|
43
44
|
"@visactor/vdataset": "~0.15.7",
|
|
44
|
-
"cssfontparser": "^1.2.1"
|
|
45
|
-
"@visactor/vtable-editors": "0.16.1"
|
|
45
|
+
"cssfontparser": "^1.2.1"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"luxon": "*",
|
|
@@ -93,8 +93,8 @@
|
|
|
93
93
|
"@resvg/resvg-js": "^2.5.0",
|
|
94
94
|
"pikaday": "1.8.2",
|
|
95
95
|
"@internal/bundler": "0.0.1",
|
|
96
|
-
"@internal/
|
|
97
|
-
"@internal/
|
|
96
|
+
"@internal/ts-config": "0.0.1",
|
|
97
|
+
"@internal/eslint-config": "0.0.1"
|
|
98
98
|
},
|
|
99
99
|
"unpkg": "latest",
|
|
100
100
|
"unpkgFiles": [
|