@d3plus/docs 3.0.0-alpha.3

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 (225) hide show
  1. package/.storybook/main.js +51 -0
  2. package/.storybook/manager-head.html +46 -0
  3. package/.storybook/manager.js +10 -0
  4. package/.storybook/preview-head.html +69 -0
  5. package/.storybook/preview.jsx +134 -0
  6. package/.storybook/theme.js +16 -0
  7. package/README.md +1 -0
  8. package/args/color/colorAdd.args.jsx +71 -0
  9. package/args/color/colorAssign.args.jsx +40 -0
  10. package/args/color/colorContrast.args.jsx +40 -0
  11. package/args/color/colorDefaults.args.jsx +8 -0
  12. package/args/color/colorLegible.args.jsx +24 -0
  13. package/args/color/colorLighter.args.jsx +40 -0
  14. package/args/color/colorSubtract.args.jsx +71 -0
  15. package/args/core/charts/AreaPlot.args.jsx +72 -0
  16. package/args/core/charts/BarChart.args.jsx +88 -0
  17. package/args/core/charts/BoxWhisker.args.jsx +73 -0
  18. package/args/core/charts/BumpChart.args.jsx +133 -0
  19. package/args/core/charts/Donut.args.jsx +58 -0
  20. package/args/core/charts/Geomap.args.jsx +363 -0
  21. package/args/core/charts/LinePlot.args.jsx +57 -0
  22. package/args/core/charts/Matrix.args.jsx +194 -0
  23. package/args/core/charts/Network.args.jsx +310 -0
  24. package/args/core/charts/Pack.args.jsx +171 -0
  25. package/args/core/charts/Pie.args.jsx +148 -0
  26. package/args/core/charts/Plot.args.jsx +685 -0
  27. package/args/core/charts/Priestley.args.jsx +118 -0
  28. package/args/core/charts/Radar.args.jsx +120 -0
  29. package/args/core/charts/RadialMatrix.args.jsx +197 -0
  30. package/args/core/charts/Rings.args.jsx +228 -0
  31. package/args/core/charts/Sankey.args.jsx +248 -0
  32. package/args/core/charts/StackedArea.args.jsx +26 -0
  33. package/args/core/charts/Tree.args.jsx +88 -0
  34. package/args/core/charts/Treemap.args.jsx +181 -0
  35. package/args/core/charts/Viz.args.jsx +1383 -0
  36. package/args/core/components/Axis.args.jsx +600 -0
  37. package/args/core/components/AxisBottom.args.jsx +42 -0
  38. package/args/core/components/AxisLeft.args.jsx +42 -0
  39. package/args/core/components/AxisRight.args.jsx +42 -0
  40. package/args/core/components/AxisTop.args.jsx +42 -0
  41. package/args/core/components/ColorScale.args.jsx +456 -0
  42. package/args/core/components/Legend.args.jsx +289 -0
  43. package/args/core/components/TextBox.args.jsx +554 -0
  44. package/args/core/components/Timeline.args.jsx +401 -0
  45. package/args/core/components/Tooltip.args.jsx +453 -0
  46. package/args/core/shapes/Area.args.jsx +190 -0
  47. package/args/core/shapes/Bar.args.jsx +176 -0
  48. package/args/core/shapes/Box.args.jsx +248 -0
  49. package/args/core/shapes/Circle.args.jsx +84 -0
  50. package/args/core/shapes/Image.args.jsx +177 -0
  51. package/args/core/shapes/Line.args.jsx +127 -0
  52. package/args/core/shapes/Path.args.jsx +84 -0
  53. package/args/core/shapes/Rect.args.jsx +85 -0
  54. package/args/core/shapes/Shape.args.jsx +633 -0
  55. package/args/core/shapes/Whisker.args.jsx +204 -0
  56. package/args/core/utils/BaseClass.args.jsx +65 -0
  57. package/args/core/utils/RESET.args.jsx +8 -0
  58. package/args/core/utils/accessor.args.jsx +39 -0
  59. package/args/core/utils/configPrep.args.jsx +56 -0
  60. package/args/core/utils/constant.args.jsx +24 -0
  61. package/args/core/utils/uuid.args.jsx +8 -0
  62. package/args/data/dataConcat.args.jsx +40 -0
  63. package/args/data/dataFold.args.jsx +56 -0
  64. package/args/data/dataLoad.args.jsx +65 -0
  65. package/args/data/isData.args.jsx +24 -0
  66. package/args/data/merge.args.jsx +39 -0
  67. package/args/data/unique.args.jsx +37 -0
  68. package/args/dom/assign.args.jsx +23 -0
  69. package/args/dom/attrize.args.jsx +39 -0
  70. package/args/dom/date.args.jsx +23 -0
  71. package/args/dom/elem.args.jsx +135 -0
  72. package/args/dom/fontExists.args.jsx +24 -0
  73. package/args/dom/htmlDecode.args.jsx +23 -0
  74. package/args/dom/isObject.args.jsx +23 -0
  75. package/args/dom/parseSides.args.jsx +24 -0
  76. package/args/dom/prefix.args.jsx +8 -0
  77. package/args/dom/rtl.args.jsx +8 -0
  78. package/args/dom/stylize.args.jsx +39 -0
  79. package/args/dom/textWidth.args.jsx +39 -0
  80. package/args/export/saveElement.args.jsx +99 -0
  81. package/args/format/format.args.jsx +24 -0
  82. package/args/format/formatAbbreviate.args.jsx +39 -0
  83. package/args/format/formatDate.args.jsx +53 -0
  84. package/args/format/formatDefaultLocale.args.jsx +24 -0
  85. package/args/locales/dictionaries/formatLocale.args.jsx +8 -0
  86. package/args/math/closest.args.jsx +39 -0
  87. package/args/math/largestRect.args.jsx +56 -0
  88. package/args/math/lineIntersection.args.jsx +69 -0
  89. package/args/math/path2polygon.args.jsx +40 -0
  90. package/args/math/pointDistance.args.jsx +39 -0
  91. package/args/math/pointDistanceSquared.args.jsx +39 -0
  92. package/args/math/pointRotate.args.jsx +55 -0
  93. package/args/math/polygonInside.args.jsx +39 -0
  94. package/args/math/polygonRayCast.args.jsx +55 -0
  95. package/args/math/polygonRotate.args.jsx +55 -0
  96. package/args/math/segmentBoxContains.args.jsx +54 -0
  97. package/args/math/segmentsIntersect.args.jsx +69 -0
  98. package/args/math/shapeEdgePoint.args.jsx +39 -0
  99. package/args/react/D3plusContext.args.jsx +8 -0
  100. package/args/react/Renderer.args.jsx +53 -0
  101. package/args/text/fontFamily.args.jsx +8 -0
  102. package/args/text/fontFamilyStringify.args.jsx +23 -0
  103. package/args/text/stringify.args.jsx +23 -0
  104. package/args/text/strip.args.jsx +38 -0
  105. package/args/text/textSplit.args.jsx +23 -0
  106. package/args/text/textWrap.args.jsx +8 -0
  107. package/args/text/titleCase.args.jsx +24 -0
  108. package/args/text/trim.args.jsx +23 -0
  109. package/args/text/trimLeft.args.jsx +23 -0
  110. package/args/text/trimRight.args.jsx +23 -0
  111. package/docs/Accessibility.mdx +70 -0
  112. package/docs/HomeChart.jsx +38 -0
  113. package/docs/Introduction.mdx +130 -0
  114. package/docs/Logo-Frames.js +352 -0
  115. package/docs/Logo.jsx +30 -0
  116. package/helpers/configify.js +18 -0
  117. package/helpers/funcify.js +14 -0
  118. package/helpers/stringify.js +30 -0
  119. package/package.json +44 -0
  120. package/packages/color/colorAdd.stories.jsx +23 -0
  121. package/packages/color/colorAssign.stories.jsx +23 -0
  122. package/packages/color/colorContrast.stories.jsx +23 -0
  123. package/packages/color/colorDefaults.stories.jsx +23 -0
  124. package/packages/color/colorLegible.stories.jsx +23 -0
  125. package/packages/color/colorLighter.stories.jsx +23 -0
  126. package/packages/color/colorSubtract.stories.jsx +23 -0
  127. package/packages/core/charts/AreaPlot.stories.jsx +74 -0
  128. package/packages/core/charts/BarChart.stories.jsx +307 -0
  129. package/packages/core/charts/BoxWhisker.stories.jsx +204 -0
  130. package/packages/core/charts/BumpChart.stories.jsx +52 -0
  131. package/packages/core/charts/Donut.stories.jsx +41 -0
  132. package/packages/core/charts/Geomap.stories.jsx +186 -0
  133. package/packages/core/charts/LinePlot.stories.jsx +564 -0
  134. package/packages/core/charts/Matrix.stories.jsx +36 -0
  135. package/packages/core/charts/Network.stories.jsx +99 -0
  136. package/packages/core/charts/Pack.stories.jsx +40 -0
  137. package/packages/core/charts/Pie.stories.jsx +40 -0
  138. package/packages/core/charts/Plot.stories.jsx +180 -0
  139. package/packages/core/charts/Priestley.stories.jsx +60 -0
  140. package/packages/core/charts/Radar.stories.jsx +60 -0
  141. package/packages/core/charts/RadialMatrix.stories.jsx +36 -0
  142. package/packages/core/charts/Rings.stories.jsx +41 -0
  143. package/packages/core/charts/Sankey.stories.jsx +41 -0
  144. package/packages/core/charts/StackedArea.stories.jsx +107 -0
  145. package/packages/core/charts/Tree.stories.jsx +27 -0
  146. package/packages/core/charts/Treemap.stories.jsx +81 -0
  147. package/packages/core/charts/Viz.stories.jsx +27 -0
  148. package/packages/core/components/Axis.stories.jsx +27 -0
  149. package/packages/core/components/AxisBottom.stories.jsx +27 -0
  150. package/packages/core/components/AxisLeft.stories.jsx +27 -0
  151. package/packages/core/components/AxisRight.stories.jsx +27 -0
  152. package/packages/core/components/AxisTop.stories.jsx +27 -0
  153. package/packages/core/components/ColorScale.stories.jsx +44 -0
  154. package/packages/core/components/Legend.stories.jsx +49 -0
  155. package/packages/core/components/TextBox.stories.jsx +222 -0
  156. package/packages/core/components/Timeline.stories.jsx +37 -0
  157. package/packages/core/components/Tooltip.stories.jsx +40 -0
  158. package/packages/core/shapes/Area.stories.jsx +27 -0
  159. package/packages/core/shapes/Bar.stories.jsx +27 -0
  160. package/packages/core/shapes/Box.stories.jsx +27 -0
  161. package/packages/core/shapes/Circle.stories.jsx +27 -0
  162. package/packages/core/shapes/Image.stories.jsx +27 -0
  163. package/packages/core/shapes/Line.stories.jsx +27 -0
  164. package/packages/core/shapes/Path.stories.jsx +27 -0
  165. package/packages/core/shapes/Rect.stories.jsx +27 -0
  166. package/packages/core/shapes/Shape.stories.jsx +27 -0
  167. package/packages/core/shapes/Whisker.stories.jsx +27 -0
  168. package/packages/core/utils/BaseClass.stories.jsx +27 -0
  169. package/packages/core/utils/RESET.stories.jsx +23 -0
  170. package/packages/core/utils/accessor.stories.jsx +23 -0
  171. package/packages/core/utils/configPrep.stories.jsx +23 -0
  172. package/packages/core/utils/constant.stories.jsx +23 -0
  173. package/packages/core/utils/uuid.stories.jsx +23 -0
  174. package/packages/data/dataConcat.stories.jsx +23 -0
  175. package/packages/data/dataFold.stories.jsx +23 -0
  176. package/packages/data/dataLoad.stories.jsx +23 -0
  177. package/packages/data/isData.stories.jsx +23 -0
  178. package/packages/data/merge.stories.jsx +23 -0
  179. package/packages/data/unique.stories.jsx +23 -0
  180. package/packages/dom/assign.stories.jsx +23 -0
  181. package/packages/dom/attrize.stories.jsx +23 -0
  182. package/packages/dom/date.stories.jsx +23 -0
  183. package/packages/dom/elem.stories.jsx +23 -0
  184. package/packages/dom/fontExists.stories.jsx +23 -0
  185. package/packages/dom/htmlDecode.stories.jsx +23 -0
  186. package/packages/dom/isObject.stories.jsx +23 -0
  187. package/packages/dom/parseSides.stories.jsx +23 -0
  188. package/packages/dom/prefix.stories.jsx +23 -0
  189. package/packages/dom/rtl.stories.jsx +23 -0
  190. package/packages/dom/stylize.stories.jsx +23 -0
  191. package/packages/dom/textWidth.stories.jsx +23 -0
  192. package/packages/export/saveElement.stories.jsx +23 -0
  193. package/packages/format/format.stories.jsx +23 -0
  194. package/packages/format/formatAbbreviate.stories.jsx +23 -0
  195. package/packages/format/formatDate.stories.jsx +23 -0
  196. package/packages/format/formatDefaultLocale.stories.jsx +23 -0
  197. package/packages/locales/dictionaries/formatLocale.stories.jsx +23 -0
  198. package/packages/math/closest.stories.jsx +23 -0
  199. package/packages/math/largestRect.stories.jsx +23 -0
  200. package/packages/math/lineIntersection.stories.jsx +23 -0
  201. package/packages/math/path2polygon.stories.jsx +23 -0
  202. package/packages/math/pointDistance.stories.jsx +23 -0
  203. package/packages/math/pointDistanceSquared.stories.jsx +23 -0
  204. package/packages/math/pointRotate.stories.jsx +23 -0
  205. package/packages/math/polygonInside.stories.jsx +23 -0
  206. package/packages/math/polygonRayCast.stories.jsx +23 -0
  207. package/packages/math/polygonRotate.stories.jsx +23 -0
  208. package/packages/math/segmentBoxContains.stories.jsx +23 -0
  209. package/packages/math/segmentsIntersect.stories.jsx +23 -0
  210. package/packages/math/shapeEdgePoint.stories.jsx +23 -0
  211. package/packages/react/D3plusContext.stories.jsx +23 -0
  212. package/packages/react/Renderer.stories.jsx +23 -0
  213. package/packages/text/fontFamily.stories.jsx +23 -0
  214. package/packages/text/fontFamilyStringify.stories.jsx +23 -0
  215. package/packages/text/stringify.stories.jsx +23 -0
  216. package/packages/text/strip.stories.jsx +23 -0
  217. package/packages/text/textSplit.stories.jsx +23 -0
  218. package/packages/text/textWrap.stories.jsx +23 -0
  219. package/packages/text/titleCase.stories.jsx +23 -0
  220. package/packages/text/trim.stories.jsx +23 -0
  221. package/packages/text/trimLeft.stories.jsx +23 -0
  222. package/packages/text/trimRight.stories.jsx +23 -0
  223. package/static/data/city_coords.json +224 -0
  224. package/static/images/favicon.ico +0 -0
  225. package/static/images/touchicon.png +0 -0
@@ -0,0 +1,685 @@
1
+ // WARNING: do not edit this file directly, it is generated dynamically from
2
+ // the source JSDOC comments using the npm run docs script.
3
+
4
+ import React from "react";
5
+ import {argTypes as vizArgTypes} from "./Viz.args.jsx";
6
+ import {assign} from "@d3plus/dom";
7
+
8
+ import {Plot as D3plusPlot} from "@d3plus/react";
9
+ export const Plot = ({ config }) => <D3plusPlot config={config} />;
10
+
11
+ export const argTypes = assign(
12
+
13
+ /**
14
+ * Filters out unused argTypes from the Viz primitive and
15
+ * overrides any defaults that have been changed in Plot
16
+ */
17
+ Object.keys(vizArgTypes)
18
+ .filter(k => !k.match(/^(zoom.*)$/))
19
+ .reduce((obj, k) => (obj[k] = vizArgTypes[k], obj), {}),
20
+
21
+ /**
22
+ * Plot-specific methods
23
+ */
24
+
25
+ {
26
+ annotations: {
27
+ control: {
28
+ type: "array"
29
+ },
30
+ defaultValue: "[\n\n]",
31
+ description: "= []",
32
+ table: {
33
+ defaultValue: {
34
+ summary: "[\n\n]"
35
+ }
36
+ },
37
+ type: {
38
+ required: true,
39
+ summary: "array | object"
40
+ }
41
+ },
42
+ axisPersist: {
43
+ control: {
44
+ type: "boolean"
45
+ },
46
+ defaultValue: false,
47
+ table: {
48
+ defaultValue: {
49
+ summary: false
50
+ }
51
+ },
52
+ type: {
53
+ required: false,
54
+ summary: "boolean"
55
+ }
56
+ },
57
+ backgroundConfig: {
58
+ control: {
59
+ type: "object"
60
+ },
61
+ defaultValue: "{duration: 0, fill: transparent}",
62
+ table: {
63
+ defaultValue: {
64
+ summary: "{duration: 0, fill: transparent}"
65
+ }
66
+ },
67
+ type: {
68
+ required: false,
69
+ summary: "object"
70
+ }
71
+ },
72
+ barPadding: {
73
+ control: {
74
+ type: "number"
75
+ },
76
+ defaultValue: 0,
77
+ description: "= 0",
78
+ table: {
79
+ defaultValue: {
80
+ summary: 0
81
+ }
82
+ },
83
+ type: {
84
+ required: true,
85
+ summary: "number"
86
+ }
87
+ },
88
+ baseline: {
89
+ control: {
90
+ type: "number"
91
+ },
92
+ table: {
93
+ defaultValue: {
94
+ summary: "undefined"
95
+ }
96
+ },
97
+ type: {
98
+ required: true,
99
+ summary: "number"
100
+ }
101
+ },
102
+ buffer: {
103
+ control: {
104
+ type: "object"
105
+ },
106
+ defaultValue: "assign({}, defaultBuffers, {Bar: false, Line: false})",
107
+ table: {
108
+ defaultValue: {
109
+ summary: "assign({}, defaultBuffers, {Bar: false, Line: false})"
110
+ }
111
+ },
112
+ type: {
113
+ required: false,
114
+ summary: "object | boolean"
115
+ }
116
+ },
117
+ confidence: {
118
+ control: {
119
+ type: "array.<string>"
120
+ },
121
+ table: {
122
+ defaultValue: {
123
+ summary: "undefined"
124
+ }
125
+ },
126
+ type: {
127
+ required: true,
128
+ summary: "array.<string> | array.<function()>"
129
+ }
130
+ },
131
+ confidenceConfig: {
132
+ control: {
133
+ type: "object"
134
+ },
135
+ defaultValue: "{fill: (d, i) => {\n const c = typeof this._shapeConfig.Line.stroke === \"function\" ? this._shapeConfig.Line.stroke(d, i) : this._shapeConfig.Line.stroke;\n return c;\n}, fillOpacity: 0.5}",
136
+ table: {
137
+ defaultValue: {
138
+ detail: "{fill: (d, i) => {\n const c = typeof this._shapeConfig.Line.stroke === \"function\" ? this._shapeConfig.Line.stroke(d, i) : this._shapeConfig.Line.stroke;\n return c;\n}, fillOpacity: 0.5}",
139
+ summary: "function"
140
+ }
141
+ },
142
+ type: {
143
+ required: false,
144
+ summary: "object"
145
+ }
146
+ },
147
+ discreteCutoff: {
148
+ control: {
149
+ type: "number"
150
+ },
151
+ defaultValue: 100,
152
+ table: {
153
+ defaultValue: {
154
+ summary: 100
155
+ }
156
+ },
157
+ type: {
158
+ required: true,
159
+ summary: "number"
160
+ }
161
+ },
162
+ groupPadding: {
163
+ control: {
164
+ type: "number"
165
+ },
166
+ defaultValue: 5,
167
+ table: {
168
+ defaultValue: {
169
+ summary: 5
170
+ }
171
+ },
172
+ type: {
173
+ required: false,
174
+ summary: "number"
175
+ }
176
+ },
177
+ labelConnectorConfig: {
178
+ control: {
179
+ type: "object"
180
+ },
181
+ defaultValue: "{strokeDasharray: 1 1}",
182
+ table: {
183
+ defaultValue: {
184
+ summary: "{strokeDasharray: 1 1}"
185
+ }
186
+ },
187
+ type: {
188
+ required: false,
189
+ summary: "object"
190
+ }
191
+ },
192
+ labelPosition: {
193
+ control: {
194
+ type: "text"
195
+ },
196
+ defaultValue: "auto",
197
+ table: {
198
+ defaultValue: {
199
+ summary: "auto"
200
+ }
201
+ },
202
+ type: {
203
+ required: false,
204
+ summary: "function | string"
205
+ }
206
+ },
207
+ lineLabels: {
208
+ control: {
209
+ type: "boolean"
210
+ },
211
+ defaultValue: false,
212
+ table: {
213
+ defaultValue: {
214
+ summary: false
215
+ }
216
+ },
217
+ type: {
218
+ required: false,
219
+ summary: "boolean | function"
220
+ }
221
+ },
222
+ lineMarkerConfig: {
223
+ control: {
224
+ type: "object"
225
+ },
226
+ defaultValue: "{fill: (d, i) => colorAssign(this._id(d, i)), r: 3}",
227
+ table: {
228
+ defaultValue: {
229
+ detail: "{fill: (d, i) => colorAssign(this._id(d, i)), r: 3}",
230
+ summary: "function"
231
+ }
232
+ },
233
+ type: {
234
+ required: true,
235
+ summary: "object"
236
+ }
237
+ },
238
+ lineMarkers: {
239
+ control: {
240
+ type: "boolean"
241
+ },
242
+ defaultValue: false,
243
+ table: {
244
+ defaultValue: {
245
+ summary: false
246
+ }
247
+ },
248
+ type: {
249
+ required: false,
250
+ summary: "boolean"
251
+ }
252
+ },
253
+ shape: {
254
+ control: {
255
+ type: "text"
256
+ },
257
+ defaultValue: "Circle",
258
+ table: {
259
+ defaultValue: {
260
+ summary: "Circle"
261
+ }
262
+ },
263
+ type: {
264
+ required: false,
265
+ summary: "function | string"
266
+ }
267
+ },
268
+ shapeConfig: {
269
+ control: {
270
+ type: "object"
271
+ },
272
+ defaultValue: "assign(this._shapeConfig, {Area: {label: (d, i) => this._stacked ? this._drawLabel(d, i) : false, labelBounds: (d, i, aes) => {\n let r = largestRect(aes.points, {\n angle: range(-20, 20, 5)\n });\n if (!r || r.height < 20 || r.width < 50) r = largestRect(aes.points, {\n angle: range(-80, 80, 5)\n });\n if (!r) return null;\n const x = min(aes.points, (d)=>d[0]);\n const y = max(aes.points.filter((d)=>d[0] === x), (d)=>d[1]);\n return {\n angle: r.angle,\n width: r.width,\n height: r.height,\n x: r.cx - r.width / 2 - x,\n y: r.cy - r.height / 2 - y\n };\n}, labelConfig: {fontMin: 6, fontResize: true, padding: 10}}, ariaLabel: (d, i) => {\n let ariaLabelStr = \"\";\n if (d.nested) ariaLabelStr = `${this._drawLabel(d.data, d.i)}`;\n else {\n ariaLabelStr = `${this._drawLabel(d, i)}`;\n if (this._x(d, i) !== undefined) ariaLabelStr += `, x: ${this._x(d, i)}`;\n if (this._y(d, i) !== undefined) ariaLabelStr += `, y: ${this._y(d, i)}`;\n if (this._x2(d, i) !== undefined) ariaLabelStr += `, x2: ${this._x2(d, i)}`;\n if (this._y2(d, i) !== undefined) ariaLabelStr += `, y2: ${this._y2(d, i)}`;\n }\n return `${ariaLabelStr}.`;\n}, Bar: {labelBounds(, , ) {\n{\n const padding = 1;\n const width = this._discrete === \"y\" ? \"width\" : \"height\";\n const height = this._discrete === \"y\" ? \"height\" : \"width\";\n const other = this._discrete.charAt(0) === \"x\" ? \"y\" : \"x\";\n const invert = other === \"y\";\n const nonDiscrete = this._discrete.replace(this._discrete.charAt(0), other);\n const range = this[`_${nonDiscrete}Axis`]._d3Scale.range();\n const space = Math.abs(range[1] - range[0]);\n const negative = this[`_${nonDiscrete}`](d, i) < 0;\n if (outside.bind(this)(d, i)) {\n return {\n [width]: space - s[width],\n [height]: s[height],\n x: invert ? -s.width / 2 : negative ? -space : s.width + padding,\n y: invert ? negative ? s.height + padding : -space : -s.height / 2 + 1\n };\n }\n return {\n [width]: s[width],\n [height]: s[height],\n x: invert ? -s.width / 2 : negative ? this._stacked ? padding - s.width : padding - s.width : -padding,\n y: invert ? negative ? this._stacked ? padding : padding : -s.height + padding : -s.height / 2 + padding\n };\n}\n}, labelConfig: {fontMax: 16, fontMin: 6, fontResize: true, fontColor(, ) {\n{\n return outside.bind(this)(d, i) ? this._backgroundConfig.fill === \"transparent\" ? colorDefaults.dark : colorContrast(this._backgroundConfig.fill) : colorContrast(typeof this._shapeConfig.fill === \"function\" ? this._shapeConfig.fill(d, i) : this._shapeConfig.fill);\n}\n}, fontStroke(, ) {\n{\n return outside.bind(this)(d, i) ? this._backgroundConfig.fill === \"transparent\" ? colorDefaults.dark : colorContrast(this._backgroundConfig.fill) : \"transparent\";\n}\n}, fontStrokeWidth(, ) {\n{\n return outside.bind(this)(d, i) ? 0.1 : 0;\n}\n}, padding: 3, textAnchor(, ) {\n{\n const other = this._discrete.charAt(0) === \"x\" ? \"y\" : \"x\";\n const invert = other === \"y\";\n const nonDiscrete = this._discrete.replace(this._discrete.charAt(0), other);\n const negative = this[`_${nonDiscrete}`](d, i) < 0;\n const anchor = invert ? \"middle\" : outside.bind(this)(d, i) ? negative ? \"end\" : \"start\" : negative ? \"start\" : \"end\";\n return rtl() ? anchor === \"start\" ? \"end\" : anchor === \"end\" ? \"start\" : anchor : anchor;\n}\n}, verticalAlign(, ) {\n{\n const other = this._discrete.charAt(0) === \"x\" ? \"y\" : \"x\";\n const invert = other === \"y\";\n const nonDiscrete = this._discrete.replace(this._discrete.charAt(0), other);\n const negative = this[`_${nonDiscrete}`](d, i) < 0;\n return invert ? outside.bind(this)(d, i) ? negative ? \"top\" : \"bottom\" : negative ? \"bottom\" : \"top\" : \"middle\";\n}\n}}}, Circle: {r: defaultSize.bind(this)}, Line: {curve: () => this._discrete ? `monotone${this._discrete.charAt(0).toUpperCase()}` : linear, fill: none, labelConfig: {fontColor: (d, i) => {\n const c = typeof this._shapeConfig.Line.stroke === \"function\" ? this._shapeConfig.Line.stroke(d, i) : this._shapeConfig.Line.stroke;\n return colorLegible(c);\n}, fontResize: false, padding: 5, textAnchor: start, verticalAlign: middle}, strokeWidth: 2}, Rect: {height: (d) => defaultSize.bind(this)(d) * 2, width: (d) => defaultSize.bind(this)(d) * 2}})",
273
+ table: {
274
+ defaultValue: {
275
+ detail: "assign(this._shapeConfig, {Area: {label: (d, i) => this._stacked ? this._drawLabel(d, i) : false, labelBounds: (d, i, aes) => {\n let r = largestRect(aes.points, {\n angle: range(-20, 20, 5)\n });\n if (!r || r.height < 20 || r.width < 50) r = largestRect(aes.points, {\n angle: range(-80, 80, 5)\n });\n if (!r) return null;\n const x = min(aes.points, (d)=>d[0]);\n const y = max(aes.points.filter((d)=>d[0] === x), (d)=>d[1]);\n return {\n angle: r.angle,\n width: r.width,\n height: r.height,\n x: r.cx - r.width / 2 - x,\n y: r.cy - r.height / 2 - y\n };\n}, labelConfig: {fontMin: 6, fontResize: true, padding: 10}}, ariaLabel: (d, i) => {\n let ariaLabelStr = \"\";\n if (d.nested) ariaLabelStr = `${this._drawLabel(d.data, d.i)}`;\n else {\n ariaLabelStr = `${this._drawLabel(d, i)}`;\n if (this._x(d, i) !== undefined) ariaLabelStr += `, x: ${this._x(d, i)}`;\n if (this._y(d, i) !== undefined) ariaLabelStr += `, y: ${this._y(d, i)}`;\n if (this._x2(d, i) !== undefined) ariaLabelStr += `, x2: ${this._x2(d, i)}`;\n if (this._y2(d, i) !== undefined) ariaLabelStr += `, y2: ${this._y2(d, i)}`;\n }\n return `${ariaLabelStr}.`;\n}, Bar: {labelBounds(, , ) {\n{\n const padding = 1;\n const width = this._discrete === \"y\" ? \"width\" : \"height\";\n const height = this._discrete === \"y\" ? \"height\" : \"width\";\n const other = this._discrete.charAt(0) === \"x\" ? \"y\" : \"x\";\n const invert = other === \"y\";\n const nonDiscrete = this._discrete.replace(this._discrete.charAt(0), other);\n const range = this[`_${nonDiscrete}Axis`]._d3Scale.range();\n const space = Math.abs(range[1] - range[0]);\n const negative = this[`_${nonDiscrete}`](d, i) < 0;\n if (outside.bind(this)(d, i)) {\n return {\n [width]: space - s[width],\n [height]: s[height],\n x: invert ? -s.width / 2 : negative ? -space : s.width + padding,\n y: invert ? negative ? s.height + padding : -space : -s.height / 2 + 1\n };\n }\n return {\n [width]: s[width],\n [height]: s[height],\n x: invert ? -s.width / 2 : negative ? this._stacked ? padding - s.width : padding - s.width : -padding,\n y: invert ? negative ? this._stacked ? padding : padding : -s.height + padding : -s.height / 2 + padding\n };\n}\n}, labelConfig: {fontMax: 16, fontMin: 6, fontResize: true, fontColor(, ) {\n{\n return outside.bind(this)(d, i) ? this._backgroundConfig.fill === \"transparent\" ? colorDefaults.dark : colorContrast(this._backgroundConfig.fill) : colorContrast(typeof this._shapeConfig.fill === \"function\" ? this._shapeConfig.fill(d, i) : this._shapeConfig.fill);\n}\n}, fontStroke(, ) {\n{\n return outside.bind(this)(d, i) ? this._backgroundConfig.fill === \"transparent\" ? colorDefaults.dark : colorContrast(this._backgroundConfig.fill) : \"transparent\";\n}\n}, fontStrokeWidth(, ) {\n{\n return outside.bind(this)(d, i) ? 0.1 : 0;\n}\n}, padding: 3, textAnchor(, ) {\n{\n const other = this._discrete.charAt(0) === \"x\" ? \"y\" : \"x\";\n const invert = other === \"y\";\n const nonDiscrete = this._discrete.replace(this._discrete.charAt(0), other);\n const negative = this[`_${nonDiscrete}`](d, i) < 0;\n const anchor = invert ? \"middle\" : outside.bind(this)(d, i) ? negative ? \"end\" : \"start\" : negative ? \"start\" : \"end\";\n return rtl() ? anchor === \"start\" ? \"end\" : anchor === \"end\" ? \"start\" : anchor : anchor;\n}\n}, verticalAlign(, ) {\n{\n const other = this._discrete.charAt(0) === \"x\" ? \"y\" : \"x\";\n const invert = other === \"y\";\n const nonDiscrete = this._discrete.replace(this._discrete.charAt(0), other);\n const negative = this[`_${nonDiscrete}`](d, i) < 0;\n return invert ? outside.bind(this)(d, i) ? negative ? \"top\" : \"bottom\" : negative ? \"bottom\" : \"top\" : \"middle\";\n}\n}}}, Circle: {r: defaultSize.bind(this)}, Line: {curve: () => this._discrete ? `monotone${this._discrete.charAt(0).toUpperCase()}` : linear, fill: none, labelConfig: {fontColor: (d, i) => {\n const c = typeof this._shapeConfig.Line.stroke === \"function\" ? this._shapeConfig.Line.stroke(d, i) : this._shapeConfig.Line.stroke;\n return colorLegible(c);\n}, fontResize: false, padding: 5, textAnchor: start, verticalAlign: middle}, strokeWidth: 2}, Rect: {height: (d) => defaultSize.bind(this)(d) * 2, width: (d) => defaultSize.bind(this)(d) * 2}})",
276
+ summary: "function"
277
+ }
278
+ },
279
+ type: {
280
+ required: false,
281
+ summary: "object"
282
+ }
283
+ },
284
+ shapeSort: {
285
+ control: {},
286
+ defaultValue: "(a, b) => this._shapeOrder.indexOf(a) - this._shapeOrder.indexOf(b)",
287
+ table: {
288
+ defaultValue: {
289
+ detail: "(a, b) => this._shapeOrder.indexOf(a) - this._shapeOrder.indexOf(b)",
290
+ summary: "function"
291
+ }
292
+ },
293
+ type: {
294
+ required: true,
295
+ summary: "function"
296
+ }
297
+ },
298
+ size: {
299
+ control: {
300
+ type: "number"
301
+ },
302
+ description: "= 10",
303
+ table: {
304
+ defaultValue: {
305
+ summary: "undefined"
306
+ }
307
+ },
308
+ type: {
309
+ required: true,
310
+ summary: "function | number | string"
311
+ }
312
+ },
313
+ sizeMax: {
314
+ control: {
315
+ type: "number"
316
+ },
317
+ defaultValue: 20,
318
+ description: "= 20",
319
+ table: {
320
+ defaultValue: {
321
+ summary: 20
322
+ }
323
+ },
324
+ type: {
325
+ required: true,
326
+ summary: "number"
327
+ }
328
+ },
329
+ sizeMin: {
330
+ control: {
331
+ type: "number"
332
+ },
333
+ defaultValue: 5,
334
+ description: "= 5",
335
+ table: {
336
+ defaultValue: {
337
+ summary: 5
338
+ }
339
+ },
340
+ type: {
341
+ required: true,
342
+ summary: "number"
343
+ }
344
+ },
345
+ sizeScale: {
346
+ control: {
347
+ type: "text"
348
+ },
349
+ defaultValue: "sqrt",
350
+ description: "= \"sqrt\"",
351
+ table: {
352
+ defaultValue: {
353
+ summary: "sqrt"
354
+ }
355
+ },
356
+ type: {
357
+ required: true,
358
+ summary: "string"
359
+ }
360
+ },
361
+ stackOffset: {
362
+ control: {
363
+ type: "text"
364
+ },
365
+ defaultValue: "stackOffsetDiverging",
366
+ description: "= \"descending\"",
367
+ table: {
368
+ defaultValue: {
369
+ summary: "stackOffsetDiverging"
370
+ }
371
+ },
372
+ type: {
373
+ required: true,
374
+ summary: "function | string"
375
+ }
376
+ },
377
+ stackOrder: {
378
+ control: {
379
+ type: "text"
380
+ },
381
+ defaultValue: "stackOrderDescending",
382
+ description: "= \"none\"",
383
+ table: {
384
+ defaultValue: {
385
+ summary: "stackOrderDescending"
386
+ }
387
+ },
388
+ type: {
389
+ required: true,
390
+ summary: "function | string | array"
391
+ }
392
+ },
393
+ stacked: {
394
+ control: {
395
+ type: "boolean"
396
+ },
397
+ description: "= false",
398
+ table: {
399
+ defaultValue: {
400
+ summary: "undefined"
401
+ }
402
+ },
403
+ type: {
404
+ required: true,
405
+ summary: "boolean"
406
+ }
407
+ },
408
+ timelineConfig: {
409
+ control: {
410
+ type: "object"
411
+ },
412
+ defaultValue: "assign(this._timelineConfig, {brushing: true, brushMin: () => this._xTime || this._yTime || this._x2Time || this._y2Time ? 2 : 1})",
413
+ table: {
414
+ defaultValue: {
415
+ detail: "assign(this._timelineConfig, {brushing: true, brushMin: () => this._xTime || this._yTime || this._x2Time || this._y2Time ? 2 : 1})",
416
+ summary: "function"
417
+ }
418
+ },
419
+ type: {
420
+ required: false,
421
+ summary: "object"
422
+ }
423
+ },
424
+ x: {
425
+ control: {
426
+ type: "text"
427
+ },
428
+ defaultValue: "d => d[\"x\"]",
429
+ table: {
430
+ defaultValue: {
431
+ detail: "d => d[\"x\"]",
432
+ summary: "function"
433
+ }
434
+ },
435
+ type: {
436
+ required: true,
437
+ summary: "function | string"
438
+ }
439
+ },
440
+ x2: {
441
+ control: {
442
+ type: "text"
443
+ },
444
+ defaultValue: "d => d[\"x2\"]",
445
+ table: {
446
+ defaultValue: {
447
+ detail: "d => d[\"x2\"]",
448
+ summary: "function"
449
+ }
450
+ },
451
+ type: {
452
+ required: true,
453
+ summary: "function | string"
454
+ }
455
+ },
456
+ x2Config: {
457
+ control: {
458
+ type: "object"
459
+ },
460
+ defaultValue: "{padding: 0}",
461
+ table: {
462
+ defaultValue: {
463
+ summary: "{padding: 0}"
464
+ }
465
+ },
466
+ type: {
467
+ required: true,
468
+ summary: "object"
469
+ }
470
+ },
471
+ x2Domain: {
472
+ control: {
473
+ type: "array"
474
+ },
475
+ table: {
476
+ defaultValue: {
477
+ summary: "undefined"
478
+ }
479
+ },
480
+ type: {
481
+ required: true,
482
+ summary: "array"
483
+ }
484
+ },
485
+ x2Sort: {
486
+ control: {},
487
+ table: {
488
+ defaultValue: {
489
+ summary: "undefined"
490
+ }
491
+ },
492
+ type: {
493
+ required: true,
494
+ summary: "function"
495
+ }
496
+ },
497
+ xConfig: {
498
+ control: {
499
+ type: "object"
500
+ },
501
+ defaultValue: "{gridConfig: {stroke: (d) => {\n if (this._discrete && this._discrete.charAt(0) === \"x\") return \"transparent\";\n const range = this._xAxis.range();\n return range[0] === this._xAxis._getPosition.bind(this._xAxis)(d.id) ? \"transparent\" : openColor.colors.gray[200];\n}}}",
502
+ table: {
503
+ defaultValue: {
504
+ detail: "{gridConfig: {stroke: (d) => {\n if (this._discrete && this._discrete.charAt(0) === \"x\") return \"transparent\";\n const range = this._xAxis.range();\n return range[0] === this._xAxis._getPosition.bind(this._xAxis)(d.id) ? \"transparent\" : openColor.colors.gray[200];\n}}}",
505
+ summary: "function"
506
+ }
507
+ },
508
+ type: {
509
+ required: true,
510
+ summary: "object"
511
+ }
512
+ },
513
+ xCutoff: {
514
+ control: {
515
+ type: "number"
516
+ },
517
+ defaultValue: 150,
518
+ table: {
519
+ defaultValue: {
520
+ summary: 150
521
+ }
522
+ },
523
+ type: {
524
+ required: true,
525
+ summary: "number"
526
+ }
527
+ },
528
+ xDomain: {
529
+ control: {
530
+ type: "array"
531
+ },
532
+ table: {
533
+ defaultValue: {
534
+ summary: "undefined"
535
+ }
536
+ },
537
+ type: {
538
+ required: true,
539
+ summary: "array"
540
+ }
541
+ },
542
+ xSort: {
543
+ control: {},
544
+ table: {
545
+ defaultValue: {
546
+ summary: "undefined"
547
+ }
548
+ },
549
+ type: {
550
+ required: true,
551
+ summary: "function"
552
+ }
553
+ },
554
+ y: {
555
+ control: {
556
+ type: "text"
557
+ },
558
+ defaultValue: "d => d[\"y\"]",
559
+ table: {
560
+ defaultValue: {
561
+ detail: "d => d[\"y\"]",
562
+ summary: "function"
563
+ }
564
+ },
565
+ type: {
566
+ required: true,
567
+ summary: "function | string"
568
+ }
569
+ },
570
+ y2: {
571
+ control: {
572
+ type: "text"
573
+ },
574
+ defaultValue: "d => d[\"y2\"]",
575
+ table: {
576
+ defaultValue: {
577
+ detail: "d => d[\"y2\"]",
578
+ summary: "function"
579
+ }
580
+ },
581
+ type: {
582
+ required: true,
583
+ summary: "function | string"
584
+ }
585
+ },
586
+ y2Config: {
587
+ control: {
588
+ type: "object"
589
+ },
590
+ defaultValue: "{}",
591
+ table: {
592
+ defaultValue: {
593
+ summary: "{}"
594
+ }
595
+ },
596
+ type: {
597
+ required: true,
598
+ summary: "object"
599
+ }
600
+ },
601
+ y2Domain: {
602
+ control: {
603
+ type: "array"
604
+ },
605
+ table: {
606
+ defaultValue: {
607
+ summary: "undefined"
608
+ }
609
+ },
610
+ type: {
611
+ required: true,
612
+ summary: "array"
613
+ }
614
+ },
615
+ y2Sort: {
616
+ control: {},
617
+ table: {
618
+ defaultValue: {
619
+ summary: "undefined"
620
+ }
621
+ },
622
+ type: {
623
+ required: true,
624
+ summary: "function"
625
+ }
626
+ },
627
+ yConfig: {
628
+ control: {
629
+ type: "object"
630
+ },
631
+ defaultValue: "{gridConfig: {stroke: (d) => {\n if (this._discrete && this._discrete.charAt(0) === \"y\") return \"transparent\";\n const range = this._yAxis.range();\n return range[range.length - 1] === this._yAxis._getPosition.bind(this._yAxis)(d.id) ? \"transparent\" : openColor.colors.gray[200];\n}}}",
632
+ table: {
633
+ defaultValue: {
634
+ detail: "{gridConfig: {stroke: (d) => {\n if (this._discrete && this._discrete.charAt(0) === \"y\") return \"transparent\";\n const range = this._yAxis.range();\n return range[range.length - 1] === this._yAxis._getPosition.bind(this._yAxis)(d.id) ? \"transparent\" : openColor.colors.gray[200];\n}}}",
635
+ summary: "function"
636
+ }
637
+ },
638
+ type: {
639
+ required: true,
640
+ summary: "object"
641
+ }
642
+ },
643
+ yCutoff: {
644
+ control: {
645
+ type: "number"
646
+ },
647
+ defaultValue: 150,
648
+ table: {
649
+ defaultValue: {
650
+ summary: 150
651
+ }
652
+ },
653
+ type: {
654
+ required: true,
655
+ summary: "number"
656
+ }
657
+ },
658
+ yDomain: {
659
+ control: {
660
+ type: "array"
661
+ },
662
+ table: {
663
+ defaultValue: {
664
+ summary: "undefined"
665
+ }
666
+ },
667
+ type: {
668
+ required: true,
669
+ summary: "array"
670
+ }
671
+ },
672
+ ySort: {
673
+ control: {},
674
+ table: {
675
+ defaultValue: {
676
+ summary: "undefined"
677
+ }
678
+ },
679
+ type: {
680
+ required: true,
681
+ summary: "function"
682
+ }
683
+ }
684
+ }
685
+ );