@milaboratories/graph-maker 1.2.0 → 1.2.2
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/AesSettings/AesDataMappingDiscrete.css +1 -1
- package/dist/components/AesSettings/AesDataMappingDiscrete.vue.d.ts.map +1 -1
- package/dist/components/AesSettings/AesDataMappingDiscrete.vue2.js.map +1 -1
- package/dist/components/AesSettings/AesDataMappingDiscrete.vue3.js +1 -1
- package/dist/components/Chart.vue.d.ts.map +1 -1
- package/dist/components/Chart.vue.js +67 -66
- package/dist/components/Chart.vue.js.map +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/components/ReorderForm.vue.d.ts.map +1 -1
- package/dist/components/ReorderForm.vue2.js +14 -13
- package/dist/components/ReorderForm.vue2.js.map +1 -1
- package/dist/constantsCommon.d.ts +7 -0
- package/dist/constantsCommon.d.ts.map +1 -1
- package/dist/constantsCommon.js +33 -28
- package/dist/constantsCommon.js.map +1 -1
- package/dist/dataBindAes.d.ts.map +1 -1
- package/dist/dataBindAes.js +88 -93
- 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 +96 -78
- 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 +189 -161
- 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 +157 -139
- 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 +154 -136
- 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 +232 -201
- 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.d.ts.map +1 -1
- package/dist/forms/LayersForm/AesSelector.vue.js +86 -86
- package/dist/forms/LayersForm/AesSelector.vue.js.map +1 -1
- package/dist/index.vue.d.ts.map +1 -1
- package/dist/index.vue.js +183 -159
- 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 +135 -128
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +5 -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 +9 -0
- package/dist/utils/createChartSettingsForRender/composeBubbleSettings.d.ts.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js +24 -22
- package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js.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 +16 -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 -468
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js +48 -31
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +22 -0
- package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js +24 -22
- package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +5 -0
- package/dist/utils/createChartSettingsForRender/composeHistogramSettings.d.ts.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js +24 -22
- package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +19 -0
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js +89 -71
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +12 -0
- package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +40 -35
- package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.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 +2 -2
- 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 });\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":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -33,6 +33,8 @@ export type GraphMakerState = {
|
|
|
33
33
|
layersSettings?: DeepPartial<LayersSettings>;
|
|
34
34
|
/** Saved palettes and color-mapping settings linked to columns/axes */
|
|
35
35
|
dataBindAes?: Record<string, AestheticMappingCategorical>;
|
|
36
|
+
/** Technical field, used to keep track of tooltip hint was shown to avoid showing it again */
|
|
37
|
+
tooltipHintWasShown?: boolean;
|
|
36
38
|
};
|
|
37
39
|
export type PredefinedGraphOption<T extends ChartType> = {
|
|
38
40
|
inputName: InputNamesByChartType[T];
|
|
@@ -105,6 +107,7 @@ export type ReactiveState = {
|
|
|
105
107
|
dendroInfoByClick: null | DendroNodeInfo;
|
|
106
108
|
dendroSelectedNodeId: null | number;
|
|
107
109
|
showTooltipHint: boolean;
|
|
110
|
+
tooltipHintWasShown: boolean;
|
|
108
111
|
};
|
|
109
112
|
export type DiscreteLayer = 'box' | 'binnedDots' | 'jitteredDots' | 'violin' | 'bar' | 'stackedBar' | 'stackedArea' | 'line' | 'errorbar' | 'sina' | 'logo';
|
|
110
113
|
export type DiscreteLayersTemplate = DiscreteLayer | 'box_binnedDots' | 'box_jitteredDots' | 'violin_binnedDots' | 'violin_jitteredDots' | 'line_jitteredDots' | 'line_binnedDots' | 'line_errorbar' | 'bar_line' | 'bar_errorbar';
|
|
@@ -134,6 +137,8 @@ export type UniqueValuesData = {
|
|
|
134
137
|
label: string;
|
|
135
138
|
}[];
|
|
136
139
|
labels: Record<string, string>;
|
|
140
|
+
/** True when there are more unique values than axesSettings.other.maxGroupCount; list/options are partial */
|
|
141
|
+
overflow: boolean;
|
|
137
142
|
};
|
|
138
143
|
export type UniqueValuesBySourceMap = Record<string, UniqueValuesData | null>;
|
|
139
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;
|
|
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;"}
|
|
@@ -13,6 +13,7 @@ export declare function composeBubbleSettings(settings: BubbleSettings, reactive
|
|
|
13
13
|
format?: string | undefined;
|
|
14
14
|
label?: string | undefined;
|
|
15
15
|
valueLabels?: string | undefined;
|
|
16
|
+
nullValueLabel?: string | undefined;
|
|
16
17
|
};
|
|
17
18
|
valueColor: {
|
|
18
19
|
type: "column";
|
|
@@ -20,6 +21,7 @@ export declare function composeBubbleSettings(settings: BubbleSettings, reactive
|
|
|
20
21
|
format?: string | undefined;
|
|
21
22
|
label?: string | undefined;
|
|
22
23
|
valueLabels?: string | undefined;
|
|
24
|
+
nullValueLabel?: string | undefined;
|
|
23
25
|
};
|
|
24
26
|
xColumn: {
|
|
25
27
|
type: "column";
|
|
@@ -27,6 +29,7 @@ export declare function composeBubbleSettings(settings: BubbleSettings, reactive
|
|
|
27
29
|
format?: string | undefined;
|
|
28
30
|
label?: string | undefined;
|
|
29
31
|
valueLabels?: string | undefined;
|
|
32
|
+
nullValueLabel?: string | undefined;
|
|
30
33
|
};
|
|
31
34
|
yColumn: {
|
|
32
35
|
type: "column";
|
|
@@ -34,6 +37,7 @@ export declare function composeBubbleSettings(settings: BubbleSettings, reactive
|
|
|
34
37
|
format?: string | undefined;
|
|
35
38
|
label?: string | undefined;
|
|
36
39
|
valueLabels?: string | undefined;
|
|
40
|
+
nullValueLabel?: string | undefined;
|
|
37
41
|
};
|
|
38
42
|
size?: {
|
|
39
43
|
width?: number | undefined;
|
|
@@ -59,12 +63,14 @@ export declare function composeBubbleSettings(settings: BubbleSettings, reactive
|
|
|
59
63
|
format?: string | undefined;
|
|
60
64
|
label?: string | undefined;
|
|
61
65
|
valueLabels?: string | undefined;
|
|
66
|
+
nullValueLabel?: string | undefined;
|
|
62
67
|
}[] | undefined;
|
|
63
68
|
} | undefined;
|
|
64
69
|
frame?: {
|
|
65
70
|
type?: "left" | "bottom" | "left-bottom" | "full" | "empty" | undefined;
|
|
66
71
|
} | undefined;
|
|
67
72
|
facetSettings?: {
|
|
73
|
+
order?: string[] | undefined;
|
|
68
74
|
nRows?: number | undefined;
|
|
69
75
|
nCols?: number | undefined;
|
|
70
76
|
} | undefined;
|
|
@@ -92,6 +98,7 @@ export declare function composeBubbleSettings(settings: BubbleSettings, reactive
|
|
|
92
98
|
format?: string | undefined;
|
|
93
99
|
label?: string | undefined;
|
|
94
100
|
valueLabels?: string | undefined;
|
|
101
|
+
nullValueLabel?: string | undefined;
|
|
95
102
|
}[] | undefined;
|
|
96
103
|
xGroupBy?: {
|
|
97
104
|
type: "column";
|
|
@@ -99,6 +106,7 @@ export declare function composeBubbleSettings(settings: BubbleSettings, reactive
|
|
|
99
106
|
format?: string | undefined;
|
|
100
107
|
label?: string | undefined;
|
|
101
108
|
valueLabels?: string | undefined;
|
|
109
|
+
nullValueLabel?: string | undefined;
|
|
102
110
|
}[] | undefined;
|
|
103
111
|
yGroupBy?: {
|
|
104
112
|
type: "column";
|
|
@@ -106,6 +114,7 @@ export declare function composeBubbleSettings(settings: BubbleSettings, reactive
|
|
|
106
114
|
format?: string | undefined;
|
|
107
115
|
label?: string | undefined;
|
|
108
116
|
valueLabels?: string | undefined;
|
|
117
|
+
nullValueLabel?: string | undefined;
|
|
109
118
|
}[] | undefined;
|
|
110
119
|
keysOrder?: Record<string, string[]> | undefined;
|
|
111
120
|
normalization?: {
|
|
@@ -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,27 +1,29 @@
|
|
|
1
|
-
import { PALETTE_MAP as
|
|
2
|
-
import { getAxesDataFromForms as
|
|
3
|
-
const
|
|
4
|
-
function
|
|
5
|
-
var
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
cellStrokeColor:
|
|
9
|
-
colorsList:
|
|
10
|
-
maxRadius:
|
|
11
|
-
minRadius:
|
|
12
|
-
}, o.size = { cellSize:
|
|
1
|
+
import { PALETTE_MAP as B, DEFAULT_BLACK as c } from "../../constantsAesthetic.js";
|
|
2
|
+
import { getAxesDataFromForms as x } from "./getAxesDataFromForms.js";
|
|
3
|
+
const m = 40, A = m / 2 - 2, f = 3;
|
|
4
|
+
function h(o, a, e) {
|
|
5
|
+
var y;
|
|
6
|
+
const p = a.template, r = a.layersSettings[p], n = (y = a.dataBindAes[o.valueColor.value]) == null ? void 0 : y.palette;
|
|
7
|
+
o.aes = {
|
|
8
|
+
cellStrokeColor: r.strokeColor ?? c,
|
|
9
|
+
colorsList: B[n ?? e.continuous].colors,
|
|
10
|
+
maxRadius: A * (a.chartScale / 100),
|
|
11
|
+
minRadius: f
|
|
12
|
+
}, o.size = { cellSize: m * (a.chartScale / 100) }, Object.assign(
|
|
13
13
|
o,
|
|
14
|
-
|
|
15
|
-
), o.NAValueAs =
|
|
16
|
-
method:
|
|
17
|
-
direction:
|
|
18
|
-
}), (
|
|
19
|
-
x:
|
|
20
|
-
y:
|
|
21
|
-
method:
|
|
22
|
-
})
|
|
14
|
+
x(a.axesSettings, a.chartType)
|
|
15
|
+
), o.NAValueAs = r.NAValueAs, r.normalizationDirection && (o.normalization = {
|
|
16
|
+
method: r.normalizationMethod,
|
|
17
|
+
direction: r.normalizationDirection
|
|
18
|
+
}), (r.aggregateByX || r.aggregateByY) && (o.aggregation = {
|
|
19
|
+
x: r.aggregateByX && o.xGroupBy && o.xGroupBy.length > 0,
|
|
20
|
+
y: r.aggregateByY && o.yGroupBy && o.yGroupBy.length > 0,
|
|
21
|
+
method: r.aggregationMethod
|
|
22
|
+
});
|
|
23
|
+
const l = a.axesSettings.other.nullValueLabel;
|
|
24
|
+
return o.xColumn && (o.xColumn = { ...o.xColumn, nullValueLabel: l }), o.yColumn && (o.yColumn = { ...o.yColumn, nullValueLabel: l }), o.xGroupBy && (o.xGroupBy = o.xGroupBy.map((u) => ({ ...u, nullValueLabel: l }))), o.yGroupBy && (o.yGroupBy = o.yGroupBy.map((u) => ({ ...u, nullValueLabel: l }))), o.facetBy && (o.facetBy = o.facetBy.map((u) => ({ ...u, nullValueLabel: l }))), o;
|
|
23
25
|
}
|
|
24
26
|
export {
|
|
25
|
-
|
|
27
|
+
h as composeBubbleSettings
|
|
26
28
|
};
|
|
27
29
|
//# sourceMappingURL=composeBubbleSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeBubbleSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeBubbleSettings.ts"],"sourcesContent":["import type { BubbleSettings } from '@milaboratories/miplots4';\nimport {\n DEFAULT_BLACK,\n PALETTE_MAP,\n} from '../../constantsAesthetic';\nimport type { BubbleLayer, DefaultPalettes, ReactiveState } from '../../types';\nimport { getAxesDataFromForms } from '../index';\n\nconst DEFAULT_CELL_SIZE = 40;\nconst DEFAULT_MAX_R = DEFAULT_CELL_SIZE / 2 - 2;\nconst DEFAULT_MIN_R = 3;\nexport function composeBubbleSettings(\n settings: BubbleSettings,\n reactiveState: ReactiveState,\n defaultPalettes: DefaultPalettes,\n) {\n const template = reactiveState.template as BubbleLayer;\n const layerSettings = reactiveState.layersSettings[template];\n const palette = reactiveState.dataBindAes[settings.valueColor.value]?.palette;\n\n settings.aes = {\n cellStrokeColor: layerSettings.strokeColor ?? DEFAULT_BLACK,\n colorsList: PALETTE_MAP[palette ?? defaultPalettes.continuous].colors,\n maxRadius: DEFAULT_MAX_R * (reactiveState.chartScale / 100),\n minRadius: DEFAULT_MIN_R,\n };\n\n settings.size = { cellSize: DEFAULT_CELL_SIZE * (reactiveState.chartScale / 100) };\n\n Object.assign(\n settings,\n getAxesDataFromForms(reactiveState.axesSettings, reactiveState.chartType),\n );\n\n settings.NAValueAs = layerSettings.NAValueAs;\n if (layerSettings.normalizationDirection) {\n settings.normalization = {\n method: layerSettings.normalizationMethod,\n direction: layerSettings.normalizationDirection,\n };\n }\n\n if (layerSettings.aggregateByX || layerSettings.aggregateByY) {\n settings.aggregation = {\n x: layerSettings.aggregateByX && settings.xGroupBy && settings.xGroupBy.length > 0,\n y: layerSettings.aggregateByY && settings.yGroupBy && settings.yGroupBy.length > 0,\n method: layerSettings.aggregationMethod,\n };\n }\n\n return settings;\n}\n"],"names":["DEFAULT_CELL_SIZE","DEFAULT_MAX_R","DEFAULT_MIN_R","composeBubbleSettings","settings","reactiveState","defaultPalettes","template","layerSettings","palette","_a","DEFAULT_BLACK","PALETTE_MAP","getAxesDataFromForms"],"mappings":";;AAQA,MAAMA,IAAoB,IACpBC,IAAgBD,IAAoB,IAAI,GACxCE,IAAgB;AACf,SAASC,EACdC,GACAC,GACAC,GACA;;AACA,QAAMC,IAAWF,EAAc,UACzBG,IAAgBH,EAAc,eAAeE,CAAQ,GACrDE,KAAUC,IAAAL,EAAc,YAAYD,EAAS,WAAW,KAAK,MAAnD,gBAAAM,EAAsD;AAEtE,
|
|
1
|
+
{"version":3,"file":"composeBubbleSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeBubbleSettings.ts"],"sourcesContent":["import type { BubbleSettings } from '@milaboratories/miplots4';\nimport {\n DEFAULT_BLACK,\n PALETTE_MAP,\n} from '../../constantsAesthetic';\nimport type { BubbleLayer, DefaultPalettes, ReactiveState } from '../../types';\nimport { getAxesDataFromForms } from '../index';\n\nconst DEFAULT_CELL_SIZE = 40;\nconst DEFAULT_MAX_R = DEFAULT_CELL_SIZE / 2 - 2;\nconst DEFAULT_MIN_R = 3;\nexport function composeBubbleSettings(\n settings: BubbleSettings,\n reactiveState: ReactiveState,\n defaultPalettes: DefaultPalettes,\n) {\n const template = reactiveState.template as BubbleLayer;\n const layerSettings = reactiveState.layersSettings[template];\n const palette = reactiveState.dataBindAes[settings.valueColor.value]?.palette;\n\n settings.aes = {\n cellStrokeColor: layerSettings.strokeColor ?? DEFAULT_BLACK,\n colorsList: PALETTE_MAP[palette ?? defaultPalettes.continuous].colors,\n maxRadius: DEFAULT_MAX_R * (reactiveState.chartScale / 100),\n minRadius: DEFAULT_MIN_R,\n };\n\n settings.size = { cellSize: DEFAULT_CELL_SIZE * (reactiveState.chartScale / 100) };\n\n Object.assign(\n settings,\n getAxesDataFromForms(reactiveState.axesSettings, reactiveState.chartType),\n );\n\n settings.NAValueAs = layerSettings.NAValueAs;\n if (layerSettings.normalizationDirection) {\n settings.normalization = {\n method: layerSettings.normalizationMethod,\n direction: layerSettings.normalizationDirection,\n };\n }\n\n if (layerSettings.aggregateByX || layerSettings.aggregateByY) {\n settings.aggregation = {\n x: layerSettings.aggregateByX && settings.xGroupBy && settings.xGroupBy.length > 0,\n y: layerSettings.aggregateByY && settings.yGroupBy && settings.yGroupBy.length > 0,\n method: layerSettings.aggregationMethod,\n };\n }\n\n const nullValueLabel = reactiveState.axesSettings.other.nullValueLabel;\n if (settings.xColumn) {\n settings.xColumn = { ...settings.xColumn, nullValueLabel: nullValueLabel };\n }\n if (settings.yColumn) {\n settings.yColumn = { ...settings.yColumn, nullValueLabel: nullValueLabel };\n }\n if (settings.xGroupBy) {\n settings.xGroupBy = settings.xGroupBy.map((column) => {\n return { ...column, nullValueLabel: nullValueLabel };\n });\n }\n if (settings.yGroupBy) {\n settings.yGroupBy = settings.yGroupBy.map((column) => {\n return { ...column, nullValueLabel: nullValueLabel };\n });\n }\n if (settings.facetBy) {\n settings.facetBy = settings.facetBy.map((column) => {\n return { ...column, nullValueLabel: nullValueLabel };\n });\n }\n\n return settings;\n}\n"],"names":["DEFAULT_CELL_SIZE","DEFAULT_MAX_R","DEFAULT_MIN_R","composeBubbleSettings","settings","reactiveState","defaultPalettes","template","layerSettings","palette","_a","DEFAULT_BLACK","PALETTE_MAP","getAxesDataFromForms","nullValueLabel","column"],"mappings":";;AAQA,MAAMA,IAAoB,IACpBC,IAAgBD,IAAoB,IAAI,GACxCE,IAAgB;AACf,SAASC,EACdC,GACAC,GACAC,GACA;;AACA,QAAMC,IAAWF,EAAc,UACzBG,IAAgBH,EAAc,eAAeE,CAAQ,GACrDE,KAAUC,IAAAL,EAAc,YAAYD,EAAS,WAAW,KAAK,MAAnD,gBAAAM,EAAsD;AAEtE,EAAAN,EAAS,MAAM;AAAA,IACb,iBAAiBI,EAAc,eAAeG;AAAA,IAC9C,YAAYC,EAAYH,KAAWH,EAAgB,UAAU,EAAE;AAAA,IAC/D,WAAWL,KAAiBI,EAAc,aAAa;AAAA,IACvD,WAAWH;AAAA,EAAA,GAGbE,EAAS,OAAO,EAAE,UAAUJ,KAAqBK,EAAc,aAAa,KAAA,GAE5E,OAAO;AAAA,IACLD;AAAA,IACAS,EAAqBR,EAAc,cAAcA,EAAc,SAAS;AAAA,EAAA,GAG1ED,EAAS,YAAYI,EAAc,WAC/BA,EAAc,2BAChBJ,EAAS,gBAAgB;AAAA,IACvB,QAAQI,EAAc;AAAA,IACtB,WAAWA,EAAc;AAAA,EAAA,KAIzBA,EAAc,gBAAgBA,EAAc,kBAC9CJ,EAAS,cAAc;AAAA,IACrB,GAAGI,EAAc,gBAAgBJ,EAAS,YAAYA,EAAS,SAAS,SAAS;AAAA,IACjF,GAAGI,EAAc,gBAAgBJ,EAAS,YAAYA,EAAS,SAAS,SAAS;AAAA,IACjF,QAAQI,EAAc;AAAA,EAAA;AAI1B,QAAMM,IAAiBT,EAAc,aAAa,MAAM;AACxD,SAAID,EAAS,YACXA,EAAS,UAAU,EAAE,GAAGA,EAAS,SAAS,gBAAAU,EAAA,IAExCV,EAAS,YACXA,EAAS,UAAU,EAAE,GAAGA,EAAS,SAAS,gBAAAU,EAAA,IAExCV,EAAS,aACXA,EAAS,WAAWA,EAAS,SAAS,IAAI,CAACW,OAClC,EAAE,GAAGA,GAAQ,gBAAAD,EAAA,EACrB,IAECV,EAAS,aACXA,EAAS,WAAWA,EAAS,SAAS,IAAI,CAACW,OAClC,EAAE,GAAGA,GAAQ,gBAAAD,EAAA,EACrB,IAECV,EAAS,YACXA,EAAS,UAAUA,EAAS,QAAQ,IAAI,CAACW,OAChC,EAAE,GAAGA,GAAQ,gBAAAD,EAAA,EACrB,IAGIV;AACT;"}
|
|
@@ -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
|