@visactor/vchart 1.10.0-alpha.0 → 1.10.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/build/es5/index.js +1 -1
  2. package/build/index.js +274 -169
  3. package/build/index.min.js +1 -1
  4. package/build/tsconfig.tsbuildinfo +1 -1
  5. package/cjs/chart/stack.js +2 -1
  6. package/cjs/compile/grammar-item.js +1 -2
  7. package/cjs/component/axis/cartesian/axis.js +4 -4
  8. package/cjs/component/axis/cartesian/axis.js.map +1 -1
  9. package/cjs/component/axis/interface/spec.d.ts +6 -5
  10. package/cjs/component/axis/interface/spec.js.map +1 -1
  11. package/cjs/component/axis/polar/axis.js +9 -17
  12. package/cjs/component/axis/polar/axis.js.map +1 -1
  13. package/cjs/component/axis/polar/util/common.d.ts +5 -1
  14. package/cjs/component/axis/polar/util/common.js +8 -4
  15. package/cjs/component/axis/polar/util/common.js.map +1 -1
  16. package/cjs/component/brush/brush.d.ts +3 -0
  17. package/cjs/component/brush/brush.js +33 -5
  18. package/cjs/component/brush/brush.js.map +1 -1
  19. package/cjs/component/brush/interface.d.ts +3 -0
  20. package/cjs/component/brush/interface.js.map +1 -1
  21. package/cjs/component/data-zoom/data-filter-base-component.d.ts +4 -1
  22. package/cjs/component/data-zoom/data-filter-base-component.js +17 -6
  23. package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
  24. package/cjs/component/data-zoom/data-zoom/data-zoom.js +6 -5
  25. package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  26. package/cjs/component/data-zoom/data-zoom/interface.d.ts +2 -0
  27. package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
  28. package/cjs/component/data-zoom/util.js +5 -1
  29. package/cjs/component/data-zoom/util.js.map +1 -1
  30. package/cjs/component/indicator/indicator.js.map +1 -1
  31. package/cjs/component/indicator/interface.d.ts +5 -5
  32. package/cjs/component/indicator/interface.js.map +1 -1
  33. package/cjs/component/label/base-label.d.ts +4 -4
  34. package/cjs/component/label/interface.d.ts +8 -6
  35. package/cjs/component/label/interface.js.map +1 -1
  36. package/cjs/component/label/util.d.ts +1 -1
  37. package/cjs/component/label/util.js +11 -4
  38. package/cjs/component/label/util.js.map +1 -1
  39. package/cjs/component/legend/discrete/interface.d.ts +2 -2
  40. package/cjs/component/legend/discrete/interface.js.map +1 -1
  41. package/cjs/component/marker/interface.d.ts +6 -6
  42. package/cjs/component/marker/interface.js.map +1 -1
  43. package/cjs/component/marker/mark-area/interface/theme.d.ts +1 -1
  44. package/cjs/component/marker/mark-area/interface/theme.js.map +1 -1
  45. package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
  46. package/cjs/component/marker/mark-line/interface/theme.d.ts +1 -1
  47. package/cjs/component/marker/mark-line/interface/theme.js.map +1 -1
  48. package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
  49. package/cjs/component/marker/mark-point/interface/theme.d.ts +1 -1
  50. package/cjs/component/marker/mark-point/interface/theme.js.map +1 -1
  51. package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
  52. package/cjs/component/player/utils/transform.js +2 -2
  53. package/cjs/component/player/utils/transform.js.map +1 -1
  54. package/cjs/component/title/interface/spec.d.ts +7 -18
  55. package/cjs/component/title/interface/spec.js.map +1 -1
  56. package/cjs/core/index.d.ts +1 -1
  57. package/cjs/core/index.js +1 -1
  58. package/cjs/core/index.js.map +1 -1
  59. package/cjs/data/transforms/pie.js +4 -4
  60. package/cjs/data/transforms/pie.js.map +1 -1
  61. package/cjs/mark/label.d.ts +2 -2
  62. package/cjs/mark/label.js.map +1 -1
  63. package/cjs/mark/text.d.ts +7 -16
  64. package/cjs/mark/text.js +6 -12
  65. package/cjs/mark/text.js.map +1 -1
  66. package/cjs/series/circle-packing/circle-packing.js.map +1 -1
  67. package/cjs/series/dot/interface.d.ts +2 -2
  68. package/cjs/series/dot/interface.js.map +1 -1
  69. package/cjs/series/funnel/funnel.js.map +1 -1
  70. package/cjs/series/funnel/interface.d.ts +4 -6
  71. package/cjs/series/funnel/interface.js.map +1 -1
  72. package/cjs/series/line/interface.d.ts +1 -1
  73. package/cjs/series/line/interface.js.map +1 -1
  74. package/cjs/series/map/interface.d.ts +5 -2
  75. package/cjs/series/map/interface.js.map +1 -1
  76. package/cjs/series/pie/interface.d.ts +2 -3
  77. package/cjs/series/pie/interface.js.map +1 -1
  78. package/cjs/series/range-column/interface.d.ts +5 -5
  79. package/cjs/series/range-column/interface.js.map +1 -1
  80. package/cjs/series/sankey/sankey.js.map +1 -1
  81. package/cjs/series/sunburst/sunburst.js.map +1 -1
  82. package/cjs/series/treemap/interface.d.ts +2 -3
  83. package/cjs/series/treemap/interface.js.map +1 -1
  84. package/cjs/series/treemap/treemap.js +0 -10
  85. package/cjs/series/treemap/treemap.js.map +1 -1
  86. package/cjs/series/word-cloud/config.js +1 -1
  87. package/cjs/series/word-cloud/config.js.map +1 -1
  88. package/cjs/series/word-cloud/interface.d.ts +6 -2
  89. package/cjs/series/word-cloud/interface.js.map +1 -1
  90. package/cjs/typings/spec/common.d.ts +7 -16
  91. package/cjs/typings/spec/common.js.map +1 -1
  92. package/cjs/typings/tooltip/line.js.map +1 -1
  93. package/cjs/typings/visual.d.ts +5 -10
  94. package/cjs/typings/visual.js.map +1 -1
  95. package/cjs/util/math.d.ts +1 -0
  96. package/cjs/util/math.js +18 -2
  97. package/cjs/util/math.js.map +1 -1
  98. package/esm/chart/stack.js +2 -1
  99. package/esm/compile/grammar-item.js +1 -2
  100. package/esm/component/axis/cartesian/axis.js +1 -1
  101. package/esm/component/axis/cartesian/axis.js.map +1 -1
  102. package/esm/component/axis/interface/spec.d.ts +6 -5
  103. package/esm/component/axis/interface/spec.js.map +1 -1
  104. package/esm/component/axis/polar/axis.js +9 -18
  105. package/esm/component/axis/polar/axis.js.map +1 -1
  106. package/esm/component/axis/polar/util/common.d.ts +5 -1
  107. package/esm/component/axis/polar/util/common.js +12 -4
  108. package/esm/component/axis/polar/util/common.js.map +1 -1
  109. package/esm/component/brush/brush.d.ts +3 -0
  110. package/esm/component/brush/brush.js +31 -5
  111. package/esm/component/brush/brush.js.map +1 -1
  112. package/esm/component/brush/interface.d.ts +3 -0
  113. package/esm/component/brush/interface.js.map +1 -1
  114. package/esm/component/data-zoom/data-filter-base-component.d.ts +4 -1
  115. package/esm/component/data-zoom/data-filter-base-component.js +17 -6
  116. package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
  117. package/esm/component/data-zoom/data-zoom/data-zoom.js +7 -6
  118. package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
  119. package/esm/component/data-zoom/data-zoom/interface.d.ts +2 -0
  120. package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
  121. package/esm/component/data-zoom/util.js +5 -1
  122. package/esm/component/data-zoom/util.js.map +1 -1
  123. package/esm/component/indicator/indicator.js.map +1 -1
  124. package/esm/component/indicator/interface.d.ts +5 -5
  125. package/esm/component/indicator/interface.js.map +1 -1
  126. package/esm/component/label/base-label.d.ts +4 -4
  127. package/esm/component/label/interface.d.ts +8 -6
  128. package/esm/component/label/interface.js.map +1 -1
  129. package/esm/component/label/util.d.ts +1 -1
  130. package/esm/component/label/util.js +9 -7
  131. package/esm/component/label/util.js.map +1 -1
  132. package/esm/component/legend/discrete/interface.d.ts +2 -2
  133. package/esm/component/legend/discrete/interface.js.map +1 -1
  134. package/esm/component/marker/interface.d.ts +6 -6
  135. package/esm/component/marker/interface.js.map +1 -1
  136. package/esm/component/marker/mark-area/interface/theme.d.ts +1 -1
  137. package/esm/component/marker/mark-area/interface/theme.js.map +1 -1
  138. package/esm/component/marker/mark-area/mark-area.js.map +1 -1
  139. package/esm/component/marker/mark-line/interface/theme.d.ts +1 -1
  140. package/esm/component/marker/mark-line/interface/theme.js.map +1 -1
  141. package/esm/component/marker/mark-line/mark-line.js.map +1 -1
  142. package/esm/component/marker/mark-point/interface/theme.d.ts +1 -1
  143. package/esm/component/marker/mark-point/interface/theme.js.map +1 -1
  144. package/esm/component/marker/mark-point/mark-point.js.map +1 -1
  145. package/esm/component/player/utils/transform.js +2 -2
  146. package/esm/component/player/utils/transform.js.map +1 -1
  147. package/esm/component/title/interface/spec.d.ts +7 -18
  148. package/esm/component/title/interface/spec.js.map +1 -1
  149. package/esm/core/index.d.ts +1 -1
  150. package/esm/core/index.js +1 -1
  151. package/esm/core/index.js.map +1 -1
  152. package/esm/data/transforms/pie.js +5 -5
  153. package/esm/data/transforms/pie.js.map +1 -1
  154. package/esm/mark/label.d.ts +2 -2
  155. package/esm/mark/label.js.map +1 -1
  156. package/esm/mark/text.d.ts +7 -16
  157. package/esm/mark/text.js +7 -13
  158. package/esm/mark/text.js.map +1 -1
  159. package/esm/series/circle-packing/circle-packing.js.map +1 -1
  160. package/esm/series/dot/interface.d.ts +2 -2
  161. package/esm/series/dot/interface.js.map +1 -1
  162. package/esm/series/funnel/funnel.js.map +1 -1
  163. package/esm/series/funnel/interface.d.ts +4 -6
  164. package/esm/series/funnel/interface.js.map +1 -1
  165. package/esm/series/line/interface.d.ts +1 -1
  166. package/esm/series/line/interface.js.map +1 -1
  167. package/esm/series/map/interface.d.ts +5 -2
  168. package/esm/series/map/interface.js.map +1 -1
  169. package/esm/series/pie/interface.d.ts +2 -3
  170. package/esm/series/pie/interface.js.map +1 -1
  171. package/esm/series/range-column/interface.d.ts +5 -5
  172. package/esm/series/range-column/interface.js.map +1 -1
  173. package/esm/series/sankey/sankey.js.map +1 -1
  174. package/esm/series/sunburst/sunburst.js.map +1 -1
  175. package/esm/series/treemap/interface.d.ts +2 -3
  176. package/esm/series/treemap/interface.js.map +1 -1
  177. package/esm/series/treemap/treemap.js +0 -8
  178. package/esm/series/treemap/treemap.js.map +1 -1
  179. package/esm/series/word-cloud/config.js +1 -1
  180. package/esm/series/word-cloud/config.js.map +1 -1
  181. package/esm/series/word-cloud/interface.d.ts +6 -2
  182. package/esm/series/word-cloud/interface.js.map +1 -1
  183. package/esm/typings/spec/common.d.ts +7 -16
  184. package/esm/typings/spec/common.js.map +1 -1
  185. package/esm/typings/tooltip/line.js.map +1 -1
  186. package/esm/typings/visual.d.ts +5 -10
  187. package/esm/typings/visual.js.map +1 -1
  188. package/esm/util/math.d.ts +1 -0
  189. package/esm/util/math.js +16 -0
  190. package/esm/util/math.js.map +1 -1
  191. package/package.json +14 -14
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/marker/mark-area/mark-area.ts"],"names":[],"mappings":"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","file":"mark-area.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IMarkArea, IMarkAreaSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport type { IOptionAggr } from '../../../data/transforms/aggregation';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { computeClipRange, coordinateLayout, positionLayout, xyLayout, transformLabelAttributes } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { MarkAreaAttrs } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkArea as MarkAreaComponent } from '@visactor/vrender-components';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEmpty, isValid, isArray } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport { BaseMarker } from '../base-marker';\nimport { LayoutZIndex } from '../../../constant';\nimport type { IGroup } from '@visactor/vrender-core';\nimport { Factory } from '../../../core/factory';\nimport type { IPoint } from '../../../typings';\nimport type { IModelSpecInfo } from '../../../model/interface';\nimport { markerFilter } from '../../../data/transforms/marker-filter';\n\nexport class MarkArea extends BaseMarker<IMarkAreaSpec> implements IMarkArea {\n static type = ComponentTypeEnum.markArea;\n type = ComponentTypeEnum.markArea;\n name: string = ComponentTypeEnum.markArea;\n\n static specKey = 'markArea';\n specKey = 'markArea';\n\n layoutZIndex: number = LayoutZIndex.MarkArea;\n\n // markArea组件\n protected declare _markerComponent: MarkAreaComponent;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const markAreaSpec = chartSpec[this.specKey];\n if (isEmpty(markAreaSpec)) {\n return undefined;\n }\n if (!isArray(markAreaSpec) && markAreaSpec.visible !== false) {\n return [\n {\n spec: markAreaSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.markArea\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n markAreaSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n specInfos.push({\n spec: m,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.markArea\n });\n }\n });\n return specInfos;\n }\n\n protected _createMarkerComponent() {\n const label = this._spec.label ?? {};\n const markAreaAttrs: MarkAreaAttrs = {\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n points: [\n {\n x: 0,\n y: 0\n }\n ],\n areaStyle: transformToGraphic(this._spec.area?.style),\n clipInRange: this._spec.clip ?? false,\n label: transformLabelAttributes(label)\n };\n\n const markArea = new MarkAreaComponent(markAreaAttrs);\n return markArea as unknown as IGroup;\n }\n\n protected _markerLayout() {\n const spec = this._spec as any;\n const data = this._markerData;\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n const relativeSeries = this._relativeSeries;\n\n const isXLayout = isValid(spec.x) && isValid(spec.x1);\n const isYLayout = isValid(spec.y) && isValid(spec.y1);\n const isXYLayout = isXLayout && isYLayout;\n const isCoordinateLayout = isValid(spec.coordinates);\n const isPositionLayout = isValid(spec.positions);\n const autoRange = spec.autoRange ?? false;\n\n let points: IPoint[] = [];\n let lines: IPoint[][] = [];\n if (isXYLayout) {\n lines = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n // 格式为 [[{x, y}], [{x, y}]]\n // 顺序为左下角开始逆时针绘制\n const [start, end] = lines;\n if (start && start.length && end && end.length) {\n points = [\n {\n x: start[0].x,\n y: end[0].y\n },\n start[0],\n {\n x: end[0].x,\n y: start[0].y\n },\n end[0]\n ];\n }\n } else if (isXLayout || isYLayout) {\n lines = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n const [start, end] = lines;\n if (start && start.length && end && end.length) {\n points = [...start, end[1], end[0]];\n }\n } else if (isCoordinateLayout) {\n points = coordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset);\n } else if (isPositionLayout) {\n points = positionLayout(spec.positions, relativeSeries, spec.regionRelative);\n }\n\n const seriesData = this._relativeSeries.getViewData().latestData;\n const dataPoints = data\n ? data.latestData[0] && data.latestData[0].latestData\n ? data.latestData[0].latestData\n : data.latestData\n : seriesData;\n\n let limitRect;\n if (spec.clip || spec.label?.confine) {\n const { minX, maxX, minY, maxY } = computeClipRange([\n startRelativeSeries.getRegion(),\n endRelativeSeries.getRegion(),\n relativeSeries.getRegion()\n ]);\n limitRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n\n if (this._markerComponent) {\n this._markerComponent.setAttributes({\n points: points,\n label: {\n ...this._markerComponent.attribute?.label,\n text: this._spec.label.formatMethod\n ? // type error here will be fixed in components\n (this._spec.label.formatMethod(dataPoints, seriesData) as any)\n : this._markerComponent.attribute?.label?.text\n },\n limitRect,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n });\n }\n }\n\n protected _initDataView(): void {\n const spec = this._spec as any;\n const relativeSeries = this._relativeSeries;\n const isXProcess = isValid(spec.x) && isValid(spec.x1);\n const isYProcess = isValid(spec.y) && isValid(spec.y1);\n const isXYProcess = isXProcess && isYProcess;\n const isCoordinateProcess = isValid(spec.coordinates);\n if (!isXProcess && !isYProcess && !isCoordinateProcess) {\n return null;\n }\n let options: IOptionAggr[];\n if (isXYProcess) {\n options = [this._processSpecXY(spec.x, spec.y), this._processSpecXY(spec.x1, spec.y1)];\n } else if (isXProcess) {\n options = [this._processSpecX(spec.x), this._processSpecX(spec.x1)];\n } else if (isYProcess) {\n options = [this._processSpecY(spec.y), this._processSpecY(spec.y1)];\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n }\n\n const seriesData = relativeSeries.getViewData();\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n registerDataSetInstanceTransform(this._option.dataSet, 'markerFilter', markerFilter);\n const data = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` });\n data.parse([seriesData], {\n type: 'dataview'\n });\n data.transform({\n type: 'markerAggregation',\n options\n });\n\n if (options) {\n data.transform({\n type: 'markerFilter',\n options: this._getAllRelativeSeries()\n });\n }\n\n data.target.on('change', () => {\n this._markerLayout();\n });\n this._markerData = data;\n }\n}\n\nexport const registerMarkArea = () => {\n Factory.registerComponent(MarkArea.type, MarkArea);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/marker/mark-area/mark-area.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAE9C,+CAAyD;AAGzD,sEAAyE;AACzE,oCAAkH;AAClH,qDAA0E;AAG1E,qEAA6E;AAG7E,6CAA6D;AAC7D,+CAAyD;AACzD,gDAA4C;AAC5C,gDAAiD;AAEjD,mDAAgD;AAGhD,0EAAsE;AAEtE,MAAa,QAAS,SAAQ,wBAAyB;IAAvD;;QAEE,SAAI,GAAG,wBAAiB,CAAC,QAAQ,CAAC;QAClC,SAAI,GAAW,wBAAiB,CAAC,QAAQ,CAAC;QAG1C,YAAO,GAAG,UAAU,CAAC;QAErB,iBAAY,GAAW,uBAAY,CAAC,QAAQ,CAAC;IAwL/C,CAAC;IAnLC,MAAM,CAAC,WAAW,CAAC,SAAc;QAC/B,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,IAAA,gBAAO,EAAC,YAAY,CAAC,EAAE;YACzB,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,CAAC,IAAA,gBAAO,EAAC,YAAY,CAAC,IAAI,YAAY,CAAC,OAAO,KAAK,KAAK,EAAE;YAC5D,OAAO;gBACL;oBACE,IAAI,EAAE,YAAY;oBAClB,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;oBACxB,YAAY,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC5C,IAAI,EAAE,wBAAiB,CAAC,QAAQ;iBACjC;aACF,CAAC;SACH;QACD,MAAM,SAAS,GAAqB,EAAE,CAAC;QACvC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,CAAS,EAAE,EAAE;YACzC,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,EAAE;gBACvB,SAAS,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,CAAC;oBACP,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC3B,YAAY,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC5C,IAAI,EAAE,wBAAiB,CAAC,QAAQ;iBACjC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,sBAAsB;;QAC9B,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,mCAAI,EAAE,CAAC;QACrC,MAAM,aAAa,GAAkB;YACnC,MAAM,EAAE,IAAI,CAAC,YAAY;YACzB,WAAW,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,mCAAI,KAAK;YAC5C,MAAM,EAAE;gBACN;oBACE,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,CAAC;iBACL;aACF;YACD,SAAS,EAAE,IAAA,0BAAkB,EAAC,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,KAAK,CAAC;YACrD,WAAW,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,mCAAI,KAAK;YACrC,KAAK,EAAE,IAAA,gCAAwB,EAAC,KAAK,CAAC;SACvC,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,6BAAiB,CAAC,aAAa,CAAC,CAAC;QACtD,OAAO,QAA6B,CAAC;IACvC,CAAC;IAES,aAAa;;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAY,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9B,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtD,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAE5C,MAAM,SAAS,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,SAAS,IAAI,SAAS,CAAC;QAC1C,MAAM,kBAAkB,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,gBAAgB,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,mCAAI,KAAK,CAAC;QAE1C,IAAI,MAAM,GAAa,EAAE,CAAC;QAC1B,IAAI,KAAK,GAAe,EAAE,CAAC;QAC3B,IAAI,UAAU,EAAE;YACd,KAAK,GAAG,IAAA,gBAAQ,EAAC,IAAI,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;YAG1F,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;YAC3B,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE;gBAC9C,MAAM,GAAG;oBACP;wBACE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBACb,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;qBACZ;oBACD,KAAK,CAAC,CAAC,CAAC;oBACR;wBACE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBACX,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;qBACd;oBACD,GAAG,CAAC,CAAC,CAAC;iBACP,CAAC;aACH;SACF;aAAM,IAAI,SAAS,IAAI,SAAS,EAAE;YACjC,KAAK,GAAG,IAAA,gBAAQ,EAAC,IAAI,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;YAC1F,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;YAC3B,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE;gBAC9C,MAAM,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aACrC;SACF;aAAM,IAAI,kBAAkB,EAAE;YAC7B,MAAM,GAAG,IAAA,wBAAgB,EAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACpF;aAAM,IAAI,gBAAgB,EAAE;YAC3B,MAAM,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SAC9E;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC;QACjE,MAAM,UAAU,GAAG,IAAI;YACrB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU;gBACnD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU;gBAC/B,CAAC,CAAC,IAAI,CAAC,UAAU;YACnB,CAAC,CAAC,UAAU,CAAC;QAEf,IAAI,SAAS,CAAC;QACd,IAAI,IAAI,CAAC,IAAI,KAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,CAAA,EAAE;YACpC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAA,wBAAgB,EAAC;gBAClD,mBAAmB,CAAC,SAAS,EAAE;gBAC/B,iBAAiB,CAAC,SAAS,EAAE;gBAC7B,cAAc,CAAC,SAAS,EAAE;aAC3B,CAAC,CAAC;YACH,SAAS,GAAG;gBACV,CAAC,EAAE,IAAI;gBACP,CAAC,EAAE,IAAI;gBACP,KAAK,EAAE,IAAI,GAAG,IAAI;gBAClB,MAAM,EAAE,IAAI,GAAG,IAAI;aACpB,CAAC;SACH;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;gBAClC,MAAM,EAAE,MAAM;gBACd,KAAK,kCACA,MAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,0CAAE,KAAK,KACzC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY;wBACjC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC;wBACvD,CAAC,CAAE,MAAA,MAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,0CAAE,KAAK,0CAAE,IAAY,GAC1D;gBACD,SAAS;gBACT,EAAE,EAAE,IAAI,CAAC,cAAc;gBACvB,EAAE,EAAE,IAAI,CAAC,cAAc;aACxB,CAAC,CAAC;SACJ;IACH,CAAC;IAES,aAAa;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAY,CAAC;QAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,UAAU,IAAI,UAAU,CAAC;QAC7C,MAAM,mBAAmB,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,IAAI,CAAC,mBAAmB,EAAE;YACtD,OAAO,IAAI,CAAC;SACb;QACD,IAAI,OAAsB,CAAC;QAC3B,IAAI,WAAW,EAAE;YACf,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SACxF;aAAM,IAAI,UAAU,EAAE;YACrB,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SACrE;aAAM,IAAI,UAAU,EAAE;YACrB,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SACrE;aAAM,IAAI,mBAAmB,EAAE;YAC9B,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SACtC;QAED,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;QAChD,IAAA,2CAAgC,EAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,EAAE,+BAAiB,CAAC,CAAC;QAC/F,IAAA,2CAAgC,EAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,4BAAY,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,EAAE;YACvB,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,mBAAmB;YACzB,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE;aACtC,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;;AA/LH,4BAgMC;AA/LQ,aAAI,GAAG,wBAAiB,CAAC,QAAQ,CAAC;AAIlC,gBAAO,GAAG,UAAU,CAAC;AA6LvB,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,iBAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACrD,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B","file":"mark-area.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IMarkArea, IMarkAreaSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport type { IOptionAggr } from '../../../data/transforms/aggregation';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { computeClipRange, coordinateLayout, positionLayout, xyLayout, transformLabelAttributes } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { MarkAreaAttrs } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkArea as MarkAreaComponent } from '@visactor/vrender-components';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEmpty, isValid, isArray } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport { BaseMarker } from '../base-marker';\nimport { LayoutZIndex } from '../../../constant';\nimport type { IGroup } from '@visactor/vrender-core';\nimport { Factory } from '../../../core/factory';\nimport type { IPoint } from '../../../typings';\nimport type { IModelSpecInfo } from '../../../model/interface';\nimport { markerFilter } from '../../../data/transforms/marker-filter';\n\nexport class MarkArea extends BaseMarker<IMarkAreaSpec> implements IMarkArea {\n static type = ComponentTypeEnum.markArea;\n type = ComponentTypeEnum.markArea;\n name: string = ComponentTypeEnum.markArea;\n\n static specKey = 'markArea';\n specKey = 'markArea';\n\n layoutZIndex: number = LayoutZIndex.MarkArea;\n\n // markArea组件\n protected declare _markerComponent: MarkAreaComponent;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const markAreaSpec = chartSpec[this.specKey];\n if (isEmpty(markAreaSpec)) {\n return undefined;\n }\n if (!isArray(markAreaSpec) && markAreaSpec.visible !== false) {\n return [\n {\n spec: markAreaSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.markArea\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n markAreaSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n specInfos.push({\n spec: m,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.markArea\n });\n }\n });\n return specInfos;\n }\n\n protected _createMarkerComponent() {\n const label = this._spec.label ?? {};\n const markAreaAttrs: MarkAreaAttrs = {\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n points: [\n {\n x: 0,\n y: 0\n }\n ],\n areaStyle: transformToGraphic(this._spec.area?.style),\n clipInRange: this._spec.clip ?? false,\n label: transformLabelAttributes(label)\n };\n\n const markArea = new MarkAreaComponent(markAreaAttrs);\n return markArea as unknown as IGroup;\n }\n\n protected _markerLayout() {\n const spec = this._spec as any;\n const data = this._markerData;\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n const relativeSeries = this._relativeSeries;\n\n const isXLayout = isValid(spec.x) && isValid(spec.x1);\n const isYLayout = isValid(spec.y) && isValid(spec.y1);\n const isXYLayout = isXLayout && isYLayout;\n const isCoordinateLayout = isValid(spec.coordinates);\n const isPositionLayout = isValid(spec.positions);\n const autoRange = spec.autoRange ?? false;\n\n let points: IPoint[] = [];\n let lines: IPoint[][] = [];\n if (isXYLayout) {\n lines = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n // 格式为 [[{x, y}], [{x, y}]]\n // 顺序为左下角开始逆时针绘制\n const [start, end] = lines;\n if (start && start.length && end && end.length) {\n points = [\n {\n x: start[0].x,\n y: end[0].y\n },\n start[0],\n {\n x: end[0].x,\n y: start[0].y\n },\n end[0]\n ];\n }\n } else if (isXLayout || isYLayout) {\n lines = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n const [start, end] = lines;\n if (start && start.length && end && end.length) {\n points = [...start, end[1], end[0]];\n }\n } else if (isCoordinateLayout) {\n points = coordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset);\n } else if (isPositionLayout) {\n points = positionLayout(spec.positions, relativeSeries, spec.regionRelative);\n }\n\n const seriesData = this._relativeSeries.getViewData().latestData;\n const dataPoints = data\n ? data.latestData[0] && data.latestData[0].latestData\n ? data.latestData[0].latestData\n : data.latestData\n : seriesData;\n\n let limitRect;\n if (spec.clip || spec.label?.confine) {\n const { minX, maxX, minY, maxY } = computeClipRange([\n startRelativeSeries.getRegion(),\n endRelativeSeries.getRegion(),\n relativeSeries.getRegion()\n ]);\n limitRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n\n if (this._markerComponent) {\n this._markerComponent.setAttributes({\n points: points,\n label: {\n ...this._markerComponent.attribute?.label,\n text: this._spec.label.formatMethod\n ? this._spec.label.formatMethod(dataPoints, seriesData)\n : (this._markerComponent.attribute?.label?.text as any) // FIXME: 富文本类型问题\n },\n limitRect,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n });\n }\n }\n\n protected _initDataView(): void {\n const spec = this._spec as any;\n const relativeSeries = this._relativeSeries;\n const isXProcess = isValid(spec.x) && isValid(spec.x1);\n const isYProcess = isValid(spec.y) && isValid(spec.y1);\n const isXYProcess = isXProcess && isYProcess;\n const isCoordinateProcess = isValid(spec.coordinates);\n if (!isXProcess && !isYProcess && !isCoordinateProcess) {\n return null;\n }\n let options: IOptionAggr[];\n if (isXYProcess) {\n options = [this._processSpecXY(spec.x, spec.y), this._processSpecXY(spec.x1, spec.y1)];\n } else if (isXProcess) {\n options = [this._processSpecX(spec.x), this._processSpecX(spec.x1)];\n } else if (isYProcess) {\n options = [this._processSpecY(spec.y), this._processSpecY(spec.y1)];\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n }\n\n const seriesData = relativeSeries.getViewData();\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n registerDataSetInstanceTransform(this._option.dataSet, 'markerFilter', markerFilter);\n const data = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` });\n data.parse([seriesData], {\n type: 'dataview'\n });\n data.transform({\n type: 'markerAggregation',\n options\n });\n\n if (options) {\n data.transform({\n type: 'markerFilter',\n options: this._getAllRelativeSeries()\n });\n }\n\n data.target.on('change', () => {\n this._markerLayout();\n });\n this._markerData = data;\n }\n}\n\nexport const registerMarkArea = () => {\n Factory.registerComponent(MarkArea.type, MarkArea);\n};\n"]}
@@ -6,7 +6,7 @@ export interface IMarkLineTheme {
6
6
  style?: ILineMarkSpec;
7
7
  };
8
8
  label?: {
9
- position?: keyof typeof IMarkLineLabelPosition;
9
+ position?: IMarkLineLabelPosition;
10
10
  } & IMarkerLabelSpec;
11
11
  startSymbol?: IMarkerSymbol;
12
12
  endSymbol?: IMarkerSymbol;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/marker/mark-line/interface/theme.ts"],"names":[],"mappings":"","file":"theme.js","sourcesContent":["import type { IMarkLineLabelPosition } from '@visactor/vrender-components';\nimport type { ILineMarkSpec } from '../../../../typings';\nimport type { IMarkerLabelSpec, IMarkerSymbol } from '../../interface';\n\nexport interface IMarkLineTheme {\n line?: {\n style?: ILineMarkSpec;\n };\n\n label?: {\n /**\n * label整体 - 相对line的位置\n */\n position?: keyof typeof IMarkLineLabelPosition;\n } & IMarkerLabelSpec;\n\n startSymbol?: IMarkerSymbol;\n\n endSymbol?: IMarkerSymbol;\n}\n"]}
1
+ {"version":3,"sources":["../src/component/marker/mark-line/interface/theme.ts"],"names":[],"mappings":"","file":"theme.js","sourcesContent":["import type { IMarkLineLabelPosition } from '@visactor/vrender-components';\nimport type { ILineMarkSpec } from '../../../../typings';\nimport type { IMarkerLabelSpec, IMarkerSymbol } from '../../interface';\n\nexport interface IMarkLineTheme {\n line?: {\n style?: ILineMarkSpec;\n };\n\n label?: {\n /**\n * label整体 - 相对line的位置\n */\n position?: IMarkLineLabelPosition;\n } & IMarkerLabelSpec;\n\n startSymbol?: IMarkerSymbol;\n\n endSymbol?: IMarkerSymbol;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/marker/mark-line/mark-line.ts"],"names":[],"mappings":"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","file":"mark-line.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type {\n IMarkLine,\n IMarkLineSpec,\n IMarkLineXYSpec,\n IMarkLineXYY1Spec,\n IMarkLineYXX1Spec,\n IStepMarkLineSpec\n} from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IOptionAggr } from '../../../data/transforms/aggregation';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { computeClipRange, coordinateLayout, positionLayout, transformLabelAttributes, xyLayout } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { MarkLineAttrs } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkLine as MarkLineComponent } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEmpty, isValid, isArray } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport { BaseMarker } from '../base-marker';\nimport type { IGroup } from '@visactor/vrender-core';\nimport type { IDataPos, IMarkerSymbol } from '../interface';\nimport type { IOptionRegr } from '../../../data/transforms/regression';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerRegression } from '../../../data/transforms/regression';\nimport { LayoutZIndex } from '../../../constant';\nimport { getInsertPoints, getTextOffset } from './util';\nimport { Factory } from '../../../core/factory';\nimport { isPercent } from '../../../util';\nimport type { IPoint } from '../../../typings';\nimport type { IModelSpecInfo } from '../../../model/interface';\nimport { markerFilter } from '../../../data/transforms/marker-filter';\n\nexport class MarkLine extends BaseMarker<IMarkLineSpec> implements IMarkLine {\n static type = ComponentTypeEnum.markLine;\n type = ComponentTypeEnum.markLine;\n name: string = ComponentTypeEnum.markLine;\n\n static specKey = 'markLine';\n specKey = 'markLine';\n\n layoutZIndex: number = LayoutZIndex.MarkLine;\n\n protected declare _markerComponent: MarkLineComponent;\n\n private _isXYLayout: boolean;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const markLineSpec = chartSpec[this.specKey];\n if (isEmpty(markLineSpec)) {\n return undefined;\n }\n if (!isArray(markLineSpec) && markLineSpec.visible !== false) {\n return [\n {\n spec: markLineSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.markLine\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n markLineSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n specInfos.push({\n spec: m,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.markLine\n });\n }\n });\n return specInfos;\n }\n\n protected _createMarkerComponent() {\n const {\n label = {},\n startSymbol = {} as IMarkerSymbol,\n endSymbol = {} as IMarkerSymbol\n } = this._spec as IMarkLineSpec;\n\n const markLineAttrs: MarkLineAttrs = {\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: 0 }\n ],\n lineStyle: this._spec.line?.style as unknown as any,\n clipInRange: this._spec.clip ?? false,\n label: transformLabelAttributes(label)\n };\n\n if (startSymbol.visible) {\n markLineAttrs.startSymbol = {\n ...startSymbol,\n visible: true,\n style: transformToGraphic(startSymbol.style)\n };\n } else {\n markLineAttrs.startSymbol = {\n visible: false\n };\n }\n\n if (endSymbol.visible) {\n markLineAttrs.endSymbol = {\n ...endSymbol,\n visible: true,\n style: transformToGraphic(endSymbol.style)\n };\n } else {\n markLineAttrs.endSymbol = {\n visible: false\n };\n }\n\n const markLine = new MarkLineComponent(markLineAttrs);\n return markLine as unknown as IGroup;\n }\n\n protected _markerLayout() {\n const spec = this._spec as any;\n const data = this._markerData;\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n const relativeSeries = this._relativeSeries;\n\n const isValidCoordinates = isValid(spec.coordinates);\n const isValidProcess = isValid(spec.process);\n const isValidProcessX = isValidProcess && isValid(spec.process.x);\n const isValidProcessY = isValidProcess && isValid(spec.process.y);\n const isCoordinateLayout = isValidCoordinates && (!isValidProcess || ('process' in spec && 'xy' in spec.process));\n const isPositionLayout = isValid(spec.positions);\n const autoRange = spec.autoRange ?? false;\n\n let points: IPoint[] = [];\n if (this._isXYLayout || (isValidCoordinates && isValidProcessX) || (isValidCoordinates && isValidProcessY)) {\n const xyPoints = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n // 这里不同的场景返回的值不同,如果同时声明了 x x1 y y1,会返回两个数值的数组(如 [[{}], [{}]]),所以需要分别处理下\n points = (xyPoints.length === 1 ? xyPoints[0] : xyPoints.map(point => point[0])) as IPoint[];\n } else if (isCoordinateLayout) {\n points = coordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset);\n } else if (isPositionLayout) {\n points = positionLayout(spec.positions, relativeSeries, spec.regionRelative);\n }\n\n const seriesData = this._relativeSeries.getViewData().latestData;\n const dataPoints =\n data.latestData[0] && data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n\n let limitRect;\n if (spec.clip || spec.label?.confine) {\n const { minX, maxX, minY, maxY } = computeClipRange([\n startRelativeSeries.getRegion(),\n endRelativeSeries.getRegion(),\n relativeSeries.getRegion()\n ]);\n limitRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n const markerComponentAttr = this._markerComponent?.attribute ?? {};\n const labelAttrs = {\n ...markerComponentAttr.label,\n text: this._spec.label.formatMethod\n ? this._spec.label.formatMethod(dataPoints, seriesData)\n : markerComponentAttr.label?.text\n };\n\n if ((this._spec as IStepMarkLineSpec).type === 'type-step') {\n const { multiSegment, mainSegmentIndex } = (this._spec as IStepMarkLineSpec).line || {};\n const { connectDirection, expandDistance = 0 } = this._spec as IStepMarkLineSpec;\n\n let expandDistanceValue: number;\n if (isPercent(expandDistance)) {\n const regionStart = startRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n const regionEnd = endRelativeSeries.getRegion();\n const regionEndLayoutStartPoint = regionEnd.getLayoutStartPoint();\n\n if (connectDirection === 'bottom' || connectDirection === 'top') {\n const regionHeight = Math.abs(\n Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y) -\n Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionHeight) / 100;\n } else {\n const regionWidth = Math.abs(\n Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x) -\n Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionWidth) / 100;\n }\n } else {\n expandDistanceValue = expandDistance as number;\n }\n\n const joinPoints = getInsertPoints(points[0], points[1], connectDirection, expandDistanceValue);\n\n let labelPositionAttrs: any;\n if (multiSegment && isValid(mainSegmentIndex)) {\n // 如果用户配置了主线段,则不进行 label 的偏移处理,直接显示在主线段中间\n labelPositionAttrs = {\n position: 'middle',\n autoRotate: false,\n refX: 0,\n refY: 0\n };\n } else {\n labelPositionAttrs = {\n position: 'start',\n autoRotate: false,\n ...getTextOffset(points[0], points[1], connectDirection, expandDistanceValue),\n refX: 0,\n refY: 0\n };\n }\n\n this._markerComponent?.setAttributes({\n points: multiSegment\n ? [\n [joinPoints[0], joinPoints[1]],\n [joinPoints[1], joinPoints[2]],\n [joinPoints[2], joinPoints[3]]\n ]\n : joinPoints,\n label: {\n ...labelAttrs,\n ...labelPositionAttrs,\n textStyle: {\n ...markerComponentAttr.label.textStyle,\n textAlign: 'center',\n textBaseline: 'middle'\n }\n },\n limitRect,\n multiSegment,\n mainSegmentIndex,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n });\n } else {\n this._markerComponent?.setAttributes({\n points: points,\n label: labelAttrs as MarkLineComponent['attribute']['label'],\n limitRect,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n });\n }\n }\n\n protected _initDataView(): void {\n const spec = this._spec;\n const relativeSeries = this._relativeSeries;\n const isXProcess = 'x' in spec;\n const isYProcess = 'y' in spec;\n const isX1Process = 'x1' in spec;\n const isY1Process = 'y1' in spec;\n const isCoordinateProcess = 'coordinates' in spec;\n\n const doXProcess = isXProcess && !isYProcess && !isY1Process;\n const doXYY1Process = isXProcess && isYProcess && isY1Process;\n const doYProcess = isYProcess && !isXProcess && !isX1Process;\n const doYXX1Process = isYProcess && isXProcess && isX1Process;\n const doXYProcess = isXProcess && isYProcess && isX1Process && isY1Process;\n\n this._markerData = relativeSeries.getViewData();\n\n if (!doXProcess && !doYProcess && !doXYY1Process && !doYXX1Process && !doXYProcess && !isCoordinateProcess) {\n return;\n }\n\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n registerDataSetInstanceTransform(this._option.dataSet, 'markerRegression', markerRegression);\n registerDataSetInstanceTransform(this._option.dataSet, 'markerFilter', markerFilter);\n\n this._isXYLayout = doXProcess || doXYY1Process || doYProcess || doYXX1Process || doXYProcess;\n\n let options: IOptionAggr[] | IOptionRegr;\n let processData: DataView = relativeSeries.getViewData();\n let needAggr: boolean = true;\n let needRegr: boolean = false;\n\n if (doXYProcess) {\n const { x, x1, y, y1 } = spec as IMarkLineXYSpec;\n options = [this._processSpecXY(x, y), this._processSpecXY(x1, y1)];\n } else if (doXProcess) {\n options = [this._processSpecX(spec.x)];\n } else if (doYProcess) {\n options = [this._processSpecY(spec.y)];\n } else if (doXYY1Process) {\n const { x, y, y1 } = spec as IMarkLineXYY1Spec;\n options = [this._processSpecXY(x, y), this._processSpecXY(x, y1)];\n } else if (doYXX1Process) {\n const { x, x1, y } = spec as IMarkLineYXX1Spec;\n options = [this._processSpecXY(x, y), this._processSpecXY(x1, y)];\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n needAggr = false;\n processData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` })\n .parse([relativeSeries.getViewData()], {\n type: 'dataview'\n })\n .transform({\n type: 'markerAggregation',\n options\n });\n if (spec.process && 'x' in spec.process) {\n options = [this._processSpecX(spec.process.x as unknown as IDataPos)] as unknown as any;\n needAggr = true;\n }\n if (spec.process && 'y' in spec.process) {\n options = [this._processSpecY(spec.process.y as unknown as IDataPos)] as unknown as any;\n needAggr = true;\n }\n if (spec.process && 'xy' in spec.process) {\n const { xField, yField } = relativeSeries.getSpec();\n options = {\n fieldX: xField,\n fieldY: yField\n };\n needRegr = true;\n }\n } else {\n needAggr = false;\n }\n\n const data = new DataView(this._option.dataSet);\n data.parse([processData], {\n type: 'dataview'\n });\n if (needAggr) {\n data.transform({\n type: 'markerAggregation',\n options\n });\n }\n if (needRegr) {\n data.transform({\n type: 'markerRegression',\n options\n });\n }\n\n if (needAggr || needRegr) {\n data.transform({\n type: 'markerFilter',\n options: this._getAllRelativeSeries()\n });\n }\n\n data.target.on('change', () => {\n this._markerLayout();\n });\n this._markerData = data;\n }\n}\n\nexport const registerMarkLine = () => {\n Factory.registerComponent(MarkLine.type, MarkLine);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/marker/mark-line/mark-line.ts"],"names":[],"mappings":"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","file":"mark-line.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type {\n IMarkLine,\n IMarkLineSpec,\n IMarkLineXYSpec,\n IMarkLineXYY1Spec,\n IMarkLineYXX1Spec,\n IStepMarkLineSpec\n} from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IOptionAggr } from '../../../data/transforms/aggregation';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { computeClipRange, coordinateLayout, positionLayout, transformLabelAttributes, xyLayout } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { MarkLineAttrs } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkLine as MarkLineComponent } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEmpty, isValid, isArray } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport { BaseMarker } from '../base-marker';\nimport type { IGroup } from '@visactor/vrender-core';\nimport type { IDataPos, IMarkerSymbol } from '../interface';\nimport type { IOptionRegr } from '../../../data/transforms/regression';\n// eslint-disable-next-line no-duplicate-imports\nimport { markerRegression } from '../../../data/transforms/regression';\nimport { LayoutZIndex } from '../../../constant';\nimport { getInsertPoints, getTextOffset } from './util';\nimport { Factory } from '../../../core/factory';\nimport { isPercent } from '../../../util';\nimport type { IPoint } from '../../../typings';\nimport type { IModelSpecInfo } from '../../../model/interface';\nimport { markerFilter } from '../../../data/transforms/marker-filter';\n\nexport class MarkLine extends BaseMarker<IMarkLineSpec> implements IMarkLine {\n static type = ComponentTypeEnum.markLine;\n type = ComponentTypeEnum.markLine;\n name: string = ComponentTypeEnum.markLine;\n\n static specKey = 'markLine';\n specKey = 'markLine';\n\n layoutZIndex: number = LayoutZIndex.MarkLine;\n\n protected declare _markerComponent: MarkLineComponent;\n\n private _isXYLayout: boolean;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const markLineSpec = chartSpec[this.specKey];\n if (isEmpty(markLineSpec)) {\n return undefined;\n }\n if (!isArray(markLineSpec) && markLineSpec.visible !== false) {\n return [\n {\n spec: markLineSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.markLine\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n markLineSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n specInfos.push({\n spec: m,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.markLine\n });\n }\n });\n return specInfos;\n }\n\n protected _createMarkerComponent() {\n const {\n label = {},\n startSymbol = {} as IMarkerSymbol,\n endSymbol = {} as IMarkerSymbol\n } = this._spec as IMarkLineSpec;\n\n const markLineAttrs: MarkLineAttrs = {\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n points: [\n { x: 0, y: 0 },\n { x: 0, y: 0 }\n ],\n lineStyle: this._spec.line?.style as unknown as any,\n clipInRange: this._spec.clip ?? false,\n label: transformLabelAttributes(label)\n };\n\n if (startSymbol.visible) {\n markLineAttrs.startSymbol = {\n ...startSymbol,\n visible: true,\n style: transformToGraphic(startSymbol.style)\n };\n } else {\n markLineAttrs.startSymbol = {\n visible: false\n };\n }\n\n if (endSymbol.visible) {\n markLineAttrs.endSymbol = {\n ...endSymbol,\n visible: true,\n style: transformToGraphic(endSymbol.style)\n };\n } else {\n markLineAttrs.endSymbol = {\n visible: false\n };\n }\n\n const markLine = new MarkLineComponent(markLineAttrs);\n return markLine as unknown as IGroup;\n }\n\n protected _markerLayout() {\n const spec = this._spec as any;\n const data = this._markerData;\n const startRelativeSeries = this._startRelativeSeries;\n const endRelativeSeries = this._endRelativeSeries;\n const relativeSeries = this._relativeSeries;\n\n const isValidCoordinates = isValid(spec.coordinates);\n const isValidProcess = isValid(spec.process);\n const isValidProcessX = isValidProcess && isValid(spec.process.x);\n const isValidProcessY = isValidProcess && isValid(spec.process.y);\n const isCoordinateLayout = isValidCoordinates && (!isValidProcess || ('process' in spec && 'xy' in spec.process));\n const isPositionLayout = isValid(spec.positions);\n const autoRange = spec.autoRange ?? false;\n\n let points: IPoint[] = [];\n if (this._isXYLayout || (isValidCoordinates && isValidProcessX) || (isValidCoordinates && isValidProcessY)) {\n const xyPoints = xyLayout(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange);\n // 这里不同的场景返回的值不同,如果同时声明了 x x1 y y1,会返回两个数值的数组(如 [[{}], [{}]]),所以需要分别处理下\n points = (xyPoints.length === 1 ? xyPoints[0] : xyPoints.map(point => point[0])) as IPoint[];\n } else if (isCoordinateLayout) {\n points = coordinateLayout(data, relativeSeries, autoRange, spec.coordinatesOffset);\n } else if (isPositionLayout) {\n points = positionLayout(spec.positions, relativeSeries, spec.regionRelative);\n }\n\n const seriesData = this._relativeSeries.getViewData().latestData;\n const dataPoints =\n data.latestData[0] && data.latestData[0].latestData ? data.latestData[0].latestData : data.latestData;\n\n let limitRect;\n if (spec.clip || spec.label?.confine) {\n const { minX, maxX, minY, maxY } = computeClipRange([\n startRelativeSeries.getRegion(),\n endRelativeSeries.getRegion(),\n relativeSeries.getRegion()\n ]);\n limitRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n const markerComponentAttr = this._markerComponent?.attribute ?? {};\n const labelAttrs = {\n ...markerComponentAttr.label,\n text: this._spec.label.formatMethod\n ? this._spec.label.formatMethod(dataPoints, seriesData)\n : markerComponentAttr.label?.text\n };\n\n if ((this._spec as IStepMarkLineSpec).type === 'type-step') {\n const { multiSegment, mainSegmentIndex } = (this._spec as IStepMarkLineSpec).line || {};\n const { connectDirection, expandDistance = 0 } = this._spec as IStepMarkLineSpec;\n\n let expandDistanceValue: number;\n if (isPercent(expandDistance)) {\n const regionStart = startRelativeSeries.getRegion();\n const regionStartLayoutStartPoint = regionStart.getLayoutStartPoint();\n const regionEnd = endRelativeSeries.getRegion();\n const regionEndLayoutStartPoint = regionEnd.getLayoutStartPoint();\n\n if (connectDirection === 'bottom' || connectDirection === 'top') {\n const regionHeight = Math.abs(\n Math.min(regionStartLayoutStartPoint.y, regionEndLayoutStartPoint.y) -\n Math.max(\n regionStartLayoutStartPoint.y + regionStart.getLayoutRect().height,\n regionEndLayoutStartPoint.y + regionEnd.getLayoutRect().height\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionHeight) / 100;\n } else {\n const regionWidth = Math.abs(\n Math.min(regionStartLayoutStartPoint.x, regionEndLayoutStartPoint.x) -\n Math.max(\n regionStartLayoutStartPoint.x + regionStart.getLayoutRect().width,\n regionEndLayoutStartPoint.x + regionEnd.getLayoutRect().width\n )\n );\n expandDistanceValue = (Number(expandDistance.substring(0, expandDistance.length - 1)) * regionWidth) / 100;\n }\n } else {\n expandDistanceValue = expandDistance as number;\n }\n\n const joinPoints = getInsertPoints(points[0], points[1], connectDirection, expandDistanceValue);\n\n let labelPositionAttrs: any;\n if (multiSegment && isValid(mainSegmentIndex)) {\n // 如果用户配置了主线段,则不进行 label 的偏移处理,直接显示在主线段中间\n labelPositionAttrs = {\n position: 'middle',\n autoRotate: false,\n refX: 0,\n refY: 0\n };\n } else {\n labelPositionAttrs = {\n position: 'start',\n autoRotate: false,\n ...getTextOffset(points[0], points[1], connectDirection, expandDistanceValue),\n refX: 0,\n refY: 0\n };\n }\n\n this._markerComponent?.setAttributes({\n points: multiSegment\n ? [\n [joinPoints[0], joinPoints[1]],\n [joinPoints[1], joinPoints[2]],\n [joinPoints[2], joinPoints[3]]\n ]\n : joinPoints,\n label: {\n ...labelAttrs,\n ...labelPositionAttrs,\n textStyle: {\n ...markerComponentAttr.label.textStyle,\n textAlign: 'center',\n textBaseline: 'middle'\n }\n },\n limitRect,\n multiSegment,\n mainSegmentIndex,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n });\n } else {\n this._markerComponent?.setAttributes({\n points: points,\n label: labelAttrs as any, // FIXME: 富文本类型问题\n limitRect,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n });\n }\n }\n\n protected _initDataView(): void {\n const spec = this._spec;\n const relativeSeries = this._relativeSeries;\n const isXProcess = 'x' in spec;\n const isYProcess = 'y' in spec;\n const isX1Process = 'x1' in spec;\n const isY1Process = 'y1' in spec;\n const isCoordinateProcess = 'coordinates' in spec;\n\n const doXProcess = isXProcess && !isYProcess && !isY1Process;\n const doXYY1Process = isXProcess && isYProcess && isY1Process;\n const doYProcess = isYProcess && !isXProcess && !isX1Process;\n const doYXX1Process = isYProcess && isXProcess && isX1Process;\n const doXYProcess = isXProcess && isYProcess && isX1Process && isY1Process;\n\n this._markerData = relativeSeries.getViewData();\n\n if (!doXProcess && !doYProcess && !doXYY1Process && !doYXX1Process && !doXYProcess && !isCoordinateProcess) {\n return;\n }\n\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n registerDataSetInstanceTransform(this._option.dataSet, 'markerRegression', markerRegression);\n registerDataSetInstanceTransform(this._option.dataSet, 'markerFilter', markerFilter);\n\n this._isXYLayout = doXProcess || doXYY1Process || doYProcess || doYXX1Process || doXYProcess;\n\n let options: IOptionAggr[] | IOptionRegr;\n let processData: DataView = relativeSeries.getViewData();\n let needAggr: boolean = true;\n let needRegr: boolean = false;\n\n if (doXYProcess) {\n const { x, x1, y, y1 } = spec as IMarkLineXYSpec;\n options = [this._processSpecXY(x, y), this._processSpecXY(x1, y1)];\n } else if (doXProcess) {\n options = [this._processSpecX(spec.x)];\n } else if (doYProcess) {\n options = [this._processSpecY(spec.y)];\n } else if (doXYY1Process) {\n const { x, y, y1 } = spec as IMarkLineXYY1Spec;\n options = [this._processSpecXY(x, y), this._processSpecXY(x, y1)];\n } else if (doYXX1Process) {\n const { x, x1, y } = spec as IMarkLineYXX1Spec;\n options = [this._processSpecXY(x, y), this._processSpecXY(x1, y)];\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n needAggr = false;\n processData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` })\n .parse([relativeSeries.getViewData()], {\n type: 'dataview'\n })\n .transform({\n type: 'markerAggregation',\n options\n });\n if (spec.process && 'x' in spec.process) {\n options = [this._processSpecX(spec.process.x as unknown as IDataPos)] as unknown as any;\n needAggr = true;\n }\n if (spec.process && 'y' in spec.process) {\n options = [this._processSpecY(spec.process.y as unknown as IDataPos)] as unknown as any;\n needAggr = true;\n }\n if (spec.process && 'xy' in spec.process) {\n const { xField, yField } = relativeSeries.getSpec();\n options = {\n fieldX: xField,\n fieldY: yField\n };\n needRegr = true;\n }\n } else {\n needAggr = false;\n }\n\n const data = new DataView(this._option.dataSet);\n data.parse([processData], {\n type: 'dataview'\n });\n if (needAggr) {\n data.transform({\n type: 'markerAggregation',\n options\n });\n }\n if (needRegr) {\n data.transform({\n type: 'markerRegression',\n options\n });\n }\n\n if (needAggr || needRegr) {\n data.transform({\n type: 'markerFilter',\n options: this._getAllRelativeSeries()\n });\n }\n\n data.target.on('change', () => {\n this._markerLayout();\n });\n this._markerData = data;\n }\n}\n\nexport const registerMarkLine = () => {\n Factory.registerComponent(MarkLine.type, MarkLine);\n};\n"]}
@@ -4,7 +4,7 @@ import type { ILineMarkSpec, ISymbolMarkSpec } from '../../../../typings';
4
4
  import type { IMarkerLabelSpec, IMarkerRef, IMarkerSymbol } from '../../interface';
5
5
  export interface IItemContent extends IMarkerRef {
6
6
  type?: 'symbol' | 'text' | 'image' | 'richText';
7
- position?: keyof typeof IMarkPointItemPosition;
7
+ position?: IMarkPointItemPosition;
8
8
  offsetX?: number;
9
9
  offsetY?: number;
10
10
  confine?: boolean;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/marker/mark-point/interface/theme.ts"],"names":[],"mappings":"","file":"theme.js","sourcesContent":["import type { IImageGraphicAttribute, IRichTextGraphicAttribute } from '@visactor/vrender-core';\nimport type { IMarkPointItemPosition } from '@visactor/vrender-components';\nimport type { ILineMarkSpec, ISymbolMarkSpec } from '../../../../typings';\nimport type { IMarkerLabelSpec, IMarkerRef, IMarkerSymbol } from '../../interface';\n\nexport interface IItemContent extends IMarkerRef {\n /**\n * 标注类型\n */\n type?: 'symbol' | 'text' | 'image' | 'richText';\n /**\n * 标注内容相对于定位点的位置\n */\n position?: keyof typeof IMarkPointItemPosition;\n /**\n * x 方向偏移量\n */\n offsetX?: number;\n /**\n * y 方向偏移量\n */\n offsetY?: number;\n /**\n * 是否自动调整 item content 使其展示在 marker 可见区域内。\n * @default false\n * @since 1.8.7\n */\n confine?: boolean;\n /**\n * type为symbol时, symbol的样式\n */\n symbol?: {\n style?: ISymbolMarkSpec;\n };\n /**\n * type为image时, image的样式\n */\n image?: {\n style?: IImageGraphicAttribute;\n };\n /**\n * type为text时, text的样式\n * 'text'类型的ItemContent新增三种子类型:'text','rich'。配置在textStyle.type上。\n */\n text?: IMarkerLabelSpec;\n /**\n * type为rich text时, rich text的样式\n */\n richText?: {\n style?: IRichTextGraphicAttribute;\n };\n}\n\nexport type IItemLine<T extends Partial<IMarkerSymbol> = IMarkerSymbol> = {\n /** TODO:'type-opo' */\n /**\n * 引导线类型\n * 'type-s'表示起点和终点直接连线; 'type-do'表示包含一个折点,且折点x坐标为起点到终点的 1/2 x坐标,折点y坐标为起点y坐标;'type-op' 表示包含一个折点,且折点x坐标为起点x坐标,折点y坐标为终点y坐标;'type-po' 表示包含一个折点,且折点x坐标为终点x坐标,折点y坐标为起点y坐标\n * 引导线类型的具体形式参考:https://journals.sagepub.com/doi/10.1177/1473871618799500\n */\n type?: 'type-s' | 'type-do' | 'type-po' | 'type-op';\n /**\n * 引导线可见性\n */\n visible?: boolean;\n /**\n * 垂直于引导线的装饰线,参考案例: https://observablehq.com/@mikelotis/edmonton-population-history-line-chart\n */\n decorativeLine?: {\n /**\n * 装饰线可见性\n */\n visible?: boolean;\n /**\n * 装饰线的长度\n */\n length?: number;\n };\n /**\n * 引导线起点symbol样式\n */\n startSymbol?: T;\n /**\n * 引导线终点symbol样式\n */\n endSymbol?: T;\n /**\n * 引导线样式\n */\n line?: {\n style?: Omit<ILineMarkSpec, 'visible'>;\n };\n};\n\nexport interface IMarkPointTheme<T extends Partial<IMarkerSymbol> = Partial<IMarkerSymbol>> {\n /**\n * 标注引导线\n */\n itemLine?: IItemLine<T>;\n\n /**\n * 标注内容\n */\n itemContent?: IItemContent;\n}\n"]}
1
+ {"version":3,"sources":["../src/component/marker/mark-point/interface/theme.ts"],"names":[],"mappings":"","file":"theme.js","sourcesContent":["import type { IImageGraphicAttribute, IRichTextGraphicAttribute } from '@visactor/vrender-core';\nimport type { IMarkPointItemPosition } from '@visactor/vrender-components';\nimport type { ILineMarkSpec, ISymbolMarkSpec } from '../../../../typings';\nimport type { IMarkerLabelSpec, IMarkerRef, IMarkerSymbol } from '../../interface';\n\nexport interface IItemContent extends IMarkerRef {\n /**\n * 标注类型\n */\n type?: 'symbol' | 'text' | 'image' | 'richText';\n /**\n * 标注内容相对于定位点的位置\n */\n position?: IMarkPointItemPosition;\n /**\n * x 方向偏移量\n */\n offsetX?: number;\n /**\n * y 方向偏移量\n */\n offsetY?: number;\n /**\n * 是否自动调整 item content 使其展示在 marker 可见区域内。\n * @default false\n * @since 1.8.7\n */\n confine?: boolean;\n /**\n * type为symbol时, symbol的样式\n */\n symbol?: {\n style?: ISymbolMarkSpec;\n };\n /**\n * type为image时, image的样式\n */\n image?: {\n style?: IImageGraphicAttribute;\n };\n /**\n * type为text时, text的样式\n * 'text'类型的ItemContent新增三种子类型:'text','rich','html'。配置在textStyle.type上。\n */\n text?: IMarkerLabelSpec;\n /**\n * type为rich text时, rich text的样式\n */\n richText?: {\n style?: IRichTextGraphicAttribute;\n };\n}\n\nexport type IItemLine<T extends Partial<IMarkerSymbol> = IMarkerSymbol> = {\n /** TODO:'type-opo' */\n /**\n * 引导线类型\n * 'type-s'表示起点和终点直接连线; 'type-do'表示包含一个折点,且折点x坐标为起点到终点的 1/2 x坐标,折点y坐标为起点y坐标;'type-op' 表示包含一个折点,且折点x坐标为起点x坐标,折点y坐标为终点y坐标;'type-po' 表示包含一个折点,且折点x坐标为终点x坐标,折点y坐标为起点y坐标\n * 引导线类型的具体形式参考:https://journals.sagepub.com/doi/10.1177/1473871618799500\n */\n type?: 'type-s' | 'type-do' | 'type-po' | 'type-op';\n /**\n * 引导线可见性\n */\n visible?: boolean;\n /**\n * 垂直于引导线的装饰线,参考案例: https://observablehq.com/@mikelotis/edmonton-population-history-line-chart\n */\n decorativeLine?: {\n /**\n * 装饰线可见性\n */\n visible?: boolean;\n /**\n * 装饰线的长度\n */\n length?: number;\n };\n /**\n * 引导线起点symbol样式\n */\n startSymbol?: T;\n /**\n * 引导线终点symbol样式\n */\n endSymbol?: T;\n /**\n * 引导线样式\n */\n line?: {\n style?: Omit<ILineMarkSpec, 'visible'>;\n };\n};\n\nexport interface IMarkPointTheme<T extends Partial<IMarkerSymbol> = Partial<IMarkerSymbol>> {\n /**\n * 标注引导线\n */\n itemLine?: IItemLine<T>;\n\n /**\n * 标注内容\n */\n itemContent?: IItemContent;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/marker/mark-point/mark-point.ts"],"names":[],"mappings":"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","file":"mark-point.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IMarkPoint, IMarkPointCoordinateSpec, IMarkPointSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { computeClipRange, coordinateLayout, positionLayout, transformLabelAttributes, xyLayout } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { MarkPointAttrs } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkPoint as MarkPointComponent } from '@visactor/vrender-components';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEmpty, isValid, isArray } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport { BaseMarker } from '../base-marker';\nimport { LayoutZIndex } from '../../../constant';\nimport { Factory } from '../../../core/factory';\nimport type { IGroup } from '@visactor/vrender-core';\nimport type { IPoint } from '../../../typings';\nimport type { IModelSpecInfo } from '../../../model/interface';\nimport { markerFilter } from '../../../data/transforms/marker-filter';\n\nexport class MarkPoint extends BaseMarker<IMarkPointSpec> implements IMarkPoint {\n static type = ComponentTypeEnum.markPoint;\n type = ComponentTypeEnum.markPoint;\n name: string = ComponentTypeEnum.markPoint;\n\n static specKey = 'markPoint';\n specKey = 'markPoint';\n\n layoutZIndex: number = LayoutZIndex.MarkPoint;\n\n // markPoint组件\n protected declare _markerComponent: MarkPointComponent;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const markPointSpec = chartSpec[this.specKey];\n if (isEmpty(markPointSpec)) {\n return undefined;\n }\n if (!isArray(markPointSpec) && markPointSpec.visible !== false) {\n return [\n {\n spec: markPointSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.markPoint\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n markPointSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n specInfos.push({\n spec: m,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.markPoint\n });\n }\n });\n return specInfos;\n }\n\n protected _createMarkerComponent() {\n const { itemContent = {}, itemLine = {} } = this._spec;\n const { text: label = {}, symbol, image, richText, ...restItemContent } = itemContent;\n\n const markPointAttrs: MarkPointAttrs = {\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n position: { x: 0, y: 0 },\n clipInRange: this._spec.clip ?? false,\n itemContent: {\n symbolStyle: transformToGraphic(symbol?.style),\n imageStyle: image?.style,\n textStyle: transformLabelAttributes(label),\n richTextStyle: richText?.style,\n ...restItemContent // Tips: 因为网站 demo 上已经透出了 imageStyle richTextStyle 的写法,为了兼容所以这个需要在后面覆盖\n }\n };\n\n const { visible, line = {}, ...restItemLine } = itemLine;\n if (visible !== false) {\n markPointAttrs.itemLine = {\n ...restItemLine,\n visible: true,\n lineStyle: transformToGraphic(line.style)\n };\n } else {\n markPointAttrs.itemLine = {\n visible: false\n };\n }\n\n const markPoint = new MarkPointComponent(markPointAttrs);\n return markPoint as unknown as IGroup;\n }\n\n protected _markerLayout() {\n const spec = this._spec;\n const data = this._markerData;\n const relativeSeries = this._relativeSeries;\n const isXYLayout = 'x' in spec && 'y' in spec;\n const isCoordinateLayout = 'coordinate' in spec;\n const isPositionLayout = 'position' in spec;\n const autoRange = spec?.autoRange ?? false;\n\n let point: IPoint;\n if (isXYLayout) {\n point = xyLayout(data, relativeSeries, relativeSeries, relativeSeries, autoRange)[0][0];\n } else if (isCoordinateLayout) {\n point = coordinateLayout(\n data,\n relativeSeries,\n autoRange,\n (spec as IMarkPointCoordinateSpec).coordinatesOffset\n )[0];\n } else if (isPositionLayout) {\n point = positionLayout([spec.position], relativeSeries, spec.regionRelative)[0];\n }\n\n const seriesData = this._relativeSeries.getViewData().latestData;\n const dataPoints = data\n ? data.latestData[0] && data.latestData[0].latestData\n ? data.latestData[0].latestData\n : data.latestData\n : seriesData;\n\n let limitRect;\n if (spec.clip || spec.itemContent?.confine) {\n const { minX, maxX, minY, maxY } = computeClipRange([relativeSeries.getRegion()]);\n limitRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n if (this._markerComponent) {\n const attribute = this._markerComponent.attribute ?? {};\n const textStyle = attribute.itemContent?.textStyle ?? {};\n this._markerComponent.setAttributes({\n position: point,\n itemContent: {\n ...attribute.itemContent,\n textStyle: {\n ...textStyle,\n text: this._spec.itemContent.text?.formatMethod\n ? // type error here will be fixed in components\n (this._spec.itemContent.text.formatMethod(dataPoints, seriesData) as any)\n : textStyle.text\n }\n },\n limitRect,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n });\n }\n }\n\n protected _initDataView(): void {\n const spec = this._spec as any;\n const relativeSeries = this._relativeSeries;\n const isXYProcess = isValid(spec.x) && isValid(spec.y);\n const isCoordinateProcess = isValid(spec.coordinate);\n if (!isCoordinateProcess && !isXYProcess) {\n return;\n }\n\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n registerDataSetInstanceTransform(this._option.dataSet, 'markerFilter', markerFilter);\n\n let options;\n if (isXYProcess) {\n options = [this._processSpecXY(spec.x, spec.y)];\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n }\n\n const data = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` });\n data.parse([relativeSeries.getViewData()], {\n type: 'dataview'\n });\n data.transform({\n type: 'markerAggregation',\n options\n });\n\n if (options) {\n data.transform({\n type: 'markerFilter',\n options: this._getAllRelativeSeries()\n });\n }\n data.target.on('change', () => {\n this._markerLayout();\n });\n this._markerData = data;\n }\n}\n\nexport const registerMarkPoint = () => {\n Factory.registerComponent(MarkPoint.type, MarkPoint);\n};\n"]}
1
+ {"version":3,"sources":["../src/component/marker/mark-point/mark-point.ts"],"names":[],"mappings":"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","file":"mark-point.js","sourcesContent":["import { DataView } from '@visactor/vdataset';\nimport type { IMarkPoint, IMarkPointCoordinateSpec, IMarkPointSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { markerAggregation } from '../../../data/transforms/aggregation';\nimport { computeClipRange, coordinateLayout, positionLayout, transformLabelAttributes, xyLayout } from '../utils';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { MarkPointAttrs } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkPoint as MarkPointComponent } from '@visactor/vrender-components';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEmpty, isValid, isArray } from '@visactor/vutils';\nimport { transformToGraphic } from '../../../util/style';\nimport { BaseMarker } from '../base-marker';\nimport { LayoutZIndex } from '../../../constant';\nimport { Factory } from '../../../core/factory';\nimport type { IGroup } from '@visactor/vrender-core';\nimport type { IPoint } from '../../../typings';\nimport type { IModelSpecInfo } from '../../../model/interface';\nimport { markerFilter } from '../../../data/transforms/marker-filter';\n\nexport class MarkPoint extends BaseMarker<IMarkPointSpec> implements IMarkPoint {\n static type = ComponentTypeEnum.markPoint;\n type = ComponentTypeEnum.markPoint;\n name: string = ComponentTypeEnum.markPoint;\n\n static specKey = 'markPoint';\n specKey = 'markPoint';\n\n layoutZIndex: number = LayoutZIndex.MarkPoint;\n\n // markPoint组件\n protected declare _markerComponent: MarkPointComponent;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const markPointSpec = chartSpec[this.specKey];\n if (isEmpty(markPointSpec)) {\n return undefined;\n }\n if (!isArray(markPointSpec) && markPointSpec.visible !== false) {\n return [\n {\n spec: markPointSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.markPoint\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n markPointSpec.forEach((m: any, i: number) => {\n if (m.visible !== false) {\n specInfos.push({\n spec: m,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.markPoint\n });\n }\n });\n return specInfos;\n }\n\n protected _createMarkerComponent() {\n const { itemContent = {}, itemLine = {} } = this._spec;\n const { text: label = {}, symbol, image, richText, ...restItemContent } = itemContent;\n\n const markPointAttrs: MarkPointAttrs = {\n zIndex: this.layoutZIndex,\n interactive: this._spec.interactive ?? false,\n position: { x: 0, y: 0 },\n clipInRange: this._spec.clip ?? false,\n itemContent: {\n symbolStyle: transformToGraphic(symbol?.style),\n imageStyle: image?.style,\n textStyle: transformLabelAttributes(label),\n richTextStyle: richText?.style,\n ...restItemContent // Tips: 因为网站 demo 上已经透出了 imageStyle richTextStyle 的写法,为了兼容所以这个需要在后面覆盖\n }\n };\n\n const { visible, line = {}, ...restItemLine } = itemLine;\n if (visible !== false) {\n markPointAttrs.itemLine = {\n ...restItemLine,\n visible: true,\n lineStyle: transformToGraphic(line.style)\n };\n } else {\n markPointAttrs.itemLine = {\n visible: false\n };\n }\n\n const markPoint = new MarkPointComponent(markPointAttrs);\n return markPoint as unknown as IGroup;\n }\n\n protected _markerLayout() {\n const spec = this._spec;\n const data = this._markerData;\n const relativeSeries = this._relativeSeries;\n const isXYLayout = 'x' in spec && 'y' in spec;\n const isCoordinateLayout = 'coordinate' in spec;\n const isPositionLayout = 'position' in spec;\n const autoRange = spec?.autoRange ?? false;\n\n let point: IPoint;\n if (isXYLayout) {\n point = xyLayout(data, relativeSeries, relativeSeries, relativeSeries, autoRange)[0][0];\n } else if (isCoordinateLayout) {\n point = coordinateLayout(\n data,\n relativeSeries,\n autoRange,\n (spec as IMarkPointCoordinateSpec).coordinatesOffset\n )[0];\n } else if (isPositionLayout) {\n point = positionLayout([spec.position], relativeSeries, spec.regionRelative)[0];\n }\n\n const seriesData = this._relativeSeries.getViewData().latestData;\n const dataPoints = data\n ? data.latestData[0] && data.latestData[0].latestData\n ? data.latestData[0].latestData\n : data.latestData\n : seriesData;\n\n let limitRect;\n if (spec.clip || spec.itemContent?.confine) {\n const { minX, maxX, minY, maxY } = computeClipRange([relativeSeries.getRegion()]);\n limitRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n if (this._markerComponent) {\n const attribute = this._markerComponent.attribute ?? {};\n const textStyle = attribute.itemContent?.textStyle ?? {};\n this._markerComponent.setAttributes({\n position: point,\n itemContent: {\n ...attribute.itemContent,\n textStyle: {\n ...textStyle,\n text: this._spec.itemContent.text?.formatMethod\n ? this._spec.itemContent.text.formatMethod(dataPoints, seriesData)\n : (textStyle.text as any) // FIXME: 富文本类型问题\n }\n },\n limitRect,\n dx: this._layoutOffsetX,\n dy: this._layoutOffsetY\n });\n }\n }\n\n protected _initDataView(): void {\n const spec = this._spec as any;\n const relativeSeries = this._relativeSeries;\n const isXYProcess = isValid(spec.x) && isValid(spec.y);\n const isCoordinateProcess = isValid(spec.coordinate);\n if (!isCoordinateProcess && !isXYProcess) {\n return;\n }\n\n registerDataSetInstanceTransform(this._option.dataSet, 'markerAggregation', markerAggregation);\n registerDataSetInstanceTransform(this._option.dataSet, 'markerFilter', markerFilter);\n\n let options;\n if (isXYProcess) {\n options = [this._processSpecXY(spec.x, spec.y)];\n } else if (isCoordinateProcess) {\n options = this._processSpecCoo(spec);\n }\n\n const data = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_data` });\n data.parse([relativeSeries.getViewData()], {\n type: 'dataview'\n });\n data.transform({\n type: 'markerAggregation',\n options\n });\n\n if (options) {\n data.transform({\n type: 'markerFilter',\n options: this._getAllRelativeSeries()\n });\n }\n data.target.on('change', () => {\n this._markerLayout();\n });\n this._markerData = data;\n }\n}\n\nexport const registerMarkPoint = () => {\n Factory.registerComponent(MarkPoint.type, MarkPoint);\n};\n"]}
@@ -13,13 +13,13 @@ const style_1 = require("../../../util/style"), rectToAttribute = markSpec => {
13
13
  }, baseToAttribute = spec => Object.assign(Object.assign({}, spec), {
14
14
  style: Object.assign({}, (0, style_1.transformToGraphic)(spec.style))
15
15
  }), transformToAttrs = spec => {
16
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
16
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
17
17
  const trackStyle = rectToAttribute(null !== (_b = null === (_a = null == spec ? void 0 : spec.slider) || void 0 === _a ? void 0 : _a.trackStyle) && void 0 !== _b ? _b : {}), railStyle = rectToAttribute(null !== (_d = null === (_c = null == spec ? void 0 : spec.slider) || void 0 === _c ? void 0 : _c.railStyle) && void 0 !== _d ? _d : {}), handlerStyle = symbolToAttribute(null !== (_f = null === (_e = null == spec ? void 0 : spec.slider) || void 0 === _e ? void 0 : _e.handlerStyle) && void 0 !== _f ? _f : {}), start = baseToAttribute(null !== (_h = null === (_g = null == spec ? void 0 : spec.controller) || void 0 === _g ? void 0 : _g.start) && void 0 !== _h ? _h : {}), pause = baseToAttribute(null !== (_k = null === (_j = null == spec ? void 0 : spec.controller) || void 0 === _j ? void 0 : _j.pause) && void 0 !== _k ? _k : {}), backward = baseToAttribute(null !== (_m = null === (_l = null == spec ? void 0 : spec.controller) || void 0 === _l ? void 0 : _l.backward) && void 0 !== _m ? _m : {}), forward = baseToAttribute(null !== (_p = null === (_o = null == spec ? void 0 : spec.controller) || void 0 === _o ? void 0 : _o.forward) && void 0 !== _p ? _p : {});
18
18
  return Object.assign(Object.assign({}, spec), {
19
19
  direction: spec.direction,
20
20
  interval: spec.interval,
21
21
  visible: spec.visible,
22
- orient: spec.orient,
22
+ orient: null !== (_q = spec.orient) && void 0 !== _q ? _q : "bottom",
23
23
  slider: Object.assign(Object.assign({}, spec.slider), {
24
24
  trackStyle: trackStyle,
25
25
  railStyle: railStyle,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/player/utils/transform.ts"],"names":[],"mappings":";;;AAIA,+CAAyD;AAMzD,MAAM,eAAe,GAAG,CAAC,QAAuB,EAAyB,EAAE;IACzE,MAAM,MAAM,qBACN,QAA6C,CAClD,CAAC;IAEF,OAAO,IAAA,0BAAkB,EAAC,MAAM,CAA0B,CAAC;AAC7D,CAAC,CAAC;AAKF,MAAM,iBAAiB,GAAG,CAAC,QAAyB,EAA2B,EAAE;IAC/E,MAAM,MAAM,qBACN,QAA+C,CACpD,CAAC;IAEF,OAAO,IAAA,0BAAkB,EAAC,MAAM,CAA4B,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAI,IAA8B,EAAE,EAAE;IAC5D,MAAM,MAAM,mCACP,IAAI,KACP,KAAK,oBACA,IAAA,0BAAkB,EAAC,IAAI,CAAC,KAAK,CAAC,IAEpC,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,IAAa,EAAE,EAAE;;IAEzC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,UAAU,mCAAI,EAAE,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,eAAe,CAAC,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,SAAS,mCAAI,EAAE,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,YAAY,mCAAI,EAAE,CAAC,CAAC;IAGzE,MAAM,KAAK,GAAG,eAAe,CAAkB,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,KAAK,mCAAI,EAAE,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,eAAe,CAAkB,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,KAAK,mCAAI,EAAE,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,eAAe,CAAkB,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,QAAQ,mCAAI,EAAE,CAAC,CAAC;IACpF,MAAM,OAAO,GAAG,eAAe,CAAkB,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,OAAO,mCAAI,EAAE,CAAC,CAAC;IAElF,uCACK,IAAI,KACP,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,MAAM,kCACD,IAAI,CAAC,MAAM,KACd,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,KAE5B,UAAU,kCACL,IAAI,CAAC,UAAU,KAClB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,OAElB;AACJ,CAAC,CAAC;AAKK,MAAM,8BAA8B,GAAG,CAAC,IAAa,EAAE,IAAa,EAA8B,EAAE,CAAC,iCACtG,gBAAgB,CAAC,IAAI,CAAS,KAClC,IAAI,EACJ,IAAI,EAAE,YAAY,IAClB,CAAC;AAJU,QAAA,8BAA8B,kCAIxC;AAEI,MAAM,4BAA4B,GAAG,CAAC,IAAa,EAAE,IAAa,EAA4B,EAAE,CAAC,iCAClG,gBAAgB,CAAC,IAAI,CAAS,KAClC,IAAI,EACJ,IAAI,EAAE,UAAU,IAChB,CAAC;AAJU,QAAA,4BAA4B,gCAItC","file":"transform.js","sourcesContent":["import type { ContinuousPlayerAttributes, DiscretePlayerAttributes, Datum } from '@visactor/vrender-components';\nimport type { IPlayer } from '../interface';\nimport type { IRectGraphicAttribute, ISymbolGraphicAttribute } from '@visactor/vrender-core';\nimport type { IRectMarkSpec, ISymbolMarkSpec } from '../../../typings';\nimport { transformToGraphic } from '../../../util/style';\nimport type { BaseGraphicAttributes } from '@visactor/vrender-components/es/core/type';\n\n/**\n * IRectMarkSpec => IRectGraphicAttribute\n */\nconst rectToAttribute = (markSpec: IRectMarkSpec): IRectGraphicAttribute => {\n const result: IRectGraphicAttribute = {\n ...(markSpec as unknown as IRectGraphicAttribute)\n };\n\n return transformToGraphic(result) as IRectGraphicAttribute;\n};\n\n/**\n * ISymbolMarkSpec => ISymbolGraphicAttribute\n */\nconst symbolToAttribute = (markSpec: ISymbolMarkSpec): ISymbolGraphicAttribute => {\n const result: ISymbolGraphicAttribute = {\n ...(markSpec as unknown as ISymbolGraphicAttribute)\n };\n\n return transformToGraphic(result) as ISymbolGraphicAttribute;\n};\n\nconst baseToAttribute = <T>(spec: BaseGraphicAttributes<T>) => {\n const result: BaseGraphicAttributes<T> = {\n ...spec,\n style: {\n ...transformToGraphic(spec.style)\n }\n };\n return result;\n};\n\nconst transformToAttrs = (spec: IPlayer) => {\n // slider\n const trackStyle = rectToAttribute(spec?.slider?.trackStyle ?? {});\n const railStyle = rectToAttribute(spec?.slider?.railStyle ?? {});\n const handlerStyle = symbolToAttribute(spec?.slider?.handlerStyle ?? {});\n\n // controllers\n const start = baseToAttribute<ISymbolMarkSpec>(spec?.controller?.start ?? {});\n const pause = baseToAttribute<ISymbolMarkSpec>(spec?.controller?.pause ?? {});\n const backward = baseToAttribute<ISymbolMarkSpec>(spec?.controller?.backward ?? {});\n const forward = baseToAttribute<ISymbolMarkSpec>(spec?.controller?.forward ?? {});\n\n return {\n ...spec,\n direction: spec.direction,\n interval: spec.interval,\n visible: spec.visible,\n orient: spec.orient,\n slider: {\n ...spec.slider,\n trackStyle: trackStyle,\n railStyle: railStyle,\n handlerStyle: handlerStyle\n },\n controller: {\n ...spec.controller,\n start: start,\n pause: pause,\n backward: backward,\n forward: forward\n }\n };\n};\n\n/**\n * 连续型播放器spec转换为Attrs\n */\nexport const transformContinuousSpecToAttrs = (spec: IPlayer, data: Datum[]): ContinuousPlayerAttributes => ({\n ...(transformToAttrs(spec) as any),\n data,\n type: 'continuous'\n});\n\nexport const transformDiscreteSpecToAttrs = (spec: IPlayer, data: Datum[]): DiscretePlayerAttributes => ({\n ...(transformToAttrs(spec) as any),\n data,\n type: 'discrete'\n});\n"]}
1
+ {"version":3,"sources":["../src/component/player/utils/transform.ts"],"names":[],"mappings":";;;AAIA,+CAAyD;AAMzD,MAAM,eAAe,GAAG,CAAC,QAAuB,EAAyB,EAAE;IACzE,MAAM,MAAM,qBACN,QAA6C,CAClD,CAAC;IAEF,OAAO,IAAA,0BAAkB,EAAC,MAAM,CAA0B,CAAC;AAC7D,CAAC,CAAC;AAKF,MAAM,iBAAiB,GAAG,CAAC,QAAyB,EAA2B,EAAE;IAC/E,MAAM,MAAM,qBACN,QAA+C,CACpD,CAAC;IAEF,OAAO,IAAA,0BAAkB,EAAC,MAAM,CAA4B,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAI,IAA8B,EAAE,EAAE;IAC5D,MAAM,MAAM,mCACP,IAAI,KACP,KAAK,oBACA,IAAA,0BAAkB,EAAC,IAAI,CAAC,KAAK,CAAC,IAEpC,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,IAAa,EAAE,EAAE;;IAEzC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,UAAU,mCAAI,EAAE,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,eAAe,CAAC,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,SAAS,mCAAI,EAAE,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,YAAY,mCAAI,EAAE,CAAC,CAAC;IAGzE,MAAM,KAAK,GAAG,eAAe,CAAkB,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,KAAK,mCAAI,EAAE,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,eAAe,CAAkB,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,KAAK,mCAAI,EAAE,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,eAAe,CAAkB,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,QAAQ,mCAAI,EAAE,CAAC,CAAC;IACpF,MAAM,OAAO,GAAG,eAAe,CAAkB,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,OAAO,mCAAI,EAAE,CAAC,CAAC;IAElF,uCACK,IAAI,KACP,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EAErB,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI,QAAQ,EAC/B,MAAM,kCACD,IAAI,CAAC,MAAM,KACd,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,KAE5B,UAAU,kCACL,IAAI,CAAC,UAAU,KAClB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,OAElB;AACJ,CAAC,CAAC;AAKK,MAAM,8BAA8B,GAAG,CAAC,IAAa,EAAE,IAAa,EAA8B,EAAE,CAAC,iCACtG,gBAAgB,CAAC,IAAI,CAAS,KAClC,IAAI,EACJ,IAAI,EAAE,YAAY,IAClB,CAAC;AAJU,QAAA,8BAA8B,kCAIxC;AAEI,MAAM,4BAA4B,GAAG,CAAC,IAAa,EAAE,IAAa,EAA4B,EAAE,CAAC,iCAClG,gBAAgB,CAAC,IAAI,CAAS,KAClC,IAAI,EACJ,IAAI,EAAE,UAAU,IAChB,CAAC;AAJU,QAAA,4BAA4B,gCAItC","file":"transform.js","sourcesContent":["import type { ContinuousPlayerAttributes, DiscretePlayerAttributes, Datum } from '@visactor/vrender-components';\nimport type { IPlayer } from '../interface';\nimport type { IRectGraphicAttribute, ISymbolGraphicAttribute } from '@visactor/vrender-core';\nimport type { IRectMarkSpec, ISymbolMarkSpec } from '../../../typings';\nimport { transformToGraphic } from '../../../util/style';\nimport type { BaseGraphicAttributes } from '@visactor/vrender-components/es/core/type';\n\n/**\n * IRectMarkSpec => IRectGraphicAttribute\n */\nconst rectToAttribute = (markSpec: IRectMarkSpec): IRectGraphicAttribute => {\n const result: IRectGraphicAttribute = {\n ...(markSpec as unknown as IRectGraphicAttribute)\n };\n\n return transformToGraphic(result) as IRectGraphicAttribute;\n};\n\n/**\n * ISymbolMarkSpec => ISymbolGraphicAttribute\n */\nconst symbolToAttribute = (markSpec: ISymbolMarkSpec): ISymbolGraphicAttribute => {\n const result: ISymbolGraphicAttribute = {\n ...(markSpec as unknown as ISymbolGraphicAttribute)\n };\n\n return transformToGraphic(result) as ISymbolGraphicAttribute;\n};\n\nconst baseToAttribute = <T>(spec: BaseGraphicAttributes<T>) => {\n const result: BaseGraphicAttributes<T> = {\n ...spec,\n style: {\n ...transformToGraphic(spec.style)\n }\n };\n return result;\n};\n\nconst transformToAttrs = (spec: IPlayer) => {\n // slider\n const trackStyle = rectToAttribute(spec?.slider?.trackStyle ?? {});\n const railStyle = rectToAttribute(spec?.slider?.railStyle ?? {});\n const handlerStyle = symbolToAttribute(spec?.slider?.handlerStyle ?? {});\n\n // controllers\n const start = baseToAttribute<ISymbolMarkSpec>(spec?.controller?.start ?? {});\n const pause = baseToAttribute<ISymbolMarkSpec>(spec?.controller?.pause ?? {});\n const backward = baseToAttribute<ISymbolMarkSpec>(spec?.controller?.backward ?? {});\n const forward = baseToAttribute<ISymbolMarkSpec>(spec?.controller?.forward ?? {});\n\n return {\n ...spec,\n direction: spec.direction,\n interval: spec.interval,\n visible: spec.visible,\n // 不配置默认值的话, set attr时会将undefined代入配置, 导致vrender默认配置失效\n orient: spec.orient ?? 'bottom',\n slider: {\n ...spec.slider,\n trackStyle: trackStyle,\n railStyle: railStyle,\n handlerStyle: handlerStyle\n },\n controller: {\n ...spec.controller,\n start: start,\n pause: pause,\n backward: backward,\n forward: forward\n }\n };\n};\n\n/**\n * 连续型播放器spec转换为Attrs\n */\nexport const transformContinuousSpecToAttrs = (spec: IPlayer, data: Datum[]): ContinuousPlayerAttributes => ({\n ...(transformToAttrs(spec) as any),\n data,\n type: 'continuous'\n});\n\nexport const transformDiscreteSpecToAttrs = (spec: IPlayer, data: Datum[]): DiscretePlayerAttributes => ({\n ...(transformToAttrs(spec) as any),\n data,\n type: 'discrete'\n});\n"]}
@@ -1,10 +1,14 @@
1
1
  import type { IComponent } from '../../interface';
2
2
  import type { ITextGraphicAttribute, IRichTextCharacter, RichTextWordBreak } from '@visactor/vrender-core';
3
- import type { IOrientType, IPadding } from '../../../typings';
3
+ import type { IOrientType, IPadding, StringOrNumber } from '../../../typings';
4
4
  import type { IComponentSpec } from '../../base/interface';
5
- interface ITitleSpecWithoutText extends Omit<IComponentSpec, 'orient'> {
5
+ export interface ITitleSpec extends Omit<IComponentSpec, 'orient'> {
6
6
  visible?: boolean;
7
7
  orient?: IOrientType;
8
+ text?: string | number | string[] | number[] | IRichTextCharacter[];
9
+ textType?: string;
10
+ subtext?: string | number | string[] | number[] | IRichTextCharacter[];
11
+ subtextType?: string;
8
12
  x?: number;
9
13
  y?: number;
10
14
  width?: number;
@@ -39,20 +43,5 @@ interface ITitleSpecWithoutText extends Omit<IComponentSpec, 'orient'> {
39
43
  character?: IRichTextCharacter[];
40
44
  } & Partial<ITextGraphicAttribute>;
41
45
  }
42
- export type ITitleTextSpec = {
43
- textType?: 'text';
44
- text: string | number | string[] | number[];
45
- } | {
46
- textType: 'rich';
47
- text: IRichTextCharacter[];
48
- };
49
- export type ISubTitleTextSpec = {
50
- subtextType?: 'text';
51
- subtext?: string | number | string[] | number[];
52
- } | {
53
- subtextType?: 'rich';
54
- subtext?: IRichTextCharacter[];
55
- };
56
- export type ITitleSpec = ITitleSpecWithoutText & ITitleTextSpec & ISubTitleTextSpec;
46
+ export type Text = StringOrNumber;
57
47
  export type ITitle = IComponent;
58
- export {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/component/title/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { IComponent } from '../../interface';\nimport type { ITextGraphicAttribute, IRichTextCharacter, RichTextWordBreak } from '@visactor/vrender-core';\nimport type { IOrientType, IPadding } from '../../../typings';\nimport type { IComponentSpec } from '../../base/interface';\n\ninterface ITitleSpecWithoutText extends Omit<IComponentSpec, 'orient'> {\n /**\n * 是否显示标题\n */\n visible?: boolean;\n /**\n * Title位置\n * @default 'top'\n */\n orient?: IOrientType;\n /**\n * 标题左上角x坐标像素值\n */\n x?: number;\n /**\n * 标题左上角y坐标像素值\n */\n y?: number;\n /**\n * 标题宽度\n */\n width?: number;\n /**\n * 标题高度\n */\n height?: number;\n /**\n * 最小宽度,像素值\n */\n minWidth?: number;\n /**\n * 最大宽度,像素值。当文字超过最大宽度时,会自动省略。\n */\n maxWidth?: number;\n /**\n * 最小高度,像素值\n */\n minHeight?: number;\n /**\n * 最大高度,像素值\n */\n maxHeight?: number;\n /**\n * 标题的边距留白\n */\n innerPadding?: IPadding | number | number[];\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 主标题样式\n */\n textStyle?: {\n width?: number;\n height?: number;\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 折行方式\n * 'break-word' | 'break-all'\n */\n wordBreak?: RichTextWordBreak;\n /**\n * 按照宽度限制自动折行或显示省略号(maxLineWidth)\n * 默认设置为title宽度\n */\n maxLineWidth?: number;\n /**\n * 高度限制控制显示内容及省略号(heightLimit)\n */\n heightLimit?: number;\n /**\n * 按照行数限制显示内容及省略号(lineClamp)\n */\n lineClamp?: number;\n /**\n * 富文本配置(暂时保留旧设置)\n * @deprecated use text & textType instead\n */\n character?: IRichTextCharacter[];\n } & Partial<ITextGraphicAttribute>;\n /**\n * 副标题样式\n */\n subtextStyle?: {\n /** 指定宽度 */\n width?: number;\n /** 指定高度 */\n height?: number;\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 折行方式\n * 'break-word' | 'break-all'\n */\n wordBreak?: RichTextWordBreak;\n /**\n * 按照宽度限制自动折行或显示省略号(maxLineWidth)\n * 默认设置为title宽度\n */\n maxLineWidth?: number;\n /**\n * 高度限制控制显示内容及省略号(heightLimit)\n */\n heightLimit?: number;\n /**\n * 按照行数限制显示内容及省略号(lineClamp)\n */\n lineClamp?: number;\n /**\n * 富文本配置(暂时保留旧设置)\n * @deprecated use subtext & subtextType instead\n */\n character?: IRichTextCharacter[];\n } & Partial<ITextGraphicAttribute>;\n}\n\nexport type ITitleTextSpec =\n | {\n /**\n * 主标题文本类型\n */\n textType?: 'text';\n /**\n * 主标题文本配置\n */\n text: string | number | string[] | number[];\n }\n | {\n /**\n * 主标题文本类型(默认类型为text)\n */\n textType: 'rich';\n /**\n * 主标题富文本内容\n */\n text: IRichTextCharacter[];\n };\n\nexport type ISubTitleTextSpec =\n | {\n /**\n * 副标题文本类型\n */\n subtextType?: 'text';\n /**\n * 副标题文本内容\n */\n subtext?: string | number | string[] | number[];\n }\n | {\n /**\n * 副标题文本类型\n */\n subtextType?: 'rich';\n\n /**\n * 副标题富文本内容\n */\n subtext?: IRichTextCharacter[];\n };\n\nexport type ITitleSpec = ITitleSpecWithoutText & ITitleTextSpec & ISubTitleTextSpec;\n\nexport type ITitle = IComponent;\n"]}
1
+ {"version":3,"sources":["../src/component/title/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { IComponent } from '../../interface';\nimport type { ITextGraphicAttribute, IRichTextCharacter, RichTextWordBreak } from '@visactor/vrender-core';\nimport type { IOrientType, IPadding, StringOrNumber } from '../../../typings';\nimport type { IComponentSpec } from '../../base/interface';\n\nexport interface ITitleSpec extends Omit<IComponentSpec, 'orient'> {\n /**\n * 是否显示标题\n */\n visible?: boolean;\n /**\n * Title位置\n * @default 'top'\n */\n orient?: IOrientType;\n /**\n * 主标题文本内容\n * - 支持富文本配置\n */\n text?: string | number | string[] | number[] | IRichTextCharacter[];\n /**\n * 主标题文本类型(默认类型为text)\n * text, rich, html\n */\n textType?: string;\n /**\n * 副标题文本内容\n * - 支持富文本配置\n */\n subtext?: string | number | string[] | number[] | IRichTextCharacter[];\n /**\n * 副标题文本类型(默认类型为text)\n * text, rich, html\n */\n subtextType?: string;\n /**\n * 标题左上角x坐标像素值\n */\n x?: number;\n /**\n * 标题左上角y坐标像素值\n */\n y?: number;\n /**\n * 标题宽度\n */\n width?: number;\n /**\n * 标题高度\n */\n height?: number;\n /**\n * 最小宽度,像素值\n */\n minWidth?: number;\n /**\n * 最大宽度,像素值。当文字超过最大宽度时,会自动省略。\n */\n maxWidth?: number;\n /**\n * 最小高度,像素值\n */\n minHeight?: number;\n /**\n * 最大高度,像素值\n */\n maxHeight?: number;\n /**\n * 标题的边距留白\n */\n innerPadding?: IPadding | number | number[];\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 主标题样式\n */\n textStyle?: {\n width?: number;\n height?: number;\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 折行方式\n * 'break-word' | 'break-all'\n */\n wordBreak?: RichTextWordBreak;\n /**\n * 按照宽度限制自动折行或显示省略号(maxLineWidth)\n * 默认设置为title宽度\n */\n maxLineWidth?: number;\n /**\n * 高度限制控制显示内容及省略号(heightLimit)\n */\n heightLimit?: number;\n /**\n * 按照行数限制显示内容及省略号(lineClamp)\n */\n lineClamp?: number;\n /**\n * 富文本配置(暂时保留旧设置)\n * @deprecated use text & textType instead\n */\n character?: IRichTextCharacter[];\n } & Partial<ITextGraphicAttribute>;\n /**\n * 副标题样式\n */\n subtextStyle?: {\n /** 指定宽度 */\n width?: number;\n /** 指定高度 */\n height?: number;\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 折行方式\n * 'break-word' | 'break-all'\n */\n wordBreak?: RichTextWordBreak;\n /**\n * 按照宽度限制自动折行或显示省略号(maxLineWidth)\n * 默认设置为title宽度\n */\n maxLineWidth?: number;\n /**\n * 高度限制控制显示内容及省略号(heightLimit)\n */\n heightLimit?: number;\n /**\n * 按照行数限制显示内容及省略号(lineClamp)\n */\n lineClamp?: number;\n /**\n * 富文本配置(暂时保留旧设置)\n * @deprecated use subtext & subtextType instead\n */\n character?: IRichTextCharacter[];\n } & Partial<ITextGraphicAttribute>;\n}\n\nexport type Text = StringOrNumber;\n\nexport type ITitle = IComponent;\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.10.0-alpha.0";
4
+ export declare const version = "1.10.0-alpha.1";
5
5
  export type { IVChart } from './interface';
6
6
  export type { IStateSpec, StateValueType } from '../compile/mark';
7
7
  export * from '../typings/spec/common';
package/cjs/core/index.js CHANGED
@@ -35,7 +35,7 @@ Object.defineProperty(exports, "Factory", {
35
35
  get: function() {
36
36
  return factory_1.Factory;
37
37
  }
38
- }), exports.version = "1.10.0-alpha.0", __exportStar(require("../typings/spec/common"), exports),
38
+ }), exports.version = "1.10.0-alpha.1", __exportStar(require("../typings/spec/common"), exports),
39
39
  __exportStar(require("../event/interface"), exports), __exportStar(require("../theme/interface"), exports),
40
40
  __exportStar(require("../constant"), exports), __exportStar(require("./interface"), exports),
41
41
  __exportStar(require("../typings/spec/index"), exports), __exportStar(require("../theme/index"), exports);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,qCAAkC;AAGzB,uFAHA,eAAM,OAGA;AAFf,uCAAoC;AAEnB,wFAFR,iBAAO,OAEQ;AAGX,QAAA,OAAO,GAAG,gBAAgB,CAAC;AAMxC,yDAAuC;AACvC,qDAAmC;AACnC,qDAAmC;AACnC,8CAA4B;AAC5B,8CAA4B;AAK5B,wDAAsC;AAGtC,iDAA+B;AAG/B,uDAAiD;AAAxC,uGAAA,OAAO,OAAA;AAGhB,4CAA0B","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.10.0-alpha.0\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\n\nexport * from '../typings/spec/common';\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from '../constant';\nexport * from './interface';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport { vglobal } from '@visactor/vrender-core';\n\n// plugin\nexport * from '../plugin';\n"]}
1
+ {"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAIA,qCAAkC;AAGzB,uFAHA,eAAM,OAGA;AAFf,uCAAoC;AAEnB,wFAFR,iBAAO,OAEQ;AAGX,QAAA,OAAO,GAAG,gBAAgB,CAAC;AAMxC,yDAAuC;AACvC,qDAAmC;AACnC,qDAAmC;AACnC,8CAA4B;AAC5B,8CAA4B;AAK5B,wDAAsC;AAGtC,iDAA+B;AAG/B,uDAAiD;AAAxC,uGAAA,OAAO,OAAA;AAGhB,4CAA0B","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.10.0-alpha.1\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\n\nexport * from '../typings/spec/common';\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from '../constant';\nexport * from './interface';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport { vglobal } from '@visactor/vrender-core';\n\n// plugin\nexport * from '../plugin';\n"]}
@@ -22,15 +22,15 @@ const pie = (originData, op) => {
22
22
  const angleFieldValue = transformInvalidValue(data[index][angleField]);
23
23
  total += angleFieldValue, max = Math.max(angleFieldValue, max), data[index][polar_1.ARC_TRANSFORM_VALUE] = angleFieldValue;
24
24
  }
25
- const angleRange = endAngle - startAngle;
25
+ const valueList = data.map((d => Number(d[angleField]))), angleRange = endAngle - startAngle;
26
26
  let lastAngle = startAngle, restAngle = angleRange, largeThanMinAngleTotal = 0;
27
- if (data.forEach((d => {
27
+ if (data.forEach(((d, i) => {
28
28
  const angleFieldValue = d[polar_1.ARC_TRANSFORM_VALUE], ratio = total ? angleFieldValue / total : 0;
29
29
  let radian = ratio * angleRange;
30
30
  radian < minAngle ? (radian = minAngle, restAngle -= minAngle) : largeThanMinAngleTotal += angleFieldValue;
31
31
  const dStartAngle = lastAngle, dEndAngle = lastAngle + radian;
32
- d[asRatio] = ratio, d[asK] = max ? angleFieldValue / max : 0, appendArcInfo(d, dStartAngle, radian),
33
- lastAngle = dEndAngle;
32
+ d[asRatio] = ratio, d[asK] = max ? angleFieldValue / max : 0, d._percent_ = (0,
33
+ math_1.getPercentValue)(valueList, i), appendArcInfo(d, dStartAngle, radian), lastAngle = dEndAngle;
34
34
  })), restAngle < angleRange) if (restAngle <= .001) {
35
35
  const angle = angleRange / data.length;
36
36
  data.forEach(((d, index) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data/transforms/pie.ts"],"names":[],"mappings":"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","file":"pie.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { Datum } from '../../typings';\nimport { couldBeValidNumber } from '../../util/type';\nimport { computeQuadrant } from '../../util/math';\nimport { ARC_TRANSFORM_VALUE } from '../../constant/polar';\n\nexport interface IPieOpt {\n angleField: string;\n\n startAngle: number;\n endAngle: number;\n minAngle: number;\n\n asStartAngle: string;\n asEndAngle: string;\n asMiddleAngle: string;\n asRadian: string;\n asRatio: string;\n asQuadrant: string;\n asK: string;\n}\n\nfunction transformInvalidValue(value: any) {\n if (!couldBeValidNumber(value)) {\n return 0;\n }\n return Number.parseFloat(value);\n}\n\nexport const pie = (originData: Array<DataView>, op: IPieOpt) => {\n const data = originData.map((datum: Datum) => ({ ...datum }));\n if (!data || data.length === 0) {\n return data;\n }\n const {\n angleField,\n startAngle,\n endAngle,\n minAngle,\n asStartAngle,\n asEndAngle,\n asMiddleAngle,\n asRadian,\n asRatio,\n asQuadrant,\n asK\n } = op;\n\n const appendArcInfo = (data: Datum, startAngle: number, angle: number) => {\n data[asStartAngle] = startAngle;\n data[asEndAngle] = startAngle + angle;\n data[asMiddleAngle] = startAngle + angle / 2;\n data[asRadian] = angle;\n data[asQuadrant] = computeQuadrant(startAngle + angle / 2);\n };\n\n let total = 0;\n let max = -Infinity;\n for (let index = 0; index < data.length; index++) {\n const angleFieldValue = transformInvalidValue(data[index][angleField]);\n total += angleFieldValue;\n max = Math.max(angleFieldValue, max);\n\n data[index][ARC_TRANSFORM_VALUE] = angleFieldValue;\n }\n\n const angleRange = endAngle - startAngle;\n let lastAngle = startAngle;\n let restAngle = angleRange;\n let largeThanMinAngleTotal = 0;\n\n data.forEach(d => {\n const angleFieldValue = d[ARC_TRANSFORM_VALUE];\n const ratio = total ? angleFieldValue / total : 0;\n let radian = ratio * angleRange;\n\n if (radian < minAngle) {\n radian = minAngle;\n restAngle -= minAngle;\n } else {\n largeThanMinAngleTotal += angleFieldValue;\n }\n\n const dStartAngle = lastAngle;\n const dEndAngle = lastAngle + radian;\n\n d[asRatio] = ratio;\n d[asK] = max ? angleFieldValue / max : 0;\n appendArcInfo(d, dStartAngle, radian);\n\n lastAngle = dEndAngle;\n });\n\n if (restAngle < angleRange) {\n if (restAngle <= 1e-3) {\n const angle = angleRange / data.length;\n data.forEach((d, index) => {\n appendArcInfo(d, startAngle + index * angle, angle);\n });\n } else {\n const unitRadian = restAngle / largeThanMinAngleTotal;\n lastAngle = startAngle;\n data.forEach(d => {\n const angle = d[asRadian] === minAngle ? minAngle : d[ARC_TRANSFORM_VALUE] * unitRadian;\n appendArcInfo(d, lastAngle, angle);\n\n lastAngle += angle;\n });\n }\n }\n\n if (total !== 0) {\n // 数据都为 0 时,起始角和结束角相同,不应该强制赋值\n // 防止一个扇区的角度会因为浮点数精度问题和传入的 endAngle 不相等\n data[data.length - 1][asEndAngle] = endAngle;\n }\n return data;\n};\n"]}
1
+ {"version":3,"sources":["../src/data/transforms/pie.ts"],"names":[],"mappings":"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","file":"pie.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { Datum } from '../../typings';\nimport { couldBeValidNumber } from '../../util/type';\nimport { computeQuadrant, getPercentValue } from '../../util/math';\nimport { ARC_TRANSFORM_VALUE } from '../../constant/polar';\n\nexport interface IPieOpt {\n angleField: string;\n\n startAngle: number;\n endAngle: number;\n minAngle: number;\n\n asStartAngle: string;\n asEndAngle: string;\n asMiddleAngle: string;\n asRadian: string;\n asRatio: string;\n asQuadrant: string;\n asK: string;\n}\n\nfunction transformInvalidValue(value: any) {\n if (!couldBeValidNumber(value)) {\n return 0;\n }\n return Number.parseFloat(value);\n}\n\nexport const pie = (originData: Array<DataView>, op: IPieOpt) => {\n const data = originData.map((datum: Datum) => ({ ...datum }));\n if (!data || data.length === 0) {\n return data;\n }\n const {\n angleField,\n startAngle,\n endAngle,\n minAngle,\n asStartAngle,\n asEndAngle,\n asMiddleAngle,\n asRadian,\n asRatio,\n asQuadrant,\n asK\n } = op;\n\n const appendArcInfo = (data: Datum, startAngle: number, angle: number) => {\n data[asStartAngle] = startAngle;\n data[asEndAngle] = startAngle + angle;\n data[asMiddleAngle] = startAngle + angle / 2;\n data[asRadian] = angle;\n data[asQuadrant] = computeQuadrant(startAngle + angle / 2);\n };\n\n let total = 0;\n let max = -Infinity;\n for (let index = 0; index < data.length; index++) {\n const angleFieldValue = transformInvalidValue(data[index][angleField]);\n total += angleFieldValue;\n max = Math.max(angleFieldValue, max);\n\n data[index][ARC_TRANSFORM_VALUE] = angleFieldValue;\n }\n\n const valueList = data.map(d => Number(d[angleField]));\n const angleRange = endAngle - startAngle;\n let lastAngle = startAngle;\n let restAngle = angleRange;\n let largeThanMinAngleTotal = 0;\n\n data.forEach((d, i) => {\n const angleFieldValue = d[ARC_TRANSFORM_VALUE];\n const ratio = total ? angleFieldValue / total : 0;\n let radian = ratio * angleRange;\n\n if (radian < minAngle) {\n radian = minAngle;\n restAngle -= minAngle;\n } else {\n largeThanMinAngleTotal += angleFieldValue;\n }\n\n const dStartAngle = lastAngle;\n const dEndAngle = lastAngle + radian;\n\n d[asRatio] = ratio;\n d[asK] = max ? angleFieldValue / max : 0;\n d._percent_ = getPercentValue(valueList, i);\n appendArcInfo(d, dStartAngle, radian);\n\n lastAngle = dEndAngle;\n });\n\n if (restAngle < angleRange) {\n if (restAngle <= 1e-3) {\n const angle = angleRange / data.length;\n data.forEach((d, index) => {\n appendArcInfo(d, startAngle + index * angle, angle);\n });\n } else {\n const unitRadian = restAngle / largeThanMinAngleTotal;\n lastAngle = startAngle;\n data.forEach(d => {\n const angle = d[asRadian] === minAngle ? minAngle : d[ARC_TRANSFORM_VALUE] * unitRadian;\n appendArcInfo(d, lastAngle, angle);\n\n lastAngle += angle;\n });\n }\n }\n\n if (total !== 0) {\n // 数据都为 0 时,起始角和结束角相同,不应该强制赋值\n // 防止一个扇区的角度会因为浮点数精度问题和传入的 endAngle 不相等\n data[data.length - 1][asEndAngle] = endAngle;\n }\n return data;\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import type { IComponentMark } from './component';
2
2
  import type { IMark } from './interface/common';
3
3
  import { MarkTypeEnum } from './interface/type';
4
- import { ITextMark, TextMark } from './text';
4
+ import { TextMark } from './text';
5
5
  export declare class LabelMark extends TextMark implements ILabelMark {
6
6
  static readonly type = MarkTypeEnum.text;
7
7
  static readonly constructorType = MarkTypeEnum.label;
@@ -16,7 +16,7 @@ export declare class LabelMark extends TextMark implements ILabelMark {
16
16
  getComponent(): IMark;
17
17
  setComponent(component: IMark): void;
18
18
  }
19
- export interface ILabelMark extends ITextMark {
19
+ export interface ILabelMark extends IMark {
20
20
  skipEncode: boolean;
21
21
  getRule: () => string;
22
22
  setRule: (rule: string) => void;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark/label.ts"],"names":[],"mappings":";;;AAAA,2DAA8D;AAC9D,+CAA4C;AAI5C,iCAA6C;AAE7C,MAAa,SAAU,SAAQ,eAAQ;IAAvC;;QAIE,eAAU,GAAG,KAAK,CAAC;IA4BrB,CAAC;IAzBC,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAGD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,SAAS,CAAC,MAAa;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC3B;IACH,CAAC;IAGD,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,YAAY,CAAC,SAAgB;QAC3B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;;AA/BH,8BAgCC;AA/BiB,cAAI,UAAqB;AACzB,yBAAe,WAAsB;AA6ChD,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,iBAAO,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAC3D,IAAA,mCAAmB,GAAE,CAAC;AACxB,CAAC,CAAC;AAHW,QAAA,iBAAiB,qBAG5B","file":"label.js","sourcesContent":["import { registerTextGraphic } from '@visactor/vgrammar-core';\nimport { Factory } from './../core/factory';\nimport type { IComponentMark } from './component';\nimport type { IMark } from './interface/common';\nimport { MarkTypeEnum } from './interface/type';\nimport { ITextMark, TextMark } from './text';\n\nexport class LabelMark extends TextMark implements ILabelMark {\n static readonly type = MarkTypeEnum.text;\n static readonly constructorType = MarkTypeEnum.label;\n\n skipEncode = false;\n\n private _rule: string;\n getRule() {\n return this._rule;\n }\n setRule(rule: string) {\n this._rule = rule;\n }\n\n private _target: IMark;\n getTarget() {\n return this._target;\n }\n setTarget(target: IMark) {\n this._target = target;\n if (!this._rule) {\n this.setRule(target.type);\n }\n }\n\n private _component: IMark;\n getComponent() {\n return this._component;\n }\n setComponent(component: IMark) {\n this._component = component;\n }\n}\n\nexport interface ILabelMark extends ITextMark {\n skipEncode: boolean;\n\n getRule: () => string;\n setRule: (rule: string) => void;\n\n getTarget: () => IMark;\n setTarget: (target: IMark) => void;\n\n getComponent: () => IComponentMark;\n setComponent: (component: IComponentMark) => void;\n}\n\nexport const registerLabelMark = () => {\n Factory.registerMark(LabelMark.constructorType, LabelMark);\n registerTextGraphic();\n};\n"]}
1
+ {"version":3,"sources":["../src/mark/label.ts"],"names":[],"mappings":";;;AAAA,2DAA8D;AAC9D,+CAA4C;AAI5C,iCAAkC;AAElC,MAAa,SAAU,SAAQ,eAAQ;IAAvC;;QAIE,eAAU,GAAG,KAAK,CAAC;IA4BrB,CAAC;IAzBC,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAGD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,SAAS,CAAC,MAAa;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC3B;IACH,CAAC;IAGD,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,YAAY,CAAC,SAAgB;QAC3B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;;AA/BH,8BAgCC;AA/BiB,cAAI,UAAqB;AACzB,yBAAe,WAAsB;AA6ChD,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,iBAAO,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAC3D,IAAA,mCAAmB,GAAE,CAAC;AACxB,CAAC,CAAC;AAHW,QAAA,iBAAiB,qBAG5B","file":"label.js","sourcesContent":["import { registerTextGraphic } from '@visactor/vgrammar-core';\nimport { Factory } from './../core/factory';\nimport type { IComponentMark } from './component';\nimport type { IMark } from './interface/common';\nimport { MarkTypeEnum } from './interface/type';\nimport { TextMark } from './text';\n\nexport class LabelMark extends TextMark implements ILabelMark {\n static readonly type = MarkTypeEnum.text;\n static readonly constructorType = MarkTypeEnum.label;\n\n skipEncode = false;\n\n private _rule: string;\n getRule() {\n return this._rule;\n }\n setRule(rule: string) {\n this._rule = rule;\n }\n\n private _target: IMark;\n getTarget() {\n return this._target;\n }\n setTarget(target: IMark) {\n this._target = target;\n if (!this._rule) {\n this.setRule(target.type);\n }\n }\n\n private _component: IMark;\n getComponent() {\n return this._component;\n }\n setComponent(component: IMark) {\n this._component = component;\n }\n}\n\nexport interface ILabelMark extends IMark {\n skipEncode: boolean;\n\n getRule: () => string;\n setRule: (rule: string) => void;\n\n getTarget: () => IMark;\n setTarget: (target: IMark) => void;\n\n getComponent: () => IComponentMark;\n setComponent: (component: IComponentMark) => void;\n}\n\nexport const registerLabelMark = () => {\n Factory.registerMark(LabelMark.constructorType, LabelMark);\n registerTextGraphic();\n};\n"]}
@@ -1,22 +1,13 @@
1
- import type { IComposedTextMarkSpec } from '../typings/visual';
1
+ import type { ITextMarkSpec } from '../typings/visual';
2
2
  import { BaseMark } from './base/base-mark';
3
- import type { IMarkOption, IMarkRaw, IMarkStyle } from './interface';
3
+ import type { IMarkRaw, IMarkStyle } from './interface';
4
4
  import { MarkTypeEnum } from './interface';
5
- import { IMarkSpec } from '../typings/spec/common';
6
- export type ITextMark = IMarkRaw<IComposedTextMarkSpec> & {
7
- getTextType: () => 'text' | 'rich';
8
- };
9
- export type ITextSpec<T> = IMarkSpec<T> & {
10
- textType?: 'rich' | 'text';
11
- };
12
- export declare class TextMark extends BaseMark<IComposedTextMarkSpec> implements ITextMark {
5
+ import type { IGroupMark } from '@visactor/vgrammar-core';
6
+ export type ITextMark = IMarkRaw<ITextMarkSpec>;
7
+ export declare class TextMark extends BaseMark<ITextMarkSpec> implements ITextMark {
13
8
  static readonly type = MarkTypeEnum.text;
14
9
  readonly type = MarkTypeEnum.text;
15
- protected _textType: 'text' | 'rich';
16
- getTextType(): "text" | "rich";
17
- constructor(name: string, option: IMarkOption);
18
- protected _getDefaultStyle(): IMarkStyle<IComposedTextMarkSpec>;
19
- initStyleWithSpec(spec: ITextSpec<IComposedTextMarkSpec>, key?: string): void;
20
- compileEncode(): void;
10
+ protected _getDefaultStyle(): IMarkStyle<ITextMarkSpec>;
11
+ protected _initProduct(group?: string | IGroupMark): void;
21
12
  }
22
13
  export declare const registerTextMark: () => void;