@semcore/d3-chart 2.13.3 → 2.13.5

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 (152) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/lib/cjs/Area.js +59 -97
  3. package/lib/cjs/Area.js.map +1 -1
  4. package/lib/cjs/Axis.js +76 -143
  5. package/lib/cjs/Axis.js.map +1 -1
  6. package/lib/cjs/Bar.js +49 -96
  7. package/lib/cjs/Bar.js.map +1 -1
  8. package/lib/cjs/Bubble.js +39 -81
  9. package/lib/cjs/Bubble.js.map +1 -1
  10. package/lib/cjs/ClipPath.js +9 -35
  11. package/lib/cjs/ClipPath.js.map +1 -1
  12. package/lib/cjs/Donut.js +77 -152
  13. package/lib/cjs/Donut.js.map +1 -1
  14. package/lib/cjs/Dots.js +29 -57
  15. package/lib/cjs/Dots.js.map +1 -1
  16. package/lib/cjs/GroupBar.js +5 -26
  17. package/lib/cjs/GroupBar.js.map +1 -1
  18. package/lib/cjs/HorizontalBar.js +43 -84
  19. package/lib/cjs/HorizontalBar.js.map +1 -1
  20. package/lib/cjs/Hover.js +33 -88
  21. package/lib/cjs/Hover.js.map +1 -1
  22. package/lib/cjs/Line.js +42 -78
  23. package/lib/cjs/Line.js.map +1 -1
  24. package/lib/cjs/Plot.js +27 -73
  25. package/lib/cjs/Plot.js.map +1 -1
  26. package/lib/cjs/Radar.js +152 -277
  27. package/lib/cjs/Radar.js.map +1 -1
  28. package/lib/cjs/RadialTree.js +105 -211
  29. package/lib/cjs/RadialTree.js.map +1 -1
  30. package/lib/cjs/ReferenceLine.js +45 -87
  31. package/lib/cjs/ReferenceLine.js.map +1 -1
  32. package/lib/cjs/ResponsiveContainer.js +9 -38
  33. package/lib/cjs/ResponsiveContainer.js.map +1 -1
  34. package/lib/cjs/ScatterPlot.js +34 -74
  35. package/lib/cjs/ScatterPlot.js.map +1 -1
  36. package/lib/cjs/StackBar.js +9 -38
  37. package/lib/cjs/StackBar.js.map +1 -1
  38. package/lib/cjs/StackedArea.js +5 -29
  39. package/lib/cjs/StackedArea.js.map +1 -1
  40. package/lib/cjs/Tooltip.js +27 -76
  41. package/lib/cjs/Tooltip.js.map +1 -1
  42. package/lib/cjs/Venn.js +32 -75
  43. package/lib/cjs/Venn.js.map +1 -1
  44. package/lib/cjs/a11y/PlotA11yModule.js +18 -71
  45. package/lib/cjs/a11y/PlotA11yModule.js.map +1 -1
  46. package/lib/cjs/a11y/PlotA11yView.js +19 -83
  47. package/lib/cjs/a11y/PlotA11yView.js.map +1 -1
  48. package/lib/cjs/a11y/bezier.js +0 -7
  49. package/lib/cjs/a11y/bezier.js.map +1 -1
  50. package/lib/cjs/a11y/focus.js +2 -11
  51. package/lib/cjs/a11y/focus.js.map +1 -1
  52. package/lib/cjs/a11y/hints.js +0 -13
  53. package/lib/cjs/a11y/hints.js.map +1 -1
  54. package/lib/cjs/a11y/insights.js +21 -132
  55. package/lib/cjs/a11y/insights.js.map +1 -1
  56. package/lib/cjs/a11y/intl.js +0 -6
  57. package/lib/cjs/a11y/intl.js.map +1 -1
  58. package/lib/cjs/a11y/locale.js +4 -22
  59. package/lib/cjs/a11y/locale.js.map +1 -1
  60. package/lib/cjs/a11y/serialize.js +23 -83
  61. package/lib/cjs/a11y/serialize.js.map +1 -1
  62. package/lib/cjs/a11y/summarize.js +0 -4
  63. package/lib/cjs/a11y/summarize.js.map +1 -1
  64. package/lib/cjs/a11y/translations/module/__intergalactic-dynamic-locales.js +0 -13
  65. package/lib/cjs/a11y/translations/module/__intergalactic-dynamic-locales.js.map +1 -1
  66. package/lib/cjs/a11y/translations/view/__intergalactic-dynamic-locales.js +0 -13
  67. package/lib/cjs/a11y/translations/view/__intergalactic-dynamic-locales.js.map +1 -1
  68. package/lib/cjs/color.js +0 -3
  69. package/lib/cjs/color.js.map +1 -1
  70. package/lib/cjs/createElement.js +18 -47
  71. package/lib/cjs/createElement.js.map +1 -1
  72. package/lib/cjs/index.js +0 -23
  73. package/lib/cjs/index.js.map +1 -1
  74. package/lib/cjs/types/Plot.d.js.map +1 -1
  75. package/lib/cjs/types/index.d.js +0 -39
  76. package/lib/cjs/types/index.d.js.map +1 -1
  77. package/lib/cjs/utils.js +7 -59
  78. package/lib/cjs/utils.js.map +1 -1
  79. package/lib/es6/Area.js +59 -86
  80. package/lib/es6/Area.js.map +1 -1
  81. package/lib/es6/Axis.js +76 -135
  82. package/lib/es6/Axis.js.map +1 -1
  83. package/lib/es6/Bar.js +49 -86
  84. package/lib/es6/Bar.js.map +1 -1
  85. package/lib/es6/Bubble.js +39 -70
  86. package/lib/es6/Bubble.js.map +1 -1
  87. package/lib/es6/ClipPath.js +9 -23
  88. package/lib/es6/ClipPath.js.map +1 -1
  89. package/lib/es6/Donut.js +77 -141
  90. package/lib/es6/Donut.js.map +1 -1
  91. package/lib/es6/Dots.js +29 -46
  92. package/lib/es6/Dots.js.map +1 -1
  93. package/lib/es6/GroupBar.js +5 -15
  94. package/lib/es6/GroupBar.js.map +1 -1
  95. package/lib/es6/HorizontalBar.js +43 -75
  96. package/lib/es6/HorizontalBar.js.map +1 -1
  97. package/lib/es6/Hover.js +33 -85
  98. package/lib/es6/Hover.js.map +1 -1
  99. package/lib/es6/Line.js +42 -67
  100. package/lib/es6/Line.js.map +1 -1
  101. package/lib/es6/Plot.js +27 -66
  102. package/lib/es6/Plot.js.map +1 -1
  103. package/lib/es6/Radar.js +152 -281
  104. package/lib/es6/Radar.js.map +1 -1
  105. package/lib/es6/RadialTree.js +105 -203
  106. package/lib/es6/RadialTree.js.map +1 -1
  107. package/lib/es6/ReferenceLine.js +45 -79
  108. package/lib/es6/ReferenceLine.js.map +1 -1
  109. package/lib/es6/ResponsiveContainer.js +9 -28
  110. package/lib/es6/ResponsiveContainer.js.map +1 -1
  111. package/lib/es6/ScatterPlot.js +34 -65
  112. package/lib/es6/ScatterPlot.js.map +1 -1
  113. package/lib/es6/StackBar.js +9 -26
  114. package/lib/es6/StackBar.js.map +1 -1
  115. package/lib/es6/StackedArea.js +5 -18
  116. package/lib/es6/StackedArea.js.map +1 -1
  117. package/lib/es6/Tooltip.js +27 -63
  118. package/lib/es6/Tooltip.js.map +1 -1
  119. package/lib/es6/Venn.js +32 -64
  120. package/lib/es6/Venn.js.map +1 -1
  121. package/lib/es6/a11y/PlotA11yModule.js +18 -52
  122. package/lib/es6/a11y/PlotA11yModule.js.map +1 -1
  123. package/lib/es6/a11y/PlotA11yView.js +19 -53
  124. package/lib/es6/a11y/PlotA11yView.js.map +1 -1
  125. package/lib/es6/a11y/bezier.js +0 -5
  126. package/lib/es6/a11y/bezier.js.map +1 -1
  127. package/lib/es6/a11y/focus.js +2 -9
  128. package/lib/es6/a11y/focus.js.map +1 -1
  129. package/lib/es6/a11y/hints.js +0 -3
  130. package/lib/es6/a11y/hints.js.map +1 -1
  131. package/lib/es6/a11y/insights.js +21 -133
  132. package/lib/es6/a11y/insights.js.map +1 -1
  133. package/lib/es6/a11y/intl.js +0 -1
  134. package/lib/es6/a11y/intl.js.map +1 -1
  135. package/lib/es6/a11y/locale.js +4 -18
  136. package/lib/es6/a11y/locale.js.map +1 -1
  137. package/lib/es6/a11y/serialize.js +23 -74
  138. package/lib/es6/a11y/serialize.js.map +1 -1
  139. package/lib/es6/a11y/summarize.js.map +1 -1
  140. package/lib/es6/a11y/translations/module/__intergalactic-dynamic-locales.js.map +1 -1
  141. package/lib/es6/a11y/translations/view/__intergalactic-dynamic-locales.js.map +1 -1
  142. package/lib/es6/color.js +0 -1
  143. package/lib/es6/color.js.map +1 -1
  144. package/lib/es6/createElement.js +18 -34
  145. package/lib/es6/createElement.js.map +1 -1
  146. package/lib/es6/index.js.map +1 -1
  147. package/lib/es6/types/Plot.d.js.map +1 -1
  148. package/lib/es6/types/index.d.js +5 -3
  149. package/lib/es6/types/index.d.js.map +1 -1
  150. package/lib/es6/utils.js +7 -28
  151. package/lib/es6/utils.js.map +1 -1
  152. package/package.json +1 -1
@@ -2,8 +2,8 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
4
  var _excluded = ["render", "childrenPosition", "x", "y"],
5
- _excluded2 = ["forwardRef", "children", "Children", "x", "y"],
6
- _excluded3 = ["$rootProps"];
5
+ _excluded2 = ["forwardRef", "children", "Children", "x", "y"],
6
+ _excluded3 = ["$rootProps"];
7
7
  import React, { useContext } from 'react';
8
8
  import hoistNonReactStatics from 'hoist-non-react-statics';
9
9
  import createComponent, { createBaseComponent, CONTEXT_COMPONENT } from '@semcore/core';
@@ -13,28 +13,25 @@ import propsForElement from '@semcore/utils/lib/propsForElement';
13
13
  import getOriginChildren from '@semcore/utils/lib/getOriginChildren';
14
14
  import Plot from './Plot';
15
15
  var EXCLUDE_PROPS = ['data', 'scale'];
16
-
17
16
  function createElementRender() {
18
17
  var Element = /*#__PURE__*/React.forwardRef(function ( // eslint-disable-next-line @typescript-eslint/no-unused-vars
19
18
  _ref, ref) {
20
19
  var render = _ref.render,
21
- _ref$childrenPosition = _ref.childrenPosition,
22
- childrenPosition = _ref$childrenPosition === void 0 ? 'below' : _ref$childrenPosition,
23
- xS = _ref.x,
24
- yS = _ref.y,
25
- source = _objectWithoutProperties(_ref, _excluded);
26
-
20
+ _ref$childrenPosition = _ref.childrenPosition,
21
+ childrenPosition = _ref$childrenPosition === void 0 ? 'below' : _ref$childrenPosition,
22
+ xS = _ref.x,
23
+ yS = _ref.y,
24
+ source = _objectWithoutProperties(_ref, _excluded);
27
25
  var _Element$props = Element.props,
28
- _Element$props$forwar = _Element$props.forwardRef,
29
- forwardRef = _Element$props$forwar === void 0 ? null : _Element$props$forwar,
30
- _children = _Element$props.children,
31
- Children = _Element$props.Children,
32
- _Element$props$x = _Element$props.x,
33
- x = _Element$props$x === void 0 ? xS : _Element$props$x,
34
- _Element$props$y = _Element$props.y,
35
- y = _Element$props$y === void 0 ? yS : _Element$props$y,
36
- props = _objectWithoutProperties(_Element$props, _excluded2);
37
-
26
+ _Element$props$forwar = _Element$props.forwardRef,
27
+ forwardRef = _Element$props$forwar === void 0 ? null : _Element$props$forwar,
28
+ _children = _Element$props.children,
29
+ Children = _Element$props.Children,
30
+ _Element$props$x = _Element$props.x,
31
+ x = _Element$props$x === void 0 ? xS : _Element$props$x,
32
+ _Element$props$y = _Element$props.y,
33
+ y = _Element$props$y === void 0 ? yS : _Element$props$y,
34
+ props = _objectWithoutProperties(_Element$props, _excluded2);
38
35
  var children = getOriginChildren(Children);
39
36
  var mergedProps = assignProps(_objectSpread(_objectSpread({
40
37
  x: xS,
@@ -45,24 +42,19 @@ function createElementRender() {
45
42
  x: x,
46
43
  y: y
47
44
  }, source));
48
-
49
45
  if (typeof children === 'function') {
50
46
  var _child = mergedProps.children;
51
47
  mergedProps = assignProps(children(mergedProps), mergedProps);
52
48
  children = mergedProps.children;
53
49
  mergedProps.children = _child;
54
50
  }
55
-
56
51
  var Tag = typeof render === 'string' ? mergedProps.tag || render : render;
57
-
58
52
  if (childrenPosition === 'inside') {
59
53
  mergedProps.children = children === undefined ? mergedProps.children : children;
60
54
  }
61
-
62
55
  if (!Tag) {
63
56
  throw new Error('Element expected render prop to be passed');
64
57
  }
65
-
66
58
  return [/*#__PURE__*/React.createElement(React.Fragment, {
67
59
  key: "child-above"
68
60
  }, childrenPosition === 'above' ? children : null), /*#__PURE__*/React.createElement(Tag, _extends({
@@ -78,7 +70,6 @@ function createElementRender() {
78
70
  Element.props = {};
79
71
  return Element;
80
72
  }
81
-
82
73
  function elementEnhancement() {
83
74
  return {
84
75
  init: function init() {
@@ -86,14 +77,12 @@ function elementEnhancement() {
86
77
  },
87
78
  asProps: function asProps(_ref2, WrapperComponent, isFunction) {
88
79
  var $rootProps = _ref2.$rootProps,
89
- props = _objectWithoutProperties(_ref2, _excluded3);
90
-
80
+ props = _objectWithoutProperties(_ref2, _excluded3);
91
81
  if (isFunction) {
92
82
  return _objectSpread(_objectSpread(_objectSpread({}, $rootProps), props), {}, {
93
83
  Element: this.Element
94
84
  });
95
85
  }
96
-
97
86
  return _objectSpread(_objectSpread({}, $rootProps), props);
98
87
  },
99
88
  render: function render(_render, props) {
@@ -102,24 +91,20 @@ function elementEnhancement() {
102
91
  }
103
92
  };
104
93
  }
105
-
106
94
  function WrapComponent(Element) {
107
95
  function ElementWithContext(props, ref) {
108
96
  var _useContext = useContext(Plot[CONTEXT_COMPONENT]),
109
- $rootProps = _useContext.$rootProps;
110
-
97
+ $rootProps = _useContext.$rootProps;
111
98
  return /*#__PURE__*/React.createElement(Element, _extends({
112
99
  ref: ref,
113
100
  $rootProps: $rootProps
114
101
  }, props));
115
102
  }
116
-
117
103
  ElementWithContext.displayName = Element.displayName;
118
104
  var WrapperComponent = createBaseComponent(ElementWithContext);
119
105
  WrapperComponent.displayName = Element.displayName;
120
106
  return hoistNonReactStatics(WrapperComponent, Element);
121
107
  }
122
-
123
108
  function createElement(ElementRoot) {
124
109
  var child = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
125
110
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
@@ -131,6 +116,5 @@ function createElement(ElementRoot) {
131
116
  });
132
117
  return WrapComponent(Element);
133
118
  }
134
-
135
119
  export default createElement;
136
120
  //# sourceMappingURL=createElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createElement.js","names":["React","useContext","hoistNonReactStatics","createComponent","createBaseComponent","CONTEXT_COMPONENT","assignProps","useForkRef","propsForElement","getOriginChildren","Plot","EXCLUDE_PROPS","createElementRender","Element","forwardRef","ref","render","childrenPosition","xS","x","yS","y","source","props","_children","children","Children","mergedProps","_child","Tag","tag","undefined","Error","__excludeProps","elementEnhancement","init","asProps","WrapperComponent","isFunction","$rootProps","WrapComponent","ElementWithContext","displayName","createElement","ElementRoot","child","options","enhancements","Object","keys","forEach","n"],"sources":["../../src/createElement.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport createComponent, { createBaseComponent, CONTEXT_COMPONENT } from '@semcore/core';\nimport assignProps from '@semcore/utils/lib/assignProps';\nimport { useForkRef } from '@semcore/utils/lib/ref';\nimport propsForElement from '@semcore/utils/lib/propsForElement';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport Plot from './Plot';\n\nconst EXCLUDE_PROPS = ['data', 'scale'];\n\nfunction createElementRender() {\n const Element = React.forwardRef(function (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n { render, childrenPosition = 'below', x: xS, y: yS, ...source },\n ref,\n ) {\n const {\n forwardRef = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n children: _children,\n Children,\n x = xS,\n y = yS,\n ...props\n } = Element.props;\n let children = getOriginChildren(Children);\n\n let mergedProps = assignProps(\n {\n x: xS,\n y: yS,\n ...props,\n ref: useForkRef(forwardRef, ref),\n },\n {\n x,\n y,\n ...source,\n },\n );\n\n if (typeof children === 'function') {\n const _child = mergedProps.children;\n mergedProps = assignProps(children(mergedProps), mergedProps);\n children = mergedProps.children;\n mergedProps.children = _child;\n }\n\n const Tag = typeof render === 'string' ? mergedProps.tag || render : render;\n\n if (childrenPosition === 'inside') {\n mergedProps.children = children === undefined ? mergedProps.children : children;\n }\n\n if (!Tag) {\n throw new Error('Element expected render prop to be passed');\n }\n return [\n <React.Fragment key=\"child-above\">\n {childrenPosition === 'above' ? children : null}\n </React.Fragment>,\n <Tag\n aria-hidden\n {...propsForElement(\n {\n __excludeProps: EXCLUDE_PROPS,\n ...mergedProps,\n },\n Tag,\n )}\n key=\"element\"\n />,\n <React.Fragment key=\"child-below\">\n {childrenPosition === 'below' ? children : null}\n </React.Fragment>,\n ];\n });\n\n Element.props = {};\n return Element;\n}\n\nfunction elementEnhancement() {\n return {\n init: function () {\n this.Element = createElementRender();\n },\n asProps: function ({ $rootProps, ...props }, WrapperComponent, isFunction) {\n if (isFunction) {\n return {\n ...$rootProps,\n ...props,\n Element: this.Element,\n };\n }\n return {\n ...$rootProps,\n ...props,\n };\n },\n render: function (render, props) {\n this.Element.props = props;\n return render;\n },\n };\n}\n\nfunction WrapComponent(Element) {\n function ElementWithContext(props, ref) {\n const { $rootProps } = useContext(Plot[CONTEXT_COMPONENT]);\n return <Element ref={ref} $rootProps={$rootProps} {...props} />;\n }\n\n ElementWithContext.displayName = Element.displayName;\n\n const WrapperComponent = createBaseComponent(ElementWithContext);\n WrapperComponent.displayName = Element.displayName;\n\n return hoistNonReactStatics(WrapperComponent, Element);\n}\n\nfunction createElement(ElementRoot, child = {}, options = {}) {\n const Element = createComponent(ElementRoot, child, {\n ...options,\n enhancements: [elementEnhancement],\n });\n\n Object.keys(child).forEach((n) => {\n Element[n] = WrapComponent(Element[n]);\n });\n\n return WrapComponent(Element);\n}\n\nexport default createElement;\n"],"mappings":"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"}
1
+ {"version":3,"file":"createElement.js","names":["React","useContext","hoistNonReactStatics","createComponent","createBaseComponent","CONTEXT_COMPONENT","assignProps","useForkRef","propsForElement","getOriginChildren","Plot","EXCLUDE_PROPS","createElementRender","Element","forwardRef","_ref","ref","render","_ref$childrenPosition","childrenPosition","xS","x","yS","y","source","_objectWithoutProperties","_excluded","_Element$props","props","_Element$props$forwar","_children","children","Children","_Element$props$x","_Element$props$y","_excluded2","mergedProps","_objectSpread","_child","Tag","tag","undefined","Error","createElement","Fragment","key","_extends","__excludeProps","elementEnhancement","init","asProps","_ref2","WrapperComponent","isFunction","$rootProps","_excluded3","WrapComponent","ElementWithContext","_useContext","displayName","ElementRoot","child","arguments","length","options","enhancements","Object","keys","forEach","n"],"sources":["../../src/createElement.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport createComponent, { createBaseComponent, CONTEXT_COMPONENT } from '@semcore/core';\nimport assignProps from '@semcore/utils/lib/assignProps';\nimport { useForkRef } from '@semcore/utils/lib/ref';\nimport propsForElement from '@semcore/utils/lib/propsForElement';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport Plot from './Plot';\n\nconst EXCLUDE_PROPS = ['data', 'scale'];\n\nfunction createElementRender() {\n const Element = React.forwardRef(function (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n { render, childrenPosition = 'below', x: xS, y: yS, ...source },\n ref,\n ) {\n const {\n forwardRef = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n children: _children,\n Children,\n x = xS,\n y = yS,\n ...props\n } = Element.props;\n let children = getOriginChildren(Children);\n\n let mergedProps = assignProps(\n {\n x: xS,\n y: yS,\n ...props,\n ref: useForkRef(forwardRef, ref),\n },\n {\n x,\n y,\n ...source,\n },\n );\n\n if (typeof children === 'function') {\n const _child = mergedProps.children;\n mergedProps = assignProps(children(mergedProps), mergedProps);\n children = mergedProps.children;\n mergedProps.children = _child;\n }\n\n const Tag = typeof render === 'string' ? mergedProps.tag || render : render;\n\n if (childrenPosition === 'inside') {\n mergedProps.children = children === undefined ? mergedProps.children : children;\n }\n\n if (!Tag) {\n throw new Error('Element expected render prop to be passed');\n }\n return [\n <React.Fragment key=\"child-above\">\n {childrenPosition === 'above' ? children : null}\n </React.Fragment>,\n <Tag\n aria-hidden\n {...propsForElement(\n {\n __excludeProps: EXCLUDE_PROPS,\n ...mergedProps,\n },\n Tag,\n )}\n key=\"element\"\n />,\n <React.Fragment key=\"child-below\">\n {childrenPosition === 'below' ? children : null}\n </React.Fragment>,\n ];\n });\n\n Element.props = {};\n return Element;\n}\n\nfunction elementEnhancement() {\n return {\n init: function () {\n this.Element = createElementRender();\n },\n asProps: function ({ $rootProps, ...props }, WrapperComponent, isFunction) {\n if (isFunction) {\n return {\n ...$rootProps,\n ...props,\n Element: this.Element,\n };\n }\n return {\n ...$rootProps,\n ...props,\n };\n },\n render: function (render, props) {\n this.Element.props = props;\n return render;\n },\n };\n}\n\nfunction WrapComponent(Element) {\n function ElementWithContext(props, ref) {\n const { $rootProps } = useContext(Plot[CONTEXT_COMPONENT]);\n return <Element ref={ref} $rootProps={$rootProps} {...props} />;\n }\n\n ElementWithContext.displayName = Element.displayName;\n\n const WrapperComponent = createBaseComponent(ElementWithContext);\n WrapperComponent.displayName = Element.displayName;\n\n return hoistNonReactStatics(WrapperComponent, Element);\n}\n\nfunction createElement(ElementRoot, child = {}, options = {}) {\n const Element = createComponent(ElementRoot, child, {\n ...options,\n enhancements: [elementEnhancement],\n });\n\n Object.keys(child).forEach((n) => {\n Element[n] = WrapComponent(Element[n]);\n });\n\n return WrapComponent(Element);\n}\n\nexport default createElement;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","Plot","XAxis","YAxis","Line","Bar","HorizontalBar","GroupBar","StackBar","Area","StackedArea","ScatterPlot","Bubble","RadialTree","Donut","Venn","Radar","getLabelOffsetPosition","Tooltip","ResponsiveContainer","ReferenceLine","HoverLine","HoverRect","minMax","colors"],"sources":["../../src/index.js"],"sourcesContent":["export { default as Plot } from './Plot';\n\nexport { XAxis, YAxis } from './Axis';\n\nexport { default as Line } from './Line';\n\nexport { default as Bar } from './Bar';\nexport { default as HorizontalBar } from './HorizontalBar';\nexport { default as GroupBar } from './GroupBar';\nexport { default as StackBar } from './StackBar';\nexport { default as Area } from './Area';\nexport { default as StackedArea } from './StackedArea';\nexport { default as ScatterPlot } from './ScatterPlot';\nexport { default as Bubble } from './Bubble';\nexport { default as RadialTree } from './RadialTree';\nexport { default as Donut } from './Donut';\nexport { default as Venn } from './Venn';\nexport { default as Radar, getLabelOffsetPosition } from './Radar';\n\nexport { default as Tooltip } from './Tooltip';\n\nexport { default as ResponsiveContainer } from './ResponsiveContainer';\nexport { default as ReferenceLine } from './ReferenceLine';\n\nexport { HoverLine, HoverRect } from './Hover';\n\nexport { minMax } from './utils';\nexport { colors } from './color';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,IAApB,QAAgC,QAAhC;AAEA,SAASC,KAAT,EAAgBC,KAAhB,QAA6B,QAA7B;AAEA,SAASH,OAAO,IAAII,IAApB,QAAgC,QAAhC;AAEA,SAASJ,OAAO,IAAIK,GAApB,QAA+B,OAA/B;AACA,SAASL,OAAO,IAAIM,aAApB,QAAyC,iBAAzC;AACA,SAASN,OAAO,IAAIO,QAApB,QAAoC,YAApC;AACA,SAASP,OAAO,IAAIQ,QAApB,QAAoC,YAApC;AACA,SAASR,OAAO,IAAIS,IAApB,QAAgC,QAAhC;AACA,SAAST,OAAO,IAAIU,WAApB,QAAuC,eAAvC;AACA,SAASV,OAAO,IAAIW,WAApB,QAAuC,eAAvC;AACA,SAASX,OAAO,IAAIY,MAApB,QAAkC,UAAlC;AACA,SAASZ,OAAO,IAAIa,UAApB,QAAsC,cAAtC;AACA,SAASb,OAAO,IAAIc,KAApB,QAAiC,SAAjC;AACA,SAASd,OAAO,IAAIe,IAApB,QAAgC,QAAhC;AACA,SAASf,OAAO,IAAIgB,KAApB,EAA2BC,sBAA3B,QAAyD,SAAzD;AAEA,SAASjB,OAAO,IAAIkB,OAApB,QAAmC,WAAnC;AAEA,SAASlB,OAAO,IAAImB,mBAApB,QAA+C,uBAA/C;AACA,SAASnB,OAAO,IAAIoB,aAApB,QAAyC,iBAAzC;AAEA,SAASC,SAAT,EAAoBC,SAApB,QAAqC,SAArC;AAEA,SAASC,MAAT,QAAuB,SAAvB;AACA,SAASC,MAAT,QAAuB,SAAvB"}
1
+ {"version":3,"file":"index.js","names":["default","Plot","XAxis","YAxis","Line","Bar","HorizontalBar","GroupBar","StackBar","Area","StackedArea","ScatterPlot","Bubble","RadialTree","Donut","Venn","Radar","getLabelOffsetPosition","Tooltip","ResponsiveContainer","ReferenceLine","HoverLine","HoverRect","minMax","colors"],"sources":["../../src/index.js"],"sourcesContent":["export { default as Plot } from './Plot';\n\nexport { XAxis, YAxis } from './Axis';\n\nexport { default as Line } from './Line';\n\nexport { default as Bar } from './Bar';\nexport { default as HorizontalBar } from './HorizontalBar';\nexport { default as GroupBar } from './GroupBar';\nexport { default as StackBar } from './StackBar';\nexport { default as Area } from './Area';\nexport { default as StackedArea } from './StackedArea';\nexport { default as ScatterPlot } from './ScatterPlot';\nexport { default as Bubble } from './Bubble';\nexport { default as RadialTree } from './RadialTree';\nexport { default as Donut } from './Donut';\nexport { default as Venn } from './Venn';\nexport { default as Radar, getLabelOffsetPosition } from './Radar';\n\nexport { default as Tooltip } from './Tooltip';\n\nexport { default as ResponsiveContainer } from './ResponsiveContainer';\nexport { default as ReferenceLine } from './ReferenceLine';\n\nexport { HoverLine, HoverRect } from './Hover';\n\nexport { minMax } from './utils';\nexport { colors } from './color';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,IAAI,QAAQ,QAAQ;AAExC,SAASC,KAAK,EAAEC,KAAK,QAAQ,QAAQ;AAErC,SAASH,OAAO,IAAII,IAAI,QAAQ,QAAQ;AAExC,SAASJ,OAAO,IAAIK,GAAG,QAAQ,OAAO;AACtC,SAASL,OAAO,IAAIM,aAAa,QAAQ,iBAAiB;AAC1D,SAASN,OAAO,IAAIO,QAAQ,QAAQ,YAAY;AAChD,SAASP,OAAO,IAAIQ,QAAQ,QAAQ,YAAY;AAChD,SAASR,OAAO,IAAIS,IAAI,QAAQ,QAAQ;AACxC,SAAST,OAAO,IAAIU,WAAW,QAAQ,eAAe;AACtD,SAASV,OAAO,IAAIW,WAAW,QAAQ,eAAe;AACtD,SAASX,OAAO,IAAIY,MAAM,QAAQ,UAAU;AAC5C,SAASZ,OAAO,IAAIa,UAAU,QAAQ,cAAc;AACpD,SAASb,OAAO,IAAIc,KAAK,QAAQ,SAAS;AAC1C,SAASd,OAAO,IAAIe,IAAI,QAAQ,QAAQ;AACxC,SAASf,OAAO,IAAIgB,KAAK,EAAEC,sBAAsB,QAAQ,SAAS;AAElE,SAASjB,OAAO,IAAIkB,OAAO,QAAQ,WAAW;AAE9C,SAASlB,OAAO,IAAImB,mBAAmB,QAAQ,uBAAuB;AACtE,SAASnB,OAAO,IAAIoB,aAAa,QAAQ,iBAAiB;AAE1D,SAASC,SAAS,EAAEC,SAAS,QAAQ,SAAS;AAE9C,SAASC,MAAM,QAAQ,SAAS;AAChC,SAASC,MAAM,QAAQ,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"Plot.d.js","names":["MapProps"],"sources":["../../../src/types/Plot.d.ts"],"sourcesContent":["import { IBoxProps } from '@semcore/flex-box';\nimport { ReturnEl } from '@semcore/core';\nimport { MapProps } from './Plot';\nimport IContext from './context';\n\nexport interface IPlotProps extends IContext, IBoxProps {\n /** Width of the svg element\n * @default 0*/\n width?: number;\n /** Height of the svg element\n * @default 0*/\n height?: number;\n /** Human readable chart name (e.g \"Last market trends\") */\n label?: string;\n /**\n * Locale for displaying the days of a week and months, to be transferred to `Intl`\n * @default en\n * */\n locale?: NavigatorLanguage['language'];\n /** Optional prop to tune up alt text generating for charts */\n a11yAltTextConfig?: PlotSummarizerConfig;\n}\n\nexport type PlotSummarizerConfig = {\n /** Totally disable automatic data summarization */\n disable?: boolean;\n /** Disable automatic data summarization and use provided text */\n override?: string;\n /** Tuning up time series trends analyzing. Represents angle tangens of time series change of different strength */\n trendTangens?: {\n /** Angle tangens of time series that have meaningful trending change\n * @default 1/15\n */\n static?: number;\n /** Angle tangens of time series that have weak trending change\n * @default 1/10\n */\n weak?: number;\n /** Angle tangens of time series that have medium trending change\n * @default 1/5\n */\n medium?: number;\n /** Angle tangens of time series that have strong trending change\n * @default Infinity\n */\n strong?: number;\n };\n /** Tuning up time series local trends detection based on moving averages */\n movingAverage?: {\n /** Frame size of long moving average\n * @default Math.sqrt(data.length)\n */\n longSize?: number;\n /** Frame size of short moving average\n * @default Math.sqrt(data.length)/2\n */\n shortSize?: number;\n /** Absolute difference between values on moving averages crossing to\n * be handled as local trend change.\n * @default StandardDeviation/10\n */\n notableDiff?: number;\n };\n /** The way data to be interpreted as. By default is based on used used Plot elements and data structure.\n */\n dataType?: 'time-series' | 'points-cloud' | 'values-set';\n /** Grid size to split data of point clouds into clusters.\n */\n clustersGridSize?: number;\n /** Limits some output lists in chart alt text\n * @default 100\n * **/\n maxListSymbols?: number;\n /** Always add time to dates in chart alt text **/\n datesWithTime?: boolean;\n /** Described clusters count before text \"and X more\"\n * @default false\n * **/\n clustersLimit?: number;\n /** Described values count before text \"and X more\"\n * @default false\n * **/\n valuesLimit?: number;\n /** Described grouped value groups count before text \"and X more\"\n * @default false\n * **/\n groupsLimit?: number;\n /** Additional field for extra text description to the data\n * **/\n additionalFields?: string[];\n};\n\nexport type MapProps<Props, Ctx = {}, UCProps = {}> = Props & {\n children?:\n | ((props: Props & Ctx, handlers: UCProps) => Props | React.PropsWithChildren)\n | React.ReactNode;\n};\n\ndeclare const Plot: <T>(props: MapProps<IPlotProps & T>) => ReturnEl;\n\nexport default Plot;\n"],"mappings":"AAEA,SAASA,QAAT,QAAyB,QAAzB"}
1
+ {"version":3,"file":"Plot.d.js","names":["MapProps"],"sources":["../../../src/types/Plot.d.ts"],"sourcesContent":["import { IBoxProps } from '@semcore/flex-box';\nimport { ReturnEl } from '@semcore/core';\nimport { MapProps } from './Plot';\nimport IContext from './context';\n\nexport interface IPlotProps extends IContext, IBoxProps {\n /** Width of the svg element\n * @default 0*/\n width?: number;\n /** Height of the svg element\n * @default 0*/\n height?: number;\n /** Human readable chart name (e.g \"Last market trends\") */\n label?: string;\n /**\n * Locale for displaying the days of a week and months, to be transferred to `Intl`\n * @default en\n * */\n locale?: NavigatorLanguage['language'];\n /** Optional prop to tune up alt text generating for charts */\n a11yAltTextConfig?: PlotSummarizerConfig;\n}\n\nexport type PlotSummarizerConfig = {\n /** Totally disable automatic data summarization */\n disable?: boolean;\n /** Disable automatic data summarization and use provided text */\n override?: string;\n /** Tuning up time series trends analyzing. Represents angle tangens of time series change of different strength */\n trendTangens?: {\n /** Angle tangens of time series that have meaningful trending change\n * @default 1/15\n */\n static?: number;\n /** Angle tangens of time series that have weak trending change\n * @default 1/10\n */\n weak?: number;\n /** Angle tangens of time series that have medium trending change\n * @default 1/5\n */\n medium?: number;\n /** Angle tangens of time series that have strong trending change\n * @default Infinity\n */\n strong?: number;\n };\n /** Tuning up time series local trends detection based on moving averages */\n movingAverage?: {\n /** Frame size of long moving average\n * @default Math.sqrt(data.length)\n */\n longSize?: number;\n /** Frame size of short moving average\n * @default Math.sqrt(data.length)/2\n */\n shortSize?: number;\n /** Absolute difference between values on moving averages crossing to\n * be handled as local trend change.\n * @default StandardDeviation/10\n */\n notableDiff?: number;\n };\n /** The way data to be interpreted as. By default is based on used used Plot elements and data structure.\n */\n dataType?: 'time-series' | 'points-cloud' | 'values-set';\n /** Grid size to split data of point clouds into clusters.\n */\n clustersGridSize?: number;\n /** Limits some output lists in chart alt text\n * @default 100\n * **/\n maxListSymbols?: number;\n /** Always add time to dates in chart alt text **/\n datesWithTime?: boolean;\n /** Described clusters count before text \"and X more\"\n * @default false\n * **/\n clustersLimit?: number;\n /** Described values count before text \"and X more\"\n * @default false\n * **/\n valuesLimit?: number;\n /** Described grouped value groups count before text \"and X more\"\n * @default false\n * **/\n groupsLimit?: number;\n /** Additional field for extra text description to the data\n * **/\n additionalFields?: string[];\n};\n\nexport type MapProps<Props, Ctx = {}, UCProps = {}> = Props & {\n children?:\n | ((props: Props & Ctx, handlers: UCProps) => Props | React.PropsWithChildren)\n | React.ReactNode;\n};\n\ndeclare const Plot: <T>(props: MapProps<IPlotProps & T>) => ReturnEl;\n\nexport default Plot;\n"],"mappings":"AAEA,SAASA,QAAQ,QAAQ,QAAQ"}
@@ -1,5 +1,7 @@
1
1
  // Utils
2
+
2
3
  // Color
4
+
3
5
  export { default as Plot } from './Plot';
4
6
  export * from './Plot';
5
7
  export * from './Axis';
@@ -20,11 +22,11 @@ export { default as Area } from './Area';
20
22
  export * from './Area';
21
23
  export { default as StackedArea } from './StackedArea';
22
24
  export * from './StackedArea';
25
+
23
26
  /** It becomes resolvable after building and moving file to lib dir */
24
27
  // eslint-disable-next-line import/no-unresolved
25
-
26
- export { default as RadialTree } from './RadialTree'; // eslint-disable-next-line import/no-unresolved
27
-
28
+ export { default as RadialTree } from './RadialTree';
29
+ // eslint-disable-next-line import/no-unresolved
28
30
  export * from './RadialTree';
29
31
  export { default as Radar } from './Radar';
30
32
  export * from './Radar';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.js","names":["default","Plot","ResponsiveContainer","Line","Bar","HorizontalBar","GroupBar","StackBar","Area","StackedArea","RadialTree","Radar","Donut","Tooltip","ScatterPlot","Bubble","ReferenceLine","Venn"],"sources":["../../../src/types/index.d.ts"],"sourcesContent":["// Utils\nexport declare function minMax(data: any, key: string | number): any;\n\n// Color\nexport declare const colors: { [key: string]: string };\n\nexport { default as Plot } from './Plot';\nexport * from './Plot';\n\nexport * from './Axis';\nexport * from './Hover';\n\nexport { default as ResponsiveContainer } from './ResponsiveContainer';\nexport * from './ResponsiveContainer';\n\nexport { default as Line } from './Line';\nexport * from './Line';\n\nexport { default as Bar } from './Bar';\nexport * from './Bar';\n\nexport { default as HorizontalBar } from './HorizontalBar';\nexport * from './HorizontalBar';\n\nexport { default as GroupBar } from './GroupBar';\nexport * from './GroupBar';\n\nexport { default as StackBar } from './StackBar';\nexport * from './StackBar';\n\nexport { default as Area } from './Area';\nexport * from './Area';\n\nexport { default as StackedArea } from './StackedArea';\nexport * from './StackedArea';\n\n/** It becomes resolvable after building and moving file to lib dir */\n// eslint-disable-next-line import/no-unresolved\nexport { default as RadialTree } from './RadialTree';\n// eslint-disable-next-line import/no-unresolved\nexport * from './RadialTree';\n\nexport { default as Radar } from './Radar';\nexport * from './Radar';\n\nexport { default as Donut } from './Donut';\nexport * from './Donut';\n\nexport { default as Tooltip } from './Tooltip';\nexport * from './Tooltip';\n\nexport { default as ScatterPlot } from './ScatterPlot';\nexport * from './ScatterPlot';\n\nexport { default as Bubble } from './Bubble';\nexport * from './Bubble';\n\nexport { default as ReferenceLine } from './ReferenceLine';\nexport * from './ReferenceLine';\n\nexport { default as Venn } from './Venn';\nexport * from './Venn';\n"],"mappings":"AAAA;AAGA;AAGA,SAASA,OAAO,IAAIC,IAApB,QAAgC,QAAhC;AACA,cAAc,QAAd;AAEA,cAAc,QAAd;AACA,cAAc,SAAd;AAEA,SAASD,OAAO,IAAIE,mBAApB,QAA+C,uBAA/C;AACA,cAAc,uBAAd;AAEA,SAASF,OAAO,IAAIG,IAApB,QAAgC,QAAhC;AACA,cAAc,QAAd;AAEA,SAASH,OAAO,IAAII,GAApB,QAA+B,OAA/B;AACA,cAAc,OAAd;AAEA,SAASJ,OAAO,IAAIK,aAApB,QAAyC,iBAAzC;AACA,cAAc,iBAAd;AAEA,SAASL,OAAO,IAAIM,QAApB,QAAoC,YAApC;AACA,cAAc,YAAd;AAEA,SAASN,OAAO,IAAIO,QAApB,QAAoC,YAApC;AACA,cAAc,YAAd;AAEA,SAASP,OAAO,IAAIQ,IAApB,QAAgC,QAAhC;AACA,cAAc,QAAd;AAEA,SAASR,OAAO,IAAIS,WAApB,QAAuC,eAAvC;AACA,cAAc,eAAd;AAEA;AACA;;AACA,SAAST,OAAO,IAAIU,UAApB,QAAsC,cAAtC,C,CACA;;AACA,cAAc,cAAd;AAEA,SAASV,OAAO,IAAIW,KAApB,QAAiC,SAAjC;AACA,cAAc,SAAd;AAEA,SAASX,OAAO,IAAIY,KAApB,QAAiC,SAAjC;AACA,cAAc,SAAd;AAEA,SAASZ,OAAO,IAAIa,OAApB,QAAmC,WAAnC;AACA,cAAc,WAAd;AAEA,SAASb,OAAO,IAAIc,WAApB,QAAuC,eAAvC;AACA,cAAc,eAAd;AAEA,SAASd,OAAO,IAAIe,MAApB,QAAkC,UAAlC;AACA,cAAc,UAAd;AAEA,SAASf,OAAO,IAAIgB,aAApB,QAAyC,iBAAzC;AACA,cAAc,iBAAd;AAEA,SAAShB,OAAO,IAAIiB,IAApB,QAAgC,QAAhC;AACA,cAAc,QAAd"}
1
+ {"version":3,"file":"index.d.js","names":["default","Plot","ResponsiveContainer","Line","Bar","HorizontalBar","GroupBar","StackBar","Area","StackedArea","RadialTree","Radar","Donut","Tooltip","ScatterPlot","Bubble","ReferenceLine","Venn"],"sources":["../../../src/types/index.d.ts"],"sourcesContent":["// Utils\nexport declare function minMax(data: any, key: string | number): any;\n\n// Color\nexport declare const colors: { [key: string]: string };\n\nexport { default as Plot } from './Plot';\nexport * from './Plot';\n\nexport * from './Axis';\nexport * from './Hover';\n\nexport { default as ResponsiveContainer } from './ResponsiveContainer';\nexport * from './ResponsiveContainer';\n\nexport { default as Line } from './Line';\nexport * from './Line';\n\nexport { default as Bar } from './Bar';\nexport * from './Bar';\n\nexport { default as HorizontalBar } from './HorizontalBar';\nexport * from './HorizontalBar';\n\nexport { default as GroupBar } from './GroupBar';\nexport * from './GroupBar';\n\nexport { default as StackBar } from './StackBar';\nexport * from './StackBar';\n\nexport { default as Area } from './Area';\nexport * from './Area';\n\nexport { default as StackedArea } from './StackedArea';\nexport * from './StackedArea';\n\n/** It becomes resolvable after building and moving file to lib dir */\n// eslint-disable-next-line import/no-unresolved\nexport { default as RadialTree } from './RadialTree';\n// eslint-disable-next-line import/no-unresolved\nexport * from './RadialTree';\n\nexport { default as Radar } from './Radar';\nexport * from './Radar';\n\nexport { default as Donut } from './Donut';\nexport * from './Donut';\n\nexport { default as Tooltip } from './Tooltip';\nexport * from './Tooltip';\n\nexport { default as ScatterPlot } from './ScatterPlot';\nexport * from './ScatterPlot';\n\nexport { default as Bubble } from './Bubble';\nexport * from './Bubble';\n\nexport { default as ReferenceLine } from './ReferenceLine';\nexport * from './ReferenceLine';\n\nexport { default as Venn } from './Venn';\nexport * from './Venn';\n"],"mappings":"AAAA;;AAGA;;AAGA,SAASA,OAAO,IAAIC,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;AAEtB,cAAc,QAAQ;AACtB,cAAc,SAAS;AAEvB,SAASD,OAAO,IAAIE,mBAAmB,QAAQ,uBAAuB;AACtE,cAAc,uBAAuB;AAErC,SAASF,OAAO,IAAIG,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;AAEtB,SAASH,OAAO,IAAII,GAAG,QAAQ,OAAO;AACtC,cAAc,OAAO;AAErB,SAASJ,OAAO,IAAIK,aAAa,QAAQ,iBAAiB;AAC1D,cAAc,iBAAiB;AAE/B,SAASL,OAAO,IAAIM,QAAQ,QAAQ,YAAY;AAChD,cAAc,YAAY;AAE1B,SAASN,OAAO,IAAIO,QAAQ,QAAQ,YAAY;AAChD,cAAc,YAAY;AAE1B,SAASP,OAAO,IAAIQ,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;AAEtB,SAASR,OAAO,IAAIS,WAAW,QAAQ,eAAe;AACtD,cAAc,eAAe;;AAE7B;AACA;AACA,SAAST,OAAO,IAAIU,UAAU,QAAQ,cAAc;AACpD;AACA,cAAc,cAAc;AAE5B,SAASV,OAAO,IAAIW,KAAK,QAAQ,SAAS;AAC1C,cAAc,SAAS;AAEvB,SAASX,OAAO,IAAIY,KAAK,QAAQ,SAAS;AAC1C,cAAc,SAAS;AAEvB,SAASZ,OAAO,IAAIa,OAAO,QAAQ,WAAW;AAC9C,cAAc,WAAW;AAEzB,SAASb,OAAO,IAAIc,WAAW,QAAQ,eAAe;AACtD,cAAc,eAAe;AAE7B,SAASd,OAAO,IAAIe,MAAM,QAAQ,UAAU;AAC5C,cAAc,UAAU;AAExB,SAASf,OAAO,IAAIgB,aAAa,QAAQ,iBAAiB;AAC1D,cAAc,iBAAiB;AAE/B,SAAShB,OAAO,IAAIiB,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ"}
package/lib/es6/utils.js CHANGED
@@ -16,12 +16,10 @@ export var invert = function invert(scale, value) {
16
16
  if ('invert' in scale && scale.invert) return scale.invert(value);
17
17
  var range = scale.range();
18
18
  var domain = scale.domain();
19
-
20
19
  if ('paddingOuter' in scale) {
21
20
  range[0] += scale.paddingOuter() * scale.step();
22
21
  range[1] -= scale.paddingOuter() * scale.step();
23
22
  }
24
-
25
23
  return scaleQuantize().domain(range[0] <= range[1] ? range : range.slice().reverse()).range(range[0] <= range[1] ? domain : domain.slice().reverse())(value);
26
24
  };
27
25
  export var definedNullData = function definedNullData(x, y) {
@@ -43,7 +41,6 @@ export var minMax = function minMax(data, key) {
43
41
  return d[key];
44
42
  });
45
43
  }
46
-
47
44
  return extent(data, key);
48
45
  };
49
46
  export var getNullData = function getNullData(data, defined, name) {
@@ -53,28 +50,25 @@ export var getNullData = function getNullData(data, defined, name) {
53
50
  } else {
54
51
  var prev = data[i - 1];
55
52
  var next = data[i + 1];
56
-
57
53
  if (i === 0) {
58
54
  var defNext = data.find(defined);
59
55
  acc.push(_objectSpread(_objectSpread({}, d), {}, _defineProperty({}, name, defNext ? defNext[name] : null)));
60
- } // prev
61
-
56
+ }
62
57
 
58
+ // prev
63
59
  if (prev && defined(prev)) {
64
60
  acc.push(prev);
65
- } // next
66
-
61
+ }
67
62
 
63
+ // next
68
64
  if (next && defined(next)) {
69
65
  acc.push(next);
70
66
  }
71
-
72
67
  if (data.length - 1 === i) {
73
68
  var defPrev = data.slice().reverse().find(defined);
74
69
  acc.push(_objectSpread(_objectSpread({}, d), {}, _defineProperty({}, name, defPrev ? defPrev[name] : null)));
75
70
  }
76
71
  }
77
-
78
72
  return acc;
79
73
  }, []);
80
74
  };
@@ -85,7 +79,8 @@ export var getIndexFromData = function getIndexFromData(data, scale, key, value)
85
79
  return d[key];
86
80
  }).center;
87
81
  return bisect(data, value);
88
- } // detect bar chart
82
+ }
83
+ // detect bar chart
89
84
  else if ('step' in scale && typeof scale.step !== 'undefined') {
90
85
  // console.log({ key, scale, value });
91
86
  var index = data.findIndex(function (d) {
@@ -105,41 +100,33 @@ export var roundedPath = function roundedPath(x, y, w, h, r) {
105
100
  var br = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;
106
101
  var result = 'M' + (x + r) + ',' + y;
107
102
  result += 'h' + (w - 2 * r);
108
-
109
103
  if (tr) {
110
104
  result += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + r;
111
105
  } else {
112
106
  result += 'h' + r;
113
107
  result += 'v' + r;
114
108
  }
115
-
116
109
  result += 'v' + (h - 2 * r);
117
-
118
110
  if (br) {
119
111
  result += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + r;
120
112
  } else {
121
113
  result += 'v' + r;
122
114
  result += 'h' + -r;
123
115
  }
124
-
125
116
  result += 'h' + (2 * r - w);
126
-
127
117
  if (bl) {
128
118
  result += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + -r;
129
119
  } else {
130
120
  result += 'h' + -r;
131
121
  result += 'v' + -r;
132
122
  }
133
-
134
123
  result += 'v' + (2 * r - h);
135
-
136
124
  if (tl) {
137
125
  result += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + -r;
138
126
  } else {
139
127
  result += 'v' + -r;
140
128
  result += 'h' + r;
141
129
  }
142
-
143
130
  result += 'z';
144
131
  return result;
145
132
  };
@@ -147,7 +134,6 @@ export var getBandwidth = function getBandwidth(scale) {
147
134
  if ('bandwidth' in scale) {
148
135
  return scale.bandwidth();
149
136
  }
150
-
151
137
  var range = scale.range();
152
138
  var domain = scale.domain();
153
139
  return Math.abs(range[range.length - 1] - range[0]) / domain.length;
@@ -158,27 +144,21 @@ export var memoize = function memoize(func) {
158
144
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
159
145
  args[_key] = arguments[_key];
160
146
  }
161
-
162
147
  var argsKey = args.join(',');
163
-
164
148
  if (!results[argsKey]) {
165
149
  results[argsKey] = func.apply(void 0, args);
166
150
  }
167
-
168
151
  return results[argsKey];
169
152
  };
170
153
  };
171
154
  export var measureText = memoize(function (text, fontSize) {
172
155
  if (!text) return 0;
173
156
  var span = document.createElement('span');
174
-
175
157
  if (fontSize) {
176
158
  span.style.fontSize = "".concat(fontSize, "px");
177
159
  }
178
-
179
160
  var _iterator = _createForOfIteratorHelper(text.split('\n')),
180
- _step;
181
-
161
+ _step;
182
162
  try {
183
163
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
184
164
  var line = _step.value;
@@ -190,7 +170,6 @@ export var measureText = memoize(function (text, fontSize) {
190
170
  } finally {
191
171
  _iterator.f();
192
172
  }
193
-
194
173
  span.style.display = 'inline-block';
195
174
  document.body.append(span);
196
175
  var textWidth = span.offsetWidth;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["extent","bisector","scaleQuantize","CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","paddingOuter","step","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","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","textHeight","offsetHeight","remove","max","idCounter","uniqueId","prefix"],"sources":["../../src/utils.ts"],"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 | ScaleBand<unknown>\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>;\nexport const invert = <Scale extends InvertableScale = InvertableScale>(\n scale: Scale,\n value: number,\n) => {\n if ('invert' in scale && scale.invert) return scale.invert(value);\n\n const range = scale.range() as [number, number];\n const domain = scale.domain();\n if ('paddingOuter' in scale) {\n range[0] += scale.paddingOuter() * scale.step();\n range[1] -= scale.paddingOuter() * scale.step();\n }\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 // console.log({ key, scale, value });\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 const textHeight = span.offsetHeight;\n span.remove();\n return Math.max(textWidth, textHeight);\n});\n\nlet idCounter = 0;\nexport const uniqueId = (prefix = 'id-') => `${prefix}${idCounter++}`;\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","names":["extent","bisector","scaleQuantize","CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","paddingOuter","step","slice","reverse","definedNullData","x","y","plot","definedData","undefined","scaleOfBandwidth","bandwidth","minMax","data","key","d","getNullData","defined","name","reduce","acc","i","push","_defineProperty","prev","next","defNext","find","_objectSpread","length","defPrev","getIndexFromData","bisect","center","index","findIndex","console","warn","roundedPath","w","h","r","tl","arguments","tr","bl","br","result","getBandwidth","Math","abs","memoize","func","results","_len","args","Array","_key","argsKey","join","apply","measureText","text","fontSize","span","document","createElement","style","concat","_iterator","_createForOfIteratorHelper","split","_step","s","n","done","line","append","createTextNode","err","e","f","display","body","textWidth","offsetWidth","textHeight","offsetHeight","remove","max","idCounter","uniqueId","prefix"],"sources":["../../src/utils.ts"],"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 | ScaleBand<unknown>\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>;\nexport const invert = <Scale extends InvertableScale = InvertableScale>(\n scale: Scale,\n value: number,\n) => {\n if ('invert' in scale && scale.invert) return scale.invert(value);\n\n const range = scale.range() as [number, number];\n const domain = scale.domain();\n if ('paddingOuter' in scale) {\n range[0] += scale.paddingOuter() * scale.step();\n range[1] -= scale.paddingOuter() * scale.step();\n }\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 // console.log({ key, scale, value });\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 const textHeight = span.offsetHeight;\n span.remove();\n return Math.max(textWidth, textHeight);\n});\n\nlet idCounter = 0;\nexport const uniqueId = (prefix = 'id-') => `${prefix}${idCounter++}`;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/d3-chart",
3
3
  "description": "Semrush D3 Chart Component",
4
- "version": "2.13.3",
4
+ "version": "2.13.5",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",