@semcore/d3-chart 2.13.4 → 2.13.6

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 +153 -278
  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 +153 -282
  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
@@ -9,18 +9,9 @@ import React from 'react';
9
9
  import { normalizeLocale } from './locale';
10
10
  import { localizedMessages } from './translations/module/__intergalactic-dynamic-locales';
11
11
  import { Root, sstyled } from '@semcore/core';
12
-
13
12
  /*__reshadow-styles__:"../style/plotA11yModule.shadow.css"*/
14
- var styles = (
15
- /*__reshadow_css_start__*/
16
- _sstyled.insert(
17
- /*__inner_css_start__*/
18
- ".___SPlotA11yModule_61s73_gg_{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;opacity:0}.___SPlotA11yModule_61s73_gg_:focus{-webkit-user-select:all;-moz-user-select:all;user-select:all;pointer-events:all;opacity:1}"
19
- /*__inner_css_end__*/
20
- , "61s73_gg_")
21
- /*__reshadow_css_end__*/
22
- , {
23
- "__SPlotA11yModule": "___SPlotA11yModule_61s73_gg_"
13
+ var styles = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SPlotA11yModule_l40ot_gg_{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;opacity:0}.___SPlotA11yModule_l40ot_gg_:focus{-webkit-user-select:all;-moz-user-select:all;user-select:all;pointer-events:all;opacity:1}" /*__inner_css_end__*/, "l40ot_gg_") /*__reshadow_css_end__*/, {
14
+ "__SPlotA11yModule": "___SPlotA11yModule_l40ot_gg_"
24
15
  });
25
16
  import { Context as I18nContext, useI18n } from '@semcore/utils/lib/enhances/WithI18n';
26
17
  import { Box } from '@semcore/flex-box';
@@ -28,82 +19,64 @@ var globalWasFocused = false;
28
19
  var globalNavWithKeyboard = false;
29
20
  export var PlotA11yModule = function PlotA11yModule(props) {
30
21
  var _ref = arguments[0],
31
- _ref5;
32
-
22
+ _ref5;
33
23
  var SPlotA11yModule = Box;
34
-
35
24
  var _React$useState = React.useState(globalWasFocused),
36
- _React$useState2 = _slicedToArray(_React$useState, 2),
37
- wasFocused = _React$useState2[0],
38
- setWasFocused = _React$useState2[1];
39
-
25
+ _React$useState2 = _slicedToArray(_React$useState, 2),
26
+ wasFocused = _React$useState2[0],
27
+ setWasFocused = _React$useState2[1];
40
28
  var _React$useState3 = React.useState(globalNavWithKeyboard),
41
- _React$useState4 = _slicedToArray(_React$useState3, 2),
42
- navWithKeyboard = _React$useState4[0],
43
- setNavWithKeyboard = _React$useState4[1];
44
-
29
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
30
+ navWithKeyboard = _React$useState4[0],
31
+ setNavWithKeyboard = _React$useState4[1];
45
32
  var _React$useState5 = React.useState(null),
46
- _React$useState6 = _slicedToArray(_React$useState5, 2),
47
- plotA11yView = _React$useState6[0],
48
- setPlotA11yView = _React$useState6[1];
49
-
33
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
34
+ plotA11yView = _React$useState6[0],
35
+ setPlotA11yView = _React$useState6[1];
50
36
  var hadnleHiddenElementsFocus = React.useCallback(function () {
51
37
  setWasFocused(true);
52
38
  setNavWithKeyboard(true);
53
39
  }, []);
54
-
55
40
  var _React$useState7 = React.useState(false),
56
- _React$useState8 = _slicedToArray(_React$useState7, 2),
57
- loading = _React$useState8[0],
58
- setLoading = _React$useState8[1];
59
-
41
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
42
+ loading = _React$useState8[0],
43
+ setLoading = _React$useState8[1];
60
44
  var _React$useState9 = React.useState(null),
61
- _React$useState10 = _slicedToArray(_React$useState9, 2),
62
- error = _React$useState10[0],
63
- setError = _React$useState10[1];
64
-
45
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
46
+ error = _React$useState10[0],
47
+ setError = _React$useState10[1];
65
48
  var contextLocale = React.useContext(I18nContext);
66
49
  var locale = React.useMemo(function () {
67
50
  var _props$locale;
68
-
69
51
  return normalizeLocale((_props$locale = props.locale) !== null && _props$locale !== void 0 ? _props$locale : contextLocale, localizedMessages);
70
52
  }, [props.locale]);
71
53
  var t = useI18n(localizedMessages, locale);
72
54
  React.useEffect(function () {
73
55
  var _props$plotRef$curren;
74
-
75
56
  if (wasFocused) return;
76
-
77
57
  var focusListener = function focusListener() {
78
58
  globalWasFocused = true;
79
59
  setWasFocused(true);
80
60
  };
81
-
82
61
  (_props$plotRef$curren = props.plotRef.current) === null || _props$plotRef$curren === void 0 ? void 0 : _props$plotRef$curren.addEventListener('focus', focusListener);
83
62
  return function () {
84
63
  var _props$plotRef$curren2;
85
-
86
64
  return (_props$plotRef$curren2 = props.plotRef.current) === null || _props$plotRef$curren2 === void 0 ? void 0 : _props$plotRef$curren2.removeEventListener('focus', focusListener);
87
65
  };
88
66
  }, [wasFocused, props.plotRef]);
89
67
  React.useEffect(function () {
90
68
  var _document$body;
91
-
92
69
  if (navWithKeyboard) return;
93
-
94
70
  var keyboardListener = function keyboardListener(event) {
95
71
  var navigationKeys = ['Tab', 'ArrowUp', 'ArrowLeft', 'ArrowDown', 'ArrowRight', 'ArrowUp', 'ArrowLeft'];
96
-
97
72
  if ('key' in event && navigationKeys.includes(event.key)) {
98
73
  setNavWithKeyboard(true);
99
74
  globalNavWithKeyboard = true;
100
75
  }
101
76
  };
102
-
103
77
  (_document$body = document.body) === null || _document$body === void 0 ? void 0 : _document$body.addEventListener('keydown', keyboardListener);
104
78
  return function () {
105
79
  var _document$body2;
106
-
107
80
  return (_document$body2 = document.body) === null || _document$body2 === void 0 ? void 0 : _document$body2.removeEventListener('keydown', keyboardListener);
108
81
  };
109
82
  }, [navWithKeyboard]);
@@ -126,33 +99,26 @@ export var PlotA11yModule = function PlotA11yModule(props) {
126
99
  setError(error);
127
100
  });
128
101
  }, [plotA11yView, shouldDisplayView, loading, setLoading]);
129
-
130
102
  if (plotA11yView) {
131
103
  var _ref2;
132
-
133
104
  return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(plotA11yView.Component, _extends({}, props, {
134
105
  locale: locale
135
106
  }));
136
107
  }
137
-
138
108
  if (error) {
139
109
  var _ref3;
140
-
141
110
  return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(SPlotA11yModule, _ref3.cn("SPlotA11yModule", _objectSpread({}, _assignProps({
142
111
  "tabIndex": 0,
143
112
  "aria-live": "assertive"
144
113
  }, _ref))), t('failed'));
145
114
  }
146
-
147
115
  if (loading) {
148
116
  var _ref4;
149
-
150
117
  return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(SPlotA11yModule, _ref4.cn("SPlotA11yModule", _objectSpread({}, _assignProps2({
151
118
  "tabIndex": 0,
152
119
  "aria-live": "polite"
153
120
  }, _ref))), t('loading'));
154
121
  }
155
-
156
122
  return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SPlotA11yModule, _ref5.cn("SPlotA11yModule", _objectSpread({}, _assignProps3({
157
123
  "tabIndex": 0,
158
124
  "onFocus": hadnleHiddenElementsFocus
@@ -1 +1 @@
1
- {"version":3,"file":"PlotA11yModule.js","names":["React","normalizeLocale","localizedMessages","Root","sstyled","Context","I18nContext","useI18n","Box","globalWasFocused","globalNavWithKeyboard","PlotA11yModule","props","SPlotA11yModule","useState","wasFocused","setWasFocused","navWithKeyboard","setNavWithKeyboard","plotA11yView","setPlotA11yView","hadnleHiddenElementsFocus","useCallback","loading","setLoading","error","setError","contextLocale","useContext","locale","useMemo","t","useEffect","focusListener","plotRef","current","addEventListener","removeEventListener","keyboardListener","event","navigationKeys","includes","key","document","body","shouldDisplayView","then","PlotA11yView","Component","console","styles"],"sources":["../../../src/a11y/PlotA11yModule.tsx"],"sourcesContent":["import React from 'react';\nimport { DataStructureHints, PartialDataSummarizationConfig } from './hints';\nimport { normalizeLocale } from './locale';\nimport { localizedMessages } from './translations/module/__intergalactic-dynamic-locales';\nimport { Root, sstyled } from '@semcore/core';\nimport styles from '../style/plotA11yModule.shadow.css';\nimport { Context as I18nContext, useI18n } from '@semcore/utils/lib/enhances/WithI18n';\nimport { Box } from '@semcore/flex-box';\n\nlet globalWasFocused = false;\nlet globalNavWithKeyboard = false;\n\nexport type A11yViewProps = {\n id: string;\n data: Record<string, unknown>[];\n hints: DataStructureHints;\n plotLabel: string;\n locale: NavigatorLanguage['language'];\n config: PartialDataSummarizationConfig;\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n plotRef: React.RefObject<Element>;\n};\n\nexport const PlotA11yModule: React.FC<A11yViewProps> = (props) => {\n const SPlotA11yModule = Root;\n const [wasFocused, setWasFocused] = React.useState(globalWasFocused);\n const [navWithKeyboard, setNavWithKeyboard] = React.useState(globalNavWithKeyboard);\n const [plotA11yView, setPlotA11yView] = React.useState<{\n Component: React.FC<A11yViewProps>;\n } | null>(null);\n\n const hadnleHiddenElementsFocus = React.useCallback(() => {\n setWasFocused(true);\n setNavWithKeyboard(true);\n }, []);\n\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState<Error | null>(null);\n\n const contextLocale = React.useContext(I18nContext);\n const locale = React.useMemo(\n () => normalizeLocale(props.locale ?? contextLocale, localizedMessages),\n [props.locale],\n );\n const t = useI18n(localizedMessages, locale);\n\n React.useEffect(() => {\n if (wasFocused) return;\n const focusListener = () => {\n globalWasFocused = true;\n setWasFocused(true);\n };\n\n props.plotRef.current?.addEventListener('focus', focusListener);\n return () => props.plotRef.current?.removeEventListener('focus', focusListener);\n }, [wasFocused, props.plotRef]);\n React.useEffect(() => {\n if (navWithKeyboard) return;\n const keyboardListener = (event: Event) => {\n const navigationKeys = [\n 'Tab',\n 'ArrowUp',\n 'ArrowLeft',\n 'ArrowDown',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowLeft',\n ];\n if ('key' in event && navigationKeys.includes((event as KeyboardEvent).key)) {\n setNavWithKeyboard(true);\n globalNavWithKeyboard = true;\n }\n };\n document.body?.addEventListener('keydown', keyboardListener);\n return () => document.body?.removeEventListener('keydown', keyboardListener);\n }, [navWithKeyboard]);\n\n const shouldDisplayView = wasFocused && navWithKeyboard;\n\n React.useEffect(() => {\n if (!shouldDisplayView) return;\n if (plotA11yView) return;\n if (loading) return;\n\n setLoading(true);\n\n import('./PlotA11yView')\n .then(({ PlotA11yView }) => {\n setPlotA11yView({ Component: PlotA11yView });\n setLoading(false);\n setError(null);\n })\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error(error);\n setError(error);\n });\n }, [plotA11yView, shouldDisplayView, loading, setLoading]);\n\n if (plotA11yView) {\n return sstyled(styles)(\n <plotA11yView.Component {...props} locale={locale!} />,\n ) as React.ReactElement;\n }\n\n if (error) {\n return sstyled(styles)(\n <SPlotA11yModule render={Box} tabIndex={0} aria-live=\"assertive\">\n {t('failed')}\n </SPlotA11yModule>,\n ) as React.ReactElement;\n }\n if (loading) {\n return sstyled(styles)(\n <SPlotA11yModule render={Box} tabIndex={0} aria-live=\"polite\">\n {t('loading')}\n </SPlotA11yModule>,\n ) as React.ReactElement;\n }\n\n return sstyled(styles)(\n <SPlotA11yModule render={Box} tabIndex={0} onFocus={hadnleHiddenElementsFocus}>\n {t('disabled')}\n </SPlotA11yModule>,\n ) as React.ReactElement;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"PlotA11yModule.js","names":["React","normalizeLocale","localizedMessages","Root","sstyled","styles","_sstyled","insert","Context","I18nContext","useI18n","Box","globalWasFocused","globalNavWithKeyboard","PlotA11yModule","props","_ref","arguments[0]","_ref5","SPlotA11yModule","_React$useState","useState","_React$useState2","_slicedToArray","wasFocused","setWasFocused","_React$useState3","_React$useState4","navWithKeyboard","setNavWithKeyboard","_React$useState5","_React$useState6","plotA11yView","setPlotA11yView","hadnleHiddenElementsFocus","useCallback","_React$useState7","_React$useState8","loading","setLoading","_React$useState9","_React$useState10","error","setError","contextLocale","useContext","locale","useMemo","_props$locale","t","useEffect","_props$plotRef$curren","focusListener","plotRef","current","addEventListener","_props$plotRef$curren2","removeEventListener","_document$body","keyboardListener","event","navigationKeys","includes","key","document","body","_document$body2","shouldDisplayView","then","_ref6","PlotA11yView","Component","console","_ref2","createElement","_extends","_ref3","cn","_objectSpread","_assignProps","_ref4","_assignProps2","_assignProps3"],"sources":["../../../src/a11y/PlotA11yModule.tsx"],"sourcesContent":["import React from 'react';\nimport { DataStructureHints, PartialDataSummarizationConfig } from './hints';\nimport { normalizeLocale } from './locale';\nimport { localizedMessages } from './translations/module/__intergalactic-dynamic-locales';\nimport { Root, sstyled } from '@semcore/core';\nimport styles from '../style/plotA11yModule.shadow.css';\nimport { Context as I18nContext, useI18n } from '@semcore/utils/lib/enhances/WithI18n';\nimport { Box } from '@semcore/flex-box';\n\nlet globalWasFocused = false;\nlet globalNavWithKeyboard = false;\n\nexport type A11yViewProps = {\n id: string;\n data: Record<string, unknown>[];\n hints: DataStructureHints;\n plotLabel: string;\n locale: NavigatorLanguage['language'];\n config: PartialDataSummarizationConfig;\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n plotRef: React.RefObject<Element>;\n};\n\nexport const PlotA11yModule: React.FC<A11yViewProps> = (props) => {\n const SPlotA11yModule = Root;\n const [wasFocused, setWasFocused] = React.useState(globalWasFocused);\n const [navWithKeyboard, setNavWithKeyboard] = React.useState(globalNavWithKeyboard);\n const [plotA11yView, setPlotA11yView] = React.useState<{\n Component: React.FC<A11yViewProps>;\n } | null>(null);\n\n const hadnleHiddenElementsFocus = React.useCallback(() => {\n setWasFocused(true);\n setNavWithKeyboard(true);\n }, []);\n\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState<Error | null>(null);\n\n const contextLocale = React.useContext(I18nContext);\n const locale = React.useMemo(\n () => normalizeLocale(props.locale ?? contextLocale, localizedMessages),\n [props.locale],\n );\n const t = useI18n(localizedMessages, locale);\n\n React.useEffect(() => {\n if (wasFocused) return;\n const focusListener = () => {\n globalWasFocused = true;\n setWasFocused(true);\n };\n\n props.plotRef.current?.addEventListener('focus', focusListener);\n return () => props.plotRef.current?.removeEventListener('focus', focusListener);\n }, [wasFocused, props.plotRef]);\n React.useEffect(() => {\n if (navWithKeyboard) return;\n const keyboardListener = (event: Event) => {\n const navigationKeys = [\n 'Tab',\n 'ArrowUp',\n 'ArrowLeft',\n 'ArrowDown',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowLeft',\n ];\n if ('key' in event && navigationKeys.includes((event as KeyboardEvent).key)) {\n setNavWithKeyboard(true);\n globalNavWithKeyboard = true;\n }\n };\n document.body?.addEventListener('keydown', keyboardListener);\n return () => document.body?.removeEventListener('keydown', keyboardListener);\n }, [navWithKeyboard]);\n\n const shouldDisplayView = wasFocused && navWithKeyboard;\n\n React.useEffect(() => {\n if (!shouldDisplayView) return;\n if (plotA11yView) return;\n if (loading) return;\n\n setLoading(true);\n\n import('./PlotA11yView')\n .then(({ PlotA11yView }) => {\n setPlotA11yView({ Component: PlotA11yView });\n setLoading(false);\n setError(null);\n })\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error(error);\n setError(error);\n });\n }, [plotA11yView, shouldDisplayView, loading, setLoading]);\n\n if (plotA11yView) {\n return sstyled(styles)(\n <plotA11yView.Component {...props} locale={locale!} />,\n ) as React.ReactElement;\n }\n\n if (error) {\n return sstyled(styles)(\n <SPlotA11yModule render={Box} tabIndex={0} aria-live=\"assertive\">\n {t('failed')}\n </SPlotA11yModule>,\n ) as React.ReactElement;\n }\n if (loading) {\n return sstyled(styles)(\n <SPlotA11yModule render={Box} tabIndex={0} aria-live=\"polite\">\n {t('loading')}\n </SPlotA11yModule>,\n ) as React.ReactElement;\n }\n\n return sstyled(styles)(\n <SPlotA11yModule render={Box} tabIndex={0} onFocus={hadnleHiddenElementsFocus}>\n {t('disabled')}\n </SPlotA11yModule>,\n ) as React.ReactElement;\n};\n"],"mappings":"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"}
@@ -11,34 +11,24 @@ import { formatValue } from './serialize';
11
11
  import { getIntl } from './intl';
12
12
  import { summarize } from './summarize';
13
13
  import { Root, sstyled } from '@semcore/core';
14
-
15
14
  /*__reshadow-styles__:"../style/plotA11yView.shadow.css"*/
16
- var styles = (
17
- /*__reshadow_css_start__*/
18
- _sstyled.insert(
19
- /*__inner_css_start__*/
20
- ".___SPlotA11yView_1e769_gg_{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;opacity:0;background-color:var(--intergalactic-bg-primary-neutral, #ffffff);color:var(--intergalactic-text-primary, #191b23);border:3px solid var(--intergalactic-border-primary, #c4c7cf);font-size:var(--intergalactic-fs-50, 10px);padding:2px;width:200px;height:200px;max-width:80%;max-height:80%;overflow:auto}.___SPlotA11yView_1e769_gg_.__focus-within_1e769_gg_,.___SPlotA11yView_1e769_gg_:focus{-webkit-user-select:all;-moz-user-select:all;user-select:all;pointer-events:all;opacity:1;z-index:var(--intergalactic-z-index-overlay, 500);position:relative;display:block}.___SPlotA11yView_1e769_gg_:focus,.___SPlotA11yView_1e769_gg_:focus-within{-webkit-user-select:all;-moz-user-select:all;user-select:all;pointer-events:all;opacity:1;z-index:var(--intergalactic-z-index-overlay, 500);position:relative;display:block}.___SPlotA11yView_1e769_gg_ a{cursor:pointer;text-decoration:underline;margin-bottom:var(--intergalactic-spacing-2x, 8px);display:block}.___SPlotA11yView_1e769_gg_ table,.___SPlotA11yView_1e769_gg_ td,.___SPlotA11yView_1e769_gg_ th{border:1px solid var(--intergalactic-border-primary, #c4c7cf)}"
21
- /*__inner_css_end__*/
22
- , "1e769_gg_")
23
- /*__reshadow_css_end__*/
24
- , {
25
- "__SPlotA11yView": "___SPlotA11yView_1e769_gg_",
26
- "_focus-within": "__focus-within_1e769_gg_"
15
+ var styles = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SPlotA11yView_3iyvp_gg_{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;opacity:0;background-color:var(--intergalactic-bg-primary-neutral, #ffffff);color:var(--intergalactic-text-primary, #191b23);border:3px solid var(--intergalactic-border-primary, #c4c7cf);font-size:var(--intergalactic-fs-50, 10px);padding:2px;width:200px;height:200px;max-width:80%;max-height:80%;overflow:auto}.___SPlotA11yView_3iyvp_gg_.__focus-within_3iyvp_gg_,.___SPlotA11yView_3iyvp_gg_:focus{-webkit-user-select:all;-moz-user-select:all;user-select:all;pointer-events:all;opacity:1;z-index:var(--intergalactic-z-index-overlay, 500);position:relative;display:block}.___SPlotA11yView_3iyvp_gg_:focus,.___SPlotA11yView_3iyvp_gg_:focus-within{-webkit-user-select:all;-moz-user-select:all;user-select:all;pointer-events:all;opacity:1;z-index:var(--intergalactic-z-index-overlay, 500);position:relative;display:block}.___SPlotA11yView_3iyvp_gg_ a{cursor:pointer;text-decoration:underline;margin-bottom:var(--intergalactic-spacing-2x, 8px);display:block}.___SPlotA11yView_3iyvp_gg_ table,.___SPlotA11yView_3iyvp_gg_ td,.___SPlotA11yView_3iyvp_gg_ th{border:1px solid var(--intergalactic-border-primary, #c4c7cf)}" /*__inner_css_end__*/, "3iyvp_gg_") /*__reshadow_css_end__*/, {
16
+ "__SPlotA11yView": "___SPlotA11yView_3iyvp_gg_",
17
+ "_focus-within": "__focus-within_3iyvp_gg_"
27
18
  });
28
19
  import { Box } from '@semcore/flex-box';
29
20
  import { useAsyncI18nMessages } from '@semcore/utils/lib/enhances/i18nEnhance';
30
21
  import { localizedMessages } from './translations/view/__intergalactic-dynamic-locales';
31
22
  export var PlotA11yView = function PlotA11yView(_ref3) {
32
23
  var _ref = arguments[0],
33
- _ref2;
34
-
24
+ _ref2;
35
25
  var id = _ref3.id,
36
- providedData = _ref3.data,
37
- hints = _ref3.hints,
38
- plotLabel = _ref3.plotLabel,
39
- plotRef = _ref3.plotRef,
40
- providedConfig = _ref3.config,
41
- locale = _ref3.locale;
26
+ providedData = _ref3.data,
27
+ hints = _ref3.hints,
28
+ plotLabel = _ref3.plotLabel,
29
+ plotRef = _ref3.plotRef,
30
+ providedConfig = _ref3.config,
31
+ locale = _ref3.locale;
42
32
  var SPlotA11yView = Box;
43
33
  var translations = useAsyncI18nMessages(localizedMessages, locale);
44
34
  var intl = React.useMemo(function () {
@@ -52,31 +42,21 @@ export var PlotA11yView = function PlotA11yView(_ref3) {
52
42
  }, [providedData]);
53
43
  var keys = React.useMemo(function () {
54
44
  var _fromHints, _fromHints2, _fromHints3, _fromHints4, _fromHints5;
55
-
56
45
  var fromHints = [];
57
-
58
46
  (_fromHints = fromHints).push.apply(_fromHints, _toConsumableArray(hints.fields.verticalAxes));
59
-
60
47
  (_fromHints2 = fromHints).push.apply(_fromHints2, _toConsumableArray(hints.fields.horizontalAxes));
61
-
62
48
  (_fromHints3 = fromHints).push.apply(_fromHints3, _toConsumableArray(hints.fields.valueAxes));
63
-
64
49
  (_fromHints4 = fromHints).push.apply(_fromHints4, _toConsumableArray(config.additionalFields));
65
-
66
50
  (_fromHints5 = fromHints).push.apply(_fromHints5, _toConsumableArray(Object.keys(hints.fields.values)));
67
-
68
51
  fromHints = _toConsumableArray(new Set(fromHints)).filter(function (key) {
69
52
  return key in data[0];
70
53
  });
71
-
72
54
  if (fromHints.length === 0) {
73
55
  data.forEach(function (row) {
74
56
  var _fromHints6;
75
-
76
57
  return (_fromHints6 = fromHints).push.apply(_fromHints6, _toConsumableArray(Object.keys(row)));
77
58
  });
78
59
  }
79
-
80
60
  return _toConsumableArray(new Set(fromHints));
81
61
  }, [data, hints]);
82
62
  var duplicatedBaseKeys = React.useMemo(function () {
@@ -92,21 +72,17 @@ export var PlotA11yView = function PlotA11yView(_ref3) {
92
72
  });
93
73
  var doublicated = {};
94
74
  var handled = {};
95
-
96
75
  var _iterator = _createForOfIteratorHelper(baseKeys),
97
- _step;
98
-
76
+ _step;
99
77
  try {
100
78
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
101
79
  var _step$value = _slicedToArray(_step.value, 2),
102
- key = _step$value[0],
103
- label = _step$value[1];
104
-
80
+ key = _step$value[0],
81
+ label = _step$value[1];
105
82
  if (handled[label]) {
106
83
  doublicated[key] = true;
107
84
  doublicated[handled[label]] = true;
108
85
  }
109
-
110
86
  handled[label] = key;
111
87
  }
112
88
  } catch (err) {
@@ -114,43 +90,35 @@ export var PlotA11yView = function PlotA11yView(_ref3) {
114
90
  } finally {
115
91
  _iterator.f();
116
92
  }
117
-
118
93
  return doublicated;
119
94
  }, [keys, hints]);
120
95
  var renderTitle = React.useCallback(function (dataKey) {
121
96
  if (hints.titles.valuesAxes[dataKey]) return hints.titles.valuesAxes[dataKey];
122
-
123
97
  if (!duplicatedBaseKeys[dataKey]) {
124
98
  if (hints.fields.verticalAxes.has(dataKey) && hints.axesTitle.vertical) return hints.axesTitle.vertical;
125
99
  if (hints.fields.horizontalAxes.has(dataKey) && hints.axesTitle.horizontal) return hints.axesTitle.horizontal;
126
100
  }
127
-
128
101
  return dataKey;
129
102
  }, [data, hints, duplicatedBaseKeys]);
130
-
131
103
  var _React$useState = React.useState(null),
132
- _React$useState2 = _slicedToArray(_React$useState, 2),
133
- summary = _React$useState2[0],
134
- setSummary = _React$useState2[1];
135
-
104
+ _React$useState2 = _slicedToArray(_React$useState, 2),
105
+ summary = _React$useState2[0],
106
+ setSummary = _React$useState2[1];
136
107
  var _React$useState3 = React.useState(true),
137
- _React$useState4 = _slicedToArray(_React$useState3, 2),
138
- generatingSummary = _React$useState4[0],
139
- setGeneratingSummary = _React$useState4[1];
140
-
108
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
109
+ generatingSummary = _React$useState4[0],
110
+ setGeneratingSummary = _React$useState4[1];
141
111
  React.useEffect(function () {
142
112
  if (config.disable) {
143
113
  setSummary('');
144
114
  setGeneratingSummary(false);
145
115
  return;
146
116
  }
147
-
148
117
  if (config.override) {
149
118
  setSummary(config.override);
150
119
  setGeneratingSummary(false);
151
120
  return;
152
121
  }
153
-
154
122
  setTimeout(function () {
155
123
  setSummary(summarize(providedData, hints, config, locale, translations, localizedMessages));
156
124
  setGeneratingSummary(false);
@@ -158,7 +126,6 @@ export var PlotA11yView = function PlotA11yView(_ref3) {
158
126
  }, [providedData, hints, config, locale, translations, localizedMessages]);
159
127
  var handleSkip = React.useCallback(function () {
160
128
  var _heavyFindNextFocusab;
161
-
162
129
  if (!plotRef.current) return;
163
130
  (_heavyFindNextFocusab = heavyFindNextFocusableElement(plotRef.current)) === null || _heavyFindNextFocusab === void 0 ? void 0 : _heavyFindNextFocusab.focus();
164
131
  }, []);
@@ -168,7 +135,6 @@ export var PlotA11yView = function PlotA11yView(_ref3) {
168
135
  }, [handleSkip]);
169
136
  var handleGoToTable = React.useCallback(function () {
170
137
  var _dataTableRef$current;
171
-
172
138
  (_dataTableRef$current = dataTableRef.current) === null || _dataTableRef$current === void 0 ? void 0 : _dataTableRef$current.focus();
173
139
  }, []);
174
140
  var handleGoToTableKeyboard = React.useCallback(function (event) {
@@ -1 +1 @@
1
- {"version":3,"file":"PlotA11yView.js","names":["React","heavyFindNextFocusableElement","makeDataSummarizationConfig","formatValue","getIntl","summarize","Root","sstyled","Box","useAsyncI18nMessages","localizedMessages","PlotA11yView","id","providedData","data","hints","plotLabel","plotRef","providedConfig","config","locale","SPlotA11yView","translations","intl","useMemo","Array","isArray","keys","fromHints","push","fields","verticalAxes","horizontalAxes","valueAxes","additionalFields","Object","values","Set","filter","key","length","forEach","row","duplicatedBaseKeys","baseKeys","titles","valuesAxes","map","has","axesTitle","vertical","horizontal","entry","undefined","doublicated","handled","label","renderTitle","useCallback","dataKey","useState","summary","setSummary","generatingSummary","setGeneratingSummary","useEffect","disable","override","setTimeout","handleSkip","current","focus","handleSkipKeyboard","event","code","handleGoToTable","dataTableRef","handleGoToTableKeyboard","texts","formatMessage","close","skipPlot","goToTable","summaryPlaceholder","table","useRef","styles","index","join"],"sources":["../../../src/a11y/PlotA11yView.tsx"],"sourcesContent":["import React from 'react';\nimport { heavyFindNextFocusableElement } from './focus';\nimport { makeDataSummarizationConfig } from './hints';\nimport type { A11yViewProps } from './PlotA11yModule';\nimport { formatValue } from './serialize';\nimport { getIntl } from './intl';\nimport { summarize } from './summarize';\nimport { Root, sstyled } from '@semcore/core';\nimport styles from '../style/plotA11yView.shadow.css';\nimport { Box } from '@semcore/flex-box';\nimport { useAsyncI18nMessages } from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { localizedMessages } from './translations/view/__intergalactic-dynamic-locales';\n\nexport const PlotA11yView: React.FC<A11yViewProps> = ({\n id,\n data: providedData,\n hints,\n plotLabel,\n plotRef,\n config: providedConfig,\n locale,\n}) => {\n const SPlotA11yView = Root;\n const translations = useAsyncI18nMessages(localizedMessages, locale);\n const intl = React.useMemo(\n () => getIntl(locale, translations, localizedMessages),\n [locale, translations, localizedMessages],\n );\n const config = React.useMemo(() => makeDataSummarizationConfig(providedConfig), [providedConfig]);\n const data = React.useMemo(\n () => (Array.isArray(providedData) ? providedData : [providedData]),\n [providedData],\n );\n const keys = React.useMemo(() => {\n let fromHints: (string | number)[] = [];\n fromHints.push(...hints.fields.verticalAxes);\n fromHints.push(...hints.fields.horizontalAxes);\n fromHints.push(...hints.fields.valueAxes);\n fromHints.push(...config.additionalFields);\n fromHints.push(...Object.keys(hints.fields.values));\n\n fromHints = [...new Set(fromHints)].filter((key) => key in data[0]);\n\n if (fromHints.length === 0) {\n data.forEach((row) => fromHints.push(...Object.keys(row)));\n }\n\n return [...new Set(fromHints)];\n }, [data, hints]);\n const duplicatedBaseKeys = React.useMemo(() => {\n const baseKeys = keys\n .filter((key) => !hints.titles.valuesAxes[key])\n .map((key) => {\n if (hints.fields.verticalAxes.has(key) && hints.axesTitle.vertical)\n return [key, hints.axesTitle.vertical];\n if (hints.fields.horizontalAxes.has(key) && hints.axesTitle.horizontal)\n return [key, hints.axesTitle.horizontal];\n })\n .filter((entry) => entry !== undefined)\n .map((entry) => entry!);\n const doublicated: Record<string, true> = {};\n const handled: Record<string, string | number> = {};\n for (const [key, label] of baseKeys) {\n if (handled[label]) {\n doublicated[key] = true;\n doublicated[handled[label]] = true;\n }\n handled[label] = key;\n }\n return doublicated;\n }, [keys, hints]);\n const renderTitle = React.useCallback(\n (dataKey: string | number) => {\n if (hints.titles.valuesAxes[dataKey]) return hints.titles.valuesAxes[dataKey];\n if (!duplicatedBaseKeys[dataKey]) {\n if (hints.fields.verticalAxes.has(dataKey) && hints.axesTitle.vertical)\n return hints.axesTitle.vertical;\n if (hints.fields.horizontalAxes.has(dataKey) && hints.axesTitle.horizontal)\n return hints.axesTitle.horizontal;\n }\n\n return dataKey;\n },\n [data, hints, duplicatedBaseKeys],\n );\n\n const [summary, setSummary] = React.useState<string | null>(null);\n const [generatingSummary, setGeneratingSummary] = React.useState(true);\n\n React.useEffect(() => {\n if (config.disable) {\n setSummary('');\n setGeneratingSummary(false);\n return;\n }\n if (config.override) {\n setSummary(config.override);\n setGeneratingSummary(false);\n return;\n }\n setTimeout(() => {\n setSummary(summarize(providedData, hints, config, locale, translations, localizedMessages));\n setGeneratingSummary(false);\n }, 0);\n }, [providedData, hints, config, locale, translations, localizedMessages]);\n\n const handleSkip = React.useCallback(() => {\n if (!plotRef.current) return;\n\n heavyFindNextFocusableElement(plotRef.current)?.focus();\n }, []);\n const handleSkipKeyboard = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (event.code !== 'Enter') return;\n\n handleSkip();\n },\n [handleSkip],\n );\n const handleGoToTable = React.useCallback(() => {\n dataTableRef.current?.focus();\n }, []);\n const handleGoToTableKeyboard = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (event.code !== 'Enter') return;\n\n handleGoToTable();\n },\n [handleGoToTable],\n );\n\n const texts = React.useMemo(\n () => ({\n label: intl.formatMessage(\n { id: 'view-label' },\n { plotLabel: plotLabel ?? intl.formatMessage({ id: 'view-default-plot-label' }) },\n ),\n close: intl.formatMessage({ id: 'view-close' }),\n skipPlot: intl.formatMessage({ id: 'view-skip-plot' }),\n goToTable: intl.formatMessage({ id: 'view-go-to-table' }),\n summary: intl.formatMessage({ id: 'view-data-summary' }),\n summaryPlaceholder: intl.formatMessage({ id: 'view-summary-placeholder' }),\n table: intl.formatMessage({ id: 'view-table' }),\n }),\n [intl, plotLabel],\n );\n\n const dataTableRef = React.useRef<HTMLTableElement>(null);\n\n return sstyled(styles)(\n <SPlotA11yView render={Box} tabIndex={0} aria-label={texts.label}>\n <a aria-hidden onClick={handleSkip}>\n {texts.close}\n </a>\n <a role=\"link\" tabIndex={0} onKeyDown={handleSkipKeyboard} onClick={handleSkip}>\n {texts.skipPlot}\n </a>\n <a role=\"link\" tabIndex={0} onKeyDown={handleGoToTableKeyboard} onClick={handleGoToTable}>\n {texts.goToTable}\n </a>\n <strong>\n <label htmlFor={`${id}-data-summary`}>{texts.summary}</label>\n </strong>\n <div id={`${id}-data-summary`} aria-busy={generatingSummary} tabIndex={0}>\n {generatingSummary ? texts.summaryPlaceholder : summary}\n </div>\n <strong>\n <label htmlFor={`${id}-data-table`}>{texts.table}</label>\n </strong>\n <table id={`${id}-data-table`} tabIndex={0} ref={dataTableRef}>\n <thead>\n <tr>\n {keys.map((key, index) => (\n <th key={`${key}-${index}`}>{renderTitle(key)}</th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data.map((row, index) => (\n <tr key={Object.values(row).join('-') + '-' + index}>\n {keys.map((key, index) => (\n <td key={`${key}-${index}`}>{formatValue(intl, row[key])}</td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </SPlotA11yView>,\n ) as React.ReactElement;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"PlotA11yView.js","names":["React","heavyFindNextFocusableElement","makeDataSummarizationConfig","formatValue","getIntl","summarize","Root","sstyled","styles","_sstyled","insert","Box","useAsyncI18nMessages","localizedMessages","PlotA11yView","_ref3","_ref","arguments[0]","_ref2","id","providedData","data","hints","plotLabel","plotRef","providedConfig","config","locale","SPlotA11yView","translations","intl","useMemo","Array","isArray","keys","_fromHints","_fromHints2","_fromHints3","_fromHints4","_fromHints5","fromHints","push","apply","_toConsumableArray","fields","verticalAxes","horizontalAxes","valueAxes","additionalFields","Object","values","Set","filter","key","length","forEach","row","_fromHints6","duplicatedBaseKeys","baseKeys","titles","valuesAxes","map","has","axesTitle","vertical","horizontal","entry","undefined","doublicated","handled","_iterator","_createForOfIteratorHelper","_step","s","n","done","_step$value","_slicedToArray","value","label","err","e","f","renderTitle","useCallback","dataKey","_React$useState","useState","_React$useState2","summary","setSummary","_React$useState3","_React$useState4","generatingSummary","setGeneratingSummary","useEffect","disable","override","setTimeout","handleSkip","_heavyFindNextFocusab","current","focus","handleSkipKeyboard","event","code","handleGoToTable","_dataTableRef$current","dataTableRef","handleGoToTableKeyboard","texts","formatMessage","close","skipPlot","goToTable","summaryPlaceholder","table","useRef","createElement","cn","_objectSpread","_assignProps","concat","index","join"],"sources":["../../../src/a11y/PlotA11yView.tsx"],"sourcesContent":["import React from 'react';\nimport { heavyFindNextFocusableElement } from './focus';\nimport { makeDataSummarizationConfig } from './hints';\nimport type { A11yViewProps } from './PlotA11yModule';\nimport { formatValue } from './serialize';\nimport { getIntl } from './intl';\nimport { summarize } from './summarize';\nimport { Root, sstyled } from '@semcore/core';\nimport styles from '../style/plotA11yView.shadow.css';\nimport { Box } from '@semcore/flex-box';\nimport { useAsyncI18nMessages } from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { localizedMessages } from './translations/view/__intergalactic-dynamic-locales';\n\nexport const PlotA11yView: React.FC<A11yViewProps> = ({\n id,\n data: providedData,\n hints,\n plotLabel,\n plotRef,\n config: providedConfig,\n locale,\n}) => {\n const SPlotA11yView = Root;\n const translations = useAsyncI18nMessages(localizedMessages, locale);\n const intl = React.useMemo(\n () => getIntl(locale, translations, localizedMessages),\n [locale, translations, localizedMessages],\n );\n const config = React.useMemo(() => makeDataSummarizationConfig(providedConfig), [providedConfig]);\n const data = React.useMemo(\n () => (Array.isArray(providedData) ? providedData : [providedData]),\n [providedData],\n );\n const keys = React.useMemo(() => {\n let fromHints: (string | number)[] = [];\n fromHints.push(...hints.fields.verticalAxes);\n fromHints.push(...hints.fields.horizontalAxes);\n fromHints.push(...hints.fields.valueAxes);\n fromHints.push(...config.additionalFields);\n fromHints.push(...Object.keys(hints.fields.values));\n\n fromHints = [...new Set(fromHints)].filter((key) => key in data[0]);\n\n if (fromHints.length === 0) {\n data.forEach((row) => fromHints.push(...Object.keys(row)));\n }\n\n return [...new Set(fromHints)];\n }, [data, hints]);\n const duplicatedBaseKeys = React.useMemo(() => {\n const baseKeys = keys\n .filter((key) => !hints.titles.valuesAxes[key])\n .map((key) => {\n if (hints.fields.verticalAxes.has(key) && hints.axesTitle.vertical)\n return [key, hints.axesTitle.vertical];\n if (hints.fields.horizontalAxes.has(key) && hints.axesTitle.horizontal)\n return [key, hints.axesTitle.horizontal];\n })\n .filter((entry) => entry !== undefined)\n .map((entry) => entry!);\n const doublicated: Record<string, true> = {};\n const handled: Record<string, string | number> = {};\n for (const [key, label] of baseKeys) {\n if (handled[label]) {\n doublicated[key] = true;\n doublicated[handled[label]] = true;\n }\n handled[label] = key;\n }\n return doublicated;\n }, [keys, hints]);\n const renderTitle = React.useCallback(\n (dataKey: string | number) => {\n if (hints.titles.valuesAxes[dataKey]) return hints.titles.valuesAxes[dataKey];\n if (!duplicatedBaseKeys[dataKey]) {\n if (hints.fields.verticalAxes.has(dataKey) && hints.axesTitle.vertical)\n return hints.axesTitle.vertical;\n if (hints.fields.horizontalAxes.has(dataKey) && hints.axesTitle.horizontal)\n return hints.axesTitle.horizontal;\n }\n\n return dataKey;\n },\n [data, hints, duplicatedBaseKeys],\n );\n\n const [summary, setSummary] = React.useState<string | null>(null);\n const [generatingSummary, setGeneratingSummary] = React.useState(true);\n\n React.useEffect(() => {\n if (config.disable) {\n setSummary('');\n setGeneratingSummary(false);\n return;\n }\n if (config.override) {\n setSummary(config.override);\n setGeneratingSummary(false);\n return;\n }\n setTimeout(() => {\n setSummary(summarize(providedData, hints, config, locale, translations, localizedMessages));\n setGeneratingSummary(false);\n }, 0);\n }, [providedData, hints, config, locale, translations, localizedMessages]);\n\n const handleSkip = React.useCallback(() => {\n if (!plotRef.current) return;\n\n heavyFindNextFocusableElement(plotRef.current)?.focus();\n }, []);\n const handleSkipKeyboard = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (event.code !== 'Enter') return;\n\n handleSkip();\n },\n [handleSkip],\n );\n const handleGoToTable = React.useCallback(() => {\n dataTableRef.current?.focus();\n }, []);\n const handleGoToTableKeyboard = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (event.code !== 'Enter') return;\n\n handleGoToTable();\n },\n [handleGoToTable],\n );\n\n const texts = React.useMemo(\n () => ({\n label: intl.formatMessage(\n { id: 'view-label' },\n { plotLabel: plotLabel ?? intl.formatMessage({ id: 'view-default-plot-label' }) },\n ),\n close: intl.formatMessage({ id: 'view-close' }),\n skipPlot: intl.formatMessage({ id: 'view-skip-plot' }),\n goToTable: intl.formatMessage({ id: 'view-go-to-table' }),\n summary: intl.formatMessage({ id: 'view-data-summary' }),\n summaryPlaceholder: intl.formatMessage({ id: 'view-summary-placeholder' }),\n table: intl.formatMessage({ id: 'view-table' }),\n }),\n [intl, plotLabel],\n );\n\n const dataTableRef = React.useRef<HTMLTableElement>(null);\n\n return sstyled(styles)(\n <SPlotA11yView render={Box} tabIndex={0} aria-label={texts.label}>\n <a aria-hidden onClick={handleSkip}>\n {texts.close}\n </a>\n <a role=\"link\" tabIndex={0} onKeyDown={handleSkipKeyboard} onClick={handleSkip}>\n {texts.skipPlot}\n </a>\n <a role=\"link\" tabIndex={0} onKeyDown={handleGoToTableKeyboard} onClick={handleGoToTable}>\n {texts.goToTable}\n </a>\n <strong>\n <label htmlFor={`${id}-data-summary`}>{texts.summary}</label>\n </strong>\n <div id={`${id}-data-summary`} aria-busy={generatingSummary} tabIndex={0}>\n {generatingSummary ? texts.summaryPlaceholder : summary}\n </div>\n <strong>\n <label htmlFor={`${id}-data-table`}>{texts.table}</label>\n </strong>\n <table id={`${id}-data-table`} tabIndex={0} ref={dataTableRef}>\n <thead>\n <tr>\n {keys.map((key, index) => (\n <th key={`${key}-${index}`}>{renderTitle(key)}</th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data.map((row, index) => (\n <tr key={Object.values(row).join('-') + '-' + index}>\n {keys.map((key, index) => (\n <td key={`${key}-${index}`}>{formatValue(intl, row[key])}</td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </SPlotA11yView>,\n ) as React.ReactElement;\n};\n"],"mappings":"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"}
@@ -7,13 +7,10 @@ export var makeBezier = function makeBezier(points, bounds) {
7
7
  });
8
8
  var weightPoints = points.map(function (point) {
9
9
  var _point$weight;
10
-
11
10
  return (_point$weight = point.weight) !== null && _point$weight !== void 0 ? _point$weight : 1;
12
11
  });
13
-
14
12
  var process = function process(t, points) {
15
13
  var result = 0;
16
-
17
14
  for (var i = 0; i < points.length; i++) {
18
15
  var tPower = i;
19
16
  var reversedTPower = points.length - 1 - i;
@@ -23,10 +20,8 @@ export var makeBezier = function makeBezier(points, bounds) {
23
20
  var weight = weightPoints[i];
24
21
  result += factor * Math.pow(t, tPower) * Math.pow(1 - t, reversedTPower) * point * weight;
25
22
  }
26
-
27
23
  return result;
28
24
  };
29
-
30
25
  return function (x) {
31
26
  var t = x / bounds.width;
32
27
  return process(t, yPoints) / process(t, noPoints);
@@ -1 +1 @@
1
- {"version":3,"file":"bezier.js","names":["makeBezier","points","bounds","yPoints","map","point","y","noPoints","weightPoints","weight","process","t","result","i","length","tPower","reversedTPower","edge","factor","x","width"],"sources":["../../../src/a11y/bezier.ts"],"sourcesContent":["export const makeBezier = (\n points: { x: number; y: number; weight?: number }[],\n bounds: { width: number; height: number },\n) => {\n const yPoints = points.map((point) => point.y);\n const noPoints = points.map(() => 1);\n const weightPoints = points.map((point) => point.weight ?? 1);\n const process = (t: number, points: number[]) => {\n let result = 0;\n for (let i = 0; i < points.length; i++) {\n const tPower = i;\n const reversedTPower = points.length - 1 - i;\n const edge = i === 0 || i === points.length - 1;\n const factor = edge ? 1 : points.length - 1;\n const point = points[i];\n const weight = weightPoints[i];\n result += factor * t ** tPower * (1 - t) ** reversedTPower * point * weight;\n }\n return result;\n };\n\n return (x: number) => {\n const t = x / bounds.width;\n return process(t, yPoints) / process(t, noPoints);\n };\n};\n"],"mappings":"AAAA,OAAO,IAAMA,UAAU,GAAG,SAAbA,UAAa,CACxBC,MADwB,EAExBC,MAFwB,EAGrB;EACH,IAAMC,OAAO,GAAGF,MAAM,CAACG,GAAP,CAAW,UAACC,KAAD;IAAA,OAAWA,KAAK,CAACC,CAAjB;EAAA,CAAX,CAAhB;EACA,IAAMC,QAAQ,GAAGN,MAAM,CAACG,GAAP,CAAW;IAAA,OAAM,CAAN;EAAA,CAAX,CAAjB;EACA,IAAMI,YAAY,GAAGP,MAAM,CAACG,GAAP,CAAW,UAACC,KAAD;IAAA;;IAAA,wBAAWA,KAAK,CAACI,MAAjB,yDAA2B,CAA3B;EAAA,CAAX,CAArB;;EACA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,CAAD,EAAYV,MAAZ,EAAiC;IAC/C,IAAIW,MAAM,GAAG,CAAb;;IACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGZ,MAAM,CAACa,MAA3B,EAAmCD,CAAC,EAApC,EAAwC;MACtC,IAAME,MAAM,GAAGF,CAAf;MACA,IAAMG,cAAc,GAAGf,MAAM,CAACa,MAAP,GAAgB,CAAhB,GAAoBD,CAA3C;MACA,IAAMI,IAAI,GAAGJ,CAAC,KAAK,CAAN,IAAWA,CAAC,KAAKZ,MAAM,CAACa,MAAP,GAAgB,CAA9C;MACA,IAAMI,MAAM,GAAGD,IAAI,GAAG,CAAH,GAAOhB,MAAM,CAACa,MAAP,GAAgB,CAA1C;MACA,IAAMT,KAAK,GAAGJ,MAAM,CAACY,CAAD,CAApB;MACA,IAAMJ,MAAM,GAAGD,YAAY,CAACK,CAAD,CAA3B;MACAD,MAAM,IAAIM,MAAM,YAAGP,CAAH,EAAQI,MAAR,CAAN,YAAwB,IAAIJ,CAA5B,EAAkCK,cAAlC,IAAmDX,KAAnD,GAA2DI,MAArE;IACD;;IACD,OAAOG,MAAP;EACD,CAZD;;EAcA,OAAO,UAACO,CAAD,EAAe;IACpB,IAAMR,CAAC,GAAGQ,CAAC,GAAGjB,MAAM,CAACkB,KAArB;IACA,OAAOV,OAAO,CAACC,CAAD,EAAIR,OAAJ,CAAP,GAAsBO,OAAO,CAACC,CAAD,EAAIJ,QAAJ,CAApC;EACD,CAHD;AAID,CAzBM"}
1
+ {"version":3,"file":"bezier.js","names":["makeBezier","points","bounds","yPoints","map","point","y","noPoints","weightPoints","_point$weight","weight","process","t","result","i","length","tPower","reversedTPower","edge","factor","Math","pow","x","width"],"sources":["../../../src/a11y/bezier.ts"],"sourcesContent":["export const makeBezier = (\n points: { x: number; y: number; weight?: number }[],\n bounds: { width: number; height: number },\n) => {\n const yPoints = points.map((point) => point.y);\n const noPoints = points.map(() => 1);\n const weightPoints = points.map((point) => point.weight ?? 1);\n const process = (t: number, points: number[]) => {\n let result = 0;\n for (let i = 0; i < points.length; i++) {\n const tPower = i;\n const reversedTPower = points.length - 1 - i;\n const edge = i === 0 || i === points.length - 1;\n const factor = edge ? 1 : points.length - 1;\n const point = points[i];\n const weight = weightPoints[i];\n result += factor * t ** tPower * (1 - t) ** reversedTPower * point * weight;\n }\n return result;\n };\n\n return (x: number) => {\n const t = x / bounds.width;\n return process(t, yPoints) / process(t, noPoints);\n };\n};\n"],"mappings":"AAAA,OAAO,IAAMA,UAAU,GAAG,SAAbA,UAAUA,CACrBC,MAAmD,EACnDC,MAAyC,EACtC;EACH,IAAMC,OAAO,GAAGF,MAAM,CAACG,GAAG,CAAC,UAACC,KAAK;IAAA,OAAKA,KAAK,CAACC,CAAC;EAAA,EAAC;EAC9C,IAAMC,QAAQ,GAAGN,MAAM,CAACG,GAAG,CAAC;IAAA,OAAM,CAAC;EAAA,EAAC;EACpC,IAAMI,YAAY,GAAGP,MAAM,CAACG,GAAG,CAAC,UAACC,KAAK;IAAA,IAAAI,aAAA;IAAA,QAAAA,aAAA,GAAKJ,KAAK,CAACK,MAAM,cAAAD,aAAA,cAAAA,aAAA,GAAI,CAAC;EAAA,EAAC;EAC7D,IAAME,OAAO,GAAG,SAAVA,OAAOA,CAAIC,CAAS,EAAEX,MAAgB,EAAK;IAC/C,IAAIY,MAAM,GAAG,CAAC;IACd,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGb,MAAM,CAACc,MAAM,EAAED,CAAC,EAAE,EAAE;MACtC,IAAME,MAAM,GAAGF,CAAC;MAChB,IAAMG,cAAc,GAAGhB,MAAM,CAACc,MAAM,GAAG,CAAC,GAAGD,CAAC;MAC5C,IAAMI,IAAI,GAAGJ,CAAC,KAAK,CAAC,IAAIA,CAAC,KAAKb,MAAM,CAACc,MAAM,GAAG,CAAC;MAC/C,IAAMI,MAAM,GAAGD,IAAI,GAAG,CAAC,GAAGjB,MAAM,CAACc,MAAM,GAAG,CAAC;MAC3C,IAAMV,KAAK,GAAGJ,MAAM,CAACa,CAAC,CAAC;MACvB,IAAMJ,MAAM,GAAGF,YAAY,CAACM,CAAC,CAAC;MAC9BD,MAAM,IAAIM,MAAM,GAAAC,IAAA,CAAAC,GAAA,CAAGT,CAAC,EAAII,MAAM,IAAAI,IAAA,CAAAC,GAAA,CAAI,CAAC,GAAGT,CAAC,EAAKK,cAAc,IAAGZ,KAAK,GAAGK,MAAM;IAC7E;IACA,OAAOG,MAAM;EACf,CAAC;EAED,OAAO,UAACS,CAAS,EAAK;IACpB,IAAMV,CAAC,GAAGU,CAAC,GAAGpB,MAAM,CAACqB,KAAK;IAC1B,OAAOZ,OAAO,CAACC,CAAC,EAAET,OAAO,CAAC,GAAGQ,OAAO,CAACC,CAAC,EAAEL,QAAQ,CAAC;EACnD,CAAC;AACH,CAAC"}
@@ -1,26 +1,23 @@
1
1
  var isFocusable = function isFocusable(element) {
2
2
  var tabIndex = element.getAttribute('tabindex');
3
-
4
3
  if (tabIndex) {
5
4
  var tabIndexValue = parseInt(tabIndex, 10);
6
5
  if (!isNaN(tabIndexValue) && tabIndexValue >= 0) return element;
7
6
  }
8
-
9
7
  var tagName = element.tagName;
10
8
  if ('INPUT' === tagName) return !element.getAttribute('disabled');
11
9
  if ('A' === tagName || 'AREA' === tagName) return element.hasAttribute('href');
12
10
  if ('BODY' === tagName || 'IFRAME' === tagName) return true;
13
- }; // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope
11
+ };
14
12
 
13
+ // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope
15
14
 
16
15
  export var heavyFindNextFocusableElement = function heavyFindNextFocusableElement(base) {
17
16
  var trace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Map();
18
17
  trace.set(base, true);
19
18
  var sibling = base.nextElementSibling;
20
-
21
19
  if (sibling) {
22
20
  trace.set(sibling, true);
23
-
24
21
  for (var i = 0; i < sibling.children.length; i++) {
25
22
  var child = sibling.children.item(i);
26
23
  if (!child) continue;
@@ -29,19 +26,15 @@ export var heavyFindNextFocusableElement = function heavyFindNextFocusableElemen
29
26
  var childInnerResult = heavyFindNextFocusableElement(child, trace);
30
27
  if (childInnerResult) return childInnerResult;
31
28
  }
32
-
33
29
  while (sibling) {
34
30
  if (isFocusable(sibling)) return sibling;
35
-
36
31
  if (!trace.has(sibling)) {
37
32
  var siblingInnerResult = heavyFindNextFocusableElement(sibling, trace);
38
33
  if (siblingInnerResult) return siblingInnerResult;
39
34
  }
40
-
41
35
  sibling = sibling.nextElementSibling;
42
36
  }
43
37
  }
44
-
45
38
  if (!base.parentElement || trace.has(base.parentElement)) return null;
46
39
  return heavyFindNextFocusableElement(base.parentElement, trace);
47
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"focus.js","names":["isFocusable","element","tabIndex","getAttribute","tabIndexValue","parseInt","isNaN","tagName","hasAttribute","heavyFindNextFocusableElement","base","trace","Map","set","sibling","nextElementSibling","i","children","length","child","item","has","childInnerResult","siblingInnerResult","parentElement"],"sources":["../../../src/a11y/focus.ts"],"sourcesContent":["const isFocusable = (element: Element) => {\n const tabIndex = element.getAttribute('tabindex');\n if (tabIndex) {\n const tabIndexValue = parseInt(tabIndex, 10);\n if (!isNaN(tabIndexValue) && tabIndexValue >= 0) return element;\n }\n\n const { tagName } = element;\n\n if ('INPUT' === tagName) return !element.getAttribute('disabled');\n if ('A' === tagName || 'AREA' === tagName) return element.hasAttribute('href');\n if ('BODY' === tagName || 'IFRAME' === tagName) return true;\n};\n\n// eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\ntype FocusableElement = Element & { focus: () => void };\n\nexport const heavyFindNextFocusableElement = (\n base: Element,\n trace: Map<Element, true> = new Map(),\n): FocusableElement | null => {\n trace.set(base, true);\n let sibling = base.nextElementSibling;\n if (sibling) {\n trace.set(sibling, true);\n for (let i = 0; i < sibling.children.length; i++) {\n const child = sibling.children.item(i);\n if (!child) continue;\n if (trace.has(child)) continue;\n if (isFocusable(child)) return child as FocusableElement;\n const childInnerResult = heavyFindNextFocusableElement(child, trace);\n if (childInnerResult) return childInnerResult;\n }\n while (sibling) {\n if (isFocusable(sibling)) return sibling as FocusableElement;\n if (!trace.has(sibling)) {\n const siblingInnerResult = heavyFindNextFocusableElement(sibling, trace);\n if (siblingInnerResult) return siblingInnerResult;\n }\n sibling = sibling.nextElementSibling;\n }\n }\n\n if (!base.parentElement || trace.has(base.parentElement)) return null;\n\n return heavyFindNextFocusableElement(base.parentElement, trace);\n};\n"],"mappings":"AAAA,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAACC,OAAD,EAAsB;EACxC,IAAMC,QAAQ,GAAGD,OAAO,CAACE,YAAR,CAAqB,UAArB,CAAjB;;EACA,IAAID,QAAJ,EAAc;IACZ,IAAME,aAAa,GAAGC,QAAQ,CAACH,QAAD,EAAW,EAAX,CAA9B;IACA,IAAI,CAACI,KAAK,CAACF,aAAD,CAAN,IAAyBA,aAAa,IAAI,CAA9C,EAAiD,OAAOH,OAAP;EAClD;;EAED,IAAQM,OAAR,GAAoBN,OAApB,CAAQM,OAAR;EAEA,IAAI,YAAYA,OAAhB,EAAyB,OAAO,CAACN,OAAO,CAACE,YAAR,CAAqB,UAArB,CAAR;EACzB,IAAI,QAAQI,OAAR,IAAmB,WAAWA,OAAlC,EAA2C,OAAON,OAAO,CAACO,YAAR,CAAqB,MAArB,CAAP;EAC3C,IAAI,WAAWD,OAAX,IAAsB,aAAaA,OAAvC,EAAgD,OAAO,IAAP;AACjD,CAZD,C,CAcA;;;AAGA,OAAO,IAAME,6BAA6B,GAAG,SAAhCA,6BAAgC,CAC3CC,IAD2C,EAGf;EAAA,IAD5BC,KAC4B,uEADA,IAAIC,GAAJ,EACA;EAC5BD,KAAK,CAACE,GAAN,CAAUH,IAAV,EAAgB,IAAhB;EACA,IAAII,OAAO,GAAGJ,IAAI,CAACK,kBAAnB;;EACA,IAAID,OAAJ,EAAa;IACXH,KAAK,CAACE,GAAN,CAAUC,OAAV,EAAmB,IAAnB;;IACA,KAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,OAAO,CAACG,QAAR,CAAiBC,MAArC,EAA6CF,CAAC,EAA9C,EAAkD;MAChD,IAAMG,KAAK,GAAGL,OAAO,CAACG,QAAR,CAAiBG,IAAjB,CAAsBJ,CAAtB,CAAd;MACA,IAAI,CAACG,KAAL,EAAY;MACZ,IAAIR,KAAK,CAACU,GAAN,CAAUF,KAAV,CAAJ,EAAsB;MACtB,IAAInB,WAAW,CAACmB,KAAD,CAAf,EAAwB,OAAOA,KAAP;MACxB,IAAMG,gBAAgB,GAAGb,6BAA6B,CAACU,KAAD,EAAQR,KAAR,CAAtD;MACA,IAAIW,gBAAJ,EAAsB,OAAOA,gBAAP;IACvB;;IACD,OAAOR,OAAP,EAAgB;MACd,IAAId,WAAW,CAACc,OAAD,CAAf,EAA0B,OAAOA,OAAP;;MAC1B,IAAI,CAACH,KAAK,CAACU,GAAN,CAAUP,OAAV,CAAL,EAAyB;QACvB,IAAMS,kBAAkB,GAAGd,6BAA6B,CAACK,OAAD,EAAUH,KAAV,CAAxD;QACA,IAAIY,kBAAJ,EAAwB,OAAOA,kBAAP;MACzB;;MACDT,OAAO,GAAGA,OAAO,CAACC,kBAAlB;IACD;EACF;;EAED,IAAI,CAACL,IAAI,CAACc,aAAN,IAAuBb,KAAK,CAACU,GAAN,CAAUX,IAAI,CAACc,aAAf,CAA3B,EAA0D,OAAO,IAAP;EAE1D,OAAOf,6BAA6B,CAACC,IAAI,CAACc,aAAN,EAAqBb,KAArB,CAApC;AACD,CA7BM"}
1
+ {"version":3,"file":"focus.js","names":["isFocusable","element","tabIndex","getAttribute","tabIndexValue","parseInt","isNaN","tagName","hasAttribute","heavyFindNextFocusableElement","base","trace","arguments","length","undefined","Map","set","sibling","nextElementSibling","i","children","child","item","has","childInnerResult","siblingInnerResult","parentElement"],"sources":["../../../src/a11y/focus.ts"],"sourcesContent":["const isFocusable = (element: Element) => {\n const tabIndex = element.getAttribute('tabindex');\n if (tabIndex) {\n const tabIndexValue = parseInt(tabIndex, 10);\n if (!isNaN(tabIndexValue) && tabIndexValue >= 0) return element;\n }\n\n const { tagName } = element;\n\n if ('INPUT' === tagName) return !element.getAttribute('disabled');\n if ('A' === tagName || 'AREA' === tagName) return element.hasAttribute('href');\n if ('BODY' === tagName || 'IFRAME' === tagName) return true;\n};\n\n// eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\ntype FocusableElement = Element & { focus: () => void };\n\nexport const heavyFindNextFocusableElement = (\n base: Element,\n trace: Map<Element, true> = new Map(),\n): FocusableElement | null => {\n trace.set(base, true);\n let sibling = base.nextElementSibling;\n if (sibling) {\n trace.set(sibling, true);\n for (let i = 0; i < sibling.children.length; i++) {\n const child = sibling.children.item(i);\n if (!child) continue;\n if (trace.has(child)) continue;\n if (isFocusable(child)) return child as FocusableElement;\n const childInnerResult = heavyFindNextFocusableElement(child, trace);\n if (childInnerResult) return childInnerResult;\n }\n while (sibling) {\n if (isFocusable(sibling)) return sibling as FocusableElement;\n if (!trace.has(sibling)) {\n const siblingInnerResult = heavyFindNextFocusableElement(sibling, trace);\n if (siblingInnerResult) return siblingInnerResult;\n }\n sibling = sibling.nextElementSibling;\n }\n }\n\n if (!base.parentElement || trace.has(base.parentElement)) return null;\n\n return heavyFindNextFocusableElement(base.parentElement, trace);\n};\n"],"mappings":"AAAA,IAAMA,WAAW,GAAG,SAAdA,WAAWA,CAAIC,OAAgB,EAAK;EACxC,IAAMC,QAAQ,GAAGD,OAAO,CAACE,YAAY,CAAC,UAAU,CAAC;EACjD,IAAID,QAAQ,EAAE;IACZ,IAAME,aAAa,GAAGC,QAAQ,CAACH,QAAQ,EAAE,EAAE,CAAC;IAC5C,IAAI,CAACI,KAAK,CAACF,aAAa,CAAC,IAAIA,aAAa,IAAI,CAAC,EAAE,OAAOH,OAAO;EACjE;EAEA,IAAQM,OAAO,GAAKN,OAAO,CAAnBM,OAAO;EAEf,IAAI,OAAO,KAAKA,OAAO,EAAE,OAAO,CAACN,OAAO,CAACE,YAAY,CAAC,UAAU,CAAC;EACjE,IAAI,GAAG,KAAKI,OAAO,IAAI,MAAM,KAAKA,OAAO,EAAE,OAAON,OAAO,CAACO,YAAY,CAAC,MAAM,CAAC;EAC9E,IAAI,MAAM,KAAKD,OAAO,IAAI,QAAQ,KAAKA,OAAO,EAAE,OAAO,IAAI;AAC7D,CAAC;;AAED;;AAGA,OAAO,IAAME,6BAA6B,GAAG,SAAhCA,6BAA6BA,CACxCC,IAAa,EAEe;EAAA,IAD5BC,KAAyB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAIG,GAAG,EAAE;EAErCJ,KAAK,CAACK,GAAG,CAACN,IAAI,EAAE,IAAI,CAAC;EACrB,IAAIO,OAAO,GAAGP,IAAI,CAACQ,kBAAkB;EACrC,IAAID,OAAO,EAAE;IACXN,KAAK,CAACK,GAAG,CAACC,OAAO,EAAE,IAAI,CAAC;IACxB,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,OAAO,CAACG,QAAQ,CAACP,MAAM,EAAEM,CAAC,EAAE,EAAE;MAChD,IAAME,KAAK,GAAGJ,OAAO,CAACG,QAAQ,CAACE,IAAI,CAACH,CAAC,CAAC;MACtC,IAAI,CAACE,KAAK,EAAE;MACZ,IAAIV,KAAK,CAACY,GAAG,CAACF,KAAK,CAAC,EAAE;MACtB,IAAIrB,WAAW,CAACqB,KAAK,CAAC,EAAE,OAAOA,KAAK;MACpC,IAAMG,gBAAgB,GAAGf,6BAA6B,CAACY,KAAK,EAAEV,KAAK,CAAC;MACpE,IAAIa,gBAAgB,EAAE,OAAOA,gBAAgB;IAC/C;IACA,OAAOP,OAAO,EAAE;MACd,IAAIjB,WAAW,CAACiB,OAAO,CAAC,EAAE,OAAOA,OAAO;MACxC,IAAI,CAACN,KAAK,CAACY,GAAG,CAACN,OAAO,CAAC,EAAE;QACvB,IAAMQ,kBAAkB,GAAGhB,6BAA6B,CAACQ,OAAO,EAAEN,KAAK,CAAC;QACxE,IAAIc,kBAAkB,EAAE,OAAOA,kBAAkB;MACnD;MACAR,OAAO,GAAGA,OAAO,CAACC,kBAAkB;IACtC;EACF;EAEA,IAAI,CAACR,IAAI,CAACgB,aAAa,IAAIf,KAAK,CAACY,GAAG,CAACb,IAAI,CAACgB,aAAa,CAAC,EAAE,OAAO,IAAI;EAErE,OAAOjB,6BAA6B,CAACC,IAAI,CAACgB,aAAa,EAAEf,KAAK,CAAC;AACjE,CAAC"}
@@ -69,11 +69,9 @@ export var makeDataHintsHandlers = function makeDataHintsHandlers(mutableContain
69
69
  if (typeof title === 'number' || typeof title === 'bigint' || _typeof(title) === 'object' && title instanceof Date) {
70
70
  title = String(title);
71
71
  }
72
-
73
72
  if (typeof title !== 'string') {
74
73
  return;
75
74
  }
76
-
77
75
  if (describedDataAxes === 'horizontal') {
78
76
  mutableContainer.axesTitle.horizontal = title;
79
77
  } else if (describedDataAxes === 'vertical') {
@@ -91,7 +89,6 @@ export var makeDataHintsHandlers = function makeDataHintsHandlers(mutableContain
91
89
  };
92
90
  export var makeDataSummarizationConfig = function makeDataSummarizationConfig(config) {
93
91
  var _config$trendTangens, _config$movingAverage, _config$additionalFie;
94
-
95
92
  return _objectSpread(_objectSpread({
96
93
  clustersGridSize: undefined,
97
94
  maxListSymbols: 100,