@visactor/vchart 1.3.0 → 1.3.1-alpha.0

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.
Files changed (137) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +20 -811
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/area/area.js +1 -1
  6. package/cjs/chart/area/area.js.map +1 -1
  7. package/cjs/chart/bar/bar-3d.js +1 -1
  8. package/cjs/chart/bar/bar-3d.js.map +1 -1
  9. package/cjs/chart/bar/bar.js +1 -1
  10. package/cjs/chart/bar/bar.js.map +1 -1
  11. package/cjs/chart/base-chart.js.map +1 -1
  12. package/cjs/chart/histogram/histogram-3d.js +1 -1
  13. package/cjs/chart/histogram/histogram-3d.js.map +1 -1
  14. package/cjs/chart/histogram/histogram.js +1 -1
  15. package/cjs/chart/histogram/histogram.js.map +1 -1
  16. package/cjs/chart/interface/chart.d.ts +1 -1
  17. package/cjs/chart/interface/chart.js.map +1 -1
  18. package/cjs/chart/map/map.js +1 -1
  19. package/cjs/chart/map/map.js.map +1 -1
  20. package/cjs/chart/pie/pie-3d.js +1 -1
  21. package/cjs/chart/pie/pie-3d.js.map +1 -1
  22. package/cjs/chart/pie/pie.js +1 -1
  23. package/cjs/chart/pie/pie.js.map +1 -1
  24. package/cjs/chart/radar/radar.js +1 -1
  25. package/cjs/chart/radar/radar.js.map +1 -1
  26. package/cjs/chart/rose/rose.js +1 -1
  27. package/cjs/chart/rose/rose.js.map +1 -1
  28. package/cjs/chart/scatter/scatter.js +1 -1
  29. package/cjs/chart/scatter/scatter.js.map +1 -1
  30. package/cjs/chart/sequence/sequence.js +1 -1
  31. package/cjs/chart/sequence/sequence.js.map +1 -1
  32. package/cjs/component/legend/discrete/legend.js +9 -1
  33. package/cjs/component/legend/discrete/legend.js.map +1 -1
  34. package/cjs/component/tooltip/interface/common.d.ts +1 -1
  35. package/cjs/component/tooltip/interface/common.js.map +1 -1
  36. package/cjs/core/index.d.ts +1 -1
  37. package/cjs/core/index.js +2 -2
  38. package/cjs/core/index.js.map +1 -1
  39. package/cjs/data/initialize.d.ts +1 -1
  40. package/cjs/data/initialize.js +1 -1
  41. package/cjs/data/initialize.js.map +1 -1
  42. package/cjs/event/events/dimension/base.d.ts +1 -1
  43. package/cjs/event/events/dimension/base.js +1 -1
  44. package/cjs/event/events/dimension/base.js.map +1 -1
  45. package/cjs/layout/base-layout.d.ts +1 -1
  46. package/cjs/layout/base-layout.js.map +1 -1
  47. package/cjs/layout/grid-layout/grid-layout.d.ts +1 -1
  48. package/cjs/layout/grid-layout/grid-layout.js.map +1 -1
  49. package/cjs/layout/interface.d.ts +1 -1
  50. package/cjs/layout/interface.js.map +1 -1
  51. package/cjs/layout/layout3d/index.d.ts +1 -1
  52. package/cjs/layout/layout3d/index.js.map +1 -1
  53. package/cjs/mark/image.d.ts +1 -1
  54. package/cjs/mark/image.js.map +1 -1
  55. package/cjs/plugin/components/axis-sync-plugin/axis-sync.js +1 -1
  56. package/cjs/plugin/components/axis-sync-plugin/axis-sync.js.map +1 -1
  57. package/cjs/series/mixin/line-mixin.d.ts +1 -1
  58. package/cjs/series/mixin/line-mixin.js +1 -1
  59. package/cjs/series/mixin/line-mixin.js.map +1 -1
  60. package/cjs/series/pie/pie.js +2 -8
  61. package/cjs/series/pie/pie.js.map +1 -1
  62. package/cjs/series/util/utils.d.ts +1 -1
  63. package/cjs/series/util/utils.js.map +1 -1
  64. package/cjs/typings/spec/common.d.ts +1 -1
  65. package/cjs/typings/spec/common.js.map +1 -1
  66. package/cjs/util/image.d.ts +1 -1
  67. package/cjs/util/image.js.map +1 -1
  68. package/esm/chart/area/area.js +1 -1
  69. package/esm/chart/area/area.js.map +1 -1
  70. package/esm/chart/bar/bar-3d.js +1 -1
  71. package/esm/chart/bar/bar-3d.js.map +1 -1
  72. package/esm/chart/bar/bar.js +1 -1
  73. package/esm/chart/bar/bar.js.map +1 -1
  74. package/esm/chart/base-chart.js.map +1 -1
  75. package/esm/chart/histogram/histogram-3d.js +1 -1
  76. package/esm/chart/histogram/histogram-3d.js.map +1 -1
  77. package/esm/chart/histogram/histogram.js +1 -1
  78. package/esm/chart/histogram/histogram.js.map +1 -1
  79. package/esm/chart/interface/chart.d.ts +1 -1
  80. package/esm/chart/interface/chart.js.map +1 -1
  81. package/esm/chart/map/map.js +1 -1
  82. package/esm/chart/map/map.js.map +1 -1
  83. package/esm/chart/pie/pie-3d.js +1 -1
  84. package/esm/chart/pie/pie-3d.js.map +1 -1
  85. package/esm/chart/pie/pie.js +1 -1
  86. package/esm/chart/pie/pie.js.map +1 -1
  87. package/esm/chart/radar/radar.js +1 -1
  88. package/esm/chart/radar/radar.js.map +1 -1
  89. package/esm/chart/rose/rose.js +1 -1
  90. package/esm/chart/rose/rose.js.map +1 -1
  91. package/esm/chart/scatter/scatter.js +1 -1
  92. package/esm/chart/scatter/scatter.js.map +1 -1
  93. package/esm/chart/sequence/sequence.js +2 -2
  94. package/esm/chart/sequence/sequence.js.map +1 -1
  95. package/esm/component/legend/discrete/legend.js +9 -1
  96. package/esm/component/legend/discrete/legend.js.map +1 -1
  97. package/esm/component/tooltip/interface/common.d.ts +1 -1
  98. package/esm/component/tooltip/interface/common.js.map +1 -1
  99. package/esm/core/index.d.ts +1 -1
  100. package/esm/core/index.js +2 -2
  101. package/esm/core/index.js.map +1 -1
  102. package/esm/data/initialize.d.ts +1 -1
  103. package/esm/data/initialize.js +1 -1
  104. package/esm/data/initialize.js.map +1 -1
  105. package/esm/event/events/dimension/base.d.ts +1 -1
  106. package/esm/event/events/dimension/base.js +1 -1
  107. package/esm/event/events/dimension/base.js.map +1 -1
  108. package/esm/layout/base-layout.d.ts +1 -1
  109. package/esm/layout/base-layout.js.map +1 -1
  110. package/esm/layout/grid-layout/grid-layout.d.ts +1 -1
  111. package/esm/layout/grid-layout/grid-layout.js.map +1 -1
  112. package/esm/layout/interface.d.ts +1 -1
  113. package/esm/layout/interface.js.map +1 -1
  114. package/esm/layout/layout3d/index.d.ts +1 -1
  115. package/esm/layout/layout3d/index.js.map +1 -1
  116. package/esm/mark/image.d.ts +1 -1
  117. package/esm/mark/image.js.map +1 -1
  118. package/esm/plugin/components/axis-sync-plugin/axis-sync.js +1 -1
  119. package/esm/plugin/components/axis-sync-plugin/axis-sync.js.map +1 -1
  120. package/esm/series/mixin/line-mixin.d.ts +1 -1
  121. package/esm/series/mixin/line-mixin.js +2 -2
  122. package/esm/series/mixin/line-mixin.js.map +1 -1
  123. package/esm/series/pie/pie.js +2 -10
  124. package/esm/series/pie/pie.js.map +1 -1
  125. package/esm/series/util/utils.d.ts +1 -1
  126. package/esm/series/util/utils.js.map +1 -1
  127. package/esm/typings/spec/common.d.ts +1 -1
  128. package/esm/typings/spec/common.js.map +1 -1
  129. package/esm/util/image.d.ts +1 -1
  130. package/esm/util/image.js.map +1 -1
  131. package/package.json +9 -9
  132. package/cjs/layout/label/arc-label.d.ts +0 -42
  133. package/cjs/layout/label/arc-label.js +0 -416
  134. package/cjs/layout/label/arc-label.js.map +0 -1
  135. package/esm/layout/label/arc-label.d.ts +0 -42
  136. package/esm/layout/label/arc-label.js +0 -401
  137. package/esm/layout/label/arc-label.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { ScatterSeries } from "./../../series/scatter/scatter";
1
+ import { ScatterSeries } from "../../series/scatter/scatter";
2
2
 
3
3
  import { SeriesTypeEnum } from "../../series/interface";
4
4
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart/scatter/scatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,MAAM,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAElC,MAAM,OAAO,YAAa,SAAQ,cAAc;IAAhD;;QAGW,SAAI,GAAW,aAAa,CAAC,OAAO,CAAC;QACrC,eAAU,GAAW,cAAc,CAAC,OAAO,CAAC;IAYvD,CAAC;IAVW,qBAAqB,CAAC,IAAuB;QACrD,uCACK,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,KACpC,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,UAAU,EAAE,IAAI,CAAC,UAAU,IAC3B;IACJ,CAAC;;AAde,iBAAI,GAAW,aAAa,CAAC,OAAO,CAAC;AACrC,iBAAI,GAAW,eAAe,CAAC","file":"scatter.js","sourcesContent":["import { ScatterSeries } from './../../series/scatter/scatter';\nimport { SeriesTypeEnum } from '../../series/interface';\nimport { CartesianChart } from '../cartesian/cartesian';\nimport { ChartTypeEnum } from '../interface';\nimport type { IScatterChartSpec } from './interface';\nimport { VChart } from '../../core/vchart';\nVChart.useSeries([ScatterSeries]);\n\nexport class ScatterChart extends CartesianChart {\n static readonly type: string = ChartTypeEnum.scatter;\n static readonly view: string = 'singleDefault';\n readonly type: string = ChartTypeEnum.scatter;\n readonly seriesType: string = SeriesTypeEnum.scatter;\n\n protected _getDefaultSeriesSpec(spec: IScatterChartSpec): any {\n return {\n ...super._getDefaultSeriesSpec(spec),\n point: spec.point,\n size: spec.size,\n sizeField: spec.sizeField,\n shape: spec.shape,\n shapeField: spec.shapeField\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/chart/scatter/scatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,MAAM,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAElC,MAAM,OAAO,YAAa,SAAQ,cAAc;IAAhD;;QAGW,SAAI,GAAW,aAAa,CAAC,OAAO,CAAC;QACrC,eAAU,GAAW,cAAc,CAAC,OAAO,CAAC;IAYvD,CAAC;IAVW,qBAAqB,CAAC,IAAuB;QACrD,uCACK,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,KACpC,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,UAAU,EAAE,IAAI,CAAC,UAAU,IAC3B;IACJ,CAAC;;AAde,iBAAI,GAAW,aAAa,CAAC,OAAO,CAAC;AACrC,iBAAI,GAAW,eAAe,CAAC","file":"scatter.js","sourcesContent":["import { ScatterSeries } from '../../series/scatter/scatter';\nimport { SeriesTypeEnum } from '../../series/interface';\nimport { CartesianChart } from '../cartesian/cartesian';\nimport { ChartTypeEnum } from '../interface';\nimport type { IScatterChartSpec } from './interface';\nimport { VChart } from '../../core/vchart';\nVChart.useSeries([ScatterSeries]);\n\nexport class ScatterChart extends CartesianChart {\n static readonly type: string = ChartTypeEnum.scatter;\n static readonly view: string = 'singleDefault';\n readonly type: string = ChartTypeEnum.scatter;\n readonly seriesType: string = SeriesTypeEnum.scatter;\n\n protected _getDefaultSeriesSpec(spec: IScatterChartSpec): any {\n return {\n ...super._getDefaultSeriesSpec(spec),\n point: spec.point,\n size: spec.size,\n sizeField: spec.sizeField,\n shape: spec.shape,\n shapeField: spec.shapeField\n };\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { LinkSeries } from "./../../series/link/link";
1
+ import { LinkSeries } from "../../series/link/link";
2
2
 
3
- import { DotSeries } from "./../../series/dot/dot";
3
+ import { DotSeries } from "../../series/dot/dot";
4
4
 
5
5
  import { BaseChart } from "../base-chart";
6
6
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chart/sequence/sequence.ts"],"names":[],"mappings":"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","file":"sequence.js","sourcesContent":["import { LinkSeries } from './../../series/link/link';\nimport { DotSeries } from './../../series/dot/dot';\nimport type { IGridLayoutSpec } from './../../layout/interface';\nimport { BaseChart } from '../base-chart';\nimport type { ISequenceChartSpec, ISequenceSeriesSpec } from './interface';\nimport type { IRegion, IRegionSpec } from '../../region/interface';\nimport { dataToDataView } from '../../data/initialize';\nimport { Factory } from '../../core/factory';\nimport { SeriesTypeEnum } from '../../series/interface/type';\nimport { ChartTypeEnum } from '../interface';\nimport type { Datum } from '../../typings';\nimport type { DataView } from '@visactor/vdataset';\nimport type { ISeriesOption } from '../../series/interface';\nimport { VChart } from '../../core/vchart';\nVChart.useSeries([DotSeries, LinkSeries]);\n\nexport class SequenceChart extends BaseChart {\n static readonly type: string = ChartTypeEnum.sequence;\n static readonly view: string = 'singleDefault'; // csj-Q: view是什么含义\n readonly type: string = ChartTypeEnum.sequence;\n\n /**\n * @override\n * @description 主要是处理布局逻辑 & 部分仅针对sequenceChart的特殊属性\n */\n transformSpec(spec: ISequenceChartSpec): void {\n super.transformSpec(spec);\n\n // 初始化目标属性\n let rowNum = 0;\n const elements: any[] = [];\n const region: IRegionSpec[] = [];\n const axes: any = [];\n const rowHeight: any = [];\n\n // 计算默认series padding和series高度\n const defaultSeriesPadding = 20;\n const seriesRegionNum = spec.series.filter(d => d.type !== SeriesTypeEnum.link).length;\n const defaultSeriesRowHeight =\n (this._layoutRect.height - defaultSeriesPadding * (seriesRegionNum - 1)) / seriesRegionNum;\n const leftAppendPadding = spec?.appendPadding?.left || 0;\n const rightAppendPadding = spec?.appendPadding?.right || 0;\n\n if ((spec as any)?.legends) {\n elements.push({\n modelId: `legendRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n (spec as any).legends[0].id = `legendRow${rowNum}`;\n rowHeight.push({\n index: rowNum,\n size: 20\n });\n rowNum++;\n }\n\n if ((spec as any)?.dataZoom) {\n elements.push({\n modelId: `dataZoomRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n (spec as any).dataZoom[0].id = `dataZoomRow${rowNum}`;\n rowNum++;\n\n // 增加空行,拟合series padding效果\n rowHeight.push({\n index: rowNum,\n size: 10\n });\n rowNum++;\n }\n\n // 遍历axes\n // 1. 在elements中添加时间轴元素\n // 2. 并统计rowNum\n // 在sequenceChart中,axes有几种情况(本期先考虑1和2,也就是默认只有1个top轴):1.不声明axes 2.声明且为仅有一个top axes 3.声明且仅有一个bottom axes 4.多个axes组合\n // if(spec.axes === null || spec?.axes[0]?.orient === 'top') {\n // Tips: id should not has duplicate name\n region.push({\n id: `regionAxesRow${rowNum}`\n });\n elements.push({\n modelId: `axesRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n spec.axes[0].id = `axesRow${rowNum}`;\n spec.axes[0].regionIndex = Array.from(Array(this._spec.series.length - 1), (_, index) => index + 1);\n rowNum++;\n // }\n\n // 遍历series\n // 1. 在spec.layout => elements、region数组和spec.axes的数组中中添加元素\n // 2. 为series绑定regionIndex\n // 3. 统计rowNum\n // 4. 用空行拟合series padding\n spec?.series?.forEach((seriesSpec: ISequenceSeriesSpec) => {\n if (\n ([SeriesTypeEnum.bar, SeriesTypeEnum.line, SeriesTypeEnum.area, SeriesTypeEnum.dot] as string[]).includes(\n seriesSpec.type\n )\n ) {\n // elements数组\n elements.push({\n modelId: `${seriesSpec.type}Row${rowNum}`,\n col: 1,\n row: rowNum\n });\n elements.push({\n modelId: `axesLeftRow${rowNum}`,\n col: 0,\n row: rowNum\n });\n\n // region数组\n region.push({\n id: `${seriesSpec.type}Row${rowNum}`,\n clip: false\n });\n\n rowHeight.push({\n index: rowNum,\n size: seriesSpec?.height || defaultSeriesRowHeight\n });\n\n // axes数组添加left axes(每个series都需要一个left axes)\n axes.push({\n orient: 'left',\n id: `axesLeftRow${rowNum}`,\n type: seriesSpec.type === SeriesTypeEnum.dot ? 'band' : 'linear',\n visible: seriesSpec.type !== SeriesTypeEnum.dot,\n\n // 对于bar series,axes title模拟bar title\n title: {\n visible: true,\n // 特殊处理时序图的 title 样式,默认的坐标轴左右轴会进行旋转\n autoRotate: false,\n style: {\n text: (seriesSpec as any)?.barTitle,\n dx: -20,\n textBaseline: 'middle',\n textAlign: 'end'\n }\n },\n // 对于bar series,axes grid模拟series分割线\n grid: {\n visible:\n typeof (seriesSpec as any)?.grid?.visible === 'boolean' ? (seriesSpec as any)?.grid?.visible : true, // bar grid默认绘制\n style: (datum: Datum, index: number) => {\n let lineWidth = 0;\n if (index === 0) {\n const style = (seriesSpec as any)?.grid?.style;\n\n // 兼容一下spec中通过strokeWidth申明的方式\n lineWidth = style?.lineWidth ?? style?.strokeWidth ?? 1;\n }\n return {\n lineWidth,\n stroke: (seriesSpec as any)?.grid?.style?.stroke || '#dfdfdf',\n lineDash: [0, 0]\n };\n }\n },\n // 其他轴元素隐藏\n domainLine: {\n visible: false\n },\n tick: {\n visible: false\n },\n label: {\n visible: false\n },\n\n // 绑定regionIndex\n regionIndex: region.length - 1\n });\n\n // seriesSpec绑定regionIndex\n seriesSpec.regionIndex = region.length - 1;\n\n rowNum++;\n\n // 增加空行,拟合series padding效果\n rowHeight.push({\n index: rowNum,\n size: seriesSpec?.padding || defaultSeriesPadding\n });\n rowNum++;\n\n // chart的leftAppendPadding用于具体元素的dx偏移\n (seriesSpec as any).leftAppendPadding = leftAppendPadding;\n\n // title和subTitle自动定位到画布最左端\n if (seriesSpec.type === SeriesTypeEnum.dot) {\n (seriesSpec as any).title.style.dx = -leftAppendPadding;\n (seriesSpec as any).subTitle.style.dx = -leftAppendPadding;\n }\n }\n });\n\n // 对于link series,所有属性跟随它绑定的dot series\n spec?.series?.forEach((seriesSpec: ISequenceSeriesSpec) => {\n if (seriesSpec.type === SeriesTypeEnum.link) {\n const dotRowNum = seriesSpec.dotSeriesIndex + 1;\n elements.push({\n modelId: `${seriesSpec.type}Row${dotRowNum}`,\n col: 1,\n row: dotRowNum - 1\n });\n seriesSpec.regionIndex = spec.series[seriesSpec.dotSeriesIndex].regionIndex;\n (seriesSpec as any).leftAppendPadding = leftAppendPadding;\n (seriesSpec as any).height = (spec.series[seriesSpec.dotSeriesIndex] as any).height;\n (seriesSpec as any).clipHeight = (spec.series[seriesSpec.dotSeriesIndex] as any).clipHeight;\n }\n });\n\n // 添加legends和datazoom的regionIndex\n if ((spec as any)?.legends) {\n (spec as any).legends[0].regionIndex = [region.length - 1];\n }\n // if ((spec as any)?.dataZoom) {\n // (spec as any).dataZoom[0].regionIndex = Array.from({length: region.length - 1},(item, index)=> index+1);\n // }\n\n const layout: IGridLayoutSpec = {\n type: 'grid',\n col: 3,\n row: rowNum,\n colWidth: [\n {\n index: 0,\n size: leftAppendPadding\n },\n {\n index: 2,\n size: rightAppendPadding\n }\n ],\n rowHeight: rowHeight,\n elements: elements\n };\n\n spec.layout = layout;\n spec.region = region;\n spec.axes?.push(...axes);\n }\n\n /**\n * @override\n * @description 主要是将link series关联的dot data放到link series中\n */\n createSeries(seriesSpec: ISequenceSeriesSpec[]) {\n seriesSpec.forEach((spec, index) => {\n // 自动填充数据\n if (!spec.data) {\n spec.data = this.getSeriesData(spec.dataId, spec.dataIndex);\n\n // link series添加关联的dot series data\n if (spec.type === SeriesTypeEnum.link) {\n spec.dataDot = this.getSeriesData(\n this._spec.series[spec.dotSeriesIndex].dataId,\n this._spec.series[spec.dotSeriesIndex].dataIndex\n );\n }\n } else {\n // 保证数据最终是 DataView 实例\n spec.data = dataToDataView(spec.data, this._dataSet, this._spec.data as DataView[], {\n onError: this._option.onError\n });\n // link series添加关联的dot series data\n if (spec.type === SeriesTypeEnum.link) {\n spec.dataDot = dataToDataView(\n this._spec.series[spec.dotSeriesIndex].data,\n this._dataSet,\n this._spec.data as DataView[],\n {\n onError: this._option.onError\n }\n );\n }\n }\n\n if (spec.type === SeriesTypeEnum.link) {\n spec.dotSeriesSpec = this._spec.series[spec.dotSeriesIndex];\n }\n\n let region: IRegion | undefined;\n if (spec.regionId) {\n region = this.getRegionsInUserId(spec.regionId);\n }\n if (!region) {\n region = this.getRegionsInIndex(spec.regionIndex ? [spec.regionIndex] : undefined)[0];\n }\n if (!region) {\n return;\n }\n const series = Factory.createSeries(spec.type, spec, {\n ...this._modelOption,\n region,\n specIndex: index,\n specKey: 'series',\n getTheme: () => this._theme,\n globalScale: this._globalScale\n } as ISeriesOption);\n\n if (series) {\n series.created();\n this._series.push(series);\n region.addSeries(series);\n }\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/chart/sequence/sequence.ts"],"names":[],"mappings":"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","file":"sequence.js","sourcesContent":["import { LinkSeries } from '../../series/link/link';\nimport { DotSeries } from '../../series/dot/dot';\nimport type { IGridLayoutSpec } from '../../layout/interface';\nimport { BaseChart } from '../base-chart';\nimport type { ISequenceChartSpec, ISequenceSeriesSpec } from './interface';\nimport type { IRegion, IRegionSpec } from '../../region/interface';\nimport { dataToDataView } from '../../data/initialize';\nimport { Factory } from '../../core/factory';\nimport { SeriesTypeEnum } from '../../series/interface/type';\nimport { ChartTypeEnum } from '../interface';\nimport type { Datum } from '../../typings';\nimport type { DataView } from '@visactor/vdataset';\nimport type { ISeriesOption } from '../../series/interface';\nimport { VChart } from '../../core/vchart';\nVChart.useSeries([DotSeries, LinkSeries]);\n\nexport class SequenceChart extends BaseChart {\n static readonly type: string = ChartTypeEnum.sequence;\n static readonly view: string = 'singleDefault'; // csj-Q: view是什么含义\n readonly type: string = ChartTypeEnum.sequence;\n\n /**\n * @override\n * @description 主要是处理布局逻辑 & 部分仅针对sequenceChart的特殊属性\n */\n transformSpec(spec: ISequenceChartSpec): void {\n super.transformSpec(spec);\n\n // 初始化目标属性\n let rowNum = 0;\n const elements: any[] = [];\n const region: IRegionSpec[] = [];\n const axes: any = [];\n const rowHeight: any = [];\n\n // 计算默认series padding和series高度\n const defaultSeriesPadding = 20;\n const seriesRegionNum = spec.series.filter(d => d.type !== SeriesTypeEnum.link).length;\n const defaultSeriesRowHeight =\n (this._layoutRect.height - defaultSeriesPadding * (seriesRegionNum - 1)) / seriesRegionNum;\n const leftAppendPadding = spec?.appendPadding?.left || 0;\n const rightAppendPadding = spec?.appendPadding?.right || 0;\n\n if ((spec as any)?.legends) {\n elements.push({\n modelId: `legendRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n (spec as any).legends[0].id = `legendRow${rowNum}`;\n rowHeight.push({\n index: rowNum,\n size: 20\n });\n rowNum++;\n }\n\n if ((spec as any)?.dataZoom) {\n elements.push({\n modelId: `dataZoomRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n (spec as any).dataZoom[0].id = `dataZoomRow${rowNum}`;\n rowNum++;\n\n // 增加空行,拟合series padding效果\n rowHeight.push({\n index: rowNum,\n size: 10\n });\n rowNum++;\n }\n\n // 遍历axes\n // 1. 在elements中添加时间轴元素\n // 2. 并统计rowNum\n // 在sequenceChart中,axes有几种情况(本期先考虑1和2,也就是默认只有1个top轴):1.不声明axes 2.声明且为仅有一个top axes 3.声明且仅有一个bottom axes 4.多个axes组合\n // if(spec.axes === null || spec?.axes[0]?.orient === 'top') {\n // Tips: id should not has duplicate name\n region.push({\n id: `regionAxesRow${rowNum}`\n });\n elements.push({\n modelId: `axesRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n spec.axes[0].id = `axesRow${rowNum}`;\n spec.axes[0].regionIndex = Array.from(Array(this._spec.series.length - 1), (_, index) => index + 1);\n rowNum++;\n // }\n\n // 遍历series\n // 1. 在spec.layout => elements、region数组和spec.axes的数组中中添加元素\n // 2. 为series绑定regionIndex\n // 3. 统计rowNum\n // 4. 用空行拟合series padding\n spec?.series?.forEach((seriesSpec: ISequenceSeriesSpec) => {\n if (\n ([SeriesTypeEnum.bar, SeriesTypeEnum.line, SeriesTypeEnum.area, SeriesTypeEnum.dot] as string[]).includes(\n seriesSpec.type\n )\n ) {\n // elements数组\n elements.push({\n modelId: `${seriesSpec.type}Row${rowNum}`,\n col: 1,\n row: rowNum\n });\n elements.push({\n modelId: `axesLeftRow${rowNum}`,\n col: 0,\n row: rowNum\n });\n\n // region数组\n region.push({\n id: `${seriesSpec.type}Row${rowNum}`,\n clip: false\n });\n\n rowHeight.push({\n index: rowNum,\n size: seriesSpec?.height || defaultSeriesRowHeight\n });\n\n // axes数组添加left axes(每个series都需要一个left axes)\n axes.push({\n orient: 'left',\n id: `axesLeftRow${rowNum}`,\n type: seriesSpec.type === SeriesTypeEnum.dot ? 'band' : 'linear',\n visible: seriesSpec.type !== SeriesTypeEnum.dot,\n\n // 对于bar series,axes title模拟bar title\n title: {\n visible: true,\n // 特殊处理时序图的 title 样式,默认的坐标轴左右轴会进行旋转\n autoRotate: false,\n style: {\n text: (seriesSpec as any)?.barTitle,\n dx: -20,\n textBaseline: 'middle',\n textAlign: 'end'\n }\n },\n // 对于bar series,axes grid模拟series分割线\n grid: {\n visible:\n typeof (seriesSpec as any)?.grid?.visible === 'boolean' ? (seriesSpec as any)?.grid?.visible : true, // bar grid默认绘制\n style: (datum: Datum, index: number) => {\n let lineWidth = 0;\n if (index === 0) {\n const style = (seriesSpec as any)?.grid?.style;\n\n // 兼容一下spec中通过strokeWidth申明的方式\n lineWidth = style?.lineWidth ?? style?.strokeWidth ?? 1;\n }\n return {\n lineWidth,\n stroke: (seriesSpec as any)?.grid?.style?.stroke || '#dfdfdf',\n lineDash: [0, 0]\n };\n }\n },\n // 其他轴元素隐藏\n domainLine: {\n visible: false\n },\n tick: {\n visible: false\n },\n label: {\n visible: false\n },\n\n // 绑定regionIndex\n regionIndex: region.length - 1\n });\n\n // seriesSpec绑定regionIndex\n seriesSpec.regionIndex = region.length - 1;\n\n rowNum++;\n\n // 增加空行,拟合series padding效果\n rowHeight.push({\n index: rowNum,\n size: seriesSpec?.padding || defaultSeriesPadding\n });\n rowNum++;\n\n // chart的leftAppendPadding用于具体元素的dx偏移\n (seriesSpec as any).leftAppendPadding = leftAppendPadding;\n\n // title和subTitle自动定位到画布最左端\n if (seriesSpec.type === SeriesTypeEnum.dot) {\n (seriesSpec as any).title.style.dx = -leftAppendPadding;\n (seriesSpec as any).subTitle.style.dx = -leftAppendPadding;\n }\n }\n });\n\n // 对于link series,所有属性跟随它绑定的dot series\n spec?.series?.forEach((seriesSpec: ISequenceSeriesSpec) => {\n if (seriesSpec.type === SeriesTypeEnum.link) {\n const dotRowNum = seriesSpec.dotSeriesIndex + 1;\n elements.push({\n modelId: `${seriesSpec.type}Row${dotRowNum}`,\n col: 1,\n row: dotRowNum - 1\n });\n seriesSpec.regionIndex = spec.series[seriesSpec.dotSeriesIndex].regionIndex;\n (seriesSpec as any).leftAppendPadding = leftAppendPadding;\n (seriesSpec as any).height = (spec.series[seriesSpec.dotSeriesIndex] as any).height;\n (seriesSpec as any).clipHeight = (spec.series[seriesSpec.dotSeriesIndex] as any).clipHeight;\n }\n });\n\n // 添加legends和datazoom的regionIndex\n if ((spec as any)?.legends) {\n (spec as any).legends[0].regionIndex = [region.length - 1];\n }\n // if ((spec as any)?.dataZoom) {\n // (spec as any).dataZoom[0].regionIndex = Array.from({length: region.length - 1},(item, index)=> index+1);\n // }\n\n const layout: IGridLayoutSpec = {\n type: 'grid',\n col: 3,\n row: rowNum,\n colWidth: [\n {\n index: 0,\n size: leftAppendPadding\n },\n {\n index: 2,\n size: rightAppendPadding\n }\n ],\n rowHeight: rowHeight,\n elements: elements\n };\n\n spec.layout = layout;\n spec.region = region;\n spec.axes?.push(...axes);\n }\n\n /**\n * @override\n * @description 主要是将link series关联的dot data放到link series中\n */\n createSeries(seriesSpec: ISequenceSeriesSpec[]) {\n seriesSpec.forEach((spec, index) => {\n // 自动填充数据\n if (!spec.data) {\n spec.data = this.getSeriesData(spec.dataId, spec.dataIndex);\n\n // link series添加关联的dot series data\n if (spec.type === SeriesTypeEnum.link) {\n spec.dataDot = this.getSeriesData(\n this._spec.series[spec.dotSeriesIndex].dataId,\n this._spec.series[spec.dotSeriesIndex].dataIndex\n );\n }\n } else {\n // 保证数据最终是 DataView 实例\n spec.data = dataToDataView(spec.data, this._dataSet, this._spec.data as DataView[], {\n onError: this._option.onError\n });\n // link series添加关联的dot series data\n if (spec.type === SeriesTypeEnum.link) {\n spec.dataDot = dataToDataView(\n this._spec.series[spec.dotSeriesIndex].data,\n this._dataSet,\n this._spec.data as DataView[],\n {\n onError: this._option.onError\n }\n );\n }\n }\n\n if (spec.type === SeriesTypeEnum.link) {\n spec.dotSeriesSpec = this._spec.series[spec.dotSeriesIndex];\n }\n\n let region: IRegion | undefined;\n if (spec.regionId) {\n region = this.getRegionsInUserId(spec.regionId);\n }\n if (!region) {\n region = this.getRegionsInIndex(spec.regionIndex ? [spec.regionIndex] : undefined)[0];\n }\n if (!region) {\n return;\n }\n const series = Factory.createSeries(spec.type, spec, {\n ...this._modelOption,\n region,\n specIndex: index,\n specKey: 'series',\n getTheme: () => this._theme,\n globalScale: this._globalScale\n } as ISeriesOption);\n\n if (series) {\n series.created();\n this._series.push(series);\n region.addSeries(series);\n }\n });\n }\n}\n"]}
@@ -61,7 +61,15 @@ export class DiscreteLegend extends BaseLegend {
61
61
  return legendData.transform({
62
62
  type: "discreteLegendDataMake",
63
63
  options: {
64
- series: () => this._regions.reduce(((pre, r) => (pre.push(...r.getSeries()), pre)), []),
64
+ series: () => {
65
+ const result = [];
66
+ return eachSeries(this._regions, (s => {
67
+ result.push(s);
68
+ }), {
69
+ specIndex: this._spec.seriesIndex,
70
+ userId: this._spec.seriesId
71
+ }), result;
72
+ },
65
73
  seriesField: s => this._getSeriesLegendField(s)
66
74
  }
67
75
  }), legendData;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/legend/discrete/legend.ts"],"names":[],"mappings":"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","file":"legend.js","sourcesContent":["import { isFunction, isNil, isValidNumber } from '@visactor/vutils';\nimport { DataView } from '@visactor/vdataset';\nimport type { IDiscreteLegendSpec, IDiscreteLegendTheme } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ISeries } from '../../../series/interface';\nimport type { IModelInitOption, ILayoutRect } from '../../../model/interface';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { getLegendAttributes } from './util';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport { isArray, eachSeries, get, getFieldAlias, isDataDomainSpec } from '../../../util';\n// eslint-disable-next-line no-duplicate-imports\nimport { LegendEvent } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DiscreteLegend as LegendComponent } from '@visactor/vrender-components';\nimport type { ILegend } from '../interface';\nimport { discreteLegendDataMake, discreteLegendFilter } from '../../../data/transforms/legend-data/discrete';\nimport { BaseLegend } from '../base-legend';\nimport { ChartEvent } from '../../../constant';\n\nexport class DiscreteLegend extends BaseLegend<IDiscreteLegendSpec> {\n static type = ComponentTypeEnum.discreteLegend;\n type = ComponentTypeEnum.discreteLegend;\n name: string = ComponentTypeEnum.discreteLegend;\n\n protected declare _theme: IDiscreteLegendTheme;\n\n static createComponent(spec: any, options: IComponentOption) {\n const legendSpec = spec.legends || options.defaultSpec;\n if (!legendSpec) {\n return undefined;\n }\n if (!isArray(legendSpec)) {\n if (!legendSpec.type || legendSpec.type === 'discrete') {\n return new DiscreteLegend(legendSpec, {\n ...options,\n specIndex: 0,\n specKey: 'legends'\n });\n }\n return undefined;\n }\n const legends: ILegend[] = [];\n legendSpec.forEach((s: IDiscreteLegendSpec, i: number) => {\n if (!s.type || s.type === 'discrete') {\n legends.push(new DiscreteLegend(s, { ...options, specIndex: i, specKey: 'legends' }));\n }\n });\n return legends;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n eachSeries(\n this._regions,\n s => {\n s.addViewDataFilter({\n type: 'discreteLegendFilter',\n options: {\n selected: () => this._selectedData,\n field: () => this._getSeriesLegendField(s),\n data: () => this._legendData.getLatestData().map((obj: any) => obj.key)\n }\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n protected _initLegendData(): DataView {\n registerDataSetInstanceTransform(this._option.dataSet, 'discreteLegendFilter', discreteLegendFilter);\n registerDataSetInstanceTransform(this._option.dataSet, 'discreteLegendDataMake', discreteLegendDataMake);\n const legendData = new DataView(this._option.dataSet);\n legendData.transform({\n type: 'discreteLegendDataMake',\n options: {\n series: () => {\n return this._regions.reduce((pre, r) => {\n pre.push(...r.getSeries());\n return pre;\n }, [] as ISeries[]);\n },\n seriesField: (s: ISeries) => this._getSeriesLegendField(s)\n }\n });\n\n return legendData;\n }\n\n protected _getSeriesLegendField(s: ISeries) {\n const defaultField = s.getSeriesField();\n if (!this._spec.scaleName) {\n return defaultField;\n }\n if (!s.getRawData()) {\n return defaultField;\n }\n const scaleSpec = this._option.globalScale.getScaleSpec(this._spec.scaleName);\n if (!scaleSpec) {\n return defaultField;\n }\n\n // field是只在图例指定了scale的情况下生效\n if (this._spec.field) {\n return this._spec.field;\n }\n\n if (!isDataDomainSpec(scaleSpec.domain)) {\n return defaultField;\n }\n const seriesData = scaleSpec.domain.find(d => d.dataId === s.getRawData().name);\n if (!seriesData) {\n return defaultField;\n }\n return seriesData.fields?.[0] ?? defaultField;\n }\n\n protected _initSelectedData(): void {\n if (this._spec.defaultSelected) {\n this._selectedData = [...this._spec.defaultSelected];\n } else {\n this._selectedData = this._legendData.getLatestData().map((d: any) => d.key);\n }\n }\n\n private _addDefaultTitleText(attrs: any) {\n if (attrs.title?.visible && isNil(attrs.title.text) && isNil(attrs.title.style?.text)) {\n // 默认使用第0个系列的 seriesField 别名\n const series = this._regions?.[0]?.getSeries()[0];\n if (!series) {\n return;\n }\n // 如果没有别名继续保持 空字符串\n attrs.title.text = getFieldAlias(series.getRawData(), series.getSeriesField());\n }\n }\n\n protected _getLegendAttributes(rect: ILayoutRect) {\n const layout = this.layoutOrient === 'bottom' || this.layoutOrient === 'top' ? 'horizontal' : 'vertical';\n const attrs = {\n layout,\n items: this._getLegendItems(),\n zIndex: this.layoutZIndex,\n maxWidth: rect.width,\n maxHeight: rect.height,\n ...getLegendAttributes(this._spec, rect)\n };\n this._addDefaultTitleText(attrs);\n return attrs;\n }\n\n protected _getLegendConstructor() {\n return LegendComponent;\n }\n\n protected _initEvent() {\n if (this._legendComponent) {\n const doFilter = this._spec.filter !== false;\n this._legendComponent.addEventListener(LegendEvent.legendItemClick, (e: any) => {\n const selectedData = get(e, 'detail.currentSelected');\n doFilter && this.setSelectedData(selectedData);\n this.event.emit(ChartEvent.legendItemClick, { model: this, value: selectedData, event: e });\n });\n\n this._legendComponent.addEventListener(LegendEvent.legendItemHover, (e: any) => {\n const detail = get(e, 'detail');\n this.event.emit(ChartEvent.legendItemHover, { model: this, value: detail, event: e });\n });\n\n this._legendComponent.addEventListener(LegendEvent.legendItemUnHover, (e: any) => {\n const detail = get(e, 'detail');\n this.event.emit(ChartEvent.legendItemUnHover, { model: this, value: detail, event: e });\n });\n }\n }\n\n private _getLegendItems() {\n const originData = (this._legendData.getLatestData() || []).map((datum: any) => {\n const fill = datum.style('fill') || datum.style('stroke');\n const stroke = datum.style('stroke');\n const lineWidth = datum.style('lineWidth');\n const symbolType = datum.style('symbolType');\n const fillOpacity = datum.style('fillOpacity');\n const strokeOpacity = datum.style('strokeOpacity');\n const opacity = datum.style('opacity');\n const texture = datum.style('texture');\n const textureColor = datum.style('textureColor');\n const outerBorder = datum.style('outerBorder');\n const innerBorder = datum.style('innerBorder');\n\n return {\n label: datum.key,\n shape: {\n fill,\n symbolType: symbolType ?? datum.shapeType ?? 'circle',\n stroke: lineWidth === 0 || fill === stroke ? null : stroke,\n fillOpacity: isValidNumber(fillOpacity) ? fillOpacity : 1,\n strokeOpacity: isValidNumber(strokeOpacity) ? strokeOpacity : 1,\n opacity: isValidNumber(opacity) ? opacity : 1,\n texture: texture,\n texturePadding: texture ? 1 : null,\n textureSize: texture ? 4 : null,\n textureColor,\n innerBorder,\n outerBorder\n }\n };\n });\n return isFunction(this._spec.data)\n ? this._spec.data(originData, this._option.globalScale.getScale('color'), this._option.globalScale)\n : originData;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/component/legend/discrete/legend.ts"],"names":[],"mappings":"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","file":"legend.js","sourcesContent":["import { isFunction, isNil, isValidNumber } from '@visactor/vutils';\nimport { DataView } from '@visactor/vdataset';\nimport type { IDiscreteLegendSpec, IDiscreteLegendTheme } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ISeries } from '../../../series/interface';\nimport type { IModelInitOption, ILayoutRect } from '../../../model/interface';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { getLegendAttributes } from './util';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport { isArray, eachSeries, get, getFieldAlias, isDataDomainSpec } from '../../../util';\n// eslint-disable-next-line no-duplicate-imports\nimport { LegendEvent } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DiscreteLegend as LegendComponent } from '@visactor/vrender-components';\nimport type { ILegend } from '../interface';\nimport { discreteLegendDataMake, discreteLegendFilter } from '../../../data/transforms/legend-data/discrete';\nimport { BaseLegend } from '../base-legend';\nimport { ChartEvent } from '../../../constant';\n\nexport class DiscreteLegend extends BaseLegend<IDiscreteLegendSpec> {\n static type = ComponentTypeEnum.discreteLegend;\n type = ComponentTypeEnum.discreteLegend;\n name: string = ComponentTypeEnum.discreteLegend;\n\n protected declare _theme: IDiscreteLegendTheme;\n\n static createComponent(spec: any, options: IComponentOption) {\n const legendSpec = spec.legends || options.defaultSpec;\n if (!legendSpec) {\n return undefined;\n }\n if (!isArray(legendSpec)) {\n if (!legendSpec.type || legendSpec.type === 'discrete') {\n return new DiscreteLegend(legendSpec, {\n ...options,\n specIndex: 0,\n specKey: 'legends'\n });\n }\n return undefined;\n }\n const legends: ILegend[] = [];\n legendSpec.forEach((s: IDiscreteLegendSpec, i: number) => {\n if (!s.type || s.type === 'discrete') {\n legends.push(new DiscreteLegend(s, { ...options, specIndex: i, specKey: 'legends' }));\n }\n });\n return legends;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n eachSeries(\n this._regions,\n s => {\n s.addViewDataFilter({\n type: 'discreteLegendFilter',\n options: {\n selected: () => this._selectedData,\n field: () => this._getSeriesLegendField(s),\n data: () => this._legendData.getLatestData().map((obj: any) => obj.key)\n }\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n protected _initLegendData(): DataView {\n registerDataSetInstanceTransform(this._option.dataSet, 'discreteLegendFilter', discreteLegendFilter);\n registerDataSetInstanceTransform(this._option.dataSet, 'discreteLegendDataMake', discreteLegendDataMake);\n const legendData = new DataView(this._option.dataSet);\n legendData.transform({\n type: 'discreteLegendDataMake',\n options: {\n series: () => {\n const result: ISeries[] = [];\n eachSeries(\n this._regions,\n s => {\n result.push(s);\n },\n {\n specIndex: this._spec.seriesIndex,\n userId: this._spec.seriesId\n }\n );\n return result;\n },\n seriesField: (s: ISeries) => this._getSeriesLegendField(s)\n }\n });\n\n return legendData;\n }\n\n protected _getSeriesLegendField(s: ISeries) {\n const defaultField = s.getSeriesField();\n if (!this._spec.scaleName) {\n return defaultField;\n }\n if (!s.getRawData()) {\n return defaultField;\n }\n const scaleSpec = this._option.globalScale.getScaleSpec(this._spec.scaleName);\n if (!scaleSpec) {\n return defaultField;\n }\n\n // field是只在图例指定了scale的情况下生效\n if (this._spec.field) {\n return this._spec.field;\n }\n\n if (!isDataDomainSpec(scaleSpec.domain)) {\n return defaultField;\n }\n const seriesData = scaleSpec.domain.find(d => d.dataId === s.getRawData().name);\n if (!seriesData) {\n return defaultField;\n }\n return seriesData.fields?.[0] ?? defaultField;\n }\n\n protected _initSelectedData(): void {\n if (this._spec.defaultSelected) {\n this._selectedData = [...this._spec.defaultSelected];\n } else {\n this._selectedData = this._legendData.getLatestData().map((d: any) => d.key);\n }\n }\n\n private _addDefaultTitleText(attrs: any) {\n if (attrs.title?.visible && isNil(attrs.title.text) && isNil(attrs.title.style?.text)) {\n // 默认使用第0个系列的 seriesField 别名\n const series = this._regions?.[0]?.getSeries()[0];\n if (!series) {\n return;\n }\n // 如果没有别名继续保持 空字符串\n attrs.title.text = getFieldAlias(series.getRawData(), series.getSeriesField());\n }\n }\n\n protected _getLegendAttributes(rect: ILayoutRect) {\n const layout = this.layoutOrient === 'bottom' || this.layoutOrient === 'top' ? 'horizontal' : 'vertical';\n const attrs = {\n layout,\n items: this._getLegendItems(),\n zIndex: this.layoutZIndex,\n maxWidth: rect.width,\n maxHeight: rect.height,\n ...getLegendAttributes(this._spec, rect)\n };\n this._addDefaultTitleText(attrs);\n return attrs;\n }\n\n protected _getLegendConstructor() {\n return LegendComponent;\n }\n\n protected _initEvent() {\n if (this._legendComponent) {\n const doFilter = this._spec.filter !== false;\n this._legendComponent.addEventListener(LegendEvent.legendItemClick, (e: any) => {\n const selectedData = get(e, 'detail.currentSelected');\n doFilter && this.setSelectedData(selectedData);\n this.event.emit(ChartEvent.legendItemClick, { model: this, value: selectedData, event: e });\n });\n\n this._legendComponent.addEventListener(LegendEvent.legendItemHover, (e: any) => {\n const detail = get(e, 'detail');\n this.event.emit(ChartEvent.legendItemHover, { model: this, value: detail, event: e });\n });\n\n this._legendComponent.addEventListener(LegendEvent.legendItemUnHover, (e: any) => {\n const detail = get(e, 'detail');\n this.event.emit(ChartEvent.legendItemUnHover, { model: this, value: detail, event: e });\n });\n }\n }\n\n private _getLegendItems() {\n const originData = (this._legendData.getLatestData() || []).map((datum: any) => {\n const fill = datum.style('fill') || datum.style('stroke');\n const stroke = datum.style('stroke');\n const lineWidth = datum.style('lineWidth');\n const symbolType = datum.style('symbolType');\n const fillOpacity = datum.style('fillOpacity');\n const strokeOpacity = datum.style('strokeOpacity');\n const opacity = datum.style('opacity');\n const texture = datum.style('texture');\n const textureColor = datum.style('textureColor');\n const outerBorder = datum.style('outerBorder');\n const innerBorder = datum.style('innerBorder');\n\n return {\n label: datum.key,\n shape: {\n fill,\n symbolType: symbolType ?? datum.shapeType ?? 'circle',\n stroke: lineWidth === 0 || fill === stroke ? null : stroke,\n fillOpacity: isValidNumber(fillOpacity) ? fillOpacity : 1,\n strokeOpacity: isValidNumber(strokeOpacity) ? strokeOpacity : 1,\n opacity: isValidNumber(opacity) ? opacity : 1,\n texture: texture,\n texturePadding: texture ? 1 : null,\n textureSize: texture ? 4 : null,\n textureColor,\n innerBorder,\n outerBorder\n }\n };\n });\n return isFunction(this._spec.data)\n ? this._spec.data(originData, this._option.globalScale.getScale('color'), this._option.globalScale)\n : originData;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { IModel } from './../../../model/interface';
1
+ import type { IModel } from '../../../model/interface';
2
2
  import type { DimensionEventParams } from '../../../event/events/dimension/interface';
3
3
  import type { BaseEventParams } from '../../../event/interface';
4
4
  import type { DimensionTooltipInfo, MarkTooltipInfo } from '../processor/interface';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/tooltip/interface/common.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IAEvB,uDAAW,CAAA;IAEX,qDAAU,CAAA;AACZ,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB","file":"common.js","sourcesContent":["import type { IModel } from './../../../model/interface';\nimport type { DimensionEventParams } from '../../../event/events/dimension/interface';\nimport type { BaseEventParams } from '../../../event/interface';\nimport type { DimensionTooltipInfo, MarkTooltipInfo } from '../processor/interface';\nimport type { Datum, IShowTooltipOption } from '../../../typings';\n\nexport type TooltipHandlerParams = (BaseEventParams | DimensionEventParams) & {\n changePositionOnly?: boolean;\n};\n\nexport interface ITooltipActiveTypeAsKeys<T, K> {\n mark: T;\n dimension: K;\n}\n\nexport type TotalMouseEventData = {\n tooltipInfo: Partial<ITooltipActiveTypeAsKeys<MarkTooltipInfo, DimensionTooltipInfo>>;\n ignore: Partial<ITooltipActiveTypeAsKeys<boolean, boolean>>;\n};\n\nexport enum TooltipResult {\n /** tooltip 显示成功 */\n success = 0,\n /** tooltip 未成功显示 */\n failed = 1\n}\n\nexport interface ITooltip extends IModel {\n getVisible: () => boolean;\n showTooltip: (datum: Datum, options: IShowTooltipOption) => void;\n}\n"]}
1
+ {"version":3,"sources":["../src/component/tooltip/interface/common.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IAEvB,uDAAW,CAAA;IAEX,qDAAU,CAAA;AACZ,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB","file":"common.js","sourcesContent":["import type { IModel } from '../../../model/interface';\nimport type { DimensionEventParams } from '../../../event/events/dimension/interface';\nimport type { BaseEventParams } from '../../../event/interface';\nimport type { DimensionTooltipInfo, MarkTooltipInfo } from '../processor/interface';\nimport type { Datum, IShowTooltipOption } from '../../../typings';\n\nexport type TooltipHandlerParams = (BaseEventParams | DimensionEventParams) & {\n changePositionOnly?: boolean;\n};\n\nexport interface ITooltipActiveTypeAsKeys<T, K> {\n mark: T;\n dimension: K;\n}\n\nexport type TotalMouseEventData = {\n tooltipInfo: Partial<ITooltipActiveTypeAsKeys<MarkTooltipInfo, DimensionTooltipInfo>>;\n ignore: Partial<ITooltipActiveTypeAsKeys<boolean, boolean>>;\n};\n\nexport enum TooltipResult {\n /** tooltip 显示成功 */\n success = 0,\n /** tooltip 未成功显示 */\n failed = 1\n}\n\nexport interface ITooltip extends IModel {\n getVisible: () => boolean;\n showTooltip: (datum: Datum, options: IShowTooltipOption) => void;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { VChart } from './vchart';
2
2
  import { Factory } from './factory';
3
3
  export { VChart, Factory };
4
- export declare const version = "1.3.0";
4
+ export declare const version = "1.3.1-alpha.0";
5
5
  export type { IVChart } from './interface';
6
6
  export * from '../event/interface';
7
7
  export * from '../typings/spec/common';
package/esm/core/index.js CHANGED
@@ -12,14 +12,14 @@ import { GroupMark } from "../mark/group";
12
12
 
13
13
  import { ComponentMark } from "../mark/component";
14
14
 
15
- import { ImageMark } from "./../mark/image";
15
+ import { ImageMark } from "../mark/image";
16
16
 
17
17
  VChart.useMark([ ComponentMark, GroupMark, ImageMark ]), Factory.registerRegion("region", Region),
18
18
  Factory.registerLayout("base", Layout);
19
19
 
20
20
  export { VChart, Factory };
21
21
 
22
- export const version = "1.3.0";
22
+ export const version = "1.3.1-alpha.0";
23
23
 
24
24
  export * from "../event/interface";
25
25
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAGtD,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAa,CAAC,CAAC;AAGhD,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,MAAa,CAAC,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAK/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,oBAAoB,CAAC;AAGnC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC","file":"index.js","sourcesContent":["import { Logger, LoggerLevel } from '@visactor/vutils';\n/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\nimport { Region } from '../region/region';\nimport { Layout } from '../layout/base-layout';\nimport { GroupMark } from '../mark/group';\nimport { ComponentMark } from '../mark/component';\nimport { ImageMark } from './../mark/image';\n\n// register groupMark and componentMark\nVChart.useMark([ComponentMark, GroupMark, ImageMark]);\n\n// install region module\nFactory.registerRegion('region', Region as any);\n\n// install layout module\nFactory.registerLayout('base', Layout as any);\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.3.0\";\n\n// export necessary types\nexport type { IVChart } from './interface';\n// the event types\nexport * from '../event/interface';\nexport * from '../typings/spec/common';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\nexport * from '../theme/interface';\n\n// set default logger level to Level.error\nLogger.getInstance(LoggerLevel.Error);\n"]}
1
+ {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAGtD,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAa,CAAC,CAAC;AAGhD,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,MAAa,CAAC,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAC;AAKvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,oBAAoB,CAAC;AAGnC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC","file":"index.js","sourcesContent":["import { Logger, LoggerLevel } from '@visactor/vutils';\n/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\nimport { Region } from '../region/region';\nimport { Layout } from '../layout/base-layout';\nimport { GroupMark } from '../mark/group';\nimport { ComponentMark } from '../mark/component';\nimport { ImageMark } from '../mark/image';\n\n// register groupMark and componentMark\nVChart.useMark([ComponentMark, GroupMark, ImageMark]);\n\n// install region module\nFactory.registerRegion('region', Region as any);\n\n// install layout module\nFactory.registerLayout('base', Layout as any);\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.3.1-alpha.0\";\n\n// export necessary types\nexport type { IVChart } from './interface';\n// the event types\nexport * from '../event/interface';\nexport * from '../typings/spec/common';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\nexport * from '../theme/interface';\n\n// set default logger level to Level.error\nLogger.getInstance(LoggerLevel.Error);\n"]}
@@ -1,4 +1,4 @@
1
- import type { utilFunctionCtx } from './../typings/params';
1
+ import type { utilFunctionCtx } from '../typings/params';
2
2
  import { DataSet, DataView } from '@visactor/vdataset';
3
3
  import type { IDataViewOptions } from '@visactor/vdataset';
4
4
  import type { IDataValues } from '../typings/spec/common';
@@ -1,4 +1,4 @@
1
- import { warn } from "./../util/debug";
1
+ import { warn } from "../util/debug";
2
2
 
3
3
  import { isString } from "@visactor/vutils";
4
4
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data/initialize.ts"],"names":[],"mappings":"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","file":"initialize.js","sourcesContent":["import type { utilFunctionCtx } from './../typings/params';\nimport { warn } from './../util/debug';\nimport { isString } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataSet, DataView } from '@visactor/vdataset';\nimport type { IDataViewOptions, IFields, ITransformOptions } from '@visactor/vdataset';\nimport type { IDataValues, SheetParseOptions } from '../typings/spec/common';\nimport { error } from '../util';\nimport { registerDataSetInstanceTransform } from './register';\nimport { copyDataView } from './transforms/copy-data-view';\nimport type { IParserOptions } from '@visactor/vdataset/es/parser';\n\nexport function initializeData() {\n // todo\n}\n\nexport function initCSVData() {\n // todo\n}\n\nexport function initData() {\n // todo\n}\n\nexport function initFoldData() {\n // todo\n}\n\nexport function dataViewFromDataView(rawData: DataView, dataSet?: DataSet, op?: IDataViewOptions) {\n dataSet = dataSet instanceof DataSet ? dataSet : rawData.dataSet;\n registerDataSetInstanceTransform(dataSet, 'copyDataView', copyDataView);\n const viewData = new DataView(dataSet, op);\n viewData.parse([rawData], {\n type: 'dataview'\n });\n viewData.transform({\n type: 'copyDataView'\n });\n return viewData;\n}\n\n/**\n * 将数据实例化为 DataView\n * @param data 数据\n * @param dataSet 数据集\n * @returns\n */\nexport function dataToDataView(\n data: DataView | IDataValues,\n dataSet: DataSet,\n sourceDataViews: DataView[] = [],\n ctx: utilFunctionCtx = {}\n) {\n if (data instanceof DataView) {\n return data;\n }\n\n const { id, values = [], fromDataIndex, fromDataId, transforms = [], fields } = data;\n const parser = (data.parser ?? { clone: true }) as IParserOptions;\n // set parser.clone default value to true\n parser.clone = !(parser.clone === false);\n let dataView: DataView;\n const existDataView = sourceDataViews.find(dv => dv.name === id);\n if (existDataView) {\n dataView = existDataView;\n } else {\n const initOption: IDataViewOptions = { name: id };\n // fields 支持在dataView初始化参数中传入\n if (fields) {\n initOption.fields = fields as IFields;\n }\n dataView = new DataView(dataSet, initOption);\n if (typeof fromDataId === 'string') {\n // 使用id查找上游dataview\n const fromDataView = sourceDataViews.find(dv => dv.name === fromDataId);\n if (!fromDataView) {\n (ctx.onError ?? error)(`no data matches fromDataId ${fromDataId}`);\n return null;\n }\n\n dataView.parse([fromDataView], {\n type: 'dataview'\n });\n dataView.transform({\n type: 'copyDataView'\n });\n } else if (typeof fromDataIndex === 'number') {\n // 使用index查找上游dataview\n const fromDataView = sourceDataViews[fromDataIndex];\n if (!fromDataView) {\n (ctx.onError ?? error)(`no data matches fromDataIndex ${fromDataIndex}`);\n return null;\n }\n\n dataView.parse([fromDataView], {\n type: 'dataview'\n });\n dataView.transform({\n type: 'copyDataView'\n });\n } else if (Array.isArray(values)) {\n dataView.parse(values, parser);\n } else if (isString(values) && (!parser || ['csv', 'dsv', 'tsv'].includes((parser as SheetParseOptions).type))) {\n // 内置 csv parser\n dataView.parse(values, (parser as SheetParseOptions) ?? { type: 'csv' });\n } else {\n // 如果 values 不符合要求,则默认设置为 [],同时打印错误信息\n dataView.parse([]);\n warn('values should be array');\n }\n // 处理transform\n if (transforms && transforms.length) {\n transforms.forEach((transform: ITransformOptions) => {\n if (dataSet.getTransform(transform.type)) {\n dataView.transform(transform);\n }\n });\n }\n }\n\n return dataView;\n}\n"]}
1
+ {"version":3,"sources":["../src/data/initialize.ts"],"names":[],"mappings":"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","file":"initialize.js","sourcesContent":["import type { utilFunctionCtx } from '../typings/params';\nimport { warn } from '../util/debug';\nimport { isString } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataSet, DataView } from '@visactor/vdataset';\nimport type { IDataViewOptions, IFields, ITransformOptions } from '@visactor/vdataset';\nimport type { IDataValues, SheetParseOptions } from '../typings/spec/common';\nimport { error } from '../util';\nimport { registerDataSetInstanceTransform } from './register';\nimport { copyDataView } from './transforms/copy-data-view';\nimport type { IParserOptions } from '@visactor/vdataset/es/parser';\n\nexport function initializeData() {\n // todo\n}\n\nexport function initCSVData() {\n // todo\n}\n\nexport function initData() {\n // todo\n}\n\nexport function initFoldData() {\n // todo\n}\n\nexport function dataViewFromDataView(rawData: DataView, dataSet?: DataSet, op?: IDataViewOptions) {\n dataSet = dataSet instanceof DataSet ? dataSet : rawData.dataSet;\n registerDataSetInstanceTransform(dataSet, 'copyDataView', copyDataView);\n const viewData = new DataView(dataSet, op);\n viewData.parse([rawData], {\n type: 'dataview'\n });\n viewData.transform({\n type: 'copyDataView'\n });\n return viewData;\n}\n\n/**\n * 将数据实例化为 DataView\n * @param data 数据\n * @param dataSet 数据集\n * @returns\n */\nexport function dataToDataView(\n data: DataView | IDataValues,\n dataSet: DataSet,\n sourceDataViews: DataView[] = [],\n ctx: utilFunctionCtx = {}\n) {\n if (data instanceof DataView) {\n return data;\n }\n\n const { id, values = [], fromDataIndex, fromDataId, transforms = [], fields } = data;\n const parser = (data.parser ?? { clone: true }) as IParserOptions;\n // set parser.clone default value to true\n parser.clone = !(parser.clone === false);\n let dataView: DataView;\n const existDataView = sourceDataViews.find(dv => dv.name === id);\n if (existDataView) {\n dataView = existDataView;\n } else {\n const initOption: IDataViewOptions = { name: id };\n // fields 支持在dataView初始化参数中传入\n if (fields) {\n initOption.fields = fields as IFields;\n }\n dataView = new DataView(dataSet, initOption);\n if (typeof fromDataId === 'string') {\n // 使用id查找上游dataview\n const fromDataView = sourceDataViews.find(dv => dv.name === fromDataId);\n if (!fromDataView) {\n (ctx.onError ?? error)(`no data matches fromDataId ${fromDataId}`);\n return null;\n }\n\n dataView.parse([fromDataView], {\n type: 'dataview'\n });\n dataView.transform({\n type: 'copyDataView'\n });\n } else if (typeof fromDataIndex === 'number') {\n // 使用index查找上游dataview\n const fromDataView = sourceDataViews[fromDataIndex];\n if (!fromDataView) {\n (ctx.onError ?? error)(`no data matches fromDataIndex ${fromDataIndex}`);\n return null;\n }\n\n dataView.parse([fromDataView], {\n type: 'dataview'\n });\n dataView.transform({\n type: 'copyDataView'\n });\n } else if (Array.isArray(values)) {\n dataView.parse(values, parser);\n } else if (isString(values) && (!parser || ['csv', 'dsv', 'tsv'].includes((parser as SheetParseOptions).type))) {\n // 内置 csv parser\n dataView.parse(values, (parser as SheetParseOptions) ?? { type: 'csv' });\n } else {\n // 如果 values 不符合要求,则默认设置为 [],同时打印错误信息\n dataView.parse([]);\n warn('values should be array');\n }\n // 处理transform\n if (transforms && transforms.length) {\n transforms.forEach((transform: ITransformOptions) => {\n if (dataSet.getTransform(transform.type)) {\n dataView.transform(transform);\n }\n });\n }\n }\n\n return dataView;\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { IAxis } from './../../../component/axis/interface';
1
+ import type { IAxis } from '../../../component/axis/interface';
2
2
  import type { RenderMode } from '../../../typings/spec/common';
3
3
  import type { BaseEventParams, EventHandler, EventParamsDefinition, IComposedEvent, IEventDispatcher } from '../../interface';
4
4
  import type { IChart } from '../../../chart/interface';
@@ -1,4 +1,4 @@
1
- import { error } from "./../../../util/debug";
1
+ import { error } from "../../../util/debug";
2
2
 
3
3
  import { getCartesianDimensionInfo, getDimensionInfoByValue, getPolarDimensionInfo } from "./util";
4
4
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/event/events/dimension/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAY9C,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAEnG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAO,cAAc;IAQzB,YAAY,eAAiC,EAAE,IAAgB;;QAC7D,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,MAAM,GAAG,MAAA,MAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAC,QAAQ,kDAAI,CAAC;IAClE,CAAC;IAED,QAAQ,CAAqB,KAAU,EAAE,OAAiD;;QACxF,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,SAAS,GAAG,OAAO,mCAAI,KAAK,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACzE,CAAC;IACD,UAAU;;QACR,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,SAAS,GAAG,OAAO,mCAAI,KAAK,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACzE,CAAC;IAES,sBAAsB,CAAC,CAAS,EAAE,CAAS;;QACnD,MAAM,aAAa,GAAG,MAAA,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,mCAAI,EAAE,CAAC;QAC7E,MAAM,SAAS,GAAG,MAAA,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,mCAAI,EAAE,CAAC;QAErE,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,CAAU,EAAE,GAA0C;;QAE7D,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,MAAM,0CAAE,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;YACtD,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,EAAE;gBACxB,OAAO,KAAK,CAAC;aACd;YACD,MAAM,KAAK,GAAW,CAAE,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAC3B,OAAO,KAAK,CAAC;aACd;YACD,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,EAAE;gBACf,OAAO,GAAG,CAAC,MAAM,CAAQ,CAAC,CAAC,CAAC;aAC7B;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAY,CAAC;QACd,MAAM,aAAa,GAAqB,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,MAAM,IAAI,GAAG,uBAAuB,CAAC,CAAmB,EAAE,CAAC,CAAC,CAAC;YAC7D,IAAI,IAAI,EAAE;gBACR,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;YACxB,MAAM,EAAE,OAAO;YACf,aAAa;SACgB,CAAC,CAAC;QACjC,OAAO,aAAa,CAAC;IACvB,CAAC;CACF","file":"base.js","sourcesContent":["import { error } from './../../../util/debug';\nimport type { IAxis } from './../../../component/axis/interface';\nimport type { RenderMode } from '../../../typings/spec/common';\nimport type {\n BaseEventParams,\n EventHandler,\n EventParamsDefinition,\n IComposedEvent,\n IEventDispatcher\n} from '../../interface';\nimport type { IChart } from '../../../chart/interface';\nimport type { IDimensionInfo } from './interface';\nimport { getCartesianDimensionInfo, getDimensionInfoByValue, getPolarDimensionInfo } from './util';\nimport type { Maybe } from '../../../typings';\nimport { isDiscrete } from '@visactor/vscale';\n\nexport class DimensionEvent implements IComposedEvent {\n protected _eventDispatcher: IEventDispatcher;\n protected _mode: RenderMode;\n\n protected _callback!: (params: BaseEventParams) => void;\n\n protected _chart: Maybe<IChart>;\n\n constructor(eventDispatcher: IEventDispatcher, mode: RenderMode) {\n this._eventDispatcher = eventDispatcher;\n this._mode = mode;\n\n this._chart = this._eventDispatcher.globalInstance.getChart?.();\n }\n\n register<Evt extends string>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>): void {\n (this._chart?.getOption().onError ?? error)('Method not implemented.');\n }\n unregister(): void {\n (this._chart?.getOption().onError ?? error)('Method not implemented.');\n }\n\n protected getTargetDimensionInfo(x: number, y: number): IDimensionInfo[] | null {\n const cartesianInfo = getCartesianDimensionInfo(this._chart, { x, y }) ?? [];\n const polarInfo = getPolarDimensionInfo(this._chart, { x, y }) ?? [];\n\n const result = [].concat(cartesianInfo, polarInfo);\n if (result.length === 0) {\n return null;\n }\n\n return result;\n }\n\n dispatch(v: unknown, opt: { filter?: (axis: IAxis) => boolean }) {\n // get all enable axis\n const axis = this._chart?.getAllComponents().filter(c => {\n if (c.specKey !== 'axes') {\n return false;\n }\n const scale = (<IAxis>c).getScale();\n if (!isDiscrete(scale.type)) {\n return false;\n }\n if (opt?.filter) {\n return opt.filter(<IAxis>c);\n }\n return true;\n }) as IAxis[];\n const dimensionInfo: IDimensionInfo[] = [];\n axis.forEach(a => {\n const info = getDimensionInfoByValue(a as unknown as any, v);\n if (info) {\n dimensionInfo.push(info);\n }\n });\n this._callback.call(null, {\n action: 'enter',\n dimensionInfo\n } as unknown as BaseEventParams);\n return dimensionInfo;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/event/events/dimension/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAY5C,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAEnG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAO,cAAc;IAQzB,YAAY,eAAiC,EAAE,IAAgB;;QAC7D,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,MAAM,GAAG,MAAA,MAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAC,QAAQ,kDAAI,CAAC;IAClE,CAAC;IAED,QAAQ,CAAqB,KAAU,EAAE,OAAiD;;QACxF,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,SAAS,GAAG,OAAO,mCAAI,KAAK,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACzE,CAAC;IACD,UAAU;;QACR,CAAC,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,SAAS,GAAG,OAAO,mCAAI,KAAK,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACzE,CAAC;IAES,sBAAsB,CAAC,CAAS,EAAE,CAAS;;QACnD,MAAM,aAAa,GAAG,MAAA,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,mCAAI,EAAE,CAAC;QAC7E,MAAM,SAAS,GAAG,MAAA,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,mCAAI,EAAE,CAAC;QAErE,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,CAAU,EAAE,GAA0C;;QAE7D,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,MAAM,0CAAE,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;YACtD,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,EAAE;gBACxB,OAAO,KAAK,CAAC;aACd;YACD,MAAM,KAAK,GAAW,CAAE,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAC3B,OAAO,KAAK,CAAC;aACd;YACD,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,EAAE;gBACf,OAAO,GAAG,CAAC,MAAM,CAAQ,CAAC,CAAC,CAAC;aAC7B;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAY,CAAC;QACd,MAAM,aAAa,GAAqB,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,MAAM,IAAI,GAAG,uBAAuB,CAAC,CAAmB,EAAE,CAAC,CAAC,CAAC;YAC7D,IAAI,IAAI,EAAE;gBACR,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;YACxB,MAAM,EAAE,OAAO;YACf,aAAa;SACgB,CAAC,CAAC;QACjC,OAAO,aAAa,CAAC;IACvB,CAAC;CACF","file":"base.js","sourcesContent":["import { error } from '../../../util/debug';\nimport type { IAxis } from '../../../component/axis/interface';\nimport type { RenderMode } from '../../../typings/spec/common';\nimport type {\n BaseEventParams,\n EventHandler,\n EventParamsDefinition,\n IComposedEvent,\n IEventDispatcher\n} from '../../interface';\nimport type { IChart } from '../../../chart/interface';\nimport type { IDimensionInfo } from './interface';\nimport { getCartesianDimensionInfo, getDimensionInfoByValue, getPolarDimensionInfo } from './util';\nimport type { Maybe } from '../../../typings';\nimport { isDiscrete } from '@visactor/vscale';\n\nexport class DimensionEvent implements IComposedEvent {\n protected _eventDispatcher: IEventDispatcher;\n protected _mode: RenderMode;\n\n protected _callback!: (params: BaseEventParams) => void;\n\n protected _chart: Maybe<IChart>;\n\n constructor(eventDispatcher: IEventDispatcher, mode: RenderMode) {\n this._eventDispatcher = eventDispatcher;\n this._mode = mode;\n\n this._chart = this._eventDispatcher.globalInstance.getChart?.();\n }\n\n register<Evt extends string>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>): void {\n (this._chart?.getOption().onError ?? error)('Method not implemented.');\n }\n unregister(): void {\n (this._chart?.getOption().onError ?? error)('Method not implemented.');\n }\n\n protected getTargetDimensionInfo(x: number, y: number): IDimensionInfo[] | null {\n const cartesianInfo = getCartesianDimensionInfo(this._chart, { x, y }) ?? [];\n const polarInfo = getPolarDimensionInfo(this._chart, { x, y }) ?? [];\n\n const result = [].concat(cartesianInfo, polarInfo);\n if (result.length === 0) {\n return null;\n }\n\n return result;\n }\n\n dispatch(v: unknown, opt: { filter?: (axis: IAxis) => boolean }) {\n // get all enable axis\n const axis = this._chart?.getAllComponents().filter(c => {\n if (c.specKey !== 'axes') {\n return false;\n }\n const scale = (<IAxis>c).getScale();\n if (!isDiscrete(scale.type)) {\n return false;\n }\n if (opt?.filter) {\n return opt.filter(<IAxis>c);\n }\n return true;\n }) as IAxis[];\n const dimensionInfo: IDimensionInfo[] = [];\n axis.forEach(a => {\n const info = getDimensionInfoByValue(a as unknown as any, v);\n if (info) {\n dimensionInfo.push(info);\n }\n });\n this._callback.call(null, {\n action: 'enter',\n dimensionInfo\n } as unknown as BaseEventParams);\n return dimensionInfo;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { utilFunctionCtx } from './../typings/params';
1
+ import type { utilFunctionCtx } from '../typings/params';
2
2
  import type { IChart } from '../chart/interface/chart';
3
3
  import type { IBoundsLike } from '@visactor/vutils';
4
4
  import type { ILayoutItem } from '../model/interface';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/layout/base-layout.ts"],"names":[],"mappings":"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","file":"base-layout.js","sourcesContent":["import type { utilFunctionCtx } from './../typings/params';\nimport type { IChart } from '../chart/interface/chart';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { ILayoutItem } from '../model/interface';\nimport type { IBaseLayout } from './interface';\nimport type { IPadding, IRect } from '../typings/space';\nimport type { IRegion } from '../region/interface';\nimport { error } from '../util/debug';\n\nexport class Layout implements IBaseLayout {\n protected _leftCurrent: number = 0;\n protected _topCurrent: number = 0;\n protected _rightCurrent: number = 0;\n protected _bottomCurrent: number = 0;\n\n _chartLayoutRect!: IRect;\n _chartViewBox!: IBoundsLike;\n\n protected _onError: (msg: string) => void;\n\n constructor(_spec?: unknown, ctx?: utilFunctionCtx) {\n this._onError = ctx?.onError;\n }\n\n layoutItems(_chart: IChart, items: ILayoutItem[], chartLayoutRect: IRect, chartViewBox: IBoundsLike): void {\n this._chartLayoutRect = chartLayoutRect;\n this._chartViewBox = chartViewBox;\n this._leftCurrent = chartLayoutRect.x;\n this._topCurrent = chartLayoutRect.y;\n this._rightCurrent = chartLayoutRect.x + chartLayoutRect.width;\n this._bottomCurrent = chartLayoutRect.height + chartLayoutRect.y;\n\n // 越大越先处理,进行排序调整,利用原地排序特性,排序会受 level 和传进来的数组顺序共同影响\n items.sort((a, b) => b.layoutLevel - a.layoutLevel);\n\n this.layoutNormalInlineItems(items.filter(x => x.layoutType === 'normal-inline'));\n this.layoutNormalItems(items.filter(x => x.layoutType === 'normal'));\n\n const layoutTemp = {\n _leftCurrent: this._leftCurrent,\n _topCurrent: this._topCurrent,\n _rightCurrent: this._rightCurrent,\n _bottomCurrent: this._bottomCurrent\n };\n const regionItems = items.filter(x => x.layoutType === 'region') as IRegion[];\n const relativeItems = items.filter(x => x.layoutType === 'region-relative');\n // 有元素开启了自动缩进\n // TODO:目前只有普通占位布局下的 region-relative 元素支持\n // 主要考虑常规元素超出画布一般为用户个性设置,而且可以设置padding规避裁剪,不需要使用自动缩进\n this.layoutRegionItems(regionItems, relativeItems);\n if (relativeItems.some(i => i.getAutoIndent())) {\n // check auto indent\n const { top, bottom, left, right } = this._checkAutoIndent(relativeItems);\n // 如果出现了需要自动缩进的场景 则基于缩进再次布局\n if (top || bottom || left || right) {\n // set outer bounds to padding\n this._topCurrent = layoutTemp._topCurrent + top;\n this._bottomCurrent = layoutTemp._bottomCurrent - bottom;\n this._leftCurrent = layoutTemp._leftCurrent + left;\n this._rightCurrent = layoutTemp._rightCurrent - right;\n // reLayout\n this.layoutRegionItems(regionItems, relativeItems);\n }\n }\n\n this.layoutAbsoluteItems(items.filter(x => x.layoutType === 'absolute'));\n }\n\n protected layoutNormalItems(normalItems: ILayoutItem[]): void {\n normalItems.forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n\n if (item.layoutOrient === 'left') {\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: this._topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n this._leftCurrent += rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'top') {\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: this._topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n this._topCurrent += rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n } else if (item.layoutOrient === 'right') {\n item.setLayoutStartPosition({\n x: this._rightCurrent + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: this._topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n this._rightCurrent -= rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'bottom') {\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutOffsetX + item.layoutPaddingRight,\n y: this._bottomCurrent + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n this._bottomCurrent -= rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n }\n });\n }\n\n protected layoutNormalInlineItems(normalItems: ILayoutItem[]): void {\n const leftItems = normalItems.filter(item => item.layoutOrient === 'left');\n const rightItems = normalItems.filter(item => item.layoutOrient === 'right');\n const topItems = normalItems.filter(item => item.layoutOrient === 'top');\n const bottomItems = normalItems.filter(item => item.layoutOrient === 'bottom');\n const limitWidth = this._chartLayoutRect.width + this._chartLayoutRect.x;\n const limitHeight = this._chartLayoutRect.height + this._chartLayoutRect.y;\n\n // 同 normal,按照 left、top、right、bottom 的顺序进行布局\n let maxWidth = 0;\n let preLeft = this._leftCurrent;\n let preTop = this._topCurrent;\n leftItems.forEach((item, index) => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n\n maxWidth = Math.max(maxWidth, itemTotalWidth);\n preTop += itemTotalHeight;\n if (preTop > limitHeight) {\n preLeft += maxWidth;\n maxWidth = itemTotalWidth;\n preTop = this._topCurrent + itemTotalHeight;\n\n item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: this._topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n }\n });\n this._leftCurrent = preLeft + maxWidth;\n\n let maxHeight = 0;\n preLeft = this._leftCurrent;\n preTop = this._topCurrent;\n topItems.forEach((item, index) => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n\n maxHeight = Math.max(maxHeight, itemTotalHeight);\n preLeft += itemTotalWidth;\n if (preLeft > limitWidth) {\n preLeft = this._leftCurrent + itemTotalWidth;\n preTop += maxHeight;\n maxHeight = itemTotalHeight;\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n }\n });\n this._topCurrent = preTop + maxHeight;\n\n maxWidth = 0;\n let preRight = this._rightCurrent;\n preTop = this._topCurrent;\n rightItems.forEach((item, index) => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n item.setLayoutStartPosition({\n x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n\n maxWidth = Math.max(maxWidth, itemTotalWidth);\n preTop += itemTotalHeight;\n if (preTop > limitHeight) {\n preRight -= maxWidth;\n maxWidth = itemTotalWidth;\n preTop = this._topCurrent + itemTotalHeight;\n\n item.setLayoutStartPosition({\n x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: this._topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n }\n });\n this._rightCurrent = preRight - maxWidth;\n\n maxHeight = 0;\n preLeft = this._leftCurrent;\n let preBottom = this._bottomCurrent;\n bottomItems.forEach((item, index) => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n\n maxHeight = Math.max(maxHeight, itemTotalHeight);\n preLeft += itemTotalWidth;\n if (preLeft > limitWidth) {\n preLeft = this._leftCurrent + itemTotalWidth;\n preBottom -= maxHeight;\n maxHeight = itemTotalHeight;\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n }\n });\n this._bottomCurrent = preBottom - maxHeight;\n }\n\n /**\n *\n * 1. 补全 region-relative rect 和部分 layoutStartPoint\n * 2. 补全 region rect 和 layoutStartPoint\n *\n */\n protected layoutRegionItems(regionItems: IRegion[], regionRelativeItems: ILayoutItem[]): void {\n let regionRelativeTotalWidth = this._rightCurrent - this._leftCurrent;\n let regionRelativeTotalHeight = this._bottomCurrent - this._topCurrent;\n\n regionRelativeItems\n .filter(x => x.layoutOrient === 'left' || x.layoutOrient === 'right')\n .forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect({ width: rect.width });\n // 减少尺寸\n if (item.layoutOrient === 'left') {\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft\n });\n this._leftCurrent += rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'right') {\n this._rightCurrent -= rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n item.setLayoutStartPosition({\n x: this._rightCurrent + item.layoutOffsetX + item.layoutPaddingLeft\n });\n }\n });\n\n regionRelativeTotalWidth = this._rightCurrent - this._leftCurrent;\n\n regionRelativeItems\n .filter(x => x.layoutOrient === 'top' || x.layoutOrient === 'bottom')\n .forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect({ height: rect.height });\n\n // 减少尺寸\n if (item.layoutOrient === 'top') {\n item.setLayoutStartPosition({\n y: this._topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n this._topCurrent += rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n } else if (item.layoutOrient === 'bottom') {\n this._bottomCurrent -= rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n item.setLayoutStartPosition({\n y: this._bottomCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n }\n });\n // 此时得到height\n regionRelativeTotalHeight = this._bottomCurrent - this._topCurrent;\n\n // region 处理\n regionItems.forEach(region => {\n region.setLayoutRect({\n width: regionRelativeTotalWidth,\n height: regionRelativeTotalHeight\n });\n\n region.setLayoutStartPosition({\n x: this._leftCurrent + region.layoutOffsetX + region.layoutPaddingLeft,\n y: this._topCurrent + region.layoutOffsetY + region.layoutPaddingTop\n });\n });\n\n // region-relative 特殊处理\n regionRelativeItems.forEach(item => {\n // 处理特殊元素的宽高\n if (['left', 'right'].includes(item.layoutOrient)) {\n // 用户有配置的话,已经处理过,不需要再次处理\n const relativeRegion = this.filterRegionsWithID(regionItems, item.layoutBindRegionID[0]);\n\n item.setLayoutRect({\n height: relativeRegion.getLayoutRect().height\n });\n item.setLayoutStartPosition({\n y: relativeRegion.getLayoutStartPoint().y + item.layoutOffsetY + item.layoutPaddingTop\n });\n } else if (['top', 'bottom'].includes(item.layoutOrient)) {\n const relativeRegion = this.filterRegionsWithID(regionItems, item.layoutBindRegionID[0]);\n\n item.setLayoutRect({\n width: relativeRegion.getLayoutRect().width\n });\n\n item.setLayoutStartPosition({\n x: relativeRegion.getLayoutStartPoint().x + item.layoutOffsetX + item.layoutPaddingLeft\n });\n }\n });\n }\n\n /**\n * 再找出对 absolute 元素,无需排序,在 compiler 层需要排序放置\n *\n * 重要:absolute 默认依据 region 进行相对依赖\n */\n protected layoutAbsoluteItems(absoluteItems: ILayoutItem[]) {\n absoluteItems.forEach(item => {\n // 设置盒子\n item.absoluteLayoutInRect(this._chartLayoutRect);\n });\n }\n\n // 对普通布局来说,只出一个 region 绑定\n filterRegionsWithID(regions: IRegion[], id: number): ILayoutItem {\n const target = regions.find(x => x.id === id);\n if (!target) {\n (this._onError ?? error)('can not find target region item, invalid id');\n }\n return target;\n }\n\n /**\n * 工具方法 根据item属性获取给item提供的布局空间\n * @param item\n */\n protected getItemComputeLayoutRect(item: ILayoutItem) {\n const result = {\n width: this._rightCurrent - this._leftCurrent - item.layoutPaddingLeft - item.layoutPaddingRight,\n height: this._bottomCurrent - this._topCurrent - item.layoutPaddingTop - item.layoutPaddingBottom\n };\n return result;\n }\n\n protected _checkAutoIndent(items: ILayoutItem[]): IPadding {\n const result = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n };\n const rightCurrent = this._chartViewBox.x2 - this._chartViewBox.x1 - this._rightCurrent;\n const bottomCurrent = this._chartViewBox.y2 - this._chartViewBox.y1 - this._bottomCurrent;\n items.forEach(i => {\n if (!i.getVisible() || !i.getAutoIndent()) {\n return;\n }\n const vOrH = i.layoutOrient === 'left' || i.layoutOrient === 'right';\n const outer = i.getLastComputeOutBounds();\n if (vOrH) {\n result.top = Math.max(result.top, outer.y1 - this._topCurrent);\n result.bottom = Math.max(result.bottom, outer.y2 - bottomCurrent);\n } else {\n result.left = Math.max(result.left, outer.x1 - this._leftCurrent);\n result.right = Math.max(result.right, outer.x2 - rightCurrent);\n }\n });\n return result;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/layout/base-layout.ts"],"names":[],"mappings":"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","file":"base-layout.js","sourcesContent":["import type { utilFunctionCtx } from '../typings/params';\nimport type { IChart } from '../chart/interface/chart';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { ILayoutItem } from '../model/interface';\nimport type { IBaseLayout } from './interface';\nimport type { IPadding, IRect } from '../typings/space';\nimport type { IRegion } from '../region/interface';\nimport { error } from '../util/debug';\n\nexport class Layout implements IBaseLayout {\n protected _leftCurrent: number = 0;\n protected _topCurrent: number = 0;\n protected _rightCurrent: number = 0;\n protected _bottomCurrent: number = 0;\n\n _chartLayoutRect!: IRect;\n _chartViewBox!: IBoundsLike;\n\n protected _onError: (msg: string) => void;\n\n constructor(_spec?: unknown, ctx?: utilFunctionCtx) {\n this._onError = ctx?.onError;\n }\n\n layoutItems(_chart: IChart, items: ILayoutItem[], chartLayoutRect: IRect, chartViewBox: IBoundsLike): void {\n this._chartLayoutRect = chartLayoutRect;\n this._chartViewBox = chartViewBox;\n this._leftCurrent = chartLayoutRect.x;\n this._topCurrent = chartLayoutRect.y;\n this._rightCurrent = chartLayoutRect.x + chartLayoutRect.width;\n this._bottomCurrent = chartLayoutRect.height + chartLayoutRect.y;\n\n // 越大越先处理,进行排序调整,利用原地排序特性,排序会受 level 和传进来的数组顺序共同影响\n items.sort((a, b) => b.layoutLevel - a.layoutLevel);\n\n this.layoutNormalInlineItems(items.filter(x => x.layoutType === 'normal-inline'));\n this.layoutNormalItems(items.filter(x => x.layoutType === 'normal'));\n\n const layoutTemp = {\n _leftCurrent: this._leftCurrent,\n _topCurrent: this._topCurrent,\n _rightCurrent: this._rightCurrent,\n _bottomCurrent: this._bottomCurrent\n };\n const regionItems = items.filter(x => x.layoutType === 'region') as IRegion[];\n const relativeItems = items.filter(x => x.layoutType === 'region-relative');\n // 有元素开启了自动缩进\n // TODO:目前只有普通占位布局下的 region-relative 元素支持\n // 主要考虑常规元素超出画布一般为用户个性设置,而且可以设置padding规避裁剪,不需要使用自动缩进\n this.layoutRegionItems(regionItems, relativeItems);\n if (relativeItems.some(i => i.getAutoIndent())) {\n // check auto indent\n const { top, bottom, left, right } = this._checkAutoIndent(relativeItems);\n // 如果出现了需要自动缩进的场景 则基于缩进再次布局\n if (top || bottom || left || right) {\n // set outer bounds to padding\n this._topCurrent = layoutTemp._topCurrent + top;\n this._bottomCurrent = layoutTemp._bottomCurrent - bottom;\n this._leftCurrent = layoutTemp._leftCurrent + left;\n this._rightCurrent = layoutTemp._rightCurrent - right;\n // reLayout\n this.layoutRegionItems(regionItems, relativeItems);\n }\n }\n\n this.layoutAbsoluteItems(items.filter(x => x.layoutType === 'absolute'));\n }\n\n protected layoutNormalItems(normalItems: ILayoutItem[]): void {\n normalItems.forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n\n if (item.layoutOrient === 'left') {\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: this._topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n this._leftCurrent += rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'top') {\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: this._topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n this._topCurrent += rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n } else if (item.layoutOrient === 'right') {\n item.setLayoutStartPosition({\n x: this._rightCurrent + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: this._topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n this._rightCurrent -= rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'bottom') {\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutOffsetX + item.layoutPaddingRight,\n y: this._bottomCurrent + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n this._bottomCurrent -= rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n }\n });\n }\n\n protected layoutNormalInlineItems(normalItems: ILayoutItem[]): void {\n const leftItems = normalItems.filter(item => item.layoutOrient === 'left');\n const rightItems = normalItems.filter(item => item.layoutOrient === 'right');\n const topItems = normalItems.filter(item => item.layoutOrient === 'top');\n const bottomItems = normalItems.filter(item => item.layoutOrient === 'bottom');\n const limitWidth = this._chartLayoutRect.width + this._chartLayoutRect.x;\n const limitHeight = this._chartLayoutRect.height + this._chartLayoutRect.y;\n\n // 同 normal,按照 left、top、right、bottom 的顺序进行布局\n let maxWidth = 0;\n let preLeft = this._leftCurrent;\n let preTop = this._topCurrent;\n leftItems.forEach((item, index) => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n\n maxWidth = Math.max(maxWidth, itemTotalWidth);\n preTop += itemTotalHeight;\n if (preTop > limitHeight) {\n preLeft += maxWidth;\n maxWidth = itemTotalWidth;\n preTop = this._topCurrent + itemTotalHeight;\n\n item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: this._topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n }\n });\n this._leftCurrent = preLeft + maxWidth;\n\n let maxHeight = 0;\n preLeft = this._leftCurrent;\n preTop = this._topCurrent;\n topItems.forEach((item, index) => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n\n maxHeight = Math.max(maxHeight, itemTotalHeight);\n preLeft += itemTotalWidth;\n if (preLeft > limitWidth) {\n preLeft = this._leftCurrent + itemTotalWidth;\n preTop += maxHeight;\n maxHeight = itemTotalHeight;\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n }\n });\n this._topCurrent = preTop + maxHeight;\n\n maxWidth = 0;\n let preRight = this._rightCurrent;\n preTop = this._topCurrent;\n rightItems.forEach((item, index) => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n item.setLayoutStartPosition({\n x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: preTop + item.layoutOffsetY + item.layoutPaddingTop\n });\n\n maxWidth = Math.max(maxWidth, itemTotalWidth);\n preTop += itemTotalHeight;\n if (preTop > limitHeight) {\n preRight -= maxWidth;\n maxWidth = itemTotalWidth;\n preTop = this._topCurrent + itemTotalHeight;\n\n item.setLayoutStartPosition({\n x: preRight + item.layoutOffsetX - rect.width - item.layoutPaddingRight,\n y: this._topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n }\n });\n this._rightCurrent = preRight - maxWidth;\n\n maxHeight = 0;\n preLeft = this._leftCurrent;\n let preBottom = this._bottomCurrent;\n bottomItems.forEach((item, index) => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n const itemTotalHeight = rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n const itemTotalWidth = rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n item.setLayoutStartPosition({\n x: preLeft + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n\n maxHeight = Math.max(maxHeight, itemTotalHeight);\n preLeft += itemTotalWidth;\n if (preLeft > limitWidth) {\n preLeft = this._leftCurrent + itemTotalWidth;\n preBottom -= maxHeight;\n maxHeight = itemTotalHeight;\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft,\n y: preBottom + item.layoutOffsetY - rect.height - item.layoutPaddingBottom\n });\n }\n });\n this._bottomCurrent = preBottom - maxHeight;\n }\n\n /**\n *\n * 1. 补全 region-relative rect 和部分 layoutStartPoint\n * 2. 补全 region rect 和 layoutStartPoint\n *\n */\n protected layoutRegionItems(regionItems: IRegion[], regionRelativeItems: ILayoutItem[]): void {\n let regionRelativeTotalWidth = this._rightCurrent - this._leftCurrent;\n let regionRelativeTotalHeight = this._bottomCurrent - this._topCurrent;\n\n regionRelativeItems\n .filter(x => x.layoutOrient === 'left' || x.layoutOrient === 'right')\n .forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect({ width: rect.width });\n // 减少尺寸\n if (item.layoutOrient === 'left') {\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft\n });\n this._leftCurrent += rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'right') {\n this._rightCurrent -= rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n item.setLayoutStartPosition({\n x: this._rightCurrent + item.layoutOffsetX + item.layoutPaddingLeft\n });\n }\n });\n\n regionRelativeTotalWidth = this._rightCurrent - this._leftCurrent;\n\n regionRelativeItems\n .filter(x => x.layoutOrient === 'top' || x.layoutOrient === 'bottom')\n .forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect({ height: rect.height });\n\n // 减少尺寸\n if (item.layoutOrient === 'top') {\n item.setLayoutStartPosition({\n y: this._topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n this._topCurrent += rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n } else if (item.layoutOrient === 'bottom') {\n this._bottomCurrent -= rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n item.setLayoutStartPosition({\n y: this._bottomCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n }\n });\n // 此时得到height\n regionRelativeTotalHeight = this._bottomCurrent - this._topCurrent;\n\n // region 处理\n regionItems.forEach(region => {\n region.setLayoutRect({\n width: regionRelativeTotalWidth,\n height: regionRelativeTotalHeight\n });\n\n region.setLayoutStartPosition({\n x: this._leftCurrent + region.layoutOffsetX + region.layoutPaddingLeft,\n y: this._topCurrent + region.layoutOffsetY + region.layoutPaddingTop\n });\n });\n\n // region-relative 特殊处理\n regionRelativeItems.forEach(item => {\n // 处理特殊元素的宽高\n if (['left', 'right'].includes(item.layoutOrient)) {\n // 用户有配置的话,已经处理过,不需要再次处理\n const relativeRegion = this.filterRegionsWithID(regionItems, item.layoutBindRegionID[0]);\n\n item.setLayoutRect({\n height: relativeRegion.getLayoutRect().height\n });\n item.setLayoutStartPosition({\n y: relativeRegion.getLayoutStartPoint().y + item.layoutOffsetY + item.layoutPaddingTop\n });\n } else if (['top', 'bottom'].includes(item.layoutOrient)) {\n const relativeRegion = this.filterRegionsWithID(regionItems, item.layoutBindRegionID[0]);\n\n item.setLayoutRect({\n width: relativeRegion.getLayoutRect().width\n });\n\n item.setLayoutStartPosition({\n x: relativeRegion.getLayoutStartPoint().x + item.layoutOffsetX + item.layoutPaddingLeft\n });\n }\n });\n }\n\n /**\n * 再找出对 absolute 元素,无需排序,在 compiler 层需要排序放置\n *\n * 重要:absolute 默认依据 region 进行相对依赖\n */\n protected layoutAbsoluteItems(absoluteItems: ILayoutItem[]) {\n absoluteItems.forEach(item => {\n // 设置盒子\n item.absoluteLayoutInRect(this._chartLayoutRect);\n });\n }\n\n // 对普通布局来说,只出一个 region 绑定\n filterRegionsWithID(regions: IRegion[], id: number): ILayoutItem {\n const target = regions.find(x => x.id === id);\n if (!target) {\n (this._onError ?? error)('can not find target region item, invalid id');\n }\n return target;\n }\n\n /**\n * 工具方法 根据item属性获取给item提供的布局空间\n * @param item\n */\n protected getItemComputeLayoutRect(item: ILayoutItem) {\n const result = {\n width: this._rightCurrent - this._leftCurrent - item.layoutPaddingLeft - item.layoutPaddingRight,\n height: this._bottomCurrent - this._topCurrent - item.layoutPaddingTop - item.layoutPaddingBottom\n };\n return result;\n }\n\n protected _checkAutoIndent(items: ILayoutItem[]): IPadding {\n const result = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n };\n const rightCurrent = this._chartViewBox.x2 - this._chartViewBox.x1 - this._rightCurrent;\n const bottomCurrent = this._chartViewBox.y2 - this._chartViewBox.y1 - this._bottomCurrent;\n items.forEach(i => {\n if (!i.getVisible() || !i.getAutoIndent()) {\n return;\n }\n const vOrH = i.layoutOrient === 'left' || i.layoutOrient === 'right';\n const outer = i.getLastComputeOutBounds();\n if (vOrH) {\n result.top = Math.max(result.top, outer.y1 - this._topCurrent);\n result.bottom = Math.max(result.bottom, outer.y2 - bottomCurrent);\n } else {\n result.left = Math.max(result.left, outer.x1 - this._leftCurrent);\n result.right = Math.max(result.right, outer.x2 - rightCurrent);\n }\n });\n return result;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { utilFunctionCtx } from './../../typings/params';
1
+ import type { utilFunctionCtx } from '../../typings/params';
2
2
  import type { IChart } from '../../chart/interface/chart';
3
3
  import type { IBoundsLike } from '@visactor/vutils';
4
4
  import type { ILayoutItem } from '../../model/interface';