@orbcharts/core 3.0.0-alpha.60 → 3.0.0-alpha.62

Sign up to get free protection for your applications and to get access to all the features.
Files changed (215) hide show
  1. package/LICENSE +200 -200
  2. package/dist/lib/core-types.d.ts +1 -0
  3. package/dist/orbcharts-core.es.js +3056 -2609
  4. package/dist/orbcharts-core.umd.js +6 -2
  5. package/dist/src/AbstractChart.d.ts +5 -3
  6. package/dist/src/GridChart.d.ts +1 -1
  7. package/dist/src/MultiGridChart.d.ts +1 -1
  8. package/dist/src/MultiValueChart.d.ts +1 -1
  9. package/dist/src/RelationshipChart.d.ts +1 -1
  10. package/dist/src/SeriesChart.d.ts +1 -1
  11. package/dist/src/TreeChart.d.ts +1 -1
  12. package/dist/src/base/createBaseChart.d.ts +1 -1
  13. package/dist/src/base/createBasePlugin.d.ts +1 -1
  14. package/dist/src/base/validators/chartOptionsValidator.d.ts +3 -0
  15. package/dist/src/base/validators/chartParamsValidator.d.ts +3 -0
  16. package/dist/src/base/validators/elementValidator.d.ts +3 -0
  17. package/dist/src/base/validators/pluginsValidator.d.ts +3 -0
  18. package/dist/src/defaults.d.ts +1 -16
  19. package/dist/src/defineGridPlugin.d.ts +1 -1
  20. package/dist/src/defineMultiGridPlugin.d.ts +1 -1
  21. package/dist/src/defineMultiValuePlugin.d.ts +1 -1
  22. package/dist/src/defineNoneDataPlugin.d.ts +1 -1
  23. package/dist/src/defineRelationshipPlugin.d.ts +1 -1
  24. package/dist/src/defineSeriesPlugin.d.ts +1 -1
  25. package/dist/src/defineTreePlugin.d.ts +1 -1
  26. package/dist/src/grid/computedDataFn.d.ts +4 -0
  27. package/dist/src/grid/contextObserverCallback.d.ts +3 -0
  28. package/dist/src/grid/dataFormatterValidator.d.ts +3 -0
  29. package/dist/src/grid/dataValidator.d.ts +3 -0
  30. package/dist/src/index.d.ts +1 -1
  31. package/dist/src/multiGrid/computedDataFn.d.ts +3 -0
  32. package/dist/src/multiGrid/contextObserverCallback.d.ts +3 -0
  33. package/dist/src/multiGrid/dataFormatterValidator.d.ts +3 -0
  34. package/dist/src/multiGrid/dataValidator.d.ts +3 -0
  35. package/dist/src/multiValue/computedDataFn.d.ts +3 -0
  36. package/dist/src/multiValue/contextObserverCallback.d.ts +3 -0
  37. package/dist/src/multiValue/dataFormatterValidator.d.ts +3 -0
  38. package/dist/src/multiValue/dataValidator.d.ts +3 -0
  39. package/dist/src/relationship/computedDataFn.d.ts +3 -0
  40. package/dist/src/relationship/contextObserverCallback.d.ts +3 -0
  41. package/dist/src/relationship/dataFormatterValidator.d.ts +3 -0
  42. package/dist/src/relationship/dataValidator.d.ts +3 -0
  43. package/dist/src/series/computedDataFn.d.ts +3 -0
  44. package/dist/src/series/contextObserverCallback.d.ts +3 -0
  45. package/dist/src/series/dataFormatterValidator.d.ts +3 -0
  46. package/dist/src/series/dataValidator.d.ts +3 -0
  47. package/dist/src/tree/computedDataFn.d.ts +3 -0
  48. package/dist/src/tree/contextObserverCallback.d.ts +3 -0
  49. package/dist/src/tree/dataFormatterValidator.d.ts +3 -0
  50. package/dist/src/tree/dataValidator.d.ts +3 -0
  51. package/dist/src/utils/commonUtils.d.ts +1 -0
  52. package/dist/src/utils/errorMessage.d.ts +14 -0
  53. package/dist/src/{grid → utils}/gridObservables.d.ts +2 -2
  54. package/dist/src/utils/index.d.ts +7 -3
  55. package/dist/src/{multiGrid → utils}/multiGridObservables.d.ts +1 -1
  56. package/dist/src/utils/observables.d.ts +2 -1
  57. package/dist/src/utils/orbchartsUtils.d.ts +1 -12
  58. package/dist/src/{series → utils}/seriesObservables.d.ts +3 -3
  59. package/dist/src/{tree → utils}/treeObservables.d.ts +1 -1
  60. package/dist/src/utils/validator.d.ts +3 -0
  61. package/lib/core-types.ts +7 -0
  62. package/package.json +42 -41
  63. package/src/AbstractChart.ts +57 -48
  64. package/src/GridChart.ts +24 -20
  65. package/src/MultiGridChart.ts +24 -20
  66. package/src/MultiValueChart.ts +24 -20
  67. package/src/RelationshipChart.ts +24 -20
  68. package/src/SeriesChart.ts +24 -20
  69. package/src/TreeChart.ts +24 -20
  70. package/src/base/createBaseChart.ts +500 -386
  71. package/src/base/createBasePlugin.ts +152 -95
  72. package/src/base/validators/chartOptionsValidator.ts +24 -0
  73. package/src/base/validators/chartParamsValidator.ts +134 -0
  74. package/src/base/validators/elementValidator.ts +14 -0
  75. package/src/base/validators/pluginsValidator.ts +15 -0
  76. package/src/defaults.ts +232 -226
  77. package/src/defineGridPlugin.ts +3 -3
  78. package/src/defineMultiGridPlugin.ts +3 -3
  79. package/src/defineMultiValuePlugin.ts +3 -3
  80. package/src/defineNoneDataPlugin.ts +4 -4
  81. package/src/defineRelationshipPlugin.ts +3 -3
  82. package/src/defineSeriesPlugin.ts +3 -3
  83. package/src/defineTreePlugin.ts +3 -3
  84. package/src/grid/{computeGridData.ts → computedDataFn.ts} +129 -134
  85. package/src/grid/{createGridContextObserver.ts → contextObserverCallback.ts} +155 -155
  86. package/src/grid/dataFormatterValidator.ts +9 -0
  87. package/src/grid/dataValidator.ts +9 -0
  88. package/src/index.ts +20 -21
  89. package/src/multiGrid/{computeMultiGridData.ts → computedDataFn.ts} +123 -130
  90. package/src/multiGrid/{createMultiGridContextObserver.ts → contextObserverCallback.ts} +41 -41
  91. package/src/multiGrid/dataFormatterValidator.ts +9 -0
  92. package/src/multiGrid/dataValidator.ts +9 -0
  93. package/src/multiValue/{computeMultiValueData.ts → computedDataFn.ts} +176 -179
  94. package/src/multiValue/{createMultiValueContextObserver.ts → contextObserverCallback.ts} +12 -12
  95. package/src/multiValue/dataFormatterValidator.ts +9 -0
  96. package/src/multiValue/dataValidator.ts +9 -0
  97. package/src/relationship/{computeRelationshipData.ts → computedDataFn.ts} +125 -118
  98. package/src/relationship/{createRelationshipContextObserver.ts → contextObserverCallback.ts} +12 -12
  99. package/src/relationship/dataFormatterValidator.ts +9 -0
  100. package/src/relationship/dataValidator.ts +9 -0
  101. package/src/series/{computeSeriesData.ts → computedDataFn.ts} +88 -90
  102. package/src/series/{createSeriesContextObserver.ts → contextObserverCallback.ts} +100 -93
  103. package/src/series/dataFormatterValidator.ts +9 -0
  104. package/src/series/dataValidator.ts +9 -0
  105. package/src/tree/{computeTreeData.ts → computedDataFn.ts} +130 -132
  106. package/src/tree/{createTreeContextObserver.ts → contextObserverCallback.ts} +61 -61
  107. package/src/tree/dataFormatterValidator.ts +9 -0
  108. package/src/tree/dataValidator.ts +9 -0
  109. package/src/utils/commonUtils.ts +54 -50
  110. package/src/utils/d3Utils.ts +108 -108
  111. package/src/utils/errorMessage.ts +43 -0
  112. package/src/{grid → utils}/gridObservables.ts +611 -614
  113. package/src/utils/index.ts +10 -4
  114. package/src/{multiGrid → utils}/multiGridObservables.ts +366 -365
  115. package/src/utils/observables.ts +218 -202
  116. package/src/utils/orbchartsUtils.ts +352 -349
  117. package/src/{series → utils}/seriesObservables.ts +175 -175
  118. package/src/{tree → utils}/treeObservables.ts +94 -94
  119. package/src/utils/validator.ts +126 -0
  120. package/tsconfig.base.json +13 -13
  121. package/tsconfig.json +2 -2
  122. package/vite-env.d.ts +7 -0
  123. package/vite.config.js +22 -22
  124. package/dist/src/grid/computeGridData.d.ts +0 -6
  125. package/dist/src/grid/createGridContextObserver.d.ts +0 -3
  126. package/dist/src/multiGrid/computeMultiGridData.d.ts +0 -3
  127. package/dist/src/multiGrid/createMultiGridContextObserver.d.ts +0 -3
  128. package/dist/src/multiValue/computeMultiValueData.d.ts +0 -3
  129. package/dist/src/multiValue/createMultiValueContextObserver.d.ts +0 -3
  130. package/dist/src/relationship/computeRelationshipData.d.ts +0 -3
  131. package/dist/src/relationship/createRelationshipContextObserver.d.ts +0 -3
  132. package/dist/src/series/computeSeriesData.d.ts +0 -3
  133. package/dist/src/series/createSeriesContextObserver.d.ts +0 -3
  134. package/dist/src/tree/computeTreeData.d.ts +0 -3
  135. package/dist/src/tree/createTreeContextObserver.d.ts +0 -3
  136. package/dist/src/types/Axis.d.ts +0 -1
  137. package/dist/src/types/Chart.d.ts +0 -45
  138. package/dist/src/types/ChartParams.d.ts +0 -36
  139. package/dist/src/types/ComputedData.d.ts +0 -42
  140. package/dist/src/types/ComputedDataGrid.d.ts +0 -5
  141. package/dist/src/types/ComputedDataMultiGrid.d.ts +0 -3
  142. package/dist/src/types/ComputedDataMultiValue.d.ts +0 -6
  143. package/dist/src/types/ComputedDataRelationship.d.ts +0 -18
  144. package/dist/src/types/ComputedDataSeries.d.ts +0 -5
  145. package/dist/src/types/ComputedDataTree.d.ts +0 -7
  146. package/dist/src/types/ContextObserver.d.ts +0 -28
  147. package/dist/src/types/ContextObserverGrid.d.ts +0 -41
  148. package/dist/src/types/ContextObserverMultiGrid.d.ts +0 -15
  149. package/dist/src/types/ContextObserverMultiValue.d.ts +0 -4
  150. package/dist/src/types/ContextObserverRelationship.d.ts +0 -4
  151. package/dist/src/types/ContextObserverSeries.d.ts +0 -27
  152. package/dist/src/types/ContextObserverTree.d.ts +0 -11
  153. package/dist/src/types/ContextSubject.d.ts +0 -15
  154. package/dist/src/types/Data.d.ts +0 -19
  155. package/dist/src/types/DataFormatter.d.ts +0 -41
  156. package/dist/src/types/DataFormatterGrid.d.ts +0 -34
  157. package/dist/src/types/DataFormatterMultiGrid.d.ts +0 -20
  158. package/dist/src/types/DataFormatterMultiValue.d.ts +0 -18
  159. package/dist/src/types/DataFormatterRelationship.d.ts +0 -10
  160. package/dist/src/types/DataFormatterSeries.d.ts +0 -19
  161. package/dist/src/types/DataFormatterTree.d.ts +0 -7
  162. package/dist/src/types/DataGrid.d.ts +0 -6
  163. package/dist/src/types/DataMultiGrid.d.ts +0 -6
  164. package/dist/src/types/DataMultiValue.d.ts +0 -7
  165. package/dist/src/types/DataRelationship.d.ts +0 -21
  166. package/dist/src/types/DataSeries.d.ts +0 -6
  167. package/dist/src/types/DataTree.d.ts +0 -15
  168. package/dist/src/types/Event.d.ts +0 -56
  169. package/dist/src/types/Layout.d.ts +0 -8
  170. package/dist/src/types/Padding.d.ts +0 -6
  171. package/dist/src/types/Plugin.d.ts +0 -37
  172. package/dist/src/types/TransformData.d.ts +0 -8
  173. package/dist/src/types/index.d.ts +0 -37
  174. package/src/types/Axis.ts +0 -1
  175. package/src/types/Chart.ts +0 -54
  176. package/src/types/ChartParams.ts +0 -51
  177. package/src/types/ComputedData.ts +0 -84
  178. package/src/types/ComputedDataGrid.ts +0 -14
  179. package/src/types/ComputedDataMultiGrid.ts +0 -3
  180. package/src/types/ComputedDataMultiValue.ts +0 -9
  181. package/src/types/ComputedDataRelationship.ts +0 -20
  182. package/src/types/ComputedDataSeries.ts +0 -8
  183. package/src/types/ComputedDataTree.ts +0 -20
  184. package/src/types/ContextObserver.ts +0 -38
  185. package/src/types/ContextObserverGrid.ts +0 -43
  186. package/src/types/ContextObserverMultiGrid.ts +0 -17
  187. package/src/types/ContextObserverMultiValue.ts +0 -5
  188. package/src/types/ContextObserverRelationship.ts +0 -5
  189. package/src/types/ContextObserverSeries.ts +0 -29
  190. package/src/types/ContextObserverTree.ts +0 -11
  191. package/src/types/ContextSubject.ts +0 -18
  192. package/src/types/Data.ts +0 -45
  193. package/src/types/DataFormatter.ts +0 -74
  194. package/src/types/DataFormatterGrid.ts +0 -68
  195. package/src/types/DataFormatterMultiGrid.ts +0 -45
  196. package/src/types/DataFormatterMultiValue.ts +0 -24
  197. package/src/types/DataFormatterRelationship.ts +0 -26
  198. package/src/types/DataFormatterSeries.ts +0 -20
  199. package/src/types/DataFormatterTree.ts +0 -12
  200. package/src/types/DataGrid.ts +0 -11
  201. package/src/types/DataMultiGrid.ts +0 -7
  202. package/src/types/DataMultiValue.ts +0 -12
  203. package/src/types/DataRelationship.ts +0 -28
  204. package/src/types/DataSeries.ts +0 -11
  205. package/src/types/DataTree.ts +0 -20
  206. package/src/types/Event.ts +0 -153
  207. package/src/types/Layout.ts +0 -12
  208. package/src/types/Padding.ts +0 -6
  209. package/src/types/Plugin.ts +0 -60
  210. package/src/types/TransformData.ts +0 -8
  211. package/src/types/index.ts +0 -37
  212. /package/dist/src/{multiValue → utils}/multiValueObservables.d.ts +0 -0
  213. /package/dist/src/{relationship → utils}/relationshipObservables.d.ts +0 -0
  214. /package/src/{multiValue → utils}/multiValueObservables.ts +0 -0
  215. /package/src/{relationship → utils}/relationshipObservables.ts +0 -0
@@ -1,10 +0,0 @@
1
- import { DataFormatterBase, DataFormatterBasePartial, VisibleFilter } from './DataFormatter';
2
-
3
- export interface DataFormatterRelationship extends DataFormatterBase<'relationship'> {
4
- visibleFilter: VisibleFilter<'relationship'>;
5
- categoryLabels: string[];
6
- }
7
- export interface DataFormatterRelationshipPartial extends DataFormatterBasePartial<'relationship'> {
8
- visibleFilter?: VisibleFilter<'relationship'>;
9
- categoryLabels?: string[];
10
- }
@@ -1,19 +0,0 @@
1
- import { ComputedDatumSeries } from './ComputedDataSeries';
2
- import { DataFormatterBase, DataFormatterBasePartial, VisibleFilter, DataFormatterContainer } from './DataFormatter';
3
-
4
- export interface DataFormatterSeries extends DataFormatterBase<'series'> {
5
- visibleFilter: VisibleFilter<'series'>;
6
- sort: ((a: ComputedDatumSeries, b: ComputedDatumSeries) => number) | null;
7
- seriesLabels: string[];
8
- container: DataFormatterContainer;
9
- separateSeries: boolean;
10
- sumSeries: boolean;
11
- }
12
- export interface DataFormatterSeriesPartial extends DataFormatterBasePartial<'series'> {
13
- visibleFilter?: VisibleFilter<'series'>;
14
- sort?: ((a: ComputedDatumSeries, b: ComputedDatumSeries) => number) | null;
15
- seriesLabels?: string[];
16
- container?: Partial<DataFormatterContainer>;
17
- separateSeries?: boolean;
18
- sumSeries?: boolean;
19
- }
@@ -1,7 +0,0 @@
1
- import { DataFormatterBase, VisibleFilter } from './DataFormatter';
2
-
3
- export interface DataFormatterTree extends DataFormatterBase<'tree'> {
4
- visibleFilter: VisibleFilter<'tree'>;
5
- categoryLabels: string[];
6
- }
7
- export type DataFormatterTreePartial = Partial<DataFormatterTree>;
@@ -1,6 +0,0 @@
1
- import { DatumBase, DatumValue } from './Data';
2
-
3
- export type DataGrid = (DataGridDatum | DataGridValue)[][];
4
- export type DataGridValue = number | null;
5
- export interface DataGridDatum extends DatumBase, DatumValue {
6
- }
@@ -1,6 +0,0 @@
1
- import { DataGrid, DataGridDatum, DataGridValue } from './DataGrid';
2
-
3
- export type DataMultiGrid = DataGrid[];
4
- export interface DataMultiGridDatum extends DataGridDatum {
5
- }
6
- export type DataMultiGridValue = DataGridValue;
@@ -1,7 +0,0 @@
1
- import { DatumBase, DatumValue } from './Data';
2
-
3
- export type DataMultiValue = (DataMultiValueDatum | DataMultiValueValue)[][];
4
- export type DataMultiValueValue = number;
5
- export interface DataMultiValueDatum extends DatumBase, DatumValue {
6
- categoryLabel?: string;
7
- }
@@ -1,21 +0,0 @@
1
- import { DatumBase } from './Data';
2
-
3
- export type DataRelationship = DataRelationshipObj | DataRelationshipList;
4
- export interface DataRelationshipObj {
5
- nodes: Node[];
6
- edges: Edge[];
7
- }
8
- export type DataRelationshipList = [
9
- Node[],
10
- Edge[]
11
- ];
12
- export interface Node extends DatumBase {
13
- id: string;
14
- value?: number;
15
- categoryLabel?: string;
16
- }
17
- export interface Edge extends DatumBase {
18
- start: string;
19
- end: string;
20
- value?: number;
21
- }
@@ -1,6 +0,0 @@
1
- import { DatumBase, DatumValue } from './Data';
2
-
3
- export type DataSeries = (DataSeriesDatum | DataSeriesValue)[][] | (DataSeriesDatum | DataSeriesValue)[];
4
- export type DataSeriesValue = number | null;
5
- export interface DataSeriesDatum extends DatumBase, DatumValue {
6
- }
@@ -1,15 +0,0 @@
1
- import { DatumBase } from './Data';
2
-
3
- export type DataTree = DataTreeObj | DataTreeDatum[];
4
- export interface DataTreeObj extends DatumBase {
5
- id: string;
6
- value?: number;
7
- children?: DataTreeObj[];
8
- categoryLabel?: string;
9
- }
10
- export interface DataTreeDatum extends DatumBase {
11
- id: string;
12
- value?: number;
13
- parent?: string;
14
- categoryLabel?: string;
15
- }
@@ -1,56 +0,0 @@
1
- import { ChartType } from './Chart';
2
- import { ComputedDataSeries, ComputedDatumSeries } from './ComputedDataSeries';
3
- import { ComputedDataGrid, ComputedDatumGrid } from './ComputedDataGrid';
4
- import { ComputedDataMultiGrid } from './ComputedDataMultiGrid';
5
- import { ComputedDataMultiValue, ComputedDatumMultiValue } from './ComputedDataMultiValue';
6
- import { ComputedDataRelationship, ComputedNode } from './ComputedDataRelationship';
7
- import { ComputedDataTree } from './ComputedDataTree';
8
- import { HighlightTarget } from './ChartParams';
9
-
10
- export type EventName = 'click' | 'mouseover' | 'mousemove' | 'mouseout' | 'dragstart' | 'drag' | 'dragend' | 'resize' | 'transitionMove' | 'transitionEnd';
11
- export type EventTypeMap<T extends ChartType> = T extends 'series' ? EventSeries : T extends 'grid' ? EventGrid : T extends 'multiGrid' ? EventMultiGrid : T extends 'multiValue' ? EventMultiValue : T extends 'relationship' ? EventRelationship : T extends 'tree' ? EventTree : EventBase<any>;
12
- export interface EventBase<T extends ChartType> {
13
- type: T;
14
- eventName: EventName;
15
- pluginName: string;
16
- event: MouseEvent | undefined;
17
- highlightTarget: HighlightTarget;
18
- tween?: number;
19
- }
20
- export interface EventBaseSeriesValue<DatumType, DataType> {
21
- data: DataType;
22
- series: DatumType[];
23
- seriesIndex: number;
24
- seriesLabel: string;
25
- datum: DatumType | null;
26
- }
27
- export interface EventBaseGridValue<DatumType, DataType> {
28
- data: DataType;
29
- gridIndex: number;
30
- series: DatumType[];
31
- seriesIndex: number;
32
- seriesLabel: string;
33
- groups: DatumType[];
34
- groupIndex: number;
35
- groupLabel: string;
36
- datum: DatumType | null;
37
- }
38
- export interface EventBaseCategoryValue<DatumType, DataType> {
39
- data: DataType;
40
- category: DatumType[];
41
- categoryIndex: number;
42
- categoryLabel: string;
43
- datum: DatumType | null;
44
- }
45
- export interface EventSeries extends EventBase<'series'>, EventBaseSeriesValue<ComputedDatumSeries, ComputedDataSeries> {
46
- }
47
- export interface EventGrid extends EventBase<'grid'>, EventBaseGridValue<ComputedDatumGrid, ComputedDataGrid> {
48
- }
49
- export interface EventMultiGrid extends EventBase<'multiGrid'>, EventBaseGridValue<ComputedDatumGrid, ComputedDataMultiGrid> {
50
- }
51
- export interface EventMultiValue extends EventBase<'multiValue'>, EventBaseCategoryValue<ComputedDatumMultiValue, ComputedDataMultiValue> {
52
- }
53
- export interface EventRelationship extends EventBase<'relationship'>, EventBaseCategoryValue<ComputedNode, ComputedDataRelationship> {
54
- }
55
- export interface EventTree extends EventBase<'tree'>, EventBaseCategoryValue<ComputedDataTree, ComputedDataTree> {
56
- }
@@ -1,8 +0,0 @@
1
- import { Padding } from './Padding';
2
-
3
- export interface Layout extends Padding {
4
- width: number;
5
- height: number;
6
- rootWidth: number;
7
- rootHeight: number;
8
- }
@@ -1,6 +0,0 @@
1
- export interface Padding {
2
- top: number;
3
- right: number;
4
- bottom: number;
5
- left: number;
6
- }
@@ -1,37 +0,0 @@
1
- import { Subject } from 'rxjs';
2
- import { ChartType } from './Chart';
3
- import { ContextSubject } from './ContextSubject';
4
- import { ContextObserverTypeMap } from './ContextObserver';
5
- import * as d3 from 'd3';
6
- export interface CreateBasePlugin {
7
- <T extends ChartType>(): DefinePlugin<T>;
8
- }
9
- export interface DefinePlugin<T extends ChartType> {
10
- <PluginName, PluginParams>(name: PluginName, defaultParams: PluginParams): DefinePluginInitFn<T, PluginName, PluginParams>;
11
- }
12
- export interface DefinePluginInitFn<T extends ChartType, PluginName, PluginParams> {
13
- (initFn: PluginInitFn<T, PluginName, PluginParams>): PluginConstructor<T, PluginName, PluginParams>;
14
- }
15
- export interface PluginConstructor<T extends ChartType, PluginName, PluginParams> {
16
- new (): PluginEntity<T, PluginName, PluginParams>;
17
- }
18
- export interface PluginEntity<T extends ChartType, PluginName, PluginParams> {
19
- params$: Subject<Partial<PluginParams>>;
20
- name: PluginName;
21
- defaultParams: PluginParams;
22
- init: () => void;
23
- destroy: () => void;
24
- setPresetParams: (presetParams: Partial<PluginParams>) => void;
25
- setContext: (pluginContext: PluginContext<T, PluginName, PluginParams>) => void;
26
- }
27
- export interface PluginInitFn<T extends ChartType, PluginName, PluginParams> {
28
- (pluginContext: PluginContext<T, PluginName, PluginParams>): () => void;
29
- }
30
- export interface PluginContext<T extends ChartType, PluginName, PluginParams> {
31
- selection: d3.Selection<any, unknown, any, unknown>;
32
- rootSelection: d3.Selection<any, unknown, any, unknown>;
33
- name: PluginName;
34
- chartType: ChartType;
35
- subject: ContextSubject<T>;
36
- observer: ContextObserverTypeMap<T, PluginParams>;
37
- }
@@ -1,8 +0,0 @@
1
- export interface TransformData {
2
- translate: [number, number];
3
- scale: [number, number];
4
- rotate: number;
5
- rotateX: number;
6
- rotateY: number;
7
- value: string;
8
- }
@@ -1,37 +0,0 @@
1
- export * from './Axis';
2
- export * from './Chart';
3
- export * from './ChartParams';
4
- export * from './ComputedData';
5
- export * from './ComputedDataGrid';
6
- export * from './ComputedDataMultiGrid';
7
- export * from './ComputedDataMultiValue';
8
- export * from './ComputedDataRelationship';
9
- export * from './ComputedDataSeries';
10
- export * from './ComputedDataTree';
11
- export * from './ContextObserver';
12
- export * from './ContextObserverGrid';
13
- export * from './ContextObserverMultiGrid';
14
- export * from './ContextObserverMultiValue';
15
- export * from './ContextObserverRelationship';
16
- export * from './ContextObserverSeries';
17
- export * from './ContextObserverTree';
18
- export * from './ContextSubject';
19
- export * from './Data';
20
- export * from './DataFormatter';
21
- export * from './DataFormatterGrid';
22
- export * from './DataFormatterMultiGrid';
23
- export * from './DataFormatterMultiValue';
24
- export * from './DataFormatterRelationship';
25
- export * from './DataFormatterSeries';
26
- export * from './DataFormatterTree';
27
- export * from './DataGrid';
28
- export * from './DataMultiGrid';
29
- export * from './DataMultiValue';
30
- export * from './DataRelationship';
31
- export * from './DataSeries';
32
- export * from './DataTree';
33
- export * from './Event';
34
- export * from './Layout';
35
- export * from './Padding';
36
- export * from './Plugin';
37
- export * from './TransformData';
package/src/types/Axis.ts DELETED
@@ -1 +0,0 @@
1
- export type AxisPosition = 'top' | 'bottom' | 'left' | 'right'
@@ -1,54 +0,0 @@
1
- import type { ChartParams, ChartParamsPartial } from './ChartParams'
2
- import type { ContextSubject } from './ContextSubject'
3
- import type { ContextObserverFn } from './ContextObserver'
4
- import type { ComputedDataFn } from './ComputedData'
5
- import type { DataFormatterTypeMap, DataFormatterPartialTypeMap } from './DataFormatter'
6
-
7
- export type ChartType = 'series' | 'grid' | 'multiGrid' | 'multiValue' | 'tree' | 'relationship'
8
-
9
- export interface CreateBaseChart {
10
- <T extends ChartType>({ defaultDataFormatter, computedDataFn, contextObserverFn }: {
11
- defaultDataFormatter: DataFormatterTypeMap<T>
12
- computedDataFn: ComputedDataFn<T>
13
- contextObserverFn: ContextObserverFn<T>
14
- }): CreateChart<T>
15
- }
16
-
17
-
18
- export interface CreateChart<T extends ChartType> {
19
- // (element: HTMLElement | Element, pluginParams: any[], chartParams?: Partial<ChartParams>): Chart<T>
20
- (element: HTMLElement | Element, options?: ChartOptionsPartial<T>): ChartEntity<T>
21
- }
22
-
23
- export interface ChartEntity<T extends ChartType> extends ContextSubject<T> {
24
- selection: d3.Selection<SVGGElement, unknown, HTMLElement, unknown>
25
- destroy: () => void
26
- }
27
-
28
- export interface ChartOptions<T extends ChartType> {
29
- preset: Preset<T, unknown>
30
- width: number | 'auto'
31
- height: number | 'auto'
32
- }
33
-
34
- export interface ChartOptionsPartial<T extends ChartType> {
35
- preset?: Preset<T, unknown>
36
- width?: number | 'auto'
37
- height?: number | 'auto'
38
- }
39
-
40
- export interface Preset<T extends ChartType, AllPluginParams> {
41
- name: string
42
- description: string
43
- chartParams: ChartParams
44
- dataFormatter: DataFormatterTypeMap<T>
45
- allPluginParams: AllPluginParams
46
- }
47
-
48
- export interface PresetPartial<T extends ChartType, AllPluginParams> {
49
- name?: string
50
- description?: string
51
- chartParams?: ChartParamsPartial
52
- dataFormatter?: DataFormatterPartialTypeMap<T>
53
- allPluginParams?: AllPluginParams
54
- }
@@ -1,51 +0,0 @@
1
- import type { Padding } from './Padding'
2
-
3
- export interface ChartParams {
4
- padding: Padding,
5
- highlightTarget: HighlightTarget
6
- highlightDefault: string | null
7
- colorScheme: 'dark' | 'light'
8
- colors: {
9
- light: ColorScheme
10
- dark: ColorScheme
11
- }
12
- styles: Styles
13
- transitionDuration: number
14
- transitionEase: string
15
- // [key: string]: any
16
- }
17
-
18
- export type ChartParamsPartial = Partial<ChartParams | {
19
- padding: Partial<Padding>,
20
- colors: Partial<{
21
- light: Partial<ColorScheme>
22
- dark: Partial<ColorScheme>
23
- }>
24
- styles: Partial<Styles>
25
- }>
26
-
27
- function test (): ChartParamsPartial {
28
- return {
29
- colorScheme: 'dark',
30
- padding: {
31
- top: 10
32
- }
33
- }
34
- }
35
-
36
- export type HighlightTarget = 'series' | 'group' | 'category' | 'datum' | 'none'
37
-
38
- export interface Styles {
39
- textSize: string | number
40
- unhighlightedOpacity: number
41
- }
42
-
43
- export interface ColorScheme {
44
- series: string[]
45
- primary: string
46
- secondary: string
47
- white: string
48
- background: string
49
- }
50
-
51
- export type ColorType = 'none' | keyof ColorScheme
@@ -1,84 +0,0 @@
1
- import type { ChartType } from './Chart'
2
- import type { ComputedDataSeries, ComputedDatumSeries } from './ComputedDataSeries'
3
- import type { ComputedDataGrid, ComputedDatumGrid } from './ComputedDataGrid'
4
- import type { ComputedDataMultiGrid } from './ComputedDataMultiGrid'
5
- import type { ComputedDataMultiValue, ComputedDatumMultiValue } from './ComputedDataMultiValue'
6
- import type { ComputedDataRelationship, ComputedNode } from './ComputedDataRelationship'
7
- import type { ComputedDataTree } from './ComputedDataTree'
8
- import type { DataFormatterContext } from './DataFormatter'
9
-
10
- export interface ComputedDataFn<T extends ChartType> {
11
- (dataFormatterContext: DataFormatterContext<T>): ComputedDataTypeMap<T>
12
- }
13
-
14
- // datum - 基本型本
15
- export interface ComputedDatumBase {
16
- id: string
17
- index: number
18
- label: string
19
- value: number | null
20
- visible: boolean
21
- description: string
22
- data: any // 使用者注入的資料
23
- }
24
-
25
- // datum - 單值
26
- // export interface ComputedDatumValue {
27
- // value: number | null
28
- // // valueLabel: string
29
- // }
30
-
31
- // datum - 多值
32
- // export interface ComputedDatumMultiValue {
33
- // value: number[]
34
- // valueLabels: string[]
35
- // }
36
-
37
- // datum - 圖軸
38
- // export interface ComputedDatumWithAxis {
39
- // axisX: number
40
- // axisY: number
41
- // }
42
-
43
- // datum - 序列資料
44
- export interface ComputedDatumSeriesValue {
45
- color: string
46
- seriesIndex: number
47
- seriesLabel: string
48
- seq: number
49
- }
50
-
51
- // datum - 矩陣資料
52
- export interface ComputedDatumGridValue {
53
- gridIndex: number
54
- color: string
55
- seriesIndex: number
56
- seriesLabel: string
57
- groupIndex: number
58
- groupLabel: string
59
- }
60
-
61
- // datum - 類別資料
62
- export interface ComputedDatumCategoryValue {
63
- color: string
64
- categoryIndex: number
65
- categoryLabel: string | null
66
- }
67
-
68
- // 透過類型選擇ComputedData
69
- export type ComputedDataTypeMap<T extends ChartType> = T extends 'series' ? ComputedDataSeries
70
- : T extends 'grid' ? ComputedDataGrid
71
- : T extends 'multiGrid' ? ComputedDataMultiGrid
72
- : T extends 'multiValue' ? ComputedDataMultiValue
73
- : T extends 'relationship' ? ComputedDataRelationship
74
- : T extends 'tree' ? ComputedDataTree
75
- : ComputedDatumBase
76
-
77
- // 透過類型選擇ComputedDatum
78
- export type ComputedDatumTypeMap<T extends ChartType> = T extends 'series' ? ComputedDatumSeries
79
- : T extends 'grid' ? ComputedDatumGrid
80
- : T extends 'multiGrid' ? ComputedDatumGrid
81
- : T extends 'multiValue' ? ComputedDatumMultiValue
82
- : T extends 'relationship' ? ComputedNode
83
- : T extends 'tree' ? ComputedDataTree
84
- : unknown
@@ -1,14 +0,0 @@
1
- import { ComputedDatumBase, ComputedDatumGridValue } from './ComputedData'
2
-
3
- export interface ComputedDatumGrid
4
- extends ComputedDatumBase, ComputedDatumGridValue {
5
- // accSeriesIndex: number // 每一個grid累加的seriesIndex
6
- // gridIndex: number
7
- // groupIndex: number
8
- // groupLabel: string
9
- // axisX: number
10
- // axisY: number
11
- // axisYFromZero: number
12
- }
13
-
14
- export type ComputedDataGrid = ComputedDatumGrid[][]
@@ -1,3 +0,0 @@
1
- import { ComputedDataGrid } from './ComputedDataGrid'
2
-
3
- export type ComputedDataMultiGrid = ComputedDataGrid[]
@@ -1,9 +0,0 @@
1
- import type { ComputedDatumBase, ComputedDatumCategoryValue } from './ComputedData'
2
-
3
- export type ComputedDataMultiValue = ComputedDatumMultiValue[][]
4
-
5
- export interface ComputedDatumMultiValue extends ComputedDatumBase, ComputedDatumCategoryValue {
6
- axis: number
7
- }
8
-
9
-
@@ -1,20 +0,0 @@
1
- import type { ComputedDatumBase, ComputedDatumCategoryValue } from './ComputedData'
2
-
3
- export type ComputedDataRelationship = {
4
- nodes: ComputedNode[]
5
- edges: ComputedEdge[]
6
- }
7
-
8
- export interface ComputedNode extends ComputedDatumBase, ComputedDatumCategoryValue {
9
- startNodes: ComputedNode[]
10
- startNodeIds: string[]
11
- endNodes: ComputedNode[]
12
- endNodeIds: string[]
13
- }
14
-
15
- export interface ComputedEdge extends ComputedDatumBase {
16
- startNode: ComputedNode
17
- startNodeId: string
18
- endNode: ComputedNode
19
- endNodeId: string
20
- }
@@ -1,8 +0,0 @@
1
- import { ComputedDatumBase, ComputedDatumSeriesValue } from './ComputedData'
2
-
3
- export interface ComputedDatumSeries
4
- extends ComputedDatumBase, ComputedDatumSeriesValue {
5
-
6
- }
7
-
8
- export type ComputedDataSeries = ComputedDatumSeries[][]
@@ -1,20 +0,0 @@
1
- import type { ComputedDatumBase, ComputedDatumCategoryValue } from './ComputedData'
2
-
3
- // export type ComputedDataTree = ComputedDataTreeDatum[]
4
-
5
- // export interface ComputedDataTreeDatum extends ComputedDatum {
6
- // // id: string
7
- // children: ComputedDataTreeDatum[]
8
- // childrenIds: string[]
9
- // // ChildrenMap: Map<string, ComputedDataTreeDatum>
10
- // parent: ComputedDataTreeDatum
11
- // parentId: string
12
- // value?: number
13
- // }
14
-
15
- // 樹狀結構
16
- export interface ComputedDataTree extends ComputedDatumBase, ComputedDatumCategoryValue {
17
- level: number
18
- seq: number
19
- children?: ComputedDataTree[]
20
- }
@@ -1,38 +0,0 @@
1
- import { Observable, Subject, BehaviorSubject } from 'rxjs'
2
- import type { ChartType } from './Chart'
3
- import type { ChartParams } from './ChartParams'
4
- import type { DataFormatterTypeMap } from './DataFormatter'
5
- import type { ComputedDataTypeMap } from './ComputedData'
6
- import type { Layout } from './Layout'
7
- import type { ContextObserverGrid } from './ContextObserverGrid'
8
- import type { ContextObserverMultiGrid } from './ContextObserverMultiGrid'
9
- import type { ContextObserverMultiValue } from './ContextObserverMultiValue'
10
- import type { ContextObserverRelationship } from './ContextObserverRelationship'
11
- import type { ContextObserverSeries } from './ContextObserverSeries'
12
- import type { ContextObserverTree } from './ContextObserverTree'
13
- import type { ContextSubject } from './ContextSubject'
14
-
15
- export interface ContextObserverFn<T extends ChartType> {
16
- ({ subject, observer }: {
17
- subject: ContextSubject<T>
18
- observer: ContextObserverBase<T, unknown>
19
- }): ContextObserverTypeMap<T, unknown>
20
- }
21
-
22
- // ContextObserver
23
- export type ContextObserverTypeMap<T extends ChartType, PluginParams> = T extends 'series' ? ContextObserverSeries<PluginParams>
24
- : T extends 'grid' ? ContextObserverGrid<PluginParams>
25
- : T extends 'multiGrid' ? ContextObserverMultiGrid<PluginParams>
26
- : T extends 'multiValue' ? ContextObserverMultiValue<PluginParams>
27
- : T extends 'relationship' ? ContextObserverRelationship<PluginParams>
28
- : T extends 'tree' ? ContextObserverTree<PluginParams>
29
- : ContextObserverBase<ChartType, PluginParams>
30
-
31
- export interface ContextObserverBase<T extends ChartType, PluginParams> {
32
- fullParams$: Observable<PluginParams>
33
- fullChartParams$: Observable<ChartParams>
34
- fullDataFormatter$: Observable<DataFormatterTypeMap<T>>
35
- computedData$: Observable<ComputedDataTypeMap<T>>
36
- layout$: Observable<Layout>
37
- }
38
-
@@ -1,43 +0,0 @@
1
- import { Observable } from 'rxjs'
2
- import type { ContextObserverBase } from './ContextObserver'
3
- import type { ComputedDataGrid, ComputedDatumGrid } from './ComputedDataGrid'
4
- import type { TransformData } from './TransformData'
5
-
6
- export interface ContextObserverGrid<PluginParams> extends
7
- ContextObserverBase<'grid', PluginParams>, ContextObserverGridDetail {
8
- textSizePx$: Observable<number>
9
- }
10
-
11
- export interface ContextObserverGridDetail {
12
- isSeriesSeprate$: Observable<boolean>
13
- gridContainerPosition$: Observable<GridContainerPosition[]>
14
- gridAxesTransform$: Observable<TransformData>
15
- gridAxesReverseTransform$: Observable<TransformData>
16
- gridGraphicTransform$: Observable<TransformData>
17
- gridGraphicReverseScale$: Observable<[number, number][]>
18
- gridAxesSize$: Observable<{ width: number; height: number; }>
19
- gridHighlight$: Observable<ComputedDatumGrid[]>
20
- seriesLabels$: Observable<string[]>
21
- SeriesDataMap$: Observable<Map<string, ComputedDatumGrid[]>>
22
- GroupDataMap$: Observable<Map<string, ComputedDatumGrid[]>>
23
- computedLayoutData$: Observable<ComputedLayoutDataGrid>
24
- visibleComputedData$: Observable<ComputedDataGrid>
25
- visibleComputedLayoutData$: Observable<ComputedLayoutDataGrid>
26
- computedStackedData$: Observable<ComputedDataGrid>
27
- }
28
-
29
- export type ComputedLayoutDataGrid = ComputedLayoutDatumGrid[][]
30
-
31
- export interface ComputedLayoutDatumGrid extends ComputedDatumGrid {
32
- axisX: number
33
- axisY: number
34
- axisYFromZero: number
35
- }
36
-
37
- export interface GridContainerPosition {
38
- slotIndex: number
39
- rowIndex: number
40
- columnIndex: number
41
- translate: [number, number]
42
- scale: [number, number]
43
- }
@@ -1,17 +0,0 @@
1
- import { Observable } from 'rxjs'
2
- import type { ContextObserverBase } from './ContextObserver'
3
- import type { ComputedDataGrid, ComputedDatumGrid } from './ComputedDataGrid'
4
- import type { DataFormatterGrid } from './DataFormatterGrid'
5
- import type { GridContainerPosition, ContextObserverGridDetail } from './ContextObserverGrid'
6
-
7
- export interface ContextObserverMultiGrid<PluginParams> extends ContextObserverBase<'multiGrid', PluginParams> {
8
- textSizePx$: Observable<number>
9
- multiGridContainerPosition$: Observable<GridContainerPosition[][]>
10
- multiGridEachDetail$: Observable<ContextObserverMultiGridDetail[]>
11
- }
12
-
13
-
14
- export interface ContextObserverMultiGridDetail extends ContextObserverGridDetail {
15
- computedData$: Observable<ComputedDataGrid>
16
- dataFormatter$: Observable<DataFormatterGrid>
17
- }
@@ -1,5 +0,0 @@
1
- import type { ContextObserverBase } from './ContextObserver'
2
-
3
- export interface ContextObserverMultiValue<PluginParams> extends ContextObserverBase<'multiValue', PluginParams> {
4
-
5
- }