@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.
Files changed (98) hide show
  1. package/dist/GraphMaker/components/AesSettings/AesDataMappingDiscrete.vue.d.ts.map +1 -1
  2. package/dist/GraphMaker/components/AesSettings/AesDataMappingDiscrete.vue.js +2 -1
  3. package/dist/GraphMaker/components/AesSettings/AesDataMappingDiscrete.vue.js.map +1 -1
  4. package/dist/GraphMaker/components/Chart.vue.js +3 -3
  5. package/dist/GraphMaker/components/Chart.vue.js.map +1 -1
  6. package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.d.ts +3 -12
  7. package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.d.ts.map +1 -1
  8. package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.js +42 -85
  9. package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.js.map +1 -1
  10. package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.d.ts +1 -9
  11. package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.d.ts.map +1 -1
  12. package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.js +44 -89
  13. package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.js.map +1 -1
  14. package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.d.ts +1 -3
  15. package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.d.ts.map +1 -1
  16. package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.js +68 -86
  17. package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.js.map +1 -1
  18. package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.d.ts +7 -11
  19. package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.d.ts.map +1 -1
  20. package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.js +48 -91
  21. package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.js.map +1 -1
  22. package/dist/GraphMaker/components/DragAndDrop/types.d.ts +1 -21
  23. package/dist/GraphMaker/components/DragAndDrop/types.d.ts.map +1 -1
  24. package/dist/GraphMaker/components/PlColorSliderThumb.vue.js +18 -18
  25. package/dist/GraphMaker/components/PlColorSliderThumb.vue.js.map +1 -1
  26. package/dist/GraphMaker/constantsCommon.d.ts +0 -1
  27. package/dist/GraphMaker/constantsCommon.d.ts.map +1 -1
  28. package/dist/GraphMaker/constantsCommon.js +95 -95
  29. package/dist/GraphMaker/constantsCommon.js.map +1 -1
  30. package/dist/GraphMaker/forms/DataMappingForm/DendroForm.vue.d.ts.map +1 -1
  31. package/dist/GraphMaker/forms/DataMappingForm/DendroForm.vue.js +128 -166
  32. package/dist/GraphMaker/forms/DataMappingForm/DendroForm.vue.js.map +1 -1
  33. package/dist/GraphMaker/forms/DataMappingForm/useBaskets.d.ts.map +1 -1
  34. package/dist/GraphMaker/forms/DataMappingForm/useBaskets.js +93 -131
  35. package/dist/GraphMaker/forms/DataMappingForm/useBaskets.js.map +1 -1
  36. package/dist/GraphMaker/forms/DataMappingForm/utils.d.ts +1 -1
  37. package/dist/GraphMaker/forms/DataMappingForm/utils.d.ts.map +1 -1
  38. package/dist/GraphMaker/forms/DataMappingForm/utils.js +79 -155
  39. package/dist/GraphMaker/forms/DataMappingForm/utils.js.map +1 -1
  40. package/dist/GraphMaker/forms/index.js +2 -2
  41. package/dist/GraphMaker/forms/index.js.map +1 -1
  42. package/dist/GraphMaker/icons/StackedAreaIcon.vue.d.ts +3 -0
  43. package/dist/GraphMaker/icons/StackedAreaIcon.vue.d.ts.map +1 -0
  44. package/dist/GraphMaker/icons/StackedAreaIcon.vue.js +19 -0
  45. package/dist/GraphMaker/icons/StackedAreaIcon.vue.js.map +1 -0
  46. package/dist/GraphMaker/index.vue.js +1 -1
  47. package/dist/GraphMaker/store.d.ts.map +1 -1
  48. package/dist/GraphMaker/store.js +43 -45
  49. package/dist/GraphMaker/store.js.map +1 -1
  50. package/dist/GraphMaker/types.d.ts +1 -1
  51. package/dist/GraphMaker/types.d.ts.map +1 -1
  52. package/dist/GraphMaker/utils/addFixedOptionsToState.js +2 -2
  53. package/dist/GraphMaker/utils/addFixedOptionsToState.js.map +1 -1
  54. package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.js +25 -25
  55. package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
  56. package/dist/GraphMaker/utils/loadDefaultSources.d.ts +2 -3
  57. package/dist/GraphMaker/utils/loadDefaultSources.d.ts.map +1 -1
  58. package/dist/GraphMaker/utils/loadDefaultSources.js +47 -51
  59. package/dist/GraphMaker/utils/loadDefaultSources.js.map +1 -1
  60. package/dist/GraphMaker/utils/loadUniqueValuesToSave.d.ts.map +1 -1
  61. package/dist/GraphMaker/utils/loadUniqueValuesToSave.js +39 -41
  62. package/dist/GraphMaker/utils/loadUniqueValuesToSave.js.map +1 -1
  63. package/dist/lib.js +1 -1
  64. package/dist/node_modules/@milaboratories/helpers/dist/objects.js +33 -0
  65. package/dist/node_modules/@milaboratories/helpers/dist/objects.js.map +1 -0
  66. package/dist/node_modules/@milaboratories/helpers/dist/utils.js +12 -0
  67. package/dist/node_modules/@milaboratories/helpers/dist/utils.js.map +1 -0
  68. package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js +6 -5
  69. package/dist/node_modules/@milaboratories/pf-plots/dist/constants.js.map +1 -1
  70. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js +146 -149
  71. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js.map +1 -1
  72. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js +168 -221
  73. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js.map +1 -1
  74. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js +95 -102
  75. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js.map +1 -1
  76. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/dendro.js +145 -156
  77. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/dendro.js.map +1 -1
  78. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/discrete.js +68 -75
  79. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/discrete.js.map +1 -1
  80. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js +154 -159
  81. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js.map +1 -1
  82. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/histogram.js +48 -55
  83. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/histogram.js.map +1 -1
  84. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js +114 -122
  85. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js.map +1 -1
  86. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js +111 -119
  87. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js.map +1 -1
  88. package/dist/node_modules/@milaboratories/pf-plots/dist/index.js +4 -4
  89. package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js +70 -69
  90. package/dist/node_modules/@milaboratories/pf-plots/dist/pframe/ColumnsProvider.js.map +1 -1
  91. package/dist/node_modules/@milaboratories/pf-plots/dist/spec.js +2 -2
  92. package/dist/node_modules/@milaboratories/pf-plots/dist/spec.js.map +1 -1
  93. package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js +184 -183
  94. package/dist/node_modules/@milaboratories/pf-plots/dist/utils.js.map +1 -1
  95. package/dist/node_modules/@vueuse/shared/index.js.map +1 -1
  96. package/package.json +4 -4
  97. package/dist/node_modules/@milaboratories/helpers/dist/index.js +0 -372
  98. 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 E from "../../_virtual/canonicalize.js";
2
- import { ControllerBase as V } from "../ControllerBase.js";
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 w, isColumnId as y } from "../../spec.js";
5
- import { checkSourceBySpecForFilters as N, createLinkerMap as T, getFiltersFromStates as k, getAxesSpecsFromSources as P, getLinkerColumnsForSource as I, getColumnOrAxisValueLabelsId as b, getColumnOrAxisLabel as F } from "../../utils.js";
6
- var H = Object.defineProperty, U = (l, e, t) => e in l ? H(l, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : l[e] = t, $ = (l, e, t) => U(l, e + "", t);
7
- const W = {
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 V {
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
- ), $(this, "dataInputs", ["value"]);
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 = w(r);
88
- if (!y(o))
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: E(t.components) ?? "",
91
+ id: O(t.components) ?? "",
93
92
  values: {}
94
- }, u = await T(e), m = [
93
+ }, u = await L(e), g = await D(e), m = [
95
94
  ...t.components.filters.selectorStates,
96
95
  ...t.components.tabBy.selectorStates
97
- ], x = k(m), g = m.map((s) => w(s.selectedSource)).filter(y), n = [r], p = await P(e, n), L = [t.components.facetBy, t.components.grouping], S = [], A = [[]], B = [], C = [];
98
- for (const { selectedSource: s, fixedAxes: a } of m)
99
- C.push(
100
- ...await I(e, u, p, s, a)
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 s of L)
105
- for (const { selectedSource: a, fixedAxes: v } of s.selectorStates) {
106
- S.push(w(a)), B.push(
107
- (v ?? []).map(({ axisIdx: O, axisValue: D }) => ({ idx: O, value: D }))
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 f = await b(e, a, n);
112
- f && S.push(f);
106
+ const x = await b(e, s, p);
107
+ x && v.push(x);
113
108
  }
114
- const h = await e.pFrameProvider.getTableOuterJoin(
115
- [o, ...C, ...g],
109
+ const C = await e.pFrameProvider.getTableOuterJoin(
110
+ [o, ...y, ...a],
111
+ v,
116
112
  S,
117
- x,
118
- !0,
119
- A,
120
- B
113
+ !0
121
114
  );
122
- return S.forEach((s) => {
123
- const a = s.toCanonicalString();
124
- c.values[a] = y(s) ? h.columnsData[a] : h.axesData[a];
125
- }), c.values[o.toCanonicalString()] = h.columnsData[o.toCanonicalString()], { byColumns: c };
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 = w(o);
133
- if (!y(c))
125
+ const c = f(o);
126
+ if (!w(c))
134
127
  throw Error("Value column is not valid");
135
- const u = [o], m = {
128
+ const u = [o], g = {
136
129
  type: "column",
137
130
  value: o,
138
- label: await F(e, o, [])
139
- }, x = await Promise.all(
140
- t.components.facetBy.selectorStates.map(async (n) => {
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, n.selectedSource, u)) == null ? void 0 : p.toCanonicalString()) ?? n.selectedSource
137
+ value: ((p = await b(e, a.selectedSource, u)) == null ? void 0 : p.toCanonicalString()) ?? a.selectedSource
145
138
  };
146
139
  })
147
140
  );
148
- let g;
141
+ let S;
149
142
  if (t.components.grouping.selectorStates.length) {
150
- const { selectedSource: n } = t.components.grouping.selectorStates[0];
151
- g = {
143
+ const { selectedSource: a } = t.components.grouping.selectorStates[0];
144
+ S = {
152
145
  type: "column",
153
- value: n,
154
- label: await F(e, n, u),
155
- valueLabels: (r = await b(e, n, u)) == null ? void 0 : r.toCanonicalString()
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: m,
161
- facetBy: x,
162
- grouping: g
153
+ valueColumn: g,
154
+ facetBy: m,
155
+ grouping: S
163
156
  };
164
157
  }
165
158
  }
166
159
  export {
167
160
  G as HistogramStateController,
168
- W as InitialHistogramState
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]}