@semcore/d3-chart 1.7.1 → 2.0.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 (180) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/lib/cjs/Area.js +9 -9
  3. package/lib/cjs/Axis.js +33 -21
  4. package/lib/cjs/Axis.js.map +1 -1
  5. package/lib/cjs/Bar.js +11 -11
  6. package/lib/cjs/Bar.js.map +1 -1
  7. package/lib/cjs/Bubble.js +13 -34
  8. package/lib/cjs/Bubble.js.map +1 -1
  9. package/lib/cjs/ClipPath.js +2 -1
  10. package/lib/cjs/ClipPath.js.map +1 -1
  11. package/lib/cjs/Donut.js +8 -8
  12. package/lib/cjs/Donut.js.map +1 -1
  13. package/lib/cjs/Dots.js +9 -9
  14. package/lib/cjs/Dots.js.map +1 -1
  15. package/lib/cjs/GroupBar.js +8 -8
  16. package/lib/cjs/GroupBar.js.map +1 -1
  17. package/lib/cjs/HorizontalBar.js +11 -11
  18. package/lib/cjs/HorizontalBar.js.map +1 -1
  19. package/lib/cjs/Hover.js +4 -4
  20. package/lib/cjs/Line.js +8 -8
  21. package/lib/cjs/Plot.js +15 -1
  22. package/lib/cjs/Plot.js.map +1 -1
  23. package/lib/cjs/RadialTree.js +694 -0
  24. package/lib/cjs/RadialTree.js.map +1 -0
  25. package/lib/cjs/ResponsiveContainer.js +1 -1
  26. package/lib/cjs/ResponsiveContainer.js.map +1 -1
  27. package/lib/cjs/ScatterPlot.js +7 -7
  28. package/lib/cjs/StackBar.js +8 -8
  29. package/lib/cjs/StackBar.js.map +1 -1
  30. package/lib/cjs/StackedArea.js +8 -8
  31. package/lib/cjs/StackedArea.js.map +1 -1
  32. package/lib/cjs/Tooltip.js +11 -15
  33. package/lib/cjs/Tooltip.js.map +1 -1
  34. package/lib/cjs/Venn.js +9 -9
  35. package/lib/cjs/Venn.js.map +1 -1
  36. package/lib/cjs/color.js +122 -30
  37. package/lib/cjs/color.js.map +1 -1
  38. package/lib/cjs/createElement.js +3 -2
  39. package/lib/cjs/createElement.js.map +1 -1
  40. package/lib/cjs/index.js +8 -0
  41. package/lib/cjs/index.js.map +1 -1
  42. package/lib/cjs/style/area.shadow.css +4 -4
  43. package/lib/cjs/style/axis.shadow.css +6 -8
  44. package/lib/cjs/style/bar.shadow.css +2 -2
  45. package/lib/cjs/style/bubble.shadow.css +3 -3
  46. package/lib/cjs/style/donut.shadow.css +2 -2
  47. package/lib/cjs/style/dot.shadow.css +1 -1
  48. package/lib/cjs/style/hover.shadow.css +2 -2
  49. package/lib/cjs/style/line.shadow.css +2 -2
  50. package/lib/cjs/style/plot.shadow.css +6 -0
  51. package/lib/cjs/style/radial-tree.shadow.css +34 -0
  52. package/lib/cjs/style/scatterplot.shadow.css +2 -2
  53. package/lib/cjs/style/tooltip.shadow.css +5 -5
  54. package/lib/cjs/style/var.css +123 -30
  55. package/lib/cjs/style/venn.shadow.css +1 -1
  56. package/lib/cjs/types/Area.d.ts +47 -0
  57. package/lib/cjs/types/Axis.d.ts +64 -0
  58. package/lib/cjs/types/Bar.d.ts +48 -0
  59. package/lib/cjs/types/Bubble.d.ts +27 -0
  60. package/lib/cjs/types/ClipPath.d.ts +26 -0
  61. package/lib/cjs/types/Donut.d.ts +42 -0
  62. package/lib/cjs/types/GroupBar.d.ts +20 -0
  63. package/lib/cjs/types/HorizontalBar.d.ts +29 -0
  64. package/lib/cjs/types/Hover.d.ts +15 -0
  65. package/lib/cjs/types/Line.d.ts +50 -0
  66. package/lib/cjs/types/Plot.d.ts +16 -0
  67. package/lib/cjs/types/ResponsiveContainer.d.ts +20 -0
  68. package/lib/cjs/types/ScatterPlot.d.ts +27 -0
  69. package/lib/cjs/types/StackBar.d.ts +26 -0
  70. package/lib/cjs/types/StackedArea.d.ts +26 -0
  71. package/lib/cjs/types/Tooltip.d.ts +31 -0
  72. package/lib/cjs/types/Venn.d.ts +45 -0
  73. package/lib/cjs/types/context.d.ts +6 -0
  74. package/lib/cjs/types/index.d.ts +53 -0
  75. package/lib/cjs/utils.js +120 -55
  76. package/lib/cjs/utils.js.map +1 -1
  77. package/lib/es6/Area.js +9 -9
  78. package/lib/es6/Axis.js +33 -21
  79. package/lib/es6/Axis.js.map +1 -1
  80. package/lib/es6/Bar.js +11 -11
  81. package/lib/es6/Bar.js.map +1 -1
  82. package/lib/es6/Bubble.js +13 -34
  83. package/lib/es6/Bubble.js.map +1 -1
  84. package/lib/es6/ClipPath.js +2 -1
  85. package/lib/es6/ClipPath.js.map +1 -1
  86. package/lib/es6/Donut.js +8 -8
  87. package/lib/es6/Donut.js.map +1 -1
  88. package/lib/es6/Dots.js +9 -9
  89. package/lib/es6/Dots.js.map +1 -1
  90. package/lib/es6/GroupBar.js +8 -8
  91. package/lib/es6/GroupBar.js.map +1 -1
  92. package/lib/es6/HorizontalBar.js +11 -11
  93. package/lib/es6/HorizontalBar.js.map +1 -1
  94. package/lib/es6/Hover.js +4 -4
  95. package/lib/es6/Line.js +8 -8
  96. package/lib/es6/Plot.js +17 -1
  97. package/lib/es6/Plot.js.map +1 -1
  98. package/lib/es6/RadialTree.js +682 -0
  99. package/lib/es6/RadialTree.js.map +1 -0
  100. package/lib/es6/ResponsiveContainer.js +1 -1
  101. package/lib/es6/ResponsiveContainer.js.map +1 -1
  102. package/lib/es6/ScatterPlot.js +7 -7
  103. package/lib/es6/StackBar.js +8 -8
  104. package/lib/es6/StackBar.js.map +1 -1
  105. package/lib/es6/StackedArea.js +8 -8
  106. package/lib/es6/StackedArea.js.map +1 -1
  107. package/lib/es6/Tooltip.js +11 -15
  108. package/lib/es6/Tooltip.js.map +1 -1
  109. package/lib/es6/Venn.js +9 -9
  110. package/lib/es6/Venn.js.map +1 -1
  111. package/lib/es6/color.js +122 -30
  112. package/lib/es6/color.js.map +1 -1
  113. package/lib/es6/createElement.js +3 -2
  114. package/lib/es6/createElement.js.map +1 -1
  115. package/lib/es6/index.js +1 -0
  116. package/lib/es6/index.js.map +1 -1
  117. package/lib/es6/style/area.shadow.css +4 -4
  118. package/lib/es6/style/axis.shadow.css +6 -8
  119. package/lib/es6/style/bar.shadow.css +2 -2
  120. package/lib/es6/style/bubble.shadow.css +3 -3
  121. package/lib/es6/style/donut.shadow.css +2 -2
  122. package/lib/es6/style/dot.shadow.css +1 -1
  123. package/lib/es6/style/hover.shadow.css +2 -2
  124. package/lib/es6/style/line.shadow.css +2 -2
  125. package/lib/es6/style/plot.shadow.css +6 -0
  126. package/lib/es6/style/radial-tree.shadow.css +34 -0
  127. package/lib/es6/style/scatterplot.shadow.css +2 -2
  128. package/lib/es6/style/tooltip.shadow.css +5 -5
  129. package/lib/es6/style/var.css +123 -30
  130. package/lib/es6/style/venn.shadow.css +1 -1
  131. package/lib/es6/types/Area.d.ts +47 -0
  132. package/lib/es6/types/Axis.d.ts +64 -0
  133. package/lib/es6/types/Bar.d.ts +48 -0
  134. package/lib/es6/types/Bubble.d.ts +27 -0
  135. package/lib/es6/types/ClipPath.d.ts +26 -0
  136. package/lib/es6/types/Donut.d.ts +42 -0
  137. package/lib/es6/types/GroupBar.d.ts +20 -0
  138. package/lib/es6/types/HorizontalBar.d.ts +29 -0
  139. package/lib/es6/types/Hover.d.ts +15 -0
  140. package/lib/es6/types/Line.d.ts +50 -0
  141. package/lib/es6/types/Plot.d.ts +16 -0
  142. package/lib/es6/types/ResponsiveContainer.d.ts +20 -0
  143. package/lib/es6/types/ScatterPlot.d.ts +27 -0
  144. package/lib/es6/types/StackBar.d.ts +26 -0
  145. package/lib/es6/types/StackedArea.d.ts +26 -0
  146. package/lib/es6/types/Tooltip.d.ts +31 -0
  147. package/lib/es6/types/Venn.d.ts +45 -0
  148. package/lib/es6/types/context.d.ts +6 -0
  149. package/lib/es6/types/index.d.ts +53 -0
  150. package/lib/es6/utils.js +95 -44
  151. package/lib/es6/utils.js.map +1 -1
  152. package/lib/types/RadialTree.d.ts +202 -0
  153. package/lib/types/index.d.ts +6 -0
  154. package/lib/types/utils.d.ts +27 -0
  155. package/package.json +22 -10
  156. package/src/Axis.jsx +11 -1
  157. package/src/Bubble.jsx +1 -21
  158. package/src/ClipPath.jsx +1 -0
  159. package/src/Donut.jsx +7 -9
  160. package/src/Plot.jsx +2 -0
  161. package/src/RadialTree.tsx +767 -0
  162. package/src/createElement.jsx +3 -1
  163. package/src/index.js +1 -0
  164. package/src/style/area.shadow.css +4 -4
  165. package/src/style/axis.shadow.css +6 -8
  166. package/src/style/bar.shadow.css +2 -2
  167. package/src/style/bubble.shadow.css +3 -3
  168. package/src/style/donut.shadow.css +2 -2
  169. package/src/style/dot.shadow.css +1 -1
  170. package/src/style/hover.shadow.css +2 -2
  171. package/src/style/line.shadow.css +2 -2
  172. package/src/style/plot.shadow.css +6 -0
  173. package/src/style/radial-tree.shadow.css +34 -0
  174. package/src/style/scatterplot.shadow.css +2 -2
  175. package/src/style/tooltip.shadow.css +5 -5
  176. package/src/style/var.css +123 -30
  177. package/src/style/venn.shadow.css +1 -1
  178. package/src/types/index.d.ts +6 -0
  179. package/src/utils.ts +227 -0
  180. package/src/utils.js +0 -147
@@ -0,0 +1,31 @@
1
+ import { ComponentProps } from 'react';
2
+ import Popper, { IPopperProps, IPopperTriggerProps } from '@semcore/popper';
3
+ import { CProps, PropGetterFn, ReturnEl } from '@semcore/core';
4
+ import { IBoxProps } from '@semcore/flex-box';
5
+ import IContext from './context';
6
+
7
+ export interface ITooltipProps extends IPopperProps, IPopperTriggerProps, IContext {
8
+ /** Field from data for XAxis */
9
+ x?: string;
10
+ /** Field from data for YAxis */
11
+ y?: string;
12
+ }
13
+
14
+ export interface ITooltipContext {
15
+ getTriggerProps: PropGetterFn;
16
+ getPopperProps: PropGetterFn;
17
+ /** Index active value for Axis x */
18
+ xIndex: number | null;
19
+ /** Index active value for Axis y */
20
+ yIndex: number | null;
21
+ }
22
+
23
+ declare const Tooltip: (<T>(props: CProps<ITooltipProps & T, ITooltipContext>) => ReturnEl) & {
24
+ Trigger: <T>(props: CProps<ComponentProps<typeof Popper.Trigger> & T>) => ReturnEl;
25
+ Popper: <T>(props: CProps<ComponentProps<typeof Popper.Popper> & T>) => ReturnEl;
26
+ Title: <T>(props: CProps<IBoxProps & T>) => ReturnEl;
27
+ Dot: <T>(props: CProps<IBoxProps & { color?: string } & T>) => ReturnEl;
28
+ Footer: <T>(props: CProps<T>) => null;
29
+ };
30
+
31
+ export default Tooltip;
@@ -0,0 +1,45 @@
1
+ import { CProps, ReturnEl } from '@semcore/core';
2
+ import IContext from './context';
3
+ import { IFadeInOutProps } from '@semcore/animation';
4
+
5
+ export interface IVennProps extends IContext, IFadeInOutProps {
6
+ /**
7
+ * Rotate sets in the chart
8
+ * @default Math.PI / 2
9
+ */
10
+ orientation?: number;
11
+ /**
12
+ * The function for sorting sets inside the chart
13
+ * @default (circle1, circle2) => circle2.radius - circle1.radius
14
+ */
15
+ orientationOrder?: (c1: number, c2: number) => number;
16
+ }
17
+
18
+ export interface ICircleProps extends IContext {
19
+ /**
20
+ * Name of the field in the data
21
+ * */
22
+ dataKey: string;
23
+ /** Color circle
24
+ @default #3AB011
25
+ **/
26
+ color?: string;
27
+ /** Animation duration in ms
28
+ * @default 500
29
+ */
30
+ duration?: number;
31
+ }
32
+
33
+ export interface IIntersectionProps extends IContext, IFadeInOutProps {
34
+ /**
35
+ * Name of the field in the data
36
+ * */
37
+ dataKey: string;
38
+ }
39
+
40
+ declare const Venn: (<T>(props: CProps<IVennProps & T>) => ReturnEl) & {
41
+ Circle: <T>(props: CProps<ICircleProps & T>) => ReturnEl;
42
+ Intersection: <T>(props: CProps<IIntersectionProps & T>) => ReturnEl;
43
+ };
44
+
45
+ export default Venn;
@@ -0,0 +1,6 @@
1
+ export default interface IContext {
2
+ /** Data for graphic */
3
+ data?: any;
4
+ /** Scale for svg element */
5
+ scale?: any[];
6
+ }
@@ -0,0 +1,53 @@
1
+ // Utils
2
+ export declare function minMax(data: any, key: string | number): any;
3
+
4
+ // Color
5
+ export declare const colors: { [key: string]: string };
6
+
7
+ export { default as Plot } from './Plot';
8
+ export * from './Plot';
9
+
10
+ export * from './Axis';
11
+ export * from './Hover';
12
+
13
+ export { default as ResponsiveContainer } from './ResponsiveContainer';
14
+ export * from './ResponsiveContainer';
15
+
16
+ export { default as Line } from './Line';
17
+ export * from './Line';
18
+
19
+ export { default as Bar } from './Bar';
20
+ export * from './Bar';
21
+
22
+ export { default as HorizontalBar } from './HorizontalBar';
23
+ export * from './HorizontalBar';
24
+
25
+ export { default as GroupBar } from './GroupBar';
26
+ export * from './GroupBar';
27
+
28
+ export { default as StackBar } from './StackBar';
29
+ export * from './StackBar';
30
+
31
+ export { default as Area } from './Area';
32
+ export * from './Area';
33
+
34
+ export { default as StackedArea } from './StackedArea';
35
+ export * from './StackedArea';
36
+
37
+ /** It becomes resolvable after building and moving file to lib dir */
38
+ // eslint-disable-next-line import/no-unresolved
39
+ export { default as RadialTree } from './RadialTree';
40
+ // eslint-disable-next-line import/no-unresolved
41
+ export * from './RadialTree';
42
+
43
+ export { default as Donut } from './Donut';
44
+ export * from './Donut';
45
+
46
+ export { default as Tooltip } from './Tooltip';
47
+ export * from './Tooltip';
48
+
49
+ export { default as ScatterPlot } from './ScatterPlot';
50
+ export * from './ScatterPlot';
51
+
52
+ export { default as Bubble } from './Bubble';
53
+ export * from './Bubble';
package/lib/cjs/utils.js CHANGED
@@ -5,17 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.CONSTANT = void 0;
9
- exports.definedData = definedData;
10
- exports.definedNullData = definedNullData;
11
- exports.eventToPoint = eventToPoint;
12
- exports.getBandwidth = getBandwidth;
13
- exports.getIndexFromData = getIndexFromData;
14
- exports.getNullData = getNullData;
15
- exports.invert = invert;
16
- exports.minMax = minMax;
17
- exports.roundedPath = roundedPath;
18
- exports.scaleOfBandwidth = scaleOfBandwidth;
8
+ exports.scaleOfBandwidth = exports.roundedPath = exports.minMax = exports.memoize = exports.measureText = exports.invert = exports.getNullData = exports.getIndexFromData = exports.getBandwidth = exports.eventToPoint = exports.definedNullData = exports.definedData = exports.CONSTANT = void 0;
19
9
 
20
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
11
 
@@ -23,6 +13,12 @@ var _d3Array = require("d3-array");
23
13
 
24
14
  var _d3Scale = require("d3-scale");
25
15
 
16
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
17
+
18
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
+
20
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
21
+
26
22
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
23
 
28
24
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -32,36 +28,46 @@ var CONSTANT = {
32
28
  };
33
29
  exports.CONSTANT = CONSTANT;
34
30
 
35
- function eventToPoint(event, svgRoot) {
31
+ var eventToPoint = function eventToPoint(event, svgRoot) {
36
32
  var node = event.currentTarget || event.target;
37
33
  var rect = svgRoot.getBoundingClientRect();
38
34
  return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
39
- }
35
+ };
36
+
37
+ exports.eventToPoint = eventToPoint;
40
38
 
41
- function invert(scale, value) {
39
+ var invert = function invert(scale, value) {
42
40
  if (scale.invert) return scale.invert(value);
43
41
  var range = scale.range();
44
42
  var domain = scale.domain();
45
43
  return (0, _d3Scale.scaleQuantize)().domain(range[0] <= range[1] ? range : range.slice().reverse()).range(range[0] <= range[1] ? domain : domain.slice().reverse())(value);
46
- }
44
+ };
45
+
46
+ exports.invert = invert;
47
47
 
48
- function definedNullData(x, y) {
49
- return function (p) {
50
- return p[x] !== null && p[y] !== null;
48
+ var definedNullData = function definedNullData(x, y) {
49
+ return function (plot) {
50
+ return plot[x] !== null && plot[y] !== null;
51
51
  };
52
- }
52
+ };
53
+
54
+ exports.definedNullData = definedNullData;
53
55
 
54
- function definedData(x, y) {
55
- return function (p) {
56
- return p[x] !== null && p[x] !== undefined && p[y] !== null && p[y] !== undefined;
56
+ var definedData = function definedData(x, y) {
57
+ return function (plot) {
58
+ return plot[x] !== null && plot[x] !== undefined && plot[y] !== null && plot[y] !== undefined;
57
59
  };
58
- }
60
+ };
59
61
 
60
- function scaleOfBandwidth(scale, value) {
62
+ exports.definedData = definedData;
63
+
64
+ var scaleOfBandwidth = function scaleOfBandwidth(scale, value) {
61
65
  return scale.bandwidth ? scale(value) + scale.bandwidth() / 2 : scale(value);
62
- }
66
+ };
63
67
 
64
- function minMax(data, key) {
68
+ exports.scaleOfBandwidth = scaleOfBandwidth;
69
+
70
+ var minMax = function minMax(data, key) {
65
71
  if (typeof key === 'string') {
66
72
  return (0, _d3Array.extent)(data, function (d) {
67
73
  return d[key];
@@ -69,9 +75,11 @@ function minMax(data, key) {
69
75
  }
70
76
 
71
77
  return (0, _d3Array.extent)(data, key);
72
- }
78
+ };
79
+
80
+ exports.minMax = minMax;
73
81
 
74
- function getNullData(data, defined, name) {
82
+ var getNullData = function getNullData(data, defined, name) {
75
83
  return data.reduce(function (acc, d, i, data) {
76
84
  if (defined(d)) {
77
85
  acc.push((0, _defineProperty2["default"])({}, name, null));
@@ -102,9 +110,11 @@ function getNullData(data, defined, name) {
102
110
 
103
111
  return acc;
104
112
  }, []);
105
- }
113
+ };
114
+
115
+ exports.getNullData = getNullData;
106
116
 
107
- function getIndexFromData(data, scale, key, value) {
117
+ var getIndexFromData = function getIndexFromData(data, scale, key, value) {
108
118
  // detect line chart
109
119
  if ('invert' in scale && typeof scale.invert === 'function') {
110
120
  var bisect = (0, _d3Array.bisector)(function (d) {
@@ -118,59 +128,63 @@ function getIndexFromData(data, scale, key, value) {
118
128
  });
119
129
  return index >= 0 ? index : null;
120
130
  } else {
131
+ // eslint-disable-next-line no-console
121
132
  console.warn('[d3-chart/utils/getIndexFromData] encountered incompatible scale type');
122
133
  return null;
123
134
  }
124
- }
135
+ };
136
+
137
+ exports.getIndexFromData = getIndexFromData;
125
138
 
126
- function roundedPath(x, y, w, h, r) {
139
+ var roundedPath = function roundedPath(x, y, w, h, r) {
127
140
  var tl = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
128
141
  var tr = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
129
142
  var bl = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;
130
143
  var br = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;
131
- var retval;
132
- retval = 'M' + (x + r) + ',' + y;
133
- retval += 'h' + (w - 2 * r);
144
+ var result = 'M' + (x + r) + ',' + y;
145
+ result += 'h' + (w - 2 * r);
134
146
 
135
147
  if (tr) {
136
- retval += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + r;
148
+ result += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + r;
137
149
  } else {
138
- retval += 'h' + r;
139
- retval += 'v' + r;
150
+ result += 'h' + r;
151
+ result += 'v' + r;
140
152
  }
141
153
 
142
- retval += 'v' + (h - 2 * r);
154
+ result += 'v' + (h - 2 * r);
143
155
 
144
156
  if (br) {
145
- retval += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + r;
157
+ result += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + r;
146
158
  } else {
147
- retval += 'v' + r;
148
- retval += 'h' + -r;
159
+ result += 'v' + r;
160
+ result += 'h' + -r;
149
161
  }
150
162
 
151
- retval += 'h' + (2 * r - w);
163
+ result += 'h' + (2 * r - w);
152
164
 
153
165
  if (bl) {
154
- retval += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + -r;
166
+ result += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + -r;
155
167
  } else {
156
- retval += 'h' + -r;
157
- retval += 'v' + -r;
168
+ result += 'h' + -r;
169
+ result += 'v' + -r;
158
170
  }
159
171
 
160
- retval += 'v' + (2 * r - h);
172
+ result += 'v' + (2 * r - h);
161
173
 
162
174
  if (tl) {
163
- retval += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + -r;
175
+ result += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + -r;
164
176
  } else {
165
- retval += 'v' + -r;
166
- retval += 'h' + r;
177
+ result += 'v' + -r;
178
+ result += 'h' + r;
167
179
  }
168
180
 
169
- retval += 'z';
170
- return retval;
171
- }
181
+ result += 'z';
182
+ return result;
183
+ };
172
184
 
173
- function getBandwidth(scale) {
185
+ exports.roundedPath = roundedPath;
186
+
187
+ var getBandwidth = function getBandwidth(scale) {
174
188
  if ('bandwidth' in scale) {
175
189
  return scale.bandwidth();
176
190
  }
@@ -178,5 +192,56 @@ function getBandwidth(scale) {
178
192
  var range = scale.range();
179
193
  var domain = scale.domain();
180
194
  return Math.abs(range[range.length - 1] - range[0]) / domain.length;
181
- }
195
+ };
196
+
197
+ exports.getBandwidth = getBandwidth;
198
+
199
+ var memoize = function memoize(func) {
200
+ var results = {};
201
+ return function () {
202
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
203
+ args[_key] = arguments[_key];
204
+ }
205
+
206
+ var argsKey = args.join(',');
207
+
208
+ if (!results[argsKey]) {
209
+ results[argsKey] = func.apply(void 0, args);
210
+ }
211
+
212
+ return results[argsKey];
213
+ };
214
+ };
215
+
216
+ exports.memoize = memoize;
217
+ var measureText = memoize(function (text, fontSize) {
218
+ if (!text) return 0;
219
+ var span = document.createElement('span');
220
+
221
+ if (fontSize) {
222
+ span.style.fontSize = "".concat(fontSize, "px");
223
+ }
224
+
225
+ var _iterator = _createForOfIteratorHelper(text.split('\n')),
226
+ _step;
227
+
228
+ try {
229
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
230
+ var line = _step.value;
231
+ span.append(document.createTextNode(line));
232
+ span.append(document.createElement('br'));
233
+ }
234
+ } catch (err) {
235
+ _iterator.e(err);
236
+ } finally {
237
+ _iterator.f();
238
+ }
239
+
240
+ span.style.display = 'inline-block';
241
+ document.body.append(span);
242
+ var textWidth = span.offsetWidth;
243
+ span.remove();
244
+ return textWidth;
245
+ });
246
+ exports.measureText = measureText;
182
247
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils.js"],"names":["CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","slice","reverse","definedNullData","x","y","p","definedData","undefined","scaleOfBandwidth","bandwidth","minMax","data","key","d","getNullData","defined","name","reduce","acc","i","push","prev","next","defNext","find","length","defPrev","getIndexFromData","bisect","center","step","index","findIndex","console","warn","roundedPath","w","h","r","tl","tr","bl","br","retval","getBandwidth","Math","abs"],"mappings":"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","sourcesContent":["import { extent, bisector } from 'd3-array';\nimport { scaleQuantize } from 'd3-scale';\n\nconst CONSTANT = {\n VIRTUAL_ELEMENT: Symbol('VIRTUAL_ELEMENT'),\n};\n\nexport { CONSTANT };\n\nexport function eventToPoint(event, svgRoot) {\n const node = event.currentTarget || event.target;\n const rect = svgRoot.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n\nexport function invert(scale, value) {\n if (scale.invert) return scale.invert(value);\n\n const range = scale.range();\n const domain = scale.domain();\n\n return scaleQuantize()\n .domain(range[0] <= range[1] ? range : range.slice().reverse())\n .range(range[0] <= range[1] ? domain : domain.slice().reverse())(value);\n}\n\nexport function definedNullData(x, y) {\n return (p) => p[x] !== null && p[y] !== null;\n}\n\nexport function definedData(x, y) {\n return (p) => {\n return p[x] !== null && p[x] !== undefined && p[y] !== null && p[y] !== undefined;\n };\n}\n\nexport function scaleOfBandwidth(scale, value) {\n return scale.bandwidth ? scale(value) + scale.bandwidth() / 2 : scale(value);\n}\n\nexport function minMax(data, key) {\n if (typeof key === 'string') {\n return extent(data, (d) => d[key]);\n }\n return extent(data, key);\n}\n\nexport function getNullData(data, defined, name) {\n return data.reduce((acc, d, i, data) => {\n if (defined(d)) {\n acc.push({\n [name]: null,\n });\n } else {\n const prev = data[i - 1];\n const next = data[i + 1];\n\n if (i === 0) {\n const defNext = data.find(defined);\n acc.push({\n ...d,\n [name]: defNext ? defNext[name] : null,\n });\n }\n\n // prev\n if (prev && defined(prev)) {\n acc.push(prev);\n }\n\n // next\n if (next && defined(next)) {\n acc.push(next);\n }\n\n if (data.length - 1 === i) {\n const defPrev = data.slice().reverse().find(defined);\n acc.push({\n ...d,\n [name]: defPrev ? defPrev[name] : null,\n });\n }\n }\n return acc;\n }, []);\n}\n\nexport function getIndexFromData(data, scale, key, value) {\n // detect line chart\n if ('invert' in scale && typeof scale.invert === 'function') {\n const bisect = bisector((d) => d[key]).center;\n return bisect(data, value);\n }\n // detect bar chart\n else if ('step' in scale && typeof scale.step !== 'undefined') {\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n } else {\n console.warn('[d3-chart/utils/getIndexFromData] encountered incompatible scale type');\n return null;\n }\n}\n\nexport function roundedPath(x, y, w, h, r, tl = false, tr = false, bl = false, br = false) {\n let retval;\n retval = 'M' + (x + r) + ',' + y;\n retval += 'h' + (w - 2 * r);\n if (tr) {\n retval += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + r;\n } else {\n retval += 'h' + r;\n retval += 'v' + r;\n }\n retval += 'v' + (h - 2 * r);\n if (br) {\n retval += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + r;\n } else {\n retval += 'v' + r;\n retval += 'h' + -r;\n }\n retval += 'h' + (2 * r - w);\n if (bl) {\n retval += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + -r;\n } else {\n retval += 'h' + -r;\n retval += 'v' + -r;\n }\n retval += 'v' + (2 * r - h);\n if (tl) {\n retval += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + -r;\n } else {\n retval += 'v' + -r;\n retval += 'h' + r;\n }\n retval += 'z';\n return retval;\n}\n\nexport function getBandwidth(scale) {\n if ('bandwidth' in scale) {\n return scale.bandwidth();\n }\n\n const range = scale.range();\n const domain = scale.domain();\n return Math.abs(range[range.length - 1] - range[0]) / domain.length;\n}\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../../src/utils.ts"],"names":["CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","slice","reverse","definedNullData","x","y","plot","definedData","undefined","scaleOfBandwidth","bandwidth","minMax","data","key","d","getNullData","defined","name","reduce","acc","i","push","prev","next","defNext","find","length","defPrev","getIndexFromData","bisect","center","step","index","findIndex","console","warn","roundedPath","w","h","r","tl","tr","bl","br","result","getBandwidth","Math","abs","memoize","func","results","args","argsKey","join","measureText","text","fontSize","span","document","createElement","style","split","line","append","createTextNode","display","body","textWidth","offsetWidth","remove"],"mappings":"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","sourcesContent":["import { extent, bisector, Numeric } from 'd3-array';\nimport {\n scaleQuantize,\n ScaleIdentity,\n ScaleTime,\n ScaleContinuousNumeric,\n ScaleBand,\n ScalePoint,\n NumberValue,\n} from 'd3-scale';\nimport React from 'react';\n\nconst CONSTANT = {\n VIRTUAL_ELEMENT: Symbol('VIRTUAL_ELEMENT'),\n} as const;\n\nexport { CONSTANT };\n\nexport const eventToPoint = (event: React.MouseEvent<HTMLElement>, svgRoot: SVGElement) => {\n const node = (event.currentTarget || event.target) as HTMLElement;\n const rect = svgRoot.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n};\n\ntype InvertableScale =\n | ScaleIdentity\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>;\nexport const invert = <Scale extends InvertableScale = InvertableScale>(\n scale: Scale,\n value: number,\n) => {\n if (scale.invert) return scale.invert(value);\n\n const range = scale.range() as number[];\n const domain = scale.domain();\n\n return scaleQuantize()\n .domain((range[0] <= range[1] ? range : range.slice().reverse()) as NumberValue[])\n .range((range[0] <= range[1] ? domain : domain.slice().reverse()) as number[])(value);\n};\n\nexport const definedNullData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[y] !== null;\n\nexport const definedData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[x] !== undefined && plot[y] !== null && plot[y] !== undefined;\n\nexport const scaleOfBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale, value: number) =>\n scale.bandwidth ? scale(value)! + scale.bandwidth() / 2 : scale(value);\n\nexport const minMax = <\n Key extends string = string,\n Data extends Iterable<{ [key in Key]: Numeric | null | undefined }> = Iterable<{\n [key in Key]: Numeric | null | undefined;\n }>,\n>(\n data: Data,\n key: Key,\n) => {\n if (typeof key === 'string') {\n return extent(data, (d) => d[key]);\n }\n return extent(data, key);\n};\n\nexport const getNullData = <\n Name extends string = string,\n Data extends { [name in Name]?: unknown | null } = {},\n>(\n data: Data[],\n defined: (data: Data) => boolean,\n name: Name,\n) =>\n data.reduce((acc, d, i, data) => {\n if (defined(d)) {\n acc.push({\n [name]: null,\n } as Data);\n } else {\n const prev = data[i - 1];\n const next = data[i + 1];\n\n if (i === 0) {\n const defNext = data.find(defined);\n acc.push({\n ...d,\n [name]: defNext ? defNext[name] : null,\n });\n }\n\n // prev\n if (prev && defined(prev)) {\n acc.push(prev);\n }\n\n // next\n if (next && defined(next)) {\n acc.push(next);\n }\n\n if (data.length - 1 === i) {\n const defPrev = data.slice().reverse().find(defined);\n acc.push({\n ...d,\n [name]: defPrev ? defPrev[name] : null,\n });\n }\n }\n return acc;\n }, [] as Data[]);\n\ntype IndexFromDataScale =\n | ScaleIdentity\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>\n | ScaleBand<{}>\n | ScalePoint<{}>;\nexport const getIndexFromData = <\n Data extends {\n [key: string]: number;\n } = {},\n Scale extends IndexFromDataScale = IndexFromDataScale,\n>(\n data: Data[],\n scale: Scale,\n key: string,\n value: number,\n) => {\n // detect line chart\n if ('invert' in scale && typeof scale.invert === 'function') {\n const bisect = bisector((d: { [key: string]: number }) => d[key]).center;\n return bisect(data, value);\n }\n // detect bar chart\n else if ('step' in scale && typeof scale.step !== 'undefined') {\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n } else {\n // eslint-disable-next-line no-console\n console.warn('[d3-chart/utils/getIndexFromData] encountered incompatible scale type');\n return null;\n }\n};\n\nexport const roundedPath = (\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n tl = false,\n tr = false,\n bl = false,\n br = false,\n) => {\n let result = 'M' + (x + r) + ',' + y;\n result += 'h' + (w - 2 * r);\n if (tr) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + r;\n } else {\n result += 'h' + r;\n result += 'v' + r;\n }\n result += 'v' + (h - 2 * r);\n if (br) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + r;\n } else {\n result += 'v' + r;\n result += 'h' + -r;\n }\n result += 'h' + (2 * r - w);\n if (bl) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + -r;\n } else {\n result += 'h' + -r;\n result += 'v' + -r;\n }\n result += 'v' + (2 * r - h);\n if (tl) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + -r;\n } else {\n result += 'v' + -r;\n result += 'h' + r;\n }\n result += 'z';\n return result;\n};\n\nexport const getBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale) => {\n if ('bandwidth' in scale) {\n return scale.bandwidth();\n }\n\n const range = scale.range();\n const domain = scale.domain();\n return Math.abs(range[range.length - 1] - range[0]) / domain.length;\n};\n\nexport const memoize = <Func extends (...args: any[]) => any>(func: Func): Func => {\n const results: { [cacheKey: string]: any } = {};\n return ((...args: any[]) => {\n const argsKey = args.join(',');\n if (!results[argsKey]) {\n results[argsKey] = func(...args);\n }\n return results[argsKey];\n }) as Func;\n};\n\nexport const measureText = memoize((text: string, fontSize?: number) => {\n if (!text) return 0;\n\n const span = document.createElement('span');\n if (fontSize) {\n span.style.fontSize = `${fontSize}px`;\n }\n for (const line of text.split('\\n')) {\n span.append(document.createTextNode(line));\n span.append(document.createElement('br'));\n }\n span.style.display = 'inline-block';\n document.body.append(span);\n const textWidth = span.offsetWidth;\n span.remove();\n return textWidth;\n});\n"],"file":"utils.js"}
package/lib/es6/Area.js CHANGED
@@ -25,18 +25,18 @@ var style = (
25
25
  /*__reshadow_css_start__*/
26
26
  _sstyled.insert(
27
27
  /*__inner_css_start__*/
28
- ".___SArea_cehn5_gg_{fill:#50aef4;fill-opacity:.4}.___SArea_cehn5_gg_.__color_cehn5_gg_{fill:var(--color_clbofp)}.___SAreaLine_cehn5_gg_{stroke:#50aef4;stroke-width:3;fill:transparent}.___SAreaLine_cehn5_gg_.__color_cehn5_gg_{stroke:var(--color_clbofp)}.___SArea_cehn5_gg_,.___SAreaLine_cehn5_gg_{transition-property:d;transition-duration:var(--duration_clbofp);transition-timing-function:ease-in-out}.___SNull_cehn5_gg_{fill:transparent;stroke:#bdc4c6;stroke-dasharray:4}.___SNull_cehn5_gg_.__hide_cehn5_gg_{display:none}"
28
+ ".___SArea_1iyoe_gg_{fill:#2bb3ff;fill-opacity:.2}.___SArea_1iyoe_gg_.__color_1iyoe_gg_{fill:var(--color_14tehk4)}.___SAreaLine_1iyoe_gg_{stroke:#2bb3ff;stroke-width:3;fill:transparent}.___SAreaLine_1iyoe_gg_.__color_1iyoe_gg_{stroke:var(--color_14tehk4)}.___SArea_1iyoe_gg_,.___SAreaLine_1iyoe_gg_{transition-property:d;transition-duration:var(--duration_14tehk4);transition-timing-function:ease-in-out}.___SNull_1iyoe_gg_{fill:transparent;stroke:#8a8e9b;stroke-dasharray:4}.___SNull_1iyoe_gg_.__hide_1iyoe_gg_{display:none}"
29
29
  /*__inner_css_end__*/
30
- , "clbofp_gg_")
30
+ , "14tehk4_gg_")
31
31
  /*__reshadow_css_end__*/
32
32
  , {
33
- "__SArea": "___SArea_cehn5_gg_",
34
- "_color": "__color_cehn5_gg_",
35
- "--color": "--color_clbofp",
36
- "__SAreaLine": "___SAreaLine_cehn5_gg_",
37
- "--duration": "--duration_clbofp",
38
- "__SNull": "___SNull_cehn5_gg_",
39
- "_hide": "__hide_cehn5_gg_"
33
+ "__SArea": "___SArea_1iyoe_gg_",
34
+ "_color": "__color_1iyoe_gg_",
35
+ "--color": "--color_14tehk4",
36
+ "__SAreaLine": "___SAreaLine_1iyoe_gg_",
37
+ "--duration": "--duration_14tehk4",
38
+ "__SNull": "___SNull_1iyoe_gg_",
39
+ "_hide": "__hide_1iyoe_gg_"
40
40
  });
41
41
 
42
42
  var AreaRoot = /*#__PURE__*/function (_Component) {
package/lib/es6/Axis.js CHANGED
@@ -27,22 +27,23 @@ var style = (
27
27
  /*__reshadow_css_start__*/
28
28
  _sstyled.insert(
29
29
  /*__inner_css_start__*/
30
- ".___SAxis_j24dv_gg_{stroke:#a6b0b3}.___SAxis_j24dv_gg_.__hide_j24dv_gg_{display:none}.___STick_j24dv_gg_{font-size:12px;fill:#757575}.___STick_j24dv_gg_.__hide_j24dv_gg_{display:none}.___SGrid_j24dv_gg_{fill:transparent;stroke:#dee3e5}.___STitle_j24dv_gg_{font-size:12px;fill:#757575;transform-origin:center}.___STitle_j24dv_gg_._position_top_j24dv_gg_{text-anchor:middle;transform:translateY(-16px)}.___STitle_j24dv_gg_._position_bottom_j24dv_gg_{text-anchor:middle;alignment-baseline:hanging;transform:translateY(16px)}.___STitle_j24dv_gg_._position_right_j24dv_gg_{transform:rotate(-90deg);transform-box:fill-box;alignment-baseline:middle}.___STitle_j24dv_gg_._position_left_j24dv_gg_{transform:rotate(-90deg);text-anchor:end;transform-box:fill-box;alignment-baseline:middle}.___STick_j24dv_gg_._position_top_j24dv_gg_{transform:translateY(-12px);text-anchor:middle}.___STick_j24dv_gg_._position_bottom_j24dv_gg_{transform:translateY(12px);text-anchor:middle;alignment-baseline:hanging}.___STick_j24dv_gg_._position_right_j24dv_gg_{transform:translateX(16px);text-anchor:start;alignment-baseline:middle}.___STick_j24dv_gg_._position_left_j24dv_gg_{transform:translateX(-16px);text-anchor:end;alignment-baseline:middle}.___STick_j24dv_gg_._position_custom_0_j24dv_gg_{transform:translateY(12px);text-anchor:middle;alignment-baseline:hanging}.___STick_j24dv_gg_._position_custom_1_j24dv_gg_{transform:translateX(-16px);text-anchor:end;alignment-baseline:middle}"
30
+ ".___SAxis_1uh3e_gg_{stroke:#c4c7cf}.___SAxis_1uh3e_gg_.__hide_1uh3e_gg_{display:none}.___STick_1uh3e_gg_{font-size:12px;fill:#6c6e79}.___STick_1uh3e_gg_.__hide_1uh3e_gg_{display:none}.___SGrid_1uh3e_gg_{fill:transparent;stroke:#e0e1e9}.___STitle_1uh3e_gg_{font-size:12px;fill:#6c6e79;transform-origin:var(--transform-origin_10rkj03)}.___STitle_1uh3e_gg_._position_top_1uh3e_gg_{text-anchor:middle;transform:translateY(-16px)}.___STitle_1uh3e_gg_._position_bottom_1uh3e_gg_{text-anchor:middle;alignment-baseline:hanging;transform:translateY(16px)}.___STitle_1uh3e_gg_._position_right_1uh3e_gg_{transform:rotate(-90deg);alignment-baseline:middle}.___STitle_1uh3e_gg_._position_left_1uh3e_gg_{transform:rotate(-90deg);text-anchor:middle;alignment-baseline:middle}.___STick_1uh3e_gg_._position_top_1uh3e_gg_{transform:translateY(-12px);text-anchor:middle}.___STick_1uh3e_gg_._position_bottom_1uh3e_gg_{transform:translateY(12px);text-anchor:middle;alignment-baseline:hanging}.___STick_1uh3e_gg_._position_right_1uh3e_gg_{transform:translateX(16px);text-anchor:start;alignment-baseline:middle}.___STick_1uh3e_gg_._position_left_1uh3e_gg_{transform:translateX(-16px);text-anchor:end;alignment-baseline:middle}.___STick_1uh3e_gg_._position_custom_0_1uh3e_gg_{transform:translateY(12px);text-anchor:middle;alignment-baseline:hanging}.___STick_1uh3e_gg_._position_custom_1_1uh3e_gg_{transform:translateX(-16px);text-anchor:end;alignment-baseline:middle}"
31
31
  /*__inner_css_end__*/
32
- , "8vu5zg_gg_")
32
+ , "10rkj03_gg_")
33
33
  /*__reshadow_css_end__*/
34
34
  , {
35
- "__SAxis": "___SAxis_j24dv_gg_",
36
- "_hide": "__hide_j24dv_gg_",
37
- "__STick": "___STick_j24dv_gg_",
38
- "__SGrid": "___SGrid_j24dv_gg_",
39
- "__STitle": "___STitle_j24dv_gg_",
40
- "_position_top": "_position_top_j24dv_gg_",
41
- "_position_bottom": "_position_bottom_j24dv_gg_",
42
- "_position_right": "_position_right_j24dv_gg_",
43
- "_position_left": "_position_left_j24dv_gg_",
44
- "_position_custom_0": "_position_custom_0_j24dv_gg_",
45
- "_position_custom_1": "_position_custom_1_j24dv_gg_"
35
+ "__SAxis": "___SAxis_1uh3e_gg_",
36
+ "_hide": "__hide_1uh3e_gg_",
37
+ "__STick": "___STick_1uh3e_gg_",
38
+ "__SGrid": "___SGrid_1uh3e_gg_",
39
+ "__STitle": "___STitle_1uh3e_gg_",
40
+ "--transform-origin": "--transform-origin_10rkj03",
41
+ "_position_top": "_position_top_1uh3e_gg_",
42
+ "_position_bottom": "_position_bottom_1uh3e_gg_",
43
+ "_position_right": "_position_right_1uh3e_gg_",
44
+ "_position_left": "_position_left_1uh3e_gg_",
45
+ "_position_custom_0": "_position_custom_0_1uh3e_gg_",
46
+ "_position_custom_1": "_position_custom_1_1uh3e_gg_"
46
47
  });
47
48
  var CUSTOM_0 = Symbol('custom_0');
48
49
  var CUSTOM_1 = Symbol('custom_1');
@@ -345,7 +346,7 @@ var AxisRoot = /*#__PURE__*/function (_Component) {
345
346
  }, {
346
347
  key: "render",
347
348
  value: function render() {
348
- var _ref, _MAP_POSITION_AXIS$po;
349
+ var _ref;
349
350
 
350
351
  var SAxis = this.Element;
351
352
  var _this$asProps3 = this.asProps,
@@ -354,7 +355,7 @@ var AxisRoot = /*#__PURE__*/function (_Component) {
354
355
  scale = _this$asProps3.scale,
355
356
  hide = _this$asProps3.hide,
356
357
  indexScale = _this$asProps3.indexScale;
357
- var pos = (_MAP_POSITION_AXIS$po = MAP_POSITION_AXIS[position]) !== null && _MAP_POSITION_AXIS$po !== void 0 ? _MAP_POSITION_AXIS$po : MAP_POSITION_AXIS[MAP_INDEX_SCALE_SYMBOL[indexScale]];
358
+ var pos = MAP_POSITION_AXIS[position] ?? MAP_POSITION_AXIS[MAP_INDEX_SCALE_SYMBOL[indexScale]];
358
359
  return _ref = sstyled(styles), /*#__PURE__*/React.createElement(SAxis, _ref.cn("SAxis", _objectSpread({
359
360
  "render": "line",
360
361
  "hide": hide
@@ -370,8 +371,6 @@ _defineProperty(AxisRoot, "displayName", 'Axis');
370
371
  _defineProperty(AxisRoot, "style", style);
371
372
 
372
373
  function Ticks(props) {
373
- var _MAP_POSITION_TICK$po;
374
-
375
374
  var STick = props.Element,
376
375
  styles = props.styles,
377
376
  scale = props.scale,
@@ -379,7 +378,7 @@ function Ticks(props) {
379
378
  position = props.position,
380
379
  hide = props.hide,
381
380
  indexScale = props.indexScale;
382
- var pos = (_MAP_POSITION_TICK$po = MAP_POSITION_TICK[position]) !== null && _MAP_POSITION_TICK$po !== void 0 ? _MAP_POSITION_TICK$po : MAP_POSITION_TICK[MAP_INDEX_SCALE_SYMBOL[indexScale]];
381
+ var pos = MAP_POSITION_TICK[position] ?? MAP_POSITION_TICK[MAP_INDEX_SCALE_SYMBOL[indexScale]];
383
382
  var positionClass = MAP_POSITION_TICK[position] ? position : 'custom_' + indexScale;
384
383
  return ticks.map(function (value, i) {
385
384
  var _ref2;
@@ -420,11 +419,24 @@ function Title(props) {
420
419
  styles = props.styles,
421
420
  scale = props.scale,
422
421
  position = props.position;
423
- return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(STitle, _ref4.cn("STitle", _objectSpread({
422
+
423
+ var _MAP_POSITION_TITlE$p = MAP_POSITION_TITlE[position](scale),
424
+ x = _MAP_POSITION_TITlE$p.x,
425
+ y = _MAP_POSITION_TITlE$p.y;
426
+
427
+ var sstyles = sstyled(styles);
428
+ var sTitleStyles = sstyles.cn('STitle', {
429
+ 'transform-origin': "".concat(x.toFixed(2), "px ").concat(y.toFixed(2), "px")
430
+ });
431
+ return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(STitle, _ref4.cn("STitle", {
424
432
  "render": "text",
425
433
  "childrenPosition": "inside",
426
- "position": position
427
- }, MAP_POSITION_TITlE[position](scale))));
434
+ "position": position,
435
+ "className": sTitleStyles.className,
436
+ "style": sTitleStyles.style,
437
+ "x": x,
438
+ "y": y
439
+ }));
428
440
  }
429
441
 
430
442
  var XAxis = createElement(AxisRoot, {