@milaboratories/graph-maker 1.1.165 → 1.1.167
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/dist/GraphMaker/constantsCommon.d.ts +0 -9
- package/dist/GraphMaker/constantsCommon.d.ts.map +1 -1
- package/dist/GraphMaker/constantsCommon.js +74 -81
- package/dist/GraphMaker/constantsCommon.js.map +1 -1
- package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +8 -2
- package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
- package/dist/GraphMaker/forms/DataMappingForm/DiscreteForm.vue.js +26 -20
- package/dist/GraphMaker/forms/DataMappingForm/DiscreteForm.vue.js.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/scatterplot/Scatter.vue.d.ts.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/scatterplot/Scatter.vue.js +37 -31
- package/dist/GraphMaker/forms/LayersForm/Layer/scatterplot/Scatter.vue.js.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/scatterplot-umap/Scatter.vue.js +30 -24
- package/dist/GraphMaker/forms/LayersForm/Layer/scatterplot-umap/Scatter.vue.js.map +1 -1
- package/dist/GraphMaker/forms/StatisticsForm/DiscreteStatisticsForm.vue.js +33 -27
- package/dist/GraphMaker/forms/StatisticsForm/DiscreteStatisticsForm.vue.js.map +1 -1
- package/dist/GraphMaker/index.vue.js +8 -2
- package/dist/GraphMaker/index.vue.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.js +22 -16
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.js +17 -11
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.js +26 -20
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.js +29 -23
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js +83 -68
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +25 -19
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
- package/dist/GraphMaker/utils/getUsedAesInMapping.js +37 -31
- package/dist/GraphMaker/utils/getUsedAesInMapping.js.map +1 -1
- package/dist/GraphMaker/utils/loadDefaultSources.d.ts.map +1 -1
- package/dist/GraphMaker/utils/loadDefaultSources.js +36 -31
- package/dist/GraphMaker/utils/loadDefaultSources.js.map +1 -1
- package/dist/_virtual/stringify.js +5 -0
- package/dist/_virtual/stringify.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js +106 -107
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js +120 -121
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js +83 -84
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/dendro.js +4 -4
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/discrete.js +11 -11
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js +123 -124
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/histogram.js +8 -8
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js +88 -89
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js +103 -105
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js +148 -119
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/components/PlDataTable.js +4 -4
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/dist/render/util/label.js +5 -5
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/node_modules/@milaboratories/pl-model-common/dist/drivers/blob.js +8 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/node_modules/@milaboratories/pl-model-common/dist/drivers/blob.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js +182 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/node_modules/@milaboratories/pl-model-common/dist/errors.js +18 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/node_modules/@milaboratories/pl-model-common/dist/errors.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/node_modules/@milaboratories/pl-model-common/dist/json.js +12 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/node_modules/@milaboratories/pl-model-common/dist/json.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/node_modules/@milaboratories/pl-model-common/dist/plid.js +7 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/node_modules/@milaboratories/pl-model-common/dist/plid.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/node_modules/@milaboratories/pl-model-common/dist/ref.js +8 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/node_modules/@platforma-sdk/model/node_modules/@milaboratories/pl-model-common/dist/ref.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js +105 -111
- package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js +159 -164
- package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js.map +1 -1
- package/dist/node_modules/@milaboratories/pl-error-like/dist/error_like_shape.js +36 -0
- package/dist/node_modules/@milaboratories/pl-error-like/dist/error_like_shape.js.map +1 -0
- package/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/blob.js +8 -0
- package/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/blob.js.map +1 -0
- package/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js +52 -0
- package/dist/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js.map +1 -0
- package/dist/node_modules/@milaboratories/pl-model-common/dist/plid.js +7 -0
- package/dist/node_modules/@milaboratories/pl-model-common/dist/plid.js.map +1 -0
- package/dist/node_modules/@milaboratories/pl-model-common/dist/ref.js +8 -0
- package/dist/node_modules/@milaboratories/pl-model-common/dist/ref.js.map +1 -0
- package/dist/node_modules/@platforma-sdk/model/dist/render/util/label.js +16 -0
- package/dist/node_modules/@platforma-sdk/model/dist/render/util/label.js.map +1 -0
- package/dist/node_modules/json-stringify-safe/stringify.js +20 -0
- package/dist/node_modules/json-stringify-safe/stringify.js.map +1 -0
- package/dist/node_modules/zod/lib/index.js +2978 -0
- package/dist/node_modules/zod/lib/index.js.map +1 -0
- package/package.json +3 -3
- package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js +0 -18
- package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heatmap.js","sources":["../../../../../../../node_modules/@milaboratories/pf-plots/src/controllers/controllersByChartType/heatmap.ts"],"sourcesContent":["import {AxisSpec, PColumnSpec} from '@milaboratories/pl-model-common';\nimport canonicalize from 'canonicalize';\nimport type {ComponentStateFilter, ComponentStateSimple, DataByColumns, InputStateParent} from '../../common';\nimport {FORMAT} from '../../constants';\nimport {ControllerBase, PlotDataAndSettings} from '../ControllerBase';\nimport {ComponentController} from '../ComponentController';\nimport {columnOrAxisIdFromString, isColumnId} from '../../spec';\nimport type {DataStore} from '../../store';\nimport {\n createLinkerMap, createMultipliesByMap, getAxesSpecsFromSources,\n getColumnOrAxisLabel, getColumnOrAxisSpec,\n getColumnOrAxisValueLabelsId,\n getFiltersFromStates, getLinkerColumnsForSource,\n OptionsInfo,\n} from '../../utils';\nimport {AxisId, ColumnId} from '../../spec';\nimport type {ColumnsProvider} from '../../pframe/ColumnsProvider';\n\nexport interface HeatmapUIState extends InputStateParent<'heatmap'> {\n type: 'heatmap';\n components: {\n value: ComponentStateSimple;\n x: ComponentStateSimple;\n y: ComponentStateSimple;\n xGroupBy: ComponentStateSimple;\n yGroupBy: ComponentStateSimple;\n filters: ComponentStateFilter;\n tabBy: ComponentStateFilter;\n facetBy: ComponentStateSimple;\n annotationsX: ComponentStateSimple;\n annotationsY: ComponentStateSimple;\n tooltipContent: ComponentStateSimple;\n };\n}\n\nexport const InitialHeatmapState: HeatmapUIState = {\n type: 'heatmap',\n components: {\n value: {type: 'simple', selectorStates: []},\n x: {type: 'simple', selectorStates: []},\n y: {type: 'simple', selectorStates: []},\n xGroupBy: {type: 'simple', selectorStates: []},\n yGroupBy: {type: 'simple', selectorStates: []},\n filters: {type: 'filter', selectorStates: []},\n tabBy: {type: 'filter', selectorStates: []},\n facetBy: {type: 'simple', selectorStates: []},\n annotationsX: {type: 'simple', selectorStates: []},\n annotationsY: {type: 'simple', selectorStates: []},\n tooltipContent: {type: 'simple', selectorStates: []},\n },\n dividedAxes: {},\n};\n\nfunction isDiscreteData(spec: PColumnSpec | AxisSpec | null) {\n if (!spec) {\n return true;\n }\n if ('kind' in spec && spec.kind === 'PColumn') {\n return spec.valueType === 'String';\n }\n return (spec as AxisSpec).type === 'String';\n}\n\nfunction getMultiSourceColumn(\n data: Awaited<ReturnType<ColumnsProvider['getTableOuterJoin']>>,\n selectedSources: string[]\n) {\n if (!selectedSources.length) {\n return [];\n }\n const selectedIds = selectedSources.map(str => columnOrAxisIdFromString(str));\n const n = Object.values(data.columnsData)[0].length;\n const result: string[] = [];\n for (let i = 0; i < n; i++) {\n const value = selectedIds\n .map(id => {\n const key = id.toCanonicalString();\n return isColumnId(id) ? data.columnsData[key][i] : data.axesData[key][i];\n })\n .join(', ');\n result.push(value);\n }\n return result;\n}\n\nexport class HeatmapStateController extends ControllerBase<HeatmapUIState> {\n dataInputs = ['value'];\n dontAllowUnfilteredHighCardinality = true;\n\n constructor() {\n super(\n {\n value: new ComponentController<HeatmapUIState, 'value'>({\n componentName: 'value',\n allowedTypes: ['Int', 'Long', 'Double', 'Float', 'String'],\n settings: {\n isDataComponent: true,\n columnsAllowed: true,\n axesAllowed: false,\n required: true,\n },\n }),\n x: new ComponentController<HeatmapUIState, 'x'>({\n componentName: 'x',\n allowedTypes: ['Int', 'String', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['value'],\n settings: {\n required: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: false,\n },\n }),\n xGroupBy: new ComponentController<HeatmapUIState, 'xGroupBy'>({\n componentName: 'xGroupBy',\n allowedTypes: ['Int', 'String', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['value'],\n settings: {\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: true,\n },\n dependsOn: ['x'],\n checkSourceBySpec: (spec, state) => {\n const allowedAxes = new Set([\n ...state.components.x.selectorStates.map(s => s.selectedSource),\n ...state.components.xGroupBy.selectorStates.map(s => s.selectedSource),\n ]);\n\n if ('kind' in spec && spec.kind === 'PColumn') {\n return AxisId.fromAxesSpec(spec.axesSpec).every(id =>\n allowedAxes.has(id.toCanonicalString())\n );\n }\n return true;\n },\n }),\n y: new ComponentController<HeatmapUIState, 'y'>({\n componentName: 'y',\n allowedTypes: ['Int', 'String', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['value'],\n settings: {\n required: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: true,\n },\n }),\n yGroupBy: new ComponentController<HeatmapUIState, 'yGroupBy'>({\n componentName: 'yGroupBy',\n allowedTypes: ['Int', 'String', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['value'],\n settings: {\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: true,\n },\n dependsOn: ['y'],\n checkSourceBySpec: (spec, state) => {\n const allowedAxes = new Set([\n ...state.components.y.selectorStates.map(s => s.selectedSource),\n ...state.components.yGroupBy.selectorStates.map(s => s.selectedSource),\n ]);\n\n if ('kind' in spec && spec.kind === 'PColumn') {\n return AxisId.fromAxesSpec(spec.axesSpec).every(id =>\n allowedAxes.has(id.toCanonicalString())\n );\n }\n return true;\n },\n }),\n tooltipContent: new ComponentController<HeatmapUIState, 'tooltipContent'>({\n componentName: 'tooltipContent',\n allowedTypes: ['String', 'Int', 'Long', 'Float', 'Double'],\n strictlyDependsOnParents: true,\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n multipleSelectors: true,\n },\n }),\n facetBy: new ComponentController<HeatmapUIState, 'facetBy'>({\n componentName: 'facetBy',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n }),\n annotationsX: new ComponentController<HeatmapUIState, 'annotationsX'>({\n componentName: 'annotationsX',\n allowedTypes: ['Int', 'Long', 'Double', 'Float', 'String'],\n parentComponents: ['value'],\n settings: {\n axesAllowed: true,\n multipleSelectors: true,\n },\n dependsOn: ['x'],\n checkSourceBySpec: (spec, state) => {\n const allowedAxes = new Set([\n ...state.components.x.selectorStates.map(s => s.selectedSource),\n ...state.components.xGroupBy.selectorStates.map(s => s.selectedSource),\n ]);\n\n if ('kind' in spec && spec.kind === 'PColumn') {\n return AxisId.fromAxesSpec(spec.axesSpec).every(id =>\n allowedAxes.has(id.toCanonicalString())\n );\n }\n return allowedAxes.has(AxisId.fromAxisSpec(spec as AxisSpec).toCanonicalString());\n },\n }),\n annotationsY: new ComponentController<HeatmapUIState, 'annotationsY'>({\n componentName: 'annotationsY',\n allowedTypes: ['Int', 'Long', 'Double', 'Float', 'String'],\n parentComponents: ['value'],\n settings: {\n axesAllowed: true,\n multipleSelectors: true,\n },\n dependsOn: ['y'],\n checkSourceBySpec: (spec, state) => {\n const allowedAxes = new Set([\n ...state.components.y.selectorStates.map(s => s.selectedSource),\n ...state.components.yGroupBy.selectorStates.map(s => s.selectedSource),\n ]);\n\n if ('kind' in spec && spec.kind === 'PColumn') {\n return AxisId.fromAxesSpec(spec.axesSpec).every(id =>\n allowedAxes.has(id.toCanonicalString())\n );\n }\n return allowedAxes.has(AxisId.fromAxisSpec(spec as AxisSpec).toCanonicalString());\n },\n }),\n },\n {\n filters: new ComponentController<HeatmapUIState, 'filters'>({\n componentName: 'filters',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Long'],\n strictlyDependsOnParents: false,\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n }),\n tabBy: new ComponentController<HeatmapUIState, 'tabBy'>({\n componentName: 'tabBy',\n allowedTypes: ['String', 'Int'],\n strictlyDependsOnParents: false,\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n dimensionConsumer: true,\n },\n }),\n }\n );\n }\n\n getMustBeConsumedAxes(state: HeatmapUIState, optionsInfo: OptionsInfo): Set<string> {\n if (!state.components.value.selectorStates.length) {\n return new Set<string>();\n }\n const sourceId = state.components.value.selectorStates[0].selectedSource;\n const data = optionsInfo.get(sourceId);\n if (!data || data.kind !== 'column') {\n return new Set<string>();\n }\n return new Set(data.spec.axesSpec.map((s) => AxisId.fromAxisSpec(s).toCanonicalString()))\n }\n\n async createDataByColumns(store: DataStore, state: HeatmapUIState): Promise<PlotDataAndSettings['data']> {\n const valueColumnIdString = state.components.value.selectorStates[0]?.selectedSource;\n if (!valueColumnIdString) {\n throw Error('Value column is not valid');\n }\n const valueColumnId = columnOrAxisIdFromString(valueColumnIdString);\n if (!isColumnId(valueColumnId)) {\n throw Error('Value column is not valid');\n }\n const dataByColumns: DataByColumns = {\n type: 'columns',\n id: canonicalize(state.components) ?? '',\n values: {},\n };\n\n const linkerMap = await createLinkerMap(store);\n const multipliesByMap = await createMultipliesByMap(store);\n\n const filterSelectedStates = [\n ...state.components.filters.selectorStates,\n ...state.components.tabBy.selectorStates\n ]\n // filters for column/axes data requests\n const filters = getFiltersFromStates(filterSelectedStates);\n const filterColumns = filterSelectedStates.map(s => columnOrAxisIdFromString(s.selectedSource)).filter(isColumnId);\n\n const parentSources = [valueColumnIdString];\n const parentAxesList = await getAxesSpecsFromSources(store, parentSources);\n const inputs = [\n state.components.facetBy,\n state.components.annotationsX,\n state.components.annotationsY,\n state.components.x,\n state.components.y,\n state.components.xGroupBy,\n state.components.yGroupBy,\n state.components.tooltipContent,\n ];\n const secondarySources: (ColumnId | AxisId)[] = []; // primary sources are the only value column\n const linkerColumns:ColumnId[] = [];\n\n for (const {selectedSource} of filterSelectedStates) {\n linkerColumns.push(...await getLinkerColumnsForSource(\n store,\n linkerMap,\n multipliesByMap,\n parentAxesList,\n selectedSource\n ));\n }\n\n for (const input of inputs) {\n for (const {selectedSource} of input.selectorStates) {\n secondarySources.push(columnOrAxisIdFromString(selectedSource)!);\n linkerColumns.push(...await getLinkerColumnsForSource(\n store,\n linkerMap,\n multipliesByMap,\n parentAxesList,\n selectedSource\n ));\n const labelsColumnId = await getColumnOrAxisValueLabelsId(store, selectedSource, parentSources);\n if (labelsColumnId) {\n secondarySources.push(labelsColumnId);\n }\n }\n }\n\n const data = await store.pFrameProvider.getTableOuterJoin(\n [valueColumnId, ...linkerColumns, ...filterColumns],\n secondarySources,\n filters,\n true\n );\n\n secondarySources.forEach(item => {\n const key = item.toCanonicalString();\n dataByColumns.values[key] = isColumnId(item) ? data.columnsData[key] : data.axesData[key];\n });\n dataByColumns.values[valueColumnId.toCanonicalString()] = data.columnsData[valueColumnId.toCanonicalString()];\n\n // x column should contain xGroup axes\n const xAxes = state.components.x.selectorStates\n .concat(state.components.xGroupBy.selectorStates)\n .map(state => state.selectedSource);\n const xKey = xAxes.join(', ');\n dataByColumns.values[xKey] = getMultiSourceColumn(data, xAxes);\n\n // if grouping is not empty x keys will include grouping keys, but grouping keys should be excluded from x labels\n const xVisibleAxes = state.components.x.selectorStates.map(state => state.selectedSource);\n const xAxesLabeled = await Promise.all(\n xVisibleAxes.map(\n async id => (await getColumnOrAxisValueLabelsId(store, id, parentSources))?.toCanonicalString() ?? id\n )\n );\n dataByColumns.values.xLabelsKey = getMultiSourceColumn(data, xAxesLabeled);\n\n // y column should contain yGroup axes\n const yAxes = state.components.y.selectorStates\n .concat(state.components.yGroupBy.selectorStates)\n .map(state => state.selectedSource);\n const yKey = yAxes.join(', ');\n dataByColumns.values[yKey] = getMultiSourceColumn(data, yAxes);\n\n // column for labels - without grouping data in labels\n const yVisibleAxes = state.components.y.selectorStates.map(state => state.selectedSource);\n const yAxesLabeled = await Promise.all(\n yVisibleAxes.map(\n async id => (await getColumnOrAxisValueLabelsId(store, id, parentSources))?.toCanonicalString() ?? id\n )\n );\n dataByColumns.values.yLabelsKey = getMultiSourceColumn(data, yAxesLabeled);\n\n return {byColumns: dataByColumns};\n }\n\n async createChartSettings(store: DataStore, state: HeatmapUIState): Promise<Record<string, unknown>> {\n const valueColumnIdString = state.components.value.selectorStates[0]?.selectedSource;\n if (!valueColumnIdString) {\n throw Error('Value column is not valid');\n }\n const valueColumnId = columnOrAxisIdFromString(valueColumnIdString);\n if (!isColumnId(valueColumnId)) {\n throw Error('Value column is not valid');\n }\n\n const parentSources = [valueColumnIdString];\n const value = {\n type: 'column',\n value: valueColumnIdString,\n label: await getColumnOrAxisLabel(store, valueColumnIdString, []),\n };\n const xAxes = state.components.x.selectorStates\n .concat(state.components.xGroupBy.selectorStates)\n .map(({selectedSource}) => columnOrAxisIdFromString(selectedSource))\n .map(id => id.toCanonicalString());\n const xKey = xAxes.join(', ');\n\n const yAxes = state.components.y.selectorStates\n .concat(state.components.yGroupBy.selectorStates)\n .map(({selectedSource}) => columnOrAxisIdFromString(selectedSource))\n .map(id => id.toCanonicalString());\n const yKey = yAxes.join(', ');\n const facetBy = await Promise.all(\n state.components.facetBy.selectorStates.map(async selectorState => ({\n type: 'column',\n value:\n (\n await getColumnOrAxisValueLabelsId(store, selectorState.selectedSource, parentSources)\n )?.toCanonicalString() ?? selectorState.selectedSource,\n }))\n );\n const xGroupBy = await Promise.all(\n state.components.xGroupBy.selectorStates.map(async selectorState => ({\n type: 'column',\n label: await getColumnOrAxisLabel(store, selectorState.selectedSource, parentSources),\n value: selectorState.selectedSource,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, selectorState.selectedSource, parentSources))?.toCanonicalString() ??\n selectorState.selectedSource,\n }))\n );\n const yGroupBy = await Promise.all(\n state.components.yGroupBy.selectorStates.map(async selectorState => ({\n type: 'column',\n label: await getColumnOrAxisLabel(store, selectorState.selectedSource, parentSources),\n value: selectorState.selectedSource,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, selectorState.selectedSource, parentSources))?.toCanonicalString() ??\n selectorState.selectedSource,\n }))\n );\n const valueSpec = await store.pFrameProvider.getColumnSpecById(valueColumnId);\n const annotationsX = await Promise.all(\n state.components.annotationsX.selectorStates.map(async selectorState => {\n const idString = selectorState.selectedSource;\n const id = columnOrAxisIdFromString(idString);\n const spec: PColumnSpec | AxisSpec | null = isColumnId(id)\n ? await store.pFrameProvider.getColumnSpecById(id)\n : ((valueSpec?.axesSpec as AxisSpec[])?.find(\n (axisSpec: AxisSpec) => AxisId.fromAxisSpec(axisSpec).toCanonicalString() === idString\n ) ?? null);\n return {\n axis: 'x',\n valueColumn: {\n type: 'column',\n value: idString,\n label: await getColumnOrAxisLabel(store, idString, parentSources),\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, idString, parentSources))?.toCanonicalString() ??\n idString\n },\n type: isDiscreteData(spec) ? 'discrete' : 'continuous',\n };\n })\n );\n const annotationsY = await Promise.all(\n state.components.annotationsY.selectorStates.map(async selectorState => {\n const idString = selectorState.selectedSource;\n const id = columnOrAxisIdFromString(idString);\n const spec: PColumnSpec | AxisSpec | null = isColumnId(id)\n ? await store.pFrameProvider.getColumnSpecById(id)\n : ((valueSpec?.axesSpec as AxisSpec[])?.find(\n (axisSpec: AxisSpec) => AxisId.fromAxisSpec(axisSpec).toCanonicalString() === idString\n ) ?? null);\n return {\n axis: 'y',\n valueColumn: {\n type: 'column',\n value: idString,\n label: await getColumnOrAxisLabel(store, idString, parentSources),\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, idString, parentSources))?.toCanonicalString() ??\n idString\n },\n type: isDiscreteData(spec) ? 'discrete' : 'continuous',\n };\n })\n );\n\n const xAxisTitle = (\n await Promise.all(\n state.components.x.selectorStates.map(state =>\n getColumnOrAxisLabel(store, state.selectedSource, parentSources)\n )\n )\n ).join(', ');\n const yAxisTitle = (\n await Promise.all(\n state.components.y.selectorStates.map(state =>\n getColumnOrAxisLabel(store, state.selectedSource, parentSources)\n )\n )\n ).join(', ');\n\n const tooltipContent = await Promise.all(\n state.components.tooltipContent.selectorStates.map(async selectorState => {\n const source = selectorState.selectedSource;\n const spec = await getColumnOrAxisSpec(store, source, parentSources);\n return {\n type: 'column',\n label: (await getColumnOrAxisLabel(store, source, parentSources)) || source,\n value: source,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, source, parentSources))?.toCanonicalString() ??\n source,\n format: spec?.annotations?.[FORMAT] ?? '.0%'\n };\n })\n );\n\n return {\n type: 'heatmap',\n valueColumn: value,\n valueType: isDiscreteData(valueSpec) ? 'discrete' : 'continuous',\n xColumn: {\n type: 'column',\n value: xKey,\n label: xAxisTitle,\n valueLabels: 'xLabelsKey',\n },\n yColumn: {\n type: 'column',\n value: yKey,\n label: yAxisTitle,\n valueLabels: 'yLabelsKey',\n },\n facetBy,\n xGroupBy,\n yGroupBy,\n annotations: [...annotationsX, ...annotationsY],\n tooltips: {\n show: true,\n content: tooltipContent,\n },\n };\n }\n}\n"],"names":["InitialHeatmapState","isDiscreteData","spec","getMultiSourceColumn","data","selectedSources","selectedIds","str","columnOrAxisIdFromString","n","result","i","value","id","key","isColumnId","HeatmapStateController","ControllerBase","ComponentController","state","allowedAxes","s","AxisId","__publicField","optionsInfo","sourceId","store","valueColumnIdString","_a","valueColumnId","dataByColumns","canonicalize","linkerMap","createLinkerMap","multipliesByMap","createMultipliesByMap","filterSelectedStates","filters","getFiltersFromStates","filterColumns","parentSources","parentAxesList","getAxesSpecsFromSources","inputs","secondarySources","linkerColumns","selectedSource","getLinkerColumnsForSource","input","labelsColumnId","getColumnOrAxisValueLabelsId","item","xAxes","xKey","xVisibleAxes","xAxesLabeled","yAxes","yKey","yVisibleAxes","yAxesLabeled","getColumnOrAxisLabel","facetBy","selectorState","xGroupBy","yGroupBy","valueSpec","annotationsX","idString","axisSpec","_b","annotationsY","xAxisTitle","yAxisTitle","tooltipContent","source","getColumnOrAxisSpec","FORMAT"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"heatmap.js","sources":["../../../../../../../node_modules/@milaboratories/pf-plots/src/controllers/controllersByChartType/heatmap.ts"],"sourcesContent":["import {AxisSpec, PColumnSpec} from '@milaboratories/pl-model-common';\nimport canonicalize from 'canonicalize';\nimport type {ComponentStateFilter, ComponentStateSimple, DataByColumns, InputStateParent} from '../../common';\nimport {ControllerBase, PlotDataAndSettings} from '../ControllerBase';\nimport {ComponentController} from '../ComponentController';\nimport {columnOrAxisIdFromString, isColumnId} from '../../spec';\nimport type {DataStore} from '../../store';\nimport {\n createLinkerMap, createMultipliesByMap, getAxesSpecsFromSources,\n getColumnOrAxisLabel, getColumnOrAxisSpec,\n getColumnOrAxisValueLabelsId,\n getFiltersFromStates, getFormat, getLinkerColumnsForSource,\n OptionsInfo,\n} from '../../utils';\nimport {AxisId, ColumnId} from '../../spec';\nimport type {ColumnsProvider} from '../../pframe/ColumnsProvider';\n\nexport interface HeatmapUIState extends InputStateParent<'heatmap'> {\n type: 'heatmap';\n components: {\n value: ComponentStateSimple;\n x: ComponentStateSimple;\n y: ComponentStateSimple;\n xGroupBy: ComponentStateSimple;\n yGroupBy: ComponentStateSimple;\n filters: ComponentStateFilter;\n tabBy: ComponentStateFilter;\n facetBy: ComponentStateSimple;\n annotationsX: ComponentStateSimple;\n annotationsY: ComponentStateSimple;\n tooltipContent: ComponentStateSimple;\n };\n}\n\nexport const InitialHeatmapState: HeatmapUIState = {\n type: 'heatmap',\n components: {\n value: {type: 'simple', selectorStates: []},\n x: {type: 'simple', selectorStates: []},\n y: {type: 'simple', selectorStates: []},\n xGroupBy: {type: 'simple', selectorStates: []},\n yGroupBy: {type: 'simple', selectorStates: []},\n filters: {type: 'filter', selectorStates: []},\n tabBy: {type: 'filter', selectorStates: []},\n facetBy: {type: 'simple', selectorStates: []},\n annotationsX: {type: 'simple', selectorStates: []},\n annotationsY: {type: 'simple', selectorStates: []},\n tooltipContent: {type: 'simple', selectorStates: []},\n },\n dividedAxes: {},\n};\n\nfunction isDiscreteData(spec: PColumnSpec | AxisSpec | null) {\n if (!spec) {\n return true;\n }\n if ('kind' in spec && spec.kind === 'PColumn') {\n return spec.valueType === 'String';\n }\n return (spec as AxisSpec).type === 'String';\n}\n\nfunction getMultiSourceColumn(\n data: Awaited<ReturnType<ColumnsProvider['getTableOuterJoin']>>,\n selectedSources: string[]\n) {\n if (!selectedSources.length) {\n return [];\n }\n const selectedIds = selectedSources.map(str => columnOrAxisIdFromString(str));\n const n = Object.values(data.columnsData)[0].length;\n const result: string[] = [];\n for (let i = 0; i < n; i++) {\n const value = selectedIds\n .map(id => {\n const key = id.toCanonicalString();\n return isColumnId(id) ? data.columnsData[key][i] : data.axesData[key][i];\n })\n .join(', ');\n result.push(value);\n }\n return result;\n}\n\nexport class HeatmapStateController extends ControllerBase<HeatmapUIState> {\n dataInputs = ['value'];\n dontAllowUnfilteredHighCardinality = true;\n\n constructor() {\n super(\n {\n value: new ComponentController<HeatmapUIState, 'value'>({\n componentName: 'value',\n allowedTypes: ['Int', 'Long', 'Double', 'Float', 'String'],\n settings: {\n isDataComponent: true,\n columnsAllowed: true,\n axesAllowed: false,\n required: true,\n },\n }),\n x: new ComponentController<HeatmapUIState, 'x'>({\n componentName: 'x',\n allowedTypes: ['Int', 'String', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['value'],\n settings: {\n required: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: false,\n },\n }),\n xGroupBy: new ComponentController<HeatmapUIState, 'xGroupBy'>({\n componentName: 'xGroupBy',\n allowedTypes: ['Int', 'String', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['value'],\n settings: {\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: true,\n },\n dependsOn: ['x'],\n checkSourceBySpec: (spec, state) => {\n const allowedAxes = new Set([\n ...state.components.x.selectorStates.map(s => s.selectedSource),\n ...state.components.xGroupBy.selectorStates.map(s => s.selectedSource),\n ]);\n\n if ('kind' in spec && spec.kind === 'PColumn') {\n return AxisId.fromAxesSpec(spec.axesSpec).every(id =>\n allowedAxes.has(id.toCanonicalString())\n );\n }\n return true;\n },\n }),\n y: new ComponentController<HeatmapUIState, 'y'>({\n componentName: 'y',\n allowedTypes: ['Int', 'String', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['value'],\n settings: {\n required: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: true,\n },\n }),\n yGroupBy: new ComponentController<HeatmapUIState, 'yGroupBy'>({\n componentName: 'yGroupBy',\n allowedTypes: ['Int', 'String', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['value'],\n settings: {\n dimensionConsumer: true,\n multipleSelectors: true,\n axesAllowed: true,\n columnsAllowed: true,\n },\n dependsOn: ['y'],\n checkSourceBySpec: (spec, state) => {\n const allowedAxes = new Set([\n ...state.components.y.selectorStates.map(s => s.selectedSource),\n ...state.components.yGroupBy.selectorStates.map(s => s.selectedSource),\n ]);\n\n if ('kind' in spec && spec.kind === 'PColumn') {\n return AxisId.fromAxesSpec(spec.axesSpec).every(id =>\n allowedAxes.has(id.toCanonicalString())\n );\n }\n return true;\n },\n }),\n tooltipContent: new ComponentController<HeatmapUIState, 'tooltipContent'>({\n componentName: 'tooltipContent',\n allowedTypes: ['String', 'Int', 'Long', 'Float', 'Double'],\n strictlyDependsOnParents: true,\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n multipleSelectors: true,\n },\n }),\n facetBy: new ComponentController<HeatmapUIState, 'facetBy'>({\n componentName: 'facetBy',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n }),\n annotationsX: new ComponentController<HeatmapUIState, 'annotationsX'>({\n componentName: 'annotationsX',\n allowedTypes: ['Int', 'Long', 'Double', 'Float', 'String'],\n parentComponents: ['value'],\n settings: {\n axesAllowed: true,\n multipleSelectors: true,\n },\n dependsOn: ['x'],\n checkSourceBySpec: (spec, state) => {\n const allowedAxes = new Set([\n ...state.components.x.selectorStates.map(s => s.selectedSource),\n ...state.components.xGroupBy.selectorStates.map(s => s.selectedSource),\n ]);\n\n if ('kind' in spec && spec.kind === 'PColumn') {\n return AxisId.fromAxesSpec(spec.axesSpec).every(id =>\n allowedAxes.has(id.toCanonicalString())\n );\n }\n return allowedAxes.has(AxisId.fromAxisSpec(spec as AxisSpec).toCanonicalString());\n },\n }),\n annotationsY: new ComponentController<HeatmapUIState, 'annotationsY'>({\n componentName: 'annotationsY',\n allowedTypes: ['Int', 'Long', 'Double', 'Float', 'String'],\n parentComponents: ['value'],\n settings: {\n axesAllowed: true,\n multipleSelectors: true,\n },\n dependsOn: ['y'],\n checkSourceBySpec: (spec, state) => {\n const allowedAxes = new Set([\n ...state.components.y.selectorStates.map(s => s.selectedSource),\n ...state.components.yGroupBy.selectorStates.map(s => s.selectedSource),\n ]);\n\n if ('kind' in spec && spec.kind === 'PColumn') {\n return AxisId.fromAxesSpec(spec.axesSpec).every(id =>\n allowedAxes.has(id.toCanonicalString())\n );\n }\n return allowedAxes.has(AxisId.fromAxisSpec(spec as AxisSpec).toCanonicalString());\n },\n }),\n },\n {\n filters: new ComponentController<HeatmapUIState, 'filters'>({\n componentName: 'filters',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Long'],\n strictlyDependsOnParents: false,\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n }),\n tabBy: new ComponentController<HeatmapUIState, 'tabBy'>({\n componentName: 'tabBy',\n allowedTypes: ['String', 'Int'],\n strictlyDependsOnParents: false,\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n dimensionConsumer: true,\n },\n }),\n }\n );\n }\n\n getMustBeConsumedAxes(state: HeatmapUIState, optionsInfo: OptionsInfo): Set<string> {\n if (!state.components.value.selectorStates.length) {\n return new Set<string>();\n }\n const sourceId = state.components.value.selectorStates[0].selectedSource;\n const data = optionsInfo.get(sourceId);\n if (!data || data.kind !== 'column') {\n return new Set<string>();\n }\n return new Set(data.spec.axesSpec.map((s) => AxisId.fromAxisSpec(s).toCanonicalString()))\n }\n\n async createDataByColumns(store: DataStore, state: HeatmapUIState): Promise<PlotDataAndSettings['data']> {\n const valueColumnIdString = state.components.value.selectorStates[0]?.selectedSource;\n if (!valueColumnIdString) {\n throw Error('Value column is not valid');\n }\n const valueColumnId = columnOrAxisIdFromString(valueColumnIdString);\n if (!isColumnId(valueColumnId)) {\n throw Error('Value column is not valid');\n }\n const dataByColumns: DataByColumns = {\n type: 'columns',\n id: canonicalize(state.components) ?? '',\n values: {},\n };\n\n const linkerMap = await createLinkerMap(store);\n const multipliesByMap = await createMultipliesByMap(store);\n\n const filterSelectedStates = [\n ...state.components.filters.selectorStates,\n ...state.components.tabBy.selectorStates\n ]\n // filters for column/axes data requests\n const filters = getFiltersFromStates(filterSelectedStates);\n const filterColumns = filterSelectedStates.map(s => columnOrAxisIdFromString(s.selectedSource)).filter(isColumnId);\n\n const parentSources = [valueColumnIdString];\n const parentAxesList = await getAxesSpecsFromSources(store, parentSources);\n const inputs = [\n state.components.facetBy,\n state.components.annotationsX,\n state.components.annotationsY,\n state.components.x,\n state.components.y,\n state.components.xGroupBy,\n state.components.yGroupBy,\n state.components.tooltipContent,\n ];\n const secondarySources: (ColumnId | AxisId)[] = []; // primary sources are the only value column\n const linkerColumns:ColumnId[] = [];\n\n for (const {selectedSource} of filterSelectedStates) {\n linkerColumns.push(...await getLinkerColumnsForSource(\n store,\n linkerMap,\n multipliesByMap,\n parentAxesList,\n selectedSource\n ));\n }\n\n for (const input of inputs) {\n for (const {selectedSource} of input.selectorStates) {\n secondarySources.push(columnOrAxisIdFromString(selectedSource)!);\n linkerColumns.push(...await getLinkerColumnsForSource(\n store,\n linkerMap,\n multipliesByMap,\n parentAxesList,\n selectedSource\n ));\n const labelsColumnId = await getColumnOrAxisValueLabelsId(store, selectedSource, parentSources);\n if (labelsColumnId) {\n secondarySources.push(labelsColumnId);\n }\n }\n }\n\n const data = await store.pFrameProvider.getTableOuterJoin(\n [valueColumnId, ...linkerColumns, ...filterColumns],\n secondarySources,\n filters,\n true\n );\n\n secondarySources.forEach(item => {\n const key = item.toCanonicalString();\n dataByColumns.values[key] = isColumnId(item) ? data.columnsData[key] : data.axesData[key];\n });\n dataByColumns.values[valueColumnId.toCanonicalString()] = data.columnsData[valueColumnId.toCanonicalString()];\n\n // x column should contain xGroup axes\n const xAxes = state.components.x.selectorStates\n .concat(state.components.xGroupBy.selectorStates)\n .map(state => state.selectedSource);\n const xKey = xAxes.join(', ');\n dataByColumns.values[xKey] = getMultiSourceColumn(data, xAxes);\n\n // if grouping is not empty x keys will include grouping keys, but grouping keys should be excluded from x labels\n const xVisibleAxes = state.components.x.selectorStates.map(state => state.selectedSource);\n const xAxesLabeled = await Promise.all(\n xVisibleAxes.map(\n async id => (await getColumnOrAxisValueLabelsId(store, id, parentSources))?.toCanonicalString() ?? id\n )\n );\n dataByColumns.values.xLabelsKey = getMultiSourceColumn(data, xAxesLabeled);\n\n // y column should contain yGroup axes\n const yAxes = state.components.y.selectorStates\n .concat(state.components.yGroupBy.selectorStates)\n .map(state => state.selectedSource);\n const yKey = yAxes.join(', ');\n dataByColumns.values[yKey] = getMultiSourceColumn(data, yAxes);\n\n // column for labels - without grouping data in labels\n const yVisibleAxes = state.components.y.selectorStates.map(state => state.selectedSource);\n const yAxesLabeled = await Promise.all(\n yVisibleAxes.map(\n async id => (await getColumnOrAxisValueLabelsId(store, id, parentSources))?.toCanonicalString() ?? id\n )\n );\n dataByColumns.values.yLabelsKey = getMultiSourceColumn(data, yAxesLabeled);\n\n return {byColumns: dataByColumns};\n }\n\n async createChartSettings(store: DataStore, state: HeatmapUIState): Promise<Record<string, unknown>> {\n const valueColumnIdString = state.components.value.selectorStates[0]?.selectedSource;\n if (!valueColumnIdString) {\n throw Error('Value column is not valid');\n }\n const valueColumnId = columnOrAxisIdFromString(valueColumnIdString);\n if (!isColumnId(valueColumnId)) {\n throw Error('Value column is not valid');\n }\n\n const parentSources = [valueColumnIdString];\n const value = {\n type: 'column',\n value: valueColumnIdString,\n label: await getColumnOrAxisLabel(store, valueColumnIdString, []),\n };\n const xAxes = state.components.x.selectorStates\n .concat(state.components.xGroupBy.selectorStates)\n .map(({selectedSource}) => columnOrAxisIdFromString(selectedSource))\n .map(id => id.toCanonicalString());\n const xKey = xAxes.join(', ');\n\n const yAxes = state.components.y.selectorStates\n .concat(state.components.yGroupBy.selectorStates)\n .map(({selectedSource}) => columnOrAxisIdFromString(selectedSource))\n .map(id => id.toCanonicalString());\n const yKey = yAxes.join(', ');\n const facetBy = await Promise.all(\n state.components.facetBy.selectorStates.map(async selectorState => ({\n type: 'column',\n value:\n (\n await getColumnOrAxisValueLabelsId(store, selectorState.selectedSource, parentSources)\n )?.toCanonicalString() ?? selectorState.selectedSource,\n }))\n );\n const xGroupBy = await Promise.all(\n state.components.xGroupBy.selectorStates.map(async selectorState => ({\n type: 'column',\n label: await getColumnOrAxisLabel(store, selectorState.selectedSource, parentSources),\n value: selectorState.selectedSource,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, selectorState.selectedSource, parentSources))?.toCanonicalString() ??\n selectorState.selectedSource,\n }))\n );\n const yGroupBy = await Promise.all(\n state.components.yGroupBy.selectorStates.map(async selectorState => ({\n type: 'column',\n label: await getColumnOrAxisLabel(store, selectorState.selectedSource, parentSources),\n value: selectorState.selectedSource,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, selectorState.selectedSource, parentSources))?.toCanonicalString() ??\n selectorState.selectedSource,\n }))\n );\n const valueSpec = await store.pFrameProvider.getColumnSpecById(valueColumnId);\n const annotationsX = await Promise.all(\n state.components.annotationsX.selectorStates.map(async selectorState => {\n const idString = selectorState.selectedSource;\n const id = columnOrAxisIdFromString(idString);\n const spec: PColumnSpec | AxisSpec | null = isColumnId(id)\n ? await store.pFrameProvider.getColumnSpecById(id)\n : ((valueSpec?.axesSpec as AxisSpec[])?.find(\n (axisSpec: AxisSpec) => AxisId.fromAxisSpec(axisSpec).toCanonicalString() === idString\n ) ?? null);\n return {\n axis: 'x',\n valueColumn: {\n type: 'column',\n value: idString,\n label: await getColumnOrAxisLabel(store, idString, parentSources),\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, idString, parentSources))?.toCanonicalString() ??\n idString\n },\n type: isDiscreteData(spec) ? 'discrete' : 'continuous',\n };\n })\n );\n const annotationsY = await Promise.all(\n state.components.annotationsY.selectorStates.map(async selectorState => {\n const idString = selectorState.selectedSource;\n const id = columnOrAxisIdFromString(idString);\n const spec: PColumnSpec | AxisSpec | null = isColumnId(id)\n ? await store.pFrameProvider.getColumnSpecById(id)\n : ((valueSpec?.axesSpec as AxisSpec[])?.find(\n (axisSpec: AxisSpec) => AxisId.fromAxisSpec(axisSpec).toCanonicalString() === idString\n ) ?? null);\n return {\n axis: 'y',\n valueColumn: {\n type: 'column',\n value: idString,\n label: await getColumnOrAxisLabel(store, idString, parentSources),\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, idString, parentSources))?.toCanonicalString() ??\n idString\n },\n type: isDiscreteData(spec) ? 'discrete' : 'continuous',\n };\n })\n );\n\n const xAxisTitle = (\n await Promise.all(\n state.components.x.selectorStates.map(state =>\n getColumnOrAxisLabel(store, state.selectedSource, parentSources)\n )\n )\n ).join(', ');\n const yAxisTitle = (\n await Promise.all(\n state.components.y.selectorStates.map(state =>\n getColumnOrAxisLabel(store, state.selectedSource, parentSources)\n )\n )\n ).join(', ');\n\n const tooltipContent = await Promise.all(\n state.components.tooltipContent.selectorStates.map(async selectorState => {\n const source = selectorState.selectedSource;\n const spec = await getColumnOrAxisSpec(store, source, parentSources);\n return {\n type: 'column',\n label: (await getColumnOrAxisLabel(store, source, parentSources)) || source,\n value: source,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, source, parentSources))?.toCanonicalString() ??\n source,\n format: getFormat(spec)\n };\n })\n );\n\n return {\n type: 'heatmap',\n valueColumn: value,\n valueType: isDiscreteData(valueSpec) ? 'discrete' : 'continuous',\n xColumn: {\n type: 'column',\n value: xKey,\n label: xAxisTitle,\n valueLabels: 'xLabelsKey',\n },\n yColumn: {\n type: 'column',\n value: yKey,\n label: yAxisTitle,\n valueLabels: 'yLabelsKey',\n },\n facetBy,\n xGroupBy,\n yGroupBy,\n annotations: [...annotationsX, ...annotationsY],\n tooltips: {\n show: true,\n content: tooltipContent,\n },\n };\n }\n}\n"],"names":["InitialHeatmapState","isDiscreteData","spec","getMultiSourceColumn","data","selectedSources","selectedIds","str","columnOrAxisIdFromString","n","result","i","value","id","key","isColumnId","HeatmapStateController","ControllerBase","ComponentController","state","allowedAxes","s","AxisId","__publicField","optionsInfo","sourceId","store","valueColumnIdString","_a","valueColumnId","dataByColumns","canonicalize","linkerMap","createLinkerMap","multipliesByMap","createMultipliesByMap","filterSelectedStates","filters","getFiltersFromStates","filterColumns","parentSources","parentAxesList","getAxesSpecsFromSources","inputs","secondarySources","linkerColumns","selectedSource","getLinkerColumnsForSource","input","labelsColumnId","getColumnOrAxisValueLabelsId","item","xAxes","xKey","xVisibleAxes","xAxesLabeled","yAxes","yKey","yVisibleAxes","yAxesLabeled","getColumnOrAxisLabel","facetBy","selectorState","xGroupBy","yGroupBy","valueSpec","annotationsX","idString","axisSpec","_b","annotationsY","xAxisTitle","yAxisTitle","tooltipContent","source","getColumnOrAxisSpec","getFormat"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import I from "../../_virtual/canonicalize.js";
|
|
2
2
|
import { ControllerBase as F } from "../ControllerBase.js";
|
|
3
3
|
import { ComponentController as d } from "../ComponentController.js";
|
|
4
4
|
import { columnOrAxisIdFromString as f, isColumnId as w } from "../../spec.js";
|
|
5
5
|
import { createLinkerMap as L, createMultipliesByMap as D, getFiltersFromStates as T, getAxesSpecsFromSources as E, getLinkerColumnsForSource as A, getColumnOrAxisValueLabelsId as b, getColumnOrAxisLabel as B } from "../../utils.js";
|
|
6
6
|
var N = Object.defineProperty, V = (l, e, t) => e in l ? N(l, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : l[e] = t, M = (l, e, t) => V(l, e + "", t);
|
|
7
|
-
const
|
|
7
|
+
const j = {
|
|
8
8
|
type: "histogram",
|
|
9
9
|
components: {
|
|
10
10
|
value: { type: "simple", selectorStates: [] },
|
|
@@ -15,7 +15,7 @@ const q = {
|
|
|
15
15
|
},
|
|
16
16
|
dividedAxes: {}
|
|
17
17
|
};
|
|
18
|
-
class
|
|
18
|
+
class q extends F {
|
|
19
19
|
constructor() {
|
|
20
20
|
super(
|
|
21
21
|
{
|
|
@@ -88,17 +88,17 @@ class G extends F {
|
|
|
88
88
|
throw Error("Value column is not valid");
|
|
89
89
|
const c = {
|
|
90
90
|
type: "columns",
|
|
91
|
-
id:
|
|
91
|
+
id: I(t.components) ?? "",
|
|
92
92
|
values: {}
|
|
93
93
|
}, u = await L(e), g = await D(e), m = [
|
|
94
94
|
...t.components.filters.selectorStates,
|
|
95
95
|
...t.components.tabBy.selectorStates
|
|
96
|
-
], S = T(m), a = m.map((n) => f(n.selectedSource)).filter(w), p = [r], h = await E(e, p),
|
|
96
|
+
], S = T(m), a = m.map((n) => f(n.selectedSource)).filter(w), p = [r], h = await E(e, p), O = [t.components.facetBy, t.components.grouping], v = [], y = [];
|
|
97
97
|
for (const { selectedSource: n } of m)
|
|
98
98
|
y.push(
|
|
99
99
|
...await A(e, u, g, h, n)
|
|
100
100
|
);
|
|
101
|
-
for (const n of
|
|
101
|
+
for (const n of O)
|
|
102
102
|
for (const { selectedSource: s } of n.selectorStates) {
|
|
103
103
|
v.push(f(s)), y.push(
|
|
104
104
|
...await A(e, u, g, h, s)
|
|
@@ -157,7 +157,7 @@ class G extends F {
|
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
export {
|
|
160
|
-
|
|
161
|
-
|
|
160
|
+
q as HistogramStateController,
|
|
161
|
+
j as InitialHistogramState
|
|
162
162
|
};
|
|
163
163
|
//# sourceMappingURL=histogram.js.map
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import k from "../../_virtual/canonicalize.js";
|
|
2
2
|
import z from "../../_virtual/lodash.js";
|
|
3
|
-
import { FORMAT as P } from "../../constants.js";
|
|
4
3
|
import { ControllerBase as E } from "../ControllerBase.js";
|
|
5
|
-
import { ComponentController as
|
|
6
|
-
import { AxisId as
|
|
7
|
-
import { createLinkerMap as
|
|
8
|
-
var
|
|
9
|
-
const
|
|
4
|
+
import { ComponentController as u } from "../ComponentController.js";
|
|
5
|
+
import { AxisId as P, columnOrAxisIdFromString as f, isColumnId as C } from "../../spec.js";
|
|
6
|
+
import { createLinkerMap as Y, createMultipliesByMap as q, getFiltersFromStates as M, getAxesSpecsFromSources as X, getLinkerColumnsForSource as F, getColumnOrAxisValueLabelsId as b, createHighlightColumn as U, getColumnOrAxisLabel as A, getColumnOrAxisSpec as T, getFormat as N } from "../../utils.js";
|
|
7
|
+
var J = Object.defineProperty, Z = (h, t, e) => t in h ? J(h, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : h[t] = e, j = (h, t, e) => Z(h, t + "", e);
|
|
8
|
+
const W = {
|
|
10
9
|
type: "scatterplot-umap",
|
|
11
10
|
components: {
|
|
12
11
|
x: { type: "simple", selectorStates: [] },
|
|
@@ -22,12 +21,12 @@ const _ = {
|
|
|
22
21
|
},
|
|
23
22
|
dividedAxes: {}
|
|
24
23
|
};
|
|
25
|
-
class
|
|
24
|
+
class _ extends E {
|
|
26
25
|
//allowHangingAxes = true;
|
|
27
26
|
constructor() {
|
|
28
27
|
super(
|
|
29
28
|
{
|
|
30
|
-
x: new
|
|
29
|
+
x: new u({
|
|
31
30
|
componentName: "x",
|
|
32
31
|
allowedTypes: ["Int", "Long", "Double", "Float"],
|
|
33
32
|
parentComponents: ["y"],
|
|
@@ -39,7 +38,7 @@ class ee extends E {
|
|
|
39
38
|
columnsAllowed: !0
|
|
40
39
|
}
|
|
41
40
|
}),
|
|
42
|
-
y: new
|
|
41
|
+
y: new u({
|
|
43
42
|
componentName: "y",
|
|
44
43
|
allowedTypes: ["Int", "Long", "Double", "Float"],
|
|
45
44
|
parentComponents: ["x"],
|
|
@@ -51,7 +50,7 @@ class ee extends E {
|
|
|
51
50
|
columnsAllowed: !0
|
|
52
51
|
}
|
|
53
52
|
}),
|
|
54
|
-
facetBy: new
|
|
53
|
+
facetBy: new u({
|
|
55
54
|
componentName: "facetBy",
|
|
56
55
|
allowedTypes: ["String", "Int", "Long"],
|
|
57
56
|
strictlyDependsOnParents: !0,
|
|
@@ -63,7 +62,7 @@ class ee extends E {
|
|
|
63
62
|
multipleSelectors: !0
|
|
64
63
|
}
|
|
65
64
|
}),
|
|
66
|
-
grouping: new
|
|
65
|
+
grouping: new u({
|
|
67
66
|
componentName: "grouping",
|
|
68
67
|
allowedTypes: ["String", "Int", "Long", "Float", "Double"],
|
|
69
68
|
strictlyDependsOnParents: !0,
|
|
@@ -74,7 +73,7 @@ class ee extends E {
|
|
|
74
73
|
multipleSelectors: !0
|
|
75
74
|
}
|
|
76
75
|
}),
|
|
77
|
-
tooltipContent: new
|
|
76
|
+
tooltipContent: new u({
|
|
78
77
|
componentName: "tooltipContent",
|
|
79
78
|
allowedTypes: ["String", "Int", "Long", "Float", "Double"],
|
|
80
79
|
strictlyDependsOnParents: !0,
|
|
@@ -86,7 +85,7 @@ class ee extends E {
|
|
|
86
85
|
multipleSelectors: !0
|
|
87
86
|
}
|
|
88
87
|
}),
|
|
89
|
-
label: new
|
|
88
|
+
label: new u({
|
|
90
89
|
componentName: "label",
|
|
91
90
|
allowedTypes: ["String", "Int", "Long"],
|
|
92
91
|
strictlyDependsOnParents: !0,
|
|
@@ -98,7 +97,7 @@ class ee extends E {
|
|
|
98
97
|
multipleSelectors: !1
|
|
99
98
|
}
|
|
100
99
|
}),
|
|
101
|
-
size: new
|
|
100
|
+
size: new u({
|
|
102
101
|
componentName: "size",
|
|
103
102
|
allowedTypes: ["Int", "Long", "Double", "Float"],
|
|
104
103
|
strictlyDependsOnParents: !0,
|
|
@@ -110,7 +109,7 @@ class ee extends E {
|
|
|
110
109
|
})
|
|
111
110
|
},
|
|
112
111
|
{
|
|
113
|
-
filters: new
|
|
112
|
+
filters: new u({
|
|
114
113
|
componentName: "filters",
|
|
115
114
|
allowedTypes: ["String", "Int", "Long", "Double", "Float"],
|
|
116
115
|
strictlyDependsOnParents: !0,
|
|
@@ -122,7 +121,7 @@ class ee extends E {
|
|
|
122
121
|
multipleSelectors: !0
|
|
123
122
|
}
|
|
124
123
|
}),
|
|
125
|
-
tabBy: new
|
|
124
|
+
tabBy: new u({
|
|
126
125
|
componentName: "tabBy",
|
|
127
126
|
allowedTypes: ["String", "Int"],
|
|
128
127
|
strictlyDependsOnParents: !0,
|
|
@@ -133,7 +132,7 @@ class ee extends E {
|
|
|
133
132
|
dimensionConsumer: !0
|
|
134
133
|
}
|
|
135
134
|
}),
|
|
136
|
-
highlight: new
|
|
135
|
+
highlight: new u({
|
|
137
136
|
componentName: "highlight",
|
|
138
137
|
allowedTypes: ["String", "Int", "Long", "Double", "Float"],
|
|
139
138
|
strictlyDependsOnParents: !0,
|
|
@@ -146,45 +145,45 @@ class ee extends E {
|
|
|
146
145
|
}
|
|
147
146
|
})
|
|
148
147
|
}
|
|
149
|
-
),
|
|
148
|
+
), j(this, "dataInputs", ["x", "y"]);
|
|
150
149
|
}
|
|
151
150
|
getMustBeConsumedAxes(t, e) {
|
|
152
151
|
if (!t.components.x.selectorStates.length || !t.components.y.selectorStates.length)
|
|
153
152
|
return /* @__PURE__ */ new Set();
|
|
154
|
-
const y = t.components.x.selectorStates[0].selectedSource, S = t.components.y.selectorStates[0].selectedSource,
|
|
155
|
-
if (!
|
|
153
|
+
const y = t.components.x.selectorStates[0].selectedSource, S = t.components.y.selectorStates[0].selectedSource, m = e.get(y), r = e.get(S);
|
|
154
|
+
if (!m || !r || m.kind !== "column" || r.kind !== "column")
|
|
156
155
|
return /* @__PURE__ */ new Set();
|
|
157
|
-
const
|
|
158
|
-
return
|
|
156
|
+
const a = m.spec.axesSpec.map((i) => P.fromAxisSpec(i).toCanonicalString()), c = r.spec.axesSpec.map((i) => P.fromAxisSpec(i).toCanonicalString()), p = a.filter((i) => !c.some((d) => d === i)), n = c.filter((i) => !a.some((d) => d === i));
|
|
157
|
+
return p.length && n.length ? /* @__PURE__ */ new Set([...p, ...n]) : /* @__PURE__ */ new Set();
|
|
159
158
|
}
|
|
160
159
|
async createDataByColumns(t, e) {
|
|
161
160
|
var y, S;
|
|
162
|
-
const
|
|
163
|
-
if (!
|
|
161
|
+
const m = (y = e.components.x.selectorStates[0]) == null ? void 0 : y.selectedSource, r = (S = e.components.y.selectorStates[0]) == null ? void 0 : S.selectedSource;
|
|
162
|
+
if (!m || !r)
|
|
164
163
|
throw Error("X or Y column is not valid");
|
|
165
|
-
const
|
|
166
|
-
if (!
|
|
164
|
+
const a = f(m), c = f(r);
|
|
165
|
+
if (!a || !c)
|
|
167
166
|
throw Error("X or Y column is not valid");
|
|
168
|
-
const
|
|
167
|
+
const p = {
|
|
169
168
|
type: "columns",
|
|
170
169
|
id: k(e.components) ?? "",
|
|
171
170
|
values: {}
|
|
172
|
-
},
|
|
171
|
+
}, n = await Y(t), i = await q(t), d = [
|
|
173
172
|
...e.components.filters.selectorStates,
|
|
174
173
|
...e.components.tabBy.selectorStates
|
|
175
|
-
], L =
|
|
174
|
+
], L = M(d), O = d.map((s) => f(s.selectedSource)).filter(C), v = [a, c].filter(C).map((s) => s.toCanonicalString());
|
|
176
175
|
if (v.length === 0)
|
|
177
176
|
throw Error("One of X and Y should be a column");
|
|
178
|
-
const D = await
|
|
177
|
+
const D = await X(t, v), B = [a, c, ...O], w = [], x = [];
|
|
179
178
|
for (const { selectedSource: s } of d)
|
|
180
|
-
|
|
179
|
+
x.push(...await F(
|
|
181
180
|
t,
|
|
182
|
-
m,
|
|
183
181
|
n,
|
|
182
|
+
i,
|
|
184
183
|
D,
|
|
185
184
|
s
|
|
186
185
|
));
|
|
187
|
-
const
|
|
186
|
+
const o = [
|
|
188
187
|
e.components.grouping,
|
|
189
188
|
e.components.facetBy,
|
|
190
189
|
e.components.tooltipContent,
|
|
@@ -192,117 +191,117 @@ class ee extends E {
|
|
|
192
191
|
e.components.highlight,
|
|
193
192
|
e.components.size
|
|
194
193
|
];
|
|
195
|
-
for (const s of
|
|
196
|
-
for (const { selectedSource:
|
|
197
|
-
|
|
194
|
+
for (const s of o)
|
|
195
|
+
for (const { selectedSource: g } of s.selectorStates) {
|
|
196
|
+
w.push(f(g)), x.push(...await F(
|
|
198
197
|
t,
|
|
199
|
-
m,
|
|
200
198
|
n,
|
|
199
|
+
i,
|
|
201
200
|
D,
|
|
202
|
-
|
|
201
|
+
g
|
|
203
202
|
));
|
|
204
|
-
const
|
|
205
|
-
|
|
203
|
+
const I = await b(t, g, v);
|
|
204
|
+
I && w.push(I);
|
|
206
205
|
}
|
|
207
|
-
const
|
|
208
|
-
[
|
|
209
|
-
|
|
206
|
+
const l = await t.pFrameProvider.getTableOuterJoin(
|
|
207
|
+
[a, c, ...x, ...O],
|
|
208
|
+
w,
|
|
210
209
|
L,
|
|
211
210
|
!1
|
|
212
211
|
);
|
|
213
|
-
return [...B, ...
|
|
214
|
-
const
|
|
215
|
-
|
|
216
|
-
}), e.components.highlight.selectorStates.length && (
|
|
217
|
-
byColumns:
|
|
218
|
-
axesData:
|
|
212
|
+
return [...B, ...w].forEach((s) => {
|
|
213
|
+
const g = s.toCanonicalString();
|
|
214
|
+
p.values[g] = C(s) ? l.columnsData[g] : l.axesData[g];
|
|
215
|
+
}), e.components.highlight.selectorStates.length && (p.values.highlight = U(e.components.highlight.selectorStates, l)), {
|
|
216
|
+
byColumns: p,
|
|
217
|
+
axesData: l.axesData
|
|
219
218
|
};
|
|
220
219
|
}
|
|
221
220
|
async createChartSettings(t, e) {
|
|
222
|
-
var y, S,
|
|
223
|
-
const
|
|
224
|
-
if (!
|
|
221
|
+
var y, S, m;
|
|
222
|
+
const r = (y = e.components.x.selectorStates[0]) == null ? void 0 : y.selectedSource, a = (S = e.components.y.selectorStates[0]) == null ? void 0 : S.selectedSource, c = r ? f(r) : null, p = a ? f(a) : null;
|
|
223
|
+
if (!r || !a || !c || !p || !C(c) && !C(p))
|
|
225
224
|
throw Error("Empty or invalid required data");
|
|
226
|
-
const n = [
|
|
225
|
+
const n = [c, p].filter(C).map((o) => o.toCanonicalString()), i = {
|
|
227
226
|
type: "column",
|
|
228
|
-
value:
|
|
229
|
-
label: await A(t,
|
|
230
|
-
},
|
|
227
|
+
value: r,
|
|
228
|
+
label: await A(t, r, n)
|
|
229
|
+
}, d = {
|
|
231
230
|
type: "column",
|
|
232
231
|
value: a,
|
|
233
232
|
label: await A(t, a, n)
|
|
234
|
-
},
|
|
233
|
+
}, L = {
|
|
235
234
|
type: "column",
|
|
236
235
|
value: "key"
|
|
237
|
-
},
|
|
236
|
+
}, O = await Promise.all(
|
|
238
237
|
e.components.facetBy.selectorStates.map(async (o) => {
|
|
239
|
-
var
|
|
238
|
+
var l;
|
|
240
239
|
return {
|
|
241
240
|
type: "column",
|
|
242
|
-
value: ((
|
|
241
|
+
value: ((l = await b(t, o.selectedSource, n)) == null ? void 0 : l.toCanonicalString()) ?? o.selectedSource
|
|
243
242
|
};
|
|
244
243
|
})
|
|
245
|
-
),
|
|
244
|
+
), v = z.uniq([
|
|
246
245
|
...e.components.grouping.selectorStates.map((o) => o.selectedSource),
|
|
247
246
|
...e.components.size.selectorStates.map((o) => o.selectedSource)
|
|
248
|
-
]),
|
|
249
|
-
|
|
250
|
-
var
|
|
247
|
+
]), D = await Promise.all(
|
|
248
|
+
v.map(async (o) => {
|
|
249
|
+
var l;
|
|
251
250
|
return {
|
|
252
251
|
columnName: {
|
|
253
252
|
type: "column",
|
|
254
253
|
label: await A(t, o, n) || o,
|
|
255
254
|
value: o,
|
|
256
|
-
valueLabels: ((
|
|
255
|
+
valueLabels: ((l = await b(t, o, n)) == null ? void 0 : l.toCanonicalString()) ?? o
|
|
257
256
|
}
|
|
258
257
|
};
|
|
259
258
|
})
|
|
260
|
-
),
|
|
259
|
+
), B = await Promise.all(
|
|
261
260
|
e.components.tooltipContent.selectorStates.map(async (o) => {
|
|
262
|
-
var
|
|
263
|
-
const
|
|
261
|
+
var l;
|
|
262
|
+
const s = o.selectedSource, g = await T(t, s, n);
|
|
264
263
|
return {
|
|
265
264
|
type: "column",
|
|
266
|
-
label: await A(t,
|
|
267
|
-
value:
|
|
268
|
-
valueLabels: ((
|
|
269
|
-
format: (
|
|
265
|
+
label: await A(t, s, n) || s,
|
|
266
|
+
value: s,
|
|
267
|
+
valueLabels: ((l = await b(t, s, n)) == null ? void 0 : l.toCanonicalString()) ?? s,
|
|
268
|
+
format: N(g)
|
|
270
269
|
};
|
|
271
270
|
})
|
|
272
271
|
);
|
|
273
|
-
let
|
|
272
|
+
let w;
|
|
274
273
|
if (e.components.label.selectorStates.length) {
|
|
275
|
-
const o = e.components.label.selectorStates[0].selectedSource,
|
|
276
|
-
|
|
274
|
+
const o = e.components.label.selectorStates[0].selectedSource, l = await T(t, o, n);
|
|
275
|
+
w = {
|
|
277
276
|
type: "column",
|
|
278
277
|
value: o,
|
|
279
278
|
label: await A(t, o, n),
|
|
280
|
-
valueLabels: ((
|
|
281
|
-
format: (
|
|
279
|
+
valueLabels: ((m = await b(t, o, n)) == null ? void 0 : m.toCanonicalString()) ?? o,
|
|
280
|
+
format: N(l)
|
|
282
281
|
};
|
|
283
282
|
}
|
|
284
|
-
let
|
|
285
|
-
return e.components.highlight.selectorStates.length && (
|
|
283
|
+
let x;
|
|
284
|
+
return e.components.highlight.selectorStates.length && (x = {
|
|
286
285
|
type: "column",
|
|
287
286
|
value: "highlight"
|
|
288
287
|
}), {
|
|
289
288
|
type: "scatterplot-umap",
|
|
290
|
-
x:
|
|
291
|
-
y:
|
|
292
|
-
keyColumn:
|
|
293
|
-
facetBy:
|
|
294
|
-
grouping:
|
|
295
|
-
label:
|
|
296
|
-
highlight:
|
|
289
|
+
x: i,
|
|
290
|
+
y: d,
|
|
291
|
+
keyColumn: L,
|
|
292
|
+
facetBy: O,
|
|
293
|
+
grouping: D,
|
|
294
|
+
label: w,
|
|
295
|
+
highlight: x,
|
|
297
296
|
tooltips: {
|
|
298
297
|
show: !0,
|
|
299
|
-
content:
|
|
298
|
+
content: B
|
|
300
299
|
}
|
|
301
300
|
};
|
|
302
301
|
}
|
|
303
302
|
}
|
|
304
303
|
export {
|
|
305
|
-
|
|
306
|
-
|
|
304
|
+
W as InitialScatterplotUmapState,
|
|
305
|
+
_ as ScatterplotUmapStateController
|
|
307
306
|
};
|
|
308
307
|
//# sourceMappingURL=scatterplot-umap.js.map
|