@platforma-sdk/ui-vue 1.45.42 → 1.45.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/.turbo/turbo-build.log +22 -38
  2. package/.turbo/turbo-type-check.log +1 -1
  3. package/CHANGELOG.md +10 -0
  4. package/dist/components/PlAdvancedFilter/{SingleFilter.vue.d.ts → FilterEditor.vue.d.ts} +12 -18
  5. package/dist/components/PlAdvancedFilter/FilterEditor.vue.js +10 -0
  6. package/dist/components/PlAdvancedFilter/FilterEditor.vue.js.map +1 -0
  7. package/dist/components/PlAdvancedFilter/FilterEditor.vue2.js +305 -0
  8. package/dist/components/PlAdvancedFilter/FilterEditor.vue2.js.map +1 -0
  9. package/dist/components/PlAdvancedFilter/FilterEditor.vue3.js +33 -0
  10. package/dist/components/PlAdvancedFilter/FilterEditor.vue3.js.map +1 -0
  11. package/dist/components/PlAdvancedFilter/OperandButton.vue2.js.map +1 -1
  12. package/dist/components/PlAdvancedFilter/OperandButton.vue3.js +9 -9
  13. package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue.d.ts +35 -16
  14. package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js +185 -145
  15. package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js.map +1 -1
  16. package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue3.js +13 -9
  17. package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue3.js.map +1 -1
  18. package/dist/components/PlAdvancedFilter/constants.d.ts +4 -4
  19. package/dist/components/PlAdvancedFilter/constants.js +26 -22
  20. package/dist/components/PlAdvancedFilter/constants.js.map +1 -1
  21. package/dist/components/PlAdvancedFilter/index.d.ts +4 -0
  22. package/dist/components/PlAdvancedFilter/index.js +9 -0
  23. package/dist/components/PlAdvancedFilter/index.js.map +1 -0
  24. package/dist/components/PlAdvancedFilter/types.d.ts +30 -34
  25. package/dist/components/PlAdvancedFilter/utils.d.ts +26 -0
  26. package/dist/components/PlAdvancedFilter/utils.js +32 -131
  27. package/dist/components/PlAdvancedFilter/utils.js.map +1 -1
  28. package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue2.js +43 -41
  29. package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue2.js.map +1 -1
  30. package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue3.js +2 -2
  31. package/dist/components/PlAnnotations/components/FilterSidebar.vue.d.ts +14 -2
  32. package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js +99 -90
  33. package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js.map +1 -1
  34. package/dist/components/PlAnnotations/components/FilterSidebar.vue3.js +5 -5
  35. package/dist/components/PlAnnotations/components/PlAnnotations.vue2.js +32 -30
  36. package/dist/components/PlAnnotations/components/PlAnnotations.vue2.js.map +1 -1
  37. package/dist/components/PlAnnotations/components/PlAnnotations.vue3.js +5 -7
  38. package/dist/components/PlAnnotations/components/PlAnnotations.vue3.js.map +1 -1
  39. package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue2.js +26 -22
  40. package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue2.js.map +1 -1
  41. package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue3.js +7 -9
  42. package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue3.js.map +1 -1
  43. package/dist/components/PlAnnotations/components/style.module.css.js +13 -0
  44. package/dist/components/PlAnnotations/components/style.module.css.js.map +1 -0
  45. package/dist/components/PlAnnotations/index.d.ts +1 -0
  46. package/dist/index.js +35 -33
  47. package/dist/index.js.map +1 -1
  48. package/package.json +8 -7
  49. package/src/components/PlAdvancedFilter/{SingleFilter.vue → FilterEditor.vue} +53 -53
  50. package/src/components/PlAdvancedFilter/OperandButton.vue +1 -1
  51. package/src/components/PlAdvancedFilter/PlAdvancedFilter.vue +155 -59
  52. package/src/components/PlAdvancedFilter/constants.ts +17 -11
  53. package/src/components/PlAdvancedFilter/index.ts +6 -0
  54. package/src/components/PlAdvancedFilter/types.ts +23 -54
  55. package/src/components/PlAdvancedFilter/utils.ts +51 -163
  56. package/src/components/PlAnnotations/components/AnnotationsSidebar.vue +8 -8
  57. package/src/components/PlAnnotations/components/FilterSidebar.vue +64 -69
  58. package/src/components/PlAnnotations/components/PlAnnotations.vue +4 -7
  59. package/src/components/PlAnnotations/components/PlAnnotationsModal.vue +5 -8
  60. package/src/components/PlAnnotations/components/style.module.css +16 -0
  61. package/src/components/PlAnnotations/index.ts +2 -0
  62. package/dist/components/PlAdvancedFilter/SingleFilter.vue.js +0 -10
  63. package/dist/components/PlAdvancedFilter/SingleFilter.vue.js.map +0 -1
  64. package/dist/components/PlAdvancedFilter/SingleFilter.vue2.js +0 -306
  65. package/dist/components/PlAdvancedFilter/SingleFilter.vue2.js.map +0 -1
  66. package/dist/components/PlAdvancedFilter/SingleFilter.vue3.js +0 -35
  67. package/dist/components/PlAdvancedFilter/SingleFilter.vue3.js.map +0 -1
  68. package/dist/components/PlAdvancedFilter/types.js +0 -8
  69. package/dist/components/PlAdvancedFilter/types.js.map +0 -1
  70. package/dist/components/PlAnnotations/components/DynamicForm.vue.d.ts +0 -24
  71. package/dist/components/PlAnnotations/components/DynamicForm.vue.js +0 -10
  72. package/dist/components/PlAnnotations/components/DynamicForm.vue.js.map +0 -1
  73. package/dist/components/PlAnnotations/components/DynamicForm.vue2.js +0 -109
  74. package/dist/components/PlAnnotations/components/DynamicForm.vue2.js.map +0 -1
  75. package/dist/components/PlAnnotations/components/DynamicForm.vue3.js +0 -9
  76. package/dist/components/PlAnnotations/components/DynamicForm.vue3.js.map +0 -1
  77. package/dist/components/PlAnnotations/utils.js +0 -20
  78. package/dist/components/PlAnnotations/utils.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterEditor.vue2.js","sources":["../../../src/components/PlAdvancedFilter/FilterEditor.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlAutocomplete, PlAutocompleteMulti, PlDropdown, PlIcon16, PlNumberField, PlTextField, PlToggleSwitch, Slider } from '@milaboratories/uikit';\nimport type { AnchoredPColumnId, AxisFilterByIdx, AxisFilterValue, SUniversalPColumnId } from '@platforma-sdk/model';\nimport { isFilteredPColumn, parseColumnId, stringifyColumnId, type ListOptionBase } from '@platforma-sdk/model';\nimport { computed } from 'vue';\nimport type { SUPPORTED_FILTER_TYPES } from './constants';\nimport { DEFAULT_FILTER_TYPE, DEFAULT_FILTERS } from './constants';\nimport OperandButton from './OperandButton.vue';\nimport type { EditableFilter, Operand, PlAdvancedFilterColumnId, SourceOptionInfo } from './types';\nimport { getFilterInfo, getNormalizedSpec, isNumericFilter, isPositionFilter } from './utils';\n\nconst filter = defineModel<EditableFilter>('filter', { required: true });\n\nconst props = defineProps<{\n isLast: boolean;\n operand: Operand;\n enableDnd: boolean;\n columnOptions: SourceOptionInfo[];\n supportedFilters: typeof SUPPORTED_FILTER_TYPES;\n getSuggestOptions: (params: { columnId: PlAdvancedFilterColumnId; searchStr: string; axisIdx?: number }) =>\n ListOptionBase<string | number>[] | Promise<ListOptionBase<string | number>[]>;\n getSuggestModel?: (params: { columnId: PlAdvancedFilterColumnId; searchStr: string; axisIdx?: number }) =>\n ListOptionBase<string | number> | Promise<ListOptionBase<string | number>>;\n onDelete: (columnId: PlAdvancedFilterColumnId) => void;\n onChangeOperand: (op: Operand) => void;\n}>();\n\nconst getSuggestModel = (...args: Parameters<typeof props.getSuggestOptions>) => typeof props.getSuggestModel === 'function'\n ? props.getSuggestModel(...args)\n : Promise.resolve(props.getSuggestOptions(...args)).then((options) => options[0]);\n\nasync function getSuggestModelMultiFn(id: PlAdvancedFilterColumnId, v: string[], axisIdx?: number): Promise<ListOptionBase<string>[]> {\n return Promise.all(v.map((v) => getSuggestModel({ columnId: id, searchStr: v, axisIdx }) as Promise<ListOptionBase<string>>));\n}\nasync function getSuggestModelSingleFn(id: PlAdvancedFilterColumnId, v: string, axisIdx?: number): Promise<ListOptionBase<string>> {\n return getSuggestModel({ columnId: id, searchStr: v, axisIdx }) as Promise<ListOptionBase<string>>;\n}\nasync function getSuggestOptionsFn(id: PlAdvancedFilterColumnId, str: string, axisIdx?: number): Promise<ListOptionBase<string>[]> {\n return props.getSuggestOptions({ columnId: id, searchStr: str, axisIdx }) as Promise<ListOptionBase<string>[]>;\n}\n\ntype Entries<T> = { [K in keyof T]: [K, T[K]] }[keyof T][];\nfunction changeFilterType() {\n const defaultFilter = DEFAULT_FILTERS[filter.value.type];\n\n filter.value = (Object.entries(defaultFilter) as Entries<EditableFilter>).reduce((res, [key, val]) => {\n res[key] = filter.value[key] ?? val;\n return res;\n }, {} as Record<keyof EditableFilter, EditableFilter[keyof EditableFilter]>) as EditableFilter;\n}\n\nfunction changeSourceId(newSourceId?: PlAdvancedFilterColumnId) {\n if (!newSourceId) {\n return;\n }\n const newSourceInfo = props.columnOptions.find((v) => v.id === getSourceId(newSourceId));\n if (!newSourceInfo) {\n return;\n }\n const filterInfo = getFilterInfo(filter.value.type);\n const newSourceSpec = getNormalizedSpec(newSourceInfo?.spec);\n if (filterInfo.supportedFor(newSourceSpec)) { // don't do anything except update source id\n filter.value.column = newSourceId;\n } else { // reset to default filter which fits to any column\n filter.value = {\n ...DEFAULT_FILTERS[DEFAULT_FILTER_TYPE],\n column: newSourceId,\n };\n }\n}\n\nconst inconsistentSourceSelected = computed(() => {\n const selectedOption = props.columnOptions.find((op) => op.id === getSourceId(filter.value.column));\n return selectedOption === undefined;\n});\nconst sourceOptions = computed(() => {\n const options = props.columnOptions.map((v) => ({ value: v.id, label: v.label ?? v }));\n if (inconsistentSourceSelected.value) {\n options.unshift({ value: filter.value.column, label: 'Inconsistent value' });\n }\n return options;\n});\n\nfunction getSourceId(column: PlAdvancedFilterColumnId): PlAdvancedFilterColumnId {\n try {\n const parsedColumnId = parseColumnId(column as SUniversalPColumnId);\n if (isFilteredPColumn(parsedColumnId)) {\n return stringifyColumnId(parsedColumnId.source);\n } else {\n return column;\n }\n } catch {\n return column;\n }\n}\n\n// similar to FilteredPColumnId but source is stringified and axis filters can be undefined\ntype ColumnAsSourceAndFixedAxes = { source: PlAdvancedFilterColumnId; axisFiltersByIndex: Record<number, AxisFilterValue | undefined> };\nfunction getColumnAsSourceAndFixedAxes(column: PlAdvancedFilterColumnId): ColumnAsSourceAndFixedAxes {\n const sourceId = getSourceId(column);\n const option = props.columnOptions.find((op) => op.id === sourceId);\n const axesToBeFixed = (option?.axesToBeFixed ?? []).reduce((res, item) => {\n res[item.idx] = undefined;\n return res;\n }, {} as Record<number, AxisFilterValue | undefined>);\n try {\n const parsedColumnId = parseColumnId(column as SUniversalPColumnId);\n if (isFilteredPColumn(parsedColumnId)) {\n return {\n source: sourceId,\n axisFiltersByIndex: parsedColumnId.axisFilters.reduce((res, item) => {\n res[item[0]] = item[1];\n return res;\n }, axesToBeFixed),\n };\n }\n } catch {\n return { source: column, axisFiltersByIndex: axesToBeFixed };\n }\n return { source: column, axisFiltersByIndex: axesToBeFixed };\n}\n\nfunction stringifyColumn(value: ColumnAsSourceAndFixedAxes): PlAdvancedFilterColumnId {\n if (Object.keys(value.axisFiltersByIndex).length === 0) {\n return value.source;\n }\n return stringifyColumnId({\n source: parseColumnId(value.source as SUniversalPColumnId) as AnchoredPColumnId,\n axisFilters: Object.entries(value.axisFiltersByIndex).map(([idx, value]) => [Number(idx), value] as AxisFilterByIdx),\n });\n}\n\nconst columnAsSourceAndFixedAxes = computed({\n get: () => {\n return getColumnAsSourceAndFixedAxes(filter.value.column);\n },\n set: (value) => {\n filter.value.column = stringifyColumn(value);\n },\n});\nfunction updateAxisFilterValue(idx: number, value: AxisFilterValue | undefined) {\n columnAsSourceAndFixedAxes.value = {\n ...columnAsSourceAndFixedAxes.value,\n axisFiltersByIndex: { ...columnAsSourceAndFixedAxes.value.axisFiltersByIndex, [idx]: value } };\n}\n\nconst currentOption = computed(() => props.columnOptions.find((op) => op.id === columnAsSourceAndFixedAxes.value.source));\nconst currentSpec = computed(() => currentOption.value?.spec ? getNormalizedSpec(currentOption.value.spec) : null);\nconst currentType = computed(() => currentSpec.value?.valueType);\nconst currentError = computed(() => Boolean(currentOption.value?.error) || inconsistentSourceSelected.value);\n\nconst filterTypesOptions = computed(() => props.supportedFilters\n .filter((v) => filter.value.type === v\n || (currentSpec.value\n ? getFilterInfo(v).supportedFor(currentSpec.value)\n : true),\n )\n .map((v) => ({ value: v, label: getFilterInfo(v).label })),\n);\n\nconst wildcardOptions = computed(() => {\n if (filter.value.type !== 'patternFuzzyContainSubsequence') {\n return [];\n }\n if (currentOption.value?.alphabet === 'nucleotide') {\n return [{ label: 'N', value: 'N' }];\n }\n if (currentOption.value?.alphabet === 'aminoacid') {\n return [{ label: 'X', value: 'X' }];\n }\n return [...new Set(filter.value.value.split(''))].sort().map((v) => ({ value: v, label: v }));\n});\n\nconst stringMatchesError = computed(() => {\n if (filter.value.type !== 'patternMatchesRegularExpression') {\n return false;\n }\n try {\n new RegExp(filter.value.value);\n return false;\n } catch {\n return true;\n }\n});\n\n</script>\n<template>\n <div :class=\"$style.filterWrapper\">\n <!-- top element - column selector / column label - for all filter types-->\n <div v-if=\"enableDnd\" :class=\"[$style.top, $style.columnChip, {[$style.error]: currentError}]\">\n <div :class=\"[$style.typeIcon, {[$style.error]: currentError}]\">\n <PlIcon16 v-if=\"currentError\" name=\"warning\"/>\n <PlIcon16 v-else :name=\"currentType === 'String' || currentType === undefined ? 'cell-type-txt' : 'cell-type-num'\"/>\n </div>\n <div :class=\"$style.titleWrapper\" :title=\"currentOption?.label ?? ''\">\n <div :class=\"$style.title\">\n {{ inconsistentSourceSelected ? 'Inconsistent value' : currentOption?.label ?? filter.column }}\n </div>\n </div>\n <div :class=\"$style.closeIcon\" @click=\"onDelete(filter.column)\">\n <PlIcon16 name=\"close\"/>\n </div>\n </div>\n <div v-else :class=\"$style.top\" >\n <PlDropdown\n v-model=\"columnAsSourceAndFixedAxes.source\"\n :errorStatus=\"currentError\"\n :options=\"sourceOptions\"\n :style=\"{width: '100%'}\"\n group-position=\"top-left\"\n @update:model-value=\"changeSourceId\"\n />\n <div :class=\"$style.closeButton\" @click=\"onDelete(filter.column)\">\n <PlIcon16 name=\"close\"/>\n </div>\n </div>\n\n <div v-if=\"currentOption?.axesToBeFixed?.length\" :class=\"$style.fixedAxesBlock\">\n <template v-for=\"value in currentOption?.axesToBeFixed\" :key=\"value.idx\">\n <PlAutocomplete\n v-model=\"columnAsSourceAndFixedAxes.axisFiltersByIndex[value.idx]\"\n :label=\"value.label\"\n :options-search=\"(str) => getSuggestOptionsFn(columnAsSourceAndFixedAxes.source, str, value.idx)\"\n :model-search=\"(v) => getSuggestModelSingleFn(columnAsSourceAndFixedAxes.source, String(v), value.idx)\"\n :disabled=\"inconsistentSourceSelected\"\n :clearable=\"true\"\n @update:model-value=\"(v) => updateAxisFilterValue(value.idx, v)\"\n />\n </template>\n </div>\n\n <!-- middle - filter type selector - for all filter types -->\n <div :class=\"filter.type === 'isNA' || filter.type === 'isNotNA' ? $style.bottom : $style.middle\">\n <PlDropdown\n v-model=\"filter.type\"\n :options=\"filterTypesOptions\"\n :group-position=\"filter.type === 'isNA' || filter.type === 'isNotNA' ? 'bottom' : 'middle'\"\n @update:model-value=\"changeFilterType\"\n />\n </div>\n\n <!-- middle - for fuzzy contains filter -->\n <template v-if=\"filter.type === 'patternFuzzyContainSubsequence'\">\n <div :class=\"$style.middle\">\n <PlTextField\n v-model=\"filter.value\"\n placeholder=\"Substring\"\n group-position=\"middle\"\n />\n </div>\n <div :class=\"$style.innerSection\">\n <Slider\n v-model=\"filter.maxEdits\"\n :max=\"5\"\n breakpoints label=\"Maximum number of substitutions and indels\"\n />\n <PlToggleSwitch\n v-model=\"filter.substitutionsOnly\"\n label=\"Substitutions only\"\n />\n </div>\n </template>\n\n <!-- bottom element - individual settings for every filter type -->\n <div :class=\"$style.bottom\">\n <template v-if=\"filter.type === 'patternEquals' || filter.type === 'patternNotEquals'\" >\n <PlAutocomplete\n v-model=\"filter.value\"\n :options-search=\"(str) => getSuggestOptionsFn(columnAsSourceAndFixedAxes.source, str)\"\n :model-search=\"(v) => getSuggestModelSingleFn(columnAsSourceAndFixedAxes.source, String(v))\"\n :disabled=\"inconsistentSourceSelected\"\n :clearable=\"true\"\n group-position=\"bottom\"\n />\n </template>\n <template v-if=\"filter.type === 'inSet' || filter.type === 'notInSet'\" >\n <PlAutocompleteMulti\n v-model=\"filter.value\"\n :options-search=\"(str) => getSuggestOptionsFn(columnAsSourceAndFixedAxes.source, str)\"\n :model-search=\"(v) => getSuggestModelMultiFn(columnAsSourceAndFixedAxes.source, v.map((v) => String(v)))\"\n :disabled=\"inconsistentSourceSelected\"\n group-position=\"bottom\"\n />\n </template>\n <PlNumberField\n v-if=\"isNumericFilter(filter)\"\n v-model=\"filter.x\"\n group-position=\"bottom\"\n />\n <PlNumberField\n v-if=\"isPositionFilter(filter)\"\n v-model=\"filter.n\"\n group-position=\"bottom\"\n />\n <PlTextField\n v-if=\"filter.type === 'patternContainSubsequence' || filter.type === 'patternNotContainSubsequence'\"\n v-model=\"filter.value\"\n placeholder=\"Substring\"\n group-position=\"bottom\"\n />\n <PlTextField\n v-if=\"filter.type === 'patternMatchesRegularExpression'\"\n v-model=\"filter.value\"\n :error=\"stringMatchesError ? 'Regular expression is not valid' : undefined\"\n placeholder=\"Regular expression\"\n group-position=\"bottom\"\n />\n <PlDropdown\n v-if=\"filter.type === 'patternFuzzyContainSubsequence'\"\n v-model=\"filter.wildcard\"\n clearable\n placeholder=\"Wildcard value\"\n :options=\"wildcardOptions\"\n group-position=\"bottom\"\n />\n </div>\n </div>\n <OperandButton\n :active=\"operand\"\n :disabled=\"isLast\"\n :on-select=\"onChangeOperand\"\n />\n</template>\n\n<style module>\n.filterWrapper {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n cursor: default;\n}\n\n.typeIcon {\n display: inline-flex;\n margin-right: 8px;\n}\n\n.typeIcon.error {\n --icon-color: var(--txt-error);\n}\n\n.closeIcon {\n display: inline-flex;\n margin-left: 12px;\n cursor: pointer;\n}\n\n.titleWrapper {\n flex-grow: 1;\n overflow: hidden;\n}\n.title {\n overflow: hidden;\n color: var(--txt-01);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n}\n\n.columnChip {\n width: 100%;\n display: flex;\n padding: 10px 12px;\n align-items: center;\n border-radius: 6px;\n border: 1px solid var(--txt-01);\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n\n &.error {\n border-color: var(--txt-error);\n }\n}\n\n.innerSection {\n border: 1px solid var(--txt-01);\n border-top: none;\n padding: 16px 12px;\n}\n\n.closeButton {\n border: 1px solid var(--txt-01);\n border-top-right-radius: 6px;\n border-left: none;\n width: 40px;\n height: 40px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n cursor: pointer;\n}\n\n.top {\n position: relative;\n display: flex;\n width: 100%;\n z-index: 1;\n background: #fff;\n}\n\n.fixedAxesBlock {\n position: relative;\n display: flex;\n flex-direction: column;\n padding: 12px 8px;\n gap: 12px;\n border-left: 1px solid var(--txt-01);\n border-right: 1px solid var(--txt-01);\n}\n\n.fixedAxesBlock > * {\n background: #fff;\n}\n\n.middle, .bottom {\n position: relative;\n margin-top: -1px;\n background: #fff;\n}\n\n</style>\n"],"names":["filter","_useModel","__props","props","getSuggestModel","args","options","getSuggestModelMultiFn","id","v","axisIdx","getSuggestModelSingleFn","getSuggestOptionsFn","str","changeFilterType","defaultFilter","DEFAULT_FILTERS","res","key","val","changeSourceId","newSourceId","newSourceInfo","getSourceId","filterInfo","getFilterInfo","newSourceSpec","getNormalizedSpec","DEFAULT_FILTER_TYPE","inconsistentSourceSelected","computed","op","sourceOptions","column","parsedColumnId","parseColumnId","isFilteredPColumn","stringifyColumnId","getColumnAsSourceAndFixedAxes","sourceId","option","axesToBeFixed","item","stringifyColumn","value","idx","columnAsSourceAndFixedAxes","updateAxisFilterValue","currentOption","currentSpec","_a","currentType","currentError","filterTypesOptions","wildcardOptions","_b","stringMatchesError","_createElementVNode","_normalizeClass","$style","_createElementBlock","_createBlock","_unref","PlIcon16","_toDisplayString","_cache","$event","_createVNode","PlDropdown","_d","_c","_openBlock","_Fragment","_renderList","_e","PlAutocomplete","PlTextField","Slider","PlToggleSwitch","PlAutocompleteMulti","isNumericFilter","PlNumberField","isPositionFilter","OperandButton"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("._filterWrapper_ne4xn_2{position:relative;display:flex;flex-direction:column;width:100%;cursor:default}._typeIcon_ne4xn_10{display:inline-flex;margin-right:8px}._typeIcon_ne4xn_10._error_ne4xn_15{--icon-color: var(--txt-error)}._closeIcon_ne4xn_19{display:inline-flex;margin-left:12px;cursor:pointer}._titleWrapper_ne4xn_25{flex-grow:1;overflow:hidden}._title_ne4xn_25{overflow:hidden;color:var(--txt-01);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;line-height:20px}._columnChip_ne4xn_39{width:100%;display:flex;padding:10px 12px;align-items:center;border:1px solid var(--txt-01);border-radius:6px 6px 0 0}._columnChip_ne4xn_39._error_ne4xn_15{border-color:var(--txt-error)}._innerSection_ne4xn_54{border:1px solid var(--txt-01);border-top:none;padding:16px 12px}._closeButton_ne4xn_60{border:1px solid var(--txt-01);border-top-right-radius:6px;border-left:none;width:40px;height:40px;display:flex;justify-content:center;align-items:center;flex-shrink:0;cursor:pointer}._top_ne4xn_73{position:relative;display:flex;width:100%;z-index:1;background:#fff}._fixedAxesBlock_ne4xn_81{position:relative;display:flex;flex-direction:column;padding:12px 8px;gap:12px;border-left:1px solid var(--txt-01);border-right:1px solid var(--txt-01)}._fixedAxesBlock_ne4xn_81>*{background:#fff}._middle_ne4xn_95,._bottom_ne4xn_95{position:relative;margin-top:-1px;background:#fff}")),document.head.appendChild(e)}}catch(n){console.error("vite-plugin-css-injected-by-js",n)}})();
2
+ const n = "_filterWrapper_ne4xn_2", e = "_typeIcon_ne4xn_10", t = "_error_ne4xn_15", o = "_closeIcon_ne4xn_19", _ = "_titleWrapper_ne4xn_25", c = "_title_ne4xn_25", r = "_columnChip_ne4xn_39", l = "_innerSection_ne4xn_54", s = "_closeButton_ne4xn_60", i = "_top_ne4xn_73", p = "_fixedAxesBlock_ne4xn_81", x = "_middle_ne4xn_95", d = "_bottom_ne4xn_95", m = {
3
+ filterWrapper: n,
4
+ typeIcon: e,
5
+ error: t,
6
+ closeIcon: o,
7
+ titleWrapper: _,
8
+ title: c,
9
+ columnChip: r,
10
+ innerSection: l,
11
+ closeButton: s,
12
+ top: i,
13
+ fixedAxesBlock: p,
14
+ middle: x,
15
+ bottom: d
16
+ };
17
+ export {
18
+ d as bottom,
19
+ s as closeButton,
20
+ o as closeIcon,
21
+ r as columnChip,
22
+ m as default,
23
+ t as error,
24
+ n as filterWrapper,
25
+ p as fixedAxesBlock,
26
+ l as innerSection,
27
+ x as middle,
28
+ c as title,
29
+ _ as titleWrapper,
30
+ i as top,
31
+ e as typeIcon
32
+ };
33
+ //# sourceMappingURL=FilterEditor.vue3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterEditor.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
@@ -1 +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","_createElementBlock","_mergeProps","_ctx","$style","_Fragment","_renderList","op","_createElementVNode","$event","_hoisted_1"],"mappings":";;;;;;;;;AAGA,UAAMA,IAAQC,GAMRC,IAAqB,CAAC,OAAO,IAAI;2BAGrCC,EASM,OATNC,EASMC,EAAA,QATa;AAAA,MAAG,OAAOC,EAAAA,OAAO;AAAA,IAAA;YAClCH,EAOMI,GAAA,MAAAC,EANSN,GAAO,CAAbO,MADTC,EAOM,OAAA;AAAA,QALH,KAAKD;AAAA,QACL,UAAQH,EAAAA,OAAO,SAAO,EAAA,CAAIA,SAAO,MAAM,GAAGG,MAAOT,EAAM,UAAM,CAAKA,EAAM,SAAA,CAAQ,CAAA;AAAA,QAChF,SAAK,CAAAW,MAAA,CAAGX,EAAM,YAAYA,EAAM,SAASS,CAAE;AAAA,MAAA,KAEzCA,CAAE,GAAA,IAAAG,CAAA;;;;"}
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: 30px;\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","_createElementBlock","_mergeProps","_ctx","$style","_Fragment","_renderList","op","_createElementVNode","$event","_hoisted_1"],"mappings":";;;;;;;;;AAGA,UAAMA,IAAQC,GAMRC,IAAqB,CAAC,OAAO,IAAI;2BAGrCC,EASM,OATNC,EASMC,EAAA,QATa;AAAA,MAAG,OAAOC,EAAAA,OAAO;AAAA,IAAA;YAClCH,EAOMI,GAAA,MAAAC,EANSN,GAAO,CAAbO,MADTC,EAOM,OAAA;AAAA,QALH,KAAKD;AAAA,QACL,UAAQH,EAAAA,OAAO,SAAO,EAAA,CAAIA,SAAO,MAAM,GAAGG,MAAOT,EAAM,UAAM,CAAKA,EAAM,SAAA,CAAQ,CAAA;AAAA,QAChF,SAAK,CAAAW,MAAA,CAAGX,EAAM,YAAYA,EAAM,SAASS,CAAE;AAAA,MAAA,KAEzCA,CAAE,GAAA,IAAAG,CAAA;;;;"}
@@ -1,13 +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
1
+ (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("._block_efv0d_2{width:100%;display:flex;gap:4px;justify-content:center;height:30px;align-items:center}._operand_efv0d_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_efv0d_10._active_efv0d_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 e = "_block_efv0d_2", o = "_operand_efv0d_10", c = "_active_efv0d_25", t = {
3
+ block: e,
4
+ operand: o,
5
+ active: c
6
6
  };
7
7
  export {
8
- t as active,
9
- o as block,
10
- e as default,
11
- c as operand
8
+ c as active,
9
+ e as block,
10
+ t as default,
11
+ o as operand
12
12
  };
13
13
  //# sourceMappingURL=OperandButton.vue3.js.map
@@ -1,39 +1,58 @@
1
- import { PlAdvancedFilterColumnId, CommonFilterSpec, SourceOptionInfo } from './types';
2
1
  import { ListOptionBase } from '@platforma-sdk/model';
2
+ import { SUPPORTED_FILTER_TYPES } from './constants';
3
+ import { PlAdvancedFilterColumnId, RootFilter, SourceOptionInfo } from './types';
3
4
  type __VLS_Props = {
4
5
  /** List of ids of sources (columns, axes) that can be selected in filters */
5
6
  items: SourceOptionInfo[];
7
+ /** List of supported filter types */
8
+ supportedFilters?: typeof SUPPORTED_FILTER_TYPES;
6
9
  /** If true - new filter can be added by droppind element into filter group; else new column is added by button click */
7
10
  enableDnd?: boolean;
11
+ /** If true - "Add group" button is shown below the filter groups */
12
+ enableAddGroupButton?: boolean;
8
13
  /** Loading function for unique values for Equal/InSet filters and fixed axes options. */
9
14
  getSuggestOptions: (params: {
10
15
  columnId: PlAdvancedFilterColumnId;
11
16
  searchStr: string;
12
17
  axisIdx?: number;
13
- }) => (Promise<ListOptionBase<string | number>[]>) | ((params: {
14
- columnId: PlAdvancedFilterColumnId;
15
- searchStr: string;
16
- axisIdx?: number;
17
- }) => ListOptionBase<string | number>[]);
18
+ }) => ListOptionBase<string | number>[] | Promise<ListOptionBase<string | number>[]>;
18
19
  /** 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: {
20
+ getSuggestModel?: (params: {
24
21
  columnId: PlAdvancedFilterColumnId;
25
22
  searchStr: string;
26
23
  axisIdx?: number;
27
- }) => ListOptionBase<string | number>);
24
+ }) => ListOptionBase<string | number> | Promise<ListOptionBase<string | number>>;
28
25
  };
29
26
  type __VLS_PublicProps = {
30
- modelValue: CommonFilterSpec;
27
+ 'filters': RootFilter;
31
28
  } & __VLS_Props;
32
- declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
33
- "update:modelValue": (value: CommonFilterSpec) => any;
29
+ declare function __VLS_template(): {
30
+ attrs: Partial<{}>;
31
+ slots: {
32
+ 'add-group-buttons'?(_: {}): any;
33
+ };
34
+ refs: {};
35
+ rootEl: HTMLDivElement;
36
+ };
37
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
38
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
39
+ "update:filters": (value: RootFilter) => any;
34
40
  }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
35
- "onUpdate:modelValue"?: ((value: CommonFilterSpec) => any) | undefined;
41
+ "onUpdate:filters"?: ((value: RootFilter) => any) | undefined;
36
42
  }>, {
37
43
  enableDnd: boolean;
44
+ supportedFilters: typeof SUPPORTED_FILTER_TYPES;
45
+ getSuggestModel: (params: {
46
+ columnId: PlAdvancedFilterColumnId;
47
+ searchStr: string;
48
+ axisIdx?: number;
49
+ }) => ListOptionBase<string | number> | Promise<ListOptionBase<string | number>>;
50
+ enableAddGroupButton: boolean;
38
51
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
52
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
39
53
  export default _default;
54
+ type __VLS_WithTemplateSlots<T, S> = T & {
55
+ new (): {
56
+ $slots: S;
57
+ };
58
+ };
@@ -1,199 +1,239 @@
1
- import { defineComponent as B, mergeModels as L, useModel as z, computed as A, createElementBlock as g, openBlock as r, createVNode as a, unref as l, withCtx as i, normalizeClass as f, createElementVNode as y, createBlock as D, createTextVNode as u, Fragment as w, renderList as R } from "vue";
2
- import q from "./SingleFilter.vue.js";
3
- import { PlElementList as T, PlCheckbox as C, PlBtnSecondary as $, PlIcon16 as F } from "@milaboratories/uikit";
4
- import x from "./OperandButton.vue.js";
5
- import { DEFAULT_FILTERS as I, DEFAULT_FILTER_TYPE as W } from "./constants.js";
6
- import { useInnerModel as Y, createNewGroup as j, isValidColumnId as U, toOuterModel as H, toInnerModel as J } from "./utils.js";
7
- const K = ["onDrop"], te = /* @__PURE__ */ B({
1
+ import { defineComponent as M, mergeModels as I, useModel as x, computed as Y, createElementBlock as y, openBlock as l, createVNode as b, createBlock as v, createCommentVNode as T, unref as p, withCtx as i, normalizeClass as g, createElementVNode as D, createTextVNode as f, Fragment as q, renderList as W, renderSlot as j, toRaw as H } from "vue";
2
+ import { PlElementList as $, PlCheckbox as J, PlBtnSecondary as B } from "@milaboratories/uikit";
3
+ import K from "./FilterEditor.vue.js";
4
+ import Q from "./OperandButton.vue.js";
5
+ import { SUPPORTED_FILTER_TYPES as X, DEFAULT_FILTERS as Z, DEFAULT_FILTER_TYPE as _ } from "./constants.js";
6
+ import { getNewId as R, createNewGroup as ee, isValidColumnId as N } from "./utils.js";
7
+ const te = ["onDrop"], de = /* @__PURE__ */ M({
8
8
  __name: "PlAdvancedFilter",
9
- props: /* @__PURE__ */ L({
9
+ props: /* @__PURE__ */ I({
10
10
  items: {},
11
+ supportedFilters: { default: () => X },
11
12
  enableDnd: { type: Boolean, default: !1 },
13
+ enableAddGroupButton: { type: Boolean, default: !1 },
12
14
  getSuggestOptions: {},
13
- getSuggestModel: {}
15
+ getSuggestModel: { type: Function, default: void 0 }
14
16
  }, {
15
- modelValue: { required: !0 },
16
- modelModifiers: {}
17
+ filters: { required: !0 },
18
+ filtersModifiers: {}
17
19
  }),
18
- emits: ["update:modelValue"],
19
- setup(d) {
20
- const E = d, M = z(d, "modelValue"), s = Y(J, H, M), c = A(() => {
21
- var o;
22
- return (o = E.items[0]) == null ? void 0 : o.id;
23
- }), b = [{
24
- id: "empty",
25
- not: !1,
26
- operand: "and",
20
+ emits: ["update:filters"],
21
+ setup(m) {
22
+ const s = x(m, "filters"), r = m, G = Y(() => {
23
+ var e;
24
+ return (e = r.items[0]) == null ? void 0 : e.id;
25
+ }), P = [{
26
+ id: -1,
27
+ type: "and",
27
28
  filters: [],
28
- expanded: !0
29
+ isExpanded: !0
29
30
  }];
30
- function V(o, e) {
31
- s.value.groups[o].filters.push({
32
- ...I[W],
33
- column: e
31
+ function d() {
32
+ if (s.value.type !== "or" && s.value.type !== "and")
33
+ throw new Error('Invalid model structure, expected root to be "or" or "and" group');
34
+ return s.value.filters;
35
+ }
36
+ function S(e) {
37
+ const o = d()[e];
38
+ if (o.type !== "and" && o.type !== "or" && o.type !== "not")
39
+ throw new Error('Invalid group structure, expected "and", "or" or "not" group');
40
+ return o;
41
+ }
42
+ function k(e) {
43
+ const t = S(e);
44
+ if (t.type !== "not")
45
+ return t;
46
+ if (t.filter.type !== "and" && t.filter.type !== "or")
47
+ throw new Error('Invalid group structure, expected "and" or "or" group inside "not"');
48
+ return t.filter;
49
+ }
50
+ function w(e, t) {
51
+ k(e).filters.push({
52
+ ...Z[_],
53
+ column: t,
54
+ id: R(),
55
+ isExpanded: !0
34
56
  });
35
57
  }
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);
58
+ function A(e, t) {
59
+ const o = k(e);
60
+ o.filters.length === 1 && t === 0 ? L(e) : o.filters.splice(t, 1);
61
+ }
62
+ function U(e) {
63
+ const t = d(), o = t[e];
64
+ if (o.type === "not") {
65
+ if (o.filter.type !== "and" && o.filter.type !== "or")
66
+ throw new Error('Invalid group structure, expected "and" or "or" group inside "not"');
67
+ t[e] = o.filter;
68
+ } else {
69
+ const n = t[e].type;
70
+ if (n !== "and" && n !== "or" && n !== "not")
71
+ throw new Error('Invalid group structure, expected "and", "or" or "not" group');
72
+ t[e] = {
73
+ id: R(),
74
+ isExpanded: !0,
75
+ type: "not",
76
+ filter: t[e]
77
+ };
78
+ }
38
79
  }
39
- function N(o) {
40
- s.value.groups = s.value.groups.filter((e, t) => t !== o);
80
+ function u(e) {
81
+ return e.type === "not" ? e.filter : e;
41
82
  }
42
- function k(o) {
43
- const e = j(o);
44
- s.value.groups.push(e);
83
+ function L(e) {
84
+ d().splice(e, 1);
45
85
  }
46
- function O(o, e) {
86
+ function C(e) {
87
+ const t = ee(e);
88
+ d().push(t);
89
+ }
90
+ function V(e, t) {
91
+ const o = t.dataTransfer;
92
+ if (o != null && o.getData("text/plain")) {
93
+ const n = o.getData("text/plain");
94
+ N(n) && w(e, n);
95
+ }
96
+ }
97
+ function O(e) {
47
98
  const t = e.dataTransfer;
48
99
  if (t != null && t.getData("text/plain")) {
49
- const n = t.getData("text/plain");
50
- U(n) && V(o, n);
100
+ const o = t.getData("text/plain");
101
+ N(o) && C(o);
51
102
  }
52
103
  }
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) && k(t);
58
- }
104
+ function F(e) {
105
+ e.preventDefault();
59
106
  }
60
- function G(o) {
61
- o.preventDefault();
107
+ function h(e) {
108
+ if (e.type === "and" || e.type === "or" || e.type === "not")
109
+ throw new Error("Invalid filter structure, expected leaf filter");
110
+ return e;
62
111
  }
63
- return (o, e) => (r(), g("div", null, [
64
- a(l(T), {
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,
112
+ function z(e, t, o) {
113
+ e[t] = H(o);
114
+ }
115
+ return (e, t) => (l(), y("div", null, [
116
+ b(p($), {
117
+ items: s.value.filters,
118
+ "onUpdate:items": t[0] || (t[0] = (o) => s.value.filters = o),
119
+ "get-item-key": (o) => o.id,
120
+ "item-class": e.$style.filterGroup,
121
+ "item-class-content": e.$style.filterGroupContent,
122
+ "item-class-title": e.$style.filterGroupTitle,
123
+ "is-expanded": (o) => o.isExpanded === !0,
124
+ "on-expand": (o) => {
125
+ o.isExpanded = !o.isExpanded;
126
+ },
72
127
  disableDragging: !1,
73
128
  disableRemoving: !1,
74
129
  disableToggling: !0,
75
- disablePinning: !0,
76
- "on-expand": (t) => {
77
- t.expanded = !t.expanded;
78
- }
130
+ disablePinning: !0
79
131
  }, {
80
- "item-title": i(() => [...e[3] || (e[3] = [
81
- u(" Filter group ", -1)
132
+ "item-title": i(() => [...t[2] || (t[2] = [
133
+ f(" Filter group ", -1)
82
134
  ])]),
83
- "item-content": i(({ item: t, index: n }) => [
84
- y("div", {
85
- class: f(o.$style.groupContent),
135
+ "item-content": i(({ item: o, index: n }) => [
136
+ D("div", {
137
+ class: g(e.$style.groupContent),
86
138
  dropzone: "true",
87
- onDrop: (m) => O(n, m),
88
- onDragover: G
139
+ onDrop: (c) => V(n, c),
140
+ onDragover: F
89
141
  }, [
90
- a(l(C), {
91
- modelValue: t.not,
92
- "onUpdate:modelValue": (m) => t.not = m
142
+ b(p(J), {
143
+ "model-value": o.type === "not",
144
+ class: g(e.$style.notCheckbox),
145
+ "onUpdate:modelValue": (c) => U(n)
93
146
  }, {
94
- default: i(() => [...e[4] || (e[4] = [
95
- u("NOT", -1)
147
+ default: i(() => [...t[3] || (t[3] = [
148
+ f("NOT", -1)
96
149
  ])]),
97
150
  _: 1
98
- }, 8, ["modelValue", "onUpdate:modelValue"]),
99
- (r(!0), g(w, null, R(t.filters, (m, p) => (r(), D(q, {
100
- key: p,
101
- modelValue: t.filters[p],
102
- "onUpdate:modelValue": (v) => t.filters[p] = v,
103
- operand: t.operand,
104
- "column-options": d.items,
105
- "get-suggest-model": d.getSuggestModel,
106
- "get-suggest-options": d.getSuggestOptions,
107
- "enable-dnd": d.enableDnd,
108
- "is-last": p === t.filters.length - 1,
109
- "on-change-operand": (v) => t.operand = v,
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
- d.enableDnd ? (r(), g("div", {
151
+ }, 8, ["model-value", "class", "onUpdate:modelValue"]),
152
+ (l(!0), y(q, null, W(u(o).filters, (c, a) => (l(), v(K, {
153
+ key: a,
154
+ filter: h(u(o).filters[a]),
155
+ operand: u(o).type,
156
+ "column-options": m.items,
157
+ "supported-filters": r.supportedFilters,
158
+ "get-suggest-model": r.getSuggestModel,
159
+ "get-suggest-options": r.getSuggestOptions,
160
+ "enable-dnd": !!r.enableDnd,
161
+ "is-last": a === u(o).filters.length - 1,
162
+ "on-change-operand": (E) => u(o).type = E,
163
+ "on-delete": () => A(n, a),
164
+ "onUpdate:filter": (E) => z(u(o).filters, a, E)
165
+ }, null, 8, ["filter", "operand", "column-options", "supported-filters", "get-suggest-model", "get-suggest-options", "enable-dnd", "is-last", "on-change-operand", "on-delete", "onUpdate:filter"]))), 128)),
166
+ r.enableDnd ? (l(), y("div", {
113
167
  key: 0,
114
- class: f(o.$style.dropzone)
115
- }, [...e[5] || (e[5] = [
116
- y("div", null, "Drop dimensions here", -1)
117
- ])], 2)) : (r(), D(l($), {
168
+ class: g(e.$style.dropzone)
169
+ }, [...t[4] || (t[4] = [
170
+ D("div", null, "Drop dimensions here", -1)
171
+ ])], 2)) : (l(), v(p(B), {
118
172
  key: 1,
119
- onClick: (m) => V(n, c.value)
173
+ icon: "add",
174
+ onClick: (c) => w(n, G.value)
120
175
  }, {
121
- default: i(() => [
122
- a(l(F), {
123
- name: "add",
124
- style: { "margin-right": "8px" }
125
- }),
126
- e[6] || (e[6] = u("Add column ", -1))
127
- ]),
176
+ default: i(() => [...t[5] || (t[5] = [
177
+ f(" Add filter ", -1)
178
+ ])]),
128
179
  _: 1
129
180
  }, 8, ["onClick"]))
130
- ], 42, K)
181
+ ], 42, te)
131
182
  ]),
132
- "item-after": i(({ index: t }) => [
133
- a(x, {
134
- class: f(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"])
183
+ "item-after": i(({ index: o }) => [
184
+ r.enableAddGroupButton || o < d().length - 1 ? (l(), v(Q, {
185
+ key: 0,
186
+ class: g(e.$style.buttonWrapper),
187
+ active: s.value.type,
188
+ disabled: o === d().length - 1,
189
+ "on-select": (n) => s.value.type = n
190
+ }, null, 8, ["class", "active", "disabled", "on-select"])) : T("", !0)
139
191
  ]),
140
192
  _: 1
141
193
  }, 8, ["items", "get-item-key", "item-class", "item-class-content", "item-class-title", "is-expanded", "on-expand"]),
142
- a(l(T), {
143
- items: b,
144
- "onUpdate:items": e[2] || (e[2] = (t) => b = 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,
194
+ r.enableAddGroupButton ? (l(), v(p($), {
195
+ key: 0,
196
+ items: P,
197
+ "get-item-key": (o) => o.id,
198
+ "item-class": e.$style.filterGroup,
199
+ "item-class-content": e.$style.filterGroupContent,
200
+ "item-class-title": e.$style.filterGroupTitle,
149
201
  "is-expanded": () => !0,
150
202
  disableDragging: !0,
151
203
  disableRemoving: !0,
152
204
  disableToggling: !0,
153
205
  disablePinning: !0,
154
206
  dropzone: "true",
155
- onDrop: S,
156
- onDragover: G
207
+ onDrop: O,
208
+ onDragover: F
157
209
  }, {
158
- "item-title": i(() => [...e[7] || (e[7] = [
159
- u("Filter group", -1)
210
+ "item-title": i(() => [...t[6] || (t[6] = [
211
+ f("Filter group", -1)
160
212
  ])]),
161
- "item-content": i(({ item: t }) => [
162
- a(l(C), {
163
- modelValue: t.not,
164
- "onUpdate:modelValue": (n) => t.not = n,
165
- disabled: ""
166
- }, {
167
- default: i(() => [...e[8] || (e[8] = [
168
- u("NOT", -1)
169
- ])]),
170
- _: 1
171
- }, 8, ["modelValue", "onUpdate:modelValue"]),
172
- d.enableDnd ? (r(), g("div", {
213
+ "item-content": i(() => [
214
+ m.enableDnd ? (l(), y("div", {
173
215
  key: 0,
174
- class: f(o.$style.dropzone)
175
- }, [...e[9] || (e[9] = [
176
- y("div", null, "Drop dimensions here", -1)
177
- ])], 2)) : (r(), D(l($), {
178
- key: 1,
179
- onClick: e[1] || (e[1] = (n) => k(c.value))
180
- }, {
181
- default: i(() => [
182
- a(l(F), {
183
- name: "add",
184
- style: { "margin-right": "8px" }
185
- }),
186
- e[10] || (e[10] = u("Add column ", -1))
187
- ]),
188
- _: 1
189
- }))
216
+ class: g(e.$style.dropzone)
217
+ }, [...t[7] || (t[7] = [
218
+ D("div", null, "Drop dimensions here", -1)
219
+ ])], 2)) : j(e.$slots, "add-group-buttons", { key: 1 }, () => [
220
+ b(p(B), {
221
+ icon: "add",
222
+ onClick: t[1] || (t[1] = (o) => C(G.value))
223
+ }, {
224
+ default: i(() => [...t[8] || (t[8] = [
225
+ f(" Add filter ", -1)
226
+ ])]),
227
+ _: 1
228
+ })
229
+ ])
190
230
  ]),
191
- _: 1
192
- }, 8, ["get-item-key", "item-class", "item-class-content", "item-class-title"])
231
+ _: 3
232
+ }, 8, ["get-item-key", "item-class", "item-class-content", "item-class-title"])) : T("", !0)
193
233
  ]));
194
234
  }
195
235
  });
196
236
  export {
197
- te as default
237
+ de as default
198
238
  };
199
239
  //# sourceMappingURL=PlAdvancedFilter.vue2.js.map