@milaboratories/graph-maker 1.1.150 → 1.1.152
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/components/AesSettings/AesDataMappingDiscrete.vue.d.ts.map +1 -1
- package/dist/GraphMaker/components/AesSettings/AesDataMappingDiscrete.vue.js +2 -1
- package/dist/GraphMaker/components/AesSettings/AesDataMappingDiscrete.vue.js.map +1 -1
- package/dist/GraphMaker/components/Chart.vue.js +3 -3
- package/dist/GraphMaker/components/Chart.vue.js.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.d.ts +3 -12
- package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.d.ts.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.js +42 -85
- package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.js.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.d.ts +1 -9
- package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.d.ts.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.js +44 -89
- package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.js.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.d.ts +1 -3
- package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.d.ts.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.js +68 -86
- package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.js.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.d.ts +7 -11
- package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.d.ts.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.js +48 -91
- package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.js.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/types.d.ts +1 -21
- package/dist/GraphMaker/components/DragAndDrop/types.d.ts.map +1 -1
- package/dist/GraphMaker/components/PlColorSliderThumb.vue.js +18 -18
- package/dist/GraphMaker/components/PlColorSliderThumb.vue.js.map +1 -1
- package/dist/GraphMaker/constantsCommon.d.ts +0 -1
- package/dist/GraphMaker/constantsCommon.d.ts.map +1 -1
- package/dist/GraphMaker/constantsCommon.js +95 -95
- package/dist/GraphMaker/constantsCommon.js.map +1 -1
- package/dist/GraphMaker/forms/DataMappingForm/DendroForm.vue.d.ts.map +1 -1
- package/dist/GraphMaker/forms/DataMappingForm/DendroForm.vue.js +128 -166
- package/dist/GraphMaker/forms/DataMappingForm/DendroForm.vue.js.map +1 -1
- package/dist/GraphMaker/forms/DataMappingForm/useBaskets.d.ts.map +1 -1
- package/dist/GraphMaker/forms/DataMappingForm/useBaskets.js +93 -131
- package/dist/GraphMaker/forms/DataMappingForm/useBaskets.js.map +1 -1
- package/dist/GraphMaker/forms/DataMappingForm/utils.d.ts +1 -1
- package/dist/GraphMaker/forms/DataMappingForm/utils.d.ts.map +1 -1
- package/dist/GraphMaker/forms/DataMappingForm/utils.js +79 -155
- package/dist/GraphMaker/forms/DataMappingForm/utils.js.map +1 -1
- package/dist/GraphMaker/forms/index.js +2 -2
- package/dist/GraphMaker/forms/index.js.map +1 -1
- package/dist/GraphMaker/icons/StackedAreaIcon.vue.d.ts +3 -0
- package/dist/GraphMaker/icons/StackedAreaIcon.vue.d.ts.map +1 -0
- package/dist/GraphMaker/icons/StackedAreaIcon.vue.js +19 -0
- package/dist/GraphMaker/icons/StackedAreaIcon.vue.js.map +1 -0
- package/dist/GraphMaker/index.vue.js +1 -1
- package/dist/GraphMaker/store.d.ts.map +1 -1
- package/dist/GraphMaker/store.js +43 -45
- package/dist/GraphMaker/store.js.map +1 -1
- package/dist/GraphMaker/types.d.ts +1 -1
- package/dist/GraphMaker/types.d.ts.map +1 -1
- package/dist/GraphMaker/utils/addFixedOptionsToState.js +2 -2
- package/dist/GraphMaker/utils/addFixedOptionsToState.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.js +25 -25
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
- package/dist/GraphMaker/utils/loadDefaultSources.d.ts +2 -3
- package/dist/GraphMaker/utils/loadDefaultSources.d.ts.map +1 -1
- package/dist/GraphMaker/utils/loadDefaultSources.js +47 -51
- package/dist/GraphMaker/utils/loadDefaultSources.js.map +1 -1
- package/dist/GraphMaker/utils/loadUniqueValuesToSave.d.ts.map +1 -1
- package/dist/GraphMaker/utils/loadUniqueValuesToSave.js +39 -41
- package/dist/GraphMaker/utils/loadUniqueValuesToSave.js.map +1 -1
- package/dist/lib.js +1 -1
- package/dist/node_modules/@milaboratories/helpers/dist/objects.js +33 -0
- package/dist/node_modules/@milaboratories/helpers/dist/objects.js.map +1 -0
- package/dist/node_modules/@milaboratories/helpers/dist/utils.js +12 -0
- package/dist/node_modules/@milaboratories/helpers/dist/utils.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js +6 -5
- package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js +146 -149
- 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 +168 -221
- 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 +95 -102
- 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 +145 -156
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/dendro.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/discrete.js +68 -75
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/discrete.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js +154 -159
- 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 +48 -55
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/histogram.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js +114 -122
- 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 +111 -119
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/index.js +4 -4
- package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js +70 -69
- package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/spec.js +2 -2
- package/dist/node_modules/@milaboratories/pf-plots/dist/spec.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js +184 -183
- package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js.map +1 -1
- package/dist/node_modules/@vueuse/shared/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/node_modules/@milaboratories/helpers/dist/index.js +0 -372
- package/dist/node_modules/@milaboratories/helpers/dist/index.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 {PValue} from '../../store';\nimport {ControllerBase, PlotDataAndSettings} from '../ControllerBase';\nimport {ComponentController} from '../ComponentController';\nimport {columnOrAxisIdFromString, isColumnId} from '../../spec';\nimport type {DataStore} from '../../store';\nimport {\n checkSourceBySpecForFilters, createLinkerMap, getAxesSpecsFromSources,\n getColumnOrAxisLabel, getColumnOrAxisSpec,\n getColumnOrAxisValueLabelsId,\n getFiltersFromStates, getLinkerColumnsForSource,\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: true,\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n checkSourceBySpec: checkSourceBySpecForFilters,\n }),\n tabBy: new ComponentController<HeatmapUIState, 'tabBy'>({\n componentName: 'tabBy',\n allowedTypes: ['String', 'Int'],\n strictlyDependsOnParents: true,\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n dimensionConsumer: true,\n },\n }),\n }\n );\n }\n\n async getMustBeConsumedAxes(store: DataStore, state: HeatmapUIState): Promise<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 spec = await store.pFrameProvider.getColumnSpecById(columnOrAxisIdFromString(sourceId));\n if (!spec) {\n return new Set<string>();\n }\n return new Set(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\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 primarySourcesFixedAxes:{idx: number, value: PValue}[][] = [[]];\n const secondarySourcesFixedAxes:{idx: number, value: PValue}[][] = [];\n const linkerColumns:ColumnId[] = [];\n\n for (const {selectedSource, fixedAxes} of filterSelectedStates) {\n linkerColumns.push(...await getLinkerColumnsForSource(\n store,\n linkerMap,\n parentAxesList,\n selectedSource,\n fixedAxes\n ));\n primarySourcesFixedAxes.push(\n (fixedAxes ?? []).map(({axisIdx, axisValue}) => ({idx: axisIdx, value: axisValue as PValue}))\n );\n }\n\n for (const input of inputs) {\n for (const {selectedSource, fixedAxes} of input.selectorStates) {\n secondarySources.push(columnOrAxisIdFromString(selectedSource)!);\n secondarySourcesFixedAxes.push(\n (fixedAxes ?? []).map(({axisIdx, axisValue}) => ({idx: axisIdx, value: axisValue as PValue}))\n );\n linkerColumns.push(...await getLinkerColumnsForSource(\n store,\n linkerMap,\n parentAxesList,\n selectedSource,\n fixedAxes\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 primarySourcesFixedAxes,\n secondarySourcesFixedAxes\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 },\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 },\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","checkSourceBySpecForFilters","__publicField","store","sourceId","valueColumnIdString","_a","valueColumnId","dataByColumns","canonicalize","linkerMap","createLinkerMap","filterSelectedStates","filters","getFiltersFromStates","filterColumns","parentSources","parentAxesList","getAxesSpecsFromSources","inputs","secondarySources","primarySourcesFixedAxes","secondarySourcesFixedAxes","linkerColumns","selectedSource","fixedAxes","getLinkerColumnsForSource","axisIdx","axisValue","input","labelsColumnId","getColumnOrAxisValueLabelsId","item","xAxes","xKey","xVisibleAxes","xAxesLabeled","yAxes","yKey","yVisibleAxes","yAxesLabeled","getColumnOrAxisLabel","facetBy","selectorState","xGroupBy","yGroupBy","valueSpec","annotationsX","idString","axisSpec","annotationsY","xAxisTitle","yAxisTitle","tooltipContent","source","getColumnOrAxisSpec","_b","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 {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: true,\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: true,\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,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ControllerBase as
|
|
1
|
+
import O from "../../_virtual/canonicalize.js";
|
|
2
|
+
import { ControllerBase as F } from "../ControllerBase.js";
|
|
3
3
|
import { ComponentController as d } from "../ComponentController.js";
|
|
4
|
-
import { columnOrAxisIdFromString as
|
|
5
|
-
import {
|
|
6
|
-
var
|
|
7
|
-
const
|
|
4
|
+
import { columnOrAxisIdFromString as f, isColumnId as w } from "../../spec.js";
|
|
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
|
+
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 q = {
|
|
8
8
|
type: "histogram",
|
|
9
9
|
components: {
|
|
10
10
|
value: { type: "simple", selectorStates: [] },
|
|
@@ -15,7 +15,7 @@ const W = {
|
|
|
15
15
|
},
|
|
16
16
|
dividedAxes: {}
|
|
17
17
|
};
|
|
18
|
-
class G extends
|
|
18
|
+
class G extends F {
|
|
19
19
|
constructor() {
|
|
20
20
|
super(
|
|
21
21
|
{
|
|
@@ -62,8 +62,7 @@ class G extends V {
|
|
|
62
62
|
axesAllowed: !0,
|
|
63
63
|
dimensionConsumer: !0,
|
|
64
64
|
multipleSelectors: !0
|
|
65
|
-
}
|
|
66
|
-
checkSourceBySpec: N
|
|
65
|
+
}
|
|
67
66
|
}),
|
|
68
67
|
tabBy: new d({
|
|
69
68
|
componentName: "tabBy",
|
|
@@ -77,94 +76,88 @@ class G extends V {
|
|
|
77
76
|
}
|
|
78
77
|
})
|
|
79
78
|
}
|
|
80
|
-
),
|
|
79
|
+
), M(this, "dataInputs", ["value"]);
|
|
81
80
|
}
|
|
82
81
|
async createDataByColumns(e, t) {
|
|
83
82
|
var i;
|
|
84
83
|
const r = (i = t.components.value.selectorStates[0]) == null ? void 0 : i.selectedSource;
|
|
85
84
|
if (!r)
|
|
86
85
|
throw Error("Value column is not valid");
|
|
87
|
-
const o =
|
|
88
|
-
if (!
|
|
86
|
+
const o = f(r);
|
|
87
|
+
if (!w(o))
|
|
89
88
|
throw Error("Value column is not valid");
|
|
90
89
|
const c = {
|
|
91
90
|
type: "columns",
|
|
92
|
-
id:
|
|
91
|
+
id: O(t.components) ?? "",
|
|
93
92
|
values: {}
|
|
94
|
-
}, u = await
|
|
93
|
+
}, u = await L(e), g = await D(e), m = [
|
|
95
94
|
...t.components.filters.selectorStates,
|
|
96
95
|
...t.components.tabBy.selectorStates
|
|
97
|
-
],
|
|
98
|
-
for (const { selectedSource:
|
|
99
|
-
|
|
100
|
-
...await
|
|
101
|
-
), A.push(
|
|
102
|
-
(a ?? []).map(({ axisIdx: v, axisValue: f }) => ({ idx: v, value: f }))
|
|
96
|
+
], S = T(m), a = m.map((n) => f(n.selectedSource)).filter(w), p = [r], h = await E(e, p), I = [t.components.facetBy, t.components.grouping], v = [], y = [];
|
|
97
|
+
for (const { selectedSource: n } of m)
|
|
98
|
+
y.push(
|
|
99
|
+
...await A(e, u, g, h, n)
|
|
103
100
|
);
|
|
104
|
-
for (const
|
|
105
|
-
for (const { selectedSource:
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
), C.push(
|
|
109
|
-
...await I(e, u, p, a, v)
|
|
101
|
+
for (const n of I)
|
|
102
|
+
for (const { selectedSource: s } of n.selectorStates) {
|
|
103
|
+
v.push(f(s)), y.push(
|
|
104
|
+
...await A(e, u, g, h, s)
|
|
110
105
|
);
|
|
111
|
-
const
|
|
112
|
-
|
|
106
|
+
const x = await b(e, s, p);
|
|
107
|
+
x && v.push(x);
|
|
113
108
|
}
|
|
114
|
-
const
|
|
115
|
-
[o, ...
|
|
109
|
+
const C = await e.pFrameProvider.getTableOuterJoin(
|
|
110
|
+
[o, ...y, ...a],
|
|
111
|
+
v,
|
|
116
112
|
S,
|
|
117
|
-
|
|
118
|
-
!0,
|
|
119
|
-
A,
|
|
120
|
-
B
|
|
113
|
+
!0
|
|
121
114
|
);
|
|
122
|
-
return
|
|
123
|
-
const
|
|
124
|
-
c.values[
|
|
125
|
-
}), c.values[o.toCanonicalString()] =
|
|
115
|
+
return v.forEach((n) => {
|
|
116
|
+
const s = n.toCanonicalString();
|
|
117
|
+
c.values[s] = w(n) ? C.columnsData[s] : C.axesData[s];
|
|
118
|
+
}), c.values[o.toCanonicalString()] = C.columnsData[o.toCanonicalString()], { byColumns: c };
|
|
126
119
|
}
|
|
127
120
|
async createChartSettings(e, t) {
|
|
128
121
|
var i, r;
|
|
129
122
|
const o = (i = t.components.value.selectorStates[0]) == null ? void 0 : i.selectedSource;
|
|
130
123
|
if (!o)
|
|
131
124
|
throw Error("Value column is not valid");
|
|
132
|
-
const c =
|
|
133
|
-
if (!
|
|
125
|
+
const c = f(o);
|
|
126
|
+
if (!w(c))
|
|
134
127
|
throw Error("Value column is not valid");
|
|
135
|
-
const u = [o],
|
|
128
|
+
const u = [o], g = {
|
|
136
129
|
type: "column",
|
|
137
130
|
value: o,
|
|
138
|
-
label: await
|
|
139
|
-
},
|
|
140
|
-
t.components.facetBy.selectorStates.map(async (
|
|
131
|
+
label: await B(e, o, [])
|
|
132
|
+
}, m = await Promise.all(
|
|
133
|
+
t.components.facetBy.selectorStates.map(async (a) => {
|
|
141
134
|
var p;
|
|
142
135
|
return {
|
|
143
136
|
type: "column",
|
|
144
|
-
value: ((p = await b(e,
|
|
137
|
+
value: ((p = await b(e, a.selectedSource, u)) == null ? void 0 : p.toCanonicalString()) ?? a.selectedSource
|
|
145
138
|
};
|
|
146
139
|
})
|
|
147
140
|
);
|
|
148
|
-
let
|
|
141
|
+
let S;
|
|
149
142
|
if (t.components.grouping.selectorStates.length) {
|
|
150
|
-
const { selectedSource:
|
|
151
|
-
|
|
143
|
+
const { selectedSource: a } = t.components.grouping.selectorStates[0];
|
|
144
|
+
S = {
|
|
152
145
|
type: "column",
|
|
153
|
-
value:
|
|
154
|
-
label: await
|
|
155
|
-
valueLabels: (r = await b(e,
|
|
146
|
+
value: a,
|
|
147
|
+
label: await B(e, a, u),
|
|
148
|
+
valueLabels: (r = await b(e, a, u)) == null ? void 0 : r.toCanonicalString()
|
|
156
149
|
};
|
|
157
150
|
}
|
|
158
151
|
return {
|
|
159
152
|
type: "histogram",
|
|
160
|
-
valueColumn:
|
|
161
|
-
facetBy:
|
|
162
|
-
grouping:
|
|
153
|
+
valueColumn: g,
|
|
154
|
+
facetBy: m,
|
|
155
|
+
grouping: S
|
|
163
156
|
};
|
|
164
157
|
}
|
|
165
158
|
}
|
|
166
159
|
export {
|
|
167
160
|
G as HistogramStateController,
|
|
168
|
-
|
|
161
|
+
q as InitialHistogramState
|
|
169
162
|
};
|
|
170
163
|
//# sourceMappingURL=histogram.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"histogram.js","sources":["../../../../../../../node_modules/@milaboratories/pf-plots/src/controllers/controllersByChartType/histogram.ts"],"sourcesContent":["import canonicalize from 'canonicalize';\nimport type {ComponentStateFilter, ComponentStateSimple, DataByColumns, InputStateParent} from '../../common';\nimport {PValue} from '../../store';\nimport {ControllerBase, PlotDataAndSettings} from '../ControllerBase';\nimport {ComponentController} from '../ComponentController';\nimport {columnOrAxisIdFromString, isColumnId} from '../../spec';\nimport type {DataStore} from '../../store';\nimport {\n checkSourceBySpecForFilters,\n createLinkerMap,\n getAxesSpecsFromSources,\n getColumnOrAxisLabel,\n getColumnOrAxisValueLabelsId,\n getFiltersFromStates,\n getLinkerColumnsForSource,\n} from '../../utils';\nimport {AxisId, ColumnId} from '../../spec';\n\nexport interface HistogramUIState extends InputStateParent<'histogram'> {\n type: 'histogram';\n components: {\n value: ComponentStateSimple;\n grouping: ComponentStateSimple;\n filters: ComponentStateFilter;\n tabBy: ComponentStateFilter;\n facetBy: ComponentStateSimple;\n };\n}\n\nexport const InitialHistogramState: HistogramUIState = {\n type: 'histogram',\n components: {\n value: {type: 'simple', selectorStates: []},\n grouping: {type: 'simple', selectorStates: []},\n filters: {type: 'filter', selectorStates: []},\n tabBy: {type: 'filter', selectorStates: []},\n facetBy: {type: 'simple', selectorStates: []},\n },\n dividedAxes: {},\n};\n\nexport class HistogramStateController extends ControllerBase<HistogramUIState> {\n dataInputs = ['value'];\n\n constructor() {\n super(\n {\n value: new ComponentController<HistogramUIState, 'value'>({\n componentName: 'value',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n settings: {\n isDataComponent: true,\n columnsAllowed: true,\n axesAllowed: false,\n required: true,\n },\n }),\n grouping: new ComponentController<HistogramUIState, 'grouping'>({\n componentName: 'grouping',\n allowedTypes: ['String', 'Int', 'Long'],\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n axesAllowed: true,\n multipleSelectors: false,\n },\n }),\n facetBy: new ComponentController<HistogramUIState, 'facetBy'>({\n componentName: 'facetBy',\n allowedTypes: ['String', 'Int', 'Long'],\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n }),\n },\n {\n filters: new ComponentController<HistogramUIState, 'filters'>({\n componentName: 'filters',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Float'],\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n checkSourceBySpec: checkSourceBySpecForFilters,\n }),\n tabBy: new ComponentController<HistogramUIState, 'tabBy'>({\n componentName: 'tabBy',\n allowedTypes: ['String', 'Int'],\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n dimensionConsumer: true,\n },\n }),\n }\n );\n }\n\n async createDataByColumns(store: DataStore, state: HistogramUIState): 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\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\n .map(s => columnOrAxisIdFromString(s.selectedSource))\n .filter(isColumnId);\n\n const parentSources = [valueColumnIdString];\n const parentAxesList = await getAxesSpecsFromSources(store, parentSources);\n\n const inputs = [state.components.facetBy, state.components.grouping];\n const secondarySources: (ColumnId | AxisId)[] = []; // primary sources are the only value column\n const primarySourcesFixedAxes: {idx: number; value: PValue}[][] = [[]];\n const secondarySourcesFixedAxes: {idx: number; value: PValue}[][] = [];\n const linkerColumns: ColumnId[] = [];\n\n for (const {selectedSource, fixedAxes} of filterSelectedStates) {\n linkerColumns.push(\n ...(await getLinkerColumnsForSource(store, linkerMap, parentAxesList, selectedSource, fixedAxes))\n );\n primarySourcesFixedAxes.push(\n (fixedAxes ?? []).map(({axisIdx, axisValue}) => ({idx: axisIdx, value: axisValue as PValue}))\n );\n }\n\n for (const input of inputs) {\n for (const {selectedSource, fixedAxes} of input.selectorStates) {\n secondarySources.push(columnOrAxisIdFromString(selectedSource)!);\n secondarySourcesFixedAxes.push(\n (fixedAxes ?? []).map(({axisIdx, axisValue}) => ({idx: axisIdx, value: axisValue as PValue}))\n );\n linkerColumns.push(\n ...(await getLinkerColumnsForSource(store, linkerMap, parentAxesList, selectedSource, fixedAxes))\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 primarySourcesFixedAxes,\n secondarySourcesFixedAxes\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 return {byColumns: dataByColumns};\n }\n\n async createChartSettings(store: DataStore, state: HistogramUIState): 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 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 let grouping;\n if (state.components.grouping.selectorStates.length) {\n const {selectedSource} = state.components.grouping.selectorStates[0];\n grouping = {\n type: 'column',\n value: selectedSource,\n label: await getColumnOrAxisLabel(store, selectedSource, parentSources),\n valueLabels: (\n await getColumnOrAxisValueLabelsId(store, selectedSource, parentSources)\n )?.toCanonicalString(),\n };\n }\n return {\n type: 'histogram',\n valueColumn: value,\n facetBy,\n grouping,\n };\n }\n}\n"],"names":["InitialHistogramState","HistogramStateController","ControllerBase","ComponentController","checkSourceBySpecForFilters","__publicField","store","state","valueColumnIdString","_a","valueColumnId","columnOrAxisIdFromString","isColumnId","dataByColumns","canonicalize","linkerMap","createLinkerMap","filterSelectedStates","filters","getFiltersFromStates","filterColumns","s","parentSources","parentAxesList","getAxesSpecsFromSources","inputs","secondarySources","primarySourcesFixedAxes","secondarySourcesFixedAxes","linkerColumns","selectedSource","fixedAxes","getLinkerColumnsForSource","axisIdx","axisValue","input","labelsColumnId","getColumnOrAxisValueLabelsId","data","item","key","value","getColumnOrAxisLabel","facetBy","selectorState","grouping","_b"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"histogram.js","sources":["../../../../../../../node_modules/@milaboratories/pf-plots/src/controllers/controllersByChartType/histogram.ts"],"sourcesContent":["import 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,\n createMultipliesByMap,\n getAxesSpecsFromSources,\n getColumnOrAxisLabel,\n getColumnOrAxisValueLabelsId,\n getFiltersFromStates,\n getLinkerColumnsForSource,\n} from '../../utils';\nimport {AxisId, ColumnId} from '../../spec';\n\nexport interface HistogramUIState extends InputStateParent<'histogram'> {\n type: 'histogram';\n components: {\n value: ComponentStateSimple;\n grouping: ComponentStateSimple;\n filters: ComponentStateFilter;\n tabBy: ComponentStateFilter;\n facetBy: ComponentStateSimple;\n };\n}\n\nexport const InitialHistogramState: HistogramUIState = {\n type: 'histogram',\n components: {\n value: {type: 'simple', selectorStates: []},\n grouping: {type: 'simple', selectorStates: []},\n filters: {type: 'filter', selectorStates: []},\n tabBy: {type: 'filter', selectorStates: []},\n facetBy: {type: 'simple', selectorStates: []},\n },\n dividedAxes: {},\n};\n\nexport class HistogramStateController extends ControllerBase<HistogramUIState> {\n dataInputs = ['value'];\n\n constructor() {\n super(\n {\n value: new ComponentController<HistogramUIState, 'value'>({\n componentName: 'value',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n settings: {\n isDataComponent: true,\n columnsAllowed: true,\n axesAllowed: false,\n required: true,\n },\n }),\n grouping: new ComponentController<HistogramUIState, 'grouping'>({\n componentName: 'grouping',\n allowedTypes: ['String', 'Int', 'Long'],\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n axesAllowed: true,\n multipleSelectors: false,\n },\n }),\n facetBy: new ComponentController<HistogramUIState, 'facetBy'>({\n componentName: 'facetBy',\n allowedTypes: ['String', 'Int', 'Long'],\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n }),\n },\n {\n filters: new ComponentController<HistogramUIState, 'filters'>({\n componentName: 'filters',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Float'],\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<HistogramUIState, 'tabBy'>({\n componentName: 'tabBy',\n allowedTypes: ['String', 'Int'],\n parentComponents: ['value'],\n dependsOn: ['value'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n dimensionConsumer: true,\n },\n }),\n }\n );\n }\n\n async createDataByColumns(store: DataStore, state: HistogramUIState): 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\n .map(s => columnOrAxisIdFromString(s.selectedSource))\n .filter(isColumnId);\n\n const parentSources = [valueColumnIdString];\n const parentAxesList = await getAxesSpecsFromSources(store, parentSources);\n\n const inputs = [state.components.facetBy, state.components.grouping];\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(\n ...(await getLinkerColumnsForSource(store, linkerMap, multipliesByMap, parentAxesList, 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(\n ...(await getLinkerColumnsForSource(store, linkerMap, multipliesByMap, parentAxesList, 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 return {byColumns: dataByColumns};\n }\n\n async createChartSettings(store: DataStore, state: HistogramUIState): 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 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 let grouping;\n if (state.components.grouping.selectorStates.length) {\n const {selectedSource} = state.components.grouping.selectorStates[0];\n grouping = {\n type: 'column',\n value: selectedSource,\n label: await getColumnOrAxisLabel(store, selectedSource, parentSources),\n valueLabels: (\n await getColumnOrAxisValueLabelsId(store, selectedSource, parentSources)\n )?.toCanonicalString(),\n };\n }\n return {\n type: 'histogram',\n valueColumn: value,\n facetBy,\n grouping,\n };\n }\n}\n"],"names":["InitialHistogramState","HistogramStateController","ControllerBase","ComponentController","__publicField","store","state","valueColumnIdString","_a","valueColumnId","columnOrAxisIdFromString","isColumnId","dataByColumns","canonicalize","linkerMap","createLinkerMap","multipliesByMap","createMultipliesByMap","filterSelectedStates","filters","getFiltersFromStates","filterColumns","s","parentSources","parentAxesList","getAxesSpecsFromSources","inputs","secondarySources","linkerColumns","selectedSource","getLinkerColumnsForSource","input","labelsColumnId","getColumnOrAxisValueLabelsId","data","item","key","value","getColumnOrAxisLabel","facetBy","selectorState","grouping","_b"],"mappings":"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","x_google_ignoreList":[0]}
|