@semcore/d3-chart 2.12.2 → 2.13.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 (52) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/lib/cjs/Area.js +10 -10
  3. package/lib/cjs/Axis.js +14 -14
  4. package/lib/cjs/Bar.js +9 -9
  5. package/lib/cjs/Bubble.js +11 -11
  6. package/lib/cjs/Donut.js +8 -8
  7. package/lib/cjs/Dots.js +10 -10
  8. package/lib/cjs/HorizontalBar.js +9 -9
  9. package/lib/cjs/Hover.js +4 -4
  10. package/lib/cjs/Line.js +9 -9
  11. package/lib/cjs/Plot.js +4 -4
  12. package/lib/cjs/Radar.js +18 -18
  13. package/lib/cjs/RadialTree.js +13 -13
  14. package/lib/cjs/ReferenceLine.js +10 -10
  15. package/lib/cjs/ScatterPlot.js +8 -8
  16. package/lib/cjs/Tooltip.js +9 -9
  17. package/lib/cjs/Venn.js +8 -8
  18. package/lib/cjs/a11y/PlotA11yModule.js +3 -3
  19. package/lib/cjs/a11y/PlotA11yView.js +10 -8
  20. package/lib/cjs/a11y/PlotA11yView.js.map +1 -1
  21. package/lib/cjs/a11y/hints.js +5 -2
  22. package/lib/cjs/a11y/hints.js.map +1 -1
  23. package/lib/cjs/a11y/serialize.js +8 -10
  24. package/lib/cjs/a11y/serialize.js.map +1 -1
  25. package/lib/cjs/types/Plot.d.js.map +1 -1
  26. package/lib/es6/Area.js +10 -10
  27. package/lib/es6/Axis.js +14 -14
  28. package/lib/es6/Bar.js +9 -9
  29. package/lib/es6/Bubble.js +11 -11
  30. package/lib/es6/Donut.js +8 -8
  31. package/lib/es6/Dots.js +10 -10
  32. package/lib/es6/HorizontalBar.js +9 -9
  33. package/lib/es6/Hover.js +4 -4
  34. package/lib/es6/Line.js +9 -9
  35. package/lib/es6/Plot.js +4 -4
  36. package/lib/es6/Radar.js +18 -18
  37. package/lib/es6/RadialTree.js +13 -13
  38. package/lib/es6/ReferenceLine.js +10 -10
  39. package/lib/es6/ScatterPlot.js +8 -8
  40. package/lib/es6/Tooltip.js +9 -9
  41. package/lib/es6/Venn.js +8 -8
  42. package/lib/es6/a11y/PlotA11yModule.js +3 -3
  43. package/lib/es6/a11y/PlotA11yView.js +10 -8
  44. package/lib/es6/a11y/PlotA11yView.js.map +1 -1
  45. package/lib/es6/a11y/hints.js +4 -2
  46. package/lib/es6/a11y/hints.js.map +1 -1
  47. package/lib/es6/a11y/serialize.js +8 -10
  48. package/lib/es6/a11y/serialize.js.map +1 -1
  49. package/lib/es6/types/Plot.d.js.map +1 -1
  50. package/lib/types/Plot.d.ts +3 -0
  51. package/lib/types/a11y/hints.d.ts +1 -0
  52. package/package.json +1 -1
@@ -157,7 +157,7 @@ export var serialize = function serialize(_ref4, _ref5, _ref6) {
157
157
  availableLocales = _ref6.availableLocales;
158
158
  if (insights.length === 0) return null;
159
159
  var intl = getIntl(locale, translations, availableLocales);
160
- var dataRnageSummary = intl.formatList(dataRange.map(function (range) {
160
+ var dataRangeSummary = intl.formatList(dataRange.map(function (range) {
161
161
  var from = formatValue(intl, range.from, {
162
162
  siblingsTimeMark: range.to,
163
163
  datesWithTime: datesWithTime,
@@ -267,8 +267,8 @@ export var serialize = function serialize(_ref4, _ref5, _ref6) {
267
267
  label: dataTitle
268
268
  });
269
269
 
270
- if (dataRnageSummary.length > 0) {
271
- return "".concat(summary, "\n").concat(dataRnageSummary);
270
+ if (dataRangeSummary.length > 0) {
271
+ return "".concat(summary, "\n").concat(dataRangeSummary);
272
272
  }
273
273
 
274
274
  return summary;
@@ -325,8 +325,8 @@ export var serialize = function serialize(_ref4, _ref5, _ref6) {
325
325
  label: dataTitle
326
326
  });
327
327
 
328
- if (dataRnageSummary.length > 0) {
329
- return "".concat(_summary, "\n").concat(dataRnageSummary);
328
+ if (dataRangeSummary.length > 0) {
329
+ return "".concat(_summary, "\n").concat(dataRangeSummary);
330
330
  }
331
331
 
332
332
  return _summary;
@@ -348,14 +348,13 @@ export var serialize = function serialize(_ref4, _ref5, _ref6) {
348
348
  maxListSymbols: maxListSymbols
349
349
  });
350
350
 
351
- var sumamry = intl.formatMessage({
351
+ return intl.formatMessage({
352
352
  id: dataTitle ? 'chart-summary' : 'chart-summary-no-label'
353
353
  }, {
354
354
  entities: _entities2,
355
355
  entitiesList: _entitiesList2,
356
356
  label: dataTitle
357
357
  });
358
- return sumamry;
359
358
  } else if (dataType === 'grouped-values' || dataType === 'indexed-groups') {
360
359
  var groupInsights = insights;
361
360
  var valueCounts = groupInsights.map(function (group) {
@@ -402,15 +401,14 @@ export var serialize = function serialize(_ref4, _ref5, _ref6) {
402
401
  }));
403
402
  }
404
403
 
405
- var _sumamry = intl.formatMessage({
404
+ var sumamry = intl.formatMessage({
406
405
  id: dataTitle ? 'chart-summary' : 'chart-summary-no-label'
407
406
  }, {
408
407
  entities: _entities3,
409
408
  entitiesList: intl.formatList(_entitiesList3),
410
409
  label: dataTitle
411
410
  });
412
-
413
- return _sumamry;
411
+ return sumamry;
414
412
  }
415
413
 
416
414
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.js","names":["getIntl","formatLimitedSizeList","items","intl","maxFinalStringLength","includeEllipsis","limit","length","stringifyList","cutItems","slice","push","formatMessage","id","leftCount","formatList","formattedList","overflowRatio","Math","floor","maxIncreaseAttempts","i","newLimitFormattedList","isReactComponent","obj","displayName","guessNumberAsTimestampMinDate","Date","getTime","formatValue","value","siblingsTimeMark","maxListSymbols","datesWithTime","formatNumber","abs","formatDate","dateStyle","timeStyle","Array","isArray","formattedValues","map","subValue","String","formatValuesList","values","result","rawValue","label","undefined","serialize","insights","dataType","dataRange","dataTitle","entitiesCount","clustersLimit","valuesLimit","groupsLimit","locale","translations","availableLocales","dataRnageSummary","range","from","to","trendsInsights","trendsByDataKey","insight","dataKey","entities","count","entitiesList","Object","entries","generalTrend","find","type","localTrends","filter","primaryTrend","secondaryTrends","mainSummary","trend","change","strength","secondarylSummaries","general","locals","summary","clustersInsights","biggestClusters","maxSize","size","minSize","clusterInsight","labels","anonymous","relativeSize","x","center","xLabel","y","yLabel","valuesInsight","sumamry","groupInsights","valueCounts","group","minValuesCount","min","maxValuesCount","max","groupsCount","valuesCount"],"sources":["../../../src/a11y/serialize.ts"],"sourcesContent":["import { AnalyzedData, ClusterNode, ComparisonNode, GeneralTrendNode, TrendNode } from './insights';\n\nimport React from 'react';\nimport { DataSummarizationConfig } from './hints';\nimport { getIntl, Intl } from './intl';\n\nconst formatLimitedSizeList = (\n items: unknown[],\n intl: Intl,\n maxFinalStringLength = 100,\n includeEllipsis = true,\n) => {\n let limit = items.length;\n const stringifyList = () => {\n const cutItems = items.slice(0, limit);\n if (items.length > limit && includeEllipsis) {\n cutItems.push(intl.formatMessage({ id: 'ellipsis' }, { leftCount: limit - items.length }));\n }\n\n return intl.formatList(cutItems);\n };\n\n let formattedList = stringifyList();\n if (formattedList.length <= maxFinalStringLength) {\n return formattedList;\n }\n\n const overflowRatio = formattedList.length / maxFinalStringLength;\n limit = Math.floor(limit / overflowRatio);\n if (limit === 0) {\n limit = 1;\n return stringifyList();\n }\n\n formattedList = stringifyList();\n\n const maxIncreaseAttempts = 4;\n for (let i = 0; i < maxIncreaseAttempts; i++) {\n limit++;\n const newLimitFormattedList = stringifyList();\n\n if (newLimitFormattedList.length > maxFinalStringLength) {\n return formattedList;\n }\n\n formattedList = newLimitFormattedList;\n }\n\n return formattedList;\n};\n\nconst isReactComponent = (obj: any) =>\n typeof obj === 'object' && obj && 'displayName' in obj && typeof obj.displayName === 'string';\n\nconst guessNumberAsTimestampMinDate = new Date('1975').getTime();\n\nexport const formatValue = (\n intl: Intl,\n value: unknown,\n {\n siblingsTimeMark,\n maxListSymbols,\n datesWithTime,\n }: {\n siblingsTimeMark?: unknown;\n maxListSymbols?: number;\n datesWithTime?: boolean;\n } = {},\n): string => {\n if (typeof value === 'number') {\n if (value >= guessNumberAsTimestampMinDate) {\n return formatValue(intl, new Date(value), {\n siblingsTimeMark,\n maxListSymbols,\n datesWithTime,\n });\n }\n return intl.formatNumber(value);\n }\n if (value instanceof Date) {\n if (\n datesWithTime ||\n (siblingsTimeMark &&\n siblingsTimeMark instanceof Date &&\n Math.abs(value.getTime() - siblingsTimeMark.getTime()) < 1000 * 60 * 60 * 24 * 5)\n ) {\n return intl.formatDate(value, { dateStyle: 'medium', timeStyle: 'medium' });\n }\n return intl.formatDate(value, { dateStyle: 'medium' });\n }\n\n if (Array.isArray(value)) {\n const formattedValues = value.map((subValue) =>\n formatValue(intl, subValue, { siblingsTimeMark, maxListSymbols, datesWithTime }),\n );\n\n return formatLimitedSizeList(formattedValues, intl, maxListSymbols);\n }\n\n if (isReactComponent(value)) {\n return String((value as React.FC).displayName);\n }\n\n return String(value);\n};\n\nconst formatValuesList = (\n values: { label: string; value: unknown }[],\n {\n intl,\n limit,\n datesWithTime,\n maxListSymbols,\n }: { intl: Intl; limit: number; datesWithTime?: boolean; maxListSymbols: number },\n) => {\n const result = values.slice(0, limit).map(({ value: rawValue, label }) => {\n if (rawValue === undefined) return label;\n\n const value = formatValue(intl, rawValue, { datesWithTime, maxListSymbols });\n\n if (String(value) === String(label)) return value;\n\n return intl.formatMessage({ id: 'value-labeled' }, { label, value });\n });\n if (values.length > limit) {\n result.push(\n intl.formatMessage({ id: 'ellipsis' }, { leftCount: limit - values.values.length }),\n );\n }\n\n return intl.formatList(result);\n};\n\nexport const serialize = (\n { insights, dataType, dataRange, dataTitle, entitiesCount }: AnalyzedData,\n {\n datesWithTime,\n maxListSymbols,\n clustersLimit,\n valuesLimit,\n groupsLimit,\n }: DataSummarizationConfig,\n {\n locale,\n translations,\n availableLocales,\n }: {\n locale: string;\n translations?: { [messageId: string]: string };\n availableLocales?: { [localeId: string]: any };\n },\n): string | null => {\n if (insights.length === 0) return null;\n\n const intl = getIntl(locale, translations, availableLocales);\n\n const dataRnageSummary = intl.formatList(\n dataRange.map((range) => {\n const from = formatValue(intl, range.from, {\n siblingsTimeMark: range.to,\n datesWithTime,\n maxListSymbols,\n });\n const to = formatValue(intl, range.to, {\n siblingsTimeMark: range.from,\n datesWithTime,\n maxListSymbols,\n });\n\n return intl.formatMessage(\n { id: range.label ? 'additional-axe' : 'additional-axe-no-label' },\n { from, to, label: range.label },\n );\n }),\n );\n\n if (dataType === 'time-series') {\n const trendsInsights = insights as (GeneralTrendNode | TrendNode)[];\n const trendsByDataKey: { [label: string]: (GeneralTrendNode | TrendNode)[] } = {};\n for (const insight of trendsInsights) {\n trendsByDataKey[insight.dataKey] = trendsByDataKey[insight.dataKey] ?? [];\n trendsByDataKey[insight.dataKey].push(insight);\n }\n\n const entities = intl.formatMessage(\n { id: 'entity-type-time-series' },\n { count: entitiesCount },\n );\n const entitiesList = Object.entries(trendsByDataKey).map(([dataKey, insights]) => {\n const generalTrend = insights.find((insight) => insight.type === 'general-trend');\n const localTrends = insights.filter((insight) => insight !== generalTrend);\n const primaryTrend = generalTrend ?? localTrends[0];\n const secondaryTrends: (TrendNode | GeneralTrendNode)[] = insights.filter(\n (insight) => insight !== primaryTrend,\n );\n const mainSummary: string = intl.formatMessage(\n { id: 'time-series-general-trend' },\n {\n dataKey: entitiesCount !== 1 ? dataKey : '',\n trend: intl.formatMessage({ id: `trend-${primaryTrend.change.strength}` }),\n from: intl.formatNumber(primaryTrend.change.from),\n to: intl.formatNumber(primaryTrend.change.to),\n },\n );\n const secondarylSummaries = secondaryTrends.map((trend) =>\n intl.formatMessage(\n { id: 'time-series-local-trend' },\n {\n trend: intl.formatMessage({ id: `trend-${trend.change.strength}` }),\n from: formatValue(intl, trend.from, {\n siblingsTimeMark: trend.to,\n datesWithTime,\n maxListSymbols,\n }),\n to: formatValue(intl, trend.to, {\n siblingsTimeMark: trend.from,\n datesWithTime,\n maxListSymbols,\n }),\n },\n ),\n );\n\n if (secondarylSummaries.length === 0) {\n return mainSummary;\n }\n\n return intl.formatMessage(\n {\n id: 'time-series-detailed-trend',\n },\n {\n general: mainSummary,\n locals: formatLimitedSizeList(secondarylSummaries, intl, 400, false),\n },\n );\n });\n\n const summary = intl.formatMessage(\n { id: dataTitle ? 'chart-summary' : 'chart-summary-no-label' },\n { entities, entitiesList: intl.formatList(entitiesList), label: dataTitle },\n );\n\n if (dataRnageSummary.length > 0) {\n return `${summary}\\n${dataRnageSummary}`;\n }\n\n return summary;\n } else if (dataType === 'points-cloud') {\n const clustersInsights = insights as ClusterNode[];\n const biggestClusters = clustersInsights.slice(0, clustersLimit);\n\n const maxSize = clustersInsights[0].size;\n const minSize = clustersInsights[clustersInsights.length - 1].size;\n const entities =\n maxSize === minSize\n ? intl.formatMessage(\n { id: 'entity-type-clusters-single-size' },\n { count: entitiesCount, size: maxSize },\n )\n : intl.formatMessage(\n { id: 'entity-type-clusters-multiple-size' },\n { count: entitiesCount, maxSize, minSize },\n );\n const entitiesList = biggestClusters.map((clusterInsight) => {\n const labels = formatLimitedSizeList(clusterInsight.labels, intl, maxListSymbols);\n const anonymous =\n clusterInsight.labels.length === 0 || labels === String(clusterInsight.size);\n\n return intl.formatMessage(\n {\n id: anonymous ? 'entity-type-clusters-label-anonymous' : 'entity-type-clusters-label',\n },\n {\n relativeSize: intl.formatMessage({ id: `relative-size-${clusterInsight.relativeSize}` }),\n labels,\n size: clusterInsight.size,\n x: intl.formatNumber(clusterInsight.center.x),\n xLabel: clusterInsight.center.xLabel,\n y: intl.formatNumber(clusterInsight.center.y),\n yLabel: clusterInsight.center.yLabel,\n },\n );\n });\n if (insights.length > clustersLimit) {\n entitiesList.push(\n intl.formatMessage({ id: 'ellipsis' }, { leftCount: insights.length - clustersLimit }),\n );\n }\n\n const summary = intl.formatMessage(\n { id: dataTitle ? 'chart-summary' : 'chart-summary-no-label' },\n { entities, entitiesList: intl.formatList(entitiesList), label: dataTitle },\n );\n\n if (dataRnageSummary.length > 0) {\n return `${summary}\\n${dataRnageSummary}`;\n }\n\n return summary;\n } else if (dataType === 'values-set') {\n const [valuesInsight] = insights as [ComparisonNode];\n const entities = intl.formatMessage({ id: 'entity-type-values' }, { count: entitiesCount });\n const entitiesList = formatValuesList(valuesInsight.values, {\n intl,\n limit: valuesLimit,\n datesWithTime,\n maxListSymbols,\n });\n\n const sumamry = intl.formatMessage(\n { id: dataTitle ? 'chart-summary' : 'chart-summary-no-label' },\n { entities, entitiesList: entitiesList, label: dataTitle },\n );\n\n return sumamry;\n } else if (dataType === 'grouped-values' || dataType === 'indexed-groups') {\n const groupInsights = insights as ComparisonNode[];\n const valueCounts = groupInsights.map((group) => group.values.length);\n const minValuesCount = Math.min(...valueCounts);\n const maxValuesCount = Math.max(...valueCounts);\n\n const entities =\n minValuesCount === maxValuesCount\n ? intl.formatMessage(\n { id: 'entity-type-grouped-values-single-size' },\n { groupsCount: groupInsights.length, valuesCount: valueCounts[0] },\n )\n : intl.formatMessage(\n { id: 'entity-type-grouped-values-multiple-size' },\n { groupsCount: groupInsights.length, minValuesCount, maxValuesCount },\n );\n const entitiesList = groupInsights.slice(0, groupsLimit).map(({ label, values }) => {\n const formattedValues = formatValuesList(values, {\n intl,\n limit: valuesLimit,\n datesWithTime,\n maxListSymbols,\n });\n return intl.formatMessage({ id: 'values-group' }, { label, values: formattedValues });\n });\n if (groupInsights.values.length > groupsLimit) {\n entitiesList.push(\n intl.formatMessage(\n { id: 'ellipsis' },\n { leftCount: groupInsights.values.length - groupsLimit },\n ),\n );\n }\n\n const sumamry = intl.formatMessage(\n { id: dataTitle ? 'chart-summary' : 'chart-summary-no-label' },\n { entities, entitiesList: intl.formatList(entitiesList), label: dataTitle },\n );\n\n return sumamry;\n }\n\n return null;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"serialize.js","names":["getIntl","formatLimitedSizeList","items","intl","maxFinalStringLength","includeEllipsis","limit","length","stringifyList","cutItems","slice","push","formatMessage","id","leftCount","formatList","formattedList","overflowRatio","Math","floor","maxIncreaseAttempts","i","newLimitFormattedList","isReactComponent","obj","displayName","guessNumberAsTimestampMinDate","Date","getTime","formatValue","value","siblingsTimeMark","maxListSymbols","datesWithTime","formatNumber","abs","formatDate","dateStyle","timeStyle","Array","isArray","formattedValues","map","subValue","String","formatValuesList","values","result","rawValue","label","undefined","serialize","insights","dataType","dataRange","dataTitle","entitiesCount","clustersLimit","valuesLimit","groupsLimit","locale","translations","availableLocales","dataRangeSummary","range","from","to","trendsInsights","trendsByDataKey","insight","dataKey","entities","count","entitiesList","Object","entries","generalTrend","find","type","localTrends","filter","primaryTrend","secondaryTrends","mainSummary","trend","change","strength","secondarylSummaries","general","locals","summary","clustersInsights","biggestClusters","maxSize","size","minSize","clusterInsight","labels","anonymous","relativeSize","x","center","xLabel","y","yLabel","valuesInsight","groupInsights","valueCounts","group","minValuesCount","min","maxValuesCount","max","groupsCount","valuesCount","sumamry"],"sources":["../../../src/a11y/serialize.ts"],"sourcesContent":["import { AnalyzedData, ClusterNode, ComparisonNode, GeneralTrendNode, TrendNode } from './insights';\n\nimport React from 'react';\nimport { DataSummarizationConfig } from './hints';\nimport { getIntl, Intl } from './intl';\n\nconst formatLimitedSizeList = (\n items: unknown[],\n intl: Intl,\n maxFinalStringLength = 100,\n includeEllipsis = true,\n) => {\n let limit = items.length;\n const stringifyList = () => {\n const cutItems = items.slice(0, limit);\n if (items.length > limit && includeEllipsis) {\n cutItems.push(intl.formatMessage({ id: 'ellipsis' }, { leftCount: limit - items.length }));\n }\n\n return intl.formatList(cutItems);\n };\n\n let formattedList = stringifyList();\n if (formattedList.length <= maxFinalStringLength) {\n return formattedList;\n }\n\n const overflowRatio = formattedList.length / maxFinalStringLength;\n limit = Math.floor(limit / overflowRatio);\n if (limit === 0) {\n limit = 1;\n return stringifyList();\n }\n\n formattedList = stringifyList();\n\n const maxIncreaseAttempts = 4;\n for (let i = 0; i < maxIncreaseAttempts; i++) {\n limit++;\n const newLimitFormattedList = stringifyList();\n\n if (newLimitFormattedList.length > maxFinalStringLength) {\n return formattedList;\n }\n\n formattedList = newLimitFormattedList;\n }\n\n return formattedList;\n};\n\nconst isReactComponent = (obj: any) =>\n typeof obj === 'object' && obj && 'displayName' in obj && typeof obj.displayName === 'string';\n\nconst guessNumberAsTimestampMinDate = new Date('1975').getTime();\n\nexport const formatValue = (\n intl: Intl,\n value: unknown,\n {\n siblingsTimeMark,\n maxListSymbols,\n datesWithTime,\n }: {\n siblingsTimeMark?: unknown;\n maxListSymbols?: number;\n datesWithTime?: boolean;\n } = {},\n): string => {\n if (typeof value === 'number') {\n if (value >= guessNumberAsTimestampMinDate) {\n return formatValue(intl, new Date(value), {\n siblingsTimeMark,\n maxListSymbols,\n datesWithTime,\n });\n }\n return intl.formatNumber(value);\n }\n if (value instanceof Date) {\n if (\n datesWithTime ||\n (siblingsTimeMark &&\n siblingsTimeMark instanceof Date &&\n Math.abs(value.getTime() - siblingsTimeMark.getTime()) < 1000 * 60 * 60 * 24 * 5)\n ) {\n return intl.formatDate(value, { dateStyle: 'medium', timeStyle: 'medium' });\n }\n return intl.formatDate(value, { dateStyle: 'medium' });\n }\n\n if (Array.isArray(value)) {\n const formattedValues = value.map((subValue) =>\n formatValue(intl, subValue, { siblingsTimeMark, maxListSymbols, datesWithTime }),\n );\n\n return formatLimitedSizeList(formattedValues, intl, maxListSymbols);\n }\n\n if (isReactComponent(value)) {\n return String((value as React.FC).displayName);\n }\n\n return String(value);\n};\n\nconst formatValuesList = (\n values: { label: string; value: unknown }[],\n {\n intl,\n limit,\n datesWithTime,\n maxListSymbols,\n }: { intl: Intl; limit: number; datesWithTime?: boolean; maxListSymbols: number },\n) => {\n const result = values.slice(0, limit).map(({ value: rawValue, label }) => {\n if (rawValue === undefined) return label;\n\n const value = formatValue(intl, rawValue, { datesWithTime, maxListSymbols });\n\n if (String(value) === String(label)) return value;\n\n return intl.formatMessage({ id: 'value-labeled' }, { label, value });\n });\n if (values.length > limit) {\n result.push(\n intl.formatMessage({ id: 'ellipsis' }, { leftCount: limit - values.values.length }),\n );\n }\n\n return intl.formatList(result);\n};\n\nexport const serialize = (\n { insights, dataType, dataRange, dataTitle, entitiesCount }: AnalyzedData,\n {\n datesWithTime,\n maxListSymbols,\n clustersLimit,\n valuesLimit,\n groupsLimit,\n }: DataSummarizationConfig,\n {\n locale,\n translations,\n availableLocales,\n }: {\n locale: string;\n translations?: { [messageId: string]: string };\n availableLocales?: { [localeId: string]: any };\n },\n): string | null => {\n if (insights.length === 0) return null;\n\n const intl = getIntl(locale, translations, availableLocales);\n\n const dataRangeSummary = intl.formatList(\n dataRange.map((range) => {\n const from = formatValue(intl, range.from, {\n siblingsTimeMark: range.to,\n datesWithTime,\n maxListSymbols,\n });\n const to = formatValue(intl, range.to, {\n siblingsTimeMark: range.from,\n datesWithTime,\n maxListSymbols,\n });\n\n return intl.formatMessage(\n { id: range.label ? 'additional-axe' : 'additional-axe-no-label' },\n { from, to, label: range.label },\n );\n }),\n );\n\n if (dataType === 'time-series') {\n const trendsInsights = insights as (GeneralTrendNode | TrendNode)[];\n const trendsByDataKey: { [label: string]: (GeneralTrendNode | TrendNode)[] } = {};\n for (const insight of trendsInsights) {\n trendsByDataKey[insight.dataKey] = trendsByDataKey[insight.dataKey] ?? [];\n trendsByDataKey[insight.dataKey].push(insight);\n }\n\n const entities = intl.formatMessage(\n { id: 'entity-type-time-series' },\n { count: entitiesCount },\n );\n const entitiesList = Object.entries(trendsByDataKey).map(([dataKey, insights]) => {\n const generalTrend = insights.find((insight) => insight.type === 'general-trend');\n const localTrends = insights.filter((insight) => insight !== generalTrend);\n const primaryTrend = generalTrend ?? localTrends[0];\n const secondaryTrends: (TrendNode | GeneralTrendNode)[] = insights.filter(\n (insight) => insight !== primaryTrend,\n );\n const mainSummary: string = intl.formatMessage(\n { id: 'time-series-general-trend' },\n {\n dataKey: entitiesCount !== 1 ? dataKey : '',\n trend: intl.formatMessage({ id: `trend-${primaryTrend.change.strength}` }),\n from: intl.formatNumber(primaryTrend.change.from),\n to: intl.formatNumber(primaryTrend.change.to),\n },\n );\n const secondarylSummaries = secondaryTrends.map((trend) =>\n intl.formatMessage(\n { id: 'time-series-local-trend' },\n {\n trend: intl.formatMessage({ id: `trend-${trend.change.strength}` }),\n from: formatValue(intl, trend.from, {\n siblingsTimeMark: trend.to,\n datesWithTime,\n maxListSymbols,\n }),\n to: formatValue(intl, trend.to, {\n siblingsTimeMark: trend.from,\n datesWithTime,\n maxListSymbols,\n }),\n },\n ),\n );\n\n if (secondarylSummaries.length === 0) {\n return mainSummary;\n }\n\n return intl.formatMessage(\n {\n id: 'time-series-detailed-trend',\n },\n {\n general: mainSummary,\n locals: formatLimitedSizeList(secondarylSummaries, intl, 400, false),\n },\n );\n });\n\n const summary = intl.formatMessage(\n { id: dataTitle ? 'chart-summary' : 'chart-summary-no-label' },\n { entities, entitiesList: intl.formatList(entitiesList), label: dataTitle },\n );\n\n if (dataRangeSummary.length > 0) {\n return `${summary}\\n${dataRangeSummary}`;\n }\n\n return summary;\n } else if (dataType === 'points-cloud') {\n const clustersInsights = insights as ClusterNode[];\n const biggestClusters = clustersInsights.slice(0, clustersLimit);\n\n const maxSize = clustersInsights[0].size;\n const minSize = clustersInsights[clustersInsights.length - 1].size;\n const entities =\n maxSize === minSize\n ? intl.formatMessage(\n { id: 'entity-type-clusters-single-size' },\n { count: entitiesCount, size: maxSize },\n )\n : intl.formatMessage(\n { id: 'entity-type-clusters-multiple-size' },\n { count: entitiesCount, maxSize, minSize },\n );\n const entitiesList = biggestClusters.map((clusterInsight) => {\n const labels = formatLimitedSizeList(clusterInsight.labels, intl, maxListSymbols);\n const anonymous =\n clusterInsight.labels.length === 0 || labels === String(clusterInsight.size);\n\n return intl.formatMessage(\n {\n id: anonymous ? 'entity-type-clusters-label-anonymous' : 'entity-type-clusters-label',\n },\n {\n relativeSize: intl.formatMessage({ id: `relative-size-${clusterInsight.relativeSize}` }),\n labels,\n size: clusterInsight.size,\n x: intl.formatNumber(clusterInsight.center.x),\n xLabel: clusterInsight.center.xLabel,\n y: intl.formatNumber(clusterInsight.center.y),\n yLabel: clusterInsight.center.yLabel,\n },\n );\n });\n if (insights.length > clustersLimit) {\n entitiesList.push(\n intl.formatMessage({ id: 'ellipsis' }, { leftCount: insights.length - clustersLimit }),\n );\n }\n\n const summary = intl.formatMessage(\n { id: dataTitle ? 'chart-summary' : 'chart-summary-no-label' },\n { entities, entitiesList: intl.formatList(entitiesList), label: dataTitle },\n );\n\n if (dataRangeSummary.length > 0) {\n return `${summary}\\n${dataRangeSummary}`;\n }\n\n return summary;\n } else if (dataType === 'values-set') {\n const [valuesInsight] = insights as [ComparisonNode];\n const entities = intl.formatMessage({ id: 'entity-type-values' }, { count: entitiesCount });\n const entitiesList = formatValuesList(valuesInsight.values, {\n intl,\n limit: valuesLimit,\n datesWithTime,\n maxListSymbols,\n });\n\n return intl.formatMessage(\n { id: dataTitle ? 'chart-summary' : 'chart-summary-no-label' },\n { entities, entitiesList: entitiesList, label: dataTitle },\n );\n } else if (dataType === 'grouped-values' || dataType === 'indexed-groups') {\n const groupInsights = insights as ComparisonNode[];\n const valueCounts = groupInsights.map((group) => group.values.length);\n const minValuesCount = Math.min(...valueCounts);\n const maxValuesCount = Math.max(...valueCounts);\n\n const entities =\n minValuesCount === maxValuesCount\n ? intl.formatMessage(\n { id: 'entity-type-grouped-values-single-size' },\n { groupsCount: groupInsights.length, valuesCount: valueCounts[0] },\n )\n : intl.formatMessage(\n { id: 'entity-type-grouped-values-multiple-size' },\n { groupsCount: groupInsights.length, minValuesCount, maxValuesCount },\n );\n const entitiesList = groupInsights.slice(0, groupsLimit).map(({ label, values }) => {\n const formattedValues = formatValuesList(values, {\n intl,\n limit: valuesLimit,\n datesWithTime,\n maxListSymbols,\n });\n return intl.formatMessage({ id: 'values-group' }, { label, values: formattedValues });\n });\n if (groupInsights.values.length > groupsLimit) {\n entitiesList.push(\n intl.formatMessage(\n { id: 'ellipsis' },\n { leftCount: groupInsights.values.length - groupsLimit },\n ),\n );\n }\n\n const sumamry = intl.formatMessage(\n { id: dataTitle ? 'chart-summary' : 'chart-summary-no-label' },\n { entities, entitiesList: intl.formatList(entitiesList), label: dataTitle },\n );\n\n return sumamry;\n }\n\n return null;\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Plot.d.js","names":["MapProps"],"sources":["../../../src/types/Plot.d.ts"],"sourcesContent":["import { IBoxProps } from '@semcore/flex-box';\nimport { ReturnEl } from '@semcore/core';\nimport { MapProps } from './Plot';\nimport IContext from './context';\n\nexport interface IPlotProps extends IContext, IBoxProps {\n /** Width of the svg element\n * @default 0*/\n width?: number;\n /** Height of the svg element\n * @default 0*/\n height?: number;\n /** Human readable chart name (e.g \"Last market trends\") */\n label?: string;\n /**\n * Locale for displaying the days of a week and months, to be transferred to `Intl`\n * @default en\n * */\n locale?: NavigatorLanguage['language'];\n /** Optional prop to tune up alt text generating for charts */\n a11yAltTextConfig?: PlotSummarizerConfig;\n}\n\nexport type PlotSummarizerConfig = {\n /** Totally disable automatic data summarization */\n disable?: boolean;\n /** Disable automatic data summarization and use provided text */\n override?: string;\n /** Tuning up time series trends analyzing. Represents angle tangens of time series change of different strength */\n trendTangens?: {\n /** Angle tangens of time series that have meaningful trending change\n * @default 1/15\n */\n static?: number;\n /** Angle tangens of time series that have weak trending change\n * @default 1/10\n */\n weak?: number;\n /** Angle tangens of time series that have medium trending change\n * @default 1/5\n */\n medium?: number;\n /** Angle tangens of time series that have strong trending change\n * @default Infinity\n */\n strong?: number;\n };\n /** Tuning up time series local trends detection based on moving averages */\n movingAverage?: {\n /** Frame size of long moving average\n * @default Math.sqrt(data.length)\n */\n longSize?: number;\n /** Frame size of short moving average\n * @default Math.sqrt(data.length)/2\n */\n shortSize?: number;\n /** Absolute difference between values on moving averages crossing to\n * be handled as local trend change.\n * @default StandardDeviation/10\n */\n notableDiff?: number;\n };\n /** The way data to be interpreted as. By default is based on used used Plot elements and data structure.\n */\n dataType?: 'time-series' | 'points-cloud' | 'values-set';\n /** Grid size to split data of point clouds into clusters.\n */\n clustersGridSize?: number;\n /** Limits some output lists in chart alt text\n * @default 100\n * **/\n maxListSymbols?: number;\n /** Always add time to dates in chart alt text **/\n datesWithTime?: boolean;\n /** Described clusters count before text \"and X more\"\n * @default false\n * **/\n clustersLimit?: number;\n /** Described values count before text \"and X more\"\n * @default false\n * **/\n valuesLimit?: number;\n /** Described grouped value groups count before text \"and X more\"\n * @default false\n * **/\n groupsLimit?: number;\n};\n\nexport type MapProps<Props, Ctx = {}, UCProps = {}> = Props & {\n children?:\n | ((props: Props & Ctx, handlers: UCProps) => Props | React.PropsWithChildren)\n | React.ReactNode;\n};\n\ndeclare const Plot: <T>(props: MapProps<IPlotProps & T>) => ReturnEl;\n\nexport default Plot;\n"],"mappings":"AAEA,SAASA,QAAT,QAAyB,QAAzB"}
1
+ {"version":3,"file":"Plot.d.js","names":["MapProps"],"sources":["../../../src/types/Plot.d.ts"],"sourcesContent":["import { IBoxProps } from '@semcore/flex-box';\nimport { ReturnEl } from '@semcore/core';\nimport { MapProps } from './Plot';\nimport IContext from './context';\n\nexport interface IPlotProps extends IContext, IBoxProps {\n /** Width of the svg element\n * @default 0*/\n width?: number;\n /** Height of the svg element\n * @default 0*/\n height?: number;\n /** Human readable chart name (e.g \"Last market trends\") */\n label?: string;\n /**\n * Locale for displaying the days of a week and months, to be transferred to `Intl`\n * @default en\n * */\n locale?: NavigatorLanguage['language'];\n /** Optional prop to tune up alt text generating for charts */\n a11yAltTextConfig?: PlotSummarizerConfig;\n}\n\nexport type PlotSummarizerConfig = {\n /** Totally disable automatic data summarization */\n disable?: boolean;\n /** Disable automatic data summarization and use provided text */\n override?: string;\n /** Tuning up time series trends analyzing. Represents angle tangens of time series change of different strength */\n trendTangens?: {\n /** Angle tangens of time series that have meaningful trending change\n * @default 1/15\n */\n static?: number;\n /** Angle tangens of time series that have weak trending change\n * @default 1/10\n */\n weak?: number;\n /** Angle tangens of time series that have medium trending change\n * @default 1/5\n */\n medium?: number;\n /** Angle tangens of time series that have strong trending change\n * @default Infinity\n */\n strong?: number;\n };\n /** Tuning up time series local trends detection based on moving averages */\n movingAverage?: {\n /** Frame size of long moving average\n * @default Math.sqrt(data.length)\n */\n longSize?: number;\n /** Frame size of short moving average\n * @default Math.sqrt(data.length)/2\n */\n shortSize?: number;\n /** Absolute difference between values on moving averages crossing to\n * be handled as local trend change.\n * @default StandardDeviation/10\n */\n notableDiff?: number;\n };\n /** The way data to be interpreted as. By default is based on used used Plot elements and data structure.\n */\n dataType?: 'time-series' | 'points-cloud' | 'values-set';\n /** Grid size to split data of point clouds into clusters.\n */\n clustersGridSize?: number;\n /** Limits some output lists in chart alt text\n * @default 100\n * **/\n maxListSymbols?: number;\n /** Always add time to dates in chart alt text **/\n datesWithTime?: boolean;\n /** Described clusters count before text \"and X more\"\n * @default false\n * **/\n clustersLimit?: number;\n /** Described values count before text \"and X more\"\n * @default false\n * **/\n valuesLimit?: number;\n /** Described grouped value groups count before text \"and X more\"\n * @default false\n * **/\n groupsLimit?: number;\n /** Additional field for extra text description to the data\n * **/\n additionalFields?: string[];\n};\n\nexport type MapProps<Props, Ctx = {}, UCProps = {}> = Props & {\n children?:\n | ((props: Props & Ctx, handlers: UCProps) => Props | React.PropsWithChildren)\n | React.ReactNode;\n};\n\ndeclare const Plot: <T>(props: MapProps<IPlotProps & T>) => ReturnEl;\n\nexport default Plot;\n"],"mappings":"AAEA,SAASA,QAAT,QAAyB,QAAzB"}
@@ -85,6 +85,9 @@ export type PlotSummarizerConfig = {
85
85
  * @default false
86
86
  * **/
87
87
  groupsLimit?: number;
88
+ /** Additional field for extra text description to the data
89
+ * **/
90
+ additionalFields?: string[];
88
91
  };
89
92
 
90
93
  export type MapProps<Props, Ctx = {}, UCProps = {}> = Props & {
@@ -59,6 +59,7 @@ export declare type DataSummarizationConfig = {
59
59
  groupsLimit: number;
60
60
  disable: boolean;
61
61
  override: string | undefined;
62
+ additionalFields: string[];
62
63
  };
63
64
  export declare type PartialDataSummarizationConfig = DeepPartial<DataSummarizationConfig>;
64
65
  export declare const makeDataHintsContainer: () => DataStructureHints;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/d3-chart",
3
3
  "description": "Semrush D3 Chart Component",
4
- "version": "2.12.2",
4
+ "version": "2.13.1",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",