@semcore/d3-chart 2.9.1 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +1 -1
- package/lib/cjs/Area.js +10 -10
- package/lib/cjs/Axis.js +14 -14
- package/lib/cjs/Bar.js +9 -9
- package/lib/cjs/Bubble.js +11 -11
- package/lib/cjs/Donut.js +8 -8
- package/lib/cjs/Dots.js +10 -10
- package/lib/cjs/HorizontalBar.js +9 -9
- package/lib/cjs/Hover.js +4 -4
- package/lib/cjs/Line.js +9 -9
- package/lib/cjs/Plot.js +4 -4
- package/lib/cjs/Radar.js +42 -34
- package/lib/cjs/Radar.js.map +1 -1
- package/lib/cjs/RadialTree.js +13 -13
- package/lib/cjs/ReferenceLine.js +10 -10
- package/lib/cjs/ScatterPlot.js +8 -8
- package/lib/cjs/Tooltip.js +29 -21
- package/lib/cjs/Tooltip.js.map +1 -1
- package/lib/cjs/Venn.js +8 -8
- package/lib/cjs/a11y/PlotA11yModule.js +3 -3
- package/lib/cjs/a11y/PlotA11yView.js +4 -4
- package/lib/cjs/a11y/insights.js +46 -0
- package/lib/cjs/a11y/insights.js.map +1 -1
- package/lib/cjs/a11y/serialize.js +2 -2
- package/lib/cjs/a11y/serialize.js.map +1 -1
- package/lib/cjs/style/tooltip.shadow.css +9 -0
- package/lib/cjs/types/Tooltip.d.js.map +1 -1
- package/lib/es6/Area.js +10 -10
- package/lib/es6/Axis.js +14 -14
- package/lib/es6/Bar.js +9 -9
- package/lib/es6/Bubble.js +11 -11
- package/lib/es6/Donut.js +8 -8
- package/lib/es6/Dots.js +10 -10
- package/lib/es6/HorizontalBar.js +9 -9
- package/lib/es6/Hover.js +4 -4
- package/lib/es6/Line.js +9 -9
- package/lib/es6/Plot.js +4 -4
- package/lib/es6/Radar.js +42 -34
- package/lib/es6/Radar.js.map +1 -1
- package/lib/es6/RadialTree.js +13 -13
- package/lib/es6/ReferenceLine.js +10 -10
- package/lib/es6/ScatterPlot.js +8 -8
- package/lib/es6/Tooltip.js +30 -21
- package/lib/es6/Tooltip.js.map +1 -1
- package/lib/es6/Venn.js +8 -8
- package/lib/es6/a11y/PlotA11yModule.js +3 -3
- package/lib/es6/a11y/PlotA11yView.js +4 -4
- package/lib/es6/a11y/insights.js +47 -0
- package/lib/es6/a11y/insights.js.map +1 -1
- package/lib/es6/a11y/serialize.js +2 -2
- package/lib/es6/a11y/serialize.js.map +1 -1
- package/lib/es6/style/tooltip.shadow.css +9 -0
- package/lib/es6/types/Tooltip.d.js.map +1 -1
- package/lib/types/Tooltip.d.ts +1 -1
- package/lib/types/a11y/insights.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insights.js","names":["getPropByPath","obj","path","String","split","i","length","movingAverage","data","frame","result","Math","floor","ceil","startIndex","max","endIndex","min","part","slice","sum","reduce","item","value","push","extractDataInsights","hints","config","insights","dataType","dataRange","groupKeys","groups","dataTitle","axesTitle","vertical","horizontal","entitiesCount","keysMap","Object","fromEntries","keys","Array","isArray","map","key","fields","horizontalAxes","size","verticalAxes","valueAxes","possibleGroupKeys","filter","allData","row","Set","firstRow","lastRow","possibleValueKeys","valuesKeys","possibleLabelKeys","labelsKey","fromKey","toKey","from","titles","getHorizontalAxesTitle","to","label","valueKey","values","average","variance","standardDeviation","sqrt","trendStrengths","frameSize","longMovingAverageSize","longSize","shortMovingAverageSize","shortSize","longMovingAverage","shortMovingAverage","table","toFixed","NaN","strengthsMap","growth","weak","medium","strong","reduction","recordTrend","width","type","normalizedHeight","abs","pointsDensity","normalizedWidth","tang","trendStrength","trendTangens","strength","priority","change","dataKey","generalTrend","localTrends","notableDiff","lastSwitch","lastSwitchValue","shortWasAbove","shortIsAbove","diff","lastIndex","lastValue","guessedXKey","guessedYKey","guessedValueKey","guessedLabelKey","normalized","x","y","gridSize","clustersGridSize","grid","usedX","usedY","add","orderedX","sort","a","b","orderedY","distancesX","index","distancesY","avgDistanceX","avgDistanceY","belowAvgDistancesX","belowAvgDistancesY","betweenDistanceX","betweenDistanceY","avgDistance","Number","isNaN","takenY","takenX","gridX","round","gridY","clusterId","members","clusters","parseInt","pointHandled","xNeighbour","yNeighbour","undefined","clustersInsights","labels","uniqueLabels","relativeSize","center","xLabel","yLabel","relativeSizeDistrivution","Infinity","averageSize","cluster","smallerClusters","smallerSize","biggerClusters","biggerSize","normalizingSize","averageSizeNormalized","smallerSizeNormalized","biggerSizeNormalized","sizeMapBezier","makeBezier","weight","height","clustersInsight","mappedSize","sortedX","sortedY","makeRowKey","join","allRowsIds","groupedValues","groupName","rows","grouppingKeys","entries","groupKey","group","field","getVerticalAxesTitle","valuesAxes","averageValue","getValueAxesTitle","hasHighPriorityInsights","some","insight"],"sources":["../../../src/a11y/insights.ts"],"sourcesContent":["import { makeBezier } from './bezier';\nimport { DataStructureHints, DataSummarizationConfig } from './hints';\n\nexport type TrendNode = {\n type: 'trend';\n priority: number;\n change: {\n from: number;\n to: number;\n strength:\n | 'strong-reduction'\n | 'reduction'\n | 'weak-reduction'\n | 'static'\n | 'weak-growth'\n | 'growth'\n | 'strong-growth';\n };\n from: unknown;\n to: unknown;\n dataKey: string | number;\n};\nexport type GeneralTrendNode = Omit<TrendNode, 'type'> & { type: 'general-trend' };\nexport type ComparisonNode = {\n type: 'comparison';\n label?: string;\n priority: number;\n values: {\n value: unknown;\n label: string;\n }[];\n};\n\ntype ClusterRelativeSize =\n | 'significantly-smaller'\n | 'smaller'\n | 'slightly-smaller'\n | 'average'\n | 'slightly-bigger'\n | 'bigger'\n | 'significantly-bigger';\nexport type ClusterNode = {\n type: 'cluster';\n priority: number;\n size: number;\n labels: unknown[];\n center: {\n x: number;\n xLabel: string | number;\n y: number;\n yLabel: string | number;\n };\n relativeSize: ClusterRelativeSize;\n};\nexport type Insight = TrendNode | GeneralTrendNode | ComparisonNode | ClusterNode;\n\nexport type SerializableDataType = 'time-series' | 'points-cloud' | 'values-set' | 'grouped-values';\n\nexport type AnalyzedData = {\n insights: Insight[];\n dataType: SerializableDataType;\n dataRange: {\n from: string | number | Date;\n to: string | number | Date;\n label: string | number | null;\n }[];\n dataTitle: string | null;\n entitiesCount: number;\n};\n\nconst getPropByPath = (obj: any, path: number | string | string[]): unknown => {\n if (typeof path === 'number') path = String(path);\n if (typeof path === 'string') path = path.split('.');\n for (let i = 0; i < path.length; i++) {\n if (typeof obj !== 'object' || obj === null) return obj;\n obj = obj[path[i]];\n }\n return obj;\n};\n\nconst movingAverage = (data: number[], frame: number) => {\n const result: number[] = [];\n frame = Math.floor(frame) % 2 === data.length % 2 ? Math.floor(frame) : Math.ceil(frame);\n\n for (let i = 0; i < data.length; i++) {\n let startIndex = Math.max(0, i - Math.floor(frame / 2));\n let endIndex = Math.min(data.length, i + Math.ceil(frame / 2));\n startIndex = Math.min(startIndex, Math.max(0, endIndex - frame));\n endIndex = Math.max(endIndex, Math.min(data.length, startIndex + frame));\n const part = data.slice(startIndex, endIndex);\n const sum = part.reduce((sum, item) => sum + item, 0);\n const value = sum / part.length;\n result.push(value);\n }\n return result;\n};\n\nexport const extractDataInsights = (\n data: Record<string, unknown>[] | Record<string, unknown>,\n hints: DataStructureHints,\n config: DataSummarizationConfig,\n): AnalyzedData => {\n let insights: AnalyzedData['insights'] = [];\n let dataType: AnalyzedData['dataType'] | null = config.dataType ?? hints.dataType;\n const dataRange: AnalyzedData['dataRange'] = [];\n let groupKeys = [...hints.groups];\n const dataTitle: string | null = hints.axesTitle.vertical ?? hints.axesTitle.horizontal;\n let entitiesCount = 0;\n\n const keysMap = Object.fromEntries(\n Object.keys((Array.isArray(data) ? data[0] : data) ?? {}).map((key) => [key, true]),\n );\n\n if (!dataType) {\n if (\n ((keysMap['y'] || keysMap['y1'] || keysMap['y2']) &&\n keysMap['x'] &&\n (keysMap['value'] || keysMap['label'])) ||\n (hints.fields.horizontalAxes.size > 0 &&\n hints.fields.verticalAxes.size > 0 &&\n hints.fields.valueAxes.size > 0)\n ) {\n dataType = 'points-cloud';\n } else if (Array.isArray(data) && data.length > 6) {\n dataType = 'time-series';\n } else if (Array.isArray(data) && Object.keys(keysMap).length >= 3) {\n const possibleGroupKeys = Object.keys(keysMap)\n .filter((key) => typeof data[0][key] === 'string')\n .filter((key) => {\n const allData = data.map((row) => row[key]);\n return new Set(allData).size === allData.length;\n });\n if (possibleGroupKeys.length === 1) {\n groupKeys = possibleGroupKeys;\n dataType = 'grouped-values';\n } else {\n dataType = 'values-set';\n }\n } else {\n dataType = 'values-set';\n }\n }\n\n if (dataType === 'grouped-values' && groupKeys.length === 0) {\n dataType = 'values-set';\n }\n\n if (Array.isArray(data)) {\n if (dataType === 'time-series') {\n const firstRow = data[0];\n const lastRow = data[data.length - 1];\n const possibleValueKeys = ['y', 'value', ...hints.fields.verticalAxes];\n const valuesKeys = possibleValueKeys.filter((key) => keysMap[key]);\n\n const possibleLabelKeys = ['label', 'x', ...hints.fields.horizontalAxes];\n const labelsKey = possibleLabelKeys.filter((key) => keysMap[key])[0];\n\n entitiesCount = Object.keys(valuesKeys).length;\n\n const fromKey = firstRow[labelsKey];\n const toKey = lastRow[labelsKey];\n const from =\n hints.titles.getHorizontalAxesTitle?.(fromKey as string) ??\n hints.titles.horizontalAxes[fromKey as string] ??\n (fromKey as string);\n const to =\n hints.titles.getHorizontalAxesTitle?.(toKey as string) ??\n hints.titles.horizontalAxes[toKey as string] ??\n (toKey as string);\n\n if (entitiesCount > 0) {\n dataRange.push({ from, to, label: hints.axesTitle.vertical ?? labelsKey });\n }\n\n for (const valueKey of valuesKeys) {\n const values = (data as Record<string, number>[]).map((row) => row[valueKey]);\n const sum = values.reduce((sum, value) => (sum += value), 0);\n const average = sum / values.length;\n const variance =\n (1 / values.length) *\n values.map((value) => (value - average) ** 2).reduce((sum, item) => sum + item, 0);\n const standardDeviation = Math.sqrt(variance);\n const trendStrengths = ['static', 'weak', 'medium', 'strong'] as const;\n\n const frameSize = Math.sqrt(values.length);\n const longMovingAverageSize = config.movingAverage.longSize ?? frameSize;\n const shortMovingAverageSize = config.movingAverage.shortSize ?? Math.sqrt(frameSize);\n const longMovingAverage = movingAverage(values, longMovingAverageSize);\n const shortMovingAverage =\n values.length < 8 ? values : movingAverage(values, shortMovingAverageSize);\n\n const table = [];\n for (const i in values) {\n table.push({\n value: values[i].toFixed(2),\n long: (longMovingAverage[i] ?? NaN).toFixed(2),\n short: (shortMovingAverage[i] ?? NaN).toFixed(2),\n });\n }\n\n const strengthsMap = {\n growth: {\n static: 'static',\n weak: 'weak-growth',\n medium: 'growth',\n strong: 'strong-growth',\n },\n reduction: {\n static: 'static',\n weak: 'weak-reduction',\n medium: 'reduction',\n strong: 'strong-reduction',\n },\n } as const;\n\n const recordTrend = ({\n value,\n width,\n label,\n type,\n }: {\n value: { from: number; to: number };\n width: number;\n label: { from: unknown; to: unknown; dataKey: string | number };\n type: 'general-trend' | 'trend';\n }): GeneralTrendNode | TrendNode | undefined => {\n for (let i = 0; i < trendStrengths.length; i++) {\n const normalizedHeight =\n Math.abs(value.from - value.to) / (hints.pointsDensity?.verticalAxes ?? 1);\n const normalizedWidth = width / (hints.pointsDensity?.horizontalAxes ?? 1);\n const tang = normalizedHeight / normalizedWidth;\n const trendStrength = trendStrengths[i];\n if (tang <= config.trendTangens[trendStrength] || i === trendStrengths.length - 1) {\n const strength =\n value.to > value.from\n ? strengthsMap.growth[trendStrength]\n : strengthsMap.reduction[trendStrength];\n\n return {\n type,\n priority: i,\n change: {\n from: value.from,\n to: value.to,\n strength,\n },\n from: label.from,\n to: label.to,\n dataKey: label.dataKey,\n };\n }\n }\n };\n\n const generalTrend = recordTrend({\n type: 'general-trend',\n value: {\n from: shortMovingAverage[0],\n to: shortMovingAverage[shortMovingAverage.length - 1],\n },\n width: data.length,\n label: { from, to, dataKey: valueKey },\n })!;\n const localTrends: Insight[] = [];\n {\n const notableDiff = config.movingAverage.notableDiff ?? standardDeviation / 10;\n let lastSwitch = 0;\n let lastSwitchValue = shortMovingAverage[lastSwitch];\n let shortWasAbove = shortMovingAverage[0] > longMovingAverage[0];\n for (let i = 1; i < data.length; i++) {\n const shortIsAbove = shortMovingAverage[i] > longMovingAverage[i];\n const diff = Math.abs(shortMovingAverage[i] - longMovingAverage[i]);\n\n if (shortIsAbove === shortWasAbove) continue;\n if (diff < notableDiff) continue;\n if (i === 0 && lastSwitch === data.length - 1) continue;\n if (i === data.length - 1 && lastSwitch === 0) continue;\n i = Math.min(i, data.length - 1);\n\n const fromKey = data[lastSwitch][labelsKey];\n const toKey = data[i][labelsKey];\n const from =\n hints.titles.getHorizontalAxesTitle?.(fromKey as string) ??\n hints.titles.horizontalAxes[fromKey as string] ??\n fromKey;\n const to =\n hints.titles.getHorizontalAxesTitle?.(toKey as string) ??\n hints.titles.horizontalAxes[toKey as string] ??\n toKey;\n localTrends.push(\n recordTrend({\n type: 'trend',\n value: {\n from: lastSwitchValue,\n to: shortMovingAverage[i],\n },\n width: i - lastSwitch,\n label: { from, to, dataKey: valueKey },\n })!,\n );\n lastSwitch = i;\n lastSwitchValue = shortMovingAverage[lastSwitch];\n shortWasAbove = shortIsAbove;\n }\n\n if (lastSwitch !== 0) {\n const lastIndex = shortMovingAverage.length - 1;\n const lastValue = shortMovingAverage[lastIndex];\n if (Math.abs(lastSwitchValue - lastValue) > notableDiff) {\n localTrends.push(\n recordTrend({\n type: 'trend',\n value: {\n from: lastSwitchValue,\n to: lastValue,\n },\n width: lastIndex - lastSwitch,\n label: {\n from: data[lastSwitch][labelsKey],\n to: data[lastIndex][labelsKey],\n dataKey: valueKey,\n },\n })!,\n );\n }\n }\n }\n insights.push(generalTrend);\n insights.push(...localTrends);\n }\n } else if (dataType === 'points-cloud') {\n const guessedXKey = [...hints.fields.horizontalAxes.values(), 'x'][0];\n const guessedYKey = [...hints.fields.verticalAxes.values(), 'y'][0];\n const guessedValueKey = [...hints.fields.valueAxes.values(), 'value'][0];\n const guessedLabelKey = keysMap['label'] ? 'label' : guessedValueKey;\n const normalized = data.map((row) => ({\n x: row[guessedXKey] as number,\n y: row[guessedYKey] as number,\n label: row[guessedLabelKey],\n value: row[guessedValueKey] as number,\n }));\n let gridSize =\n config.clustersGridSize ?? hints.grid.verticalAxes ?? hints.grid.horizontalAxes;\n if (!gridSize) {\n const usedX = new Set<number>();\n const usedY = new Set<number>();\n for (const { x, y } of normalized) {\n usedX.add(x);\n usedY.add(y);\n }\n const orderedX = [...usedX].sort((a, b) => a - b);\n const orderedY = [...usedY].sort((a, b) => a - b);\n const distancesX = orderedX.slice(0, -1).map((x, index) => orderedX[index + 1] - x);\n const distancesY = orderedY.slice(0, -1).map((y, index) => orderedY[index + 1] - y);\n const avgDistanceX = distancesX.reduce((sum, x) => sum + x, 0) / distancesX.length;\n const avgDistanceY = distancesY.reduce((sum, y) => sum + y, 0) / distancesY.length;\n const belowAvgDistancesX = distancesX.filter((x) => x < avgDistanceX);\n const belowAvgDistancesY = distancesY.filter((y) => y < avgDistanceY);\n const betweenDistanceX =\n belowAvgDistancesX.reduce((sum, x) => sum + x, 0) / belowAvgDistancesX.length;\n const betweenDistanceY =\n belowAvgDistancesY.reduce((sum, y) => sum + y, 0) / belowAvgDistancesY.length;\n let avgDistance = 0;\n if (!Number.isNaN(betweenDistanceX) && !Number.isNaN(betweenDistanceY)) {\n avgDistance = (betweenDistanceX + betweenDistanceY) / 2;\n } else if (!Number.isNaN(betweenDistanceX)) {\n avgDistance = betweenDistanceX;\n } else if (!Number.isNaN(betweenDistanceY)) {\n avgDistance = betweenDistanceY;\n } else {\n avgDistance = (avgDistanceX + avgDistanceY) / 2;\n }\n gridSize = Math.sqrt(Math.sqrt(avgDistance));\n }\n\n const grid: {\n [x: string]: { [y: string]: { clusterId: string; members: typeof normalized } };\n } = {};\n const takenY = new Set<number>();\n const takenX = new Set<number>();\n for (let i = 0; i < normalized.length; i++) {\n const { x, y } = normalized[i];\n const gridX = Math.round(x / gridSize!);\n const gridY = Math.round(y / gridSize!);\n takenY.add(y);\n takenX.add(x);\n grid[gridX] = grid[gridX] ?? {};\n grid[gridX][gridY] = grid[gridX][gridY] ?? { clusterId: `${gridX}_${gridY}`, members: [] };\n grid[gridX][gridY].members.push(normalized[i]);\n }\n const clusters: { [clusterId: string]: typeof normalized } = {};\n for (const x of Object.keys(grid).map((x) => parseInt(x, 10))) {\n for (const y of Object.keys(grid[x]).map((y) => parseInt(y, 10))) {\n let pointHandled = false;\n for (const xNeighbour of [x - 1, x, x + 1]) {\n for (const yNeighbour of [y - 1, y, y + 1]) {\n if (xNeighbour === undefined || yNeighbour === undefined) continue;\n if (xNeighbour === x && yNeighbour === y) continue;\n if (!grid[xNeighbour]?.[yNeighbour]) continue;\n pointHandled = true;\n grid[x][y].clusterId = grid[xNeighbour][yNeighbour].clusterId;\n break;\n }\n if (pointHandled) break;\n }\n clusters[grid[x][y].clusterId] = clusters[grid[x][y].clusterId] ?? [];\n clusters[grid[x][y].clusterId].push(...grid[x][y].members);\n }\n }\n const clustersInsights: ClusterNode[] = [];\n for (const clusterId in clusters) {\n const size = clusters[clusterId].reduce((sum, { value }) => sum + (value ?? 1), 0);\n const labels = [...clusters[clusterId]]\n .sort((a, b) => b.value - a.value)\n .map(({ label }) => label)\n .filter((label) => label !== undefined);\n const uniqueLabels = [...new Set(labels)];\n const x =\n clusters[clusterId].reduce((sum, { x }) => sum + x, 0) / clusters[clusterId].length;\n const y =\n clusters[clusterId].reduce((sum, { y }) => sum + y, 0) / clusters[clusterId].length;\n\n clustersInsights.push({\n type: 'cluster',\n priority: 1,\n size,\n labels: uniqueLabels,\n relativeSize: 'average',\n center: {\n x,\n y,\n xLabel: hints.axesTitle.horizontal ?? guessedXKey,\n yLabel: hints.axesTitle.vertical ?? guessedYKey,\n },\n });\n }\n entitiesCount = Object.keys(clusters).length;\n clustersInsights.sort((a, b) => b.size - a.size);\n\n const relativeSizeDistrivution = {\n ['significantly-bigger']: { max: Infinity, min: 0.85 },\n ['bigger']: { min: 0.7, max: 0.85 },\n ['slightly-bigger']: { min: 0.6, max: 0.7 },\n ['average']: { min: 0.4, max: 0.6 },\n ['slightly-smaller']: { max: 0.4, min: 0.3 },\n ['smaller']: { min: 0.15, max: 0.3 },\n ['significantly-smaller']: { min: -Infinity, max: 0.15 },\n } as { [key in ClusterRelativeSize]: { min: number; max: number } };\n const averageSize =\n clustersInsights.reduce((sum, cluster) => sum + cluster.size, 0) / clustersInsights.length;\n const smallerClusters = clustersInsights.filter((cluster) => cluster.size < averageSize);\n const smallerSize =\n smallerClusters.reduce((sum, cluster) => sum + cluster.size, 0) / smallerClusters.length;\n const biggerClusters = clustersInsights.filter((cluster) => cluster.size > averageSize);\n const biggerSize =\n biggerClusters.reduce((sum, cluster) => sum + cluster.size, 0) / biggerClusters.length;\n\n const normalizingSize = averageSize * 2;\n let averageSizeNormalized = averageSize / normalizingSize;\n let smallerSizeNormalized = smallerSize / normalizingSize;\n let biggerSizeNormalized = biggerSize / normalizingSize;\n\n smallerSizeNormalized = !Number.isNaN(smallerSizeNormalized) ? smallerSizeNormalized : 0.25;\n averageSizeNormalized = !Number.isNaN(averageSizeNormalized) ? averageSizeNormalized : 0.5;\n biggerSizeNormalized = !Number.isNaN(biggerSizeNormalized) ? biggerSizeNormalized : 0.75;\n\n const sizeMapBezier = makeBezier(\n [\n { x: 0, y: 0 },\n { x: 0.25, y: smallerSizeNormalized, weight: 10 },\n { x: 0.5, y: averageSizeNormalized },\n { x: 0.75, y: biggerSizeNormalized, weight: 10 },\n { x: 1, y: 1 },\n ],\n { width: 1, height: 1 },\n );\n\n for (const clustersInsight of clustersInsights) {\n const { size } = clustersInsight;\n const mappedSize = sizeMapBezier(size / normalizingSize);\n for (const relativeSize in relativeSizeDistrivution) {\n const { min, max } = relativeSizeDistrivution[relativeSize as ClusterRelativeSize];\n if (mappedSize > min && mappedSize <= max) {\n clustersInsight.relativeSize = relativeSize as ClusterRelativeSize;\n break;\n }\n }\n }\n\n insights.push(...clustersInsights);\n\n if (hints.axesTitle.horizontal) {\n const sortedX = [...takenX].sort((a, b) => a - b);\n dataRange.push({\n from: sortedX[0] as any,\n to: sortedX[sortedX.length - 1] as any,\n label: hints.axesTitle.horizontal,\n });\n }\n if (hints.axesTitle.vertical) {\n const sortedY = [...takenY].sort((a, b) => a - b);\n dataRange.push({\n from: sortedY[0] as any,\n to: sortedY[sortedY.length - 1] as any,\n label: hints.axesTitle.vertical,\n });\n }\n } else if (dataType === 'grouped-values') {\n const makeRowKey = (row: Record<string, unknown>) =>\n groupKeys.map((key, index) => `${index}-${getPropByPath(row, key)}`).join('-');\n const allRowsIds = data.map(makeRowKey);\n const groupedValues: {\n [groupId: string]: { groupName: string; rows: Record<string, unknown>[] };\n } = {};\n for (let i = 0; i < data.length; i++) {\n const row = data[i];\n const key = allRowsIds[i];\n groupedValues[key] = groupedValues[key] ?? {\n groupName: getPropByPath(row, groupKeys[0]) as string,\n rows: [],\n };\n groupedValues[key].rows.push(row);\n }\n\n let fields = [...hints.fields.values];\n const grouppingKeys = Object.fromEntries(groupKeys.map((key) => [key, true]));\n if (fields.length === 0) {\n fields.push(...Object.keys(keysMap));\n }\n fields = fields.filter((key) => !grouppingKeys[key]);\n const groups = Object.entries(groupedValues).map(([groupKey, group]) => {\n const values: { label: string; value: unknown }[] = [];\n for (const row of group.rows) {\n for (const field of fields) {\n values.push({\n label:\n hints.titles.getVerticalAxesTitle?.(field) ??\n hints.titles.valuesAxes[field] ??\n (field as string),\n value: getPropByPath(row, field),\n });\n }\n }\n\n values.sort((a, b) => {\n if (typeof a.value !== 'number' || typeof b.value !== 'number') return 0;\n return b.value - a.value;\n });\n const averageValue =\n values.reduce((sum, { value }) => sum + (value as number), 0) / values.length;\n return {\n label: group.groupName ?? groupKey,\n values,\n averageValue: !Number.isNaN(averageValue) ? averageValue : undefined,\n };\n });\n\n groups.sort((a, b) => {\n if (typeof a.averageValue !== 'number' || typeof b.averageValue !== 'number') return 0;\n return b.averageValue - a.averageValue;\n });\n entitiesCount = groups.length;\n insights.push(\n ...groups.map(\n (group) =>\n ({\n type: 'comparison',\n label: group.label,\n values: group.values,\n priority: 1,\n } as ComparisonNode),\n ),\n );\n }\n }\n if (dataType === 'values-set') {\n const fields = [...hints.fields.values];\n if (fields.length === 0) {\n fields.push(...Object.keys(keysMap));\n }\n const values = fields.map((field) => ({\n label:\n hints.titles.getValueAxesTitle?.(field) ??\n hints.titles.valuesAxes[field] ??\n (field as string),\n value: getPropByPath(data, field),\n }));\n entitiesCount = values.length;\n values.sort((a, b) => {\n if (typeof a.value !== 'number' || typeof b.value !== 'number') return 0;\n return b.value - a.value;\n });\n insights.push({\n type: 'comparison',\n values,\n priority: 1,\n });\n }\n\n const hasHighPriorityInsights = insights.some((insight) => insight.priority > 0);\n if (hasHighPriorityInsights) {\n insights = insights.filter((insight) => insight.priority > 0);\n } else {\n insights = insights.slice(0, 1);\n }\n\n return { insights, dataType: dataType!, dataRange, dataTitle, entitiesCount };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"insights.js","names":["getPropByPath","obj","path","String","split","i","length","movingAverage","data","frame","result","Math","floor","ceil","startIndex","max","endIndex","min","part","slice","sum","reduce","item","value","push","extractDataInsights","hints","config","insights","dataType","dataRange","groupKeys","groups","dataTitle","axesTitle","vertical","horizontal","entitiesCount","keysMap","Object","fromEntries","keys","Array","isArray","map","key","fields","horizontalAxes","size","verticalAxes","valueAxes","possibleGroupKeys","filter","allData","row","Set","firstRow","lastRow","possibleValueKeys","valuesKeys","possibleLabelKeys","labelsKey","fromKey","toKey","from","titles","getHorizontalAxesTitle","to","label","valueKey","values","average","variance","standardDeviation","sqrt","trendStrengths","frameSize","longMovingAverageSize","longSize","shortMovingAverageSize","shortSize","longMovingAverage","shortMovingAverage","table","toFixed","NaN","strengthsMap","growth","weak","medium","strong","reduction","recordTrend","width","type","normalizedHeight","abs","pointsDensity","normalizedWidth","tang","trendStrength","trendTangens","strength","priority","change","dataKey","generalTrend","localTrends","notableDiff","lastSwitch","lastSwitchValue","shortWasAbove","shortIsAbove","diff","lastIndex","lastValue","guessedXKey","guessedYKey","guessedValueKey","guessedLabelKey","normalized","x","y","gridSize","clustersGridSize","grid","usedX","usedY","add","orderedX","sort","a","b","orderedY","distancesX","index","distancesY","avgDistanceX","avgDistanceY","belowAvgDistancesX","belowAvgDistancesY","betweenDistanceX","betweenDistanceY","avgDistance","Number","isNaN","takenY","takenX","gridX","round","gridY","clusterId","members","clusters","parseInt","pointHandled","xNeighbour","yNeighbour","undefined","clustersInsights","labels","uniqueLabels","relativeSize","center","xLabel","yLabel","relativeSizeDistrivution","Infinity","averageSize","cluster","smallerClusters","smallerSize","biggerClusters","biggerSize","normalizingSize","averageSizeNormalized","smallerSizeNormalized","biggerSizeNormalized","sizeMapBezier","makeBezier","weight","height","clustersInsight","mappedSize","sortedX","sortedY","makeRowKey","join","allRowsIds","groupedValues","groupName","rows","grouppingKeys","entries","groupKey","group","field","getVerticalAxesTitle","valuesAxes","averageValue","getValueAxesTitle","fieldPath","startsWith","substring","hasHighPriorityInsights","some","insight"],"sources":["../../../src/a11y/insights.ts"],"sourcesContent":["import { makeBezier } from './bezier';\nimport { DataStructureHints, DataSummarizationConfig } from './hints';\n\nexport type TrendNode = {\n type: 'trend';\n priority: number;\n change: {\n from: number;\n to: number;\n strength:\n | 'strong-reduction'\n | 'reduction'\n | 'weak-reduction'\n | 'static'\n | 'weak-growth'\n | 'growth'\n | 'strong-growth';\n };\n from: unknown;\n to: unknown;\n dataKey: string | number;\n};\nexport type GeneralTrendNode = Omit<TrendNode, 'type'> & { type: 'general-trend' };\nexport type ComparisonNode = {\n type: 'comparison';\n label?: string;\n priority: number;\n values: {\n value: unknown;\n label: string;\n }[];\n};\n\ntype ClusterRelativeSize =\n | 'significantly-smaller'\n | 'smaller'\n | 'slightly-smaller'\n | 'average'\n | 'slightly-bigger'\n | 'bigger'\n | 'significantly-bigger';\nexport type ClusterNode = {\n type: 'cluster';\n priority: number;\n size: number;\n labels: unknown[];\n center: {\n x: number;\n xLabel: string | number;\n y: number;\n yLabel: string | number;\n };\n relativeSize: ClusterRelativeSize;\n};\nexport type Insight = TrendNode | GeneralTrendNode | ComparisonNode | ClusterNode;\n\nexport type SerializableDataType =\n | 'time-series'\n | 'points-cloud'\n | 'values-set'\n | 'grouped-values'\n | 'indexed-groups';\n\nexport type AnalyzedData = {\n insights: Insight[];\n dataType: SerializableDataType;\n dataRange: {\n from: string | number | Date;\n to: string | number | Date;\n label: string | number | null;\n }[];\n dataTitle: string | null;\n entitiesCount: number;\n};\n\nconst getPropByPath = (obj: any, path: number | string | string[]): unknown => {\n if (typeof path === 'number') path = String(path);\n if (typeof path === 'string') path = path.split('.');\n for (let i = 0; i < path.length; i++) {\n if (typeof obj !== 'object' || obj === null) return obj;\n obj = obj[path[i]];\n }\n return obj;\n};\n\nconst movingAverage = (data: number[], frame: number) => {\n const result: number[] = [];\n frame = Math.floor(frame) % 2 === data.length % 2 ? Math.floor(frame) : Math.ceil(frame);\n\n for (let i = 0; i < data.length; i++) {\n let startIndex = Math.max(0, i - Math.floor(frame / 2));\n let endIndex = Math.min(data.length, i + Math.ceil(frame / 2));\n startIndex = Math.min(startIndex, Math.max(0, endIndex - frame));\n endIndex = Math.max(endIndex, Math.min(data.length, startIndex + frame));\n const part = data.slice(startIndex, endIndex);\n const sum = part.reduce((sum, item) => sum + item, 0);\n const value = sum / part.length;\n result.push(value);\n }\n return result;\n};\n\nexport const extractDataInsights = (\n data: Record<string, unknown>[] | Record<string, unknown>,\n hints: DataStructureHints,\n config: DataSummarizationConfig,\n): AnalyzedData => {\n let insights: AnalyzedData['insights'] = [];\n let dataType: AnalyzedData['dataType'] | null = config.dataType ?? hints.dataType;\n const dataRange: AnalyzedData['dataRange'] = [];\n let groupKeys = [...hints.groups];\n const dataTitle: string | null = hints.axesTitle.vertical ?? hints.axesTitle.horizontal;\n let entitiesCount = 0;\n\n const keysMap = Object.fromEntries(\n Object.keys((Array.isArray(data) ? data[0] : data) ?? {}).map((key) => [key, true]),\n );\n\n if (!dataType) {\n if (\n ((keysMap['y'] || keysMap['y1'] || keysMap['y2']) &&\n keysMap['x'] &&\n (keysMap['value'] || keysMap['label'])) ||\n (hints.fields.horizontalAxes.size > 0 &&\n hints.fields.verticalAxes.size > 0 &&\n hints.fields.valueAxes.size > 0)\n ) {\n dataType = 'points-cloud';\n } else if (Array.isArray(data) && data.length > 6) {\n dataType = 'time-series';\n } else if (Array.isArray(data) && Object.keys(keysMap).length >= 3) {\n const possibleGroupKeys = Object.keys(keysMap)\n .filter((key) => typeof data[0][key] === 'string')\n .filter((key) => {\n const allData = data.map((row) => row[key]);\n return new Set(allData).size === allData.length;\n });\n if (possibleGroupKeys.length === 1) {\n groupKeys = possibleGroupKeys;\n dataType = 'grouped-values';\n } else {\n dataType = 'values-set';\n }\n } else {\n dataType = 'values-set';\n }\n }\n\n if (dataType === 'grouped-values' && groupKeys.length === 0) {\n dataType = 'values-set';\n }\n\n if (Array.isArray(data)) {\n if (dataType === 'time-series') {\n const firstRow = data[0];\n const lastRow = data[data.length - 1];\n const possibleValueKeys = ['y', 'value', ...hints.fields.verticalAxes];\n const valuesKeys = possibleValueKeys.filter((key) => keysMap[key]);\n\n const possibleLabelKeys = ['label', 'x', ...hints.fields.horizontalAxes];\n const labelsKey = possibleLabelKeys.filter((key) => keysMap[key])[0];\n\n entitiesCount = Object.keys(valuesKeys).length;\n\n const fromKey = firstRow[labelsKey];\n const toKey = lastRow[labelsKey];\n const from =\n hints.titles.getHorizontalAxesTitle?.(fromKey as string) ??\n hints.titles.horizontalAxes[fromKey as string] ??\n (fromKey as string);\n const to =\n hints.titles.getHorizontalAxesTitle?.(toKey as string) ??\n hints.titles.horizontalAxes[toKey as string] ??\n (toKey as string);\n\n if (entitiesCount > 0) {\n dataRange.push({ from, to, label: hints.axesTitle.vertical ?? labelsKey });\n }\n\n for (const valueKey of valuesKeys) {\n const values = (data as Record<string, number>[]).map((row) => row[valueKey]);\n const sum = values.reduce((sum, value) => (sum += value), 0);\n const average = sum / values.length;\n const variance =\n (1 / values.length) *\n values.map((value) => (value - average) ** 2).reduce((sum, item) => sum + item, 0);\n const standardDeviation = Math.sqrt(variance);\n const trendStrengths = ['static', 'weak', 'medium', 'strong'] as const;\n\n const frameSize = Math.sqrt(values.length);\n const longMovingAverageSize = config.movingAverage.longSize ?? frameSize;\n const shortMovingAverageSize = config.movingAverage.shortSize ?? Math.sqrt(frameSize);\n const longMovingAverage = movingAverage(values, longMovingAverageSize);\n const shortMovingAverage =\n values.length < 8 ? values : movingAverage(values, shortMovingAverageSize);\n\n const table = [];\n for (const i in values) {\n table.push({\n value: values[i].toFixed(2),\n long: (longMovingAverage[i] ?? NaN).toFixed(2),\n short: (shortMovingAverage[i] ?? NaN).toFixed(2),\n });\n }\n\n const strengthsMap = {\n growth: {\n static: 'static',\n weak: 'weak-growth',\n medium: 'growth',\n strong: 'strong-growth',\n },\n reduction: {\n static: 'static',\n weak: 'weak-reduction',\n medium: 'reduction',\n strong: 'strong-reduction',\n },\n } as const;\n\n const recordTrend = ({\n value,\n width,\n label,\n type,\n }: {\n value: { from: number; to: number };\n width: number;\n label: { from: unknown; to: unknown; dataKey: string | number };\n type: 'general-trend' | 'trend';\n }): GeneralTrendNode | TrendNode | undefined => {\n for (let i = 0; i < trendStrengths.length; i++) {\n const normalizedHeight =\n Math.abs(value.from - value.to) / (hints.pointsDensity?.verticalAxes ?? 1);\n const normalizedWidth = width / (hints.pointsDensity?.horizontalAxes ?? 1);\n const tang = normalizedHeight / normalizedWidth;\n const trendStrength = trendStrengths[i];\n if (tang <= config.trendTangens[trendStrength] || i === trendStrengths.length - 1) {\n const strength =\n value.to > value.from\n ? strengthsMap.growth[trendStrength]\n : strengthsMap.reduction[trendStrength];\n\n return {\n type,\n priority: i,\n change: {\n from: value.from,\n to: value.to,\n strength,\n },\n from: label.from,\n to: label.to,\n dataKey: label.dataKey,\n };\n }\n }\n };\n\n const generalTrend = recordTrend({\n type: 'general-trend',\n value: {\n from: shortMovingAverage[0],\n to: shortMovingAverage[shortMovingAverage.length - 1],\n },\n width: data.length,\n label: { from, to, dataKey: valueKey },\n })!;\n const localTrends: Insight[] = [];\n {\n const notableDiff = config.movingAverage.notableDiff ?? standardDeviation / 10;\n let lastSwitch = 0;\n let lastSwitchValue = shortMovingAverage[lastSwitch];\n let shortWasAbove = shortMovingAverage[0] > longMovingAverage[0];\n for (let i = 1; i < data.length; i++) {\n const shortIsAbove = shortMovingAverage[i] > longMovingAverage[i];\n const diff = Math.abs(shortMovingAverage[i] - longMovingAverage[i]);\n\n if (shortIsAbove === shortWasAbove) continue;\n if (diff < notableDiff) continue;\n if (i === 0 && lastSwitch === data.length - 1) continue;\n if (i === data.length - 1 && lastSwitch === 0) continue;\n i = Math.min(i, data.length - 1);\n\n const fromKey = data[lastSwitch][labelsKey];\n const toKey = data[i][labelsKey];\n const from =\n hints.titles.getHorizontalAxesTitle?.(fromKey as string) ??\n hints.titles.horizontalAxes[fromKey as string] ??\n fromKey;\n const to =\n hints.titles.getHorizontalAxesTitle?.(toKey as string) ??\n hints.titles.horizontalAxes[toKey as string] ??\n toKey;\n localTrends.push(\n recordTrend({\n type: 'trend',\n value: {\n from: lastSwitchValue,\n to: shortMovingAverage[i],\n },\n width: i - lastSwitch,\n label: { from, to, dataKey: valueKey },\n })!,\n );\n lastSwitch = i;\n lastSwitchValue = shortMovingAverage[lastSwitch];\n shortWasAbove = shortIsAbove;\n }\n\n if (lastSwitch !== 0) {\n const lastIndex = shortMovingAverage.length - 1;\n const lastValue = shortMovingAverage[lastIndex];\n if (Math.abs(lastSwitchValue - lastValue) > notableDiff) {\n localTrends.push(\n recordTrend({\n type: 'trend',\n value: {\n from: lastSwitchValue,\n to: lastValue,\n },\n width: lastIndex - lastSwitch,\n label: {\n from: data[lastSwitch][labelsKey],\n to: data[lastIndex][labelsKey],\n dataKey: valueKey,\n },\n })!,\n );\n }\n }\n }\n insights.push(generalTrend);\n insights.push(...localTrends);\n }\n } else if (dataType === 'points-cloud') {\n const guessedXKey = [...hints.fields.horizontalAxes.values(), 'x'][0];\n const guessedYKey = [...hints.fields.verticalAxes.values(), 'y'][0];\n const guessedValueKey = [...hints.fields.valueAxes.values(), 'value'][0];\n const guessedLabelKey = keysMap['label'] ? 'label' : guessedValueKey;\n const normalized = data.map((row) => ({\n x: row[guessedXKey] as number,\n y: row[guessedYKey] as number,\n label: row[guessedLabelKey],\n value: row[guessedValueKey] as number,\n }));\n let gridSize =\n config.clustersGridSize ?? hints.grid.verticalAxes ?? hints.grid.horizontalAxes;\n if (!gridSize) {\n const usedX = new Set<number>();\n const usedY = new Set<number>();\n for (const { x, y } of normalized) {\n usedX.add(x);\n usedY.add(y);\n }\n const orderedX = [...usedX].sort((a, b) => a - b);\n const orderedY = [...usedY].sort((a, b) => a - b);\n const distancesX = orderedX.slice(0, -1).map((x, index) => orderedX[index + 1] - x);\n const distancesY = orderedY.slice(0, -1).map((y, index) => orderedY[index + 1] - y);\n const avgDistanceX = distancesX.reduce((sum, x) => sum + x, 0) / distancesX.length;\n const avgDistanceY = distancesY.reduce((sum, y) => sum + y, 0) / distancesY.length;\n const belowAvgDistancesX = distancesX.filter((x) => x < avgDistanceX);\n const belowAvgDistancesY = distancesY.filter((y) => y < avgDistanceY);\n const betweenDistanceX =\n belowAvgDistancesX.reduce((sum, x) => sum + x, 0) / belowAvgDistancesX.length;\n const betweenDistanceY =\n belowAvgDistancesY.reduce((sum, y) => sum + y, 0) / belowAvgDistancesY.length;\n let avgDistance = 0;\n if (!Number.isNaN(betweenDistanceX) && !Number.isNaN(betweenDistanceY)) {\n avgDistance = (betweenDistanceX + betweenDistanceY) / 2;\n } else if (!Number.isNaN(betweenDistanceX)) {\n avgDistance = betweenDistanceX;\n } else if (!Number.isNaN(betweenDistanceY)) {\n avgDistance = betweenDistanceY;\n } else {\n avgDistance = (avgDistanceX + avgDistanceY) / 2;\n }\n gridSize = Math.sqrt(Math.sqrt(avgDistance));\n }\n\n const grid: {\n [x: string]: { [y: string]: { clusterId: string; members: typeof normalized } };\n } = {};\n const takenY = new Set<number>();\n const takenX = new Set<number>();\n for (let i = 0; i < normalized.length; i++) {\n const { x, y } = normalized[i];\n const gridX = Math.round(x / gridSize!);\n const gridY = Math.round(y / gridSize!);\n takenY.add(y);\n takenX.add(x);\n grid[gridX] = grid[gridX] ?? {};\n grid[gridX][gridY] = grid[gridX][gridY] ?? { clusterId: `${gridX}_${gridY}`, members: [] };\n grid[gridX][gridY].members.push(normalized[i]);\n }\n const clusters: { [clusterId: string]: typeof normalized } = {};\n for (const x of Object.keys(grid).map((x) => parseInt(x, 10))) {\n for (const y of Object.keys(grid[x]).map((y) => parseInt(y, 10))) {\n let pointHandled = false;\n for (const xNeighbour of [x - 1, x, x + 1]) {\n for (const yNeighbour of [y - 1, y, y + 1]) {\n if (xNeighbour === undefined || yNeighbour === undefined) continue;\n if (xNeighbour === x && yNeighbour === y) continue;\n if (!grid[xNeighbour]?.[yNeighbour]) continue;\n pointHandled = true;\n grid[x][y].clusterId = grid[xNeighbour][yNeighbour].clusterId;\n break;\n }\n if (pointHandled) break;\n }\n clusters[grid[x][y].clusterId] = clusters[grid[x][y].clusterId] ?? [];\n clusters[grid[x][y].clusterId].push(...grid[x][y].members);\n }\n }\n const clustersInsights: ClusterNode[] = [];\n for (const clusterId in clusters) {\n const size = clusters[clusterId].reduce((sum, { value }) => sum + (value ?? 1), 0);\n const labels = [...clusters[clusterId]]\n .sort((a, b) => b.value - a.value)\n .map(({ label }) => label)\n .filter((label) => label !== undefined);\n const uniqueLabels = [...new Set(labels)];\n const x =\n clusters[clusterId].reduce((sum, { x }) => sum + x, 0) / clusters[clusterId].length;\n const y =\n clusters[clusterId].reduce((sum, { y }) => sum + y, 0) / clusters[clusterId].length;\n\n clustersInsights.push({\n type: 'cluster',\n priority: 1,\n size,\n labels: uniqueLabels,\n relativeSize: 'average',\n center: {\n x,\n y,\n xLabel: hints.axesTitle.horizontal ?? guessedXKey,\n yLabel: hints.axesTitle.vertical ?? guessedYKey,\n },\n });\n }\n entitiesCount = Object.keys(clusters).length;\n clustersInsights.sort((a, b) => b.size - a.size);\n\n const relativeSizeDistrivution = {\n ['significantly-bigger']: { max: Infinity, min: 0.85 },\n ['bigger']: { min: 0.7, max: 0.85 },\n ['slightly-bigger']: { min: 0.6, max: 0.7 },\n ['average']: { min: 0.4, max: 0.6 },\n ['slightly-smaller']: { max: 0.4, min: 0.3 },\n ['smaller']: { min: 0.15, max: 0.3 },\n ['significantly-smaller']: { min: -Infinity, max: 0.15 },\n } as { [key in ClusterRelativeSize]: { min: number; max: number } };\n const averageSize =\n clustersInsights.reduce((sum, cluster) => sum + cluster.size, 0) / clustersInsights.length;\n const smallerClusters = clustersInsights.filter((cluster) => cluster.size < averageSize);\n const smallerSize =\n smallerClusters.reduce((sum, cluster) => sum + cluster.size, 0) / smallerClusters.length;\n const biggerClusters = clustersInsights.filter((cluster) => cluster.size > averageSize);\n const biggerSize =\n biggerClusters.reduce((sum, cluster) => sum + cluster.size, 0) / biggerClusters.length;\n\n const normalizingSize = averageSize * 2;\n let averageSizeNormalized = averageSize / normalizingSize;\n let smallerSizeNormalized = smallerSize / normalizingSize;\n let biggerSizeNormalized = biggerSize / normalizingSize;\n\n smallerSizeNormalized = !Number.isNaN(smallerSizeNormalized) ? smallerSizeNormalized : 0.25;\n averageSizeNormalized = !Number.isNaN(averageSizeNormalized) ? averageSizeNormalized : 0.5;\n biggerSizeNormalized = !Number.isNaN(biggerSizeNormalized) ? biggerSizeNormalized : 0.75;\n\n const sizeMapBezier = makeBezier(\n [\n { x: 0, y: 0 },\n { x: 0.25, y: smallerSizeNormalized, weight: 10 },\n { x: 0.5, y: averageSizeNormalized },\n { x: 0.75, y: biggerSizeNormalized, weight: 10 },\n { x: 1, y: 1 },\n ],\n { width: 1, height: 1 },\n );\n\n for (const clustersInsight of clustersInsights) {\n const { size } = clustersInsight;\n const mappedSize = sizeMapBezier(size / normalizingSize);\n for (const relativeSize in relativeSizeDistrivution) {\n const { min, max } = relativeSizeDistrivution[relativeSize as ClusterRelativeSize];\n if (mappedSize > min && mappedSize <= max) {\n clustersInsight.relativeSize = relativeSize as ClusterRelativeSize;\n break;\n }\n }\n }\n\n insights.push(...clustersInsights);\n\n if (hints.axesTitle.horizontal) {\n const sortedX = [...takenX].sort((a, b) => a - b);\n dataRange.push({\n from: sortedX[0] as any,\n to: sortedX[sortedX.length - 1] as any,\n label: hints.axesTitle.horizontal,\n });\n }\n if (hints.axesTitle.vertical) {\n const sortedY = [...takenY].sort((a, b) => a - b);\n dataRange.push({\n from: sortedY[0] as any,\n to: sortedY[sortedY.length - 1] as any,\n label: hints.axesTitle.vertical,\n });\n }\n } else if (dataType === 'grouped-values') {\n const makeRowKey = (row: Record<string, unknown>) =>\n groupKeys.map((key, index) => `${index}-${getPropByPath(row, key)}`).join('-');\n const allRowsIds = data.map(makeRowKey);\n const groupedValues: {\n [groupId: string]: { groupName: string; rows: Record<string, unknown>[] };\n } = {};\n for (let i = 0; i < data.length; i++) {\n const row = data[i];\n const key = allRowsIds[i];\n groupedValues[key] = groupedValues[key] ?? {\n groupName: getPropByPath(row, groupKeys[0]) as string,\n rows: [],\n };\n groupedValues[key].rows.push(row);\n }\n\n let fields = [...hints.fields.values];\n const grouppingKeys = Object.fromEntries(groupKeys.map((key) => [key, true]));\n if (fields.length === 0) {\n fields.push(...Object.keys(keysMap));\n }\n fields = fields.filter((key) => !grouppingKeys[key]);\n const groups = Object.entries(groupedValues).map(([groupKey, group]) => {\n const values: { label: string; value: unknown }[] = [];\n for (const row of group.rows) {\n for (const field of fields) {\n values.push({\n label:\n hints.titles.getVerticalAxesTitle?.(field) ??\n hints.titles.valuesAxes[field] ??\n (field as string),\n value: getPropByPath(row, field),\n });\n }\n }\n\n values.sort((a, b) => {\n if (typeof a.value !== 'number' || typeof b.value !== 'number') return 0;\n return b.value - a.value;\n });\n const averageValue =\n values.reduce((sum, { value }) => sum + (value as number), 0) / values.length;\n return {\n label: group.groupName ?? groupKey,\n values,\n averageValue: !Number.isNaN(averageValue) ? averageValue : undefined,\n };\n });\n\n groups.sort((a, b) => {\n if (typeof a.averageValue !== 'number' || typeof b.averageValue !== 'number') return 0;\n return b.averageValue - a.averageValue;\n });\n entitiesCount = groups.length;\n insights.push(\n ...groups.map(\n (group) =>\n ({\n type: 'comparison',\n label: group.label,\n values: group.values,\n priority: 1,\n } as ComparisonNode),\n ),\n );\n }\n }\n if (dataType === 'values-set') {\n const fields = [...hints.fields.values];\n if (fields.length === 0) {\n fields.push(...Object.keys(keysMap));\n }\n const values = fields.map((field) => ({\n label:\n hints.titles.getValueAxesTitle?.(field) ??\n hints.titles.valuesAxes[field] ??\n (field as string),\n value: getPropByPath(data, field),\n }));\n entitiesCount = values.length;\n values.sort((a, b) => {\n if (typeof a.value !== 'number' || typeof b.value !== 'number') return 0;\n return b.value - a.value;\n });\n insights.push({\n type: 'comparison',\n values,\n priority: 1,\n });\n }\n if (dataType === 'indexed-groups') {\n const groups = [...hints.groups].map((groupKey) => {\n const values = [...hints.fields.values]\n .filter((fieldPath) => String(fieldPath).startsWith(`${groupKey}.`))\n .map((fieldPath) => ({\n label: getPropByPath(\n hints.titles.valuesAxes,\n String(fieldPath).substring(String(groupKey).length + 1),\n ),\n value: getPropByPath(data, String(fieldPath)),\n }));\n\n values.sort((a, b) => {\n if (typeof a.value !== 'number' || typeof b.value !== 'number') return 0;\n return b.value - a.value;\n });\n const averageValue =\n values.reduce((sum, { value }) => sum + (value as number), 0) / values.length;\n return {\n label: getPropByPath(hints.titles.valuesAxes, String(groupKey)) ?? groupKey,\n values,\n averageValue: !Number.isNaN(averageValue) ? averageValue : undefined,\n };\n });\n\n groups.sort((a, b) => {\n if (typeof a.averageValue !== 'number' || typeof b.averageValue !== 'number') return 0;\n return b.averageValue - a.averageValue;\n });\n entitiesCount = groups.length;\n insights.push(\n ...groups.map(\n (group) =>\n ({\n type: 'comparison',\n label: group.label,\n values: group.values,\n priority: 1,\n } as ComparisonNode),\n ),\n );\n }\n\n const hasHighPriorityInsights = insights.some((insight) => insight.priority > 0);\n if (hasHighPriorityInsights) {\n insights = insights.filter((insight) => insight.priority > 0);\n } else {\n insights = insights.slice(0, 1);\n }\n\n return { insights, dataType: dataType!, dataRange, dataTitle, entitiesCount };\n};\n"],"mappings":"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"}
|
|
@@ -137,7 +137,7 @@ var formatValuesList = function formatValuesList(values, _ref2) {
|
|
|
137
137
|
datesWithTime: datesWithTime,
|
|
138
138
|
maxListSymbols: maxListSymbols
|
|
139
139
|
});
|
|
140
|
-
if (value === label) return value;
|
|
140
|
+
if (String(value) === String(label)) return value;
|
|
141
141
|
return intl.formatMessage({
|
|
142
142
|
id: 'value-labeled'
|
|
143
143
|
}, {
|
|
@@ -372,7 +372,7 @@ var serialize = function serialize(_ref4, _ref5, _ref6) {
|
|
|
372
372
|
label: dataTitle
|
|
373
373
|
});
|
|
374
374
|
return sumamry;
|
|
375
|
-
} else if (dataType === 'grouped-values') {
|
|
375
|
+
} else if (dataType === 'grouped-values' || dataType === 'indexed-groups') {
|
|
376
376
|
var groupInsights = insights;
|
|
377
377
|
var valueCounts = groupInsights.map(function (group) {
|
|
378
378
|
return group.values.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","names":["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","getIntl","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 (value === 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') {\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":["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","getIntl","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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"}
|
|
@@ -33,3 +33,12 @@ SDot {
|
|
|
33
33
|
SDot[color] {
|
|
34
34
|
background: var(--color);
|
|
35
35
|
}
|
|
36
|
+
|
|
37
|
+
SFooter {
|
|
38
|
+
background: var(--intergalactic-bg-secondary-neutral, #f4f5f9);
|
|
39
|
+
padding: var(--intergalactic-spacing-1x, 4px) var(--intergalactic-spacing-3x, 12px);
|
|
40
|
+
border-radius: 0 0 var(--intergalactic-rounded-medium, 6px)
|
|
41
|
+
var(--intergalactic-rounded-medium, 6px);
|
|
42
|
+
margin: var(--intergalactic-spacing-3x, 12px) calc(-1 * var(--intergalactic-spacing-3x, 12px))
|
|
43
|
+
calc(-1 * var(--intergalactic-spacing-3x, 12px));
|
|
44
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.d.js","names":[],"sources":["../../../src/types/Tooltip.d.ts"],"sourcesContent":["import { ComponentProps } from 'react';\nimport Popper, { IPopperProps, IPopperTriggerProps } from '@semcore/popper';\nimport { PropGetterFn, ReturnEl } from '@semcore/core';\nimport { MapProps } from './Plot';\nimport { IBoxProps } from '@semcore/flex-box';\nimport IContext from './context';\n\nexport interface ITooltipChartProps extends IPopperProps, IPopperTriggerProps, IContext {\n /** Field from data for XAxis */\n x?: string;\n /** Field from data for YAxis */\n y?: string;\n}\n\nexport interface ITooltipChartContext {\n getTriggerProps: PropGetterFn;\n getPopperProps: PropGetterFn;\n /** Index active value for Axis x */\n xIndex: number | null;\n /** Index active value for Axis y */\n yIndex: number | null;\n}\n\ndeclare const Tooltip: (<T>(\n props: MapProps<ITooltipChartProps & T, ITooltipChartContext>,\n) => ReturnEl) & {\n Trigger: <T>(props: MapProps<ComponentProps<typeof Popper.Trigger> & T>) => ReturnEl;\n Popper: <T>(props: MapProps<ComponentProps<typeof Popper.Popper> & T>) => ReturnEl;\n Title: <T>(props: MapProps<IBoxProps & T>) => ReturnEl;\n Dot: <T>(props: MapProps<IBoxProps & { color?: string } & T>) => ReturnEl;\n Footer: <T>(props: MapProps<T>) =>
|
|
1
|
+
{"version":3,"file":"Tooltip.d.js","names":[],"sources":["../../../src/types/Tooltip.d.ts"],"sourcesContent":["import { ComponentProps } from 'react';\nimport Popper, { IPopperProps, IPopperTriggerProps } from '@semcore/popper';\nimport { PropGetterFn, ReturnEl } from '@semcore/core';\nimport { MapProps } from './Plot';\nimport { IBoxProps } from '@semcore/flex-box';\nimport IContext from './context';\n\nexport interface ITooltipChartProps extends IPopperProps, IPopperTriggerProps, IContext {\n /** Field from data for XAxis */\n x?: string;\n /** Field from data for YAxis */\n y?: string;\n}\n\nexport interface ITooltipChartContext {\n getTriggerProps: PropGetterFn;\n getPopperProps: PropGetterFn;\n /** Index active value for Axis x */\n xIndex: number | null;\n /** Index active value for Axis y */\n yIndex: number | null;\n}\n\ndeclare const Tooltip: (<T>(\n props: MapProps<ITooltipChartProps & T, ITooltipChartContext>,\n) => ReturnEl) & {\n Trigger: <T>(props: MapProps<ComponentProps<typeof Popper.Trigger> & T>) => ReturnEl;\n Popper: <T>(props: MapProps<ComponentProps<typeof Popper.Popper> & T>) => ReturnEl;\n Title: <T>(props: MapProps<IBoxProps & T>) => ReturnEl;\n Dot: <T>(props: MapProps<IBoxProps & { color?: string } & T>) => ReturnEl;\n Footer: <T>(props: MapProps<IBoxProps & T>) => ReturnEl;\n};\n\nexport default Tooltip;\n"],"mappings":""}
|
package/lib/es6/Area.js
CHANGED
|
@@ -20,19 +20,19 @@ var style = (
|
|
|
20
20
|
/*__reshadow_css_start__*/
|
|
21
21
|
_sstyled.insert(
|
|
22
22
|
/*__inner_css_start__*/
|
|
23
|
-
".
|
|
23
|
+
".___SArea_1s7ja_gg_{fill:var(--intergalactic-chart-palette-order-1, #2bb3ff);fill-opacity:.2}.___SArea_1s7ja_gg_.__color_1s7ja_gg_{fill:var(--color_1s7ja)}.___SArea_1s7ja_gg_.__transparent_1s7ja_gg_{opacity:.3}.___SAreaLine_1s7ja_gg_{stroke:var(--intergalactic-chart-palette-order-1, #2bb3ff);stroke-width:3;fill:transparent}.___SAreaLine_1s7ja_gg_.__color_1s7ja_gg_{stroke:var(--color_1s7ja)}.___SAreaLine_1s7ja_gg_.__transparent_1s7ja_gg_{opacity:.3}.___SAreaLine_1s7ja_gg_,.___SArea_1s7ja_gg_{transition-property:d;transition-duration:var(--duration_1s7ja);transition-timing-function:ease-in-out}.___SNull_1s7ja_gg_{fill:transparent;stroke:var(--intergalactic-chart-grid-x-axis, #c4c7cf);stroke-dasharray:4}.___SNull_1s7ja_gg_.__hide_1s7ja_gg_{display:none}"
|
|
24
24
|
/*__inner_css_end__*/
|
|
25
|
-
, "
|
|
25
|
+
, "1s7ja_gg_")
|
|
26
26
|
/*__reshadow_css_end__*/
|
|
27
27
|
, {
|
|
28
|
-
"__SArea": "
|
|
29
|
-
"_color": "
|
|
30
|
-
"--color": "--
|
|
31
|
-
"_transparent": "
|
|
32
|
-
"__SAreaLine": "
|
|
33
|
-
"--duration": "--
|
|
34
|
-
"__SNull": "
|
|
35
|
-
"_hide": "
|
|
28
|
+
"__SArea": "___SArea_1s7ja_gg_",
|
|
29
|
+
"_color": "__color_1s7ja_gg_",
|
|
30
|
+
"--color": "--color_1s7ja",
|
|
31
|
+
"_transparent": "__transparent_1s7ja_gg_",
|
|
32
|
+
"__SAreaLine": "___SAreaLine_1s7ja_gg_",
|
|
33
|
+
"--duration": "--duration_1s7ja",
|
|
34
|
+
"__SNull": "___SNull_1s7ja_gg_",
|
|
35
|
+
"_hide": "__hide_1s7ja_gg_"
|
|
36
36
|
});
|
|
37
37
|
|
|
38
38
|
var AreaRoot = /*#__PURE__*/function (_Component) {
|
package/lib/es6/Axis.js
CHANGED
|
@@ -19,23 +19,23 @@ var style = (
|
|
|
19
19
|
/*__reshadow_css_start__*/
|
|
20
20
|
_sstyled.insert(
|
|
21
21
|
/*__inner_css_start__*/
|
|
22
|
-
".
|
|
22
|
+
".___SAxis_uaozb_gg_{stroke:var(--intergalactic-chart-grid-x-axis, #c4c7cf)}.___SAxis_uaozb_gg_.__hide_uaozb_gg_,.___STick_uaozb_gg_.__hide_uaozb_gg_{display:none}.___STick_uaozb_gg_{font-size:var(--intergalactic-fs-100, 12px);fill:var(--intergalactic-chart-grid-text-label, #6c6e79)}.___SGrid_uaozb_gg_{fill:transparent;stroke:var(--intergalactic-border-secondary, #e0e1e9)}.___STitle_uaozb_gg_{font-size:var(--intergalactic-fs-100, 12px);fill:var(--intergalactic-text-hint, #6c6e79);transform-origin:var(--transform-origin_uaozb)}.___STitle_uaozb_gg_._position_top_uaozb_gg_{text-anchor:middle}.___STitle_uaozb_gg_._position_bottom_uaozb_gg_{text-anchor:middle;alignment-baseline:hanging}.___STitle_uaozb_gg_._position_left_uaozb_gg_,.___STitle_uaozb_gg_._position_right_uaozb_gg_{transform:rotate(-90deg);text-anchor:middle;alignment-baseline:middle}.___STick_uaozb_gg_._position_top_uaozb_gg_{transform:translateY(-12px);text-anchor:middle}.___STick_uaozb_gg_._position_bottom_uaozb_gg_{transform:translateY(12px);text-anchor:middle;alignment-baseline:hanging}.___STick_uaozb_gg_._position_right_uaozb_gg_{transform:translateX(16px);text-anchor:start;alignment-baseline:middle}.___STick_uaozb_gg_._position_left_uaozb_gg_{transform:translateX(-16px);text-anchor:end;alignment-baseline:middle}.___STick_uaozb_gg_._position_custom_0_uaozb_gg_{transform:translateY(12px);text-anchor:middle;alignment-baseline:hanging}.___STick_uaozb_gg_._position_custom_1_uaozb_gg_{transform:translateX(-16px);text-anchor:end;alignment-baseline:middle}"
|
|
23
23
|
/*__inner_css_end__*/
|
|
24
|
-
, "
|
|
24
|
+
, "uaozb_gg_")
|
|
25
25
|
/*__reshadow_css_end__*/
|
|
26
26
|
, {
|
|
27
|
-
"__SAxis": "
|
|
28
|
-
"_hide": "
|
|
29
|
-
"__STick": "
|
|
30
|
-
"__SGrid": "
|
|
31
|
-
"__STitle": "
|
|
32
|
-
"--transform-origin": "--transform-
|
|
33
|
-
"_position_top": "
|
|
34
|
-
"_position_bottom": "
|
|
35
|
-
"_position_right": "
|
|
36
|
-
"_position_left": "
|
|
37
|
-
"_position_custom_0": "
|
|
38
|
-
"_position_custom_1": "
|
|
27
|
+
"__SAxis": "___SAxis_uaozb_gg_",
|
|
28
|
+
"_hide": "__hide_uaozb_gg_",
|
|
29
|
+
"__STick": "___STick_uaozb_gg_",
|
|
30
|
+
"__SGrid": "___SGrid_uaozb_gg_",
|
|
31
|
+
"__STitle": "___STitle_uaozb_gg_",
|
|
32
|
+
"--transform-origin": "--transform-origin_uaozb",
|
|
33
|
+
"_position_top": "_position_top_uaozb_gg_",
|
|
34
|
+
"_position_bottom": "_position_bottom_uaozb_gg_",
|
|
35
|
+
"_position_right": "_position_right_uaozb_gg_",
|
|
36
|
+
"_position_left": "_position_left_uaozb_gg_",
|
|
37
|
+
"_position_custom_0": "_position_custom_0_uaozb_gg_",
|
|
38
|
+
"_position_custom_1": "_position_custom_1_uaozb_gg_"
|
|
39
39
|
});
|
|
40
40
|
var CUSTOM_0 = Symbol('custom_0');
|
|
41
41
|
var CUSTOM_1 = Symbol('custom_1');
|
package/lib/es6/Bar.js
CHANGED
|
@@ -18,18 +18,18 @@ var style = (
|
|
|
18
18
|
/*__reshadow_css_start__*/
|
|
19
19
|
_sstyled.insert(
|
|
20
20
|
/*__inner_css_start__*/
|
|
21
|
-
".
|
|
21
|
+
".___SBar_1jtbl_gg_{fill:var(--intergalactic-chart-palette-order-1, #2bb3ff);transition-property:height,width,y;transition-duration:var(--duration_1jtbl);transition-timing-function:ease-in-out}.___SBar_1jtbl_gg_.__color_1jtbl_gg_{fill:var(--color_1jtbl)}.___SBar_1jtbl_gg_.__hide_1jtbl_gg_{display:none}.___SBar_1jtbl_gg_.__transparent_1jtbl_gg_{opacity:.3}.___SBackground_1jtbl_gg_{fill:var(--intergalactic-chart-palette-order-other-data, #c4c7cf)}"
|
|
22
22
|
/*__inner_css_end__*/
|
|
23
|
-
, "
|
|
23
|
+
, "1jtbl_gg_")
|
|
24
24
|
/*__reshadow_css_end__*/
|
|
25
25
|
, {
|
|
26
|
-
"__SBar": "
|
|
27
|
-
"--duration": "--
|
|
28
|
-
"_color": "
|
|
29
|
-
"--color": "--
|
|
30
|
-
"_hide": "
|
|
31
|
-
"_transparent": "
|
|
32
|
-
"__SBackground": "
|
|
26
|
+
"__SBar": "___SBar_1jtbl_gg_",
|
|
27
|
+
"--duration": "--duration_1jtbl",
|
|
28
|
+
"_color": "__color_1jtbl_gg_",
|
|
29
|
+
"--color": "--color_1jtbl",
|
|
30
|
+
"_hide": "__hide_1jtbl_gg_",
|
|
31
|
+
"_transparent": "__transparent_1jtbl_gg_",
|
|
32
|
+
"__SBackground": "___SBackground_1jtbl_gg_"
|
|
33
33
|
});
|
|
34
34
|
|
|
35
35
|
var calcPartBarY = function calcPartBarY(y, minHeight, height) {
|
package/lib/es6/Bubble.js
CHANGED
|
@@ -23,20 +23,20 @@ var style = (
|
|
|
23
23
|
/*__reshadow_css_start__*/
|
|
24
24
|
_sstyled.insert(
|
|
25
25
|
/*__inner_css_start__*/
|
|
26
|
-
".
|
|
26
|
+
".___SBubble_82aux_gg_{fill:var(--intergalactic-chart-palette-order-1, #2bb3ff);stroke:var(--intergalactic-chart-grid-border, #ffffff);stroke-width:2px;transition-property:cx,cy;transition-duration:var(--duration_82aux);transition-timing-function:ease-in-out;opacity:.5}@media (hover:hover){.___SBubble_82aux_gg_:hover{opacity:.8}}.___SBubble_82aux_gg_.__color_82aux_gg_{fill:var(--color_82aux)}.___SBubble_82aux_gg_.__transparent_82aux_gg_{opacity:.3}.___SCenter_82aux_gg_{text-anchor:middle;font-size:calc(var(--intergalactic-fs-100, 12px) - 1px);stroke:var(--intergalactic-chart-palette-order-1, #2bb3ff)}.___SCenter_82aux_gg_.__color_82aux_gg_{stroke:var(--color_82aux)}.___SCenter_82aux_gg_.__transparent_82aux_gg_{opacity:.3}.___SLabel_82aux_gg_{fill:var(--intergalactic-chart-palette-order-1, #2bb3ff)}.___SLabel_82aux_gg_._position_right_82aux_gg_{text-anchor:end}.___SLabel_82aux_gg_._position_left_82aux_gg_{text-anchor:start}.___SLabel_82aux_gg_.__color_82aux_gg_{fill:var(--color_82aux)}.___SLabel_82aux_gg_.__transparent_82aux_gg_{opacity:.3}"
|
|
27
27
|
/*__inner_css_end__*/
|
|
28
|
-
, "
|
|
28
|
+
, "82aux_gg_")
|
|
29
29
|
/*__reshadow_css_end__*/
|
|
30
30
|
, {
|
|
31
|
-
"__SBubble": "
|
|
32
|
-
"--duration": "--
|
|
33
|
-
"_color": "
|
|
34
|
-
"--color": "--
|
|
35
|
-
"_transparent": "
|
|
36
|
-
"__SCenter": "
|
|
37
|
-
"__SLabel": "
|
|
38
|
-
"_position_right": "
|
|
39
|
-
"_position_left": "
|
|
31
|
+
"__SBubble": "___SBubble_82aux_gg_",
|
|
32
|
+
"--duration": "--duration_82aux",
|
|
33
|
+
"_color": "__color_82aux_gg_",
|
|
34
|
+
"--color": "--color_82aux",
|
|
35
|
+
"_transparent": "__transparent_82aux_gg_",
|
|
36
|
+
"__SCenter": "___SCenter_82aux_gg_",
|
|
37
|
+
"__SLabel": "___SLabel_82aux_gg_",
|
|
38
|
+
"_position_right": "_position_right_82aux_gg_",
|
|
39
|
+
"_position_left": "_position_left_82aux_gg_"
|
|
40
40
|
});
|
|
41
41
|
|
|
42
42
|
var BubbleRoot = /*#__PURE__*/function (_Component) {
|