@orbcharts/core 3.0.6 → 4.0.0-pre-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/LICENSE +200 -200
  2. package/dist/orbcharts-core.es.js +2795 -6591
  3. package/dist/orbcharts-core.umd.js +6 -6
  4. package/dist/src/OrbCharts.d.ts +18 -0
  5. package/dist/src/chart/createChart.d.ts +3 -0
  6. package/dist/src/chart/createGraphData.d.ts +3 -0
  7. package/dist/src/chart/createGridData.d.ts +3 -0
  8. package/dist/src/chart/createMultivariateData.d.ts +3 -0
  9. package/dist/src/chart/createSeriesData.d.ts +3 -0
  10. package/dist/src/chart/createTreeData.d.ts +3 -0
  11. package/dist/src/chart/defaults.d.ts +5 -0
  12. package/dist/src/defineCanvasLayer.d.ts +16 -0
  13. package/dist/src/defineCanvasPlugin.d.ts +22 -0
  14. package/dist/src/defineSVGLayer.d.ts +16 -0
  15. package/dist/src/defineSVGPlugin.d.ts +22 -0
  16. package/dist/src/index.d.ts +6 -14
  17. package/dist/src/layer/createLayer.d.ts +3 -0
  18. package/dist/src/plugin/createPlugin.d.ts +3 -0
  19. package/dist/src/test/createGraphData.test.d.ts +1 -0
  20. package/dist/src/test/createTreeData.test.d.ts +1 -0
  21. package/dist/src/test/simple-graph-test.d.ts +74 -0
  22. package/dist/src/test/simple-tree-test.d.ts +13 -0
  23. package/dist/src/types/Chart.d.ts +39 -0
  24. package/dist/src/types/ChartContext.d.ts +27 -0
  25. package/dist/src/types/Common.d.ts +3 -0
  26. package/dist/src/types/Encoding.d.ts +33 -0
  27. package/dist/src/types/Event.d.ts +12 -0
  28. package/dist/src/types/Layers.d.ts +55 -0
  29. package/dist/src/types/ModelData.d.ts +70 -0
  30. package/dist/src/types/Plugin.d.ts +39 -0
  31. package/dist/src/types/RawData.d.ts +18 -0
  32. package/dist/src/types/RenderData.d.ts +4 -0
  33. package/dist/src/types/Theme.d.ts +17 -0
  34. package/dist/src/types/Validator.d.ts +20 -0
  35. package/dist/src/types/index.d.ts +12 -0
  36. package/dist/src/utils/aggregateUtils.d.ts +37 -0
  37. package/dist/src/utils/colorUtils.d.ts +22 -0
  38. package/dist/src/utils/commonUtils.d.ts +3 -5
  39. package/dist/src/utils/dom-lifecycle.d.ts +37 -0
  40. package/dist/src/utils/dom.d.ts +6 -0
  41. package/dist/src/utils/index.d.ts +5 -1
  42. package/dist/src/utils/observables.d.ts +1 -25
  43. package/dist/src/utils/orbchartsUtils.d.ts +2 -53
  44. package/dist/src/utils/validator.d.ts +2 -2
  45. package/dist/test/aggregateTest.d.ts +1 -0
  46. package/package.json +59 -46
  47. package/src/OrbCharts.ts +35 -0
  48. package/src/chart/createChart.ts +997 -0
  49. package/src/chart/createGraphData.ts +391 -0
  50. package/src/chart/createGridData.ts +247 -0
  51. package/src/chart/createMultivariateData.ts +181 -0
  52. package/src/chart/createSeriesData.ts +297 -0
  53. package/src/chart/createTreeData.ts +344 -0
  54. package/src/chart/defaults.ts +100 -0
  55. package/src/defineCanvasLayer.ts +24 -0
  56. package/src/defineCanvasPlugin.ts +39 -0
  57. package/src/defineSVGLayer.ts +24 -0
  58. package/src/defineSVGPlugin.ts +39 -0
  59. package/src/index.ts +8 -20
  60. package/src/layer/createLayer.ts +138 -0
  61. package/src/plugin/createPlugin.ts +470 -0
  62. package/src/test/createGraphData.test.ts +103 -0
  63. package/src/test/createTreeData.test.ts +97 -0
  64. package/src/test/simple-graph-test.js +51 -0
  65. package/src/test/simple-tree-test.js +58 -0
  66. package/src/types/Chart.ts +62 -0
  67. package/src/types/ChartContext.ts +42 -0
  68. package/src/types/Common.ts +5 -0
  69. package/src/types/Encoding.ts +43 -0
  70. package/src/types/Event.ts +26 -0
  71. package/src/types/Layers.ts +93 -0
  72. package/src/types/ModelData.ts +95 -0
  73. package/src/types/Plugin.ts +98 -0
  74. package/src/types/RawData.ts +67 -0
  75. package/src/types/RenderData.ts +16 -0
  76. package/src/types/Theme.ts +21 -0
  77. package/src/types/Validator.ts +36 -0
  78. package/src/types/index.ts +12 -0
  79. package/src/utils/aggregateUtils.ts +99 -0
  80. package/src/utils/colorUtils.ts +63 -0
  81. package/src/utils/commonUtils.ts +56 -55
  82. package/src/utils/dom-lifecycle.ts +164 -0
  83. package/src/utils/dom.ts +55 -0
  84. package/src/utils/errorMessage.ts +40 -40
  85. package/src/utils/index.ts +8 -4
  86. package/src/utils/observables.ts +16 -308
  87. package/src/utils/orbchartsUtils.ts +9 -396
  88. package/src/utils/validator.ts +127 -126
  89. package/dist/lib/core-types.d.ts +0 -1
  90. package/dist/src/AbstractChart.d.ts +0 -19
  91. package/dist/src/GridChart.d.ts +0 -6
  92. package/dist/src/MultiGridChart.d.ts +0 -6
  93. package/dist/src/MultiValueChart.d.ts +0 -6
  94. package/dist/src/RelationshipChart.d.ts +0 -6
  95. package/dist/src/SeriesChart.d.ts +0 -6
  96. package/dist/src/TreeChart.d.ts +0 -6
  97. package/dist/src/base/createBaseChart.d.ts +0 -3
  98. package/dist/src/base/createBasePlugin.d.ts +0 -3
  99. package/dist/src/base/validators/chartOptionsValidator.d.ts +0 -3
  100. package/dist/src/base/validators/chartParamsValidator.d.ts +0 -3
  101. package/dist/src/base/validators/elementValidator.d.ts +0 -3
  102. package/dist/src/base/validators/pluginsValidator.d.ts +0 -3
  103. package/dist/src/defaults.d.ts +0 -25
  104. package/dist/src/defineGridPlugin.d.ts +0 -1
  105. package/dist/src/defineMultiGridPlugin.d.ts +0 -1
  106. package/dist/src/defineMultiValuePlugin.d.ts +0 -1
  107. package/dist/src/defineNoneDataPlugin.d.ts +0 -1
  108. package/dist/src/defineRelationshipPlugin.d.ts +0 -1
  109. package/dist/src/defineSeriesPlugin.d.ts +0 -1
  110. package/dist/src/defineTreePlugin.d.ts +0 -1
  111. package/dist/src/grid/computedDataFn.d.ts +0 -4
  112. package/dist/src/grid/contextObserverCallback.d.ts +0 -3
  113. package/dist/src/grid/dataFormatterValidator.d.ts +0 -3
  114. package/dist/src/grid/dataValidator.d.ts +0 -3
  115. package/dist/src/grid/gridObservables.d.ts +0 -64
  116. package/dist/src/multiGrid/computedDataFn.d.ts +0 -3
  117. package/dist/src/multiGrid/contextObserverCallback.d.ts +0 -3
  118. package/dist/src/multiGrid/dataFormatterValidator.d.ts +0 -3
  119. package/dist/src/multiGrid/dataValidator.d.ts +0 -3
  120. package/dist/src/multiGrid/multiGridObservables.d.ts +0 -16
  121. package/dist/src/multiValue/computedDataFn.d.ts +0 -3
  122. package/dist/src/multiValue/contextObserverCallback.d.ts +0 -3
  123. package/dist/src/multiValue/dataFormatterValidator.d.ts +0 -3
  124. package/dist/src/multiValue/dataValidator.d.ts +0 -3
  125. package/dist/src/multiValue/multiValueObservables.d.ts +0 -130
  126. package/dist/src/relationship/computedDataFn.d.ts +0 -3
  127. package/dist/src/relationship/contextObserverCallback.d.ts +0 -3
  128. package/dist/src/relationship/dataFormatterValidator.d.ts +0 -3
  129. package/dist/src/relationship/dataValidator.d.ts +0 -3
  130. package/dist/src/relationship/relationshipObservables.d.ts +0 -13
  131. package/dist/src/series/computedDataFn.d.ts +0 -3
  132. package/dist/src/series/contextObserverCallback.d.ts +0 -3
  133. package/dist/src/series/dataFormatterValidator.d.ts +0 -3
  134. package/dist/src/series/dataValidator.d.ts +0 -3
  135. package/dist/src/series/seriesObservables.d.ts +0 -37
  136. package/dist/src/tree/computedDataFn.d.ts +0 -3
  137. package/dist/src/tree/contextObserverCallback.d.ts +0 -3
  138. package/dist/src/tree/dataFormatterValidator.d.ts +0 -3
  139. package/dist/src/tree/dataValidator.d.ts +0 -3
  140. package/dist/src/tree/treeObservables.d.ts +0 -10
  141. package/dist/src/utils/d3Scale.d.ts +0 -28
  142. package/lib/core-types.ts +0 -7
  143. package/src/AbstractChart.ts +0 -57
  144. package/src/GridChart.ts +0 -25
  145. package/src/MultiGridChart.ts +0 -25
  146. package/src/MultiValueChart.ts +0 -25
  147. package/src/RelationshipChart.ts +0 -25
  148. package/src/SeriesChart.ts +0 -25
  149. package/src/TreeChart.ts +0 -25
  150. package/src/base/createBaseChart.ts +0 -524
  151. package/src/base/createBasePlugin.ts +0 -154
  152. package/src/base/validators/chartOptionsValidator.ts +0 -24
  153. package/src/base/validators/chartParamsValidator.ts +0 -134
  154. package/src/base/validators/elementValidator.ts +0 -14
  155. package/src/base/validators/pluginsValidator.ts +0 -15
  156. package/src/defaults.ts +0 -284
  157. package/src/defineGridPlugin.ts +0 -3
  158. package/src/defineMultiGridPlugin.ts +0 -3
  159. package/src/defineMultiValuePlugin.ts +0 -3
  160. package/src/defineNoneDataPlugin.ts +0 -4
  161. package/src/defineRelationshipPlugin.ts +0 -3
  162. package/src/defineSeriesPlugin.ts +0 -3
  163. package/src/defineTreePlugin.ts +0 -3
  164. package/src/grid/computedDataFn.ts +0 -129
  165. package/src/grid/contextObserverCallback.ts +0 -209
  166. package/src/grid/dataFormatterValidator.ts +0 -126
  167. package/src/grid/dataValidator.ts +0 -13
  168. package/src/grid/gridObservables.ts +0 -699
  169. package/src/multiGrid/computedDataFn.ts +0 -123
  170. package/src/multiGrid/contextObserverCallback.ts +0 -109
  171. package/src/multiGrid/dataFormatterValidator.ts +0 -121
  172. package/src/multiGrid/dataValidator.ts +0 -13
  173. package/src/multiGrid/multiGridObservables.ts +0 -367
  174. package/src/multiValue/computedDataFn.ts +0 -113
  175. package/src/multiValue/contextObserverCallback.ts +0 -328
  176. package/src/multiValue/dataFormatterValidator.ts +0 -95
  177. package/src/multiValue/dataValidator.ts +0 -13
  178. package/src/multiValue/multiValueObservables.ts +0 -865
  179. package/src/relationship/computedDataFn.ts +0 -159
  180. package/src/relationship/contextObserverCallback.ts +0 -80
  181. package/src/relationship/dataFormatterValidator.ts +0 -14
  182. package/src/relationship/dataValidator.ts +0 -14
  183. package/src/relationship/relationshipObservables.ts +0 -85
  184. package/src/series/computedDataFn.ts +0 -88
  185. package/src/series/contextObserverCallback.ts +0 -132
  186. package/src/series/dataFormatterValidator.ts +0 -47
  187. package/src/series/dataValidator.ts +0 -13
  188. package/src/series/seriesObservables.ts +0 -210
  189. package/src/tree/computedDataFn.ts +0 -129
  190. package/src/tree/contextObserverCallback.ts +0 -58
  191. package/src/tree/dataFormatterValidator.ts +0 -14
  192. package/src/tree/dataValidator.ts +0 -14
  193. package/src/tree/treeObservables.ts +0 -106
  194. package/src/utils/d3Scale.ts +0 -198
  195. package/tsconfig.base.json +0 -14
  196. package/tsconfig.json +0 -3
  197. package/vite-env.d.ts +0 -7
  198. package/vite.config.js +0 -23
@@ -1,198 +0,0 @@
1
- import * as d3 from 'd3'
2
- import { DEFAULT_DATA_FORMATTER_VALUE_AXIS } from '../defaults'
3
-
4
- // scaleLinear - 連續資料 -> 座標
5
- export const createValueToAxisScale = ({
6
- maxValue = 1,
7
- minValue = 0,
8
- axisWidth,
9
- scaleDomain = DEFAULT_DATA_FORMATTER_VALUE_AXIS.scaleDomain,
10
- scaleRange = DEFAULT_DATA_FORMATTER_VALUE_AXIS.scaleRange,
11
- reverse = false
12
- }: {
13
- maxValue: number
14
- minValue: number
15
- axisWidth: number
16
- scaleDomain: [number | 'min' | 'auto', number | 'max' | 'auto']
17
- scaleRange: [number, number] // 0-1
18
- reverse?: boolean
19
- }) => {
20
- // if (minValue === maxValue) {
21
- // maxValue += 1 // 避免最大及最小值相同造成無法計算scale
22
- // minValue -= 1
23
- // }
24
-
25
- // -- 無值補上預設值 --
26
- const domainMin: number | 'min' | 'auto' = scaleDomain[0] ?? DEFAULT_DATA_FORMATTER_VALUE_AXIS.scaleDomain[0]
27
- const domainMax: number | 'max' | 'auto' = scaleDomain[1] ?? DEFAULT_DATA_FORMATTER_VALUE_AXIS.scaleDomain[1]
28
- const rangeMin: number = scaleRange[0] ?? DEFAULT_DATA_FORMATTER_VALUE_AXIS.scaleRange[0]
29
- const rangeMax: number = scaleRange[1] ?? DEFAULT_DATA_FORMATTER_VALUE_AXIS.scaleRange[1]
30
-
31
- // -- 'auto' | 'max' | 'min' 替換成實際值 --
32
- let domainMinValue: number = (() => {
33
- if (domainMin === 'auto') {
34
- return minValue < 0 ? minValue : 0
35
- } else if (domainMin === 'min') {
36
- return minValue
37
- } else {
38
- return domainMin
39
- }
40
- })()
41
-
42
- let domainMaxValue: number = (() => {
43
- if (domainMax === 'auto') {
44
- return maxValue >= 0 ? maxValue : 0
45
- } else if (domainMax === 'max') {
46
- return maxValue
47
- } else {
48
- return domainMax
49
- }
50
- })()
51
- // let rangeMinValue = axisWidth * rangeMin
52
- // let rangeMaxValue = axisWidth * rangeMax
53
-
54
- // -- 計算padding --
55
- // if (padding > 0) {
56
- // const stepAmount = maxValue - minValue + (padding * 2)
57
- // const eachStepWidth = axisWidth / stepAmount
58
- // const paddingWidth = eachStepWidth * padding
59
- // rangeMinValue += paddingWidth
60
- // rangeMaxValue -= paddingWidth
61
- // }
62
-
63
- // -- 依場景大小換算 --
64
- const axisDomainMinValue = maxValue - (maxValue - domainMinValue) / (1 - rangeMin)
65
- const axisDomainMaxValue = domainMaxValue / rangeMax
66
-
67
- // return d3.scaleLinear()
68
- // .domain([domainMinValue, domainMaxValue])
69
- // .range([rangeMinValue, rangeMaxValue])
70
- if (reverse) {
71
- return d3.scaleLinear()
72
- .domain([axisDomainMinValue, axisDomainMaxValue])
73
- .range([axisWidth, 0])
74
- } else {
75
- // console.log('domain', [axisDomainMinValue, axisDomainMaxValue])
76
- return d3.scaleLinear()
77
- .domain([axisDomainMinValue, axisDomainMaxValue])
78
- .range([0, axisWidth])
79
- }
80
- }
81
-
82
- // scaleLinear - 座標 -> 連續資料
83
- export const createAxisToValueScale = ({
84
- maxValue = 1,
85
- minValue = 0,
86
- axisWidth,
87
- scaleDomain = DEFAULT_DATA_FORMATTER_VALUE_AXIS.scaleDomain,
88
- scaleRange = DEFAULT_DATA_FORMATTER_VALUE_AXIS.scaleRange,
89
- reverse = false
90
- }: {
91
- maxValue: number
92
- minValue: number
93
- axisWidth: number
94
- scaleDomain: [number | 'min' | 'auto', number | 'max' | 'auto']
95
- scaleRange: [number, number] // 0-1
96
- reverse?: boolean
97
- }) => {
98
- if (minValue === maxValue) {
99
- maxValue += 1 // 避免最大及最小值相同造成無法計算scale
100
- minValue -= 1
101
- }
102
-
103
- // -- 無值補上預設值 --
104
- const domainMin: number | 'min' | 'auto' = scaleDomain[0] ?? DEFAULT_DATA_FORMATTER_VALUE_AXIS.scaleDomain[0]
105
- const domainMax: number | 'max' | 'auto' = scaleDomain[1] ?? DEFAULT_DATA_FORMATTER_VALUE_AXIS.scaleDomain[1]
106
- const rangeMin: number = scaleRange[0] ?? DEFAULT_DATA_FORMATTER_VALUE_AXIS.scaleRange[0]
107
- const rangeMax: number = scaleRange[1] ?? DEFAULT_DATA_FORMATTER_VALUE_AXIS.scaleRange[1]
108
-
109
- // -- 'auto' | 'max' | 'min' 替換成實際值 --
110
- let domainMinValue: number = (() => {
111
- if (domainMin === 'auto') {
112
- return minValue < 0 ? minValue : 0
113
- } else if (domainMin === 'min') {
114
- return minValue
115
- } else {
116
- return domainMin
117
- }
118
- })()
119
-
120
- let domainMaxValue: number = (() => {
121
- if (domainMax === 'auto') {
122
- return maxValue >= 0 ? maxValue : 0
123
- } else if (domainMax === 'max') {
124
- return maxValue
125
- } else {
126
- return domainMax
127
- }
128
- })()
129
- // let rangeMinValue = axisWidth * rangeMin
130
- // let rangeMaxValue = axisWidth * rangeMax
131
-
132
- // -- 計算padding --
133
- // if (padding > 0) {
134
- // const stepAmount = maxValue - minValue + (padding * 2)
135
- // const eachStepWidth = axisWidth / stepAmount
136
- // const paddingWidth = eachStepWidth * padding
137
- // rangeMinValue += paddingWidth
138
- // rangeMaxValue -= paddingWidth
139
- // }
140
-
141
- // -- 依場景大小換算 --
142
- const axisDomainMinValue = maxValue - (maxValue - domainMinValue) / (1 - rangeMin)
143
- const axisDomainMaxValue = domainMaxValue / rangeMax
144
-
145
- // return d3.scaleLinear()
146
- // .domain([domainMinValue, domainMaxValue])
147
- // .range([rangeMinValue, rangeMaxValue])
148
- if (reverse) {
149
- return d3.scaleLinear()
150
- .domain([axisWidth, 0])
151
- .range([axisDomainMinValue, axisDomainMaxValue])
152
- } else {
153
- return d3.scaleLinear()
154
- .domain([0, axisWidth])
155
- .range([axisDomainMinValue, axisDomainMaxValue])
156
- }
157
- }
158
-
159
- // scalePoint - 非連續資料 -> 座標
160
- export const createLabelToAxisScale = ({ axisLabels, axisWidth, padding = 0.5 }: {
161
- axisLabels: string[]
162
- axisWidth: number
163
- padding?: number
164
- // reverse?: boolean
165
- }) => {
166
- let range: [d3.NumberValue, d3.NumberValue] = [0, axisWidth]
167
-
168
- return d3.scalePoint()
169
- .domain(axisLabels)
170
- .range(range)
171
- .padding(padding)
172
- }
173
-
174
- // scaleQuantize - 座標 -> 非連續資料索引
175
- export const createAxisToLabelIndexScale = ({ axisLabels, axisWidth, padding = 0, reverse = false }:{
176
- axisLabels: string[] | Date[],
177
- axisWidth: number
178
- padding?: number
179
- reverse?: boolean
180
- }) => {
181
-
182
- let range: number[] = axisLabels.map((d: string | Date, i: number) => i)
183
- if (reverse) {
184
- range.reverse()
185
- }
186
- if (!range.length) {
187
- // 至少要有一個值否則scale會出錯
188
- range = [0]
189
- }
190
-
191
- const step = range.length - 1 + (padding * 2) // 圖軸刻度分段數量
192
- const stepWidth = axisWidth / step
193
- const rangePadding = stepWidth * padding - (stepWidth * 0.5) // 實際要計算的範圍是圖軸左右那邊增加0.5
194
-
195
- return d3.scaleQuantize<number>()
196
- .domain([rangePadding, axisWidth - rangePadding])
197
- .range(range)
198
- }
@@ -1,14 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "outDir": "./dist/",
4
- "sourceMap": true,
5
- "noImplicitAny": true,
6
- "module": "esnext",
7
- "target": "es5",
8
- "jsx": "react",
9
- "allowJs": true,
10
- "moduleResolution": "node",
11
- "allowSyntheticDefaultImports" : true,
12
- "esModuleInterop" : true
13
- }
14
- }
package/tsconfig.json DELETED
@@ -1,3 +0,0 @@
1
- {
2
- "extends": "./tsconfig.base.json"
3
- }
package/vite-env.d.ts DELETED
@@ -1,7 +0,0 @@
1
- interface ImportMetaEnv {
2
- readonly MODE: 'development' | 'production'
3
- }
4
-
5
- interface ImportMeta {
6
- readonly env: ImportMetaEnv;
7
- }
package/vite.config.js DELETED
@@ -1,23 +0,0 @@
1
- import { defineConfig } from 'vite'
2
- import dts from 'vite-plugin-dts'
3
-
4
- export default defineConfig(({ command, mode }) => {
5
- return {
6
- plugins: [
7
- dts({
8
- insertTypesEntry: true
9
- })
10
- ],
11
- compilerOptions: {
12
- composite: true
13
- },
14
- build: {
15
- lib: {
16
- entry: "src/index.ts",
17
- name: 'orbcharts-core',
18
- formats: ["es", "umd"],
19
- fileName: format => `orbcharts-core.${format}.js`
20
- },
21
- }
22
- }
23
- })