@zerodep-dev/vue-tsx-pro-ui 0.3.3 → 0.4.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 (117) hide show
  1. package/dist/charts/AreaChart.d.ts +1 -1
  2. package/dist/charts/AreaChart.js +6 -48
  3. package/dist/charts/AreaChart.js.map +1 -1
  4. package/dist/charts/BarChart.js +6 -49
  5. package/dist/charts/BarChart.js.map +1 -1
  6. package/dist/charts/ChordChart.d.ts +7 -2
  7. package/dist/charts/ChordChart.js +151 -60
  8. package/dist/charts/ChordChart.js.map +1 -1
  9. package/dist/charts/ComboChart.d.ts +2 -1
  10. package/dist/charts/ComboChart.js +17 -93
  11. package/dist/charts/ComboChart.js.map +1 -1
  12. package/dist/charts/DonutChart.d.ts +6 -1
  13. package/dist/charts/DonutChart.js +134 -51
  14. package/dist/charts/DonutChart.js.map +1 -1
  15. package/dist/charts/FunnelChart.js.map +1 -1
  16. package/dist/charts/GraphChart.d.ts +22 -10
  17. package/dist/charts/GraphChart.js +415 -175
  18. package/dist/charts/GraphChart.js.map +1 -1
  19. package/dist/charts/LineChart.d.ts +1 -29
  20. package/dist/charts/LineChart.js +6 -54
  21. package/dist/charts/LineChart.js.map +1 -1
  22. package/dist/charts/MapChart.d.ts +21 -48
  23. package/dist/charts/MapChart.js +426 -353
  24. package/dist/charts/MapChart.js.map +1 -1
  25. package/dist/charts/RadarChart.js.map +1 -1
  26. package/dist/charts/SankeyChart.d.ts +7 -2
  27. package/dist/charts/SankeyChart.js +164 -76
  28. package/dist/charts/SankeyChart.js.map +1 -1
  29. package/dist/charts/ScatterChart.d.ts +7 -1
  30. package/dist/charts/ScatterChart.js +45 -30
  31. package/dist/charts/ScatterChart.js.map +1 -1
  32. package/dist/charts/TimelineChart.d.ts +8 -1
  33. package/dist/charts/TimelineChart.js +141 -89
  34. package/dist/charts/TimelineChart.js.map +1 -1
  35. package/dist/charts/TreemapChart.d.ts +6 -0
  36. package/dist/charts/TreemapChart.js +174 -58
  37. package/dist/charts/TreemapChart.js.map +1 -1
  38. package/dist/charts/WaterfallChart.d.ts +6 -7
  39. package/dist/charts/WaterfallChart.js +46 -51
  40. package/dist/charts/WaterfallChart.js.map +1 -1
  41. package/dist/charts/XYChart.d.ts +44 -35
  42. package/dist/charts/XYChart.js +493 -281
  43. package/dist/charts/XYChart.js.map +1 -1
  44. package/dist/charts/axis-ticks.d.ts +1 -1
  45. package/dist/charts/axis-ticks.js +4 -5
  46. package/dist/charts/axis-ticks.js.map +1 -1
  47. package/dist/charts/flow.d.ts +4 -11
  48. package/dist/charts/flow.js +4 -4
  49. package/dist/charts/flow.js.map +1 -1
  50. package/dist/charts/frame.d.ts +6 -30
  51. package/dist/charts/frame.js +6 -99
  52. package/dist/charts/frame.js.map +1 -1
  53. package/dist/charts/geo/projection.d.ts +45 -0
  54. package/dist/charts/geo/projection.js +201 -0
  55. package/dist/charts/geo/projection.js.map +1 -0
  56. package/dist/charts/geo/topojson.d.ts +50 -0
  57. package/dist/charts/geo/topojson.js +119 -0
  58. package/dist/charts/geo/topojson.js.map +1 -0
  59. package/dist/charts/index.d.ts +21 -9
  60. package/dist/charts/index.js +19 -8
  61. package/dist/charts/label-layout.js.map +1 -1
  62. package/dist/charts/layout/chord.d.ts +44 -0
  63. package/dist/charts/layout/chord.js +45 -0
  64. package/dist/charts/layout/chord.js.map +1 -0
  65. package/dist/charts/layout/graph.d.ts +49 -0
  66. package/dist/charts/layout/graph.js +268 -0
  67. package/dist/charts/layout/graph.js.map +1 -0
  68. package/dist/charts/layout/sankey.d.ts +79 -0
  69. package/dist/charts/layout/sankey.js +200 -0
  70. package/dist/charts/layout/sankey.js.map +1 -0
  71. package/dist/charts/layout/treemap.d.ts +46 -0
  72. package/dist/charts/layout/treemap.js +152 -0
  73. package/dist/charts/layout/treemap.js.map +1 -0
  74. package/dist/charts/marks.d.ts +79 -0
  75. package/dist/charts/marks.js +231 -0
  76. package/dist/charts/marks.js.map +1 -0
  77. package/dist/charts/plot.d.ts +107 -0
  78. package/dist/charts/plot.js +231 -0
  79. package/dist/charts/plot.js.map +1 -0
  80. package/dist/charts/scale.d.ts +29 -0
  81. package/dist/charts/scale.js +244 -0
  82. package/dist/charts/scale.js.map +1 -0
  83. package/dist/charts/shape.d.ts +46 -0
  84. package/dist/charts/shape.js +131 -0
  85. package/dist/charts/shape.js.map +1 -0
  86. package/dist/charts/stack.d.ts +17 -0
  87. package/dist/charts/stack.js +35 -0
  88. package/dist/charts/stack.js.map +1 -0
  89. package/dist/charts/text-size.d.ts +12 -0
  90. package/dist/charts/text-size.js +32 -0
  91. package/dist/charts/text-size.js.map +1 -0
  92. package/dist/config/createUi.d.ts +21 -2
  93. package/dist/config/createUi.js +18 -1
  94. package/dist/config/createUi.js.map +1 -1
  95. package/dist/config/theme/preference.js +2 -1
  96. package/dist/config/theme/preference.js.map +1 -1
  97. package/dist/index.d.ts +2 -2
  98. package/dist/maps/china-provinces.js +35680 -0
  99. package/dist/maps/china-provinces.js.map +1 -0
  100. package/dist/maps/china.d.ts +13 -0
  101. package/dist/maps/china.js +8 -0
  102. package/dist/maps/china.js.map +1 -0
  103. package/dist/maps/index.d.ts +9 -0
  104. package/dist/maps/index.js +3 -0
  105. package/dist/maps/world-countries.js +22273 -0
  106. package/dist/maps/world-countries.js.map +1 -0
  107. package/dist/maps/world.d.ts +13 -0
  108. package/dist/maps/world.js +8 -0
  109. package/dist/maps/world.js.map +1 -0
  110. package/dist/overlay/detached.js.map +1 -1
  111. package/dist/utils/request/use-request.d.ts +25 -1
  112. package/dist/utils/request/use-request.js +35 -3
  113. package/dist/utils/request/use-request.js.map +1 -1
  114. package/package.json +7 -8
  115. package/dist/charts/single.d.ts +0 -41
  116. package/dist/charts/single.js +0 -66
  117. package/dist/charts/single.js.map +0 -1
@@ -1,25 +1,12 @@
1
- /**
2
- * 直角坐标图表(柱状图、折线图、面积图)的公共部分:坐标轴、十字线与提示框、数值范围;外层结构(图例、单位、
3
- * 空与加载状态、给读屏的数据表)交给 ChartFrame。
4
- * 绘图交给 Unovis 的 XYContainer:组件实例只建一次,数据与配置变化时 update,卸载时 destroy;
5
- * 绘图区换了元素(加载、空状态之后重新出现)时容器连同全部实例一起重建。
6
- * 各种图只决定画什么(kind.components),坐标轴、十字线、提示框、配色都在这里统一。
7
- * 目标线(targets)用 Unovis 的 Plotline。点了下钻(onItemClick):有图形可点的图(柱子)按图形的点击事件
8
- * (kind.itemSelector),折线、面积图按十字线所在的那一行,散点图按悬停的点。
9
- *
10
- * 标注(annotations):类目上的事件画成竖线(Plotline),圈出某个系列的值画成空心圈带文字(Scatter);
11
- * 区间(bands)画成浅色的带(Plotband)。百分比堆叠(kind.percent)按每个类目里各系列的占比画。
12
- * 第二数值轴(kind.secondary,组合图):刻度与主轴对齐(alignedTicks),第二轴的系列换算到主轴的坐标里画,
13
- * 右侧的刻度文字是不裁剪的 Plotline 标签。
14
- */
15
- import { type XYComponentCore } from '@unovis/ts';
16
1
  import { css } from '@zerodep-dev/vue-tsx-pro-tsx/styles';
17
- import { type VNodeChild } from 'vue';
2
+ import type { VNodeChild } from 'vue';
18
3
  import { type NumericFormat } from '../config/lang/format';
19
4
  import { type NumericValue } from '../utils/data/numeric';
20
5
  import type { PartProps } from '../utils/props';
21
6
  import { type ChartFrameParts, type ChartTable, type ChartTooltipItem } from './frame';
7
+ import { type PlotRect } from './plot';
22
8
  import { type ChartColor, type ChartSeries, type ResolvedSeries } from './series';
9
+ import { type StackSegment } from './stack';
23
10
  /** 目标线(参考线):数值轴上的一条虚线 */
24
11
  export interface ChartTarget {
25
12
  /** 位置:数值轴上的值 */
@@ -130,26 +117,42 @@ export interface XYChartProps<T extends object> extends PartProps<'div', 'role'
130
117
  /** 缩放的区间 [起, 止]:类目的位置,含两端;父级可以写 _zoomRange={range},null 是全部 */
131
118
  _zoomRange?: [number, number] | null;
132
119
  }
133
- /** 交给各种图的绘制上下文 */
120
+ /** 交给各种图的绘制上下文:坐标都是 SVG 里的 px */
134
121
  export interface XYChartContext<T extends object> {
135
122
  /** 显示中的系列(去掉了图例里隐藏的),颜色已定 */
136
123
  series: ResolvedSeries<T>[];
137
- /** 类目的位置:第几行 */
138
- x: (row: T, index: number) => number;
139
- /** 系列的取值函数,空值返回 undefined(Unovis 跳过) */
140
- y: (series: ResolvedSeries<T>) => (row: T) => number | undefined;
141
- /** 取一个跨渲染保留的组件实例:第一次调用时创建;Unovis 组件保留实例,更新时才有过渡动画 */
142
- instance: <C>(key: string, create: () => C) => C;
143
- /** 点图形下钻的事件(写了 itemSelector 时):并进组件的 events;没有 onItemClick 时是空的。参数同 Unovis:图形的数据、事件、位置 */
144
- events: Record<string, Record<string, (row: T, event: Event, index: number) => void>>;
124
+ /** 画的行(缩放时是选中的一段) */
125
+ rows: readonly T[];
126
+ /** 横向:类目在纵轴、数值在横轴 */
127
+ horizontal: boolean;
128
+ /** 绘图区(坐标轴以内) */
129
+ plot: PlotRect;
130
+ /** 一个类目在类目轴上占的长度:柱按它定宽 */
131
+ step: number;
132
+ /** 数值轴的范围 */
133
+ domain: readonly [number, number];
134
+ /** 第 index 行在类目轴上的坐标(格子的中心);散点图是横轴数值的位置 */
135
+ category: (row: T, index: number) => number;
136
+ /** 数值 → 数值轴上的坐标 */
137
+ value: (value: number) => number;
138
+ /** 系列在一行上画的值:百分比堆叠时是占比,第二数值轴上的换算到主轴;空值 undefined */
139
+ valueOf: (series: ResolvedSeries<T>, row: T) => number | undefined;
140
+ /** 堆叠(kind.stacked)后各系列每一行的一段:系列的 key → 每行一段 */
141
+ stacks: ReadonlyMap<string, readonly StackSegment[]>;
142
+ /** 类目坐标、数值坐标 → SVG 的 [x, y](横向时对调) */
143
+ point: (category: number, value: number) => [number, number];
144
+ /** 指针所在的那一行(在 rows 里的位置),没有时为 null */
145
+ hovered: number | null;
145
146
  }
146
- /** 一种图:画哪些组件,以及与坐标轴、十字线有关的差别 */
147
+ /** 一种图:画什么,以及与坐标轴、十字线有关的差别 */
147
148
  export interface XYChartKind<T extends object> {
148
- /** 配置并返回要画的 Unovis 组件(每次数据或属性变化都会调用) */
149
- components: (context: XYChartContext<T>) => XYComponentCore<T>[];
149
+ /** 画出图形(坐标轴、网格、目标线、标注、十字线由 XYChart 画);每次数据、属性、悬停变化都会调用 */
150
+ render: (context: XYChartContext<T>) => VNodeChild;
151
+ /** 类目占一格(柱):图形画在格子中间、两端各留半格;不写时第一个、最后一个类目贴着两端(折线、面积) */
152
+ band?: boolean;
150
153
  /** 横向:类目在纵轴、数值在横轴 */
151
154
  horizontal?: boolean;
152
- /** 十字线上给每个系列画圆点(折线图、面积图);柱状图不画 */
155
+ /** 十字线上给每个系列画圆点(折线图、面积图);柱状图不画,悬停的类目铺一层浅底 */
153
156
  crosshairDots?: boolean;
154
157
  /** 加载中的骨架,默认 block */
155
158
  skeleton?: keyof ChartSkeletons;
@@ -162,6 +165,8 @@ export interface XYChartKind<T extends object> {
162
165
  };
163
166
  /** 数值范围按堆叠后的总和算(堆叠的柱子、面积) */
164
167
  stacked?: boolean;
168
+ /** 参与堆叠的系列(组合图只叠柱);不写时是全部显示中的系列 */
169
+ stackSeries?: (series: ResolvedSeries<T>) => boolean;
165
170
  /** 百分比堆叠:各系列按它在这个类目里的占比画(加起来 100%),数值轴是百分比,提示框带上占比 */
166
171
  percent?: boolean;
167
172
  /** 第二数值轴(组合图):这些系列画在右侧的轴上,刻度与主轴对齐 */
@@ -177,20 +182,18 @@ export interface XYChartKind<T extends object> {
177
182
  };
178
183
  /** 数值轴默认从 0 起(数据有负数时取负数);false 时按数据自动取(散点图) */
179
184
  zeroBaseline?: boolean;
180
- /** 提示框跟着数据点(散点图),没有十字线:按选择器触发,悬停的数据是这一行 */
181
- pointTooltip?: string;
185
+ /** 提示框跟着离指针最近的数据点(散点图),没有十字线 */
186
+ pointTooltip?: boolean;
182
187
  /** 提示框里列的项;不写时每个显示中的系列一行(瀑布图列变动与累计) */
183
188
  tooltipItems?: (row: T) => ChartTooltipItem[];
184
189
  /** 数值轴(主轴)的范围要包含的值;shown 是显示中的系列(第二数值轴的已去掉)。不写时按系列的值(stacked 时按正负各自的总和) */
185
190
  domainValues?: (rows: readonly T[], shown: readonly ResolvedSeries<T>[]) => number[];
186
191
  /** 给读屏的数据表;不写时类目一列加每个系列一列 */
187
192
  table?: (rows: readonly T[]) => ChartTable;
188
- /** 点哪种图形算点了这一行(柱子的选择器,图形绑定的数据是这一行);不写时按十字线所在的那一行 */
189
- itemSelector?: string;
190
193
  }
191
- /** XYChart 的样式:hideCrosshairLine 与加载中的骨架(外层结构的样式见 chartStyles) */
194
+ /** XYChart 的样式:缩放的滑块、加载中的骨架、标注(外层结构的样式见 chartStyles) */
192
195
  export declare const xyChartStyles: Readonly<{
193
- readonly hideCrosshairLine: css.CompiledStyles;
196
+ readonly svg: css.CompiledStyles;
194
197
  readonly skeleton: css.CompiledStyles;
195
198
  readonly zoom: css.CompiledStyles;
196
199
  readonly zoomSlider: css.CompiledStyles;
@@ -199,6 +202,12 @@ export declare const xyChartStyles: Readonly<{
199
202
  readonly skeletonBar: css.CompiledStyles;
200
203
  readonly skeletonBarSize: (percent: string) => Readonly<[css.CompiledStyles, css.InlineStyles]>;
201
204
  readonly skeletonBarSizeHorizontal: (percent: string) => Readonly<[css.CompiledStyles, css.InlineStyles]>;
205
+ readonly targetLine: css.CompiledStyles;
206
+ readonly eventLine: css.CompiledStyles;
207
+ readonly mark: css.CompiledStyles;
208
+ readonly crosshairDot: css.CompiledStyles;
209
+ readonly bandFill: (color: string) => Readonly<[css.CompiledStyles, css.InlineStyles]>;
210
+ readonly textFill: (color: string) => Readonly<[css.CompiledStyles, css.InlineStyles]>;
202
211
  }>;
203
212
  /** 直角坐标图表的公共实现(组件库内部用,见 BarChart、LineChart、AreaChart) */
204
213
  export declare const XYChart: <T extends object>(props: XYChartProps<T> & {