@semcore/d3-chart 3.36.0 → 3.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/lib/cjs/Area.js +11 -11
  3. package/lib/cjs/Axis.js +14 -14
  4. package/lib/cjs/Bar.js +10 -10
  5. package/lib/cjs/Bubble.js +12 -12
  6. package/lib/cjs/Donut.js +9 -9
  7. package/lib/cjs/Dots.js +8 -8
  8. package/lib/cjs/HorizontalBar.js +10 -10
  9. package/lib/cjs/Hover.js +3 -3
  10. package/lib/cjs/Line.js +9 -9
  11. package/lib/cjs/Plot.js +3 -3
  12. package/lib/cjs/Radar.js +19 -19
  13. package/lib/cjs/RadialTree.js +11 -11
  14. package/lib/cjs/ReferenceLine.js +9 -9
  15. package/lib/cjs/ScatterPlot.js +9 -9
  16. package/lib/cjs/Tooltip.js +9 -9
  17. package/lib/cjs/Venn.js +9 -9
  18. package/lib/cjs/a11y/DataAccessibilityTable.js +116 -0
  19. package/lib/cjs/a11y/DataAccessibilityTable.js.map +1 -0
  20. package/lib/cjs/a11y/PlotA11yModule.js +2 -2
  21. package/lib/cjs/a11y/PlotA11yView.js +11 -90
  22. package/lib/cjs/a11y/PlotA11yView.js.map +1 -1
  23. package/lib/cjs/a11y/hints.js.map +1 -1
  24. package/lib/cjs/a11y/serialize.js +43 -30
  25. package/lib/cjs/a11y/serialize.js.map +1 -1
  26. package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
  27. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +17 -17
  28. package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +6 -6
  29. package/lib/cjs/types/Plot.d.js.map +1 -1
  30. package/lib/es6/Area.js +11 -11
  31. package/lib/es6/Axis.js +14 -14
  32. package/lib/es6/Bar.js +10 -10
  33. package/lib/es6/Bubble.js +12 -12
  34. package/lib/es6/Donut.js +9 -9
  35. package/lib/es6/Dots.js +8 -8
  36. package/lib/es6/HorizontalBar.js +10 -10
  37. package/lib/es6/Hover.js +3 -3
  38. package/lib/es6/Line.js +9 -9
  39. package/lib/es6/Plot.js +3 -3
  40. package/lib/es6/Radar.js +19 -19
  41. package/lib/es6/RadialTree.js +11 -11
  42. package/lib/es6/ReferenceLine.js +9 -9
  43. package/lib/es6/ScatterPlot.js +9 -9
  44. package/lib/es6/Tooltip.js +9 -9
  45. package/lib/es6/Venn.js +9 -9
  46. package/lib/es6/a11y/DataAccessibilityTable.js +108 -0
  47. package/lib/es6/a11y/DataAccessibilityTable.js.map +1 -0
  48. package/lib/es6/a11y/PlotA11yModule.js +2 -2
  49. package/lib/es6/a11y/PlotA11yView.js +11 -90
  50. package/lib/es6/a11y/PlotA11yView.js.map +1 -1
  51. package/lib/es6/a11y/hints.js.map +1 -1
  52. package/lib/es6/a11y/serialize.js +41 -28
  53. package/lib/es6/a11y/serialize.js.map +1 -1
  54. package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
  55. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +17 -17
  56. package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +6 -6
  57. package/lib/es6/types/Plot.d.js.map +1 -1
  58. package/lib/types/Plot.d.ts +4 -0
  59. package/lib/types/a11y/DataAccessibilityTable.d.ts +11 -0
  60. package/lib/types/a11y/hints.d.ts +6 -1
  61. package/lib/types/a11y/serialize.d.ts +2 -2
  62. package/package.json +6 -6
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DataAccessibilityTable = void 0;
8
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
11
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
+ var _react = _interopRequireDefault(require("react"));
13
+ var _serialize = require("./serialize");
14
+ var DataAccessibilityTable = function DataAccessibilityTable(_ref) {
15
+ var id = _ref.id,
16
+ dataTableRef = _ref.dataTableRef,
17
+ data = _ref.data,
18
+ hints = _ref.hints,
19
+ config = _ref.config,
20
+ intl = _ref.intl;
21
+ var keys = _react["default"].useMemo(function () {
22
+ var _fromHints, _fromHints2, _fromHints3, _fromHints4, _fromHints5;
23
+ var fromHints = [];
24
+ (_fromHints = fromHints).push.apply(_fromHints, (0, _toConsumableArray2["default"])(hints.fields.verticalAxes));
25
+ (_fromHints2 = fromHints).push.apply(_fromHints2, (0, _toConsumableArray2["default"])(hints.fields.horizontalAxes));
26
+ (_fromHints3 = fromHints).push.apply(_fromHints3, (0, _toConsumableArray2["default"])(hints.fields.valueAxes));
27
+ (_fromHints4 = fromHints).push.apply(_fromHints4, (0, _toConsumableArray2["default"])(config.additionalFields));
28
+ (_fromHints5 = fromHints).push.apply(_fromHints5, (0, _toConsumableArray2["default"])(Object.keys(hints.fields.values)));
29
+ fromHints = (0, _toConsumableArray2["default"])(new Set(fromHints)).filter(function (key) {
30
+ return key in data[0];
31
+ });
32
+ if (fromHints.length === 0) {
33
+ data.forEach(function (row) {
34
+ var _fromHints6;
35
+ return (_fromHints6 = fromHints).push.apply(_fromHints6, (0, _toConsumableArray2["default"])(Object.keys(row)));
36
+ });
37
+ }
38
+ return (0, _toConsumableArray2["default"])(new Set(fromHints));
39
+ }, [data, hints]);
40
+ var duplicatedBaseKeys = _react["default"].useMemo(function () {
41
+ var baseKeys = keys.filter(function (key) {
42
+ return !hints.titles.valuesAxes[key];
43
+ }).map(function (key) {
44
+ if (hints.fields.verticalAxes.has(key) && hints.axesTitle.vertical) return [key, hints.axesTitle.vertical];
45
+ if (hints.fields.horizontalAxes.has(key) && hints.axesTitle.horizontal) return [key, hints.axesTitle.horizontal];
46
+ }).filter(function (entry) {
47
+ return entry !== undefined;
48
+ }).map(function (entry) {
49
+ return entry;
50
+ });
51
+ var doublicated = {};
52
+ var handled = {};
53
+ var _iterator = (0, _createForOfIteratorHelper2["default"])(baseKeys),
54
+ _step;
55
+ try {
56
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
57
+ var _step$value = (0, _slicedToArray2["default"])(_step.value, 2),
58
+ key = _step$value[0],
59
+ label = _step$value[1];
60
+ if (handled[label]) {
61
+ doublicated[key] = true;
62
+ doublicated[handled[label]] = true;
63
+ }
64
+ handled[label] = key;
65
+ }
66
+ } catch (err) {
67
+ _iterator.e(err);
68
+ } finally {
69
+ _iterator.f();
70
+ }
71
+ return doublicated;
72
+ }, [keys, hints]);
73
+ var renderTitle = _react["default"].useCallback(function (dataKey) {
74
+ var _config$titlesFormatt;
75
+ var formatted = (_config$titlesFormatt = config.titlesFormatter) === null || _config$titlesFormatt === void 0 ? void 0 : _config$titlesFormatt.call(config, dataKey);
76
+ if (formatted !== undefined) return formatted;
77
+ if (hints.titles.valuesAxes[dataKey]) return hints.titles.valuesAxes[dataKey];
78
+ if (!duplicatedBaseKeys[dataKey]) {
79
+ if (hints.fields.verticalAxes.has(dataKey) && hints.axesTitle.vertical) return hints.axesTitle.vertical;
80
+ if (hints.fields.horizontalAxes.has(dataKey) && hints.axesTitle.horizontal) return hints.axesTitle.horizontal;
81
+ }
82
+ return dataKey;
83
+ }, [data, hints, duplicatedBaseKeys, config]);
84
+ var formatValue = _react["default"].useCallback(function (value, row) {
85
+ var _config$valuesFormatt, _config$valuesFormatt2;
86
+ return (_config$valuesFormatt = (_config$valuesFormatt2 = config.valuesFormatter) === null || _config$valuesFormatt2 === void 0 ? void 0 : _config$valuesFormatt2.call(config, value, row)) !== null && _config$valuesFormatt !== void 0 ? _config$valuesFormatt : (0, _serialize.defaultValueFormatter)(intl, value);
87
+ }, [intl, config]);
88
+ return /*#__PURE__*/_react["default"].createElement("table", {
89
+ id: "".concat(id, "-data-table"),
90
+ tabIndex: 0,
91
+ ref: dataTableRef
92
+ }, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, keys.map(function (key, index) {
93
+ return /*#__PURE__*/_react["default"].createElement("th", {
94
+ key: "".concat(key, "-").concat(index)
95
+ }, renderTitle(key));
96
+ }))), /*#__PURE__*/_react["default"].createElement("tbody", null, data.map(function (row, index) {
97
+ var key = "".concat(Object.values(row).filter(function (item) {
98
+ return (0, _typeof2["default"])(item) !== 'symbol';
99
+ }).join('-'), "-").concat(index);
100
+ var cells = keys.map(function (key) {
101
+ return (0, _typeof2["default"])(row[key]) !== 'symbol' ? [key, row[key]] : [key, ''];
102
+ });
103
+ return /*#__PURE__*/_react["default"].createElement("tr", {
104
+ key: key
105
+ }, cells.map(function (_ref2, index) {
106
+ var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
107
+ key = _ref3[0],
108
+ value = _ref3[1];
109
+ return /*#__PURE__*/_react["default"].createElement("td", {
110
+ key: "".concat(key, "-").concat(index)
111
+ }, formatValue(value, keys[index]));
112
+ }));
113
+ })));
114
+ };
115
+ exports.DataAccessibilityTable = DataAccessibilityTable;
116
+ //# sourceMappingURL=DataAccessibilityTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataAccessibilityTable.js","names":["_react","_interopRequireDefault","require","_serialize","DataAccessibilityTable","_ref","id","dataTableRef","data","hints","config","intl","keys","React","useMemo","_fromHints","_fromHints2","_fromHints3","_fromHints4","_fromHints5","fromHints","push","apply","_toConsumableArray2","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","_createForOfIteratorHelper2","_step","s","n","done","_step$value","_slicedToArray2","value","label","err","e","f","renderTitle","useCallback","dataKey","_config$titlesFormatt","formatted","titlesFormatter","call","formatValue","_config$valuesFormatt","_config$valuesFormatt2","valuesFormatter","defaultValueFormatter","createElement","concat","tabIndex","ref","index","item","_typeof2","join","cells","_ref2","_ref3","exports"],"sources":["../../../src/a11y/DataAccessibilityTable.tsx"],"sourcesContent":["import React from 'react';\nimport { DataStructureHints, DataSummarizationConfig } from './hints';\nimport { Intl } from './intl';\nimport { defaultValueFormatter } from './serialize';\n\nexport const DataAccessibilityTable: React.FC<{\n id: string;\n dataTableRef: React.RefObject<HTMLTableElement>;\n data: Record<string | number, unknown>[];\n hints: DataStructureHints;\n config: DataSummarizationConfig;\n intl: Intl;\n}> = ({ id, dataTableRef, data, hints, config, intl }) => {\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 const formatted = config.titlesFormatter?.(dataKey);\n if (formatted !== undefined) return formatted;\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, config],\n );\n const formatValue = React.useCallback(\n (value: unknown, row: string) => {\n return config.valuesFormatter?.(value, row) ?? defaultValueFormatter(intl, value);\n },\n [intl, config],\n );\n\n return (\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 const key = `${Object.values(row)\n .filter((item) => typeof item !== 'symbol')\n .join('-')}-${index}`;\n const cells = keys.map((key) =>\n typeof row[key] !== 'symbol' ? [key, row[key]] : [key, ''],\n );\n\n return (\n <tr key={key}>\n {cells.map(([key, value], index) => (\n <td key={`${key}-${index}`}>{formatValue(value, keys[index] as string)}</td>\n ))}\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n};\n"],"mappings":"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"}
@@ -16,8 +16,8 @@ var _intergalacticDynamicLocales = require("./translations/module/__intergalacti
16
16
  var _WithI18n = require("@semcore/utils/lib/enhances/WithI18n");
17
17
  var _flexBox = require("@semcore/flex-box");
18
18
  /*__reshadow-styles__:"../style/plotA11yModule.shadow.css"*/
19
- var styles = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SPlotA11yModule_jgfzs_gg_{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;opacity:0}.___SPlotA11yModule_jgfzs_gg_:focus{-webkit-user-select:all;-moz-user-select:all;user-select:all;pointer-events:all;opacity:1}" /*__inner_css_end__*/, "jgfzs_gg_") /*__reshadow_css_end__*/, {
20
- "__SPlotA11yModule": "___SPlotA11yModule_jgfzs_gg_"
19
+ var styles = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SPlotA11yModule_1m35e_gg_{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;opacity:0}.___SPlotA11yModule_1m35e_gg_:focus{-webkit-user-select:all;-moz-user-select:all;user-select:all;pointer-events:all;opacity:1}" /*__inner_css_end__*/, "1m35e_gg_") /*__reshadow_css_end__*/, {
20
+ "__SPlotA11yModule": "___SPlotA11yModule_1m35e_gg_"
21
21
  });
22
22
  var globalWasFocused = false;
23
23
  var globalNavWithKeyboard = false;
@@ -5,24 +5,21 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.PlotA11yView = void 0;
8
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
10
  var _core = require("@semcore/core");
14
11
  var _react = _interopRequireDefault(require("react"));
15
12
  var _focus = require("./focus");
16
13
  var _hints = require("./hints");
17
- var _serialize = require("./serialize");
18
14
  var _intl = require("./intl");
19
15
  var _summarize = require("./summarize");
20
16
  var _flexBox = require("@semcore/flex-box");
21
17
  var _i18nEnhance = require("@semcore/utils/lib/enhances/i18nEnhance");
22
18
  var _intergalacticDynamicLocales = require("./translations/view/__intergalactic-dynamic-locales");
19
+ var _DataAccessibilityTable = require("./DataAccessibilityTable");
23
20
  /*__reshadow-styles__:"../style/plotA11yView.shadow.css"*/
24
- var styles = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SPlotA11yView_1qed2_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_1qed2_gg_:focus,.___SPlotA11yView_1qed2_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_1qed2_gg_ a{cursor:pointer;-webkit-text-decoration:underline;text-decoration:underline;margin-bottom:var(--intergalactic-spacing-2x, 8px);display:block}.___SPlotA11yView_1qed2_gg_ table,.___SPlotA11yView_1qed2_gg_ td,.___SPlotA11yView_1qed2_gg_ th{border:1px solid var(--intergalactic-border-primary, #c4c7cf)}" /*__inner_css_end__*/, "1qed2_gg_") /*__reshadow_css_end__*/, {
25
- "__SPlotA11yView": "___SPlotA11yView_1qed2_gg_"
21
+ var styles = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SPlotA11yView_1q4lm_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_1q4lm_gg_:focus,.___SPlotA11yView_1q4lm_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_1q4lm_gg_ a{cursor:pointer;-webkit-text-decoration:underline;text-decoration:underline;margin-bottom:var(--intergalactic-spacing-2x, 8px);display:block}.___SPlotA11yView_1q4lm_gg_ table,.___SPlotA11yView_1q4lm_gg_ td,.___SPlotA11yView_1q4lm_gg_ th{border:1px solid var(--intergalactic-border-primary, #c4c7cf)}" /*__inner_css_end__*/, "1q4lm_gg_") /*__reshadow_css_end__*/, {
22
+ "__SPlotA11yView": "___SPlotA11yView_1q4lm_gg_"
26
23
  });
27
24
  var PlotA11yView = function PlotA11yView(_ref3) {
28
25
  var _ref = arguments[0],
@@ -45,66 +42,6 @@ var PlotA11yView = function PlotA11yView(_ref3) {
45
42
  var data = _react["default"].useMemo(function () {
46
43
  return Array.isArray(providedData) ? providedData : [providedData];
47
44
  }, [providedData]);
48
- var keys = _react["default"].useMemo(function () {
49
- var _fromHints, _fromHints2, _fromHints3, _fromHints4, _fromHints5;
50
- var fromHints = [];
51
- (_fromHints = fromHints).push.apply(_fromHints, (0, _toConsumableArray2["default"])(hints.fields.verticalAxes));
52
- (_fromHints2 = fromHints).push.apply(_fromHints2, (0, _toConsumableArray2["default"])(hints.fields.horizontalAxes));
53
- (_fromHints3 = fromHints).push.apply(_fromHints3, (0, _toConsumableArray2["default"])(hints.fields.valueAxes));
54
- (_fromHints4 = fromHints).push.apply(_fromHints4, (0, _toConsumableArray2["default"])(config.additionalFields));
55
- (_fromHints5 = fromHints).push.apply(_fromHints5, (0, _toConsumableArray2["default"])(Object.keys(hints.fields.values)));
56
- fromHints = (0, _toConsumableArray2["default"])(new Set(fromHints)).filter(function (key) {
57
- return key in data[0];
58
- });
59
- if (fromHints.length === 0) {
60
- data.forEach(function (row) {
61
- var _fromHints6;
62
- return (_fromHints6 = fromHints).push.apply(_fromHints6, (0, _toConsumableArray2["default"])(Object.keys(row)));
63
- });
64
- }
65
- return (0, _toConsumableArray2["default"])(new Set(fromHints));
66
- }, [data, hints]);
67
- var duplicatedBaseKeys = _react["default"].useMemo(function () {
68
- var baseKeys = keys.filter(function (key) {
69
- return !hints.titles.valuesAxes[key];
70
- }).map(function (key) {
71
- if (hints.fields.verticalAxes.has(key) && hints.axesTitle.vertical) return [key, hints.axesTitle.vertical];
72
- if (hints.fields.horizontalAxes.has(key) && hints.axesTitle.horizontal) return [key, hints.axesTitle.horizontal];
73
- }).filter(function (entry) {
74
- return entry !== undefined;
75
- }).map(function (entry) {
76
- return entry;
77
- });
78
- var doublicated = {};
79
- var handled = {};
80
- var _iterator = (0, _createForOfIteratorHelper2["default"])(baseKeys),
81
- _step;
82
- try {
83
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
84
- var _step$value = (0, _slicedToArray2["default"])(_step.value, 2),
85
- key = _step$value[0],
86
- label = _step$value[1];
87
- if (handled[label]) {
88
- doublicated[key] = true;
89
- doublicated[handled[label]] = true;
90
- }
91
- handled[label] = key;
92
- }
93
- } catch (err) {
94
- _iterator.e(err);
95
- } finally {
96
- _iterator.f();
97
- }
98
- return doublicated;
99
- }, [keys, hints]);
100
- var renderTitle = _react["default"].useCallback(function (dataKey) {
101
- if (hints.titles.valuesAxes[dataKey]) return hints.titles.valuesAxes[dataKey];
102
- if (!duplicatedBaseKeys[dataKey]) {
103
- if (hints.fields.verticalAxes.has(dataKey) && hints.axesTitle.vertical) return hints.axesTitle.vertical;
104
- if (hints.fields.horizontalAxes.has(dataKey) && hints.axesTitle.horizontal) return hints.axesTitle.horizontal;
105
- }
106
- return dataKey;
107
- }, [data, hints, duplicatedBaseKeys]);
108
45
  var _React$useState = _react["default"].useState(null),
109
46
  _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
110
47
  summary = _React$useState2[0],
@@ -202,30 +139,14 @@ var PlotA11yView = function PlotA11yView(_ref3) {
202
139
  "tabIndex": 0
203
140
  }), generatingSummary ? texts.summaryPlaceholder : summary), /*#__PURE__*/_react["default"].createElement("strong", _ref2.cn("strong", {}), /*#__PURE__*/_react["default"].createElement("label", _ref2.cn("label", {
204
141
  "htmlFor": "".concat(id, "-data-table")
205
- }), texts.table)), /*#__PURE__*/_react["default"].createElement("table", _ref2.cn("table", {
206
- "id": "".concat(id, "-data-table"),
207
- "tabIndex": 0,
208
- "ref": dataTableRef
209
- }), /*#__PURE__*/_react["default"].createElement("thead", _ref2.cn("thead", {}), /*#__PURE__*/_react["default"].createElement("tr", _ref2.cn("tr", {}), keys.map(function (key, index) {
210
- return /*#__PURE__*/_react["default"].createElement("th", {
211
- key: "".concat(key, "-").concat(index)
212
- }, renderTitle(key));
213
- }))), /*#__PURE__*/_react["default"].createElement("tbody", _ref2.cn("tbody", {}), data.map(function (row, index) {
214
- return /*#__PURE__*/_react["default"].createElement("tr", {
215
- key: "".concat(Object.values(row).filter(function (item) {
216
- return (0, _typeof2["default"])(item) !== 'symbol';
217
- }).join('-'), "-").concat(index)
218
- }, keys.map(function (key) {
219
- return (0, _typeof2["default"])(row[key]) !== 'symbol' ? [key, row[key]] : [key, ''];
220
- }).map(function (_ref4, index) {
221
- var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2),
222
- key = _ref5[0],
223
- value = _ref5[1];
224
- return /*#__PURE__*/_react["default"].createElement("td", {
225
- key: "".concat(key, "-").concat(index)
226
- }, (0, _serialize.formatValue)(intl, value));
227
- }));
228
- }))));
142
+ }), texts.table)), /*#__PURE__*/_react["default"].createElement(_DataAccessibilityTable.DataAccessibilityTable, _ref2.cn("DataAccessibilityTable", {
143
+ "id": id,
144
+ "dataTableRef": dataTableRef,
145
+ "data": data,
146
+ "hints": hints,
147
+ "config": config,
148
+ "intl": intl
149
+ })));
229
150
  };
230
151
  exports.PlotA11yView = PlotA11yView;
231
152
  //# sourceMappingURL=PlotA11yView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlotA11yView.js","names":["_core","require","_react","_interopRequireDefault","_focus","_hints","_serialize","_intl","_summarize","_flexBox","_i18nEnhance","_intergalacticDynamicLocales","styles","sstyled","insert","PlotA11yView","_ref3","_ref","arguments[0]","_ref2","id","providedData","data","hints","plotLabel","plotRef","providedConfig","config","locale","SPlotA11yView","Box","translations","useAsyncI18nMessages","localizedMessages","intl","React","useMemo","getIntl","makeDataSummarizationConfig","Array","isArray","keys","_fromHints","_fromHints2","_fromHints3","_fromHints4","_fromHints5","fromHints","push","apply","_toConsumableArray2","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","_createForOfIteratorHelper2","_step","s","n","done","_step$value","_slicedToArray2","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","summarize","handleSkip","_heavyFindNextFocusab","current","heavyFindNextFocusableElement","focus","handleSkipKeyboard","event","preventDefault","handleGoToTable","_dataTableRef$current","dataTableRef","handleGoToTableKeyboard","texts","formatMessage","close","skipPlot","goToTable","summaryPlaceholder","table","useRef","createElement","cn","_objectSpread2","assignProps","concat","index","item","_typeof2","join","_ref4","_ref5","formatValue","exports"],"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.key === 'Enter' || event.key === ' ')) return;\n\n event.preventDefault();\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.key === 'Enter' || event.key === ' ')) return;\n\n event.preventDefault();\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 {/* biome-ignore lint/a11y/useValidAnchor: */}\n <a aria-hidden onClick={handleSkip}>\n {texts.close}\n </a>\n {/* biome-ignore lint/a11y/useValidAnchor: */}\n <a role='link' tabIndex={0} onKeyDown={handleSkipKeyboard} onClick={handleSkip}>\n {texts.skipPlot}\n </a>\n {/* biome-ignore lint/a11y/useValidAnchor: */}\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\n key={`${Object.values(row)\n .filter((item) => typeof item !== 'symbol')\n .join('-')}-${index}`}\n >\n {keys\n .map((key) => (typeof row[key] !== 'symbol' ? [key, row[key]] : [key, '']))\n .map(([key, value], index) => (\n <td key={`${key}-${index}`}>{formatValue(intl, value)}</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":["_core","require","_react","_interopRequireDefault","_focus","_hints","_intl","_summarize","_flexBox","_i18nEnhance","_intergalacticDynamicLocales","_DataAccessibilityTable","styles","sstyled","insert","PlotA11yView","_ref3","_ref","arguments[0]","_ref2","id","providedData","data","hints","plotLabel","plotRef","providedConfig","config","locale","SPlotA11yView","Box","translations","useAsyncI18nMessages","localizedMessages","intl","React","useMemo","getIntl","makeDataSummarizationConfig","Array","isArray","_React$useState","useState","_React$useState2","_slicedToArray2","summary","setSummary","_React$useState3","_React$useState4","generatingSummary","setGeneratingSummary","useEffect","disable","override","setTimeout","summarize","handleSkip","useCallback","_heavyFindNextFocusab","current","heavyFindNextFocusableElement","focus","handleSkipKeyboard","event","key","preventDefault","handleGoToTable","_dataTableRef$current","dataTableRef","handleGoToTableKeyboard","texts","label","formatMessage","close","skipPlot","goToTable","summaryPlaceholder","table","useRef","createElement","cn","_objectSpread2","assignProps","concat","DataAccessibilityTable","exports"],"sources":["../../../src/a11y/PlotA11yView.tsx"],"sourcesContent":["import React from 'react';\nimport { heavyFindNextFocusableElement } from './focus';\nimport { makeDataSummarizationConfig } from './hints';\nimport type { A11yViewProps } from './PlotA11yModule';\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';\nimport { DataAccessibilityTable } from './DataAccessibilityTable';\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\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.key === 'Enter' || event.key === ' ')) return;\n\n event.preventDefault();\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.key === 'Enter' || event.key === ' ')) return;\n\n event.preventDefault();\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 {/* biome-ignore lint/a11y/useValidAnchor: */}\n <a aria-hidden onClick={handleSkip}>\n {texts.close}\n </a>\n {/* biome-ignore lint/a11y/useValidAnchor: */}\n <a role='link' tabIndex={0} onKeyDown={handleSkipKeyboard} onClick={handleSkip}>\n {texts.skipPlot}\n </a>\n {/* biome-ignore lint/a11y/useValidAnchor: */}\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 <DataAccessibilityTable\n id={id}\n dataTableRef={dataTableRef}\n data={data}\n hints={hints}\n config={config}\n intl={intl}\n />\n </SPlotA11yView>,\n ) as React.ReactElement;\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hints.js","names":["_reactToText","_interopRequireDefault","require","makeDataHintsContainer","fields","verticalAxes","Set","horizontalAxes","valueAxes","values","groups","axesTitle","vertical","horizontal","titles","getVerticalAxesTitle","getHorizontalAxesTitle","valuesAxes","getValueAxesTitle","grid","dataType","pointsDensity","exports","makeDataHintsHandlers","mutableContainer","handler","specifyDataRowFields","x","y","value","add","setupGrid","direction","size","establishDataType","describeValueEntity","dataKey","readableName","labelKey","describeGroupedValues","groupKey","axes","label","addKeyLabelGetter","getter","setTitle","describedDataAxes","title","_typeof2","Date","String","reactToText","setPointsDensity","makeDataSummarizationConfig","config","_config$trendTangens","_config$movingAverage","_config$additionalFie","_objectSpread2","clustersGridSize","undefined","maxListSymbols","datesWithTime","clustersLimit","valuesLimit","groupsLimit","disable","override","trendTangens","weak","medium","strong","Infinity","movingAverage","longSize","shortSize","notableDiff","additionalFields","_toConsumableArray2"],"sources":["../../../src/a11y/hints.ts"],"sourcesContent":["import { SerializableDataType } from './insights';\nimport reactToText from '@semcore/utils/lib/reactToText';\n\ntype DeepPartial<T> = T extends object\n ? {\n [P in keyof T]?: DeepPartial<T[P]>;\n }\n : T;\n\nexport type DataStructureHints = {\n fields: {\n verticalAxes: Set<string | number>;\n horizontalAxes: Set<string | number>;\n valueAxes: Set<string | number>;\n values: Set<string | number>;\n };\n groups: Set<string | number>;\n axesTitle: {\n vertical: string | null;\n horizontal: string | null;\n };\n titles: {\n verticalAxes: {\n [dataKey: string | number]: string;\n };\n getVerticalAxesTitle: null | ((dataKey: string | number) => string);\n horizontalAxes: {\n [dataKey: string | number]: string;\n };\n getHorizontalAxesTitle: null | ((dataKey: string | number) => string);\n valuesAxes: {\n [dataKey: string | number]: string;\n };\n getValueAxesTitle: null | ((dataKey: string | number) => string);\n };\n grid: {\n verticalAxes: number | null;\n horizontalAxes: number | null;\n };\n pointsDensity: {\n verticalAxes: number;\n horizontalAxes: number;\n } | null;\n dataType: SerializableDataType | null;\n};\nexport type DataSummarizationConfig = {\n trendTangens: {\n static: number;\n weak: number;\n medium: number;\n strong: number;\n };\n movingAverage: {\n longSize: number | undefined;\n shortSize: number | undefined;\n notableDiff: number | undefined;\n };\n dataType: SerializableDataType | undefined;\n clustersGridSize: number | undefined;\n maxListSymbols: number;\n datesWithTime: boolean | undefined;\n clustersLimit: number;\n valuesLimit: number;\n groupsLimit: number;\n disable: boolean;\n override: string | undefined;\n additionalFields: string[];\n};\nexport type PartialDataSummarizationConfig = DeepPartial<DataSummarizationConfig>;\n\nexport const makeDataHintsContainer = (): DataStructureHints => ({\n fields: {\n verticalAxes: new Set(),\n horizontalAxes: new Set(),\n valueAxes: new Set(),\n values: new Set(),\n },\n groups: new Set(),\n axesTitle: {\n vertical: null,\n horizontal: null,\n },\n titles: {\n verticalAxes: {},\n getVerticalAxesTitle: null,\n horizontalAxes: {},\n getHorizontalAxesTitle: null,\n valuesAxes: {},\n getValueAxesTitle: null,\n },\n grid: {\n verticalAxes: null,\n horizontalAxes: null,\n },\n dataType: null,\n pointsDensity: null,\n});\n\nexport const makeDataHintsHandlers = (mutableContainer: DataStructureHints) => {\n const handler = {\n specifyDataRowFields: (x?: string, y?: string, value?: string) => {\n if (y) mutableContainer.fields.verticalAxes.add(y);\n if (x) mutableContainer.fields.horizontalAxes.add(x);\n if (value) mutableContainer.fields.valueAxes.add(value);\n },\n setupGrid: (direction: 'vertical' | 'horizontal', size: number) => {\n if (direction === 'horizontal') {\n mutableContainer.grid.horizontalAxes = size;\n } else if (direction === 'vertical') {\n mutableContainer.grid.verticalAxes = size;\n }\n },\n establishDataType: (dataType: SerializableDataType) => {\n mutableContainer.dataType = dataType;\n },\n describeValueEntity: (dataKey: string | number, readableName: string) => {\n mutableContainer.fields.values.add(dataKey);\n handler.labelKey('value', dataKey, readableName);\n },\n describeGroupedValues: (groupKey: string | number, dataKey: string | number) => {\n mutableContainer.groups.add(groupKey);\n mutableContainer.fields.values.add(dataKey);\n },\n labelKey: (\n axes: 'vertical' | 'horizontal' | 'value',\n dataKey: string | number,\n label: string,\n ) => {\n if (axes === 'vertical') mutableContainer.titles.verticalAxes[dataKey] = label;\n if (axes === 'horizontal') mutableContainer.titles.horizontalAxes[dataKey] = label;\n if (axes === 'value') mutableContainer.titles.valuesAxes[dataKey] = label;\n },\n addKeyLabelGetter: (\n axes: 'vertical' | 'horizontal' | 'value',\n getter: (dataKey: string | number) => string,\n ) => {\n if (axes === 'vertical') mutableContainer.titles.getVerticalAxesTitle = getter;\n if (axes === 'horizontal') mutableContainer.titles.getHorizontalAxesTitle = getter;\n if (axes === 'value') mutableContainer.titles.getValueAxesTitle = getter;\n },\n setTitle: (describedDataAxes: 'vertical' | 'horizontal', title: string) => {\n if (\n typeof title === 'number' ||\n typeof title === 'bigint' ||\n (typeof title === 'object' && (title as any) instanceof Date)\n ) {\n title = String(title);\n }\n if (typeof title !== 'string') {\n title = reactToText(title);\n }\n if (describedDataAxes === 'horizontal') {\n mutableContainer.axesTitle.horizontal = title;\n } else if (describedDataAxes === 'vertical') {\n mutableContainer.axesTitle.vertical = title;\n }\n },\n setPointsDensity: (horizontalAxes: number, verticalAxes: number) => {\n mutableContainer.pointsDensity = { verticalAxes, horizontalAxes };\n },\n };\n return handler;\n};\n\nexport type DataHintsHandler = ReturnType<typeof makeDataHintsHandlers>;\n\nexport const makeDataSummarizationConfig = (\n config?: PartialDataSummarizationConfig,\n): DataSummarizationConfig => ({\n clustersGridSize: undefined,\n maxListSymbols: 100,\n datesWithTime: undefined,\n clustersLimit: 5,\n valuesLimit: 5,\n groupsLimit: 5,\n dataType: undefined,\n disable: false,\n override: undefined,\n ...(config ?? {}),\n trendTangens: {\n static: 1 / 15,\n weak: 1 / 10,\n medium: 1 / 5,\n strong: Infinity,\n ...(config?.trendTangens ?? {}),\n },\n movingAverage: {\n longSize: undefined,\n shortSize: undefined,\n notableDiff: undefined,\n ...(config?.movingAverage ?? {}),\n },\n additionalFields: [...(config?.additionalFields ?? [])] as string[],\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"hints.js","names":["_reactToText","_interopRequireDefault","require","makeDataHintsContainer","fields","verticalAxes","Set","horizontalAxes","valueAxes","values","groups","axesTitle","vertical","horizontal","titles","getVerticalAxesTitle","getHorizontalAxesTitle","valuesAxes","getValueAxesTitle","grid","dataType","pointsDensity","exports","makeDataHintsHandlers","mutableContainer","handler","specifyDataRowFields","x","y","value","add","setupGrid","direction","size","establishDataType","describeValueEntity","dataKey","readableName","labelKey","describeGroupedValues","groupKey","axes","label","addKeyLabelGetter","getter","setTitle","describedDataAxes","title","_typeof2","Date","String","reactToText","setPointsDensity","makeDataSummarizationConfig","config","_config$trendTangens","_config$movingAverage","_config$additionalFie","_objectSpread2","clustersGridSize","undefined","maxListSymbols","datesWithTime","clustersLimit","valuesLimit","groupsLimit","disable","override","trendTangens","weak","medium","strong","Infinity","movingAverage","longSize","shortSize","notableDiff","additionalFields","_toConsumableArray2"],"sources":["../../../src/a11y/hints.ts"],"sourcesContent":["import { SerializableDataType } from './insights';\nimport reactToText from '@semcore/utils/lib/reactToText';\n\ntype DeepPartial<T> = T extends object\n ? {\n [P in keyof T]?: DeepPartial<T[P]>;\n }\n : T;\n\nexport type DataStructureHints = {\n fields: {\n verticalAxes: Set<string | number>;\n horizontalAxes: Set<string | number>;\n valueAxes: Set<string | number>;\n values: Set<string | number>;\n };\n groups: Set<string | number>;\n axesTitle: {\n vertical: string | null;\n horizontal: string | null;\n };\n titles: {\n verticalAxes: {\n [dataKey: string | number]: string;\n };\n getVerticalAxesTitle: null | ((dataKey: string | number) => string);\n horizontalAxes: {\n [dataKey: string | number]: string;\n };\n getHorizontalAxesTitle: null | ((dataKey: string | number) => string);\n valuesAxes: {\n [dataKey: string | number]: string;\n };\n getValueAxesTitle: null | ((dataKey: string | number) => string);\n };\n grid: {\n verticalAxes: number | null;\n horizontalAxes: number | null;\n };\n pointsDensity: {\n verticalAxes: number;\n horizontalAxes: number;\n } | null;\n dataType: SerializableDataType | null;\n};\nexport type DataSummarizationConfig = {\n trendTangens: {\n static: number;\n weak: number;\n medium: number;\n strong: number;\n };\n movingAverage: {\n longSize: number | undefined;\n shortSize: number | undefined;\n notableDiff: number | undefined;\n };\n dataType: SerializableDataType | undefined;\n clustersGridSize: number | undefined;\n maxListSymbols: number;\n datesWithTime: boolean | undefined;\n clustersLimit: number;\n valuesLimit: number;\n groupsLimit: number;\n disable: boolean;\n override: string | undefined;\n additionalFields: string[];\n titlesFormatter?: (key: string | number | null) => string | undefined;\n valuesFormatter?: (value: unknown, key: string | number | null) => string | undefined;\n};\nexport type PartialDataSummarizationConfig = DeepPartial<\n Omit<DataSummarizationConfig, 'titlesFormatter' | 'valuesFormatter'>\n> & {\n titlesFormatter?: (key: string | number | null) => string | undefined;\n valuesFormatter?: (value: unknown, key: string | number | null) => string | undefined;\n};\n\nexport const makeDataHintsContainer = (): DataStructureHints => ({\n fields: {\n verticalAxes: new Set(),\n horizontalAxes: new Set(),\n valueAxes: new Set(),\n values: new Set(),\n },\n groups: new Set(),\n axesTitle: {\n vertical: null,\n horizontal: null,\n },\n titles: {\n verticalAxes: {},\n getVerticalAxesTitle: null,\n horizontalAxes: {},\n getHorizontalAxesTitle: null,\n valuesAxes: {},\n getValueAxesTitle: null,\n },\n grid: {\n verticalAxes: null,\n horizontalAxes: null,\n },\n dataType: null,\n pointsDensity: null,\n});\n\nexport const makeDataHintsHandlers = (mutableContainer: DataStructureHints) => {\n const handler = {\n specifyDataRowFields: (x?: string, y?: string, value?: string) => {\n if (y) mutableContainer.fields.verticalAxes.add(y);\n if (x) mutableContainer.fields.horizontalAxes.add(x);\n if (value) mutableContainer.fields.valueAxes.add(value);\n },\n setupGrid: (direction: 'vertical' | 'horizontal', size: number) => {\n if (direction === 'horizontal') {\n mutableContainer.grid.horizontalAxes = size;\n } else if (direction === 'vertical') {\n mutableContainer.grid.verticalAxes = size;\n }\n },\n establishDataType: (dataType: SerializableDataType) => {\n mutableContainer.dataType = dataType;\n },\n describeValueEntity: (dataKey: string | number, readableName: string) => {\n mutableContainer.fields.values.add(dataKey);\n handler.labelKey('value', dataKey, readableName);\n },\n describeGroupedValues: (groupKey: string | number, dataKey: string | number) => {\n mutableContainer.groups.add(groupKey);\n mutableContainer.fields.values.add(dataKey);\n },\n labelKey: (\n axes: 'vertical' | 'horizontal' | 'value',\n dataKey: string | number,\n label: string,\n ) => {\n if (axes === 'vertical') mutableContainer.titles.verticalAxes[dataKey] = label;\n if (axes === 'horizontal') mutableContainer.titles.horizontalAxes[dataKey] = label;\n if (axes === 'value') mutableContainer.titles.valuesAxes[dataKey] = label;\n },\n addKeyLabelGetter: (\n axes: 'vertical' | 'horizontal' | 'value',\n getter: (dataKey: string | number) => string,\n ) => {\n if (axes === 'vertical') mutableContainer.titles.getVerticalAxesTitle = getter;\n if (axes === 'horizontal') mutableContainer.titles.getHorizontalAxesTitle = getter;\n if (axes === 'value') mutableContainer.titles.getValueAxesTitle = getter;\n },\n setTitle: (describedDataAxes: 'vertical' | 'horizontal', title: string) => {\n if (\n typeof title === 'number' ||\n typeof title === 'bigint' ||\n (typeof title === 'object' && (title as any) instanceof Date)\n ) {\n title = String(title);\n }\n if (typeof title !== 'string') {\n title = reactToText(title);\n }\n if (describedDataAxes === 'horizontal') {\n mutableContainer.axesTitle.horizontal = title;\n } else if (describedDataAxes === 'vertical') {\n mutableContainer.axesTitle.vertical = title;\n }\n },\n setPointsDensity: (horizontalAxes: number, verticalAxes: number) => {\n mutableContainer.pointsDensity = { verticalAxes, horizontalAxes };\n },\n };\n return handler;\n};\n\nexport type DataHintsHandler = ReturnType<typeof makeDataHintsHandlers>;\n\nexport const makeDataSummarizationConfig = (\n config?: PartialDataSummarizationConfig,\n): DataSummarizationConfig => ({\n clustersGridSize: undefined,\n maxListSymbols: 100,\n datesWithTime: undefined,\n clustersLimit: 5,\n valuesLimit: 5,\n groupsLimit: 5,\n dataType: undefined,\n disable: false,\n override: undefined,\n ...(config ?? {}),\n trendTangens: {\n static: 1 / 15,\n weak: 1 / 10,\n medium: 1 / 5,\n strong: Infinity,\n ...(config?.trendTangens ?? {}),\n },\n movingAverage: {\n longSize: undefined,\n shortSize: undefined,\n notableDiff: undefined,\n ...(config?.movingAverage ?? {}),\n },\n additionalFields: [...(config?.additionalFields ?? [])] as string[],\n});\n"],"mappings":"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"}