@platforma-sdk/ui-vue 1.45.34 → 1.45.36
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/.turbo/turbo-build.log +216 -222
- package/.turbo/turbo-type-check.log +1 -1
- package/CHANGELOG.md +16 -0
- package/dist/AgGridVue/useAgGridOptions.js +2 -3
- package/dist/AgGridVue/useAgGridOptions.js.map +1 -1
- package/dist/components/{PlMultiSequenceAlignment/Legend.vue.d.ts → PlAdvancedFilter/OperandButton.vue.d.ts} +4 -2
- package/dist/components/{PlMultiSequenceAlignment/Toolbar.vue.js → PlAdvancedFilter/OperandButton.vue.js} +3 -3
- package/dist/components/PlAdvancedFilter/OperandButton.vue.js.map +1 -0
- package/dist/components/PlAdvancedFilter/OperandButton.vue2.js +25 -0
- package/dist/components/PlAdvancedFilter/OperandButton.vue2.js.map +1 -0
- package/dist/components/PlAdvancedFilter/OperandButton.vue3.js +13 -0
- package/dist/components/PlAdvancedFilter/OperandButton.vue3.js.map +1 -0
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue.d.ts +39 -0
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue.js +10 -0
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue.js.map +1 -0
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js +199 -0
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js.map +1 -0
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue3.js +17 -0
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue3.js.map +1 -0
- package/dist/components/PlAdvancedFilter/SingleFilter.vue.d.ts +37 -0
- package/dist/components/{PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue.js → PlAdvancedFilter/SingleFilter.vue.js} +3 -3
- package/dist/components/PlAdvancedFilter/SingleFilter.vue.js.map +1 -0
- package/dist/components/PlAdvancedFilter/SingleFilter.vue2.js +306 -0
- package/dist/components/PlAdvancedFilter/SingleFilter.vue2.js.map +1 -0
- package/dist/components/PlAdvancedFilter/SingleFilter.vue3.js +35 -0
- package/dist/components/PlAdvancedFilter/SingleFilter.vue3.js.map +1 -0
- package/dist/components/PlAdvancedFilter/constants.d.ts +4 -0
- package/dist/components/PlAdvancedFilter/constants.js +41 -0
- package/dist/components/PlAdvancedFilter/constants.js.map +1 -0
- package/dist/components/PlAdvancedFilter/index.d.ts +1 -0
- package/dist/components/PlAdvancedFilter/types.d.ts +57 -0
- package/dist/components/PlAdvancedFilter/types.js +8 -0
- package/dist/components/PlAdvancedFilter/types.js.map +1 -0
- package/dist/components/PlAdvancedFilter/utils.js +150 -0
- package/dist/components/PlAdvancedFilter/utils.js.map +1 -0
- package/dist/components/PlAgDataTable/PlAgRowCount.vue.js +7 -8
- package/dist/components/PlAgDataTable/PlAgRowCount.vue.js.map +1 -1
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js +9 -10
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js.map +1 -1
- package/dist/components/PlAgRowNumHeader.vue.js +2 -3
- package/dist/components/PlAgRowNumHeader.vue.js.map +1 -1
- package/dist/index.js +32 -32
- package/dist/lib.d.ts +1 -1
- package/package.json +6 -7
- package/src/components/PlAdvancedFilter/OperandButton.vue +53 -0
- package/src/components/PlAdvancedFilter/PlAdvancedFilter.vue +209 -0
- package/src/components/PlAdvancedFilter/SingleFilter.vue +425 -0
- package/src/components/PlAdvancedFilter/constants.ts +42 -0
- package/src/components/PlAdvancedFilter/index.ts +1 -0
- package/src/components/PlAdvancedFilter/types.ts +77 -0
- package/src/components/PlAdvancedFilter/utils.ts +215 -0
- package/src/lib.ts +2 -2
- package/dist/assets/multi-sequence-alignment.worker-Cm0gZp19.js +0 -6
- package/dist/assets/multi-sequence-alignment.worker-Cm0gZp19.js.map +0 -1
- package/dist/assets/phylogenetic-tree.worker-4CrExYEo.js +0 -5
- package/dist/assets/phylogenetic-tree.worker-4CrExYEo.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/Consensus.vue.d.ts +0 -9
- package/dist/components/PlMultiSequenceAlignment/Consensus.vue.js +0 -10
- package/dist/components/PlMultiSequenceAlignment/Consensus.vue.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/Consensus.vue2.js +0 -122
- package/dist/components/PlMultiSequenceAlignment/Consensus.vue2.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/Consensus.vue3.js +0 -9
- package/dist/components/PlMultiSequenceAlignment/Consensus.vue3.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/Legend.vue.js +0 -10
- package/dist/components/PlMultiSequenceAlignment/Legend.vue.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/Legend.vue2.js +0 -28
- package/dist/components/PlMultiSequenceAlignment/Legend.vue2.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/Legend.vue3.js +0 -13
- package/dist/components/PlMultiSequenceAlignment/Legend.vue3.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.d.ts +0 -25
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.js +0 -10
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js +0 -138
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js +0 -31
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue.d.ts +0 -8
- package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue.js +0 -10
- package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue2.js +0 -77
- package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue2.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue3.js +0 -9
- package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue3.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue.d.ts +0 -71
- package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js +0 -224
- package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue3.js +0 -9
- package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue3.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue.d.ts +0 -8
- package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue.js +0 -10
- package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue2.js +0 -127
- package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue2.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue3.js +0 -9
- package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue3.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/Toolbar.vue.d.ts +0 -16
- package/dist/components/PlMultiSequenceAlignment/Toolbar.vue.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/Toolbar.vue2.js +0 -228
- package/dist/components/PlMultiSequenceAlignment/Toolbar.vue2.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/Toolbar.vue3.js +0 -19
- package/dist/components/PlMultiSequenceAlignment/Toolbar.vue3.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/cell-size.d.ts +0 -4
- package/dist/components/PlMultiSequenceAlignment/cell-size.js +0 -8
- package/dist/components/PlMultiSequenceAlignment/cell-size.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/chemical-properties.d.ts +0 -44
- package/dist/components/PlMultiSequenceAlignment/chemical-properties.js +0 -132
- package/dist/components/PlMultiSequenceAlignment/chemical-properties.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/data.d.ts +0 -61
- package/dist/components/PlMultiSequenceAlignment/data.js +0 -370
- package/dist/components/PlMultiSequenceAlignment/data.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/index.d.ts +0 -1
- package/dist/components/PlMultiSequenceAlignment/markup.d.ts +0 -16
- package/dist/components/PlMultiSequenceAlignment/markup.js +0 -84
- package/dist/components/PlMultiSequenceAlignment/markup.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/migrations.d.ts +0 -3
- package/dist/components/PlMultiSequenceAlignment/migrations.js +0 -24
- package/dist/components/PlMultiSequenceAlignment/migrations.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/multi-sequence-alignment.worker.d.ts +0 -6
- package/dist/components/PlMultiSequenceAlignment/phylogenetic-tree.worker.d.ts +0 -7
- package/dist/components/PlMultiSequenceAlignment/residue-counts.d.ts +0 -2
- package/dist/components/PlMultiSequenceAlignment/residue-counts.js +0 -13
- package/dist/components/PlMultiSequenceAlignment/residue-counts.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/settings.d.ts +0 -2
- package/dist/components/PlMultiSequenceAlignment/settings.js +0 -9
- package/dist/components/PlMultiSequenceAlignment/settings.js.map +0 -1
- package/dist/components/PlMultiSequenceAlignment/types.d.ts +0 -5
- package/dist/components/PlMultiSequenceAlignment/useMiPlots.d.ts +0 -4
- package/dist/components/PlMultiSequenceAlignment/useMiPlots.js +0 -19
- package/dist/components/PlMultiSequenceAlignment/useMiPlots.js.map +0 -1
- package/src/components/PlMultiSequenceAlignment/Consensus.vue +0 -165
- package/src/components/PlMultiSequenceAlignment/Legend.vue +0 -44
- package/src/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue +0 -299
- package/src/components/PlMultiSequenceAlignment/PhylogeneticTree.vue +0 -110
- package/src/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue +0 -314
- package/src/components/PlMultiSequenceAlignment/README.md +0 -216
- package/src/components/PlMultiSequenceAlignment/SeqLogo.vue +0 -166
- package/src/components/PlMultiSequenceAlignment/Toolbar.vue +0 -228
- package/src/components/PlMultiSequenceAlignment/cell-size.ts +0 -4
- package/src/components/PlMultiSequenceAlignment/chemical-properties.ts +0 -199
- package/src/components/PlMultiSequenceAlignment/data.ts +0 -661
- package/src/components/PlMultiSequenceAlignment/index.ts +0 -1
- package/src/components/PlMultiSequenceAlignment/markup.ts +0 -141
- package/src/components/PlMultiSequenceAlignment/migrations.ts +0 -46
- package/src/components/PlMultiSequenceAlignment/multi-sequence-alignment.worker.ts +0 -54
- package/src/components/PlMultiSequenceAlignment/phylogenetic-tree.worker.ts +0 -89
- package/src/components/PlMultiSequenceAlignment/residue-counts.ts +0 -124
- package/src/components/PlMultiSequenceAlignment/settings.ts +0 -7
- package/src/components/PlMultiSequenceAlignment/types.ts +0 -3
- package/src/components/PlMultiSequenceAlignment/useMiPlots.ts +0 -23
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
WARN Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @platforma-sdk/ui-vue@1.45.
|
|
3
|
+
> @platforma-sdk/ui-vue@1.45.36 type-check /home/runner/_work/platforma/platforma/sdk/ui-vue
|
|
4
4
|
> ts-builder types --target browser-lib
|
|
5
5
|
|
|
6
6
|
↳ vue-tsc.js --noEmit --project ./tsconfig.json
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @platforma-sdk/ui-vue
|
|
2
2
|
|
|
3
|
+
## 1.45.36
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d5e72cf: remove PlMultiSequenceAlignment
|
|
8
|
+
|
|
9
|
+
## 1.45.35
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- d088e83: add pl-advanced-filter
|
|
14
|
+
- Updated dependencies [d088e83]
|
|
15
|
+
- @milaboratories/uikit@2.6.2
|
|
16
|
+
- @platforma-sdk/model@1.45.35
|
|
17
|
+
- @milaboratories/ptabler-expression-js@1.1.3
|
|
18
|
+
|
|
3
19
|
## 1.45.34
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -39,7 +39,6 @@ import N from "../components/PlAgCellStatusTag/PlAgCellStatusTag.vue.js";
|
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
|
|
42
|
-
import "../components/PlMultiSequenceAlignment/data.js";
|
|
43
42
|
import "@zip.js/zip.js";
|
|
44
43
|
import "canonicalize";
|
|
45
44
|
import "../composition/fileContent.js";
|
|
@@ -196,7 +195,7 @@ class R {
|
|
|
196
195
|
}
|
|
197
196
|
}
|
|
198
197
|
o = new WeakMap();
|
|
199
|
-
function
|
|
198
|
+
function mt(r) {
|
|
200
199
|
const t = C(), e = y(() => {
|
|
201
200
|
var u;
|
|
202
201
|
const s = {
|
|
@@ -250,6 +249,6 @@ function ut(r) {
|
|
|
250
249
|
}, { deep: !0, immediate: !0 }), { gridOptions: a, gridApi: t };
|
|
251
250
|
}
|
|
252
251
|
export {
|
|
253
|
-
|
|
252
|
+
mt as useAgGridOptions
|
|
254
253
|
};
|
|
255
254
|
//# sourceMappingURL=useAgGridOptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgGridOptions.js","sources":["../../src/AgGridVue/useAgGridOptions.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { ColGroupDef, GridApi, GridOptions, GridReadyEvent, ICellRendererParams, RowSelectionOptions, ValueSetterParams } from 'ag-grid-enterprise';\nimport type { Component } from 'vue';\nimport { computed, shallowRef, watch } from 'vue';\nimport { AgGridTheme } from '../aggrid';\nimport { autoSizeRowNumberColumn, makeRowNumberColDef, PlAgOverlayLoading, type PlAgOverlayLoadingParams } from '../components/PlAgDataTable';\nimport { PlAgOverlayNoRows } from '../components/PlAgDataTable';\nimport { createAgGridColDef, type ColDefExtended } from './createAgGridColDef';\nimport { whenever } from '@vueuse/core';\nimport { PlAgCellFile } from '../components/PlAgCellFile';\nimport { PlAgChartStackedBarCell } from '../components/PlAgChartStackedBarCell';\nimport { PlAgChartHistogramCell } from '../components/PlAgChartHistogramCell';\nimport type { ImportFileHandle } from '@platforma-sdk/model';\nimport type { ImportProgress } from '@platforma-sdk/model';\nimport { PlAgCellStatusTag } from '../components/PlAgCellStatusTag';\ninterface GridOptionsExtended<TData = any> extends Omit<GridOptions<TData>, 'columnDefs' | 'loadingOverlayComponentParams'> {\n /**\n * Array of Column / Column Group definitions.\n */\n columnDefs?: (ColDefExtended<TData> | ColGroupDef<TData>)[] | null;\n /**\n * Show row numbers column\n */\n rowNumbersColumn?: boolean;\n /**\n * Loading overlay text\n */\n loadingText?: string;\n /**\n * Not ready overlay (No datasource). Takes priority over \"loading\"\n */\n notReady?: boolean;\n /**\n * \"No datasource\" by default\n */\n notReadyText?: string;\n /**\n * Use \"transparent\" to make table headers visible below the loading layer (experimental)\n */\n loadingOverlayType?: 'transparent' | undefined;\n /**\n * Override standard 'Empty' text for the \"no rows\" overlay\n */\n noRowsText?: string;\n /**\n * @deprecated Use loading, notReady, loadingText, loadingOverlayType instead\n */\n loadingOverlayComponentParams?: never;\n}\n\n// @TODO (super simple builder for now)\nclass Builder<TData> {\n #options: GridOptionsExtended<TData> = {};\n\n public options(options: GridOptionsExtended<TData>) {\n this.#options = Object.assign({}, this.#options, options);\n return this;\n }\n\n private get columnDefs() {\n return this.#options.columnDefs ?? [];\n }\n\n /**\n * Set default column definition\n * @param def - column definition\n * @returns this\n */\n public setDefaultColDef(def: ColDefExtended<TData>) {\n this.#options.defaultColDef = def;\n return this;\n }\n\n /**\n * Show loading overlay\n * @param loading\n * @returns this\n */\n public setLoading(loading?: boolean) {\n this.#options.loading = loading;\n return this;\n }\n\n /**\n * Set loading overlay custom text (default is \"Loading\")\n * @param loadingText\n * @returns this\n */\n public setLoadingText(loadingText?: string) {\n this.#options.loadingText = loadingText;\n return this;\n }\n\n /**\n * Show \"not ready overlay\n * @param notReady\n * @returns this\n */\n public setNotReady(notReady?: boolean) {\n this.#options.notReady = notReady;\n return this;\n }\n\n /**\n * Set loading overlay type\n * @param type\n * @returns this\n */\n public setLoadingOverlayType(type?: 'transparent') {\n this.#options.loadingOverlayType = type;\n return this;\n }\n\n /**\n * Set \"not ready\" text\n * @param notReadyText\n * @returns this\n */\n public setNotReadyText(notReadyText?: string) {\n this.#options.notReadyText = notReadyText;\n return this;\n }\n\n /**\n * Set \"no rows\" text when there are no rows (default is \"Empty\")\n * @param noRowsText\n * @returns this\n */\n public setNoRowsText(noRowsText?: string) {\n this.#options.noRowsText = noRowsText;\n return this;\n }\n\n /**\n * Set row selection options\n * @param rowSelection\n * @returns this\n */\n public setRowSelection(rowSelection?: RowSelectionOptions) {\n this.#options.rowSelection = rowSelection;\n return this;\n }\n\n /**\n * Set row data\n * @param rowData\n * @returns this\n */\n public setRowData(rowData?: TData[]) {\n this.#options.rowData = rowData;\n return this;\n }\n\n /**\n * Set components\n * @param components\n * @returns this\n */\n public setComponents(components?: Record<string, Component>) {\n this.#options.components = components;\n return this;\n }\n\n /**\n * Set an option\n * @param key - option key\n * @param value - option value\n * @returns this\n */\n public setOption<K extends keyof GridOptionsExtended<TData>>(key: K, value: GridOptionsExtended<TData>[K]) {\n this.#options[key] = value;\n return this;\n }\n\n /**\n * Add an extended column definition\n * @param def - column definition\n * @returns this\n */\n public column<TValue = any>(def: ColDefExtended<TData, TValue>) {\n this.#options.columnDefs = [...this.columnDefs, def];\n return this;\n }\n\n /**\n * Show row numbers column\n * @param show - show or hide row numbers column\n * @returns this\n */\n public columnRowNumbers(show: boolean = true) {\n this.#options.rowNumbersColumn = show;\n return this;\n }\n\n /**\n * Add a file input column\n * @param def - column definition\n * @param cb - callback to set params for the file input cell renderer\n * @returns this\n */\n public columnFileInput<TValue = any>(\n def: ColDefExtended<TData, TValue> & {\n /**\n * Allowed file extensions (like ['fastq.gz'])\n */\n extensions?: string[];\n /**\n * The resolveProgress function is an optional input parameter for the component\n * that allows tracking the file upload progress in real-time.\n * By passing resolveProgress, you can ensure that the component\n * displays accurate progress values for each file as they upload.\n * How to use it in AgGrid\n * cellRendererParams: {\n * resolveProgress: (cellData) => {\n * const progresses = app.progresses;\n * if (!cellData.value.importFileHandle) return undefined;\n * else return progresses[cellData.value.importFileHandle];\n * }\n * }\n */\n resolveImportProgress?: (cellData: ICellRendererParams<TData, TValue>) => ImportProgress | undefined;\n\n /**\n * The resolveFileHandle function is an optional input parameter for the component\n * that allows tracking the file upload progress in real-time.\n * By passing resolveFileHandle, you can ensure that the component\n * displays accurate progress values for each file as they upload.\n * How to use it in AgGrid\n * cellRendererParams: {\n * resolveFileHandle: (cellData) => {\n * return cellData.value.importFileHandle;\n * }\n * }\n */\n resolveImportFileHandle?: (cellData: ICellRendererParams<TData, TValue>) => ImportFileHandle | undefined;\n\n setImportFileHandle?: (d: ValueSetterParams<TData, ImportFileHandle | undefined>) => void;\n }) {\n return this.column(Object.assign({\n cellRenderer: 'PlAgCellFile',\n headerComponentParams: { type: 'File' },\n cellStyle: { padding: 0 },\n valueSetter: (d: ValueSetterParams<TData, ImportFileHandle | undefined>) => {\n def.setImportFileHandle?.(d);\n return true;\n },\n cellRendererSelector: (cellData: ICellRendererParams<TData, TValue>) => {\n return {\n component: 'PlAgCellFile',\n params: {\n extensions: def.extensions,\n value: def.resolveImportFileHandle?.(cellData),\n resolveProgress: () => {\n return def.resolveImportProgress?.(cellData);\n },\n },\n };\n },\n }, def));\n }\n\n public build() {\n return this.#options;\n }\n}\n\n// Simple helper to use like column<string> in grid options literal\ntype ColumnFunc<TData> = <TValue>(def: ColDefExtended<TData, TValue>) => ColDefExtended<TData, TValue>;\n\n/**\n * Returns a set of Ag Grid options along with a reference to the Ag Grid API.\n * (This is a fast prototype)\n *\n * @example\n * ```ts\n * const { gridOptions, gridApi } = useAgGridOptions(() => ({\n * // custom grid options here\n * }));\n *\n * // Usage in a template (v-bind is required!)\n * <template>\n * <AgGridVue :style=\"{ height: '100%' }\" v-bind=\"gridOptions\" />\n * </template>\n * ```\n */\nexport function useAgGridOptions<TData>(\n factory: (context: { builder: Builder<TData>; column: ColumnFunc<TData> }) => Builder<TData> | GridOptionsExtended<TData>,\n) {\n const gridApi = shallowRef<GridApi>();\n\n const extOptions = computed<GridOptionsExtended>(() => {\n const def: GridOptionsExtended<TData> = {\n theme: AgGridTheme,\n loadingOverlayComponent: PlAgOverlayLoading,\n noRowsOverlayComponent: PlAgOverlayNoRows,\n onGridReady: (e: GridReadyEvent) => {\n gridApi.value = e.api;\n autoSizeRowNumberColumn(e.api); // @TODO\n },\n };\n\n const column = <TValue>(def: ColDefExtended<TData, TValue>) => {\n return def;\n };\n\n const result = factory({ builder: new Builder(), column });\n\n const options = Object.assign({}, def, result instanceof Builder ? result.build() : result);\n\n if (options.rowNumbersColumn) {\n options.columnDefs = [makeRowNumberColDef(), ...(options.columnDefs ?? [])];\n }\n\n if (options.noRowsText) {\n options.noRowsOverlayComponentParams = {\n text: options.noRowsText,\n };\n }\n\n if ('loadingOverlayComponentParams' in options) {\n console.warn('useAgGridOptions: remove loadingOverlayComponentParams from options, use loading, notReady, loadingText, loadingOverlayType instead');\n }\n\n options.loading = options.notReady || options.loading;\n\n options.columnDefs = options.columnDefs?.map((it) => createAgGridColDef(it));\n\n // Register all special components\n options.components = Object.assign({}, options.components ?? {}, {\n PlAgCellFile,\n PlAgChartStackedBarCell,\n PlAgChartHistogramCell,\n PlAgCellStatusTag,\n });\n\n return options;\n });\n\n const gridOptions = computed<GridOptions>(() => {\n const options = extOptions.value;\n\n return {\n ...options,\n loadingOverlayComponentParams: {\n notReady: options.notReady,\n notReadyText: options.notReadyText,\n overlayType: options.loadingOverlayType,\n } satisfies PlAgOverlayLoadingParams,\n };\n });\n\n whenever(() => extOptions.value.rowNumbersColumn, () => {\n if (gridApi.value) {\n autoSizeRowNumberColumn(gridApi.value);\n }\n });\n\n watch([\n () => extOptions.value.notReady,\n () => extOptions.value.loading,\n ], ([notReady, loading]) => {\n const loadingOverlayComponentParams = {\n notReady,\n // we probably don't need to update the parameters below\n notReadyText: extOptions.value.notReadyText,\n overlayType: extOptions.value.loadingOverlayType,\n loadingText: extOptions.value.loadingText,\n } satisfies PlAgOverlayLoadingParams;\n\n // Hack to apply loadingOverlayComponentParams\n gridApi.value?.updateGridOptions({\n loading: !loading,\n loadingOverlayComponentParams,\n });\n\n gridApi.value?.updateGridOptions({\n loading,\n loadingOverlayComponentParams,\n });\n }, { deep: true, immediate: true });\n\n return { gridOptions, gridApi };\n};\n"],"names":["Builder","__privateAdd","_options","options","__privateSet","__privateGet","def","loading","loadingText","notReady","type","notReadyText","noRowsText","rowSelection","rowData","components","key","value","show","d","_a","cellData","useAgGridOptions","factory","gridApi","shallowRef","extOptions","computed","AgGridTheme","PlAgOverlayLoading","PlAgOverlayNoRows","e","autoSizeRowNumberColumn","column","result","makeRowNumberColDef","it","createAgGridColDef","PlAgCellFile","PlAgChartStackedBarCell","PlAgChartHistogramCell","PlAgCellStatusTag","gridOptions","whenever","watch","loadingOverlayComponentParams","_b"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useAgGridOptions.js","sources":["../../src/AgGridVue/useAgGridOptions.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { ColGroupDef, GridApi, GridOptions, GridReadyEvent, ICellRendererParams, RowSelectionOptions, ValueSetterParams } from 'ag-grid-enterprise';\nimport type { Component } from 'vue';\nimport { computed, shallowRef, watch } from 'vue';\nimport { AgGridTheme } from '../aggrid';\nimport { autoSizeRowNumberColumn, makeRowNumberColDef, PlAgOverlayLoading, type PlAgOverlayLoadingParams } from '../components/PlAgDataTable';\nimport { PlAgOverlayNoRows } from '../components/PlAgDataTable';\nimport { createAgGridColDef, type ColDefExtended } from './createAgGridColDef';\nimport { whenever } from '@vueuse/core';\nimport { PlAgCellFile } from '../components/PlAgCellFile';\nimport { PlAgChartStackedBarCell } from '../components/PlAgChartStackedBarCell';\nimport { PlAgChartHistogramCell } from '../components/PlAgChartHistogramCell';\nimport type { ImportFileHandle } from '@platforma-sdk/model';\nimport type { ImportProgress } from '@platforma-sdk/model';\nimport { PlAgCellStatusTag } from '../components/PlAgCellStatusTag';\ninterface GridOptionsExtended<TData = any> extends Omit<GridOptions<TData>, 'columnDefs' | 'loadingOverlayComponentParams'> {\n /**\n * Array of Column / Column Group definitions.\n */\n columnDefs?: (ColDefExtended<TData> | ColGroupDef<TData>)[] | null;\n /**\n * Show row numbers column\n */\n rowNumbersColumn?: boolean;\n /**\n * Loading overlay text\n */\n loadingText?: string;\n /**\n * Not ready overlay (No datasource). Takes priority over \"loading\"\n */\n notReady?: boolean;\n /**\n * \"No datasource\" by default\n */\n notReadyText?: string;\n /**\n * Use \"transparent\" to make table headers visible below the loading layer (experimental)\n */\n loadingOverlayType?: 'transparent' | undefined;\n /**\n * Override standard 'Empty' text for the \"no rows\" overlay\n */\n noRowsText?: string;\n /**\n * @deprecated Use loading, notReady, loadingText, loadingOverlayType instead\n */\n loadingOverlayComponentParams?: never;\n}\n\n// @TODO (super simple builder for now)\nclass Builder<TData> {\n #options: GridOptionsExtended<TData> = {};\n\n public options(options: GridOptionsExtended<TData>) {\n this.#options = Object.assign({}, this.#options, options);\n return this;\n }\n\n private get columnDefs() {\n return this.#options.columnDefs ?? [];\n }\n\n /**\n * Set default column definition\n * @param def - column definition\n * @returns this\n */\n public setDefaultColDef(def: ColDefExtended<TData>) {\n this.#options.defaultColDef = def;\n return this;\n }\n\n /**\n * Show loading overlay\n * @param loading\n * @returns this\n */\n public setLoading(loading?: boolean) {\n this.#options.loading = loading;\n return this;\n }\n\n /**\n * Set loading overlay custom text (default is \"Loading\")\n * @param loadingText\n * @returns this\n */\n public setLoadingText(loadingText?: string) {\n this.#options.loadingText = loadingText;\n return this;\n }\n\n /**\n * Show \"not ready overlay\n * @param notReady\n * @returns this\n */\n public setNotReady(notReady?: boolean) {\n this.#options.notReady = notReady;\n return this;\n }\n\n /**\n * Set loading overlay type\n * @param type\n * @returns this\n */\n public setLoadingOverlayType(type?: 'transparent') {\n this.#options.loadingOverlayType = type;\n return this;\n }\n\n /**\n * Set \"not ready\" text\n * @param notReadyText\n * @returns this\n */\n public setNotReadyText(notReadyText?: string) {\n this.#options.notReadyText = notReadyText;\n return this;\n }\n\n /**\n * Set \"no rows\" text when there are no rows (default is \"Empty\")\n * @param noRowsText\n * @returns this\n */\n public setNoRowsText(noRowsText?: string) {\n this.#options.noRowsText = noRowsText;\n return this;\n }\n\n /**\n * Set row selection options\n * @param rowSelection\n * @returns this\n */\n public setRowSelection(rowSelection?: RowSelectionOptions) {\n this.#options.rowSelection = rowSelection;\n return this;\n }\n\n /**\n * Set row data\n * @param rowData\n * @returns this\n */\n public setRowData(rowData?: TData[]) {\n this.#options.rowData = rowData;\n return this;\n }\n\n /**\n * Set components\n * @param components\n * @returns this\n */\n public setComponents(components?: Record<string, Component>) {\n this.#options.components = components;\n return this;\n }\n\n /**\n * Set an option\n * @param key - option key\n * @param value - option value\n * @returns this\n */\n public setOption<K extends keyof GridOptionsExtended<TData>>(key: K, value: GridOptionsExtended<TData>[K]) {\n this.#options[key] = value;\n return this;\n }\n\n /**\n * Add an extended column definition\n * @param def - column definition\n * @returns this\n */\n public column<TValue = any>(def: ColDefExtended<TData, TValue>) {\n this.#options.columnDefs = [...this.columnDefs, def];\n return this;\n }\n\n /**\n * Show row numbers column\n * @param show - show or hide row numbers column\n * @returns this\n */\n public columnRowNumbers(show: boolean = true) {\n this.#options.rowNumbersColumn = show;\n return this;\n }\n\n /**\n * Add a file input column\n * @param def - column definition\n * @param cb - callback to set params for the file input cell renderer\n * @returns this\n */\n public columnFileInput<TValue = any>(\n def: ColDefExtended<TData, TValue> & {\n /**\n * Allowed file extensions (like ['fastq.gz'])\n */\n extensions?: string[];\n /**\n * The resolveProgress function is an optional input parameter for the component\n * that allows tracking the file upload progress in real-time.\n * By passing resolveProgress, you can ensure that the component\n * displays accurate progress values for each file as they upload.\n * How to use it in AgGrid\n * cellRendererParams: {\n * resolveProgress: (cellData) => {\n * const progresses = app.progresses;\n * if (!cellData.value.importFileHandle) return undefined;\n * else return progresses[cellData.value.importFileHandle];\n * }\n * }\n */\n resolveImportProgress?: (cellData: ICellRendererParams<TData, TValue>) => ImportProgress | undefined;\n\n /**\n * The resolveFileHandle function is an optional input parameter for the component\n * that allows tracking the file upload progress in real-time.\n * By passing resolveFileHandle, you can ensure that the component\n * displays accurate progress values for each file as they upload.\n * How to use it in AgGrid\n * cellRendererParams: {\n * resolveFileHandle: (cellData) => {\n * return cellData.value.importFileHandle;\n * }\n * }\n */\n resolveImportFileHandle?: (cellData: ICellRendererParams<TData, TValue>) => ImportFileHandle | undefined;\n\n setImportFileHandle?: (d: ValueSetterParams<TData, ImportFileHandle | undefined>) => void;\n }) {\n return this.column(Object.assign({\n cellRenderer: 'PlAgCellFile',\n headerComponentParams: { type: 'File' },\n cellStyle: { padding: 0 },\n valueSetter: (d: ValueSetterParams<TData, ImportFileHandle | undefined>) => {\n def.setImportFileHandle?.(d);\n return true;\n },\n cellRendererSelector: (cellData: ICellRendererParams<TData, TValue>) => {\n return {\n component: 'PlAgCellFile',\n params: {\n extensions: def.extensions,\n value: def.resolveImportFileHandle?.(cellData),\n resolveProgress: () => {\n return def.resolveImportProgress?.(cellData);\n },\n },\n };\n },\n }, def));\n }\n\n public build() {\n return this.#options;\n }\n}\n\n// Simple helper to use like column<string> in grid options literal\ntype ColumnFunc<TData> = <TValue>(def: ColDefExtended<TData, TValue>) => ColDefExtended<TData, TValue>;\n\n/**\n * Returns a set of Ag Grid options along with a reference to the Ag Grid API.\n * (This is a fast prototype)\n *\n * @example\n * ```ts\n * const { gridOptions, gridApi } = useAgGridOptions(() => ({\n * // custom grid options here\n * }));\n *\n * // Usage in a template (v-bind is required!)\n * <template>\n * <AgGridVue :style=\"{ height: '100%' }\" v-bind=\"gridOptions\" />\n * </template>\n * ```\n */\nexport function useAgGridOptions<TData>(\n factory: (context: { builder: Builder<TData>; column: ColumnFunc<TData> }) => Builder<TData> | GridOptionsExtended<TData>,\n) {\n const gridApi = shallowRef<GridApi>();\n\n const extOptions = computed<GridOptionsExtended>(() => {\n const def: GridOptionsExtended<TData> = {\n theme: AgGridTheme,\n loadingOverlayComponent: PlAgOverlayLoading,\n noRowsOverlayComponent: PlAgOverlayNoRows,\n onGridReady: (e: GridReadyEvent) => {\n gridApi.value = e.api;\n autoSizeRowNumberColumn(e.api); // @TODO\n },\n };\n\n const column = <TValue>(def: ColDefExtended<TData, TValue>) => {\n return def;\n };\n\n const result = factory({ builder: new Builder(), column });\n\n const options = Object.assign({}, def, result instanceof Builder ? result.build() : result);\n\n if (options.rowNumbersColumn) {\n options.columnDefs = [makeRowNumberColDef(), ...(options.columnDefs ?? [])];\n }\n\n if (options.noRowsText) {\n options.noRowsOverlayComponentParams = {\n text: options.noRowsText,\n };\n }\n\n if ('loadingOverlayComponentParams' in options) {\n console.warn('useAgGridOptions: remove loadingOverlayComponentParams from options, use loading, notReady, loadingText, loadingOverlayType instead');\n }\n\n options.loading = options.notReady || options.loading;\n\n options.columnDefs = options.columnDefs?.map((it) => createAgGridColDef(it));\n\n // Register all special components\n options.components = Object.assign({}, options.components ?? {}, {\n PlAgCellFile,\n PlAgChartStackedBarCell,\n PlAgChartHistogramCell,\n PlAgCellStatusTag,\n });\n\n return options;\n });\n\n const gridOptions = computed<GridOptions>(() => {\n const options = extOptions.value;\n\n return {\n ...options,\n loadingOverlayComponentParams: {\n notReady: options.notReady,\n notReadyText: options.notReadyText,\n overlayType: options.loadingOverlayType,\n } satisfies PlAgOverlayLoadingParams,\n };\n });\n\n whenever(() => extOptions.value.rowNumbersColumn, () => {\n if (gridApi.value) {\n autoSizeRowNumberColumn(gridApi.value);\n }\n });\n\n watch([\n () => extOptions.value.notReady,\n () => extOptions.value.loading,\n ], ([notReady, loading]) => {\n const loadingOverlayComponentParams = {\n notReady,\n // we probably don't need to update the parameters below\n notReadyText: extOptions.value.notReadyText,\n overlayType: extOptions.value.loadingOverlayType,\n loadingText: extOptions.value.loadingText,\n } satisfies PlAgOverlayLoadingParams;\n\n // Hack to apply loadingOverlayComponentParams\n gridApi.value?.updateGridOptions({\n loading: !loading,\n loadingOverlayComponentParams,\n });\n\n gridApi.value?.updateGridOptions({\n loading,\n loadingOverlayComponentParams,\n });\n }, { deep: true, immediate: true });\n\n return { gridOptions, gridApi };\n};\n"],"names":["Builder","__privateAdd","_options","options","__privateSet","__privateGet","def","loading","loadingText","notReady","type","notReadyText","noRowsText","rowSelection","rowData","components","key","value","show","d","_a","cellData","useAgGridOptions","factory","gridApi","shallowRef","extOptions","computed","AgGridTheme","PlAgOverlayLoading","PlAgOverlayNoRows","e","autoSizeRowNumberColumn","column","result","makeRowNumberColDef","it","createAgGridColDef","PlAgCellFile","PlAgChartStackedBarCell","PlAgChartHistogramCell","PlAgCellStatusTag","gridOptions","whenever","watch","loadingOverlayComponentParams","_b"],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Operand } from './types';
|
|
2
2
|
type __VLS_Props = {
|
|
3
|
-
|
|
3
|
+
active: Operand;
|
|
4
|
+
disabled: boolean;
|
|
5
|
+
onSelect: (op: Operand) => void;
|
|
4
6
|
};
|
|
5
7
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
6
8
|
export default _default;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import o from "./
|
|
2
|
-
import s from "./
|
|
1
|
+
import o from "./OperandButton.vue2.js";
|
|
2
|
+
import s from "./OperandButton.vue3.js";
|
|
3
3
|
import t from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
4
|
const r = {
|
|
5
5
|
$style: s
|
|
@@ -7,4 +7,4 @@ const r = {
|
|
|
7
7
|
export {
|
|
8
8
|
f as default
|
|
9
9
|
};
|
|
10
|
-
//# sourceMappingURL=
|
|
10
|
+
//# sourceMappingURL=OperandButton.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OperandButton.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { defineComponent as r, createElementBlock as o, openBlock as s, mergeProps as c, Fragment as i, renderList as d, createElementVNode as p, normalizeClass as m, toDisplayString as u } from "vue";
|
|
2
|
+
const y = ["onClick"], b = /* @__PURE__ */ r({
|
|
3
|
+
__name: "OperandButton",
|
|
4
|
+
props: {
|
|
5
|
+
active: {},
|
|
6
|
+
disabled: { type: Boolean },
|
|
7
|
+
onSelect: { type: Function }
|
|
8
|
+
},
|
|
9
|
+
setup(a) {
|
|
10
|
+
const e = a, l = ["and", "or"];
|
|
11
|
+
return (t, k) => (s(), o("div", c(t.$attrs, {
|
|
12
|
+
class: t.$style.block
|
|
13
|
+
}), [
|
|
14
|
+
(s(), o(i, null, d(l, (n) => p("div", {
|
|
15
|
+
key: n,
|
|
16
|
+
class: m([t.$style.operand, { [t.$style.active]: n === e.active && !e.disabled }]),
|
|
17
|
+
onClick: (v) => !e.disabled && e.onSelect(n)
|
|
18
|
+
}, u(n), 11, y)), 64))
|
|
19
|
+
], 16));
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
export {
|
|
23
|
+
b as default
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=OperandButton.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OperandButton.vue2.js","sources":["../../../src/components/PlAdvancedFilter/OperandButton.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { Operand } from './types';\n\nconst props = defineProps<{\n active: Operand;\n disabled: boolean;\n onSelect: (op: Operand) => void;\n}>();\n\nconst OPTIONS: Operand[] = ['and', 'or'];\n</script>\n<template>\n <div v-bind=\"$attrs\" :class=\"$style.block\">\n <div\n v-for=\"op in OPTIONS\"\n :key=\"op\"\n :class=\"[$style.operand, {[$style.active]: op === props.active && !props.disabled}]\"\n @click=\"!props.disabled && props.onSelect(op)\"\n >\n {{ op }}\n </div>\n </div>\n</template>\n<style module>\n.block {\n width: 100%;\n display: flex;\n gap: 4px;\n justify-content: center;\n height: 72px;\n align-items: center;\n}\n.operand {\n border-radius: 16px;\n width: 64px;\n height: 32px;\n display: flex;\n justify-content: center;\n align-items: center;\n text-transform: uppercase;\n font-weight: 600;\n\n color: var(--txt-03);\n border: 1px solid var(--color-div-grey);\n background: transparent;\n cursor: pointer;\n}\n.operand.active {\n color: var(--txt-01);\n background: #fff;\n border: 1px solid var(--txt-01);\n}\n</style>\n"],"names":["props","__props","OPTIONS"],"mappings":";;;;;;;;;AAGA,UAAMA,IAAQC,GAMRC,IAAqB,CAAC,OAAO,IAAI;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("._block_17545_2{width:100%;display:flex;gap:4px;justify-content:center;height:72px;align-items:center}._operand_17545_10{border-radius:16px;width:64px;height:32px;display:flex;justify-content:center;align-items:center;text-transform:uppercase;font-weight:600;color:var(--txt-03);border:1px solid var(--color-div-grey);background:transparent;cursor:pointer}._operand_17545_10._active_17545_25{color:var(--txt-01);background:#fff;border:1px solid var(--txt-01)}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
|
|
2
|
+
const o = "_block_17545_2", c = "_operand_17545_10", t = "_active_17545_25", e = {
|
|
3
|
+
block: o,
|
|
4
|
+
operand: c,
|
|
5
|
+
active: t
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
t as active,
|
|
9
|
+
o as block,
|
|
10
|
+
e as default,
|
|
11
|
+
c as operand
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=OperandButton.vue3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OperandButton.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { PlAdvancedFilterColumnId, CommonFilterSpec, SourceOptionInfo } from './types';
|
|
2
|
+
import { ListOptionBase } from '@platforma-sdk/model';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
/** List of ids of sources (columns, axes) that can be selected in filters */
|
|
5
|
+
items: SourceOptionInfo[];
|
|
6
|
+
/** If true - new filter can be added by droppind element into filter group; else new column is added by button click */
|
|
7
|
+
enableDnd?: boolean;
|
|
8
|
+
/** Loading function for unique values for Equal/InSet filters and fixed axes options. */
|
|
9
|
+
getSuggestOptions: (params: {
|
|
10
|
+
columnId: PlAdvancedFilterColumnId;
|
|
11
|
+
searchStr: string;
|
|
12
|
+
axisIdx?: number;
|
|
13
|
+
}) => (Promise<ListOptionBase<string | number>[]>) | ((params: {
|
|
14
|
+
columnId: PlAdvancedFilterColumnId;
|
|
15
|
+
searchStr: string;
|
|
16
|
+
axisIdx?: number;
|
|
17
|
+
}) => ListOptionBase<string | number>[]);
|
|
18
|
+
/** Loading function for label of selected value for Equal/InSet filters and fixed axes options. */
|
|
19
|
+
getSuggestModel: (params: {
|
|
20
|
+
columnId: PlAdvancedFilterColumnId;
|
|
21
|
+
searchStr: string;
|
|
22
|
+
axisIdx?: number;
|
|
23
|
+
}) => (Promise<ListOptionBase<string | number>>) | ((params: {
|
|
24
|
+
columnId: PlAdvancedFilterColumnId;
|
|
25
|
+
searchStr: string;
|
|
26
|
+
axisIdx?: number;
|
|
27
|
+
}) => ListOptionBase<string | number>);
|
|
28
|
+
};
|
|
29
|
+
type __VLS_PublicProps = {
|
|
30
|
+
modelValue: CommonFilterSpec;
|
|
31
|
+
} & __VLS_Props;
|
|
32
|
+
declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
33
|
+
"update:modelValue": (value: CommonFilterSpec) => any;
|
|
34
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
35
|
+
"onUpdate:modelValue"?: ((value: CommonFilterSpec) => any) | undefined;
|
|
36
|
+
}>, {
|
|
37
|
+
enableDnd: boolean;
|
|
38
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
39
|
+
export default _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import s from "./PlAdvancedFilter.vue2.js";
|
|
2
|
+
import o from "./PlAdvancedFilter.vue3.js";
|
|
3
|
+
import t from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const e = {
|
|
5
|
+
$style: o
|
|
6
|
+
}, m = /* @__PURE__ */ t(s, [["__cssModules", e]]);
|
|
7
|
+
export {
|
|
8
|
+
m as default
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=PlAdvancedFilter.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlAdvancedFilter.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { defineComponent as B, mergeModels as L, useModel as z, computed as A, createElementBlock as m, openBlock as r, createVNode as d, unref as l, withCtx as i, normalizeClass as g, createElementVNode as v, createBlock as y, createTextVNode as a, Fragment as w, renderList as R } from "vue";
|
|
2
|
+
import q from "./SingleFilter.vue.js";
|
|
3
|
+
import { PlElementList as c, PlCheckbox as C, PlBtnSecondary as $, PlIcon16 as F } from "@milaboratories/uikit";
|
|
4
|
+
import I from "./OperandButton.vue.js";
|
|
5
|
+
import { DEFAULT_FILTERS as W, DEFAULT_FILTER_TYPE as Y } from "./constants.js";
|
|
6
|
+
import { useInnerModel as j, createNewGroup as H, isValidColumnId as U, toOuterModel as J, toInnerModel as K } from "./utils.js";
|
|
7
|
+
const Q = ["onDrop"], te = /* @__PURE__ */ B({
|
|
8
|
+
__name: "PlAdvancedFilter",
|
|
9
|
+
props: /* @__PURE__ */ L({
|
|
10
|
+
items: {},
|
|
11
|
+
enableDnd: { type: Boolean, default: !1 },
|
|
12
|
+
getSuggestOptions: {},
|
|
13
|
+
getSuggestModel: {}
|
|
14
|
+
}, {
|
|
15
|
+
modelValue: { required: !0 },
|
|
16
|
+
modelModifiers: {}
|
|
17
|
+
}),
|
|
18
|
+
emits: ["update:modelValue"],
|
|
19
|
+
setup(D) {
|
|
20
|
+
const E = D, M = z(D, "modelValue"), s = j(K, J, M), b = A(() => {
|
|
21
|
+
var o;
|
|
22
|
+
return (o = E.items[0]) == null ? void 0 : o.id;
|
|
23
|
+
}), V = [{
|
|
24
|
+
id: "empty",
|
|
25
|
+
not: !1,
|
|
26
|
+
operand: "and",
|
|
27
|
+
filters: [],
|
|
28
|
+
expanded: !0
|
|
29
|
+
}];
|
|
30
|
+
function k(o, e) {
|
|
31
|
+
s.value.groups[o].filters.push({
|
|
32
|
+
...W[Y],
|
|
33
|
+
column: e
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function P(o, e) {
|
|
37
|
+
s.value.groups[o].filters.length === 1 && e === 0 ? N(o) : s.value.groups[o].filters = s.value.groups[o].filters.filter((t, n) => n !== e);
|
|
38
|
+
}
|
|
39
|
+
function N(o) {
|
|
40
|
+
s.value.groups = s.value.groups.filter((e, t) => t !== o);
|
|
41
|
+
}
|
|
42
|
+
function G(o) {
|
|
43
|
+
const e = H(o);
|
|
44
|
+
s.value.groups.push(e);
|
|
45
|
+
}
|
|
46
|
+
function O(o, e) {
|
|
47
|
+
const t = e.dataTransfer;
|
|
48
|
+
if (t != null && t.getData("text/plain")) {
|
|
49
|
+
const n = t.getData("text/plain");
|
|
50
|
+
U(n) && k(o, n);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function S(o) {
|
|
54
|
+
const e = o.dataTransfer;
|
|
55
|
+
if (e != null && e.getData("text/plain")) {
|
|
56
|
+
const t = e.getData("text/plain");
|
|
57
|
+
U(t) && G(t);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function T(o) {
|
|
61
|
+
o.preventDefault();
|
|
62
|
+
}
|
|
63
|
+
return (o, e) => (r(), m("div", null, [
|
|
64
|
+
d(l(c), {
|
|
65
|
+
items: l(s).groups,
|
|
66
|
+
"onUpdate:items": e[0] || (e[0] = (t) => l(s).groups = t),
|
|
67
|
+
"get-item-key": (t) => t.id,
|
|
68
|
+
"item-class": o.$style.filterGroup,
|
|
69
|
+
"item-class-content": o.$style.filterGroupContent,
|
|
70
|
+
"item-class-title": o.$style.filterGroupTitle,
|
|
71
|
+
"is-expanded": (t) => t.expanded,
|
|
72
|
+
disableDragging: !1,
|
|
73
|
+
disableRemoving: !1,
|
|
74
|
+
disableToggling: !0,
|
|
75
|
+
disablePinning: !0,
|
|
76
|
+
"on-expand": (t) => {
|
|
77
|
+
t.expanded = !t.expanded;
|
|
78
|
+
}
|
|
79
|
+
}, {
|
|
80
|
+
"item-title": i(() => e[3] || (e[3] = [
|
|
81
|
+
a(" Filter group ")
|
|
82
|
+
])),
|
|
83
|
+
"item-content": i(({ item: t, index: n }) => [
|
|
84
|
+
v("div", {
|
|
85
|
+
class: g(o.$style.groupContent),
|
|
86
|
+
dropzone: "true",
|
|
87
|
+
onDrop: (u) => O(n, u),
|
|
88
|
+
onDragover: T
|
|
89
|
+
}, [
|
|
90
|
+
d(l(C), {
|
|
91
|
+
modelValue: t.not,
|
|
92
|
+
"onUpdate:modelValue": (u) => t.not = u
|
|
93
|
+
}, {
|
|
94
|
+
default: i(() => e[4] || (e[4] = [
|
|
95
|
+
a("NOT")
|
|
96
|
+
])),
|
|
97
|
+
_: 2
|
|
98
|
+
}, 1032, ["modelValue", "onUpdate:modelValue"]),
|
|
99
|
+
(r(!0), m(w, null, R(t.filters, (u, p) => (r(), y(q, {
|
|
100
|
+
key: p,
|
|
101
|
+
modelValue: t.filters[p],
|
|
102
|
+
"onUpdate:modelValue": (f) => t.filters[p] = f,
|
|
103
|
+
operand: t.operand,
|
|
104
|
+
"column-options": o.items,
|
|
105
|
+
"get-suggest-model": o.getSuggestModel,
|
|
106
|
+
"get-suggest-options": o.getSuggestOptions,
|
|
107
|
+
"enable-dnd": o.enableDnd,
|
|
108
|
+
"is-last": p === t.filters.length - 1,
|
|
109
|
+
"on-change-operand": (f) => t.operand = f,
|
|
110
|
+
"on-delete": () => P(n, p)
|
|
111
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "operand", "column-options", "get-suggest-model", "get-suggest-options", "enable-dnd", "is-last", "on-change-operand", "on-delete"]))), 128)),
|
|
112
|
+
o.enableDnd ? (r(), m("div", {
|
|
113
|
+
key: 0,
|
|
114
|
+
class: g(o.$style.dropzone)
|
|
115
|
+
}, e[5] || (e[5] = [
|
|
116
|
+
v("div", null, "Drop dimensions here", -1)
|
|
117
|
+
]), 2)) : (r(), y(l($), {
|
|
118
|
+
key: 1,
|
|
119
|
+
onClick: (u) => k(n, b.value)
|
|
120
|
+
}, {
|
|
121
|
+
default: i(() => [
|
|
122
|
+
d(l(F), {
|
|
123
|
+
name: "add",
|
|
124
|
+
style: { "margin-right": "8px" }
|
|
125
|
+
}),
|
|
126
|
+
e[6] || (e[6] = a("Add column "))
|
|
127
|
+
]),
|
|
128
|
+
_: 2
|
|
129
|
+
}, 1032, ["onClick"]))
|
|
130
|
+
], 42, Q)
|
|
131
|
+
]),
|
|
132
|
+
"item-after": i(({ index: t }) => [
|
|
133
|
+
d(I, {
|
|
134
|
+
class: g(o.$style.buttonWrapper),
|
|
135
|
+
active: l(s).operand,
|
|
136
|
+
disabled: t === l(s).groups.length - 1,
|
|
137
|
+
"on-select": (n) => l(s).operand = n
|
|
138
|
+
}, null, 8, ["class", "active", "disabled", "on-select"])
|
|
139
|
+
]),
|
|
140
|
+
_: 1
|
|
141
|
+
}, 8, ["items", "get-item-key", "item-class", "item-class-content", "item-class-title", "is-expanded", "on-expand"]),
|
|
142
|
+
d(l(c), {
|
|
143
|
+
items: V,
|
|
144
|
+
"onUpdate:items": e[2] || (e[2] = (t) => V = t),
|
|
145
|
+
"get-item-key": (t) => t.id,
|
|
146
|
+
"item-class": o.$style.filterGroup,
|
|
147
|
+
"item-class-content": o.$style.filterGroupContent,
|
|
148
|
+
"item-class-title": o.$style.filterGroupTitle,
|
|
149
|
+
"is-expanded": () => !0,
|
|
150
|
+
disableDragging: !0,
|
|
151
|
+
disableRemoving: !0,
|
|
152
|
+
disableToggling: !0,
|
|
153
|
+
disablePinning: !0,
|
|
154
|
+
dropzone: "true",
|
|
155
|
+
onDrop: S,
|
|
156
|
+
onDragover: T
|
|
157
|
+
}, {
|
|
158
|
+
"item-title": i(() => e[7] || (e[7] = [
|
|
159
|
+
a("Filter group")
|
|
160
|
+
])),
|
|
161
|
+
"item-content": i(({ item: t }) => [
|
|
162
|
+
d(l(C), {
|
|
163
|
+
modelValue: t.not,
|
|
164
|
+
"onUpdate:modelValue": (n) => t.not = n,
|
|
165
|
+
disabled: ""
|
|
166
|
+
}, {
|
|
167
|
+
default: i(() => e[8] || (e[8] = [
|
|
168
|
+
a("NOT")
|
|
169
|
+
])),
|
|
170
|
+
_: 2
|
|
171
|
+
}, 1032, ["modelValue", "onUpdate:modelValue"]),
|
|
172
|
+
o.enableDnd ? (r(), m("div", {
|
|
173
|
+
key: 0,
|
|
174
|
+
class: g(o.$style.dropzone)
|
|
175
|
+
}, e[9] || (e[9] = [
|
|
176
|
+
v("div", null, "Drop dimensions here", -1)
|
|
177
|
+
]), 2)) : (r(), y(l($), {
|
|
178
|
+
key: 1,
|
|
179
|
+
onClick: e[1] || (e[1] = (n) => G(b.value))
|
|
180
|
+
}, {
|
|
181
|
+
default: i(() => [
|
|
182
|
+
d(l(F), {
|
|
183
|
+
name: "add",
|
|
184
|
+
style: { "margin-right": "8px" }
|
|
185
|
+
}),
|
|
186
|
+
e[10] || (e[10] = a("Add column "))
|
|
187
|
+
]),
|
|
188
|
+
_: 1
|
|
189
|
+
}))
|
|
190
|
+
]),
|
|
191
|
+
_: 1
|
|
192
|
+
}, 8, ["get-item-key", "item-class", "item-class-content", "item-class-title"])
|
|
193
|
+
]));
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
export {
|
|
197
|
+
te as default
|
|
198
|
+
};
|
|
199
|
+
//# sourceMappingURL=PlAdvancedFilter.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlAdvancedFilter.vue2.js","sources":["../../../src/components/PlAdvancedFilter/PlAdvancedFilter.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport SingleFilter from './SingleFilter.vue';\nimport { PlBtnSecondary, PlElementList, PlCheckbox, PlIcon16 } from '@milaboratories/uikit';\nimport type { PlAdvancedFilterColumnId, CommonFilterSpec, Group, PlAdvancedFilterUI, SourceOptionInfo } from './types';\nimport { computed } from 'vue';\nimport OperandButton from './OperandButton.vue';\nimport { DEFAULT_FILTER_TYPE, DEFAULT_FILTERS } from './constants';\nimport type { ListOptionBase } from '@platforma-sdk/model';\nimport { createNewGroup, isValidColumnId, toInnerModel, toOuterModel, useInnerModel } from './utils';\n\nconst props = withDefaults(defineProps<{\n /** List of ids of sources (columns, axes) that can be selected in filters */\n items: SourceOptionInfo[];\n /** If true - new filter can be added by droppind element into filter group; else new column is added by button click */\n enableDnd?: boolean;\n /** Loading function for unique values for Equal/InSet filters and fixed axes options. */\n getSuggestOptions: (params: { columnId: PlAdvancedFilterColumnId; searchStr: string; axisIdx?: number }) => (Promise<ListOptionBase<string | number>[]>) |\n ((params: { columnId: PlAdvancedFilterColumnId; searchStr: string; axisIdx?: number }) => ListOptionBase<string | number>[]);\n /** Loading function for label of selected value for Equal/InSet filters and fixed axes options. */\n getSuggestModel: (params: { columnId: PlAdvancedFilterColumnId; searchStr: string; axisIdx?: number }) => (Promise<ListOptionBase<string | number>>) |\n ((params: { columnId: PlAdvancedFilterColumnId; searchStr: string; axisIdx?: number }) => ListOptionBase<string | number>);\n}>(), { enableDnd: false });\n\nconst model = defineModel<CommonFilterSpec>({ required: true });\nconst innerModel = useInnerModel<CommonFilterSpec, PlAdvancedFilterUI>(toInnerModel, toOuterModel, model);\n\nconst firstColumnId = computed(() => props.items[0]?.id);\nconst emptyGroup: Group[] = [{\n id: 'empty',\n not: false,\n operand: 'and',\n filters: [],\n expanded: true,\n}];\n\nfunction addColumnToGroup(groupIdx: number, selectedSourceId: PlAdvancedFilterColumnId) {\n innerModel.value.groups[groupIdx].filters.push({\n ...DEFAULT_FILTERS[DEFAULT_FILTER_TYPE],\n column: selectedSourceId,\n });\n}\n\nfunction removeFilterFromGroup(groupIdx: number, filterIdx: number) {\n if (innerModel.value.groups[groupIdx].filters.length === 1 && filterIdx === 0) {\n removeGroup(groupIdx);\n } else {\n innerModel.value.groups[groupIdx].filters = innerModel.value.groups[groupIdx].filters.filter((_v, idx) => idx !== filterIdx);\n }\n}\n\nfunction removeGroup(groupIdx: number) {\n innerModel.value.groups = innerModel.value.groups.filter((v, idx) => idx !== groupIdx);\n}\nfunction addGroup(selectedSourceId: PlAdvancedFilterColumnId) {\n const newGroup = createNewGroup(selectedSourceId);\n innerModel.value.groups.push(newGroup);\n}\n\nfunction handleDropToExistingGroup(groupIdx: number, event: DragEvent) {\n const dataTransfer = event.dataTransfer;\n if (dataTransfer?.getData('text/plain')) {\n const draggedId = dataTransfer.getData('text/plain');\n if (isValidColumnId(draggedId)) {\n addColumnToGroup(groupIdx, draggedId);\n }\n }\n}\nfunction handleDropToNewGroup(event: DragEvent) {\n const dataTransfer = event.dataTransfer;\n if (dataTransfer?.getData('text/plain')) {\n const draggedId = dataTransfer.getData('text/plain');\n if (isValidColumnId(draggedId)) {\n addGroup(draggedId);\n }\n }\n}\nfunction dragOver(event: DragEvent) {\n event.preventDefault();\n}\n</script>\n<template>\n <div>\n <PlElementList\n v-model:items=\"innerModel.groups\"\n :get-item-key=\"(group) => group.id\"\n\n :item-class=\"$style.filterGroup\"\n :item-class-content=\"$style.filterGroupContent\"\n :item-class-title=\"$style.filterGroupTitle\"\n\n :is-expanded=\"(group) => group.expanded\"\n\n :disableDragging=\"false\"\n :disableRemoving=\"false\"\n :disableToggling=\"true\"\n :disablePinning=\"true\"\n\n :on-expand=\"(group) => { group.expanded = !group.expanded}\"\n >\n <template #item-title>\n Filter group\n </template>\n <template #item-content=\"{ item, index }\">\n <div\n :class=\"$style.groupContent\" dropzone=\"true\"\n @drop=\"(event) => handleDropToExistingGroup(index, event)\"\n @dragover=\"dragOver\"\n >\n <PlCheckbox v-model=\"item.not\">NOT</PlCheckbox>\n <SingleFilter\n v-for=\"(filter, filterIdx) in item.filters\"\n :key=\"filterIdx\"\n v-model=\"item.filters[filterIdx]\"\n :operand=\"item.operand\"\n :column-options=\"items\"\n :get-suggest-model=\"getSuggestModel\"\n :get-suggest-options=\"getSuggestOptions\"\n :enable-dnd=\"enableDnd\"\n :is-last=\"filterIdx === item.filters.length - 1\"\n :on-change-operand=\"(v) => item.operand = v\"\n :on-delete=\"() => removeFilterFromGroup(index, filterIdx)\"\n />\n <div v-if=\"enableDnd\" :class=\"$style.dropzone\">\n <div>Drop dimensions here</div>\n </div>\n <PlBtnSecondary v-else @click=\"addColumnToGroup(index, firstColumnId)\">\n <PlIcon16 name=\"add\" style=\"margin-right: 8px\"/>Add column\n </PlBtnSecondary>\n </div>\n </template>\n <template #item-after=\"{ index }\">\n <OperandButton\n :class=\"$style.buttonWrapper\"\n :active=\"innerModel.operand\"\n :disabled=\"index === innerModel.groups.length - 1\"\n :on-select=\"(v) => innerModel.operand = v\"\n />\n </template>\n </PlElementList>\n\n <!-- Last group - always exists, always empty, just for adding new groups -->\n <PlElementList\n v-model:items=\"emptyGroup\"\n :get-item-key=\"(group) => group.id\"\n :item-class=\"$style.filterGroup\"\n :item-class-content=\"$style.filterGroupContent\"\n :item-class-title=\"$style.filterGroupTitle\"\n\n :is-expanded=\"() => true\"\n\n :disableDragging=\"true\"\n :disableRemoving=\"true\"\n :disableToggling=\"true\"\n :disablePinning=\"true\"\n dropzone=\"true\"\n @drop=\"handleDropToNewGroup\"\n @dragover=\"dragOver\"\n >\n <template #item-title>Filter group</template>\n <template #item-content=\"{item}\">\n <PlCheckbox v-model=\"item.not\" disabled >NOT</PlCheckbox>\n <div v-if=\"enableDnd\" :class=\"$style.dropzone\">\n <div>Drop dimensions here</div>\n </div>\n <PlBtnSecondary v-else @click=\"addGroup(firstColumnId)\">\n <PlIcon16 name=\"add\" style=\"margin-right: 8px\"/>Add column\n </PlBtnSecondary>\n </template>\n </PlElementList>\n </div>\n</template>\n<style module>\n .filterGroup {\n background: var(--bg-base-light);\n }\n .filterGroup:hover {\n background: rgba(99, 224, 36, 0.12);\n }\n .filterGroupTitle {\n background: none;\n }\n .groupContent {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n .dropzone {\n border-radius: 6px;\n border: 1.5px dashed var(--color-div-grey);\n color: var(--txt-03);\n font-family: Manrope;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n height: 40px;\n cursor: default;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .buttonWrapper {\n height: 72px;\n display: flex;\n align-items: center;\n }\n :global(.sortable-chosen) .buttonWrapper {\n visibility: hidden;\n }\n</style>\n"],"names":["props","__props","model","_useModel","innerModel","useInnerModel","toInnerModel","toOuterModel","firstColumnId","computed","_a","emptyGroup","addColumnToGroup","groupIdx","selectedSourceId","DEFAULT_FILTERS","DEFAULT_FILTER_TYPE","removeFilterFromGroup","filterIdx","removeGroup","_v","idx","v","addGroup","newGroup","createNewGroup","handleDropToExistingGroup","event","dataTransfer","draggedId","isValidColumnId","handleDropToNewGroup","dragOver"],"mappings":";;;;;;;;;;;;;;;;;;;AAUA,UAAMA,IAAQC,GAaRC,IAAQC,iBAAgD,GACxDC,IAAaC,EAAoDC,GAAcC,GAAcL,CAAK,GAElGM,IAAgBC,EAAS,MAAA;;AAAM,cAAAC,IAAAV,EAAM,MAAM,CAAC,MAAb,gBAAAU,EAAgB;AAAA,KAAE,GACjDC,IAAsB,CAAC;AAAA,MAC3B,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,SAAS;AAAA,MACT,SAAS,CAAA;AAAA,MACT,UAAU;AAAA,IAAA,CACX;AAED,aAASC,EAAiBC,GAAkBC,GAA4C;AACtF,MAAAV,EAAW,MAAM,OAAOS,CAAQ,EAAE,QAAQ,KAAK;AAAA,QAC7C,GAAGE,EAAgBC,CAAmB;AAAA,QACtC,QAAQF;AAAA,MAAA,CACT;AAAA,IACH;AAEA,aAASG,EAAsBJ,GAAkBK,GAAmB;AAClE,MAAId,EAAW,MAAM,OAAOS,CAAQ,EAAE,QAAQ,WAAW,KAAKK,MAAc,IAC1EC,EAAYN,CAAQ,IAEpBT,EAAW,MAAM,OAAOS,CAAQ,EAAE,UAAUT,EAAW,MAAM,OAAOS,CAAQ,EAAE,QAAQ,OAAO,CAACO,GAAIC,MAAQA,MAAQH,CAAS;AAAA,IAE/H;AAEA,aAASC,EAAYN,GAAkB;AACrC,MAAAT,EAAW,MAAM,SAASA,EAAW,MAAM,OAAO,OAAO,CAACkB,GAAGD,MAAQA,MAAQR,CAAQ;AAAA,IACvF;AACA,aAASU,EAAST,GAA4C;AAC5D,YAAMU,IAAWC,EAAeX,CAAgB;AAChD,MAAAV,EAAW,MAAM,OAAO,KAAKoB,CAAQ;AAAA,IACvC;AAEA,aAASE,EAA0Bb,GAAkBc,GAAkB;AACrE,YAAMC,IAAeD,EAAM;AAC3B,UAAIC,KAAA,QAAAA,EAAc,QAAQ,eAAe;AACvC,cAAMC,IAAYD,EAAa,QAAQ,YAAY;AACnD,QAAIE,EAAgBD,CAAS,KAC3BjB,EAAiBC,GAAUgB,CAAS;AAAA,MAExC;AAAA,IACF;AACA,aAASE,EAAqBJ,GAAkB;AAC9C,YAAMC,IAAeD,EAAM;AAC3B,UAAIC,KAAA,QAAAA,EAAc,QAAQ,eAAe;AACvC,cAAMC,IAAYD,EAAa,QAAQ,YAAY;AACnD,QAAIE,EAAgBD,CAAS,KAC3BN,EAASM,CAAS;AAAA,MAEtB;AAAA,IACF;AACA,aAASG,EAASL,GAAkB;AAClC,MAAAA,EAAM,eAAA;AAAA,IACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("._filterGroup_9px85_2{background:var(--bg-base-light)}._filterGroup_9px85_2:hover{background:#63e0241f}._filterGroupTitle_9px85_8{background:none}._groupContent_9px85_11{display:flex;flex-direction:column;gap:12px}._dropzone_9px85_16{border-radius:6px;border:1.5px dashed var(--color-div-grey);color:var(--txt-03);font-family:Manrope;font-size:14px;font-style:normal;font-weight:500;height:40px;cursor:default;display:flex;justify-content:center;align-items:center}._buttonWrapper_9px85_30{height:72px;display:flex;align-items:center}.sortable-chosen ._buttonWrapper_9px85_30{visibility:hidden}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
|
|
2
|
+
const t = "_filterGroup_9px85_2", o = "_filterGroupTitle_9px85_8", r = "_groupContent_9px85_11", p = "_dropzone_9px85_16", e = "_buttonWrapper_9px85_30", n = {
|
|
3
|
+
filterGroup: t,
|
|
4
|
+
filterGroupTitle: o,
|
|
5
|
+
groupContent: r,
|
|
6
|
+
dropzone: p,
|
|
7
|
+
buttonWrapper: e
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
e as buttonWrapper,
|
|
11
|
+
n as default,
|
|
12
|
+
p as dropzone,
|
|
13
|
+
t as filterGroup,
|
|
14
|
+
o as filterGroupTitle,
|
|
15
|
+
r as groupContent
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=PlAdvancedFilter.vue3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlAdvancedFilter.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { PlAdvancedFilterColumnId, Filter, Operand, SourceOptionInfo } from './types';
|
|
2
|
+
import { SUniversalPColumnId, ListOptionBase } from '@platforma-sdk/model';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
operand: Operand;
|
|
5
|
+
columnOptions: SourceOptionInfo[];
|
|
6
|
+
enableDnd: boolean;
|
|
7
|
+
isLast: boolean;
|
|
8
|
+
getSuggestOptions: (params: {
|
|
9
|
+
columnId: PlAdvancedFilterColumnId;
|
|
10
|
+
searchStr: string;
|
|
11
|
+
axisIdx?: number;
|
|
12
|
+
}) => (Promise<ListOptionBase<string | number>[]>) | ((params: {
|
|
13
|
+
columnId: SUniversalPColumnId;
|
|
14
|
+
searchStr: string;
|
|
15
|
+
axisIdx?: number;
|
|
16
|
+
}) => ListOptionBase<string | number>[]);
|
|
17
|
+
getSuggestModel: (params: {
|
|
18
|
+
columnId: PlAdvancedFilterColumnId;
|
|
19
|
+
searchStr: string;
|
|
20
|
+
axisIdx?: number;
|
|
21
|
+
}) => (Promise<ListOptionBase<string | number>>) | ((params: {
|
|
22
|
+
columnId: PlAdvancedFilterColumnId;
|
|
23
|
+
searchStr: string;
|
|
24
|
+
axisIdx?: number;
|
|
25
|
+
}) => ListOptionBase<string | number>);
|
|
26
|
+
onDelete: (columnId: PlAdvancedFilterColumnId) => void;
|
|
27
|
+
onChangeOperand: (op: Operand) => void;
|
|
28
|
+
};
|
|
29
|
+
type __VLS_PublicProps = {
|
|
30
|
+
modelValue: Filter;
|
|
31
|
+
} & __VLS_Props;
|
|
32
|
+
declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
33
|
+
"update:modelValue": (value: Filter) => any;
|
|
34
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
35
|
+
"onUpdate:modelValue"?: ((value: Filter) => any) | undefined;
|
|
36
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
37
|
+
export default _default;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import s from "./
|
|
2
|
-
import o from "./
|
|
1
|
+
import s from "./SingleFilter.vue2.js";
|
|
2
|
+
import o from "./SingleFilter.vue3.js";
|
|
3
3
|
import t from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
4
|
const e = {
|
|
5
5
|
$style: o
|
|
@@ -7,4 +7,4 @@ const e = {
|
|
|
7
7
|
export {
|
|
8
8
|
c as default
|
|
9
9
|
};
|
|
10
|
-
//# sourceMappingURL=
|
|
10
|
+
//# sourceMappingURL=SingleFilter.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SingleFilter.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|