@milaboratories/graph-maker 1.2.1 → 1.2.3
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/assets/ui.css +1 -1
- package/dist/components/ChartTruncationWarningAlert.css +1 -0
- package/dist/components/ChartTruncationWarningAlert.vue.d.ts +7 -0
- package/dist/components/ChartTruncationWarningAlert.vue.d.ts.map +1 -0
- package/dist/components/ChartTruncationWarningAlert.vue.js +10 -0
- package/dist/components/ChartTruncationWarningAlert.vue.js.map +1 -0
- package/dist/components/ChartTruncationWarningAlert.vue2.js +54 -0
- package/dist/components/ChartTruncationWarningAlert.vue2.js.map +1 -0
- package/dist/components/ChartTruncationWarningAlert.vue3.js +8 -0
- package/dist/components/ChartTruncationWarningAlert.vue3.js.map +1 -0
- package/dist/components/DragAndDrop/DnDBasketChip.vue.d.ts.map +1 -1
- package/dist/components/DragAndDrop/DnDBasketChip.vue.js +34 -31
- package/dist/components/DragAndDrop/DnDBasketChip.vue.js.map +1 -1
- package/dist/components/DragAndDrop/DnDRangeChip.vue.d.ts.map +1 -1
- package/dist/components/DragAndDrop/DnDRangeChip.vue.js +34 -31
- package/dist/components/DragAndDrop/DnDRangeChip.vue.js.map +1 -1
- package/dist/components/DragAndDrop/DndDoubleChip.vue.d.ts.map +1 -1
- package/dist/components/DragAndDrop/DndDoubleChip.vue.js +40 -35
- package/dist/components/DragAndDrop/DndDoubleChip.vue.js.map +1 -1
- package/dist/components/PanelModal.vue.d.ts.map +1 -1
- package/dist/components/PanelModal.vue.js +25 -11
- package/dist/components/PanelModal.vue.js.map +1 -1
- package/dist/constantsCommon.d.ts +6 -0
- package/dist/constantsCommon.d.ts.map +1 -1
- package/dist/constantsCommon.js +36 -32
- package/dist/constantsCommon.js.map +1 -1
- package/dist/dataBindAes.d.ts.map +1 -1
- package/dist/dataBindAes.js +81 -86
- package/dist/dataBindAes.js.map +1 -1
- package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.d.ts.map +1 -1
- package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js +64 -54
- package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.d.ts.map +1 -1
- package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +177 -157
- package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.d.ts.map +1 -1
- package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js +133 -123
- package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.d.ts.map +1 -1
- package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js +130 -120
- package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.d.ts.map +1 -1
- package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js +164 -147
- package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/utils.js +58 -58
- package/dist/forms/DataMappingForm/utils.js.map +1 -1
- package/dist/forms/LayersForm/AesSelector.vue.js +66 -66
- package/dist/forms/LayersForm/AesSelector.vue.js.map +1 -1
- package/dist/index.vue.d.ts.map +1 -1
- package/dist/index.vue.js +186 -172
- package/dist/index.vue.js.map +1 -1
- package/dist/store.d.ts +2 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +140 -134
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/calculateDiscreteGroups.d.ts.map +1 -1
- package/dist/utils/calculateDiscreteGroups.js +6 -6
- package/dist/utils/calculateDiscreteGroups.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +1 -0
- package/dist/utils/createChartSettingsForRender/composeBubbleSettings.d.ts.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeChartSettings.d.ts +19 -1
- package/dist/utils/createChartSettingsForRender/composeChartSettings.d.ts.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeChartSettings.js +74 -40
- package/dist/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeDendroSettings.d.ts +1 -0
- package/dist/utils/createChartSettingsForRender/composeDendroSettings.d.ts.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeDendroSettings.js +22 -22
- package/dist/utils/createChartSettingsForRender/composeDendroSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +4 -487
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js +48 -35
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +1 -0
- package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +1 -0
- package/dist/utils/createChartSettingsForRender/composeHistogramSettings.d.ts.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +1 -0
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js +80 -67
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.d.ts.map +1 -1
- package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js +28 -28
- package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
- package/dist/utils/loadUniqueValuesToSave.d.ts +3 -1
- package/dist/utils/loadUniqueValuesToSave.d.ts.map +1 -1
- package/dist/utils/loadUniqueValuesToSave.js +81 -63
- package/dist/utils/loadUniqueValuesToSave.js.map +1 -1
- package/package.json +3 -3
- package/dist/assets/drag-and-drop/img/chip-close.svg.js +0 -7
- package/dist/assets/drag-and-drop/img/chip-close.svg.js.map +0 -1
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sources":["../src/store.ts"],"sourcesContent":["import type {\n ChartType,\n DemoDataStore,\n DendroStateController,\n DendroUIState,\n InputGuide,\n InputNamesByChartType,\n InputState,\n PlotDataAndSettings,\n} from '@milaboratories/pf-plots';\nimport {\n getControllerByType,\n getInitialStateByType,\n} from '@milaboratories/pf-plots';\nimport type { PColumnSpec } from '@platforma-sdk/model';\nimport type { CategoricalPalette, ContinuousPalette, Palette } from './components/AesSettings/types';\nimport type { ComputedRef, Reactive, Ref } from 'vue';\nimport { computed, inject, provide, reactive, ref, toRaw, watch } from 'vue';\nimport type { AesType } from './constantsCommon';\nimport {\n getInitialAxesSettings,\n getInitialLayersSettings,\n getInitialStatisticsState,\n getInitialTemplate,\n} from './constantsCommon';\nimport { updateDataBindAes } from './dataBindAes';\nimport { notEmpty } from './helpers';\nimport { storeKey } from './keys';\nimport type {\n DefaultPalettes,\n DendroNodeInfo,\n FilterLabelsInfoBySourceMap,\n FilterSuggestionsBySourceMap,\n GraphMakerProps,\n GraphMakerState,\n ReactiveState, UniqueValuesBySourceMap,\n} from './types';\nimport type { LoadedDefaultOptionsMap } from './utils';\nimport { createUpdatedWithNewDefaultsOptionsState, isOptionsStateNeedsToBeUpdated, loadDefaultSources } from './utils';\nimport { addFixedOptionsToState } from './utils/addFixedOptionsToState';\nimport { calculateDiscreteGroups } from './utils/calculateDiscreteGroups';\nimport { copyJSON } from './utils/copyJSON';\nimport { loadDataForPlot } from './utils/createChartSettingsForRender/composeChartSettings';\nimport { getUsedAesInMapping } from './utils/getUsedAesInMapping';\nimport {\n getUniqueValuesFromReadyChartData,\n loadFilterLabelsForTitle,\n} from './utils/loadUniqueValuesToSave';\nimport type { FormKey } from './forms';\nimport { tabKeys } from './forms';\nimport { DEFAULT_CATEGORICAL_PALETTE, DEFAULT_CONTINUOUS_PALETTE } from './constantsAesthetic';\n\nfunction getInitialOptionsState(chartType: ChartType, optionsState: InputState | undefined) {\n const defaultState = copyJSON(getInitialStateByType(chartType));\n if (optionsState?.type !== chartType) {\n return defaultState;\n }\n const optionsStateCopy = copyJSON(optionsState);\n\n return {\n ...defaultState,\n ...optionsStateCopy,\n components: {\n ...defaultState.components,\n ...optionsStateCopy.components,\n },\n };\n}\n\nexport function createReactiveState(\n initialData: GraphMakerState,\n chartType: ChartType,\n): Reactive<ReactiveState> {\n return reactive({\n chartType: chartType,\n // from pf-plots\n optionsState: getInitialOptionsState(chartType, initialData.optionsState), // contains user selected inputs\n // previously used default options\n usedDefaultOptions: initialData.usedDefaultOptions ? copyJSON(initialData.usedDefaultOptions ?? {}) as LoadedDefaultOptionsMap<ChartType> : null,\n\n // local form states, updates directly in forms\n template: getInitialTemplate(initialData.template, chartType),\n statisticsSettings: getInitialStatisticsState(chartType, initialData.statisticsSettings),\n layersSettings: getInitialLayersSettings(initialData.layersSettings),\n axesSettings: getInitialAxesSettings(chartType, initialData.axesSettings),\n // common aesthetics data mapped on columns/axes values\n dataBindAes: copyJSON(initialData.dataBindAes ?? {}),\n chartScale: initialData.zoomState ?? 100,\n lassoControlsState: null,\n currentTab: initialData.currentTab === undefined ? 'dataMapping' : initialData.currentTab,\n tabDefaultState: tabKeys().reduce((res, formKey: FormKey) => {\n res[formKey] = {};\n return res;\n }, {} as Record<FormKey, Record<string, boolean>>),\n dendroInfoByClick: null as null | DendroNodeInfo,\n dendroSelectedNodeId: null,\n showTooltipHint: false,\n tooltipHintWasShown: initialData.tooltipHintWasShown ?? false,\n });\n}\n\nexport interface Store {\n reactive: Reactive<ReactiveState>;\n loading: {\n initialInputGuide: boolean;\n initialCharts: boolean;\n initialDefaults: boolean;\n inputGuide: boolean;\n chartData: boolean;\n defaults: boolean;\n chartRendering: boolean;\n dendroTableData: boolean;\n };\n commonHelpersData: {\n primaryGroups: ComputedRef<ReturnType<typeof calculateDiscreteGroups>>;\n secondaryGroups: ComputedRef<ReturnType<typeof calculateDiscreteGroups>>;\n usedAesInMapping: ComputedRef<Record<string, Record<AesType, boolean>>>;\n dendroTableData: Ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>;\n };\n controller: ReturnType<typeof getControllerByType>;\n columnsDataStore: Ref<DemoDataStore | null>;\n inputGuide: Ref<InputGuide<InputState>>;\n chartData: Ref<PlotDataAndSettings | null>;\n uniqueValuesData: Ref<UniqueValuesBySourceMap>;\n filterSuggestionsData: Ref<FilterSuggestionsBySourceMap>;\n filterLabelsInfo: Ref<FilterLabelsInfoBySourceMap>;\n readonlyInputs?: InputNamesByChartType[ChartType][];\n defaultPalette: DefaultPalettes;\n}\n\nexport function factoryStore(\n reactiveState: Reactive<ReactiveState>,\n dataStore: Ref<DemoDataStore | null>,\n inputGuide: Ref<InputGuide<InputState>>,\n chartData: Ref<PlotDataAndSettings | null>,\n dendroTableData: Ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>,\n uniqueValuesData: Ref<UniqueValuesBySourceMap>,\n filterSuggestionsData: Ref<FilterSuggestionsBySourceMap>,\n filterLabelsInfo: Ref<FilterLabelsInfoBySourceMap>,\n readonlyInputs?: InputNamesByChartType[ChartType][],\n defaultPalette?: Palette | { categorical?: Palette; continuous?: Palette },\n): Store {\n return {\n reactive: reactiveState,\n loading: reactive({\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n defaults: false,\n chartRendering: false,\n dendroTableData: false,\n }),\n commonHelpersData: {\n primaryGroups: computed(() => calculateDiscreteGroups(\n reactiveState.optionsState,\n uniqueValuesData.value,\n 'primaryGrouping',\n ),\n ),\n secondaryGroups: computed(() => calculateDiscreteGroups(\n reactiveState.optionsState,\n uniqueValuesData.value,\n 'secondaryGrouping',\n ),\n ),\n usedAesInMapping: computed<Record<string, Record<AesType, boolean>>>(() =>\n getUsedAesInMapping(\n reactiveState.chartType,\n reactiveState.template,\n reactiveState.layersSettings,\n reactiveState.statisticsSettings,\n reactiveState.optionsState,\n inputGuide.value,\n ),\n ),\n dendroTableData,\n },\n controller: getControllerByType(reactiveState.chartType),\n columnsDataStore: dataStore,\n inputGuide,\n chartData,\n uniqueValuesData,\n filterSuggestionsData,\n filterLabelsInfo,\n readonlyInputs,\n defaultPalette: {\n categorical: typeof defaultPalette === 'object' && defaultPalette.categorical\n ? defaultPalette.categorical as CategoricalPalette\n : typeof defaultPalette === 'string' ? defaultPalette as CategoricalPalette : DEFAULT_CATEGORICAL_PALETTE,\n continuous: typeof defaultPalette === 'object' && defaultPalette.continuous\n ? defaultPalette.continuous as ContinuousPalette\n : typeof defaultPalette === 'string' ? defaultPalette as ContinuousPalette : DEFAULT_CONTINUOUS_PALETTE,\n },\n };\n}\n\nexport type ComputedStore = ComputedRef<Store>;\n\nexport function provideStore(\n initialState: GraphMakerState,\n dataStoreRef: Ref<DemoDataStore | null>,\n chartType: ChartType,\n defaultOptionsRef: Ref<GraphMakerProps['defaultOptions']>,\n fixedOptionsRef: Ref<GraphMakerProps['fixedOptions']>,\n dataColumnPredicate?: (spec: PColumnSpec) => boolean,\n metaColumnPredicate?: (spec: PColumnSpec) => boolean,\n readonlyInputs?: InputNamesByChartType[ChartType][],\n defaultPalette?: GraphMakerProps['defaultPalette'],\n) {\n const reactiveState = createReactiveState(initialState, chartType);\n const controller = getControllerByType(reactiveState.chartType);\n\n const inputGuide = ref<InputGuide<InputState>>(getControllerByType(reactiveState.chartType).getEmptyInputGuide(reactiveState.optionsState));\n const chartData = ref<PlotDataAndSettings | null>(null);\n\n const uniqueValuesData = ref<UniqueValuesBySourceMap>({});\n const filterSuggestionsData = ref<FilterSuggestionsBySourceMap>({});\n const filterLabelsInfo = ref<FilterLabelsInfoBySourceMap>({}); // for auto titles of chart if something selected in filter/tabby\n\n const dendroTableData = ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>(null);\n\n // toRaw removes Vue proxy from dataStore.pframe (PFrame api)\n const store = computed(() => factoryStore(\n reactiveState,\n dataStoreRef,\n inputGuide,\n chartData,\n dendroTableData,\n uniqueValuesData,\n filterSuggestionsData,\n filterLabelsInfo,\n readonlyInputs,\n defaultPalette,\n ));\n\n watch(() => dataStoreRef.value, () => {\n filterLabelsInfo.value = {};\n uniqueValuesData.value = {};\n filterSuggestionsData.value = {}; // reset saved data; avoid caching of empty results from old empty pframe\n });\n\n const defaultOptionsCounter = ref(0);\n watch([\n () => dataStoreRef.value,\n () => defaultOptionsRef.value,\n ], async ([ds, defaultOptions]) => {\n if (!defaultOptions || defaultOptions?.length === 0 || !ds) {\n return;\n }\n defaultOptionsCounter.value++;\n const counter = defaultOptionsCounter.value;\n store.value.loading.defaults = true;\n if (reactiveState.usedDefaultOptions === null) {\n store.value.loading.initialInputGuide = true;\n }\n const loadedDefaultOptions = await loadDefaultSources(ds, defaultOptions, reactiveState.usedDefaultOptions);\n if (defaultOptionsCounter.value !== counter) {\n return;\n }\n const { usedDefaultOptions, optionsState } = reactiveState;\n const needsToBeUpdated = isOptionsStateNeedsToBeUpdated(optionsState, usedDefaultOptions, loadedDefaultOptions);\n if (!needsToBeUpdated) {\n store.value.loading.defaults = false;\n return;\n }\n store.value.loading.initialCharts = true; // we want to show loader when default are really changed and new chart data is requested\n reactiveState.optionsState.components = createUpdatedWithNewDefaultsOptionsState(optionsState, usedDefaultOptions, loadedDefaultOptions);\n reactiveState.usedDefaultOptions = loadedDefaultOptions;\n }, { immediate: true });\n\n // recalculate input guide - options for every data input, consistency info etc\n const inputGuideCounter = ref(0); // to avoid race condition on async calculations\n watch([\n () => reactiveState.optionsState,\n () => dataStoreRef.value,\n () => fixedOptionsRef.value,\n ], async ([optionsState, ds, fixedOptions]) => {\n if (defaultOptionsRef.value === null || dataStoreRef.value === null) { // they are not ready, waiting for them\n return;\n }\n inputGuideCounter.value++;\n const counter = inputGuideCounter.value;\n store.value.loading.inputGuide = true;\n const ignoredIds = ds && fixedOptions ? Object.values(await loadDefaultSources(ds, fixedOptions, null, false)).flatMap((item) => item.map((s) => s.selectedSource)) : [];\n\n // const start = Date.now();\n const nextInputGuide = ds ? await controller.calculateOptions(toRaw(ds), optionsState, ignoredIds, dataColumnPredicate, metaColumnPredicate) : controller.getEmptyInputGuide(optionsState);\n // console.log('input guide', Date.now() - start);\n\n if (counter === inputGuideCounter.value) { // race condition check\n inputGuide.value = nextInputGuide;\n\n store.value.loading.defaults = false;\n store.value.loading.inputGuide = false;\n if (store.value.loading.initialInputGuide) {\n store.value.loading.initialInputGuide = false;\n }\n }\n }, { immediate: true, deep: true });\n\n // recalculate data for chart rendering (miplots4)\n const chartDataCounter = ref(0); // to avoid race condition on async calculations\n watch(() => inputGuide.value, async (ig) => {\n chartDataCounter.value++;\n const counter = chartDataCounter.value;\n\n store.value.loading.chartData = true;\n\n const ds = toRaw(dataStoreRef.value);\n // const start = Date.now();\n const nextChartData = await loadDataForPlot(ig, reactiveState, ds, fixedOptionsRef.value);\n\n if (nextChartData && ds) {\n const { uniqueValues, filterSuggestions } = await getUniqueValuesFromReadyChartData(\n nextChartData, ig, reactiveState.optionsState.components, controller, ds, toRaw(filterSuggestionsData.value),\n );\n uniqueValuesData.value = uniqueValues;\n filterSuggestionsData.value = filterSuggestions;\n updateDataBindAes(reactiveState.optionsState, reactiveState.dataBindAes, uniqueValuesData.value);\n }\n filterLabelsInfo.value = ds\n ? await loadFilterLabelsForTitle(reactiveState.optionsState.components, ig, controller, ds)\n : {};\n // console.log('chart data', Date.now() - start);\n\n if (counter === chartDataCounter.value) { // race condition check\n chartData.value = nextChartData;\n if (ig.ready) {\n store.value.loading.initialCharts = false;\n }\n store.value.loading.chartData = false;\n }\n }, { immediate: true, deep: true });\n\n // watch data for table, only dendro chart; data is also using for popup by tree node click\n if (reactiveState.chartType === 'dendro') {\n const dendroDataCounter = ref(0); // to avoid race condition on async calculations\n watch([\n () => reactiveState.optionsState as DendroUIState,\n () => dataStoreRef.value,\n () => inputGuide.value.readyData,\n () => fixedOptionsRef.value,\n ], async ([optionsState, dataStore, ready, fixed]) => {\n if (ready && dataStore) {\n dendroDataCounter.value++;\n const counter = dendroDataCounter.value;\n store.value.loading.dendroTableData = true;\n const state = (await addFixedOptionsToState(optionsState, dataStore, fixed)) as DendroUIState;\n const nextDendroTableData = await (controller as unknown as DendroStateController).createTableData(dataStore, state);\n\n if (dendroDataCounter.value === counter) {\n dendroTableData.value = nextDendroTableData;\n }\n store.value.loading.dendroTableData = false;\n }\n }, { immediate: true });\n }\n\n provide(storeKey, store);\n return store;\n}\n\nexport function useStore() {\n return notEmpty(inject<ComputedStore>(storeKey), 'Empty store');\n}\n"],"names":["getInitialOptionsState","chartType","optionsState","defaultState","copyJSON","getInitialStateByType","optionsStateCopy","createReactiveState","initialData","reactive","getInitialTemplate","getInitialStatisticsState","getInitialLayersSettings","getInitialAxesSettings","tabKeys","res","formKey","factoryStore","reactiveState","dataStore","inputGuide","chartData","dendroTableData","uniqueValuesData","filterSuggestionsData","filterLabelsInfo","readonlyInputs","defaultPalette","computed","calculateDiscreteGroups","getUsedAesInMapping","getControllerByType","DEFAULT_CATEGORICAL_PALETTE","DEFAULT_CONTINUOUS_PALETTE","provideStore","initialState","dataStoreRef","defaultOptionsRef","fixedOptionsRef","dataColumnPredicate","metaColumnPredicate","controller","ref","store","watch","defaultOptionsCounter","ds","defaultOptions","counter","loadedDefaultOptions","loadDefaultSources","usedDefaultOptions","isOptionsStateNeedsToBeUpdated","createUpdatedWithNewDefaultsOptionsState","inputGuideCounter","fixedOptions","ignoredIds","item","s","nextInputGuide","toRaw","chartDataCounter","ig","nextChartData","loadDataForPlot","uniqueValues","filterSuggestions","getUniqueValuesFromReadyChartData","updateDataBindAes","loadFilterLabelsForTitle","dendroDataCounter","ready","fixed","state","addFixedOptionsToState","nextDendroTableData","provide","storeKey","useStore","notEmpty","inject"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sources":["../src/store.ts"],"sourcesContent":["import type {\n ChartType,\n DemoDataStore,\n DendroStateController,\n DendroUIState,\n InputGuide,\n InputNamesByChartType,\n InputState,\n PlotDataAndSettings,\n} from '@milaboratories/pf-plots';\nimport {\n getControllerByType,\n getInitialStateByType,\n} from '@milaboratories/pf-plots';\nimport type { PColumnSpec } from '@platforma-sdk/model';\nimport type { CategoricalPalette, ContinuousPalette, Palette } from './components/AesSettings/types';\nimport type { ComputedRef, Reactive, Ref } from 'vue';\nimport { computed, inject, provide, reactive, ref, toRaw, watch } from 'vue';\nimport type { AesType } from './constantsCommon';\nimport {\n getInitialAxesSettings,\n getInitialLayersSettings,\n getInitialStatisticsState,\n getInitialTemplate,\n} from './constantsCommon';\nimport { updateDataBindAes } from './dataBindAes';\nimport { notEmpty } from './helpers';\nimport { storeKey } from './keys';\nimport type {\n DefaultPalettes,\n DendroNodeInfo,\n FilterLabelsInfoBySourceMap,\n FilterSuggestionsBySourceMap,\n GraphMakerProps,\n GraphMakerState,\n ReactiveState, UniqueValuesBySourceMap,\n} from './types';\nimport type { LoadedDefaultOptionsMap } from './utils';\nimport { createUpdatedWithNewDefaultsOptionsState, isOptionsStateNeedsToBeUpdated, loadDefaultSources } from './utils';\nimport { addFixedOptionsToState } from './utils/addFixedOptionsToState';\nimport { calculateDiscreteGroups } from './utils/calculateDiscreteGroups';\nimport { copyJSON } from './utils/copyJSON';\nimport { loadDataForPlot } from './utils/createChartSettingsForRender/composeChartSettings';\nimport { getUsedAesInMapping } from './utils/getUsedAesInMapping';\nimport {\n getFacetValuesFromReadyChartData,\n getUniqueValuesFromReadyChartData,\n loadFilterLabelsForTitle,\n} from './utils/loadUniqueValuesToSave';\nimport type { FormKey } from './forms';\nimport { tabKeys } from './forms';\nimport { DEFAULT_CATEGORICAL_PALETTE, DEFAULT_CONTINUOUS_PALETTE } from './constantsAesthetic';\n\nfunction getInitialOptionsState(chartType: ChartType, optionsState: InputState | undefined) {\n const defaultState = copyJSON(getInitialStateByType(chartType));\n if (optionsState?.type !== chartType) {\n return defaultState;\n }\n const optionsStateCopy = copyJSON(optionsState);\n\n return {\n ...defaultState,\n ...optionsStateCopy,\n components: {\n ...defaultState.components,\n ...optionsStateCopy.components,\n },\n };\n}\n\nexport function createReactiveState(\n initialData: GraphMakerState,\n chartType: ChartType,\n): Reactive<ReactiveState> {\n return reactive({\n chartType: chartType,\n // from pf-plots\n optionsState: getInitialOptionsState(chartType, initialData.optionsState), // contains user selected inputs\n // previously used default options\n usedDefaultOptions: initialData.usedDefaultOptions ? copyJSON(initialData.usedDefaultOptions ?? {}) as LoadedDefaultOptionsMap<ChartType> : null,\n\n // local form states, updates directly in forms\n template: getInitialTemplate(initialData.template, chartType),\n statisticsSettings: getInitialStatisticsState(chartType, initialData.statisticsSettings),\n layersSettings: getInitialLayersSettings(initialData.layersSettings),\n axesSettings: getInitialAxesSettings(chartType, initialData.axesSettings),\n // common aesthetics data mapped on columns/axes values\n dataBindAes: copyJSON(initialData.dataBindAes ?? {}),\n chartScale: initialData.zoomState ?? 100,\n lassoControlsState: null,\n currentTab: initialData.currentTab === undefined ? 'dataMapping' : initialData.currentTab,\n tabDefaultState: tabKeys().reduce((res, formKey: FormKey) => {\n res[formKey] = {};\n return res;\n }, {} as Record<FormKey, Record<string, boolean>>),\n dendroInfoByClick: null as null | DendroNodeInfo,\n dendroSelectedNodeId: null,\n showTooltipHint: false,\n tooltipHintWasShown: initialData.tooltipHintWasShown ?? false,\n });\n}\n\nexport interface Store {\n reactive: Reactive<ReactiveState>;\n loading: {\n initialInputGuide: boolean;\n initialCharts: boolean;\n initialDefaults: boolean;\n inputGuide: boolean;\n chartData: boolean;\n defaults: boolean;\n chartRendering: boolean;\n dendroTableData: boolean;\n };\n commonHelpersData: {\n primaryGroups: ComputedRef<ReturnType<typeof calculateDiscreteGroups>>;\n secondaryGroups: ComputedRef<ReturnType<typeof calculateDiscreteGroups>>;\n usedAesInMapping: ComputedRef<Record<string, Record<AesType, boolean>>>;\n dendroTableData: Ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>;\n };\n controller: ReturnType<typeof getControllerByType>;\n columnsDataStore: Ref<DemoDataStore | null>;\n inputGuide: Ref<InputGuide<InputState>>;\n chartData: Ref<PlotDataAndSettings | null>;\n uniqueValuesData: Ref<UniqueValuesBySourceMap>;\n facetValuesData: Ref<UniqueValuesBySourceMap>;\n filterSuggestionsData: Ref<FilterSuggestionsBySourceMap>;\n filterLabelsInfo: Ref<FilterLabelsInfoBySourceMap>;\n readonlyInputs?: InputNamesByChartType[ChartType][];\n defaultPalette: DefaultPalettes;\n}\n\nexport function factoryStore(\n reactiveState: Reactive<ReactiveState>,\n dataStore: Ref<DemoDataStore | null>,\n inputGuide: Ref<InputGuide<InputState>>,\n chartData: Ref<PlotDataAndSettings | null>,\n dendroTableData: Ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>,\n uniqueValuesData: Ref<UniqueValuesBySourceMap>,\n facetValuesData: Ref<UniqueValuesBySourceMap>,\n filterSuggestionsData: Ref<FilterSuggestionsBySourceMap>,\n filterLabelsInfo: Ref<FilterLabelsInfoBySourceMap>,\n readonlyInputs?: InputNamesByChartType[ChartType][],\n defaultPalette?: Palette | { categorical?: Palette; continuous?: Palette },\n): Store {\n return {\n reactive: reactiveState,\n loading: reactive({\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n defaults: false,\n chartRendering: false,\n dendroTableData: false,\n }),\n commonHelpersData: {\n primaryGroups: computed(() => calculateDiscreteGroups(\n reactiveState.optionsState,\n uniqueValuesData.value,\n 'primaryGrouping',\n ),\n ),\n secondaryGroups: computed(() => calculateDiscreteGroups(\n reactiveState.optionsState,\n uniqueValuesData.value,\n 'secondaryGrouping',\n ),\n ),\n usedAesInMapping: computed<Record<string, Record<AesType, boolean>>>(() =>\n getUsedAesInMapping(\n reactiveState.chartType,\n reactiveState.template,\n reactiveState.layersSettings,\n reactiveState.statisticsSettings,\n reactiveState.optionsState,\n inputGuide.value,\n ),\n ),\n dendroTableData,\n },\n controller: getControllerByType(reactiveState.chartType),\n columnsDataStore: dataStore,\n inputGuide,\n chartData,\n uniqueValuesData,\n facetValuesData,\n filterSuggestionsData,\n filterLabelsInfo,\n readonlyInputs,\n defaultPalette: {\n categorical: typeof defaultPalette === 'object' && defaultPalette.categorical\n ? defaultPalette.categorical as CategoricalPalette\n : typeof defaultPalette === 'string' ? defaultPalette as CategoricalPalette : DEFAULT_CATEGORICAL_PALETTE,\n continuous: typeof defaultPalette === 'object' && defaultPalette.continuous\n ? defaultPalette.continuous as ContinuousPalette\n : typeof defaultPalette === 'string' ? defaultPalette as ContinuousPalette : DEFAULT_CONTINUOUS_PALETTE,\n },\n };\n}\n\nexport type ComputedStore = ComputedRef<Store>;\n\nexport function provideStore(\n initialState: GraphMakerState,\n dataStoreRef: Ref<DemoDataStore | null>,\n chartType: ChartType,\n defaultOptionsRef: Ref<GraphMakerProps['defaultOptions']>,\n fixedOptionsRef: Ref<GraphMakerProps['fixedOptions']>,\n dataColumnPredicate?: (spec: PColumnSpec) => boolean,\n metaColumnPredicate?: (spec: PColumnSpec) => boolean,\n readonlyInputs?: InputNamesByChartType[ChartType][],\n defaultPalette?: GraphMakerProps['defaultPalette'],\n) {\n const reactiveState = createReactiveState(initialState, chartType);\n const controller = getControllerByType(reactiveState.chartType);\n\n const inputGuide = ref<InputGuide<InputState>>(getControllerByType(reactiveState.chartType).getEmptyInputGuide(reactiveState.optionsState));\n const chartData = ref<PlotDataAndSettings | null>(null);\n\n const uniqueValuesData = ref<UniqueValuesBySourceMap>({});\n const facetValuesData = ref<UniqueValuesBySourceMap>({});\n const filterSuggestionsData = ref<FilterSuggestionsBySourceMap>({});\n const filterLabelsInfo = ref<FilterLabelsInfoBySourceMap>({}); // for auto titles of chart if something selected in filter/tabby\n\n const dendroTableData = ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>(null);\n\n // toRaw removes Vue proxy from dataStore.pframe (PFrame api)\n const store = computed(() => factoryStore(\n reactiveState,\n dataStoreRef,\n inputGuide,\n chartData,\n dendroTableData,\n uniqueValuesData,\n facetValuesData,\n filterSuggestionsData,\n filterLabelsInfo,\n readonlyInputs,\n defaultPalette,\n ));\n\n watch(() => dataStoreRef.value, () => {\n filterLabelsInfo.value = {};\n uniqueValuesData.value = {};\n facetValuesData.value = {};\n filterSuggestionsData.value = {}; // reset saved data; avoid caching of empty results from old empty pframe\n });\n\n const defaultOptionsCounter = ref(0);\n watch([\n () => dataStoreRef.value,\n () => defaultOptionsRef.value,\n ], async ([ds, defaultOptions]) => {\n if (!defaultOptions || defaultOptions?.length === 0 || !ds) {\n return;\n }\n defaultOptionsCounter.value++;\n const counter = defaultOptionsCounter.value;\n store.value.loading.defaults = true;\n if (reactiveState.usedDefaultOptions === null) {\n store.value.loading.initialInputGuide = true;\n }\n const loadedDefaultOptions = await loadDefaultSources(ds, defaultOptions, reactiveState.usedDefaultOptions);\n if (defaultOptionsCounter.value !== counter) {\n return;\n }\n const { usedDefaultOptions, optionsState } = reactiveState;\n const needsToBeUpdated = isOptionsStateNeedsToBeUpdated(optionsState, usedDefaultOptions, loadedDefaultOptions);\n if (!needsToBeUpdated) {\n store.value.loading.defaults = false;\n return;\n }\n store.value.loading.initialCharts = true; // we want to show loader when default are really changed and new chart data is requested\n reactiveState.optionsState.components = createUpdatedWithNewDefaultsOptionsState(optionsState, usedDefaultOptions, loadedDefaultOptions);\n reactiveState.usedDefaultOptions = loadedDefaultOptions;\n }, { immediate: true });\n\n // recalculate input guide - options for every data input, consistency info etc\n const inputGuideCounter = ref(0); // to avoid race condition on async calculations\n watch([\n () => reactiveState.optionsState,\n () => dataStoreRef.value,\n () => fixedOptionsRef.value,\n ], async ([optionsState, ds, fixedOptions]) => {\n if (defaultOptionsRef.value === null || dataStoreRef.value === null) { // they are not ready, waiting for them\n return;\n }\n inputGuideCounter.value++;\n const counter = inputGuideCounter.value;\n store.value.loading.inputGuide = true;\n const ignoredIds = ds && fixedOptions ? Object.values(await loadDefaultSources(ds, fixedOptions, null, false)).flatMap((item) => item.map((s) => s.selectedSource)) : [];\n\n // const start = Date.now();\n const nextInputGuide = ds ? await controller.calculateOptions(toRaw(ds), optionsState, ignoredIds, dataColumnPredicate, metaColumnPredicate) : controller.getEmptyInputGuide(optionsState);\n // console.log('input guide', Date.now() - start);\n\n if (counter === inputGuideCounter.value) { // race condition check\n inputGuide.value = nextInputGuide;\n\n store.value.loading.defaults = false;\n store.value.loading.inputGuide = false;\n if (store.value.loading.initialInputGuide) {\n store.value.loading.initialInputGuide = false;\n }\n }\n }, { immediate: true, deep: true });\n\n // recalculate data for chart rendering (miplots4)\n const chartDataCounter = ref(0); // to avoid race condition on async calculations\n watch(() => inputGuide.value, async (ig) => {\n chartDataCounter.value++;\n const counter = chartDataCounter.value;\n\n store.value.loading.chartData = true;\n\n const ds = toRaw(dataStoreRef.value);\n // const start = Date.now();\n const nextChartData = await loadDataForPlot(ig, reactiveState, ds, fixedOptionsRef.value);\n\n if (nextChartData && ds) {\n const { uniqueValues, filterSuggestions } = await getUniqueValuesFromReadyChartData(\n nextChartData, ig, reactiveState.optionsState.components, controller, ds, toRaw(filterSuggestionsData.value),\n );\n uniqueValuesData.value = uniqueValues;\n facetValuesData.value = getFacetValuesFromReadyChartData(\n nextChartData,\n reactiveState.optionsState.components,\n );\n filterSuggestionsData.value = filterSuggestions;\n updateDataBindAes(reactiveState.optionsState, reactiveState.dataBindAes, uniqueValuesData.value);\n } else {\n facetValuesData.value = {};\n }\n filterLabelsInfo.value = ds\n ? await loadFilterLabelsForTitle(reactiveState.optionsState.components, ig, controller, ds)\n : {};\n // console.log('chart data', Date.now() - start);\n\n if (counter === chartDataCounter.value) { // race condition check\n chartData.value = nextChartData;\n if (ig.ready) {\n store.value.loading.initialCharts = false;\n }\n store.value.loading.chartData = false;\n }\n }, { immediate: true, deep: true });\n\n // watch data for table, only dendro chart; data is also using for popup by tree node click\n if (reactiveState.chartType === 'dendro') {\n const dendroDataCounter = ref(0); // to avoid race condition on async calculations\n watch([\n () => reactiveState.optionsState as DendroUIState,\n () => dataStoreRef.value,\n () => inputGuide.value.readyData,\n () => fixedOptionsRef.value,\n ], async ([optionsState, dataStore, ready, fixed]) => {\n if (ready && dataStore) {\n dendroDataCounter.value++;\n const counter = dendroDataCounter.value;\n store.value.loading.dendroTableData = true;\n const state = (await addFixedOptionsToState(optionsState, dataStore, fixed)) as DendroUIState;\n const nextDendroTableData = await (controller as unknown as DendroStateController).createTableData(dataStore, state);\n\n if (dendroDataCounter.value === counter) {\n dendroTableData.value = nextDendroTableData;\n }\n store.value.loading.dendroTableData = false;\n }\n }, { immediate: true });\n }\n\n provide(storeKey, store);\n return store;\n}\n\nexport function useStore() {\n return notEmpty(inject<ComputedStore>(storeKey), 'Empty store');\n}\n"],"names":["getInitialOptionsState","chartType","optionsState","defaultState","copyJSON","getInitialStateByType","optionsStateCopy","createReactiveState","initialData","reactive","getInitialTemplate","getInitialStatisticsState","getInitialLayersSettings","getInitialAxesSettings","tabKeys","res","formKey","factoryStore","reactiveState","dataStore","inputGuide","chartData","dendroTableData","uniqueValuesData","facetValuesData","filterSuggestionsData","filterLabelsInfo","readonlyInputs","defaultPalette","computed","calculateDiscreteGroups","getUsedAesInMapping","getControllerByType","DEFAULT_CATEGORICAL_PALETTE","DEFAULT_CONTINUOUS_PALETTE","provideStore","initialState","dataStoreRef","defaultOptionsRef","fixedOptionsRef","dataColumnPredicate","metaColumnPredicate","controller","ref","store","watch","defaultOptionsCounter","ds","defaultOptions","counter","loadedDefaultOptions","loadDefaultSources","usedDefaultOptions","isOptionsStateNeedsToBeUpdated","createUpdatedWithNewDefaultsOptionsState","inputGuideCounter","fixedOptions","ignoredIds","item","s","nextInputGuide","toRaw","chartDataCounter","ig","nextChartData","loadDataForPlot","uniqueValues","filterSuggestions","getUniqueValuesFromReadyChartData","getFacetValuesFromReadyChartData","updateDataBindAes","loadFilterLabelsForTitle","dendroDataCounter","ready","fixed","state","addFixedOptionsToState","nextDendroTableData","provide","storeKey","useStore","notEmpty","inject"],"mappings":";;;;;;;;;;;;;;;AAqDA,SAASA,GAAuBC,GAAsBC,GAAsC;AAC1F,QAAMC,IAAeC,EAASC,EAAsBJ,CAAS,CAAC;AAC9D,OAAIC,KAAA,gBAAAA,EAAc,UAASD;AACzB,WAAOE;AAET,QAAMG,IAAmBF,EAASF,CAAY;AAE9C,SAAO;AAAA,IACL,GAAGC;AAAA,IACH,GAAGG;AAAA,IACH,YAAY;AAAA,MACV,GAAGH,EAAa;AAAA,MAChB,GAAGG,EAAiB;AAAA,IAAA;AAAA,EACtB;AAEJ;AAEO,SAASC,GACdC,GACAP,GACyB;AACzB,SAAOQ,EAAS;AAAA,IACd,WAAAR;AAAA;AAAA,IAEA,cAAcD,GAAuBC,GAAWO,EAAY,YAAY;AAAA;AAAA;AAAA,IAExE,oBAAoBA,EAAY,qBAAqBJ,EAASI,EAAY,sBAAsB,CAAA,CAAE,IAA0C;AAAA;AAAA,IAG5I,UAAUE,EAAmBF,EAAY,UAAUP,CAAS;AAAA,IAC5D,oBAAoBU,EAA0BV,GAAWO,EAAY,kBAAkB;AAAA,IACvF,gBAAgBI,EAAyBJ,EAAY,cAAc;AAAA,IACnE,cAAcK,EAAuBZ,GAAWO,EAAY,YAAY;AAAA;AAAA,IAExE,aAAaJ,EAASI,EAAY,eAAe,CAAA,CAAE;AAAA,IACnD,YAAYA,EAAY,aAAa;AAAA,IACrC,oBAAoB;AAAA,IACpB,YAAYA,EAAY,eAAe,SAAY,gBAAgBA,EAAY;AAAA,IAC/E,iBAAiBM,GAAA,EAAU,OAAO,CAACC,GAAKC,OACtCD,EAAIC,CAAO,IAAI,CAAA,GACRD,IACN,CAAA,CAA8C;AAAA,IACjD,mBAAmB;AAAA,IACnB,sBAAsB;AAAA,IACtB,iBAAiB;AAAA,IACjB,qBAAqBP,EAAY,uBAAuB;AAAA,EAAA,CACzD;AACH;AAgCO,SAASS,GACdC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACO;AACP,SAAO;AAAA,IACL,UAAUV;AAAA,IACV,SAAST,EAAS;AAAA,MAChB,mBAAmB;AAAA,MACnB,eAAe;AAAA,MACf,iBAAiB;AAAA,MACjB,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,UAAU;AAAA,MACV,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,IAAA,CAClB;AAAA,IACD,mBAAmB;AAAA,MACjB,eAAeoB;AAAA,QAAS,MAAMC;AAAA,UAC5BZ,EAAc;AAAA,UACdK,EAAiB;AAAA,UACjB;AAAA,QAAA;AAAA,MACF;AAAA,MAEA,iBAAiBM;AAAA,QAAS,MAAMC;AAAA,UAC9BZ,EAAc;AAAA,UACdK,EAAiB;AAAA,UACjB;AAAA,QAAA;AAAA,MACF;AAAA,MAEA,kBAAkBM;AAAA,QAAmD,MACnEE;AAAA,UACEb,EAAc;AAAA,UACdA,EAAc;AAAA,UACdA,EAAc;AAAA,UACdA,EAAc;AAAA,UACdA,EAAc;AAAA,UACdE,EAAW;AAAA,QAAA;AAAA,MACb;AAAA,MAEF,iBAAAE;AAAA,IAAA;AAAA,IAEF,YAAYU,EAAoBd,EAAc,SAAS;AAAA,IACvD,kBAAkBC;AAAA,IAClB,YAAAC;AAAA,IACA,WAAAC;AAAA,IACA,kBAAAE;AAAA,IACA,iBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,gBAAgB;AAAA,MACd,aAAa,OAAOC,KAAmB,YAAYA,EAAe,cAC9DA,EAAe,cACf,OAAOA,KAAmB,WAAWA,IAAuCK;AAAA,MAChF,YAAY,OAAOL,KAAmB,YAAYA,EAAe,aAC7DA,EAAe,aACf,OAAOA,KAAmB,WAAWA,IAAsCM;AAAA,IAAA;AAAA,EACjF;AAEJ;AAIO,SAASC,GACdC,GACAC,GACApC,GACAqC,GACAC,GACAC,GACAC,GACAd,GACAC,GACA;AACA,QAAMV,IAAgBX,GAAoB6B,GAAcnC,CAAS,GAC3DyC,IAAaV,EAAoBd,EAAc,SAAS,GAExDE,IAAauB,EAA4BX,EAAoBd,EAAc,SAAS,EAAE,mBAAmBA,EAAc,YAAY,CAAC,GACpIG,IAAYsB,EAAgC,IAAI,GAEhDpB,IAAmBoB,EAA6B,EAAE,GAClDnB,IAAkBmB,EAA6B,EAAE,GACjDlB,IAAwBkB,EAAkC,EAAE,GAC5DjB,IAAmBiB,EAAiC,EAAE,GAEtDrB,IAAkBqB,EAA0E,IAAI,GAGhGC,IAAQf,EAAS,MAAMZ;AAAA,IAC3BC;AAAA,IACAmB;AAAA,IACAjB;AAAA,IACAC;AAAA,IACAC;AAAA,IACAC;AAAA,IACAC;AAAA,IACAC;AAAA,IACAC;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA,CACD;AAED,EAAAiB,EAAM,MAAMR,EAAa,OAAO,MAAM;AACpC,IAAAX,EAAiB,QAAQ,CAAA,GACzBH,EAAiB,QAAQ,CAAA,GACzBC,EAAgB,QAAQ,CAAA,GACxBC,EAAsB,QAAQ,CAAA;AAAA,EAChC,CAAC;AAED,QAAMqB,IAAwBH,EAAI,CAAC;AACnC,EAAAE,EAAM;AAAA,IACJ,MAAMR,EAAa;AAAA,IACnB,MAAMC,EAAkB;AAAA,EAAA,GACvB,OAAO,CAACS,GAAIC,CAAc,MAAM;AACjC,QAAI,CAACA,MAAkBA,KAAA,gBAAAA,EAAgB,YAAW,KAAK,CAACD;AACtD;AAEF,IAAAD,EAAsB;AACtB,UAAMG,IAAUH,EAAsB;AACtC,IAAAF,EAAM,MAAM,QAAQ,WAAW,IAC3B1B,EAAc,uBAAuB,SACvC0B,EAAM,MAAM,QAAQ,oBAAoB;AAE1C,UAAMM,IAAuB,MAAMC,EAAmBJ,GAAIC,GAAgB9B,EAAc,kBAAkB;AAC1G,QAAI4B,EAAsB,UAAUG;AAClC;AAEF,UAAM,EAAE,oBAAAG,GAAoB,cAAAlD,EAAA,IAAiBgB;AAE7C,QAAI,CADqBmC,GAA+BnD,GAAckD,GAAoBF,CAAoB,GACvF;AACrB,MAAAN,EAAM,MAAM,QAAQ,WAAW;AAC/B;AAAA,IACF;AACA,IAAAA,EAAM,MAAM,QAAQ,gBAAgB,IACpC1B,EAAc,aAAa,aAAaoC,GAAyCpD,GAAckD,GAAoBF,CAAoB,GACvIhC,EAAc,qBAAqBgC;AAAA,EACrC,GAAG,EAAE,WAAW,IAAM;AAGtB,QAAMK,IAAoBZ,EAAI,CAAC;AAC/B,EAAAE,EAAM;AAAA,IACJ,MAAM3B,EAAc;AAAA,IACpB,MAAMmB,EAAa;AAAA,IACnB,MAAME,EAAgB;AAAA,EAAA,GACrB,OAAO,CAACrC,GAAc6C,GAAIS,CAAY,MAAM;AAC7C,QAAIlB,EAAkB,UAAU,QAAQD,EAAa,UAAU;AAC7D;AAEF,IAAAkB,EAAkB;AAClB,UAAMN,IAAUM,EAAkB;AAClC,IAAAX,EAAM,MAAM,QAAQ,aAAa;AACjC,UAAMa,IAAaV,KAAMS,IAAe,OAAO,OAAO,MAAML,EAAmBJ,GAAIS,GAAc,MAAM,EAAK,CAAC,EAAE,QAAQ,CAACE,MAASA,EAAK,IAAI,CAACC,MAAMA,EAAE,cAAc,CAAC,IAAI,CAAA,GAGhKC,IAAiBb,IAAK,MAAML,EAAW,iBAAiBmB,EAAMd,CAAE,GAAG7C,GAAcuD,GAAYjB,GAAqBC,CAAmB,IAAIC,EAAW,mBAAmBxC,CAAY;AAGzL,IAAI+C,MAAYM,EAAkB,UAChCnC,EAAW,QAAQwC,GAEnBhB,EAAM,MAAM,QAAQ,WAAW,IAC/BA,EAAM,MAAM,QAAQ,aAAa,IAC7BA,EAAM,MAAM,QAAQ,sBACtBA,EAAM,MAAM,QAAQ,oBAAoB;AAAA,EAG9C,GAAG,EAAE,WAAW,IAAM,MAAM,IAAM;AAGlC,QAAMkB,IAAmBnB,EAAI,CAAC;AAwC9B,MAvCAE,EAAM,MAAMzB,EAAW,OAAO,OAAO2C,MAAO;AAC1C,IAAAD,EAAiB;AACjB,UAAMb,IAAUa,EAAiB;AAEjC,IAAAlB,EAAM,MAAM,QAAQ,YAAY;AAEhC,UAAMG,IAAKc,EAAMxB,EAAa,KAAK,GAE7B2B,IAAgB,MAAMC,EAAgBF,GAAI7C,GAAe6B,GAAIR,EAAgB,KAAK;AAExF,QAAIyB,KAAiBjB,GAAI;AACvB,YAAM,EAAE,cAAAmB,GAAc,mBAAAC,EAAA,IAAsB,MAAMC;AAAA,QAChDJ;AAAA,QAAeD;AAAA,QAAI7C,EAAc,aAAa;AAAA,QAAYwB;AAAA,QAAYK;AAAA,QAAIc,EAAMpC,EAAsB,KAAK;AAAA,MAAA;AAE7G,MAAAF,EAAiB,QAAQ2C,GACzB1C,EAAgB,QAAQ6C;AAAA,QACtBL;AAAA,QACA9C,EAAc,aAAa;AAAA,MAAA,GAE7BO,EAAsB,QAAQ0C,GAC9BG,EAAkBpD,EAAc,cAAcA,EAAc,aAAaK,EAAiB,KAAK;AAAA,IACjG;AACE,MAAAC,EAAgB,QAAQ,CAAA;AAE1B,IAAAE,EAAiB,QAAQqB,IACrB,MAAMwB,GAAyBrD,EAAc,aAAa,YAAY6C,GAAIrB,GAAYK,CAAE,IACxF,CAAA,GAGAE,MAAYa,EAAiB,UAC/BzC,EAAU,QAAQ2C,GACdD,EAAG,UACLnB,EAAM,MAAM,QAAQ,gBAAgB,KAEtCA,EAAM,MAAM,QAAQ,YAAY;AAAA,EAEpC,GAAG,EAAE,WAAW,IAAM,MAAM,IAAM,GAG9B1B,EAAc,cAAc,UAAU;AACxC,UAAMsD,IAAoB7B,EAAI,CAAC;AAC/B,IAAAE,EAAM;AAAA,MACJ,MAAM3B,EAAc;AAAA,MACpB,MAAMmB,EAAa;AAAA,MACnB,MAAMjB,EAAW,MAAM;AAAA,MACvB,MAAMmB,EAAgB;AAAA,IAAA,GACrB,OAAO,CAACrC,GAAciB,GAAWsD,GAAOC,CAAK,MAAM;AACpD,UAAID,KAAStD,GAAW;AACtB,QAAAqD,EAAkB;AAClB,cAAMvB,IAAUuB,EAAkB;AAClC,QAAA5B,EAAM,MAAM,QAAQ,kBAAkB;AACtC,cAAM+B,IAAS,MAAMC,EAAuB1E,GAAciB,GAAWuD,CAAK,GACpEG,IAAsB,MAAOnC,EAAgD,gBAAgBvB,GAAWwD,CAAK;AAEnH,QAAIH,EAAkB,UAAUvB,MAC9B3B,EAAgB,QAAQuD,IAE1BjC,EAAM,MAAM,QAAQ,kBAAkB;AAAA,MACxC;AAAA,IACF,GAAG,EAAE,WAAW,IAAM;AAAA,EACxB;AAEA,SAAAkC,EAAQC,GAAUnC,CAAK,GAChBA;AACT;AAEO,SAASoC,KAAW;AACzB,SAAOC,EAASC,EAAsBH,CAAQ,GAAG,aAAa;AAChE;"}
|
package/dist/types.d.ts
CHANGED
|
@@ -137,6 +137,8 @@ export type UniqueValuesData = {
|
|
|
137
137
|
label: string;
|
|
138
138
|
}[];
|
|
139
139
|
labels: Record<string, string>;
|
|
140
|
+
/** True when there are more unique values than axesSettings.other.maxGroupCount; list/options are partial */
|
|
141
|
+
overflow: boolean;
|
|
140
142
|
};
|
|
141
143
|
export type UniqueValuesBySourceMap = Record<string, UniqueValuesData | null>;
|
|
142
144
|
export type FilterSuggestionsBySourceMap = Record<string, {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EAAE,WAAW,EAC3B,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,2BAA2B,EAC3B,qBAAqB,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACrG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,QAAQ,EAAE,cAAc,CAAC;IAEzB;+DAC2D;IAC3D,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC7B,sHAAsH;IACtH,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,sIAAsI;IACtI,kBAAkB,CAAC,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACxD,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;IAClD,qEAAqE;IACrE,YAAY,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACtC,mDAAmD;IACnD,cAAc,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAC7C,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IAC1D,8FAA8F;IAC9F,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,SAAS,IAAI;IACvD,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACpC,cAAc,EAAE,QAAQ,GAAG,WAAW,CAAC;IACvC,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9D,UAAU,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACzC,mBAAmB,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3C,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG;IACpE,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IACzD,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;CAC1D,CAAC;AACF,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,SAAS;IACvD,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC;IACb,oIAAoI;IACpI,cAAc,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;IACnD,cAAc,CAAC,EAAE,OAAO,GAAG;QAAE,WAAW,CAAC,EAAE,kBAAkB,CAAC;QAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;KAAE,CAAC;IAChG,YAAY,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACvD;;yIAEqI;IACrI,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC;IACrD,mDAAmD;IACnD,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC;IACrD,gGAAgG;IAChG,cAAc,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACtC;AAED,MAAM,MAAM,eAAe,GACzB,oBAAoB,CAAC,UAAU,CAAC,GAChC,oBAAoB,CAAC,aAAa,CAAC,GACnC,oBAAoB,CAAC,kBAAkB,CAAC,GACxC,oBAAoB,CAAC,SAAS,CAAC,GAC/B,oBAAoB,CAAC,QAAQ,CAAC,GAC9B,oBAAoB,CAAC,WAAW,CAAC,GACjC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAEjC,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,SAAS,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAEhF,MAAM,MAAM,cAAc,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAAE,CAAC;AAC/F,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,EAAE,UAAU,CAAC;IACzB,kBAAkB,EAAE,uBAAuB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC9D,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,SAAS,CAAC;IACxB,kBAAkB,EAAE,eAAe,CAAC;IACpC,WAAW,EAAE,qBAAqB,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,iBAAiB,EAAE,IAAI,GAAG,cAAc,CAAC;IACzC,oBAAoB,EAAE,IAAI,GAAG,MAAM,CAAC;IACpC,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,KAAK,GACL,YAAY,GACZ,cAAc,GACd,QAAQ,GACR,KAAK,GACL,YAAY,GACZ,aAAa,GACb,MAAM,GACN,UAAU,GACV,MAAM,GACN,MAAM,CAAC;AACX,MAAM,MAAM,sBAAsB,GAChC,aAAa,GACX,gBAAgB,GAChB,kBAAkB,GAClB,mBAAmB,GACnB,qBAAqB,GACrB,mBAAmB,GACnB,iBAAiB,GACjB,eAAe,GACf,UAAU,GACV,cAAc,CAAC;AAEnB,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,CAAC;AAChD,MAAM,MAAM,yBAAyB,GAAG,gBAAgB,GAAG,YAAY,CAAC;AACxE,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,kBAAkB,CAAC;AAC1D,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;AACnC,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAC9C,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AACpC,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC;AACpD,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;AACnC,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAE9C,MAAM,MAAM,cAAc,GACxB,sBAAsB,GACpB,yBAAyB,GACzB,oBAAoB,GACpB,mBAAmB,GACnB,sBAAsB,GACtB,mBAAmB,CAAC;AACxB,MAAM,MAAM,KAAK,GAAG,aAAa,GAAG,gBAAgB,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,WAAW,CAAC;AAEjH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC5E,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACzD,MAAM,MAAM,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;AACrC,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;AACzE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculateDiscreteGroups.d.ts","sourceRoot":"","sources":["../../src/utils/calculateDiscreteGroups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAExD,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,KAAK,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"calculateDiscreteGroups.d.ts","sourceRoot":"","sources":["../../src/utils/calculateDiscreteGroups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAExD,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,KAAK,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,MAAM,EAAE,CAUrK"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
function i(e, u,
|
|
2
|
-
var
|
|
3
|
-
if (((
|
|
1
|
+
function i(e, u, c) {
|
|
2
|
+
var n, o, r, s, l;
|
|
3
|
+
if (((o = (n = e.components) == null ? void 0 : n.y) == null ? void 0 : o.selectorStates.length) === 0)
|
|
4
4
|
return [];
|
|
5
|
-
if (!((
|
|
5
|
+
if (!((s = (r = e.components) == null ? void 0 : r[c]) != null && s.selectorStates.length))
|
|
6
6
|
return ["single common group"];
|
|
7
|
-
const g = (
|
|
8
|
-
return (
|
|
7
|
+
const g = (l = e.components) == null ? void 0 : l[c].selectorStates[0].selectedSource, t = u[g];
|
|
8
|
+
return (t == null ? void 0 : t.list) ?? [];
|
|
9
9
|
}
|
|
10
10
|
export {
|
|
11
11
|
i as calculateDiscreteGroups
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculateDiscreteGroups.js","sources":["../../src/utils/calculateDiscreteGroups.ts"],"sourcesContent":["import type { InputState } from '@milaboratories/pf-plots';\nimport type { UniqueValuesBySourceMap } from '../types';\n\nexport function calculateDiscreteGroups(optionsState: InputState, uniqueValuesInfo: UniqueValuesBySourceMap, field: 'primaryGrouping' | 'secondaryGrouping'): string[] {\n if (optionsState.components?.y?.selectorStates.length === 0) {\n return [];\n }\n if (!optionsState.components?.[field]?.selectorStates.length) {\n return ['single common group'];\n }\n const idGroupingStr: string = optionsState.components?.[field].selectorStates[0].selectedSource;\n
|
|
1
|
+
{"version":3,"file":"calculateDiscreteGroups.js","sources":["../../src/utils/calculateDiscreteGroups.ts"],"sourcesContent":["import type { InputState } from '@milaboratories/pf-plots';\nimport type { UniqueValuesBySourceMap } from '../types';\n\nexport function calculateDiscreteGroups(optionsState: InputState, uniqueValuesInfo: UniqueValuesBySourceMap, field: 'primaryGrouping' | 'secondaryGrouping'): string[] {\n if (optionsState.components?.y?.selectorStates.length === 0) {\n return [];\n }\n if (!optionsState.components?.[field]?.selectorStates.length) {\n return ['single common group'];\n }\n const idGroupingStr: string = optionsState.components?.[field].selectorStates[0].selectedSource;\n const entry = uniqueValuesInfo[idGroupingStr];\n return entry?.list ?? [];\n}\n"],"names":["calculateDiscreteGroups","optionsState","uniqueValuesInfo","field","_a","_b","_c","_d","_e","idGroupingStr","entry"],"mappings":"AAGO,SAASA,EAAwBC,GAA0BC,GAA2CC,GAA0D;AAAhK,MAAAC,GAAAC,GAAAC,GAAAC,GAAAC;AACL,QAAIH,KAAAD,IAAAH,EAAa,eAAb,gBAAAG,EAAyB,MAAzB,gBAAAC,EAA4B,eAAe,YAAW;AACxD,WAAO,CAAA;AAET,MAAI,GAACE,KAAAD,IAAAL,EAAa,eAAb,gBAAAK,EAA0BH,OAA1B,QAAAI,EAAkC,eAAe;AACpD,WAAO,CAAC,qBAAqB;AAE/B,QAAME,KAAwBD,IAAAP,EAAa,eAAb,gBAAAO,EAA0BL,GAAO,eAAe,GAAG,gBAC3EO,IAAQR,EAAiBO,CAAa;AAC5C,UAAOC,KAAA,gBAAAA,EAAO,SAAQ,CAAA;AACxB;"}
|
|
@@ -70,6 +70,7 @@ export declare function composeBubbleSettings(settings: BubbleSettings, reactive
|
|
|
70
70
|
type?: "left" | "bottom" | "left-bottom" | "full" | "empty" | undefined;
|
|
71
71
|
} | undefined;
|
|
72
72
|
facetSettings?: {
|
|
73
|
+
order?: string[] | undefined;
|
|
73
74
|
nRows?: number | undefined;
|
|
74
75
|
nCols?: number | undefined;
|
|
75
76
|
} | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeBubbleSettings.d.ts","sourceRoot":"","sources":["../../../src/utils/createChartSettingsForRender/composeBubbleSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAK/D,OAAO,KAAK,EAAe,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAM/E,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EACxB,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe;;;;
|
|
1
|
+
{"version":3,"file":"composeBubbleSettings.d.ts","sourceRoot":"","sources":["../../../src/utils/createChartSettingsForRender/composeBubbleSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAK/D,OAAO,KAAK,EAAe,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAM/E,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EACxB,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe;;;;YA6Do5V,CAAC;gBAAuC,CAAC;;;;;cAAgI,CAAC;aAAmC,CAAC;mBAAyC,CAAC;sBAA4C,CAAC;;;;;cAA4G,CAAC;aAAmC,CAAC;mBAAyC,CAAC;sBAA4C,CAAC;;;;;cAAyG,CAAC;aAAmC,CAAC;mBAAyC,CAAC;sBAA4C,CAAC;;;;;cAAyG,CAAC;aAAmC,CAAC;mBAAyC,CAAC;sBAA4C,CAAC;;;aAAuD,CAAC;cAAoC,CAAC;gBAAsC,CAAC;;;kBAAuE,CAAC;iBAAyC,CAAC;iBAAuC,CAAC;uBAA6C,CAAC;sBAA4C,CAAC;;;YAAoE,CAAC;gBAAuC,CAAC;;;YAAqG,CAAC;eAAsC,CAAC;;;kBAA6E,CAAC;iBAAuC,CAAC;uBAA6C,CAAC;0BAAgD,CAAC;;;;YAA4F,CAAC;;;aAA0H,CAAC;aAAqC,CAAC;aAAmC,CAAC;;;aAAoE,CAAC;iBAAuC,CAAC;gBAAuC,CAAC;eAA+C,CAAC;iBAA+C,CAAC;sBAA6C,CAAC;uBAA8C,CAAC;;;aAAyE,CAAC;iBAAuC,CAAC;gBAAuC,CAAC;eAA+C,CAAC;iBAA+C,CAAC;sBAA6C,CAAC;uBAA8C,CAAC;;;;;cAA2H,CAAC;aAAmC,CAAC;mBAAyC,CAAC;sBAA4C,CAAC;;;;;cAAyH,CAAC;aAAmC,CAAC;mBAAyC,CAAC;sBAA4C,CAAC;;;;;cAAyH,CAAC;aAAmC,CAAC;mBAAyC,CAAC;sBAA4C,CAAC;;;;;;kBAAuO,CAAC;iBAAyC,CAAC;;;SAAwE,CAAC;SAAgC,CAAC;cAAqC,CAAC;;;EADlyd"}
|
|
@@ -1,12 +1,30 @@
|
|
|
1
1
|
import { DemoDataStore, InputGuide, InputState, PlotDataAndSettings } from '@milaboratories/pf-plots';
|
|
2
2
|
import { DefaultPalettes, GraphMakerProps, ReactiveState, UniqueValuesBySourceMap } from '../../types';
|
|
3
3
|
import { DataByColumns, Settings } from '@milaboratories/miplots4';
|
|
4
|
+
export type ChartTruncationWarning = {
|
|
5
|
+
groups: boolean;
|
|
6
|
+
facets: boolean;
|
|
7
|
+
/** Visible (shown) count for groups */
|
|
8
|
+
groupsVisible?: number;
|
|
9
|
+
/** Total count for groups (use 1000+ in UI when >= 1000) */
|
|
10
|
+
groupsTotal?: number;
|
|
11
|
+
/** Visible (shown) count for facets */
|
|
12
|
+
facetsVisible?: number;
|
|
13
|
+
/** Total count for facets (use 1000+ in UI when >= 1000) */
|
|
14
|
+
facetsTotal?: number;
|
|
15
|
+
};
|
|
16
|
+
export declare function formatTruncationTotal(n: number): string;
|
|
17
|
+
/** Build facet order for chart settings from saved facet values, limited by maxFacetsCount. */
|
|
18
|
+
export declare function getFacetOrderForChartSettings(facetBy: {
|
|
19
|
+
value: string;
|
|
20
|
+
}[], facetValuesData: UniqueValuesBySourceMap, maxFacetsCount: number): string[] | undefined;
|
|
4
21
|
export declare function loadDataForPlot(inputGuide: InputGuide<InputState>, reactiveState: ReactiveState, dataStore: DemoDataStore | null, fixedOptions?: GraphMakerProps['fixedOptions']): Promise<PlotDataAndSettings | null>;
|
|
5
22
|
export declare function composeChartSettings(chartData: PlotDataAndSettings | null, inputGuide: InputGuide<InputState>, labelsInfo: UniqueValuesBySourceMap, filterLabelsInfo: Record<string, Record<string, {
|
|
6
23
|
value: unknown;
|
|
7
24
|
label: string;
|
|
8
|
-
}>>, reactiveState: ReactiveState, defaultPalette: DefaultPalettes): null | {
|
|
25
|
+
}>>, reactiveState: ReactiveState, defaultPalette: DefaultPalettes, facetValuesData?: UniqueValuesBySourceMap): null | {
|
|
9
26
|
settings: Settings;
|
|
10
27
|
data: DataByColumns;
|
|
28
|
+
truncationWarning: ChartTruncationWarning;
|
|
11
29
|
};
|
|
12
30
|
//# sourceMappingURL=composeChartSettings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeChartSettings.d.ts","sourceRoot":"","sources":["../../../src/utils/createChartSettingsForRender/composeChartSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,UAAU,EACV,UAAU,EACV,mBAAmB,EAEpB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,aAAa,EAEb,uBAAuB,EACxB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"composeChartSettings.d.ts","sourceRoot":"","sources":["../../../src/utils/createChartSettingsForRender/composeChartSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,UAAU,EACV,UAAU,EACV,mBAAmB,EAEpB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,aAAa,EAEb,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAIrB,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,+FAA+F;AAC/F,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EAC5B,eAAe,EAAE,uBAAuB,EACxC,cAAc,EAAE,MAAM,GACrB,MAAM,EAAE,GAAG,SAAS,CAUtB;AAMD,OAAO,KAAK,EAEV,aAAa,EAOb,QAAQ,EACT,MAAM,0BAA0B,CAAC;AAgElC,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,EAClC,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,aAAa,GAAG,IAAI,EAC/B,YAAY,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC,uCAqB/C;AACD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,mBAAmB,GAAG,IAAI,EACrC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,EAClC,UAAU,EAAE,uBAAuB,EACnC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,EACnF,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,eAAe,EAC/B,eAAe,GAAE,uBAA4B,GAC5C,IAAI,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,iBAAiB,EAAE,sBAAsB,CAAA;CAAE,CAgE/F"}
|
|
@@ -1,71 +1,105 @@
|
|
|
1
|
-
import { getControllerByType as
|
|
2
|
-
import { addFixedOptionsToState as
|
|
3
|
-
import { DEFAULT_HEIGHT_SMALL as
|
|
1
|
+
import { getControllerByType as b } from "@milaboratories/pf-plots";
|
|
2
|
+
import { addFixedOptionsToState as F } from "../addFixedOptionsToState.js";
|
|
3
|
+
import { DEFAULT_HEIGHT_SMALL as w, DEFAULT_HEIGHT as L, DEFAULT_WIDTH_SMALL as A, DEFAULT_WIDTH as C } from "../../constantsCommon.js";
|
|
4
|
+
import { getFacetKeysFromValueLists as y } from "@milaboratories/miplots4";
|
|
4
5
|
import { composeDiscreteSettings as H } from "./composeDiscreteSettings.js";
|
|
5
|
-
import { composeScatterplotSettings as
|
|
6
|
+
import { composeScatterplotSettings as S } from "./composeScatterplotSettings.js";
|
|
6
7
|
import { composeScatterplotUmapSettings as D } from "./composeScatterplotUmapSettings.js";
|
|
7
8
|
import { composeHeatmapSettings as E } from "./composeHeatmapSettings.js";
|
|
8
|
-
import { composeDendroSettings as
|
|
9
|
-
import { composeHistogramSettings as
|
|
10
|
-
import { composeBubbleSettings as
|
|
11
|
-
|
|
9
|
+
import { composeDendroSettings as _ } from "./composeDendroSettings.js";
|
|
10
|
+
import { composeHistogramSettings as U } from "./composeHistogramSettings.js";
|
|
11
|
+
import { composeBubbleSettings as B } from "./composeBubbleSettings.js";
|
|
12
|
+
const W = 1e3;
|
|
13
|
+
function Q(s) {
|
|
14
|
+
return s >= W ? "1000+" : String(s);
|
|
15
|
+
}
|
|
16
|
+
function M(s, n, r) {
|
|
17
|
+
if (!(s != null && s.length) || r <= 0)
|
|
18
|
+
return;
|
|
19
|
+
const l = s.map((e) => {
|
|
20
|
+
var m;
|
|
21
|
+
return ((m = n[e.value]) == null ? void 0 : m.list) ?? [];
|
|
22
|
+
});
|
|
23
|
+
return l.some((e) => !e.length) ? void 0 : y(l).slice(0, r);
|
|
24
|
+
}
|
|
25
|
+
function k(s, n = 0) {
|
|
12
26
|
return {
|
|
13
|
-
width: (n > 0 ?
|
|
14
|
-
height: (n > 0 ?
|
|
27
|
+
width: (n > 0 ? A : C) * (s / 100),
|
|
28
|
+
height: (n > 0 ? w : L) * (s / 100)
|
|
15
29
|
};
|
|
16
30
|
}
|
|
17
|
-
function
|
|
18
|
-
var
|
|
31
|
+
function x(s, n, r, l) {
|
|
32
|
+
var t, e;
|
|
19
33
|
if (s !== "scatterplot" && s !== "scatterplot-umap" && s !== "discrete" && s !== "heatmap" && s !== "histogram" && s !== "bubble")
|
|
20
34
|
return { name: "", show: !1 };
|
|
21
|
-
if (
|
|
35
|
+
if (l.title.mode === "hidden")
|
|
22
36
|
return { name: "", show: !1 };
|
|
23
|
-
if (
|
|
24
|
-
return { name:
|
|
25
|
-
if (
|
|
26
|
-
const
|
|
37
|
+
if (l.title.mode === "custom")
|
|
38
|
+
return { name: l.title.value, show: !0, position: l.title.position };
|
|
39
|
+
if (l.title.mode === "auto") {
|
|
40
|
+
const m = [], o = ((t = n.components) == null ? void 0 : t.tabBy.selectorStates) ?? [], f = (((e = n.components) == null ? void 0 : e.filters.selectorStates) ?? []).filter((u) => !o.some((i) => i.selectedSource === u.selectedSource));
|
|
27
41
|
return [
|
|
28
|
-
...
|
|
29
|
-
...
|
|
30
|
-
].forEach(({ type:
|
|
31
|
-
(!
|
|
32
|
-
var
|
|
33
|
-
return ((g = (
|
|
42
|
+
...o,
|
|
43
|
+
...f
|
|
44
|
+
].forEach(({ type: u, selectedSource: i, selectedFilterValues: a }) => {
|
|
45
|
+
(!u || u === "equals") && a && r[i] && m.push(...a.map((h) => {
|
|
46
|
+
var c, g;
|
|
47
|
+
return ((g = (c = r[i]) == null ? void 0 : c[h]) == null ? void 0 : g.label) ?? String(h);
|
|
34
48
|
}));
|
|
35
|
-
}), { name:
|
|
49
|
+
}), { name: m.join(", "), show: !0, position: l.title.position };
|
|
36
50
|
}
|
|
37
51
|
return { name: "", show: !1 };
|
|
38
52
|
}
|
|
39
|
-
async function
|
|
53
|
+
async function R(s, n, r, l) {
|
|
40
54
|
if (!s.ready || r === null)
|
|
41
55
|
return null;
|
|
42
56
|
try {
|
|
43
|
-
const
|
|
57
|
+
const t = b(n.chartType), e = await F(
|
|
44
58
|
n.optionsState,
|
|
45
59
|
r,
|
|
46
|
-
|
|
60
|
+
l
|
|
47
61
|
);
|
|
48
|
-
return
|
|
62
|
+
return t.createDataForPlot(
|
|
49
63
|
r,
|
|
50
|
-
|
|
64
|
+
e
|
|
51
65
|
);
|
|
52
|
-
} catch (
|
|
53
|
-
return console.warn("Cant build chart data"), console.warn(
|
|
66
|
+
} catch (t) {
|
|
67
|
+
return console.warn("Cant build chart data"), console.warn(t.message), null;
|
|
54
68
|
}
|
|
55
69
|
}
|
|
56
|
-
function
|
|
57
|
-
var
|
|
70
|
+
function Z(s, n, r, l, t, e, m = {}) {
|
|
71
|
+
var T, u;
|
|
58
72
|
if (!n.ready || s === null)
|
|
59
73
|
return null;
|
|
60
|
-
let
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
74
|
+
let o = { ...s.settings };
|
|
75
|
+
const f = s.data.byColumns;
|
|
76
|
+
o.title = x(t.chartType, t.optionsState, l, t.axesSettings), o.size = k(t.chartScale, ((T = t.optionsState.components) == null ? void 0 : T.facetBy.selectorStates.length) || 0), o.legend = { show: t.axesSettings.other.showLegend };
|
|
77
|
+
const p = { groups: !1, facets: !1 };
|
|
78
|
+
if (t.chartType === "discrete") {
|
|
79
|
+
const i = H(o, t, r, n, e);
|
|
80
|
+
o = i.settings, p.groups = i.groupsAreTruncated, i.groupsAreTruncated && i.groupsVisible != null && i.groupsTotal != null && (p.groupsVisible = i.groupsVisible, p.groupsTotal = i.groupsTotal);
|
|
81
|
+
}
|
|
82
|
+
if (t.chartType === "scatterplot" && (o = S(o, f, t, n, r, e)), t.chartType === "scatterplot-umap" && (o = D(o, f, t, n, r, e)), t.chartType === "heatmap" && (o = E(o, t, e)), t.chartType === "dendro" && (o = _(o, f, t, n, r)), t.chartType === "histogram" && (o = U(o, t, r, e)), t.chartType === "bubble" && (o = B(o, t, e)), "facetBy" in o && "facetSettings" in o && ((u = o.facetBy) != null && u.length) && o.facetSettings) {
|
|
83
|
+
const i = o.facetBy.map((g) => {
|
|
84
|
+
var d;
|
|
85
|
+
return ((d = m[g.value]) == null ? void 0 : d.list) ?? [];
|
|
86
|
+
}), a = i.every((g) => g.length > 0) ? y(i) : [], h = t.axesSettings.other.maxFacetsCount, c = M(
|
|
87
|
+
o.facetBy,
|
|
88
|
+
m,
|
|
89
|
+
h
|
|
90
|
+
);
|
|
91
|
+
a.length > h && (p.facets = !0, p.facetsVisible = (c == null ? void 0 : c.length) ?? 0, p.facetsTotal = a.length), o.facetSettings = { ...o.facetSettings, order: c };
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
settings: o,
|
|
95
|
+
data: s.data.byColumns,
|
|
96
|
+
truncationWarning: p
|
|
65
97
|
};
|
|
66
98
|
}
|
|
67
99
|
export {
|
|
68
|
-
|
|
69
|
-
|
|
100
|
+
Z as composeChartSettings,
|
|
101
|
+
Q as formatTruncationTotal,
|
|
102
|
+
M as getFacetOrderForChartSettings,
|
|
103
|
+
R as loadDataForPlot
|
|
70
104
|
};
|
|
71
105
|
//# sourceMappingURL=composeChartSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeChartSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeChartSettings.ts"],"sourcesContent":["import type {\n ChartType,\n DemoDataStore,\n InputGuide,\n InputState,\n PlotDataAndSettings,\n SelectorStateFilter,\n} from '@milaboratories/pf-plots';\nimport {\n getControllerByType,\n} from '@milaboratories/pf-plots';\nimport type {\n DefaultPalettes,\n GraphMakerProps,\n ReactiveState,\n TitlePosition,\n UniqueValuesBySourceMap,\n} from '../../types';\nimport { addFixedOptionsToState } from '../addFixedOptionsToState';\nimport type {\n AxesState } from '../../constantsCommon';\nimport { DEFAULT_HEIGHT, DEFAULT_HEIGHT_SMALL, DEFAULT_WIDTH, DEFAULT_WIDTH_SMALL,\n} from '../../constantsCommon';\nimport type {\n BubbleSettings,\n DataByColumns,\n DendroSettings,\n DiscreteSettings,\n HeatmapSettings,\n HistogramSettings,\n ScatterplotSettings,\n ScatterplotUmapSettings,\n Settings,\n} from '@milaboratories/miplots4';\nimport { composeDiscreteSettings } from './composeDiscreteSettings';\nimport { composeScatterplotSettings } from './composeScatterplotSettings';\nimport { composeScatterplotUmapSettings } from './composeScatterplotUmapSettings';\nimport { composeHeatmapSettings } from './composeHeatmapSettings';\nimport { composeDendroSettings } from './composeDendroSettings';\nimport { composeHistogramSettings } from './composeHistogramSettings';\nimport { composeBubbleSettings } from './composeBubbleSettings';\n\nfunction getChartSizes(chartScale: number, facetByLength = 0) {\n return {\n width: (facetByLength > 0 ? DEFAULT_WIDTH_SMALL : DEFAULT_WIDTH) * (chartScale / 100),\n height: (facetByLength > 0 ? DEFAULT_HEIGHT_SMALL : DEFAULT_HEIGHT) * (chartScale / 100),\n };\n}\n\nfunction getChartTitle(\n chartType: ChartType,\n optionsState: InputState,\n filterLabelsInfo: Record<string, Record<string, { value: unknown; label: string }>>,\n axesSettings: AxesState,\n): {\n name: string;\n show: boolean;\n position?: TitlePosition;\n } {\n if (\n chartType !== 'scatterplot'\n && chartType !== 'scatterplot-umap'\n && chartType !== 'discrete'\n && chartType !== 'heatmap'\n && chartType !== 'histogram'\n && chartType !== 'bubble'\n ) {\n return { name: '', show: false };\n }\n if (axesSettings.title.mode === 'hidden') {\n return { name: '', show: false };\n }\n if (axesSettings.title.mode === 'custom') {\n return { name: axesSettings.title.value, show: true, position: axesSettings.title.position };\n }\n if (axesSettings.title.mode === 'auto') {\n const selectedFilters: string[] = [];\n const tabByStates = (optionsState.components?.tabBy.selectorStates ?? []);\n const filterStates = (optionsState.components?.filters.selectorStates ?? []).filter((state) => !tabByStates.some((tabByState) => tabByState.selectedSource === state.selectedSource));\n\n const usedInTitleStates = [\n ...tabByStates,\n ...filterStates,\n ] as SelectorStateFilter[];\n usedInTitleStates.forEach(({ type, selectedSource, selectedFilterValues }) => {\n if ((!type || type === 'equals') && selectedFilterValues && filterLabelsInfo[selectedSource]) {\n selectedFilters.push(...selectedFilterValues\n .map((selectedFilterValue) => filterLabelsInfo[selectedSource]?.[selectedFilterValue]?.label ?? String(selectedFilterValue)));\n }\n });\n const title = selectedFilters.join(', ');\n return { name: title, show: true, position: axesSettings.title.position };\n }\n return { name: '', show: false };\n}\n\nexport async function loadDataForPlot(\n inputGuide: InputGuide<InputState>,\n reactiveState: ReactiveState,\n dataStore: DemoDataStore | null,\n fixedOptions?: GraphMakerProps['fixedOptions'],\n) {\n if (!inputGuide.ready || dataStore === null) {\n return null;\n }\n try {\n const controller = getControllerByType(reactiveState.chartType);\n const optionsStateWithFixed = await addFixedOptionsToState(\n reactiveState.optionsState,\n dataStore,\n fixedOptions,\n );\n return controller.createDataForPlot(\n dataStore,\n optionsStateWithFixed,\n );\n } catch (err) {\n console.warn('Cant build chart data');\n console.warn((err as Error).message);\n return null;\n }\n}\nexport function composeChartSettings(\n chartData: PlotDataAndSettings | null,\n inputGuide: InputGuide<InputState>,\n labelsInfo: UniqueValuesBySourceMap,\n filterLabelsInfo: Record<string, Record<string, { value: unknown; label: string }>>,\n reactiveState: ReactiveState,\n defaultPalette: DefaultPalettes,\n): null | { settings: Settings; data: DataByColumns } {\n if (!inputGuide.ready || chartData === null) {\n return null;\n }\n\n let settings = { ...chartData.settings };\n const dataByColumns = chartData.data.byColumns;\n settings.title = getChartTitle(reactiveState.chartType, reactiveState.optionsState, filterLabelsInfo, reactiveState.axesSettings);\n settings.size = getChartSizes(reactiveState.chartScale, reactiveState.optionsState.components?.facetBy.selectorStates.length || 0);\n settings.legend = { show: reactiveState.axesSettings.other.showLegend };\n if (reactiveState.chartType === 'discrete') {\n settings = composeDiscreteSettings(settings as DiscreteSettings, reactiveState, labelsInfo, inputGuide, defaultPalette);\n }\n if (reactiveState.chartType === 'scatterplot') {\n settings = composeScatterplotSettings(settings as ScatterplotSettings, dataByColumns, reactiveState, inputGuide, labelsInfo, defaultPalette);\n }\n if (reactiveState.chartType === 'scatterplot-umap') {\n settings = composeScatterplotUmapSettings(settings as ScatterplotUmapSettings, dataByColumns, reactiveState, inputGuide, labelsInfo, defaultPalette);\n }\n if (reactiveState.chartType === 'heatmap') {\n settings = composeHeatmapSettings(settings as HeatmapSettings, reactiveState, defaultPalette);\n }\n if (reactiveState.chartType === 'dendro') {\n settings = composeDendroSettings(settings as DendroSettings, dataByColumns, reactiveState, inputGuide, labelsInfo);\n }\n if (reactiveState.chartType === 'histogram') {\n settings = composeHistogramSettings(settings as HistogramSettings, reactiveState, labelsInfo, defaultPalette);\n }\n if (reactiveState.chartType === 'bubble') {\n settings = composeBubbleSettings(settings as BubbleSettings, reactiveState, defaultPalette);\n }\n return {\n settings: settings as Settings,\n data: chartData.data.byColumns,\n };\n}\n"],"names":["getChartSizes","chartScale","facetByLength","DEFAULT_WIDTH_SMALL","DEFAULT_WIDTH","DEFAULT_HEIGHT_SMALL","DEFAULT_HEIGHT","getChartTitle","chartType","optionsState","filterLabelsInfo","axesSettings","selectedFilters","tabByStates","_a","filterStates","_b","state","tabByState","type","selectedSource","selectedFilterValues","selectedFilterValue","loadDataForPlot","inputGuide","reactiveState","dataStore","fixedOptions","controller","getControllerByType","optionsStateWithFixed","addFixedOptionsToState","err","composeChartSettings","chartData","labelsInfo","defaultPalette","settings","dataByColumns","composeDiscreteSettings","composeScatterplotSettings","composeScatterplotUmapSettings","composeHeatmapSettings","composeDendroSettings","composeHistogramSettings","composeBubbleSettings"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"composeChartSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeChartSettings.ts"],"sourcesContent":["import type {\n ChartType,\n DemoDataStore,\n InputGuide,\n InputState,\n PlotDataAndSettings,\n SelectorStateFilter,\n} from '@milaboratories/pf-plots';\nimport {\n getControllerByType,\n} from '@milaboratories/pf-plots';\nimport type {\n DefaultPalettes,\n GraphMakerProps,\n ReactiveState,\n TitlePosition,\n UniqueValuesBySourceMap,\n} from '../../types';\n\nconst DISPLAY_MAX = 1000;\n\nexport type ChartTruncationWarning = {\n groups: boolean;\n facets: boolean;\n /** Visible (shown) count for groups */\n groupsVisible?: number;\n /** Total count for groups (use 1000+ in UI when >= 1000) */\n groupsTotal?: number;\n /** Visible (shown) count for facets */\n facetsVisible?: number;\n /** Total count for facets (use 1000+ in UI when >= 1000) */\n facetsTotal?: number;\n};\n\nexport function formatTruncationTotal(n: number): string {\n return n >= DISPLAY_MAX ? '1000+' : String(n);\n}\n\n/** Build facet order for chart settings from saved facet values, limited by maxFacetsCount. */\nexport function getFacetOrderForChartSettings(\n facetBy: { value: string }[],\n facetValuesData: UniqueValuesBySourceMap,\n maxFacetsCount: number,\n): string[] | undefined {\n if (!facetBy?.length || maxFacetsCount <= 0) {\n return undefined;\n }\n const valueLists = facetBy.map((col) => facetValuesData[col.value]?.list ?? []);\n if (valueLists.some((list) => !list.length)) {\n return undefined;\n }\n const keys = getFacetKeysFromValueLists(valueLists);\n return keys.slice(0, maxFacetsCount);\n}\nimport { addFixedOptionsToState } from '../addFixedOptionsToState';\nimport type {\n AxesState } from '../../constantsCommon';\nimport { DEFAULT_HEIGHT, DEFAULT_HEIGHT_SMALL, DEFAULT_WIDTH, DEFAULT_WIDTH_SMALL,\n} from '../../constantsCommon';\nimport type {\n BubbleSettings,\n DataByColumns,\n DendroSettings,\n DiscreteSettings,\n HeatmapSettings,\n HistogramSettings,\n ScatterplotSettings,\n ScatterplotUmapSettings,\n Settings,\n} from '@milaboratories/miplots4';\nimport { getFacetKeysFromValueLists } from '@milaboratories/miplots4';\nimport { composeDiscreteSettings } from './composeDiscreteSettings';\nimport { composeScatterplotSettings } from './composeScatterplotSettings';\nimport { composeScatterplotUmapSettings } from './composeScatterplotUmapSettings';\nimport { composeHeatmapSettings } from './composeHeatmapSettings';\nimport { composeDendroSettings } from './composeDendroSettings';\nimport { composeHistogramSettings } from './composeHistogramSettings';\nimport { composeBubbleSettings } from './composeBubbleSettings';\n\nfunction getChartSizes(chartScale: number, facetByLength = 0) {\n return {\n width: (facetByLength > 0 ? DEFAULT_WIDTH_SMALL : DEFAULT_WIDTH) * (chartScale / 100),\n height: (facetByLength > 0 ? DEFAULT_HEIGHT_SMALL : DEFAULT_HEIGHT) * (chartScale / 100),\n };\n}\n\nfunction getChartTitle(\n chartType: ChartType,\n optionsState: InputState,\n filterLabelsInfo: Record<string, Record<string, { value: unknown; label: string }>>,\n axesSettings: AxesState,\n): {\n name: string;\n show: boolean;\n position?: TitlePosition;\n } {\n if (\n chartType !== 'scatterplot'\n && chartType !== 'scatterplot-umap'\n && chartType !== 'discrete'\n && chartType !== 'heatmap'\n && chartType !== 'histogram'\n && chartType !== 'bubble'\n ) {\n return { name: '', show: false };\n }\n if (axesSettings.title.mode === 'hidden') {\n return { name: '', show: false };\n }\n if (axesSettings.title.mode === 'custom') {\n return { name: axesSettings.title.value, show: true, position: axesSettings.title.position };\n }\n if (axesSettings.title.mode === 'auto') {\n const selectedFilters: string[] = [];\n const tabByStates = (optionsState.components?.tabBy.selectorStates ?? []);\n const filterStates = (optionsState.components?.filters.selectorStates ?? []).filter((state) => !tabByStates.some((tabByState) => tabByState.selectedSource === state.selectedSource));\n\n const usedInTitleStates = [\n ...tabByStates,\n ...filterStates,\n ] as SelectorStateFilter[];\n usedInTitleStates.forEach(({ type, selectedSource, selectedFilterValues }) => {\n if ((!type || type === 'equals') && selectedFilterValues && filterLabelsInfo[selectedSource]) {\n selectedFilters.push(...selectedFilterValues\n .map((selectedFilterValue) => filterLabelsInfo[selectedSource]?.[selectedFilterValue]?.label ?? String(selectedFilterValue)));\n }\n });\n const title = selectedFilters.join(', ');\n return { name: title, show: true, position: axesSettings.title.position };\n }\n return { name: '', show: false };\n}\n\nexport async function loadDataForPlot(\n inputGuide: InputGuide<InputState>,\n reactiveState: ReactiveState,\n dataStore: DemoDataStore | null,\n fixedOptions?: GraphMakerProps['fixedOptions'],\n) {\n if (!inputGuide.ready || dataStore === null) {\n return null;\n }\n try {\n const controller = getControllerByType(reactiveState.chartType);\n const optionsStateWithFixed = await addFixedOptionsToState(\n reactiveState.optionsState,\n dataStore,\n fixedOptions,\n );\n return controller.createDataForPlot(\n dataStore,\n optionsStateWithFixed,\n );\n } catch (err) {\n console.warn('Cant build chart data');\n console.warn((err as Error).message);\n return null;\n }\n}\nexport function composeChartSettings(\n chartData: PlotDataAndSettings | null,\n inputGuide: InputGuide<InputState>,\n labelsInfo: UniqueValuesBySourceMap,\n filterLabelsInfo: Record<string, Record<string, { value: unknown; label: string }>>,\n reactiveState: ReactiveState,\n defaultPalette: DefaultPalettes,\n facetValuesData: UniqueValuesBySourceMap = {},\n): null | { settings: Settings; data: DataByColumns; truncationWarning: ChartTruncationWarning } {\n if (!inputGuide.ready || chartData === null) {\n return null;\n }\n\n let settings: Settings = { ...chartData.settings } as Settings;\n const dataByColumns = chartData.data.byColumns;\n settings.title = getChartTitle(reactiveState.chartType, reactiveState.optionsState, filterLabelsInfo, reactiveState.axesSettings);\n settings.size = getChartSizes(reactiveState.chartScale, reactiveState.optionsState.components?.facetBy.selectorStates.length || 0);\n settings.legend = { show: reactiveState.axesSettings.other.showLegend };\n\n const truncationWarning: ChartTruncationWarning = { groups: false, facets: false };\n\n if (reactiveState.chartType === 'discrete') {\n const result = composeDiscreteSettings(settings as DiscreteSettings, reactiveState, labelsInfo, inputGuide, defaultPalette);\n settings = result.settings;\n truncationWarning.groups = result.groupsAreTruncated;\n if (result.groupsAreTruncated && result.groupsVisible != null && result.groupsTotal != null) {\n truncationWarning.groupsVisible = result.groupsVisible;\n truncationWarning.groupsTotal = result.groupsTotal;\n }\n }\n if (reactiveState.chartType === 'scatterplot') {\n settings = composeScatterplotSettings(settings as ScatterplotSettings, dataByColumns, reactiveState, inputGuide, labelsInfo, defaultPalette);\n }\n if (reactiveState.chartType === 'scatterplot-umap') {\n settings = composeScatterplotUmapSettings(settings as ScatterplotUmapSettings, dataByColumns, reactiveState, inputGuide, labelsInfo, defaultPalette);\n }\n if (reactiveState.chartType === 'heatmap') {\n settings = composeHeatmapSettings(settings as HeatmapSettings, reactiveState, defaultPalette);\n }\n if (reactiveState.chartType === 'dendro') {\n settings = composeDendroSettings(settings as DendroSettings, dataByColumns, reactiveState, inputGuide, labelsInfo);\n }\n if (reactiveState.chartType === 'histogram') {\n settings = composeHistogramSettings(settings as HistogramSettings, reactiveState, labelsInfo, defaultPalette);\n }\n if (reactiveState.chartType === 'bubble') {\n settings = composeBubbleSettings(settings as BubbleSettings, reactiveState, defaultPalette);\n }\n\n if ('facetBy' in settings && 'facetSettings' in settings && settings.facetBy?.length && settings.facetSettings) {\n const valueLists = settings.facetBy.map((col: { value: string }) => facetValuesData[col.value]?.list ?? []);\n const allFacetKeys = valueLists.every((list: string[]) => list.length > 0)\n ? getFacetKeysFromValueLists(valueLists)\n : [];\n const maxFacetsCount = reactiveState.axesSettings.other.maxFacetsCount;\n const order = getFacetOrderForChartSettings(\n settings.facetBy,\n facetValuesData,\n maxFacetsCount,\n );\n if (allFacetKeys.length > maxFacetsCount) {\n truncationWarning.facets = true;\n truncationWarning.facetsVisible = order?.length ?? 0;\n truncationWarning.facetsTotal = allFacetKeys.length;\n }\n settings.facetSettings = { ...settings.facetSettings, order };\n }\n return {\n settings: settings as Settings,\n data: chartData.data.byColumns,\n truncationWarning,\n };\n}\n"],"names":["DISPLAY_MAX","formatTruncationTotal","n","getFacetOrderForChartSettings","facetBy","facetValuesData","maxFacetsCount","valueLists","col","_a","list","getFacetKeysFromValueLists","getChartSizes","chartScale","facetByLength","DEFAULT_WIDTH_SMALL","DEFAULT_WIDTH","DEFAULT_HEIGHT_SMALL","DEFAULT_HEIGHT","getChartTitle","chartType","optionsState","filterLabelsInfo","axesSettings","selectedFilters","tabByStates","filterStates","_b","state","tabByState","type","selectedSource","selectedFilterValues","selectedFilterValue","loadDataForPlot","inputGuide","reactiveState","dataStore","fixedOptions","controller","getControllerByType","optionsStateWithFixed","addFixedOptionsToState","err","composeChartSettings","chartData","labelsInfo","defaultPalette","settings","dataByColumns","truncationWarning","result","composeDiscreteSettings","composeScatterplotSettings","composeScatterplotUmapSettings","composeHeatmapSettings","composeDendroSettings","composeHistogramSettings","composeBubbleSettings","allFacetKeys","order"],"mappings":"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"}
|
|
@@ -141,6 +141,7 @@ export declare function composeDendroSettings(settings: DendroSettings, dataByCo
|
|
|
141
141
|
position?: "right" | "inside" | "top" | "bottom" | undefined;
|
|
142
142
|
} | undefined;
|
|
143
143
|
facetSettings?: {
|
|
144
|
+
order?: string[] | undefined;
|
|
144
145
|
nRows?: number | undefined;
|
|
145
146
|
nCols?: number | undefined;
|
|
146
147
|
} | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeDendroSettings.d.ts","sourceRoot":"","sources":["../../../src/utils/createChartSettingsForRender/composeDendroSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EAAE,UAAU,EACtB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAI1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI/D,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EACxB,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,EACvD,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,EAClC,gBAAgB,EAAE,uBAAuB;;;;
|
|
1
|
+
{"version":3,"file":"composeDendroSettings.d.ts","sourceRoot":"","sources":["../../../src/utils/createChartSettingsForRender/composeDendroSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EAAE,UAAU,EACtB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAI1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI/D,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EACxB,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,EACvD,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,EAClC,gBAAgB,EAAE,uBAAuB;;;;YAqI+jzB,CAAC;gBAAuC,CAAC;;;;;cAAyH,CAAC;aAAmC,CAAC;mBAAyC,CAAC;sBAA4C,CAAC;;;;;cAA0G,CAAC;aAAmC,CAAC;mBAAyC,CAAC;sBAA4C,CAAC;;;aAAuD,CAAC;aAAmC,CAAC;cAAoC,CAAC;oBAA0C,CAAC;qBAA2C,CAAC;oBAA0C,CAAC;qBAA2C,CAAC;iBAAuC,CAAC;oBAA0C,CAAC;kBAAwC,CAAC;mBAAyC,CAAC;;;iBAAsE,CAAC;iBAAmG,CAAC;;;;sBAA4H,CAAC;qBAA2C,CAAC;2BAAiD,CAAC;8BAAoD,CAAC;;;;gBAAgH,CAAC;;;;;sBAA6J,CAAC;qBAA2C,CAAC;2BAAiD,CAAC;8BAAoD,CAAC;;;;iBAA4H,CAAC;;;;sBAAwR,CAAC;qBAA2C,CAAC;2BAAiD,CAAC;8BAAoD,CAAC;;;;iBAAwR,CAAC;;;;sBAA4H,CAAC;qBAA2C,CAAC;2BAAiD,CAAC;8BAAoD,CAAC;;;;gBAAgH,CAAC;;;;;sBAA6J,CAAC;qBAA2C,CAAC;2BAAiD,CAAC;8BAAoD,CAAC;;;;gBAA2H,CAAC;;;;sBAA4H,CAAC;qBAA2C,CAAC;2BAAiD,CAAC;8BAAoD,CAAC;;;;gBAAgH,CAAC;;;;;sBAA6J,CAAC;qBAA2C,CAAC;2BAAiD,CAAC;8BAAoD,CAAC;;;;;;;;cAA0M,CAAC;aAAmC,CAAC;mBAAyC,CAAC;sBAA4C,CAAC;;;;;cAAqH,CAAC;aAAmC,CAAC;mBAAyC,CAAC;sBAA4C,CAAC;;;YAAoE,CAAC;gBAAuC,CAAC;;;aAA2G,CAAC;aAAqC,CAAC;aAAmC,CAAC;;;;;cAAsH,CAAC;aAAmC,CAAC;mBAAyC,CAAC;sBAA4C,CAAC;;;;;;;;;;cAAsY,CAAC;aAAmC,CAAC;mBAAyC,CAAC;sBAA4C,CAAC;;;;;cAA0H,CAAC;aAAmC,CAAC;mBAAyC,CAAC;sBAA4C,CAAC;;;;;cAA2H,CAAC;aAAmC,CAAC;mBAAyC,CAAC;sBAA4C,CAAC;;;WAA8E,CAAC;sBAA0B,CAAC;qBAA6C,CAAC;;iBAA8E,CAAC;;;;;;;EADn+/B"}
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
import { getDendroAes as
|
|
2
|
-
import { DEFAULT_BLACK as F, PALETTE_MAP as
|
|
1
|
+
import { getDendroAes as p, DEFAULT_DOT_SHAPE as _, DEFAULT_DOT_RANGE as C } from "../../dataBindAes.js";
|
|
2
|
+
import { DEFAULT_BLACK as F, PALETTE_MAP as h, DEFAULT_CATEGORICAL_PALETTE as f } from "../../constantsAesthetic.js";
|
|
3
3
|
import { DEFAULT_HEIGHT as D, DEFAULT_WIDTH as M, isNumberRange as I } from "../../constantsCommon.js";
|
|
4
4
|
const v = 280;
|
|
5
|
-
function R(o,
|
|
6
|
-
var
|
|
5
|
+
function R(o, L, r, E, i) {
|
|
6
|
+
var m, u, A, y;
|
|
7
7
|
o.rootPosition = "left", o.size = { width: M, height: D };
|
|
8
8
|
const n = r.optionsState.components, t = r.layersSettings.dendro, e = o == null ? void 0 : o.aes;
|
|
9
9
|
if (e.nodeShape && typeof e.nodeShape == "object") {
|
|
10
|
-
const s = (
|
|
10
|
+
const s = (m = n.nodeShape.selectorStates[0]) == null ? void 0 : m.selectedSource, l = p(
|
|
11
11
|
s,
|
|
12
|
-
|
|
12
|
+
i,
|
|
13
13
|
r.dataBindAes,
|
|
14
14
|
"dotShape",
|
|
15
|
-
|
|
15
|
+
f
|
|
16
16
|
);
|
|
17
17
|
Object.keys(l).length ? e.nodeShape.valuesMap = l : e.nodeShape = _;
|
|
18
18
|
} else typeof t.dotShape == "string" && (e.nodeShape = t.dotShape);
|
|
19
19
|
if (e.nodeColor && typeof e.nodeColor == "object") {
|
|
20
|
-
const s = (
|
|
20
|
+
const s = (u = n.nodeColor.selectorStates[0]) == null ? void 0 : u.selectedSource, l = p(
|
|
21
21
|
s,
|
|
22
|
-
|
|
22
|
+
i,
|
|
23
23
|
r.dataBindAes,
|
|
24
24
|
"color",
|
|
25
|
-
|
|
25
|
+
f
|
|
26
26
|
);
|
|
27
27
|
Object.keys(l).length ? e.nodeColor.valuesMap = l : e.nodeColor = F;
|
|
28
28
|
} else typeof t.dotFill == "string" && (e.nodeColor = t.dotFill);
|
|
29
29
|
if (e.nodeSize && typeof e.nodeSize == "object") {
|
|
30
|
-
const s = (
|
|
30
|
+
const s = (A = n.nodeSize.selectorStates[0]) == null ? void 0 : A.selectedSource;
|
|
31
31
|
let [l, c] = [1 / 0, -1 / 0];
|
|
32
|
-
|
|
33
|
-
const a = Number(
|
|
32
|
+
L.values[s].forEach((d) => {
|
|
33
|
+
const a = Number(d);
|
|
34
34
|
a < l && (l = a), a > c && (c = a);
|
|
35
35
|
}), e.nodeSize.domain = [l, c], e.nodeSize.range = I(t.dotSize) ? [t.dotSize.min, t.dotSize.max] : [C.min, C.max];
|
|
36
36
|
} else typeof t.dotSize == "number" && (e.nodeSize = t.dotSize);
|
|
37
37
|
if (e.lineColor && typeof e.lineColor == "object") {
|
|
38
|
-
const s = (
|
|
39
|
-
e.lineColor.valuesMap =
|
|
38
|
+
const s = (y = n.lineColor.selectorStates[0]) == null ? void 0 : y.selectedSource;
|
|
39
|
+
e.lineColor.valuesMap = p(
|
|
40
40
|
s,
|
|
41
|
-
|
|
41
|
+
i,
|
|
42
42
|
r.dataBindAes,
|
|
43
43
|
"color",
|
|
44
|
-
|
|
44
|
+
f
|
|
45
45
|
);
|
|
46
46
|
} else typeof t.lineColor == "string" && (e.lineColor = t.lineColor);
|
|
47
47
|
if (n.heatmapForSequence.selectorStates.length > 0 && (o.heatmapSettings = {
|
|
48
48
|
valueType: "stringSource",
|
|
49
49
|
aes: {
|
|
50
|
-
colorsList:
|
|
50
|
+
colorsList: h.bright.colors
|
|
51
51
|
}
|
|
52
52
|
}, o.size.maxCellWidth = 8), n.heatmapAnnotation.selectorStates.length > 0) {
|
|
53
|
-
const s = n.heatmapAnnotation.selectorStates[0].selectedSource, l =
|
|
53
|
+
const s = n.heatmapAnnotation.selectorStates[0].selectedSource, l = E.getSourceInfo(s), c = l.type === "Double" || l.type === "Float" || l.type === "Int" || l.type === "Long" ? "continuous" : "discrete", d = h.bright.colors;
|
|
54
54
|
let a;
|
|
55
|
-
const
|
|
56
|
-
T && (a = T.reduce((b, z, g) => (b[z] =
|
|
55
|
+
const S = i[s], T = S == null ? void 0 : S.list;
|
|
56
|
+
T && (a = T.reduce((b, z, g) => (b[z] = d[g % d.length], b), {})), o.heatmapSettings = {
|
|
57
57
|
valueType: c,
|
|
58
58
|
aes: {
|
|
59
|
-
colorsList:
|
|
59
|
+
colorsList: h.viridis.colors,
|
|
60
60
|
colorsMap: a
|
|
61
61
|
}
|
|
62
62
|
};
|