@milaboratories/miplots4 1.0.170 → 1.0.171
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/README.md +11 -6
- package/dist/_virtual/client.js +1 -1
- package/dist/_virtual/client2.js +2 -2
- package/dist/_virtual/index.js +1 -1
- package/dist/_virtual/index2.js +1 -1
- package/dist/_virtual/jsx-runtime.js +1 -1
- package/dist/_virtual/react-dom-client.development.js +5 -0
- package/dist/_virtual/react-dom-client.development.js.map +1 -0
- package/dist/_virtual/react-dom-client.production.js +5 -0
- package/dist/_virtual/react-dom-client.production.js.map +1 -0
- package/dist/_virtual/{react-dom-server-legacy.browser.production.min.js → react-dom-server-legacy.browser.production.js} +1 -1
- package/dist/_virtual/react-dom-server-legacy.browser.production.js.map +1 -0
- package/dist/_virtual/react-dom-server.browser.production.js +5 -0
- package/dist/_virtual/react-dom-server.browser.production.js.map +1 -0
- package/dist/_virtual/react-dom.production.js +5 -0
- package/dist/_virtual/react-dom.production.js.map +1 -0
- package/dist/_virtual/react-jsx-runtime.production.js +5 -0
- package/dist/_virtual/react-jsx-runtime.production.js.map +1 -0
- package/dist/_virtual/react.production.js +5 -0
- package/dist/_virtual/react.production.js.map +1 -0
- package/dist/_virtual/scheduler.production.js +5 -0
- package/dist/_virtual/scheduler.production.js.map +1 -0
- package/dist/_virtual/server.browser.js +1 -1
- package/dist/bubble/index.js.map +1 -1
- package/dist/common/ErrorBoundary.d.ts +1 -1
- package/dist/dendro/index.js.map +1 -1
- package/dist/discrete/index.js.map +1 -1
- package/dist/heatmap/index.js.map +1 -1
- package/dist/histogram/index.js.map +1 -1
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.development.js +17062 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.development.js.map +1 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.production.js +9790 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.production.js.map +1 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js +6245 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js.map +1 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +4106 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js.map +1 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-server.browser.development.js +6763 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-server.browser.development.js.map +1 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-server.browser.production.js +4655 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-server.browser.production.js.map +1 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom.development.js +228 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom.development.js.map +1 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom.production.js +148 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom.production.js.map +1 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.js +24 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.js.map +1 -0
- package/dist/node_modules/.pnpm/{react-dom@18.3.1_react@18.3.1 → react-dom@19.2.4_react@19.2.4}/node_modules/react-dom/index.js +1 -1
- package/dist/node_modules/.pnpm/{react-dom@18.3.1_react@18.3.1 → react-dom@19.2.4_react@19.2.4}/node_modules/react-dom/index.js.map +1 -1
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/server.browser.js +16 -0
- package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/server.browser.js.map +1 -0
- package/dist/node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.development.js +246 -0
- package/dist/node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -0
- package/dist/node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.production.js +36 -0
- package/dist/node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.production.js.map +1 -0
- package/dist/node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.development.js +865 -0
- package/dist/node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.development.js.map +1 -0
- package/dist/node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.production.js +373 -0
- package/dist/node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.production.js.map +1 -0
- package/dist/node_modules/.pnpm/{react@18.3.1 → react@19.2.4}/node_modules/react/index.js +1 -1
- package/dist/node_modules/.pnpm/react@19.2.4/node_modules/react/index.js.map +1 -0
- package/dist/node_modules/.pnpm/{react@18.3.1 → react@19.2.4}/node_modules/react/jsx-runtime.js +3 -3
- package/dist/node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-runtime.js.map +1 -0
- package/dist/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.development.js +237 -0
- package/dist/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.development.js.map +1 -0
- package/dist/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.js +234 -0
- package/dist/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.js.map +1 -0
- package/dist/node_modules/.pnpm/{scheduler@0.23.2 → scheduler@0.27.0}/node_modules/scheduler/index.js +1 -1
- package/dist/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/index.js.map +1 -0
- package/dist/scatterplot/index.js.map +1 -1
- package/package.json +7 -5
- package/dist/_virtual/react-dom-server-legacy.browser.production.min.js.map +0 -1
- package/dist/_virtual/react-dom-server.browser.production.min.js +0 -5
- package/dist/_virtual/react-dom-server.browser.production.min.js.map +0 -1
- package/dist/_virtual/react-dom.production.min.js +0 -5
- package/dist/_virtual/react-dom.production.min.js.map +0 -1
- package/dist/_virtual/react-jsx-runtime.production.min.js +0 -5
- package/dist/_virtual/react-jsx-runtime.production.min.js.map +0 -1
- package/dist/_virtual/react.production.min.js +0 -5
- package/dist/_virtual/react.production.min.js.map +0 -1
- package/dist/_virtual/scheduler.production.min.js +0 -5
- package/dist/_virtual/scheduler.production.min.js.map +0 -1
- package/dist/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js +0 -3622
- package/dist/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js.map +0 -1
- package/dist/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js +0 -1235
- package/dist/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js.map +0 -1
- package/dist/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom-server.browser.development.js +0 -3601
- package/dist/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom-server.browser.development.js.map +0 -1
- package/dist/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js +0 -1256
- package/dist/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js.map +0 -1
- package/dist/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.development.js +0 -13457
- package/dist/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.development.js.map +0 -1
- package/dist/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js +0 -5177
- package/dist/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js.map +0 -1
- package/dist/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/client.js +0 -33
- package/dist/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/client.js.map +0 -1
- package/dist/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/server.browser.js +0 -16
- package/dist/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/server.browser.js.map +0 -1
- package/dist/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.development.js +0 -605
- package/dist/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.development.js.map +0 -1
- package/dist/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js +0 -29
- package/dist/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js.map +0 -1
- package/dist/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.development.js +0 -1274
- package/dist/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.development.js.map +0 -1
- package/dist/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js +0 -209
- package/dist/node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js.map +0 -1
- package/dist/node_modules/.pnpm/react@18.3.1/node_modules/react/index.js.map +0 -1
- package/dist/node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js.map +0 -1
- package/dist/node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.development.js +0 -278
- package/dist/node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.development.js.map +0 -1
- package/dist/node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js +0 -214
- package/dist/node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js.map +0 -1
- package/dist/node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/scatterplot/index.ts"],"sourcesContent":["import { renderToString } from 'react-dom/server';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport type {\n ErrorInfoScatterplotGroupsX,\n ErrorInfoScatterplotGroupsY} from '../types';\nimport {\n type AesItem,\n type AxisSettings,\n type AxisSettingsDiscrete,\n type Category,\n type ColumnName,\n type ContinuousAesFromColumn,\n type ErrorInfoFacets,\n getUnknownErrorInfo,\n type InheritAesScatterplot,\n isErrorInfo,\n type ScatterplotEventHandlers,\n type ScatterplotLegendInfo,\n type ScatterplotSettings,\n} from '../types';\nimport { arraysAreDifferent } from '../utils/arraysAreDifferent';\nimport { getKeysCombinations } from '../utils/getKeysCombination';\nimport ChartRenderer from './ChartRenderer';\nimport type { GroupedDots } from './dots';\nimport { getDots } from './dots';\nimport type { ScatterplotLayerData } from './getLayersData';\nimport { getLayersData } from './getLayersData';\nimport type { TrendsData } from './linearRegression';\nimport { getRegressionData } from './linearRegression';\nimport { ScatterplotSettingsImpl } from './ScatterplotSettingsImpl';\nimport { addPalettesToAesMapping, createLegendInfo } from './utils/createLegendInfo';\nimport type { DiscreteAxisData } from './components/types';\nimport { MAX_FACETS_COUNT, MAX_GROUPS_COUNT } from '../constants';\nimport { getFacetLabels } from '../discrete/utils/getFacetLabels';\n\nfunction isInheritMapping<T extends (string | number)>(value:T | InheritAesScatterplot | ContinuousAesFromColumn<T>):value is InheritAesScatterplot {\n return typeof value === 'object' && 'type' in value && value.type === 'grouping';\n}\n\nfunction getDiscreteAxisData(data: DataFrame, axis: AxisSettings, column: ColumnName): DiscreteAxisData {\n if (axis.scale === 'discrete') {\n const keys = axis.keys ? axis.keys : data.getColumnCategories(column.value);\n return {keys, labels: keys.reduce((res, v) => {\n const labelsMap = axis.labels ?? {};\n const labelValue = labelsMap[v] ?? (column.valueLabels ? data.getColumnValue(column.valueLabels, data.getColumnCategoryRowIndex(column.value, v as Category)) : v);\n res[v] = String(labelValue);\n return res;\n }, {} as Record<string, string>)};\n }\n return {keys: [], labels: {}};\n}\n\nexport class ChartScatterplot extends AbstractChart {\n settings: ScatterplotSettingsImpl;\n chartRenderer: ChartRenderer;\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n onlyPositive: {x: boolean; y: boolean};\n dotsByFacets: GroupedDots;\n facetKeys: string[];\n facetKeysCombinations: string[][];\n facetLabels: Record<string, string[]>;\n trendsData: TrendsData | null;\n legendLabels: ScatterplotLegendInfo;\n layersData: Record<string, ScatterplotLayerData[]>;\n discreteAxisDataX: DiscreteAxisData;\n discreteAxisDataY: DiscreteAxisData;\n } | null = null;\n\n constructor(data: DataFrame, settings: ScatterplotSettings, eventHandlers?:ScatterplotEventHandlers) {\n super(data, settings);\n\n this.chartRenderer = new ChartRenderer();\n this.settings = new ScatterplotSettingsImpl(settings);\n if (eventHandlers) {\n this.onTooltipHintSwitch = eventHandlers.onTooltipHintSwitch;\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n this.hasError = false;\n this.errorInfo = null;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.errorInfo = isErrorInfo(err.cause) ? err.cause : getUnknownErrorInfo(err);\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: ScatterplotSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new ScatterplotSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n this._updateChart();\n this.hasError = false;\n this.errorInfo = null;\n } catch (err) {\n this.hasError = true;\n console.error(err);\n if (err instanceof Error) {\n this.errorInfo = isErrorInfo(err.cause) ? err.cause : getUnknownErrorInfo(err);\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n updateChartState(_field: string, _value: unknown) {\n console.warn('no chart state for scatterplot');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: ScatterplotSettingsImpl, settings: ScatterplotSettingsImpl) {\n return (\n prevSettings.facetBy.some((el, idx) => el.value !== settings.facetBy[idx]?.value) ||\n prevSettings.grouping.length !== settings.grouping.length ||\n arraysAreDifferent(\n prevSettings.grouping.map(v => v.columnName.value),\n settings.grouping.map(v => v.columnName.value),\n ) ||\n prevSettings.grouping.some((v, idx) => arraysAreDifferent(v.order, settings.grouping?.[idx].order)) ||\n arraysAreDifferent((prevSettings.chartSettings.xAxis as AxisSettingsDiscrete).keys, (settings.chartSettings.xAxis as AxisSettingsDiscrete).keys) ||\n arraysAreDifferent((prevSettings.chartSettings.yAxis as AxisSettingsDiscrete).keys, (settings.chartSettings.yAxis as AxisSettingsDiscrete).keys) ||\n (prevSettings.label?.value || settings.label?.value) && prevSettings.label?.value !== settings.label?.value ||\n prevSettings.layers.length !== settings.layers.length ||\n prevSettings.layers.some((l, idx) => l.type !== settings.layers[idx].type) ||\n Boolean(prevSettings.trend) !== Boolean(settings.trend)\n );\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n _updateData() {\n const {x, y, facetBy, grouping, dotSize, dotShape, trend, layers, label, highlight, chartSettings} = this.settings;\n const facetKeysLists = facetBy.map(column => this.data.getColumnCategories(column.value)).filter(v => v.length > 0);\n const categoryGroupingKeysLists = grouping.map(({columnName}) => this.data.getColumnCategories(columnName.value)).filter(v => v.length > 0);\n\n const facetKeysCombinations = facetKeysLists.length\n ? getKeysCombinations(facetKeysLists)\n : [['null']];\n const categoryGroupingCombinations = categoryGroupingKeysLists.length\n ? getKeysCombinations(categoryGroupingKeysLists)\n : [['null']];\n\n const facetGroupingValues = facetBy.map(column => column.value) ?? null;\n\n this.data.setGrouping([...facetGroupingValues]);\n const onlyPositive = {\n x: this.data.getColumn(x.value).every(v => {\n return v === null || !(Number(v) < 0);\n }),\n y: this.data.getColumn(y.value).every(v => {\n return v === null || !(Number(v) < 0);\n }),\n };\n\n const groupingColumns = grouping.map(v => v.columnName);\n\n const dotsByFacets = getDots(this.data, facetKeysCombinations, x, y, label, highlight, grouping, chartSettings.xAxis, chartSettings.yAxis, layers.find(l => l.type === 'dots'));\n const facetKeys = Object.keys(dotsByFacets);\n\n if (facetKeys.length > MAX_FACETS_COUNT) {\n const errorInfo: ErrorInfoFacets = {\n type: 'tooManyFacets',\n info: {count: facetKeys.length, maxCount: MAX_FACETS_COUNT}\n };\n throw Error(errorInfo.type, {cause: errorInfo});\n }\n\n const trendsData = getRegressionData(this.data, dotsByFacets, facetKeys, categoryGroupingCombinations, groupingColumns, trend);\n\n const discreteAxisDataX = getDiscreteAxisData(this.data, chartSettings.xAxis, x);\n const discreteAxisDataY = getDiscreteAxisData(this.data, chartSettings.yAxis, y);\n\n if (discreteAxisDataX.keys.length > MAX_GROUPS_COUNT) {\n const errorInfo: ErrorInfoScatterplotGroupsX = {\n type: 'tooManyScatterplotGroupsX',\n info: {count: discreteAxisDataX.keys.length, maxCount: MAX_GROUPS_COUNT}\n };\n throw Error(errorInfo.type, {cause: errorInfo});\n }\n if (discreteAxisDataY.keys.length > MAX_GROUPS_COUNT) {\n const errorInfo: ErrorInfoScatterplotGroupsY = {\n type: 'tooManyScatterplotGroupsY',\n info: {count: discreteAxisDataY.keys.length, maxCount: MAX_GROUPS_COUNT}\n };\n throw Error(errorInfo.type, {cause: errorInfo});\n }\n const allAesMappings = [...grouping, ...dotSize, ...dotShape];\n const legendLabels = createLegendInfo(this.data, allAesMappings, layers);\n const layersData = getLayersData(this.data, layers, facetKeys, dotsByFacets, categoryGroupingCombinations, groupingColumns, chartSettings.xAxis, discreteAxisDataX);\n const facetLabels = getFacetLabels(this.data, facetBy, facetKeys, facetKeysCombinations);\n\n this.calculatedData = {\n onlyPositive,\n dotsByFacets,\n facetKeys,\n facetKeysCombinations,\n facetLabels,\n trendsData,\n legendLabels,\n layersData,\n discreteAxisDataX,\n discreteAxisDataY\n };\n }\n\n _updateAesInData() {\n const calculated = this.calculatedData;\n if (!calculated) {\n return;\n }\n const {grouping, trend, layers, dotSize, dotShape} = this.settings;\n const {facetKeys, trendsData} = calculated;\n\n facetKeys.forEach(facetKey => {\n for (let i = 0; i < layers.length; i++) {\n calculated.layersData[facetKey][i].info = layers[i];\n }\n });\n\n const allAesMappings = [...grouping, ...dotSize, ...dotShape];\n\n allAesMappings.forEach(({columnName, inheritedAes}) => {\n const usedAes = new Set<keyof AesItem>();\n const usedAesFromPalettes: Partial<Record<keyof AesItem, string[]>> = {}; // if there is palette in mapping then\n layers.forEach(layer => {\n if (layer.aes) {\n Object.entries(layer.aes).forEach(([key, value]) => {\n if (isInheritMapping(value) && value.value === columnName.value) {\n usedAes.add(key as keyof AesItem);\n if (value.palette) {\n usedAesFromPalettes[key as keyof AesItem] = value.palette;\n }\n }\n });\n }\n });\n calculated.legendLabels[columnName.value].usedAes = [...usedAes];\n calculated.legendLabels[columnName.value].aesMap = addPalettesToAesMapping(\n columnName,\n usedAesFromPalettes,\n inheritedAes\n );\n });\n if (trendsData && trend) {\n Object.keys(trendsData).forEach((key) => {\n trendsData[key].forEach(trendInfo => {\n trendInfo.color = trend.color;\n trendInfo.bounded = trend.bounded;\n });\n });\n }\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {facetLabels} = this.calculatedData;\n const {id, chartSettings, facetSettings, grouping, dotSize, dotShape, keyColumn, layers, trend} = this.settings;\n\n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n facetSettings,\n this.calculatedData.facetKeys,\n this.calculatedData.facetKeys.map(v => facetLabels[v]), //for titles, if facet by more than 1 column\n this.calculatedData.dotsByFacets,\n this.calculatedData.trendsData,\n keyColumn,\n this.calculatedData.onlyPositive,\n this.calculatedData.legendLabels,\n this.calculatedData.layersData,\n [...grouping.map(v => v.columnName), ...dotSize.map(v => v.columnName), ...dotShape.map(v => v.columnName)],\n layers,\n trend,\n this.calculatedData.discreteAxisDataX,\n this.calculatedData.discreteAxisDataY,\n this.onTooltipHintSwitch\n );\n }\n}\n"],"names":["isInheritMapping","value","getDiscreteAxisData","data","axis","column","keys","res","v","labelValue","ChartScatterplot","AbstractChart","settings","eventHandlers","__publicField","ChartRenderer","ScatterplotSettingsImpl","node","err","isErrorInfo","getUnknownErrorInfo","previousSettings","previousData","_field","_value","renderToString","prevSettings","el","idx","_a","arraysAreDifferent","_b","_c","_d","l","prevData","prevKeys","key","x","y","facetBy","grouping","dotSize","dotShape","trend","layers","label","highlight","chartSettings","facetKeysLists","categoryGroupingKeysLists","columnName","facetKeysCombinations","getKeysCombinations","categoryGroupingCombinations","facetGroupingValues","onlyPositive","groupingColumns","dotsByFacets","getDots","facetKeys","MAX_FACETS_COUNT","errorInfo","trendsData","getRegressionData","discreteAxisDataX","discreteAxisDataY","MAX_GROUPS_COUNT","allAesMappings","legendLabels","createLegendInfo","layersData","getLayersData","facetLabels","getFacetLabels","calculated","facetKey","i","inheritedAes","usedAes","usedAesFromPalettes","layer","addPalettesToAesMapping","trendInfo","id","facetSettings","keyColumn"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/scatterplot/index.ts"],"sourcesContent":["import { renderToString } from 'react-dom/server.browser';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport type {\n ErrorInfoScatterplotGroupsX,\n ErrorInfoScatterplotGroupsY} from '../types';\nimport {\n type AesItem,\n type AxisSettings,\n type AxisSettingsDiscrete,\n type Category,\n type ColumnName,\n type ContinuousAesFromColumn,\n type ErrorInfoFacets,\n getUnknownErrorInfo,\n type InheritAesScatterplot,\n isErrorInfo,\n type ScatterplotEventHandlers,\n type ScatterplotLegendInfo,\n type ScatterplotSettings,\n} from '../types';\nimport { arraysAreDifferent } from '../utils/arraysAreDifferent';\nimport { getKeysCombinations } from '../utils/getKeysCombination';\nimport ChartRenderer from './ChartRenderer';\nimport type { GroupedDots } from './dots';\nimport { getDots } from './dots';\nimport type { ScatterplotLayerData } from './getLayersData';\nimport { getLayersData } from './getLayersData';\nimport type { TrendsData } from './linearRegression';\nimport { getRegressionData } from './linearRegression';\nimport { ScatterplotSettingsImpl } from './ScatterplotSettingsImpl';\nimport { addPalettesToAesMapping, createLegendInfo } from './utils/createLegendInfo';\nimport type { DiscreteAxisData } from './components/types';\nimport { MAX_FACETS_COUNT, MAX_GROUPS_COUNT } from '../constants';\nimport { getFacetLabels } from '../discrete/utils/getFacetLabels';\n\nfunction isInheritMapping<T extends (string | number)>(value:T | InheritAesScatterplot | ContinuousAesFromColumn<T>):value is InheritAesScatterplot {\n return typeof value === 'object' && 'type' in value && value.type === 'grouping';\n}\n\nfunction getDiscreteAxisData(data: DataFrame, axis: AxisSettings, column: ColumnName): DiscreteAxisData {\n if (axis.scale === 'discrete') {\n const keys = axis.keys ? axis.keys : data.getColumnCategories(column.value);\n return {keys, labels: keys.reduce((res, v) => {\n const labelsMap = axis.labels ?? {};\n const labelValue = labelsMap[v] ?? (column.valueLabels ? data.getColumnValue(column.valueLabels, data.getColumnCategoryRowIndex(column.value, v as Category)) : v);\n res[v] = String(labelValue);\n return res;\n }, {} as Record<string, string>)};\n }\n return {keys: [], labels: {}};\n}\n\nexport class ChartScatterplot extends AbstractChart {\n settings: ScatterplotSettingsImpl;\n chartRenderer: ChartRenderer;\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n onlyPositive: {x: boolean; y: boolean};\n dotsByFacets: GroupedDots;\n facetKeys: string[];\n facetKeysCombinations: string[][];\n facetLabels: Record<string, string[]>;\n trendsData: TrendsData | null;\n legendLabels: ScatterplotLegendInfo;\n layersData: Record<string, ScatterplotLayerData[]>;\n discreteAxisDataX: DiscreteAxisData;\n discreteAxisDataY: DiscreteAxisData;\n } | null = null;\n\n constructor(data: DataFrame, settings: ScatterplotSettings, eventHandlers?:ScatterplotEventHandlers) {\n super(data, settings);\n\n this.chartRenderer = new ChartRenderer();\n this.settings = new ScatterplotSettingsImpl(settings);\n if (eventHandlers) {\n this.onTooltipHintSwitch = eventHandlers.onTooltipHintSwitch;\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n this.hasError = false;\n this.errorInfo = null;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.errorInfo = isErrorInfo(err.cause) ? err.cause : getUnknownErrorInfo(err);\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: ScatterplotSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new ScatterplotSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n this._updateChart();\n this.hasError = false;\n this.errorInfo = null;\n } catch (err) {\n this.hasError = true;\n console.error(err);\n if (err instanceof Error) {\n this.errorInfo = isErrorInfo(err.cause) ? err.cause : getUnknownErrorInfo(err);\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n updateChartState(_field: string, _value: unknown) {\n console.warn('no chart state for scatterplot');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: ScatterplotSettingsImpl, settings: ScatterplotSettingsImpl) {\n return (\n prevSettings.facetBy.some((el, idx) => el.value !== settings.facetBy[idx]?.value) ||\n prevSettings.grouping.length !== settings.grouping.length ||\n arraysAreDifferent(\n prevSettings.grouping.map(v => v.columnName.value),\n settings.grouping.map(v => v.columnName.value),\n ) ||\n prevSettings.grouping.some((v, idx) => arraysAreDifferent(v.order, settings.grouping?.[idx].order)) ||\n arraysAreDifferent((prevSettings.chartSettings.xAxis as AxisSettingsDiscrete).keys, (settings.chartSettings.xAxis as AxisSettingsDiscrete).keys) ||\n arraysAreDifferent((prevSettings.chartSettings.yAxis as AxisSettingsDiscrete).keys, (settings.chartSettings.yAxis as AxisSettingsDiscrete).keys) ||\n (prevSettings.label?.value || settings.label?.value) && prevSettings.label?.value !== settings.label?.value ||\n prevSettings.layers.length !== settings.layers.length ||\n prevSettings.layers.some((l, idx) => l.type !== settings.layers[idx].type) ||\n Boolean(prevSettings.trend) !== Boolean(settings.trend)\n );\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n _updateData() {\n const {x, y, facetBy, grouping, dotSize, dotShape, trend, layers, label, highlight, chartSettings} = this.settings;\n const facetKeysLists = facetBy.map(column => this.data.getColumnCategories(column.value)).filter(v => v.length > 0);\n const categoryGroupingKeysLists = grouping.map(({columnName}) => this.data.getColumnCategories(columnName.value)).filter(v => v.length > 0);\n\n const facetKeysCombinations = facetKeysLists.length\n ? getKeysCombinations(facetKeysLists)\n : [['null']];\n const categoryGroupingCombinations = categoryGroupingKeysLists.length\n ? getKeysCombinations(categoryGroupingKeysLists)\n : [['null']];\n\n const facetGroupingValues = facetBy.map(column => column.value) ?? null;\n\n this.data.setGrouping([...facetGroupingValues]);\n const onlyPositive = {\n x: this.data.getColumn(x.value).every(v => {\n return v === null || !(Number(v) < 0);\n }),\n y: this.data.getColumn(y.value).every(v => {\n return v === null || !(Number(v) < 0);\n }),\n };\n\n const groupingColumns = grouping.map(v => v.columnName);\n\n const dotsByFacets = getDots(this.data, facetKeysCombinations, x, y, label, highlight, grouping, chartSettings.xAxis, chartSettings.yAxis, layers.find(l => l.type === 'dots'));\n const facetKeys = Object.keys(dotsByFacets);\n\n if (facetKeys.length > MAX_FACETS_COUNT) {\n const errorInfo: ErrorInfoFacets = {\n type: 'tooManyFacets',\n info: {count: facetKeys.length, maxCount: MAX_FACETS_COUNT}\n };\n throw Error(errorInfo.type, {cause: errorInfo});\n }\n\n const trendsData = getRegressionData(this.data, dotsByFacets, facetKeys, categoryGroupingCombinations, groupingColumns, trend);\n\n const discreteAxisDataX = getDiscreteAxisData(this.data, chartSettings.xAxis, x);\n const discreteAxisDataY = getDiscreteAxisData(this.data, chartSettings.yAxis, y);\n\n if (discreteAxisDataX.keys.length > MAX_GROUPS_COUNT) {\n const errorInfo: ErrorInfoScatterplotGroupsX = {\n type: 'tooManyScatterplotGroupsX',\n info: {count: discreteAxisDataX.keys.length, maxCount: MAX_GROUPS_COUNT}\n };\n throw Error(errorInfo.type, {cause: errorInfo});\n }\n if (discreteAxisDataY.keys.length > MAX_GROUPS_COUNT) {\n const errorInfo: ErrorInfoScatterplotGroupsY = {\n type: 'tooManyScatterplotGroupsY',\n info: {count: discreteAxisDataY.keys.length, maxCount: MAX_GROUPS_COUNT}\n };\n throw Error(errorInfo.type, {cause: errorInfo});\n }\n const allAesMappings = [...grouping, ...dotSize, ...dotShape];\n const legendLabels = createLegendInfo(this.data, allAesMappings, layers);\n const layersData = getLayersData(this.data, layers, facetKeys, dotsByFacets, categoryGroupingCombinations, groupingColumns, chartSettings.xAxis, discreteAxisDataX);\n const facetLabels = getFacetLabels(this.data, facetBy, facetKeys, facetKeysCombinations);\n\n this.calculatedData = {\n onlyPositive,\n dotsByFacets,\n facetKeys,\n facetKeysCombinations,\n facetLabels,\n trendsData,\n legendLabels,\n layersData,\n discreteAxisDataX,\n discreteAxisDataY\n };\n }\n\n _updateAesInData() {\n const calculated = this.calculatedData;\n if (!calculated) {\n return;\n }\n const {grouping, trend, layers, dotSize, dotShape} = this.settings;\n const {facetKeys, trendsData} = calculated;\n\n facetKeys.forEach(facetKey => {\n for (let i = 0; i < layers.length; i++) {\n calculated.layersData[facetKey][i].info = layers[i];\n }\n });\n\n const allAesMappings = [...grouping, ...dotSize, ...dotShape];\n\n allAesMappings.forEach(({columnName, inheritedAes}) => {\n const usedAes = new Set<keyof AesItem>();\n const usedAesFromPalettes: Partial<Record<keyof AesItem, string[]>> = {}; // if there is palette in mapping then\n layers.forEach(layer => {\n if (layer.aes) {\n Object.entries(layer.aes).forEach(([key, value]) => {\n if (isInheritMapping(value) && value.value === columnName.value) {\n usedAes.add(key as keyof AesItem);\n if (value.palette) {\n usedAesFromPalettes[key as keyof AesItem] = value.palette;\n }\n }\n });\n }\n });\n calculated.legendLabels[columnName.value].usedAes = [...usedAes];\n calculated.legendLabels[columnName.value].aesMap = addPalettesToAesMapping(\n columnName,\n usedAesFromPalettes,\n inheritedAes\n );\n });\n if (trendsData && trend) {\n Object.keys(trendsData).forEach((key) => {\n trendsData[key].forEach(trendInfo => {\n trendInfo.color = trend.color;\n trendInfo.bounded = trend.bounded;\n });\n });\n }\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {facetLabels} = this.calculatedData;\n const {id, chartSettings, facetSettings, grouping, dotSize, dotShape, keyColumn, layers, trend} = this.settings;\n\n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n facetSettings,\n this.calculatedData.facetKeys,\n this.calculatedData.facetKeys.map(v => facetLabels[v]), //for titles, if facet by more than 1 column\n this.calculatedData.dotsByFacets,\n this.calculatedData.trendsData,\n keyColumn,\n this.calculatedData.onlyPositive,\n this.calculatedData.legendLabels,\n this.calculatedData.layersData,\n [...grouping.map(v => v.columnName), ...dotSize.map(v => v.columnName), ...dotShape.map(v => v.columnName)],\n layers,\n trend,\n this.calculatedData.discreteAxisDataX,\n this.calculatedData.discreteAxisDataY,\n this.onTooltipHintSwitch\n );\n }\n}\n"],"names":["isInheritMapping","value","getDiscreteAxisData","data","axis","column","keys","res","v","labelValue","ChartScatterplot","AbstractChart","settings","eventHandlers","__publicField","ChartRenderer","ScatterplotSettingsImpl","node","err","isErrorInfo","getUnknownErrorInfo","previousSettings","previousData","_field","_value","renderToString","prevSettings","el","idx","_a","arraysAreDifferent","_b","_c","_d","l","prevData","prevKeys","key","x","y","facetBy","grouping","dotSize","dotShape","trend","layers","label","highlight","chartSettings","facetKeysLists","categoryGroupingKeysLists","columnName","facetKeysCombinations","getKeysCombinations","categoryGroupingCombinations","facetGroupingValues","onlyPositive","groupingColumns","dotsByFacets","getDots","facetKeys","MAX_FACETS_COUNT","errorInfo","trendsData","getRegressionData","discreteAxisDataX","discreteAxisDataY","MAX_GROUPS_COUNT","allAesMappings","legendLabels","createLegendInfo","layersData","getLayersData","facetLabels","getFacetLabels","calculated","facetKey","i","inheritedAes","usedAes","usedAesFromPalettes","layer","addPalettesToAesMapping","trendInfo","id","facetSettings","keyColumn"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milaboratories/miplots4",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.171",
|
|
4
4
|
"description": "Data visualization library",
|
|
5
5
|
"author": "erohinaelena",
|
|
6
6
|
"license": "ISC",
|
|
@@ -20,11 +20,13 @@
|
|
|
20
20
|
"@d3fc/d3fc-chart": "^5.1.9",
|
|
21
21
|
"@d3fc/d3fc-pointer": "^3.0.3",
|
|
22
22
|
"@d3fc/d3fc-webgl": "^3.2.1",
|
|
23
|
+
"@d3fc/d3fc-series": "^6.1.3",
|
|
23
24
|
"@stdlib/stats-anova1": "^0.2.2",
|
|
24
25
|
"@stdlib/stats-kruskal-test": "^0.2.2",
|
|
25
26
|
"@stdlib/stats-ttest": "^0.2.2",
|
|
26
27
|
"@stdlib/stats-ttest2": "^0.2.2",
|
|
27
28
|
"@stdlib/stats-wilcoxon": "^0.2.2",
|
|
29
|
+
"@stdlib/stats-base-dists-f-cdf": "^0.2.2",
|
|
28
30
|
"comlink": "^4.4.2",
|
|
29
31
|
"d3-array": "^3.2.4",
|
|
30
32
|
"d3-axis": "^3.0.0",
|
|
@@ -42,8 +44,8 @@
|
|
|
42
44
|
"kdbush": "^4.0.2",
|
|
43
45
|
"lodash": "^4.17.21",
|
|
44
46
|
"rbush": "^4.0.1",
|
|
45
|
-
"react": "^
|
|
46
|
-
"react-dom": "^
|
|
47
|
+
"react": "^19.2.4",
|
|
48
|
+
"react-dom": "^19.2.3",
|
|
47
49
|
"zod": "^3.23.8"
|
|
48
50
|
},
|
|
49
51
|
"devDependencies": {
|
|
@@ -64,8 +66,8 @@
|
|
|
64
66
|
"@types/lodash": "^4.17.21",
|
|
65
67
|
"@types/node": "^22.19.1",
|
|
66
68
|
"@types/rbush": "^4.0.0",
|
|
67
|
-
"@types/react": "^
|
|
68
|
-
"@types/react-dom": "^
|
|
69
|
+
"@types/react": "^19.2.10",
|
|
70
|
+
"@types/react-dom": "^19.2.3",
|
|
69
71
|
"@milaboratories/build-configs": "^1.0.5",
|
|
70
72
|
"@milaboratories/ts-configs": "^1.2.0",
|
|
71
73
|
"@milaboratories/ts-builder": "^1.2.4",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react-dom-server-legacy.browser.production.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react-dom-server.browser.production.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react-dom.production.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react-jsx-runtime.production.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react.production.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.production.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|