@visactor/vtable 0.17.6 → 0.17.7
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/PivotChart.js +1 -1
- package/cjs/PivotChart.js.map +1 -1
- package/cjs/components/axis/linear-scale.js +1 -0
- package/cjs/components/axis/linear-scale.js.map +1 -1
- package/cjs/core/BaseTable.js +1 -1
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/event/scroll.js +1 -0
- package/cjs/event/util.js +0 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/scenegraph/component/custom.js +1 -1
- package/cjs/scenegraph/component/custom.js.map +1 -1
- package/dist/vtable.js +3568 -20477
- package/dist/vtable.min.js +2 -2
- package/es/PivotChart.js +1 -1
- package/es/PivotChart.js.map +1 -1
- package/es/components/axis/linear-scale.js +1 -0
- package/es/components/axis/linear-scale.js.map +1 -1
- package/es/core/BaseTable.js +1 -1
- package/es/core/BaseTable.js.map +1 -1
- package/es/event/scroll.js +2 -1
- package/es/event/util.js +1 -2
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/scenegraph/component/custom.js +2 -2
- package/es/scenegraph/component/custom.js.map +1 -1
- package/package.json +8 -8
package/cjs/event/scroll.js
CHANGED
|
@@ -51,5 +51,6 @@ function isScrollToRight(deltaX, state) {
|
|
|
51
51
|
return 0 !== totalWidth && deltaX >= 0 && Math.abs(state.scroll.horizontalBarPos - totalWidth) < 1;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
//# sourceMappingURL=scroll.js.map
|
|
54
55
|
exports.handleWhell = handleWhell, exports.isVerticalScrollable = isVerticalScrollable,
|
|
55
56
|
exports.isHorizontalScrollable = isHorizontalScrollable;
|
package/cjs/event/util.js
CHANGED
package/cjs/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ import { updateCell } from './scenegraph/group-creater/cell-helper';
|
|
|
15
15
|
import { renderChart } from './scenegraph/graphic/contributions/chart-render-helper';
|
|
16
16
|
export { getDataCellPath } from './tools/get-data-path';
|
|
17
17
|
export * from './render/jsx';
|
|
18
|
-
export declare const version = "0.17.
|
|
18
|
+
export declare const version = "0.17.7";
|
|
19
19
|
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, updateCell, renderChart, graphicUtil };
|
|
20
20
|
declare function getIcons(): {
|
|
21
21
|
[key: string]: TYPES.ColumnIconOption;
|
package/cjs/index.js
CHANGED
|
@@ -128,6 +128,6 @@ Object.defineProperty(exports, "getDataCellPath", {
|
|
|
128
128
|
get: function() {
|
|
129
129
|
return get_data_path_1.getDataCellPath;
|
|
130
130
|
}
|
|
131
|
-
}), __exportStar(require("./render/jsx"), exports), exports.version = "0.17.
|
|
131
|
+
}), __exportStar(require("./render/jsx"), exports), exports.version = "0.17.7",
|
|
132
132
|
exports.getIcons = getIcons, exports.clearGlobal = clearGlobal, TYPES.AggregationType;
|
|
133
133
|
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAgD;AA4F9C,4FA5FO,qBAAW,OA4FP;AA1Fb,kDAAoC;AAoDlC,sBAAK;AAnDP,6CAA+B;AAoD7B,oBAAI;AAnDN,6CAA+B;AA2E7B,oBAAI;AA1EN,+CAAiC;AACjC,qDAAuC;AA8ErC,4BAAQ;AA7EV,iDAAmC;AAuEjC,wBAAM;AAtER,yEAA2D;AAgFzD,wCAAc;AA1DhB,2CAAwC;AA0BtC,0FA1BO,qBAAS,OA0BP;AAzBX,6CAA0C;AA2BxC,2FA3BO,uBAAU,OA2BP;AA1BZ,6CAA0C;AA6BxC,2FA7BO,uBAAU,OA6BP;AA3BZ,8DAAgD;AAuD9C,oCAAY;AArDd,wEAAoE;AAsDlE,2FAtDO,wBAAU,OAsDP;AArDZ,gGAAqF;AAsDnF,4FAtDO,iCAAW,OAsDP;AAjDb,uDAAwD;AAA/C,gHAAA,eAAe,OAAA;AACxB,+CAA6B;AAEhB,QAAA,OAAO,GAAG,QAAQ,CAAC;AAmDhC,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AAnBC,4BAAQ;AAqBV,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AAxBC,kCAAW;AAyBb,KAAK,CAAC,eAAe,CAAC","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport { graphicUtil } from '@visactor/vrender';\n\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\nimport { updateCell } from './scenegraph/group-creater/cell-helper';\nimport { renderChart } from './scenegraph/graphic/contributions/chart-render-helper';\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.17.
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAgD;AA4F9C,4FA5FO,qBAAW,OA4FP;AA1Fb,kDAAoC;AAoDlC,sBAAK;AAnDP,6CAA+B;AAoD7B,oBAAI;AAnDN,6CAA+B;AA2E7B,oBAAI;AA1EN,+CAAiC;AACjC,qDAAuC;AA8ErC,4BAAQ;AA7EV,iDAAmC;AAuEjC,wBAAM;AAtER,yEAA2D;AAgFzD,wCAAc;AA1DhB,2CAAwC;AA0BtC,0FA1BO,qBAAS,OA0BP;AAzBX,6CAA0C;AA2BxC,2FA3BO,uBAAU,OA2BP;AA1BZ,6CAA0C;AA6BxC,2FA7BO,uBAAU,OA6BP;AA3BZ,8DAAgD;AAuD9C,oCAAY;AArDd,wEAAoE;AAsDlE,2FAtDO,wBAAU,OAsDP;AArDZ,gGAAqF;AAsDnF,4FAtDO,iCAAW,OAsDP;AAjDb,uDAAwD;AAA/C,gHAAA,eAAe,OAAA;AACxB,+CAA6B;AAEhB,QAAA,OAAO,GAAG,QAAQ,CAAC;AAmDhC,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AAnBC,4BAAQ;AAqBV,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AAxBC,kCAAW;AAyBb,KAAK,CAAC,eAAe,CAAC","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport { graphicUtil } from '@visactor/vrender';\n\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\nimport { updateCell } from './scenegraph/group-creater/cell-helper';\nimport { renderChart } from './scenegraph/graphic/contributions/chart-render-helper';\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.17.7\";\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 updateCell,\n renderChart,\n graphicUtil\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"]}
|
|
@@ -235,7 +235,7 @@ function decodeReactDom(dom) {
|
|
|
235
235
|
const type = dom.type, {attribute: attribute, children: children} = dom.props, g = type({
|
|
236
236
|
attribute: attribute
|
|
237
237
|
});
|
|
238
|
-
return g.id = attribute.id, g.name = attribute.name,
|
|
238
|
+
return g.id = attribute.id, g.name = attribute.name, (0, vutils_1.isArray)(children) ? children.forEach((item => {
|
|
239
239
|
const c = decodeReactDom(item);
|
|
240
240
|
g.add(c);
|
|
241
241
|
})) : children && g.add(decodeReactDom(children)), g;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/scenegraph/component/custom.ts"],"names":[],"mappings":"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","file":"custom.js","sourcesContent":["import type { Cursor } from '@visactor/vrender';\nimport { createArc, createCircle, createLine, createRect, Text, Group as VGroup } from '@visactor/vrender';\nimport { isFunction, isObject, isString, isValid } from '@visactor/vutils';\nimport type {\n ICustomLayout,\n ICustomRender,\n ICustomRenderElement,\n ICustomRenderElements,\n RectElement\n} from '../../ts-types';\nimport { Icon } from '../graphic/icon';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { percentCalcObj } from '../../render/layout';\n\nexport function dealWithCustom(\n customLayout: ICustomLayout,\n customRender: ICustomRender,\n col: number,\n row: number,\n width: number,\n height: number,\n autoWidth: boolean,\n autoHeight: boolean,\n padding: [number, number, number, number],\n table: BaseTableAPI\n) {\n let renderDefault = true;\n let enableCellPadding = false;\n let expectedWidth: number;\n let expectedHeight: number;\n let customElements;\n let elementsGroup: VGroup;\n\n if (typeof customLayout === 'function') {\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: {\n left: 0,\n top: 0,\n right: width,\n bottom: height,\n width,\n height\n },\n table\n };\n const customRenderObj = customLayout(arg);\n if (customRenderObj.rootContainer) {\n customRenderObj.rootContainer = decodeReactDom(customRenderObj.rootContainer);\n }\n // expectedWidth = customRenderObj.expectedWidth;\n // expectedHeight = customRenderObj.expectedHeight;\n if (customRenderObj.rootContainer instanceof VGroup) {\n elementsGroup = customRenderObj.rootContainer;\n elementsGroup.name = 'custom-container';\n // } else if (customRenderObj.rootContainer) {\n // customElements = customRenderObj.rootContainer.getElements(undefined, false, false);\n }\n renderDefault = customRenderObj.renderDefault;\n enableCellPadding = customRenderObj.enableCellPadding;\n } else if (typeof customRender === 'function') {\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: {\n left: 0,\n top: 0,\n right: width,\n bottom: height,\n width,\n height\n },\n table\n };\n const customRenderObj = customRender(arg);\n if (customRenderObj) {\n customElements = customRenderObj.elements;\n renderDefault = customRenderObj.renderDefault;\n expectedWidth = customRenderObj.expectedWidth;\n expectedHeight = customRenderObj.expectedHeight;\n }\n } else if (customRender) {\n expectedWidth = customRender.expectedWidth;\n expectedHeight = customRender.expectedHeight;\n customElements = customRender.elements;\n renderDefault = customRender.renderDefault;\n }\n\n if (customElements) {\n const value = table.getCellValue(col, row);\n elementsGroup = adjustElementToGroup(\n customElements,\n autoWidth ? expectedWidth : width,\n autoHeight ? expectedHeight : height,\n value\n );\n }\n\n if (enableCellPadding) {\n elementsGroup.setAttributes({\n x: padding[3],\n y: padding[0],\n width: width - padding[1] - padding[3],\n height: height - padding[0] - padding[2]\n });\n }\n\n // for percent calc\n dealPercentCalc(elementsGroup, width, height);\n\n return {\n elementsGroup,\n renderDefault\n };\n}\n\nfunction adjustElementToGroup(\n elements: ICustomRenderElements,\n width: number,\n height: number,\n value: any\n): VGroup | undefined {\n const customGroup = new VGroup({\n x: 0,\n y: 0,\n width,\n height,\n fill: false,\n stroke: false,\n pickable: false\n });\n customGroup.name = 'custom-container';\n\n const elementsAdjusted = adjustElementsPos(elements, width, height, value);\n elementsAdjusted.forEach(element => {\n if ((element as any).clickable) {\n element.pickable = (element as any).clickable;\n }\n switch (element.type) {\n case 'arc':\n const arc = createArc({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n outerRadius: element.radius as number,\n startAngle: element.startAngle as number,\n endAngle: element.endAngle as number,\n pickable: !!element.pickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(arc);\n break;\n case 'text':\n if (element.background) {\n const expandX = element.background?.expandX ?? 0;\n const expandY = element.background?.expandY ?? 0;\n const textBackRect = createRect({\n x: (element.x as number) - expandX,\n y: (element.y as number) - expandY,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width + expandX * 2,\n height: element.height + expandY * 2,\n cornerRadius: element.background?.cornerRadius ?? 0,\n // fill: true,\n fill: element.background?.fill ?? '#888'\n });\n customGroup.appendChild(textBackRect);\n }\n const text = new Text(\n Object.assign(\n {\n pickable: !!element.pickable,\n fill: element.color ?? element.fill\n },\n element as any\n )\n );\n customGroup.appendChild(text);\n break;\n case 'rect':\n const rect = createRect({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n cornerRadius: element.radius as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n pickable: !!element.pickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(rect);\n break;\n case 'circle':\n const circle = createCircle({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n radius: element.radius as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n pickable: !!element.pickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(circle);\n break;\n case 'icon':\n const icon = new Icon({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n image: element.svg as string,\n backgroundWidth: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundHeight: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundColor: element.hover ? element.hover.bgColor ?? 'rgba(22,44,66,0.2)' : undefined,\n pickable: !!element.pickable,\n cursor: element.cursor as Cursor\n });\n icon.role = 'icon-custom';\n customGroup.appendChild(icon);\n break;\n case 'image':\n const image = new Icon({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n image: element.src as string,\n backgroundWidth: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundHeight: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundColor: element.hover ? element.hover.bgColor ?? 'rgba(22,44,66,0.2)' : undefined,\n pickable: !!element.pickable,\n cursor: element.cursor as Cursor,\n shape: element.shape\n });\n image.role = 'image-custom';\n customGroup.appendChild(image);\n break;\n\n case 'line':\n const line = createLine({\n points: element.points,\n stroke: element.stroke as string,\n pickable: !!element.pickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(line);\n break;\n }\n });\n\n return customGroup;\n}\n\nfunction adjustElementsPos(\n originalElements: ICustomRenderElements,\n // rect: RectProps,\n width: number,\n height: number,\n // borderLineWidths: number[],\n value: any\n): ICustomRenderElements {\n const result: ICustomRenderElements = [];\n // const { left, top, width, height } = rect;\n const left = 0;\n const top = 0;\n const borderLineWidths = [0, 0, 0, 0];\n\n for (let i = 0; i < originalElements.length; i++) {\n const originalElement = originalElements[i];\n const element = Object.assign({}, originalElement);\n // 执行相关函数\n for (const name in element) {\n if (element.hasOwnProperty(name) && isFunction(element[name])) {\n element[name] = (element[name] as Function)(value);\n }\n }\n\n // 转换字符串值(百分比、px)\n const rect = element as RectElement;\n if (isValid(rect.x)) {\n rect.x = isString(rect.x)\n ? transformString((rect as any).x as string, width - borderLineWidths[1])\n : Number(rect.x);\n }\n if (isValid(rect.y)) {\n rect.y = isString(rect.y)\n ? transformString((rect as any).y as string, height - borderLineWidths[2])\n : Number(rect.y);\n }\n if ('width' in element) {\n element.width = isString(element.width)\n ? transformString(element.width as string, width - borderLineWidths[1])\n : Number(element.width);\n }\n if ('height' in element) {\n element.height = isString(element.height)\n ? transformString(element.height as string, height - borderLineWidths[2])\n : Number(element.height);\n }\n if ('radius' in element) {\n element.radius = isString(element.radius)\n ? transformString(element.radius as string, Math.min(width - borderLineWidths[1], height - borderLineWidths[2]))\n : Number(element.radius);\n }\n if ('hover' in element) {\n // 转换字符串值(百分比、px)\n element.hover.x = isString(element.hover.x)\n ? transformString(element.hover.x as string, width - borderLineWidths[1])\n : Number(element.hover.x);\n element.hover.y = isString(element.hover.y)\n ? transformString(element.hover.y as string, height - borderLineWidths[2])\n : Number(element.hover.y);\n element.hover.width = isString(element.hover.width)\n ? transformString(element.hover.width as string, width - borderLineWidths[1])\n : Number(element.hover.width);\n\n element.hover.height = isString(element.hover.height)\n ? transformString(element.hover.height as string, height - borderLineWidths[2])\n : Number(element.hover.height);\n element.hover.x += left;\n element.hover.y += top;\n }\n // 矫正位置\n rect.x = rect.x + left;\n rect.y = rect.y + top;\n\n result.push(element as unknown as ICustomRenderElement);\n }\n\n return result;\n}\n\nfunction transformString(str: string, size?: number): number {\n if (str.endsWith('px')) {\n return parseInt(str, 10);\n } else if (str.endsWith('%') && size) {\n return (parseInt(str, 10) / 100) * size;\n }\n return parseInt(str, 10);\n}\n\nexport function dealPercentCalc(group: VGroup, parentWidth: number, parentHeight: number) {\n if (!group) {\n return;\n }\n group.forEachChildren((child: VGroup) => {\n if (!child) {\n return;\n }\n if (isObject(child.attribute.width) && (child.attribute.width as percentCalcObj).percent) {\n child.setAttribute(\n 'width',\n ((child.attribute.width as percentCalcObj).percent / 100) * parentWidth +\n ((child.attribute.width as percentCalcObj).delta ?? 0)\n );\n }\n\n if (isObject(child.attribute.height) && (child.attribute.height as percentCalcObj).percent) {\n child.setAttribute(\n 'height',\n ((child.attribute.height as percentCalcObj).percent / 100) * parentHeight +\n ((child.attribute.height as percentCalcObj).delta ?? 0)\n );\n }\n\n if (child.type === 'group') {\n dealPercentCalc(child, child.attribute.width, child.attribute.height);\n }\n });\n}\n\n// temp devode for react jsx customLayout\nexport function decodeReactDom(dom: any) {\n if (!dom || !dom.$$typeof) {\n // not react\n return dom;\n }\n const type = dom.type;\n const { attribute, children } = dom.props;\n const g = type({ attribute });\n g.id = attribute.id;\n g.name = attribute.name;\n if (children && children.length) {\n children.forEach((item: any) => {\n const c = decodeReactDom(item);\n g.add(c);\n });\n } else if (children) {\n g.add(decodeReactDom(children));\n }\n return g;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/scenegraph/component/custom.ts"],"names":[],"mappings":"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","file":"custom.js","sourcesContent":["import type { Cursor } from '@visactor/vrender';\nimport { createArc, createCircle, createLine, createRect, Text, Group as VGroup } from '@visactor/vrender';\nimport { isArray, isFunction, isObject, isString, isValid } from '@visactor/vutils';\nimport type {\n ICustomLayout,\n ICustomRender,\n ICustomRenderElement,\n ICustomRenderElements,\n RectElement\n} from '../../ts-types';\nimport { Icon } from '../graphic/icon';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { percentCalcObj } from '../../render/layout';\n\nexport function dealWithCustom(\n customLayout: ICustomLayout,\n customRender: ICustomRender,\n col: number,\n row: number,\n width: number,\n height: number,\n autoWidth: boolean,\n autoHeight: boolean,\n padding: [number, number, number, number],\n table: BaseTableAPI\n) {\n let renderDefault = true;\n let enableCellPadding = false;\n let expectedWidth: number;\n let expectedHeight: number;\n let customElements;\n let elementsGroup: VGroup;\n\n if (typeof customLayout === 'function') {\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: {\n left: 0,\n top: 0,\n right: width,\n bottom: height,\n width,\n height\n },\n table\n };\n const customRenderObj = customLayout(arg);\n if (customRenderObj.rootContainer) {\n customRenderObj.rootContainer = decodeReactDom(customRenderObj.rootContainer);\n }\n // expectedWidth = customRenderObj.expectedWidth;\n // expectedHeight = customRenderObj.expectedHeight;\n if (customRenderObj.rootContainer instanceof VGroup) {\n elementsGroup = customRenderObj.rootContainer;\n elementsGroup.name = 'custom-container';\n // } else if (customRenderObj.rootContainer) {\n // customElements = customRenderObj.rootContainer.getElements(undefined, false, false);\n }\n renderDefault = customRenderObj.renderDefault;\n enableCellPadding = customRenderObj.enableCellPadding;\n } else if (typeof customRender === 'function') {\n const arg = {\n col,\n row,\n dataValue: table.getCellOriginValue(col, row),\n value: table.getCellValue(col, row) || '',\n rect: {\n left: 0,\n top: 0,\n right: width,\n bottom: height,\n width,\n height\n },\n table\n };\n const customRenderObj = customRender(arg);\n if (customRenderObj) {\n customElements = customRenderObj.elements;\n renderDefault = customRenderObj.renderDefault;\n expectedWidth = customRenderObj.expectedWidth;\n expectedHeight = customRenderObj.expectedHeight;\n }\n } else if (customRender) {\n expectedWidth = customRender.expectedWidth;\n expectedHeight = customRender.expectedHeight;\n customElements = customRender.elements;\n renderDefault = customRender.renderDefault;\n }\n\n if (customElements) {\n const value = table.getCellValue(col, row);\n elementsGroup = adjustElementToGroup(\n customElements,\n autoWidth ? expectedWidth : width,\n autoHeight ? expectedHeight : height,\n value\n );\n }\n\n if (enableCellPadding) {\n elementsGroup.setAttributes({\n x: padding[3],\n y: padding[0],\n width: width - padding[1] - padding[3],\n height: height - padding[0] - padding[2]\n });\n }\n\n // for percent calc\n dealPercentCalc(elementsGroup, width, height);\n\n return {\n elementsGroup,\n renderDefault\n };\n}\n\nfunction adjustElementToGroup(\n elements: ICustomRenderElements,\n width: number,\n height: number,\n value: any\n): VGroup | undefined {\n const customGroup = new VGroup({\n x: 0,\n y: 0,\n width,\n height,\n fill: false,\n stroke: false,\n pickable: false\n });\n customGroup.name = 'custom-container';\n\n const elementsAdjusted = adjustElementsPos(elements, width, height, value);\n elementsAdjusted.forEach(element => {\n if ((element as any).clickable) {\n element.pickable = (element as any).clickable;\n }\n switch (element.type) {\n case 'arc':\n const arc = createArc({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n outerRadius: element.radius as number,\n startAngle: element.startAngle as number,\n endAngle: element.endAngle as number,\n pickable: !!element.pickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(arc);\n break;\n case 'text':\n if (element.background) {\n const expandX = element.background?.expandX ?? 0;\n const expandY = element.background?.expandY ?? 0;\n const textBackRect = createRect({\n x: (element.x as number) - expandX,\n y: (element.y as number) - expandY,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width + expandX * 2,\n height: element.height + expandY * 2,\n cornerRadius: element.background?.cornerRadius ?? 0,\n // fill: true,\n fill: element.background?.fill ?? '#888'\n });\n customGroup.appendChild(textBackRect);\n }\n const text = new Text(\n Object.assign(\n {\n pickable: !!element.pickable,\n fill: element.color ?? element.fill\n },\n element as any\n )\n );\n customGroup.appendChild(text);\n break;\n case 'rect':\n const rect = createRect({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n cornerRadius: element.radius as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n pickable: !!element.pickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(rect);\n break;\n case 'circle':\n const circle = createCircle({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n radius: element.radius as number,\n fill: element.fill as string,\n stroke: element.stroke as string,\n pickable: !!element.pickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(circle);\n break;\n case 'icon':\n const icon = new Icon({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n image: element.svg as string,\n backgroundWidth: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundHeight: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundColor: element.hover ? element.hover.bgColor ?? 'rgba(22,44,66,0.2)' : undefined,\n pickable: !!element.pickable,\n cursor: element.cursor as Cursor\n });\n icon.role = 'icon-custom';\n customGroup.appendChild(icon);\n break;\n case 'image':\n const image = new Icon({\n x: element.x as number,\n y: element.y as number,\n dx: (element.dx ?? 0) as number,\n dy: (element.dy ?? 0) as number,\n width: element.width as number,\n height: element.height as number,\n image: element.src as string,\n backgroundWidth: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundHeight: element.hover ? ((element.hover.width ?? element.width) as number) : undefined,\n backgroundColor: element.hover ? element.hover.bgColor ?? 'rgba(22,44,66,0.2)' : undefined,\n pickable: !!element.pickable,\n cursor: element.cursor as Cursor,\n shape: element.shape\n });\n image.role = 'image-custom';\n customGroup.appendChild(image);\n break;\n\n case 'line':\n const line = createLine({\n points: element.points,\n stroke: element.stroke as string,\n pickable: !!element.pickable,\n cursor: element.cursor as Cursor\n });\n customGroup.appendChild(line);\n break;\n }\n });\n\n return customGroup;\n}\n\nfunction adjustElementsPos(\n originalElements: ICustomRenderElements,\n // rect: RectProps,\n width: number,\n height: number,\n // borderLineWidths: number[],\n value: any\n): ICustomRenderElements {\n const result: ICustomRenderElements = [];\n // const { left, top, width, height } = rect;\n const left = 0;\n const top = 0;\n const borderLineWidths = [0, 0, 0, 0];\n\n for (let i = 0; i < originalElements.length; i++) {\n const originalElement = originalElements[i];\n const element = Object.assign({}, originalElement);\n // 执行相关函数\n for (const name in element) {\n if (element.hasOwnProperty(name) && isFunction(element[name])) {\n element[name] = (element[name] as Function)(value);\n }\n }\n\n // 转换字符串值(百分比、px)\n const rect = element as RectElement;\n if (isValid(rect.x)) {\n rect.x = isString(rect.x)\n ? transformString((rect as any).x as string, width - borderLineWidths[1])\n : Number(rect.x);\n }\n if (isValid(rect.y)) {\n rect.y = isString(rect.y)\n ? transformString((rect as any).y as string, height - borderLineWidths[2])\n : Number(rect.y);\n }\n if ('width' in element) {\n element.width = isString(element.width)\n ? transformString(element.width as string, width - borderLineWidths[1])\n : Number(element.width);\n }\n if ('height' in element) {\n element.height = isString(element.height)\n ? transformString(element.height as string, height - borderLineWidths[2])\n : Number(element.height);\n }\n if ('radius' in element) {\n element.radius = isString(element.radius)\n ? transformString(element.radius as string, Math.min(width - borderLineWidths[1], height - borderLineWidths[2]))\n : Number(element.radius);\n }\n if ('hover' in element) {\n // 转换字符串值(百分比、px)\n element.hover.x = isString(element.hover.x)\n ? transformString(element.hover.x as string, width - borderLineWidths[1])\n : Number(element.hover.x);\n element.hover.y = isString(element.hover.y)\n ? transformString(element.hover.y as string, height - borderLineWidths[2])\n : Number(element.hover.y);\n element.hover.width = isString(element.hover.width)\n ? transformString(element.hover.width as string, width - borderLineWidths[1])\n : Number(element.hover.width);\n\n element.hover.height = isString(element.hover.height)\n ? transformString(element.hover.height as string, height - borderLineWidths[2])\n : Number(element.hover.height);\n element.hover.x += left;\n element.hover.y += top;\n }\n // 矫正位置\n rect.x = rect.x + left;\n rect.y = rect.y + top;\n\n result.push(element as unknown as ICustomRenderElement);\n }\n\n return result;\n}\n\nfunction transformString(str: string, size?: number): number {\n if (str.endsWith('px')) {\n return parseInt(str, 10);\n } else if (str.endsWith('%') && size) {\n return (parseInt(str, 10) / 100) * size;\n }\n return parseInt(str, 10);\n}\n\nexport function dealPercentCalc(group: VGroup, parentWidth: number, parentHeight: number) {\n if (!group) {\n return;\n }\n group.forEachChildren((child: VGroup) => {\n if (!child) {\n return;\n }\n if (isObject(child.attribute.width) && (child.attribute.width as percentCalcObj).percent) {\n child.setAttribute(\n 'width',\n ((child.attribute.width as percentCalcObj).percent / 100) * parentWidth +\n ((child.attribute.width as percentCalcObj).delta ?? 0)\n );\n }\n\n if (isObject(child.attribute.height) && (child.attribute.height as percentCalcObj).percent) {\n child.setAttribute(\n 'height',\n ((child.attribute.height as percentCalcObj).percent / 100) * parentHeight +\n ((child.attribute.height as percentCalcObj).delta ?? 0)\n );\n }\n\n if (child.type === 'group') {\n dealPercentCalc(child, child.attribute.width, child.attribute.height);\n }\n });\n}\n\n// temp devode for react jsx customLayout\nexport function decodeReactDom(dom: any) {\n if (!dom || !dom.$$typeof) {\n // not react\n return dom;\n }\n const type = dom.type;\n const { attribute, children } = dom.props;\n const g = type({ attribute });\n g.id = attribute.id;\n g.name = attribute.name;\n if (isArray(children)) {\n children.forEach((item: any) => {\n const c = decodeReactDom(item);\n g.add(c);\n });\n } else if (children) {\n g.add(decodeReactDom(children));\n }\n return g;\n}\n"]}
|