@semcore/d3-chart 2.2.7 → 2.3.1

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 (198) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/lib/cjs/Area.js +16 -9
  3. package/lib/cjs/Area.js.map +1 -1
  4. package/lib/cjs/Axis.js +56 -17
  5. package/lib/cjs/Axis.js.map +1 -1
  6. package/lib/cjs/Bar.js +20 -9
  7. package/lib/cjs/Bar.js.map +1 -1
  8. package/lib/cjs/Bubble.js +20 -11
  9. package/lib/cjs/Bubble.js.map +1 -1
  10. package/lib/cjs/ClipPath.js +1 -0
  11. package/lib/cjs/ClipPath.js.map +1 -1
  12. package/lib/cjs/Donut.js +22 -12
  13. package/lib/cjs/Donut.js.map +1 -1
  14. package/lib/cjs/Dots.js +10 -9
  15. package/lib/cjs/Dots.js.map +1 -1
  16. package/lib/cjs/GroupBar.js +12 -8
  17. package/lib/cjs/GroupBar.js.map +1 -1
  18. package/lib/cjs/HorizontalBar.js +20 -9
  19. package/lib/cjs/HorizontalBar.js.map +1 -1
  20. package/lib/cjs/Hover.js +8 -4
  21. package/lib/cjs/Hover.js.map +1 -1
  22. package/lib/cjs/Line.js +15 -9
  23. package/lib/cjs/Line.js.map +1 -1
  24. package/lib/cjs/Plot.js +46 -8
  25. package/lib/cjs/Plot.js.map +1 -1
  26. package/lib/cjs/RadialTree.js +25 -13
  27. package/lib/cjs/RadialTree.js.map +1 -1
  28. package/lib/cjs/ReferenceLine.js +10 -10
  29. package/lib/cjs/ScatterPlot.js +17 -8
  30. package/lib/cjs/ScatterPlot.js.map +1 -1
  31. package/lib/cjs/StackBar.js +12 -8
  32. package/lib/cjs/StackBar.js.map +1 -1
  33. package/lib/cjs/StackedArea.js +8 -7
  34. package/lib/cjs/StackedArea.js.map +1 -1
  35. package/lib/cjs/Tooltip.js +8 -8
  36. package/lib/cjs/Venn.js +25 -9
  37. package/lib/cjs/Venn.js.map +1 -1
  38. package/lib/cjs/a11y/PlotA11yModule.js +197 -0
  39. package/lib/cjs/a11y/PlotA11yModule.js.map +1 -0
  40. package/lib/cjs/a11y/PlotA11yView.js +287 -0
  41. package/lib/cjs/a11y/PlotA11yView.js.map +1 -0
  42. package/lib/cjs/a11y/bezier.js +44 -0
  43. package/lib/cjs/a11y/bezier.js.map +1 -0
  44. package/lib/cjs/a11y/focus.js +57 -0
  45. package/lib/cjs/a11y/focus.js.map +1 -0
  46. package/lib/cjs/a11y/hints.js +141 -0
  47. package/lib/cjs/a11y/hints.js.map +1 -0
  48. package/lib/cjs/a11y/insights.js +785 -0
  49. package/lib/cjs/a11y/insights.js.map +1 -0
  50. package/lib/cjs/a11y/intl.js +31 -0
  51. package/lib/cjs/a11y/intl.js.map +1 -0
  52. package/lib/cjs/a11y/locale.js +52 -0
  53. package/lib/cjs/a11y/locale.js.map +1 -0
  54. package/lib/cjs/a11y/serialize.js +439 -0
  55. package/lib/cjs/a11y/serialize.js.map +1 -0
  56. package/lib/cjs/a11y/summarize.js +21 -0
  57. package/lib/cjs/a11y/summarize.js.map +1 -0
  58. package/lib/cjs/a11y/translations/module/de.json +5 -0
  59. package/lib/cjs/a11y/translations/module/en.json +5 -0
  60. package/lib/cjs/a11y/translations/module/es.json +5 -0
  61. package/lib/cjs/a11y/translations/module/fr.json +5 -0
  62. package/lib/cjs/a11y/translations/module/it.json +5 -0
  63. package/lib/cjs/a11y/translations/module/ja.json +5 -0
  64. package/lib/cjs/a11y/translations/module/ko.json +5 -0
  65. package/lib/cjs/a11y/translations/module/pt.json +5 -0
  66. package/lib/cjs/a11y/translations/module/tr.json +5 -0
  67. package/lib/cjs/a11y/translations/module/translations.js +46 -0
  68. package/lib/cjs/a11y/translations/module/translations.js.map +1 -0
  69. package/lib/cjs/a11y/translations/module/vi.json +5 -0
  70. package/lib/cjs/a11y/translations/module/zh.json +5 -0
  71. package/lib/cjs/a11y/translations/view/de.json +42 -0
  72. package/lib/cjs/a11y/translations/view/en.csv +41 -0
  73. package/lib/cjs/a11y/translations/view/en.json +42 -0
  74. package/lib/cjs/a11y/translations/view/es.json +42 -0
  75. package/lib/cjs/a11y/translations/view/fr.json +42 -0
  76. package/lib/cjs/a11y/translations/view/it.json +42 -0
  77. package/lib/cjs/a11y/translations/view/ja.json +42 -0
  78. package/lib/cjs/a11y/translations/view/ko.json +42 -0
  79. package/lib/cjs/a11y/translations/view/pt.json +42 -0
  80. package/lib/cjs/a11y/translations/view/tr.json +42 -0
  81. package/lib/cjs/a11y/translations/view/translations.js +46 -0
  82. package/lib/cjs/a11y/translations/view/translations.js.map +1 -0
  83. package/lib/cjs/a11y/translations/view/vi.json +42 -0
  84. package/lib/cjs/a11y/translations/view/zh.json +42 -0
  85. package/lib/cjs/createElement.js +3 -1
  86. package/lib/cjs/createElement.js.map +1 -1
  87. package/lib/cjs/style/plot.shadow.css +10 -0
  88. package/lib/cjs/style/plotA11yModule.shadow.css +13 -0
  89. package/lib/cjs/style/plotA11yView.shadow.css +39 -0
  90. package/lib/cjs/types/Plot.d.ts +75 -0
  91. package/lib/cjs/utils.js +9 -1
  92. package/lib/cjs/utils.js.map +1 -1
  93. package/lib/es6/Area.js +16 -9
  94. package/lib/es6/Area.js.map +1 -1
  95. package/lib/es6/Axis.js +56 -17
  96. package/lib/es6/Axis.js.map +1 -1
  97. package/lib/es6/Bar.js +20 -9
  98. package/lib/es6/Bar.js.map +1 -1
  99. package/lib/es6/Bubble.js +20 -11
  100. package/lib/es6/Bubble.js.map +1 -1
  101. package/lib/es6/ClipPath.js +1 -0
  102. package/lib/es6/ClipPath.js.map +1 -1
  103. package/lib/es6/Donut.js +22 -12
  104. package/lib/es6/Donut.js.map +1 -1
  105. package/lib/es6/Dots.js +10 -9
  106. package/lib/es6/Dots.js.map +1 -1
  107. package/lib/es6/GroupBar.js +12 -8
  108. package/lib/es6/GroupBar.js.map +1 -1
  109. package/lib/es6/HorizontalBar.js +20 -9
  110. package/lib/es6/HorizontalBar.js.map +1 -1
  111. package/lib/es6/Hover.js +8 -4
  112. package/lib/es6/Hover.js.map +1 -1
  113. package/lib/es6/Line.js +15 -9
  114. package/lib/es6/Line.js.map +1 -1
  115. package/lib/es6/Plot.js +48 -9
  116. package/lib/es6/Plot.js.map +1 -1
  117. package/lib/es6/RadialTree.js +25 -13
  118. package/lib/es6/RadialTree.js.map +1 -1
  119. package/lib/es6/ReferenceLine.js +10 -10
  120. package/lib/es6/ScatterPlot.js +17 -8
  121. package/lib/es6/ScatterPlot.js.map +1 -1
  122. package/lib/es6/StackBar.js +12 -8
  123. package/lib/es6/StackBar.js.map +1 -1
  124. package/lib/es6/StackedArea.js +8 -7
  125. package/lib/es6/StackedArea.js.map +1 -1
  126. package/lib/es6/Tooltip.js +8 -8
  127. package/lib/es6/Venn.js +25 -9
  128. package/lib/es6/Venn.js.map +1 -1
  129. package/lib/es6/a11y/PlotA11yModule.js +168 -0
  130. package/lib/es6/a11y/PlotA11yModule.js.map +1 -0
  131. package/lib/es6/a11y/PlotA11yView.js +255 -0
  132. package/lib/es6/a11y/PlotA11yView.js.map +1 -0
  133. package/lib/es6/a11y/bezier.js +35 -0
  134. package/lib/es6/a11y/bezier.js.map +1 -0
  135. package/lib/es6/a11y/focus.js +48 -0
  136. package/lib/es6/a11y/focus.js.map +1 -0
  137. package/lib/es6/a11y/hints.js +123 -0
  138. package/lib/es6/a11y/hints.js.map +1 -0
  139. package/lib/es6/a11y/insights.js +779 -0
  140. package/lib/es6/a11y/insights.js.map +1 -0
  141. package/lib/es6/a11y/intl.js +18 -0
  142. package/lib/es6/a11y/intl.js.map +1 -0
  143. package/lib/es6/a11y/locale.js +40 -0
  144. package/lib/es6/a11y/locale.js.map +1 -0
  145. package/lib/es6/a11y/serialize.js +423 -0
  146. package/lib/es6/a11y/serialize.js.map +1 -0
  147. package/lib/es6/a11y/summarize.js +10 -0
  148. package/lib/es6/a11y/summarize.js.map +1 -0
  149. package/lib/es6/a11y/translations/module/de.json +5 -0
  150. package/lib/es6/a11y/translations/module/en.json +5 -0
  151. package/lib/es6/a11y/translations/module/es.json +5 -0
  152. package/lib/es6/a11y/translations/module/fr.json +5 -0
  153. package/lib/es6/a11y/translations/module/it.json +5 -0
  154. package/lib/es6/a11y/translations/module/ja.json +5 -0
  155. package/lib/es6/a11y/translations/module/ko.json +5 -0
  156. package/lib/es6/a11y/translations/module/pt.json +5 -0
  157. package/lib/es6/a11y/translations/module/tr.json +5 -0
  158. package/lib/es6/a11y/translations/module/translations.js +25 -0
  159. package/lib/es6/a11y/translations/module/translations.js.map +1 -0
  160. package/lib/es6/a11y/translations/module/vi.json +5 -0
  161. package/lib/es6/a11y/translations/module/zh.json +5 -0
  162. package/lib/es6/a11y/translations/view/de.json +42 -0
  163. package/lib/es6/a11y/translations/view/en.csv +41 -0
  164. package/lib/es6/a11y/translations/view/en.json +42 -0
  165. package/lib/es6/a11y/translations/view/es.json +42 -0
  166. package/lib/es6/a11y/translations/view/fr.json +42 -0
  167. package/lib/es6/a11y/translations/view/it.json +42 -0
  168. package/lib/es6/a11y/translations/view/ja.json +42 -0
  169. package/lib/es6/a11y/translations/view/ko.json +42 -0
  170. package/lib/es6/a11y/translations/view/pt.json +42 -0
  171. package/lib/es6/a11y/translations/view/tr.json +42 -0
  172. package/lib/es6/a11y/translations/view/translations.js +25 -0
  173. package/lib/es6/a11y/translations/view/translations.js.map +1 -0
  174. package/lib/es6/a11y/translations/view/vi.json +42 -0
  175. package/lib/es6/a11y/translations/view/zh.json +42 -0
  176. package/lib/es6/createElement.js +3 -1
  177. package/lib/es6/createElement.js.map +1 -1
  178. package/lib/es6/style/plot.shadow.css +10 -0
  179. package/lib/es6/style/plotA11yModule.shadow.css +13 -0
  180. package/lib/es6/style/plotA11yView.shadow.css +39 -0
  181. package/lib/es6/types/Plot.d.ts +75 -0
  182. package/lib/es6/utils.js +5 -0
  183. package/lib/es6/utils.js.map +1 -1
  184. package/lib/types/Plot.d.ts +75 -0
  185. package/lib/types/a11y/PlotA11yModule.d.ts +12 -0
  186. package/lib/types/a11y/PlotA11yView.d.ts +3 -0
  187. package/lib/types/a11y/bezier.d.ts +8 -0
  188. package/lib/types/a11y/focus.d.ts +5 -0
  189. package/lib/types/a11y/hints.d.ts +78 -0
  190. package/lib/types/a11y/insights.d.ts +54 -0
  191. package/lib/types/a11y/intl.d.ts +8 -0
  192. package/lib/types/a11y/locale.d.ts +3 -0
  193. package/lib/types/a11y/serialize.d.ts +16 -0
  194. package/lib/types/a11y/summarize.d.ts +2 -0
  195. package/lib/types/a11y/translations/module/translations.d.ts +5 -0
  196. package/lib/types/a11y/translations/view/translations.d.ts +5 -0
  197. package/lib/types/utils.d.ts +5 -4
  198. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlotA11yView.js","names":["PlotA11yView","id","providedData","data","hints","plotLabel","plotRef","providedConfig","config","locale","SPlotA11yView","Box","intl","React","useMemo","getIntl","makeDataSummarizationConfig","Array","isArray","keys","fromHints","push","fields","verticalAxes","horizontalAxes","valueAxes","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","summarize","handleSkip","current","heavyFindNextFocusableElement","focus","handleSkipKeyboard","event","code","handleGoToTable","dataTableRef","handleGoToTableKeyboard","texts","formatMessage","close","skipPlot","goToTable","summaryPlaceholder","table","useRef","sstyled","styles","index","join","formatValue"],"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';\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 intl = React.useMemo(() => getIntl(locale), [locale]);\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(...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));\n setGeneratingSummary(false);\n }, 0);\n }, [providedData, hints, config, locale]);\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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"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.makeBezier = void 0;
7
+
8
+ var makeBezier = function makeBezier(points, bounds) {
9
+ var yPoints = points.map(function (point) {
10
+ return point.y;
11
+ });
12
+ var noPoints = points.map(function () {
13
+ return 1;
14
+ });
15
+ var weightPoints = points.map(function (point) {
16
+ var _point$weight;
17
+
18
+ return (_point$weight = point.weight) !== null && _point$weight !== void 0 ? _point$weight : 1;
19
+ });
20
+
21
+ var process = function process(t, points) {
22
+ var result = 0;
23
+
24
+ for (var i = 0; i < points.length; i++) {
25
+ var tPower = i;
26
+ var reversedTPower = points.length - 1 - i;
27
+ var edge = i === 0 || i === points.length - 1;
28
+ var factor = edge ? 1 : points.length - 1;
29
+ var point = points[i];
30
+ var weight = weightPoints[i];
31
+ result += factor * Math.pow(t, tPower) * Math.pow(1 - t, reversedTPower) * point * weight;
32
+ }
33
+
34
+ return result;
35
+ };
36
+
37
+ return function (x) {
38
+ var t = x / bounds.width;
39
+ return process(t, yPoints) / process(t, noPoints);
40
+ };
41
+ };
42
+
43
+ exports.makeBezier = makeBezier;
44
+ //# sourceMappingURL=bezier.js.map
@@ -0,0 +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":";;;;;;;AAAO,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"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.heavyFindNextFocusableElement = void 0;
7
+
8
+ var isFocusable = function isFocusable(element) {
9
+ var tabIndex = element.getAttribute('tabindex');
10
+
11
+ if (tabIndex) {
12
+ var tabIndexValue = parseInt(tabIndex, 10);
13
+ if (!isNaN(tabIndexValue) && tabIndexValue >= 0) return element;
14
+ }
15
+
16
+ var tagName = element.tagName;
17
+ if ('INPUT' === tagName) return !element.getAttribute('disabled');
18
+ if ('A' === tagName || 'AREA' === tagName) return element.hasAttribute('href');
19
+ if ('BODY' === tagName || 'IFRAME' === tagName) return true;
20
+ }; // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope
21
+
22
+
23
+ var heavyFindNextFocusableElement = function heavyFindNextFocusableElement(base) {
24
+ var trace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Map();
25
+ trace.set(base, true);
26
+ var sibling = base.nextElementSibling;
27
+
28
+ if (sibling) {
29
+ trace.set(sibling, true);
30
+
31
+ for (var i = 0; i < sibling.children.length; i++) {
32
+ var child = sibling.children.item(i);
33
+ if (!child) continue;
34
+ if (trace.has(child)) continue;
35
+ if (isFocusable(child)) return child;
36
+ var childInnerResult = heavyFindNextFocusableElement(child, trace);
37
+ if (childInnerResult) return childInnerResult;
38
+ }
39
+
40
+ while (sibling) {
41
+ if (isFocusable(sibling)) return sibling;
42
+
43
+ if (!trace.has(sibling)) {
44
+ var siblingInnerResult = heavyFindNextFocusableElement(sibling, trace);
45
+ if (siblingInnerResult) return siblingInnerResult;
46
+ }
47
+
48
+ sibling = sibling.nextElementSibling;
49
+ }
50
+ }
51
+
52
+ if (!base.parentElement || trace.has(base.parentElement)) return null;
53
+ return heavyFindNextFocusableElement(base.parentElement, trace);
54
+ };
55
+
56
+ exports.heavyFindNextFocusableElement = heavyFindNextFocusableElement;
57
+ //# sourceMappingURL=focus.js.map
@@ -0,0 +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;;;AAGO,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"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.makeDataSummarizationConfig = exports.makeDataHintsHandlers = exports.makeDataHintsContainer = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
+
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
+
18
+ var makeDataHintsContainer = function makeDataHintsContainer() {
19
+ return {
20
+ fields: {
21
+ verticalAxes: new Set(),
22
+ horizontalAxes: new Set(),
23
+ valueAxes: new Set(),
24
+ values: new Set()
25
+ },
26
+ groups: new Set(),
27
+ axesTitle: {
28
+ vertical: null,
29
+ horizontal: null
30
+ },
31
+ titles: {
32
+ verticalAxes: {},
33
+ getVerticalAxesTitle: null,
34
+ horizontalAxes: {},
35
+ getHorizontalAxesTitle: null,
36
+ valuesAxes: {},
37
+ getValueAxesTitle: null
38
+ },
39
+ grid: {
40
+ verticalAxes: null,
41
+ horizontalAxes: null
42
+ },
43
+ dataType: null,
44
+ pointsDensity: null
45
+ };
46
+ };
47
+
48
+ exports.makeDataHintsContainer = makeDataHintsContainer;
49
+
50
+ var makeDataHintsHandlers = function makeDataHintsHandlers(mutableContainer) {
51
+ var handler = {
52
+ specifyDataRowFields: function specifyDataRowFields(x, y, value) {
53
+ if (y) mutableContainer.fields.verticalAxes.add(y);
54
+ if (x) mutableContainer.fields.horizontalAxes.add(x);
55
+ if (value) mutableContainer.fields.valueAxes.add(value);
56
+ },
57
+ setupGrid: function setupGrid(direction, size) {
58
+ if (direction === 'horizontal') {
59
+ mutableContainer.grid.horizontalAxes = size;
60
+ } else if (direction === 'vertical') {
61
+ mutableContainer.grid.verticalAxes = size;
62
+ }
63
+ },
64
+ establishDataType: function establishDataType(dataType) {
65
+ mutableContainer.dataType = dataType;
66
+ },
67
+ describeValueEntity: function describeValueEntity(dataKey, readableName) {
68
+ mutableContainer.fields.values.add(dataKey);
69
+ handler.labelKey('value', dataKey, readableName);
70
+ },
71
+ describeGroupedValues: function describeGroupedValues(groupKey, dataKey) {
72
+ mutableContainer.groups.add(groupKey);
73
+ mutableContainer.fields.values.add(dataKey);
74
+ },
75
+ labelKey: function labelKey(axes, dataKey, label) {
76
+ if (axes === 'vertical') mutableContainer.titles.verticalAxes[dataKey] = label;
77
+ if (axes === 'horizontal') mutableContainer.titles.horizontalAxes[dataKey] = label;
78
+ if (axes === 'value') mutableContainer.titles.valuesAxes[dataKey] = label;
79
+ },
80
+ addKeyLabelGetter: function addKeyLabelGetter(axes, getter) {
81
+ if (axes === 'vertical') mutableContainer.titles.getVerticalAxesTitle = getter;
82
+ if (axes === 'horizontal') mutableContainer.titles.getHorizontalAxesTitle = getter;
83
+ if (axes === 'value') mutableContainer.titles.getValueAxesTitle = getter;
84
+ },
85
+ setTitle: function setTitle(describedDataAxes, title) {
86
+ if (typeof title === 'number' || typeof title === 'bigint' || (0, _typeof2["default"])(title) === 'object' && title instanceof Date) {
87
+ title = String(title);
88
+ }
89
+
90
+ if (typeof title !== 'string') {
91
+ return;
92
+ }
93
+
94
+ if (describedDataAxes === 'horizontal') {
95
+ mutableContainer.axesTitle.horizontal = title;
96
+ } else if (describedDataAxes === 'vertical') {
97
+ mutableContainer.axesTitle.vertical = title;
98
+ }
99
+ },
100
+ setPointsDensity: function setPointsDensity(horizontalAxes, verticalAxes) {
101
+ mutableContainer.pointsDensity = {
102
+ verticalAxes: verticalAxes,
103
+ horizontalAxes: horizontalAxes
104
+ };
105
+ }
106
+ };
107
+ return handler;
108
+ };
109
+
110
+ exports.makeDataHintsHandlers = makeDataHintsHandlers;
111
+
112
+ var makeDataSummarizationConfig = function makeDataSummarizationConfig(config) {
113
+ var _config$trendTangens, _config$movingAverage;
114
+
115
+ return _objectSpread(_objectSpread({
116
+ clustersGridSize: undefined,
117
+ maxListSymbols: 100,
118
+ datesWithTime: undefined,
119
+ clustersLimit: 5,
120
+ valuesLimit: 5,
121
+ groupsLimit: 5,
122
+ dataType: undefined,
123
+ disable: false,
124
+ override: undefined
125
+ }, config !== null && config !== void 0 ? config : {}), {}, {
126
+ trendTangens: _objectSpread({
127
+ "static": 1 / 15,
128
+ weak: 1 / 10,
129
+ medium: 1 / 5,
130
+ strong: Infinity
131
+ }, (_config$trendTangens = config === null || config === void 0 ? void 0 : config.trendTangens) !== null && _config$trendTangens !== void 0 ? _config$trendTangens : {}),
132
+ movingAverage: _objectSpread({
133
+ longSize: undefined,
134
+ shortSize: undefined,
135
+ notableDiff: undefined
136
+ }, (_config$movingAverage = config === null || config === void 0 ? void 0 : config.movingAverage) !== null && _config$movingAverage !== void 0 ? _config$movingAverage : {})
137
+ });
138
+ };
139
+
140
+ exports.makeDataSummarizationConfig = makeDataSummarizationConfig;
141
+ //# sourceMappingURL=hints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hints.js","names":["makeDataHintsContainer","fields","verticalAxes","Set","horizontalAxes","valueAxes","values","groups","axesTitle","vertical","horizontal","titles","getVerticalAxesTitle","getHorizontalAxesTitle","valuesAxes","getValueAxesTitle","grid","dataType","pointsDensity","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","Date","String","setPointsDensity","makeDataSummarizationConfig","config","clustersGridSize","undefined","maxListSymbols","datesWithTime","clustersLimit","valuesLimit","groupsLimit","disable","override","trendTangens","weak","medium","strong","Infinity","movingAverage","longSize","shortSize","notableDiff"],"sources":["../../../src/a11y/hints.ts"],"sourcesContent":["import { SerializableDataType } from './insights';\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};\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 return;\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});\n"],"mappings":"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"}