@semcore/d3-chart 2.2.4 → 2.3.0-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.
- package/CHANGELOG.md +6 -0
- package/lib/cjs/Area.js +16 -9
- package/lib/cjs/Area.js.map +1 -1
- package/lib/cjs/Axis.js +56 -17
- package/lib/cjs/Axis.js.map +1 -1
- package/lib/cjs/Bar.js +20 -9
- package/lib/cjs/Bar.js.map +1 -1
- package/lib/cjs/Bubble.js +20 -11
- package/lib/cjs/Bubble.js.map +1 -1
- package/lib/cjs/ClipPath.js +1 -0
- package/lib/cjs/ClipPath.js.map +1 -1
- package/lib/cjs/Donut.js +22 -12
- package/lib/cjs/Donut.js.map +1 -1
- package/lib/cjs/Dots.js +10 -9
- package/lib/cjs/Dots.js.map +1 -1
- package/lib/cjs/GroupBar.js +12 -8
- package/lib/cjs/GroupBar.js.map +1 -1
- package/lib/cjs/HorizontalBar.js +20 -9
- package/lib/cjs/HorizontalBar.js.map +1 -1
- package/lib/cjs/Hover.js +8 -4
- package/lib/cjs/Hover.js.map +1 -1
- package/lib/cjs/Line.js +15 -9
- package/lib/cjs/Line.js.map +1 -1
- package/lib/cjs/Plot.js +46 -8
- package/lib/cjs/Plot.js.map +1 -1
- package/lib/cjs/RadialTree.js +25 -13
- package/lib/cjs/RadialTree.js.map +1 -1
- package/lib/cjs/ReferenceLine.js +10 -10
- package/lib/cjs/ScatterPlot.js +17 -8
- package/lib/cjs/ScatterPlot.js.map +1 -1
- package/lib/cjs/StackBar.js +12 -8
- package/lib/cjs/StackBar.js.map +1 -1
- package/lib/cjs/StackedArea.js +8 -7
- package/lib/cjs/StackedArea.js.map +1 -1
- package/lib/cjs/Tooltip.js +8 -8
- package/lib/cjs/Venn.js +25 -9
- package/lib/cjs/Venn.js.map +1 -1
- package/lib/cjs/a11y/PlotA11yModule.js +185 -0
- package/lib/cjs/a11y/PlotA11yModule.js.map +1 -0
- package/lib/cjs/a11y/PlotA11yView.js +285 -0
- package/lib/cjs/a11y/PlotA11yView.js.map +1 -0
- package/lib/cjs/a11y/bezier.js +44 -0
- package/lib/cjs/a11y/bezier.js.map +1 -0
- package/lib/cjs/a11y/datasets/charts-a11y.js +591 -0
- package/lib/cjs/a11y/datasets/charts-a11y.js.map +1 -0
- package/lib/cjs/a11y/datasets/gold.json +7961 -0
- package/lib/cjs/a11y/datasets/imdb.json +10002 -0
- package/lib/cjs/a11y/datasets/readme.md +5 -0
- package/lib/cjs/a11y/datasets/stores.json +6274 -0
- package/lib/cjs/a11y/datasets/titanic.json +5436 -0
- package/lib/cjs/a11y/focus.js +57 -0
- package/lib/cjs/a11y/focus.js.map +1 -0
- package/lib/cjs/a11y/hints.js +141 -0
- package/lib/cjs/a11y/hints.js.map +1 -0
- package/lib/cjs/a11y/insights.js +785 -0
- package/lib/cjs/a11y/insights.js.map +1 -0
- package/lib/cjs/a11y/intl.js +31 -0
- package/lib/cjs/a11y/intl.js.map +1 -0
- package/lib/cjs/a11y/locale.js +48 -0
- package/lib/cjs/a11y/locale.js.map +1 -0
- package/lib/cjs/a11y/serialize.js +439 -0
- package/lib/cjs/a11y/serialize.js.map +1 -0
- package/lib/cjs/a11y/summarize.js +21 -0
- package/lib/cjs/a11y/summarize.js.map +1 -0
- package/lib/cjs/a11y/translations/module/de.json +5 -0
- package/lib/cjs/a11y/translations/module/en.json +5 -0
- package/lib/cjs/a11y/translations/module/es.json +5 -0
- package/lib/cjs/a11y/translations/module/fr.json +5 -0
- package/lib/cjs/a11y/translations/module/it.json +5 -0
- package/lib/cjs/a11y/translations/module/ja.json +5 -0
- package/lib/cjs/a11y/translations/module/ko.json +5 -0
- package/lib/cjs/a11y/translations/module/pt.json +5 -0
- package/lib/cjs/a11y/translations/module/tr.json +5 -0
- package/lib/cjs/a11y/translations/module/translations.js +46 -0
- package/lib/cjs/a11y/translations/module/translations.js.map +1 -0
- package/lib/cjs/a11y/translations/module/vi.json +5 -0
- package/lib/cjs/a11y/translations/module/zh.json +5 -0
- package/lib/cjs/a11y/translations/view/de.json +42 -0
- package/lib/cjs/a11y/translations/view/en.csv +41 -0
- package/lib/cjs/a11y/translations/view/en.json +42 -0
- package/lib/cjs/a11y/translations/view/es.json +42 -0
- package/lib/cjs/a11y/translations/view/fr.json +42 -0
- package/lib/cjs/a11y/translations/view/it.json +42 -0
- package/lib/cjs/a11y/translations/view/ja.json +42 -0
- package/lib/cjs/a11y/translations/view/ko.json +42 -0
- package/lib/cjs/a11y/translations/view/pt.json +42 -0
- package/lib/cjs/a11y/translations/view/tr.json +42 -0
- package/lib/cjs/a11y/translations/view/translations.js +46 -0
- package/lib/cjs/a11y/translations/view/translations.js.map +1 -0
- package/lib/cjs/a11y/translations/view/vi.json +42 -0
- package/lib/cjs/a11y/translations/view/zh.json +42 -0
- package/lib/cjs/createElement.js +3 -1
- package/lib/cjs/createElement.js.map +1 -1
- package/lib/cjs/style/plot.shadow.css +10 -0
- package/lib/cjs/style/plotA11yModule.shadow.css +13 -0
- package/lib/cjs/style/plotA11yView.shadow.css +39 -0
- package/lib/cjs/types/Plot.d.ts +75 -0
- package/lib/cjs/utils.js +9 -1
- package/lib/cjs/utils.js.map +1 -1
- package/lib/es6/Area.js +16 -9
- package/lib/es6/Area.js.map +1 -1
- package/lib/es6/Axis.js +56 -17
- package/lib/es6/Axis.js.map +1 -1
- package/lib/es6/Bar.js +20 -9
- package/lib/es6/Bar.js.map +1 -1
- package/lib/es6/Bubble.js +20 -11
- package/lib/es6/Bubble.js.map +1 -1
- package/lib/es6/ClipPath.js +1 -0
- package/lib/es6/ClipPath.js.map +1 -1
- package/lib/es6/Donut.js +22 -12
- package/lib/es6/Donut.js.map +1 -1
- package/lib/es6/Dots.js +10 -9
- package/lib/es6/Dots.js.map +1 -1
- package/lib/es6/GroupBar.js +12 -8
- package/lib/es6/GroupBar.js.map +1 -1
- package/lib/es6/HorizontalBar.js +20 -9
- package/lib/es6/HorizontalBar.js.map +1 -1
- package/lib/es6/Hover.js +8 -4
- package/lib/es6/Hover.js.map +1 -1
- package/lib/es6/Line.js +15 -9
- package/lib/es6/Line.js.map +1 -1
- package/lib/es6/Plot.js +48 -9
- package/lib/es6/Plot.js.map +1 -1
- package/lib/es6/RadialTree.js +25 -13
- package/lib/es6/RadialTree.js.map +1 -1
- package/lib/es6/ReferenceLine.js +10 -10
- package/lib/es6/ScatterPlot.js +17 -8
- package/lib/es6/ScatterPlot.js.map +1 -1
- package/lib/es6/StackBar.js +12 -8
- package/lib/es6/StackBar.js.map +1 -1
- package/lib/es6/StackedArea.js +8 -7
- package/lib/es6/StackedArea.js.map +1 -1
- package/lib/es6/Tooltip.js +8 -8
- package/lib/es6/Venn.js +25 -9
- package/lib/es6/Venn.js.map +1 -1
- package/lib/es6/a11y/PlotA11yModule.js +160 -0
- package/lib/es6/a11y/PlotA11yModule.js.map +1 -0
- package/lib/es6/a11y/PlotA11yView.js +254 -0
- package/lib/es6/a11y/PlotA11yView.js.map +1 -0
- package/lib/es6/a11y/bezier.js +35 -0
- package/lib/es6/a11y/bezier.js.map +1 -0
- package/lib/es6/a11y/datasets/charts-a11y.js +590 -0
- package/lib/es6/a11y/datasets/charts-a11y.js.map +1 -0
- package/lib/es6/a11y/datasets/gold.json +7961 -0
- package/lib/es6/a11y/datasets/imdb.json +10002 -0
- package/lib/es6/a11y/datasets/readme.md +5 -0
- package/lib/es6/a11y/datasets/stores.json +6274 -0
- package/lib/es6/a11y/datasets/titanic.json +5436 -0
- package/lib/es6/a11y/focus.js +48 -0
- package/lib/es6/a11y/focus.js.map +1 -0
- package/lib/es6/a11y/hints.js +123 -0
- package/lib/es6/a11y/hints.js.map +1 -0
- package/lib/es6/a11y/insights.js +779 -0
- package/lib/es6/a11y/insights.js.map +1 -0
- package/lib/es6/a11y/intl.js +18 -0
- package/lib/es6/a11y/intl.js.map +1 -0
- package/lib/es6/a11y/locale.js +36 -0
- package/lib/es6/a11y/locale.js.map +1 -0
- package/lib/es6/a11y/serialize.js +423 -0
- package/lib/es6/a11y/serialize.js.map +1 -0
- package/lib/es6/a11y/summarize.js +10 -0
- package/lib/es6/a11y/summarize.js.map +1 -0
- package/lib/es6/a11y/translations/module/de.json +5 -0
- package/lib/es6/a11y/translations/module/en.json +5 -0
- package/lib/es6/a11y/translations/module/es.json +5 -0
- package/lib/es6/a11y/translations/module/fr.json +5 -0
- package/lib/es6/a11y/translations/module/it.json +5 -0
- package/lib/es6/a11y/translations/module/ja.json +5 -0
- package/lib/es6/a11y/translations/module/ko.json +5 -0
- package/lib/es6/a11y/translations/module/pt.json +5 -0
- package/lib/es6/a11y/translations/module/tr.json +5 -0
- package/lib/es6/a11y/translations/module/translations.js +25 -0
- package/lib/es6/a11y/translations/module/translations.js.map +1 -0
- package/lib/es6/a11y/translations/module/vi.json +5 -0
- package/lib/es6/a11y/translations/module/zh.json +5 -0
- package/lib/es6/a11y/translations/view/de.json +42 -0
- package/lib/es6/a11y/translations/view/en.csv +41 -0
- package/lib/es6/a11y/translations/view/en.json +42 -0
- package/lib/es6/a11y/translations/view/es.json +42 -0
- package/lib/es6/a11y/translations/view/fr.json +42 -0
- package/lib/es6/a11y/translations/view/it.json +42 -0
- package/lib/es6/a11y/translations/view/ja.json +42 -0
- package/lib/es6/a11y/translations/view/ko.json +42 -0
- package/lib/es6/a11y/translations/view/pt.json +42 -0
- package/lib/es6/a11y/translations/view/tr.json +42 -0
- package/lib/es6/a11y/translations/view/translations.js +25 -0
- package/lib/es6/a11y/translations/view/translations.js.map +1 -0
- package/lib/es6/a11y/translations/view/vi.json +42 -0
- package/lib/es6/a11y/translations/view/zh.json +42 -0
- package/lib/es6/createElement.js +3 -1
- package/lib/es6/createElement.js.map +1 -1
- package/lib/es6/style/plot.shadow.css +10 -0
- package/lib/es6/style/plotA11yModule.shadow.css +13 -0
- package/lib/es6/style/plotA11yView.shadow.css +39 -0
- package/lib/es6/types/Plot.d.ts +75 -0
- package/lib/es6/utils.js +5 -0
- package/lib/es6/utils.js.map +1 -1
- package/lib/types/Plot.d.ts +75 -0
- package/lib/types/a11y/PlotA11yModule.d.ts +12 -0
- package/lib/types/a11y/PlotA11yView.d.ts +3 -0
- package/lib/types/a11y/bezier.d.ts +8 -0
- package/lib/types/a11y/datasets/charts-a11y.d.ts +0 -0
- package/lib/types/a11y/focus.d.ts +5 -0
- package/lib/types/a11y/hints.d.ts +99 -0
- package/lib/types/a11y/insights.d.ts +54 -0
- package/lib/types/a11y/intl.d.ts +8 -0
- package/lib/types/a11y/locale.d.ts +3 -0
- package/lib/types/a11y/serialize.d.ts +16 -0
- package/lib/types/a11y/summarize.d.ts +2 -0
- package/lib/types/a11y/translations/module/translations.d.ts +5 -0
- package/lib/types/a11y/translations/view/translations.d.ts +5 -0
- package/lib/types/utils.d.ts +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"chart-summary": "Grafik, {entities}/{label} temsil ediyor: {entitiesList}.",
|
|
3
|
+
"chart-summary-no-label": "Grafik, {entities} temsil ediyor: {entitiesList}.",
|
|
4
|
+
"entity-type-time-series": "{count} zaman serisi",
|
|
5
|
+
"entity-type-clusters-single-size": "{size} boyutunda {count} {count, plural, one {küme} other {küme}}",
|
|
6
|
+
"entity-type-clusters-multiple-size": "{minSize} ila {maxSize} boyutlarında {count} {count, plural, one {küme} other {küme}}",
|
|
7
|
+
"entity-type-clusters-label-anonymous": "{x} {xLabel} ve {y} {yLabel} fiyatı kesişimi civarında {relativeSize} {size} boyutuna sahip küme",
|
|
8
|
+
"entity-type-clusters-label": "{x} {xLabel} ve {y} {yLabel} fiyatı kesişimi civarında {relativeSize} {size} boyutuna sahip {labels} küme",
|
|
9
|
+
"entity-type-values": "{count} {count, plural, one {değerinde} other {değerinde}}",
|
|
10
|
+
"entity-type-grouped-values-single-size": "{groupsCount} {groupsCount, plural, one {grup, her biri} other {grup, her biri}} {valuesCount} {valuesCount, plural, one {değerli} other {değerli}}",
|
|
11
|
+
"entity-type-grouped-values-multiple-size": "{groupsCount} {groupsCount, plural, one {grup, her biri} other {grup, her biri}} {minValuesCount} ila {maxValuesCount} değerlerinde",
|
|
12
|
+
"value-labeled": "{value} değerinde {label}",
|
|
13
|
+
"values-group": "Grup {label} {values} içerir",
|
|
14
|
+
"additional-axe": "{label} {from} ila {to} arasında temsil edilir",
|
|
15
|
+
"additional-axe-no-label": "{from} ila {to} arasındaki veriler temsil edilir",
|
|
16
|
+
"time-series-detailed-trend": "{general}, aynı zamanda {locals}",
|
|
17
|
+
"time-series-general-trend": "{dataKey} {trend} {from} ila {to}",
|
|
18
|
+
"time-series-local-trend": "{trend} {from} ila {to}",
|
|
19
|
+
"trend-strong-reduction": "güçlü azalma var",
|
|
20
|
+
"trend-reduction": "reddedilen",
|
|
21
|
+
"trend-weak-reduction": "hafif azalma var",
|
|
22
|
+
"trend-static": "tüm dönemlerde aynı",
|
|
23
|
+
"trend-weak-growth": "hafif büyüme var",
|
|
24
|
+
"trend-growth": "büyüyen",
|
|
25
|
+
"trend-strong-growth": "güçlü büyüme var",
|
|
26
|
+
"relative-size-significantly-smaller": "önemli ölçüde küçük",
|
|
27
|
+
"relative-size-smaller": "küçük",
|
|
28
|
+
"relative-size-slightly-smaller": "biraz küçük",
|
|
29
|
+
"relative-size-average": "ortalama",
|
|
30
|
+
"relative-size-slightly-bigger": "biraz büyük",
|
|
31
|
+
"relative-size-bigger": "büyük",
|
|
32
|
+
"relative-size-significantly-bigger": "önemli ölçüde büyük",
|
|
33
|
+
"ellipsis": "{leftCount} daha fazla",
|
|
34
|
+
"view-default-plot-label": "Grafik",
|
|
35
|
+
"view-label": "{plotLabel} verileri",
|
|
36
|
+
"view-close": "Kapat",
|
|
37
|
+
"view-skip-plot": "Çizimden sonra içeriğe geç",
|
|
38
|
+
"view-go-to-table": "Veri tablosu çizmeye geç",
|
|
39
|
+
"view-data-summary": "Veri özeti",
|
|
40
|
+
"view-summary-placeholder": "Grafik veri özeti oluşturuluyor",
|
|
41
|
+
"view-table": "Veri tablosu"
|
|
42
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import de from './de.json';
|
|
2
|
+
import en from './en.json';
|
|
3
|
+
import es from './es.json';
|
|
4
|
+
import fr from './fr.json';
|
|
5
|
+
import it from './it.json';
|
|
6
|
+
import ja from './ja.json';
|
|
7
|
+
import ko from './ko.json';
|
|
8
|
+
import pt from './pt.json';
|
|
9
|
+
import tr from './tr.json';
|
|
10
|
+
import vi from './vi.json';
|
|
11
|
+
import zh from './zh.json';
|
|
12
|
+
export var translations = {
|
|
13
|
+
de: de,
|
|
14
|
+
en: en,
|
|
15
|
+
es: es,
|
|
16
|
+
fr: fr,
|
|
17
|
+
it: it,
|
|
18
|
+
ja: ja,
|
|
19
|
+
ko: ko,
|
|
20
|
+
pt: pt,
|
|
21
|
+
tr: tr,
|
|
22
|
+
vi: vi,
|
|
23
|
+
zh: zh
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=translations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translations.js","names":["de","en","es","fr","it","ja","ko","pt","tr","vi","zh","translations"],"sources":["../../../../../src/a11y/translations/view/translations.ts"],"sourcesContent":["import de from './de.json';\nimport en from './en.json';\nimport es from './es.json';\nimport fr from './fr.json';\nimport it from './it.json';\nimport ja from './ja.json';\nimport ko from './ko.json';\nimport pt from './pt.json';\nimport tr from './tr.json';\nimport vi from './vi.json';\nimport zh from './zh.json';\n\nexport const translations = {\n de,\n en,\n es,\n fr,\n it,\n ja,\n ko,\n pt,\n tr,\n vi,\n zh,\n} as { [locale: string]: { [message: string]: string } };\n"],"mappings":"AAAA,OAAOA,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AACA,OAAOC,EAAP,MAAe,WAAf;AAEA,OAAO,IAAMC,YAAY,GAAG;EAC1BX,EAAE,EAAFA,EAD0B;EAE1BC,EAAE,EAAFA,EAF0B;EAG1BC,EAAE,EAAFA,EAH0B;EAI1BC,EAAE,EAAFA,EAJ0B;EAK1BC,EAAE,EAAFA,EAL0B;EAM1BC,EAAE,EAAFA,EAN0B;EAO1BC,EAAE,EAAFA,EAP0B;EAQ1BC,EAAE,EAAFA,EAR0B;EAS1BC,EAAE,EAAFA,EAT0B;EAU1BC,EAAE,EAAFA,EAV0B;EAW1BC,EAAE,EAAFA;AAX0B,CAArB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"chart-summary": "Biểu đồ đại diện {entities} của {label}: {entitiesList}.",
|
|
3
|
+
"chart-summary-no-label": "Biểu đồ đại diện {entities}: {entitiesList}.",
|
|
4
|
+
"entity-type-time-series": "{count} chuỗi thời gian",
|
|
5
|
+
"entity-type-clusters-single-size": "{count} {count, plural, other {cụm}} size {size}",
|
|
6
|
+
"entity-type-clusters-multiple-size": "{count} {count, plural, other {cụm}} size từ {minSize} tới {maxSize}",
|
|
7
|
+
"entity-type-clusters-label-anonymous": "{relativeSize} Cụm size {size} xung quanh {yLabel} của {x} {xLabel} và {y}",
|
|
8
|
+
"entity-type-clusters-label": "{relativeSize} cụm {labels} size {size} xung quanh {yLabel} của {x} {xLabel} và {y}",
|
|
9
|
+
"entity-type-values": "{count} {count, plural, other {giá trị}}",
|
|
10
|
+
"entity-type-grouped-values-single-size": "{groupsCount} {groupsCount, plural, other {mỗi nhóm chứa}} {valuesCount} {valuesCount, plural, other {giá trị}}",
|
|
11
|
+
"entity-type-grouped-values-multiple-size": "{groupsCount} {groupsCount, plural, other {nhóm chứa}} từ {minValuesCount} tới {maxValuesCount} giá trị",
|
|
12
|
+
"value-labeled": "{label} có giá trị {value}",
|
|
13
|
+
"values-group": "nhóm {label} chứa {values}",
|
|
14
|
+
"additional-axe": "{label} từ {from} tới {to}",
|
|
15
|
+
"additional-axe-no-label": "dữ liệu từ {from} tới {to}",
|
|
16
|
+
"time-series-detailed-trend": "{general}, cũng {locals}",
|
|
17
|
+
"time-series-general-trend": "{dataKey} {trend} từ {from} tới {to}",
|
|
18
|
+
"time-series-local-trend": "{trend} từ {from} tới {to}",
|
|
19
|
+
"trend-strong-reduction": "giảm mạnh",
|
|
20
|
+
"trend-reduction": "đang giảm",
|
|
21
|
+
"trend-weak-reduction": "giảm nhẹ",
|
|
22
|
+
"trend-static": "giống nhau trong tất cả các kỳ",
|
|
23
|
+
"trend-weak-growth": "giảm nhẹ",
|
|
24
|
+
"trend-growth": "đang tăng",
|
|
25
|
+
"trend-strong-growth": "tăng mạnh",
|
|
26
|
+
"relative-size-significantly-smaller": "tương đối nhỏ",
|
|
27
|
+
"relative-size-smaller": "nhỏ",
|
|
28
|
+
"relative-size-slightly-smaller": "hơi nhỏ",
|
|
29
|
+
"relative-size-average": "trung bình",
|
|
30
|
+
"relative-size-slightly-bigger": "hơi to",
|
|
31
|
+
"relative-size-bigger": "to",
|
|
32
|
+
"relative-size-significantly-bigger": "tương đối to",
|
|
33
|
+
"ellipsis": "thêm {leftCount}",
|
|
34
|
+
"view-default-plot-label": "Biểu đồ",
|
|
35
|
+
"view-label": "dữ liệu {plotLabel}",
|
|
36
|
+
"view-close": "Đóng",
|
|
37
|
+
"view-skip-plot": "Chuyển đến nội dung sau biểu đồ",
|
|
38
|
+
"view-go-to-table": "Bỏ qua bảng dữ liệu biểu đồ",
|
|
39
|
+
"view-data-summary": "Tóm tắt dữ liệu",
|
|
40
|
+
"view-summary-placeholder": "Tạo tóm tắt dữ liệu biểu đồ",
|
|
41
|
+
"view-table": "Bảng dữ liệu"
|
|
42
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"chart-summary": "图表代表{label}的{entities}:{entitiesList}。",
|
|
3
|
+
"chart-summary-no-label": "图表代表{entities}:{entitiesList}。",
|
|
4
|
+
"entity-type-time-series": "{count} 个时间序列",
|
|
5
|
+
"entity-type-clusters-single-size": "{count} 个大小为 {size} 的{count, plural, one {群集} other {群集}} ",
|
|
6
|
+
"entity-type-clusters-multiple-size": "{count} 个从 {minSize} 到 {maxSize} 的{count, plural, one {群集} other {群集}} ",
|
|
7
|
+
"entity-type-clusters-label-anonymous": "大小为 {size} 的{relativeSize}群集,围绕 {x} {xLabel} 和 {y} {yLabel} 的交叉",
|
|
8
|
+
"entity-type-clusters-label": "大小为 {size} 的{relativeSize}群集{labels},围绕 {x} {xLabel} 和 {y} {yLabel} 的交叉",
|
|
9
|
+
"entity-type-values": "{count} {count, plural, one {个数值} other {个数值}}",
|
|
10
|
+
"entity-type-grouped-values-single-size": "{groupsCount} 个包含 {valuesCount} 个{valuesCount, plural, one {值} other {值}}的{groupsCount, plural, one {分组} other {分组}}",
|
|
11
|
+
"entity-type-grouped-values-multiple-size": "{groupsCount} 个包含从 {minValuesCount} 到 {maxValuesCount} 数值的{groupsCount, plural, one {分组} other {分组}}",
|
|
12
|
+
"value-labeled": "{label},数值为 {value}",
|
|
13
|
+
"values-group": "集合 {label} 包含 {values}",
|
|
14
|
+
"additional-axe": "从 {from} 到 {to} 的{label}",
|
|
15
|
+
"additional-axe-no-label": "从 {from} 到 {to} 的数据",
|
|
16
|
+
"time-series-detailed-trend": "{general},另外 {locals}",
|
|
17
|
+
"time-series-general-trend": "{dataKey} {trend}(从 {from} 到 {to})",
|
|
18
|
+
"time-series-local-trend": "从 {from} {trend}到 {to}",
|
|
19
|
+
"trend-strong-reduction": "剧烈下降",
|
|
20
|
+
"trend-reduction": "下降",
|
|
21
|
+
"trend-weak-reduction": "略微下降",
|
|
22
|
+
"trend-static": "同期持平",
|
|
23
|
+
"trend-weak-growth": "略微上升",
|
|
24
|
+
"trend-growth": "增长",
|
|
25
|
+
"trend-strong-growth": "剧烈上升",
|
|
26
|
+
"relative-size-significantly-smaller": "极小",
|
|
27
|
+
"relative-size-smaller": "小",
|
|
28
|
+
"relative-size-slightly-smaller": "略小",
|
|
29
|
+
"relative-size-average": "平均偏差",
|
|
30
|
+
"relative-size-slightly-bigger": "略大",
|
|
31
|
+
"relative-size-bigger": "大",
|
|
32
|
+
"relative-size-significantly-bigger": "极大",
|
|
33
|
+
"ellipsis": "还有 {leftCount} 个",
|
|
34
|
+
"view-default-plot-label": "图表",
|
|
35
|
+
"view-label": "{plotLabel} 数据",
|
|
36
|
+
"view-close": "关闭",
|
|
37
|
+
"view-skip-plot": "跳到图示后的内容",
|
|
38
|
+
"view-go-to-table": "跳到图示数据表",
|
|
39
|
+
"view-data-summary": "数据摘要",
|
|
40
|
+
"view-summary-placeholder": "生成图表数据摘要",
|
|
41
|
+
"view-table": "数据表"
|
|
42
|
+
}
|
package/lib/es6/createElement.js
CHANGED
|
@@ -70,7 +70,9 @@ function createElementRender() {
|
|
|
70
70
|
|
|
71
71
|
return [/*#__PURE__*/React.createElement(React.Fragment, {
|
|
72
72
|
key: "child-above"
|
|
73
|
-
}, childrenPosition === 'above' ? children : null), /*#__PURE__*/React.createElement(Tag, _extends({
|
|
73
|
+
}, childrenPosition === 'above' ? children : null), /*#__PURE__*/React.createElement(Tag, _extends({
|
|
74
|
+
"aria-hidden": true
|
|
75
|
+
}, propsForElement(_objectSpread({
|
|
74
76
|
__excludeProps: EXCLUDE_PROPS
|
|
75
77
|
}, mergedProps), Tag), {
|
|
76
78
|
key: "element"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createElement.js","names":["React","useContext","createComponent","createBaseComponent","CONTEXT_COMPONENT","Plot","assignProps","useForkRef","propsForElement","getOriginChildren","hoistNonReactStatics","EXCLUDE_PROPS","createElementRender","Element","forwardRef","ref","render","childrenPosition","xS","x","yS","y","source","props","_children","children","Children","mergedProps","_child","Tag","tag","undefined","Error","__excludeProps","elementEnhancement","init","asProps","WrapperComponent","isFunction","$rootProps","WrapComponent","ElementWithContext","displayName","createElement","ElementRoot","child","options","enhancements","Object","keys","forEach","n"],"sources":["../../src/createElement.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport createComponent, { createBaseComponent, CONTEXT_COMPONENT } from '@semcore/core';\nimport Plot from './Plot';\nimport assignProps from '@semcore/utils/lib/assignProps';\nimport { useForkRef } from '@semcore/utils/lib/ref';\nimport propsForElement from '@semcore/utils/lib/propsForElement';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n\nconst EXCLUDE_PROPS = ['data', 'scale'];\n\nfunction createElementRender() {\n const Element = React.forwardRef(function (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n { render, childrenPosition = 'below', x: xS, y: yS, ...source },\n ref,\n ) {\n const {\n forwardRef = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n children: _children,\n Children,\n x = xS,\n y = yS,\n ...props\n } = Element.props;\n let children = getOriginChildren(Children);\n\n let mergedProps = assignProps(\n {\n x: xS,\n y: yS,\n ...props,\n ref: useForkRef(forwardRef, ref),\n },\n {\n x,\n y,\n ...source,\n },\n );\n\n if (typeof children === 'function') {\n const _child = mergedProps.children;\n mergedProps = assignProps(children(mergedProps), mergedProps);\n children = mergedProps.children;\n mergedProps.children = _child;\n }\n\n const Tag = typeof render === 'string' ? mergedProps.tag || render : render;\n\n if (childrenPosition === 'inside') {\n mergedProps.children = children === undefined ? mergedProps.children : children;\n }\n\n if (!Tag) {\n throw new Error('Element expected render prop to be passed');\n }\n return [\n <React.Fragment key=\"child-above\">\n {childrenPosition === 'above' ? children : null}\n </React.Fragment>,\n <Tag\n {...propsForElement(\n {\n __excludeProps: EXCLUDE_PROPS,\n ...mergedProps,\n },\n Tag,\n )}\n key=\"element\"\n />,\n <React.Fragment key=\"child-below\">\n {childrenPosition === 'below' ? children : null}\n </React.Fragment>,\n ];\n });\n\n Element.props = {};\n return Element;\n}\n\nfunction elementEnhancement() {\n return {\n init: function () {\n this.Element = createElementRender();\n },\n asProps: function ({ $rootProps, ...props }, WrapperComponent, isFunction) {\n if (isFunction) {\n return {\n ...$rootProps,\n ...props,\n Element: this.Element,\n };\n }\n return {\n ...$rootProps,\n ...props,\n };\n },\n render: function (render, props) {\n this.Element.props = props;\n return render;\n },\n };\n}\n\nfunction WrapComponent(Element) {\n function ElementWithContext(props, ref) {\n const { $rootProps } = useContext(Plot[CONTEXT_COMPONENT]);\n return <Element ref={ref} $rootProps={$rootProps} {...props} />;\n }\n\n ElementWithContext.displayName = Element.displayName;\n\n const WrapperComponent = createBaseComponent(ElementWithContext);\n WrapperComponent.displayName = Element.displayName;\n\n return hoistNonReactStatics(WrapperComponent, Element);\n}\n\nfunction createElement(ElementRoot, child = {}, options = {}) {\n const Element = createComponent(ElementRoot, child, {\n ...options,\n enhancements: [elementEnhancement],\n });\n\n Object.keys(child).forEach((n) => {\n Element[n] = WrapComponent(Element[n]);\n });\n\n return WrapComponent(Element);\n}\n\nexport default createElement;\n"],"mappings":";;;;;;;;;;;AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,OAAOC,eAAP,IAA0BC,mBAA1B,EAA+CC,iBAA/C,QAAwE,eAAxE;AACA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,WAAP,MAAwB,gCAAxB;AACA,SAASC,UAAT,QAA2B,wBAA3B;AACA,OAAOC,eAAP,MAA4B,oCAA5B;AACA,OAAOC,iBAAP,MAA8B,sCAA9B;AACA,OAAOC,oBAAP,MAAiC,yBAAjC;AAEA,IAAMC,aAAa,GAAG,CAAC,MAAD,EAAS,OAAT,CAAtB;;AAEA,SAASC,mBAAT,GAA+B;EAC7B,IAAMC,OAAO,gBAAGb,KAAK,CAACc,UAAN,CAAiB,WAC/B;EAD+B,MAG/BC,GAH+B,EAI/B;IAAA,IAFEC,MAEF,QAFEA,MAEF;IAAA,iCAFUC,gBAEV;IAAA,IAFUA,gBAEV,sCAF6B,OAE7B;IAAA,IAFyCC,EAEzC,QAFsCC,CAEtC;IAAA,IAFgDC,EAEhD,QAF6CC,CAE7C;IAAA,IAFuDC,MAEvD;;IACA,qBAQIT,OAAO,CAACU,KARZ;IAAA,2CACET,UADF;IAAA,IACEA,UADF,sCACe,IADf;IAAA,IAGYU,SAHZ,kBAGEC,QAHF;IAAA,IAIEC,QAJF,kBAIEA,QAJF;IAAA,sCAKEP,CALF;IAAA,IAKEA,CALF,iCAKMD,EALN;IAAA,sCAMEG,CANF;IAAA,IAMEA,CANF,iCAMMD,EANN;IAAA,IAOKG,KAPL;;IASA,IAAIE,QAAQ,GAAGhB,iBAAiB,CAACiB,QAAD,CAAhC;IAEA,IAAIC,WAAW,GAAGrB,WAAW;MAEzBa,CAAC,EAAED,EAFsB;MAGzBG,CAAC,EAAED;IAHsB,GAItBG,KAJsB;MAKzBR,GAAG,EAAER,UAAU,CAACO,UAAD,EAAaC,GAAb;IALU;MAQzBI,CAAC,EAADA,CARyB;MASzBE,CAAC,EAADA;IATyB,GAUtBC,MAVsB,EAA7B;;IAcA,IAAI,OAAOG,QAAP,KAAoB,UAAxB,EAAoC;MAClC,IAAMG,MAAM,GAAGD,WAAW,CAACF,QAA3B;MACAE,WAAW,GAAGrB,WAAW,CAACmB,QAAQ,CAACE,WAAD,CAAT,EAAwBA,WAAxB,CAAzB;MACAF,QAAQ,GAAGE,WAAW,CAACF,QAAvB;MACAE,WAAW,CAACF,QAAZ,GAAuBG,MAAvB;IACD;;IAED,IAAMC,GAAG,GAAG,OAAOb,MAAP,KAAkB,QAAlB,GAA6BW,WAAW,CAACG,GAAZ,IAAmBd,MAAhD,GAAyDA,MAArE;;IAEA,IAAIC,gBAAgB,KAAK,QAAzB,EAAmC;MACjCU,WAAW,CAACF,QAAZ,GAAuBA,QAAQ,KAAKM,SAAb,GAAyBJ,WAAW,CAACF,QAArC,GAAgDA,QAAvE;IACD;;IAED,IAAI,CAACI,GAAL,EAAU;MACR,MAAM,IAAIG,KAAJ,CAAU,2CAAV,CAAN;IACD;;IACD,OAAO,cACL,oBAAC,KAAD,CAAO,QAAP;MAAgB,GAAG,EAAC;IAApB,GACGf,gBAAgB,KAAK,OAArB,GAA+BQ,QAA/B,GAA0C,IAD7C,CADK,eAIL,oBAAC,GAAD,
|
|
1
|
+
{"version":3,"file":"createElement.js","names":["React","useContext","createComponent","createBaseComponent","CONTEXT_COMPONENT","Plot","assignProps","useForkRef","propsForElement","getOriginChildren","hoistNonReactStatics","EXCLUDE_PROPS","createElementRender","Element","forwardRef","ref","render","childrenPosition","xS","x","yS","y","source","props","_children","children","Children","mergedProps","_child","Tag","tag","undefined","Error","__excludeProps","elementEnhancement","init","asProps","WrapperComponent","isFunction","$rootProps","WrapComponent","ElementWithContext","displayName","createElement","ElementRoot","child","options","enhancements","Object","keys","forEach","n"],"sources":["../../src/createElement.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport createComponent, { createBaseComponent, CONTEXT_COMPONENT } from '@semcore/core';\nimport Plot from './Plot';\nimport assignProps from '@semcore/utils/lib/assignProps';\nimport { useForkRef } from '@semcore/utils/lib/ref';\nimport propsForElement from '@semcore/utils/lib/propsForElement';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n\nconst EXCLUDE_PROPS = ['data', 'scale'];\n\nfunction createElementRender() {\n const Element = React.forwardRef(function (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n { render, childrenPosition = 'below', x: xS, y: yS, ...source },\n ref,\n ) {\n const {\n forwardRef = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n children: _children,\n Children,\n x = xS,\n y = yS,\n ...props\n } = Element.props;\n let children = getOriginChildren(Children);\n\n let mergedProps = assignProps(\n {\n x: xS,\n y: yS,\n ...props,\n ref: useForkRef(forwardRef, ref),\n },\n {\n x,\n y,\n ...source,\n },\n );\n\n if (typeof children === 'function') {\n const _child = mergedProps.children;\n mergedProps = assignProps(children(mergedProps), mergedProps);\n children = mergedProps.children;\n mergedProps.children = _child;\n }\n\n const Tag = typeof render === 'string' ? mergedProps.tag || render : render;\n\n if (childrenPosition === 'inside') {\n mergedProps.children = children === undefined ? mergedProps.children : children;\n }\n\n if (!Tag) {\n throw new Error('Element expected render prop to be passed');\n }\n return [\n <React.Fragment key=\"child-above\">\n {childrenPosition === 'above' ? children : null}\n </React.Fragment>,\n <Tag\n aria-hidden\n {...propsForElement(\n {\n __excludeProps: EXCLUDE_PROPS,\n ...mergedProps,\n },\n Tag,\n )}\n key=\"element\"\n />,\n <React.Fragment key=\"child-below\">\n {childrenPosition === 'below' ? children : null}\n </React.Fragment>,\n ];\n });\n\n Element.props = {};\n return Element;\n}\n\nfunction elementEnhancement() {\n return {\n init: function () {\n this.Element = createElementRender();\n },\n asProps: function ({ $rootProps, ...props }, WrapperComponent, isFunction) {\n if (isFunction) {\n return {\n ...$rootProps,\n ...props,\n Element: this.Element,\n };\n }\n return {\n ...$rootProps,\n ...props,\n };\n },\n render: function (render, props) {\n this.Element.props = props;\n return render;\n },\n };\n}\n\nfunction WrapComponent(Element) {\n function ElementWithContext(props, ref) {\n const { $rootProps } = useContext(Plot[CONTEXT_COMPONENT]);\n return <Element ref={ref} $rootProps={$rootProps} {...props} />;\n }\n\n ElementWithContext.displayName = Element.displayName;\n\n const WrapperComponent = createBaseComponent(ElementWithContext);\n WrapperComponent.displayName = Element.displayName;\n\n return hoistNonReactStatics(WrapperComponent, Element);\n}\n\nfunction createElement(ElementRoot, child = {}, options = {}) {\n const Element = createComponent(ElementRoot, child, {\n ...options,\n enhancements: [elementEnhancement],\n });\n\n Object.keys(child).forEach((n) => {\n Element[n] = WrapComponent(Element[n]);\n });\n\n return WrapComponent(Element);\n}\n\nexport default createElement;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@import '@semcore/utils/style/var.css';
|
|
2
|
+
@import '@semcore/d3-chart/src/style/var.css';
|
|
3
|
+
|
|
4
|
+
SPlotA11yModule {
|
|
5
|
+
user-select: none;
|
|
6
|
+
pointer-events: none;
|
|
7
|
+
opacity: 0;
|
|
8
|
+
}
|
|
9
|
+
SPlotA11yModule:focus {
|
|
10
|
+
user-select: all;
|
|
11
|
+
pointer-events: all;
|
|
12
|
+
opacity: 1;
|
|
13
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
@import '@semcore/utils/style/var.css';
|
|
2
|
+
@import '@semcore/d3-chart/src/style/var.css';
|
|
3
|
+
|
|
4
|
+
SPlotA11yView {
|
|
5
|
+
user-select: none;
|
|
6
|
+
pointer-events: none;
|
|
7
|
+
opacity: 0;
|
|
8
|
+
background-color: white;
|
|
9
|
+
color: black;
|
|
10
|
+
border: 3px solid black;
|
|
11
|
+
font-size: 10px;
|
|
12
|
+
padding: 2px;
|
|
13
|
+
width: 200px;
|
|
14
|
+
height: 200px;
|
|
15
|
+
max-width: 80%;
|
|
16
|
+
max-height: 80%;
|
|
17
|
+
overflow: auto;
|
|
18
|
+
}
|
|
19
|
+
SPlotA11yView:focus-within,
|
|
20
|
+
SPlotA11yView:focus {
|
|
21
|
+
user-select: all;
|
|
22
|
+
pointer-events: all;
|
|
23
|
+
opacity: 1;
|
|
24
|
+
z-index: 100;
|
|
25
|
+
position: relative;
|
|
26
|
+
display: block;
|
|
27
|
+
}
|
|
28
|
+
SPlotA11yView a {
|
|
29
|
+
cursor: pointer;
|
|
30
|
+
text-decoration: underline;
|
|
31
|
+
margin-bottom: 8px;
|
|
32
|
+
display: block;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
SPlotA11yView table,
|
|
36
|
+
SPlotA11yView td,
|
|
37
|
+
SPlotA11yView th {
|
|
38
|
+
border: 1px solid black;
|
|
39
|
+
}
|
package/lib/es6/types/Plot.d.ts
CHANGED
|
@@ -9,8 +9,83 @@ export interface IPlotProps extends IContext, IBoxProps {
|
|
|
9
9
|
/** Height of the svg element
|
|
10
10
|
* @default 0*/
|
|
11
11
|
height?: number;
|
|
12
|
+
/** Human readable chart name (e.g "Last market trends") */
|
|
13
|
+
label?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Locale for displaying the days of a week and months, to be transferred to `Intl`
|
|
16
|
+
* @default en
|
|
17
|
+
* */
|
|
18
|
+
locale?: NavigatorLanguage['language'];
|
|
19
|
+
/** Optional prop to tune up alt text generating for charts */
|
|
20
|
+
a11yAltTextConfig?: PlotSummarizerConfig;
|
|
12
21
|
}
|
|
13
22
|
|
|
23
|
+
export type PlotSummarizerConfig = {
|
|
24
|
+
/** Totally disable automatic data summarization */
|
|
25
|
+
disable?: boolean;
|
|
26
|
+
/** Disable automatic data summarization and use provided text */
|
|
27
|
+
override?: string;
|
|
28
|
+
/** Tuning up time series trends analyzing. Represents angle tangens of time series change of different strength */
|
|
29
|
+
trendTangens?: {
|
|
30
|
+
/** Angle tangens of time series that have meaningful trending change
|
|
31
|
+
* @default 1/15
|
|
32
|
+
*/
|
|
33
|
+
static?: number;
|
|
34
|
+
/** Angle tangens of time series that have weak trending change
|
|
35
|
+
* @default 1/10
|
|
36
|
+
*/
|
|
37
|
+
weak?: number;
|
|
38
|
+
/** Angle tangens of time series that have medium trending change
|
|
39
|
+
* @default 1/5
|
|
40
|
+
*/
|
|
41
|
+
medium?: number;
|
|
42
|
+
/** Angle tangens of time series that have strong trending change
|
|
43
|
+
* @default Infinity
|
|
44
|
+
*/
|
|
45
|
+
strong?: number;
|
|
46
|
+
};
|
|
47
|
+
/** Tuning up time series local trends detection based on moving averages */
|
|
48
|
+
movingAverage?: {
|
|
49
|
+
/** Frame size of long moving average
|
|
50
|
+
* @default Math.sqrt(data.length)
|
|
51
|
+
*/
|
|
52
|
+
longSize?: number;
|
|
53
|
+
/** Frame size of short moving average
|
|
54
|
+
* @default Math.sqrt(data.length)/2
|
|
55
|
+
*/
|
|
56
|
+
shortSize?: number;
|
|
57
|
+
/** Absolute difference between values on moving averages crossing to
|
|
58
|
+
* be handled as local trend change.
|
|
59
|
+
* @default StandardDeviation/10
|
|
60
|
+
*/
|
|
61
|
+
notableDiff?: number;
|
|
62
|
+
};
|
|
63
|
+
/** The way data to be interpreted as. By default is based on used used Plot elements and data structure.
|
|
64
|
+
*/
|
|
65
|
+
dataType?: 'time-series' | 'points-cloud' | 'values-set';
|
|
66
|
+
/** Grid size to split data of point clouds into clusters.
|
|
67
|
+
*/
|
|
68
|
+
clustersGridSize?: number;
|
|
69
|
+
/** Limits some output lists in chart alt text
|
|
70
|
+
* @default 100
|
|
71
|
+
* **/
|
|
72
|
+
maxListSymbols?: number;
|
|
73
|
+
/** Always add time to dates in chart alt text **/
|
|
74
|
+
datesWithTime?: boolean;
|
|
75
|
+
/** Described clusters count before text "and X more"
|
|
76
|
+
* @default false
|
|
77
|
+
* **/
|
|
78
|
+
clustersLimit?: number;
|
|
79
|
+
/** Described values count before text "and X more"
|
|
80
|
+
* @default false
|
|
81
|
+
* **/
|
|
82
|
+
valuesLimit?: number;
|
|
83
|
+
/** Described grouped value groups count before text "and X more"
|
|
84
|
+
* @default false
|
|
85
|
+
* **/
|
|
86
|
+
groupsLimit?: number;
|
|
87
|
+
};
|
|
88
|
+
|
|
14
89
|
declare const Plot: <T>(props: CProps<IPlotProps & T>) => ReturnEl;
|
|
15
90
|
|
|
16
91
|
export default Plot;
|
package/lib/es6/utils.js
CHANGED
|
@@ -199,4 +199,9 @@ export var measureText = memoize(function (text, fontSize) {
|
|
|
199
199
|
span.remove();
|
|
200
200
|
return textWidth;
|
|
201
201
|
});
|
|
202
|
+
var idCounter = 0;
|
|
203
|
+
export var uniqueId = function uniqueId() {
|
|
204
|
+
var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'id-';
|
|
205
|
+
return "".concat(prefix).concat(idCounter++);
|
|
206
|
+
};
|
|
202
207
|
//# sourceMappingURL=utils.js.map
|
package/lib/es6/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["extent","bisector","scaleQuantize","CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","slice","reverse","definedNullData","x","y","plot","definedData","undefined","scaleOfBandwidth","bandwidth","minMax","data","key","d","getNullData","defined","name","reduce","acc","i","push","prev","next","defNext","find","length","defPrev","getIndexFromData","bisect","center","step","index","findIndex","console","warn","roundedPath","w","h","r","tl","tr","bl","br","result","getBandwidth","Math","abs","memoize","func","results","args","argsKey","join","measureText","text","fontSize","span","document","createElement","style","split","line","append","createTextNode","display","body","textWidth","offsetWidth","remove"],"sources":["../../src/utils.ts"],"sourcesContent":["import { extent, bisector, Numeric } from 'd3-array';\nimport {\n scaleQuantize,\n ScaleIdentity,\n ScaleTime,\n ScaleContinuousNumeric,\n ScaleBand,\n ScalePoint,\n NumberValue,\n} from 'd3-scale';\nimport React from 'react';\n\nconst CONSTANT = {\n VIRTUAL_ELEMENT: Symbol('VIRTUAL_ELEMENT'),\n} as const;\n\nexport { CONSTANT };\n\nexport const eventToPoint = (event: React.MouseEvent<HTMLElement>, svgRoot: SVGElement) => {\n const node = (event.currentTarget || event.target) as HTMLElement;\n const rect = svgRoot.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n};\n\ntype InvertableScale =\n | ScaleIdentity\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>;\nexport const invert = <Scale extends InvertableScale = InvertableScale>(\n scale: Scale,\n value: number,\n) => {\n if (scale.invert) return scale.invert(value);\n\n const range = scale.range() as number[];\n const domain = scale.domain();\n\n return scaleQuantize()\n .domain((range[0] <= range[1] ? range : range.slice().reverse()) as NumberValue[])\n .range((range[0] <= range[1] ? domain : domain.slice().reverse()) as number[])(value);\n};\n\nexport const definedNullData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[y] !== null;\n\nexport const definedData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[x] !== undefined && plot[y] !== null && plot[y] !== undefined;\n\nexport const scaleOfBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale, value: number) =>\n scale.bandwidth ? scale(value)! + scale.bandwidth() / 2 : scale(value);\n\nexport const minMax = <\n Key extends string = string,\n Data extends Iterable<{ [key in Key]: Numeric | null | undefined }> = Iterable<{\n [key in Key]: Numeric | null | undefined;\n }>,\n>(\n data: Data,\n key: Key,\n) => {\n if (typeof key === 'string') {\n return extent(data, (d) => d[key]);\n }\n return extent(data, key);\n};\n\nexport const getNullData = <\n Name extends string = string,\n Data extends { [name in Name]?: unknown | null } = {},\n>(\n data: Data[],\n defined: (data: Data) => boolean,\n name: Name,\n) =>\n data.reduce((acc, d, i, data) => {\n if (defined(d)) {\n acc.push({\n [name]: null,\n } as Data);\n } else {\n const prev = data[i - 1];\n const next = data[i + 1];\n\n if (i === 0) {\n const defNext = data.find(defined);\n acc.push({\n ...d,\n [name]: defNext ? defNext[name] : null,\n });\n }\n\n // prev\n if (prev && defined(prev)) {\n acc.push(prev);\n }\n\n // next\n if (next && defined(next)) {\n acc.push(next);\n }\n\n if (data.length - 1 === i) {\n const defPrev = data.slice().reverse().find(defined);\n acc.push({\n ...d,\n [name]: defPrev ? defPrev[name] : null,\n });\n }\n }\n return acc;\n }, [] as Data[]);\n\ntype IndexFromDataScale =\n | ScaleIdentity\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>\n | ScaleBand<{}>\n | ScalePoint<{}>;\nexport const getIndexFromData = <\n Data extends {\n [key: string]: number;\n } = {},\n Scale extends IndexFromDataScale = IndexFromDataScale,\n>(\n data: Data[],\n scale: Scale,\n key: string,\n value: number,\n) => {\n // detect line chart\n if ('invert' in scale && typeof scale.invert === 'function') {\n const bisect = bisector((d: { [key: string]: number }) => d[key]).center;\n return bisect(data, value);\n }\n // detect bar chart\n else if ('step' in scale && typeof scale.step !== 'undefined') {\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n } else {\n // eslint-disable-next-line no-console\n console.warn('[d3-chart/utils/getIndexFromData] encountered incompatible scale type');\n return null;\n }\n};\n\nexport const roundedPath = (\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n tl = false,\n tr = false,\n bl = false,\n br = false,\n) => {\n let result = 'M' + (x + r) + ',' + y;\n result += 'h' + (w - 2 * r);\n if (tr) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + r;\n } else {\n result += 'h' + r;\n result += 'v' + r;\n }\n result += 'v' + (h - 2 * r);\n if (br) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + r;\n } else {\n result += 'v' + r;\n result += 'h' + -r;\n }\n result += 'h' + (2 * r - w);\n if (bl) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + -r;\n } else {\n result += 'h' + -r;\n result += 'v' + -r;\n }\n result += 'v' + (2 * r - h);\n if (tl) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + -r;\n } else {\n result += 'v' + -r;\n result += 'h' + r;\n }\n result += 'z';\n return result;\n};\n\nexport const getBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale) => {\n if ('bandwidth' in scale) {\n return scale.bandwidth();\n }\n\n const range = scale.range();\n const domain = scale.domain();\n return Math.abs(range[range.length - 1] - range[0]) / domain.length;\n};\n\nexport const memoize = <Func extends (...args: any[]) => any>(func: Func): Func => {\n const results: { [cacheKey: string]: any } = {};\n return ((...args: any[]) => {\n const argsKey = args.join(',');\n if (!results[argsKey]) {\n results[argsKey] = func(...args);\n }\n return results[argsKey];\n }) as Func;\n};\n\nexport const measureText = memoize((text: string, fontSize?: number) => {\n if (!text) return 0;\n\n const span = document.createElement('span');\n if (fontSize) {\n span.style.fontSize = `${fontSize}px`;\n }\n for (const line of text.split('\\n')) {\n span.append(document.createTextNode(line));\n span.append(document.createElement('br'));\n }\n span.style.display = 'inline-block';\n document.body.append(span);\n const textWidth = span.offsetWidth;\n span.remove();\n return textWidth;\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["extent","bisector","scaleQuantize","CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","slice","reverse","definedNullData","x","y","plot","definedData","undefined","scaleOfBandwidth","bandwidth","minMax","data","key","d","getNullData","defined","name","reduce","acc","i","push","prev","next","defNext","find","length","defPrev","getIndexFromData","bisect","center","step","index","findIndex","console","warn","roundedPath","w","h","r","tl","tr","bl","br","result","getBandwidth","Math","abs","memoize","func","results","args","argsKey","join","measureText","text","fontSize","span","document","createElement","style","split","line","append","createTextNode","display","body","textWidth","offsetWidth","remove","idCounter","uniqueId","prefix"],"sources":["../../src/utils.ts"],"sourcesContent":["import { extent, bisector, Numeric } from 'd3-array';\nimport {\n scaleQuantize,\n ScaleIdentity,\n ScaleTime,\n ScaleContinuousNumeric,\n ScaleBand,\n ScalePoint,\n NumberValue,\n} from 'd3-scale';\nimport React from 'react';\n\nconst CONSTANT = {\n VIRTUAL_ELEMENT: Symbol('VIRTUAL_ELEMENT'),\n} as const;\n\nexport { CONSTANT };\n\nexport const eventToPoint = (event: React.MouseEvent<HTMLElement>, svgRoot: SVGElement) => {\n const node = (event.currentTarget || event.target) as HTMLElement;\n const rect = svgRoot.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n};\n\ntype InvertableScale =\n | ScaleIdentity\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>;\nexport const invert = <Scale extends InvertableScale = InvertableScale>(\n scale: Scale,\n value: number,\n) => {\n if (scale.invert) return scale.invert(value);\n\n const range = scale.range() as number[];\n const domain = scale.domain();\n\n return scaleQuantize()\n .domain((range[0] <= range[1] ? range : range.slice().reverse()) as NumberValue[])\n .range((range[0] <= range[1] ? domain : domain.slice().reverse()) as number[])(value);\n};\n\nexport const definedNullData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[y] !== null;\n\nexport const definedData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[x] !== undefined && plot[y] !== null && plot[y] !== undefined;\n\nexport const scaleOfBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale, value: number) =>\n scale.bandwidth ? scale(value)! + scale.bandwidth() / 2 : scale(value);\n\nexport const minMax = <\n Key extends string = string,\n Data extends Iterable<{ [key in Key]: Numeric | null | undefined }> = Iterable<{\n [key in Key]: Numeric | null | undefined;\n }>,\n>(\n data: Data,\n key: Key,\n) => {\n if (typeof key === 'string') {\n return extent(data, (d) => d[key]);\n }\n return extent(data, key);\n};\n\nexport const getNullData = <\n Name extends string = string,\n Data extends { [name in Name]?: unknown | null } = {},\n>(\n data: Data[],\n defined: (data: Data) => boolean,\n name: Name,\n) =>\n data.reduce((acc, d, i, data) => {\n if (defined(d)) {\n acc.push({\n [name]: null,\n } as Data);\n } else {\n const prev = data[i - 1];\n const next = data[i + 1];\n\n if (i === 0) {\n const defNext = data.find(defined);\n acc.push({\n ...d,\n [name]: defNext ? defNext[name] : null,\n });\n }\n\n // prev\n if (prev && defined(prev)) {\n acc.push(prev);\n }\n\n // next\n if (next && defined(next)) {\n acc.push(next);\n }\n\n if (data.length - 1 === i) {\n const defPrev = data.slice().reverse().find(defined);\n acc.push({\n ...d,\n [name]: defPrev ? defPrev[name] : null,\n });\n }\n }\n return acc;\n }, [] as Data[]);\n\ntype IndexFromDataScale =\n | ScaleIdentity\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>\n | ScaleBand<{}>\n | ScalePoint<{}>;\nexport const getIndexFromData = <\n Data extends {\n [key: string]: number;\n } = {},\n Scale extends IndexFromDataScale = IndexFromDataScale,\n>(\n data: Data[],\n scale: Scale,\n key: string,\n value: number,\n) => {\n // detect line chart\n if ('invert' in scale && typeof scale.invert === 'function') {\n const bisect = bisector((d: { [key: string]: number }) => d[key]).center;\n return bisect(data, value);\n }\n // detect bar chart\n else if ('step' in scale && typeof scale.step !== 'undefined') {\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n } else {\n // eslint-disable-next-line no-console\n console.warn('[d3-chart/utils/getIndexFromData] encountered incompatible scale type');\n return null;\n }\n};\n\nexport const roundedPath = (\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n tl = false,\n tr = false,\n bl = false,\n br = false,\n) => {\n let result = 'M' + (x + r) + ',' + y;\n result += 'h' + (w - 2 * r);\n if (tr) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + r;\n } else {\n result += 'h' + r;\n result += 'v' + r;\n }\n result += 'v' + (h - 2 * r);\n if (br) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + r;\n } else {\n result += 'v' + r;\n result += 'h' + -r;\n }\n result += 'h' + (2 * r - w);\n if (bl) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + -r;\n } else {\n result += 'h' + -r;\n result += 'v' + -r;\n }\n result += 'v' + (2 * r - h);\n if (tl) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + -r;\n } else {\n result += 'v' + -r;\n result += 'h' + r;\n }\n result += 'z';\n return result;\n};\n\nexport const getBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale) => {\n if ('bandwidth' in scale) {\n return scale.bandwidth();\n }\n\n const range = scale.range();\n const domain = scale.domain();\n return Math.abs(range[range.length - 1] - range[0]) / domain.length;\n};\n\nexport const memoize = <Func extends (...args: any[]) => any>(func: Func): Func => {\n const results: { [cacheKey: string]: any } = {};\n return ((...args: any[]) => {\n const argsKey = args.join(',');\n if (!results[argsKey]) {\n results[argsKey] = func(...args);\n }\n return results[argsKey];\n }) as Func;\n};\n\nexport const measureText = memoize((text: string, fontSize?: number) => {\n if (!text) return 0;\n\n const span = document.createElement('span');\n if (fontSize) {\n span.style.fontSize = `${fontSize}px`;\n }\n for (const line of text.split('\\n')) {\n span.append(document.createTextNode(line));\n span.append(document.createElement('br'));\n }\n span.style.display = 'inline-block';\n document.body.append(span);\n const textWidth = span.offsetWidth;\n span.remove();\n return textWidth;\n});\n\nlet idCounter = 0;\nexport const uniqueId = (prefix = 'id-') => `${prefix}${idCounter++}`;\n"],"mappings":"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"}
|
package/lib/types/Plot.d.ts
CHANGED
|
@@ -9,8 +9,83 @@ export interface IPlotProps extends IContext, IBoxProps {
|
|
|
9
9
|
/** Height of the svg element
|
|
10
10
|
* @default 0*/
|
|
11
11
|
height?: number;
|
|
12
|
+
/** Human readable chart name (e.g "Last market trends") */
|
|
13
|
+
label?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Locale for displaying the days of a week and months, to be transferred to `Intl`
|
|
16
|
+
* @default en
|
|
17
|
+
* */
|
|
18
|
+
locale?: NavigatorLanguage['language'];
|
|
19
|
+
/** Optional prop to tune up alt text generating for charts */
|
|
20
|
+
a11yAltTextConfig?: PlotSummarizerConfig;
|
|
12
21
|
}
|
|
13
22
|
|
|
23
|
+
export type PlotSummarizerConfig = {
|
|
24
|
+
/** Totally disable automatic data summarization */
|
|
25
|
+
disable?: boolean;
|
|
26
|
+
/** Disable automatic data summarization and use provided text */
|
|
27
|
+
override?: string;
|
|
28
|
+
/** Tuning up time series trends analyzing. Represents angle tangens of time series change of different strength */
|
|
29
|
+
trendTangens?: {
|
|
30
|
+
/** Angle tangens of time series that have meaningful trending change
|
|
31
|
+
* @default 1/15
|
|
32
|
+
*/
|
|
33
|
+
static?: number;
|
|
34
|
+
/** Angle tangens of time series that have weak trending change
|
|
35
|
+
* @default 1/10
|
|
36
|
+
*/
|
|
37
|
+
weak?: number;
|
|
38
|
+
/** Angle tangens of time series that have medium trending change
|
|
39
|
+
* @default 1/5
|
|
40
|
+
*/
|
|
41
|
+
medium?: number;
|
|
42
|
+
/** Angle tangens of time series that have strong trending change
|
|
43
|
+
* @default Infinity
|
|
44
|
+
*/
|
|
45
|
+
strong?: number;
|
|
46
|
+
};
|
|
47
|
+
/** Tuning up time series local trends detection based on moving averages */
|
|
48
|
+
movingAverage?: {
|
|
49
|
+
/** Frame size of long moving average
|
|
50
|
+
* @default Math.sqrt(data.length)
|
|
51
|
+
*/
|
|
52
|
+
longSize?: number;
|
|
53
|
+
/** Frame size of short moving average
|
|
54
|
+
* @default Math.sqrt(data.length)/2
|
|
55
|
+
*/
|
|
56
|
+
shortSize?: number;
|
|
57
|
+
/** Absolute difference between values on moving averages crossing to
|
|
58
|
+
* be handled as local trend change.
|
|
59
|
+
* @default StandardDeviation/10
|
|
60
|
+
*/
|
|
61
|
+
notableDiff?: number;
|
|
62
|
+
};
|
|
63
|
+
/** The way data to be interpreted as. By default is based on used used Plot elements and data structure.
|
|
64
|
+
*/
|
|
65
|
+
dataType?: 'time-series' | 'points-cloud' | 'values-set';
|
|
66
|
+
/** Grid size to split data of point clouds into clusters.
|
|
67
|
+
*/
|
|
68
|
+
clustersGridSize?: number;
|
|
69
|
+
/** Limits some output lists in chart alt text
|
|
70
|
+
* @default 100
|
|
71
|
+
* **/
|
|
72
|
+
maxListSymbols?: number;
|
|
73
|
+
/** Always add time to dates in chart alt text **/
|
|
74
|
+
datesWithTime?: boolean;
|
|
75
|
+
/** Described clusters count before text "and X more"
|
|
76
|
+
* @default false
|
|
77
|
+
* **/
|
|
78
|
+
clustersLimit?: number;
|
|
79
|
+
/** Described values count before text "and X more"
|
|
80
|
+
* @default false
|
|
81
|
+
* **/
|
|
82
|
+
valuesLimit?: number;
|
|
83
|
+
/** Described grouped value groups count before text "and X more"
|
|
84
|
+
* @default false
|
|
85
|
+
* **/
|
|
86
|
+
groupsLimit?: number;
|
|
87
|
+
};
|
|
88
|
+
|
|
14
89
|
declare const Plot: <T>(props: CProps<IPlotProps & T>) => ReturnEl;
|
|
15
90
|
|
|
16
91
|
export default Plot;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DataStructureHints, PartialDataSummarizationConfig } from './hints';
|
|
3
|
+
export declare type A11yViewProps = {
|
|
4
|
+
id: string;
|
|
5
|
+
data: Record<string, unknown>[];
|
|
6
|
+
hints: DataStructureHints;
|
|
7
|
+
plotLabel: string;
|
|
8
|
+
locale: NavigatorLanguage['language'];
|
|
9
|
+
config: PartialDataSummarizationConfig;
|
|
10
|
+
plotRef: React.RefObject<Element>;
|
|
11
|
+
};
|
|
12
|
+
export declare const PlotA11yModule: React.FC<A11yViewProps>;
|
|
File without changes
|