@platforma-sdk/ui-vue 1.54.1 → 1.54.8
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 +142 -195
- package/.turbo/turbo-formatter$colon$check.log +2 -2
- package/.turbo/turbo-linter$colon$check.log +2 -2
- package/.turbo/turbo-types$colon$check.log +1 -1
- package/CHANGELOG.md +18 -0
- package/dist/AgGridVue/useAgGridOptions.js +2 -3
- package/dist/AgGridVue/useAgGridOptions.js.map +1 -1
- package/dist/components/PlAdvancedFilter/constants.d.ts +1 -1
- package/dist/components/PlAdvancedFilter/index.d.ts +2 -2
- package/dist/components/PlAdvancedFilter/index.d.ts.map +1 -1
- package/dist/components/PlAdvancedFilter/index.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue.d.ts.map +1 -1
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js +135 -146
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgRowCount.vue.js +7 -8
- package/dist/components/PlAgDataTable/PlAgRowCount.vue.js.map +1 -1
- package/dist/components/PlAgDataTable/sources/table-state-v2.d.ts +3 -2
- package/dist/components/PlAgDataTable/sources/table-state-v2.d.ts.map +1 -1
- package/dist/components/PlAgDataTable/sources/table-state-v2.js +94 -95
- package/dist/components/PlAgDataTable/sources/table-state-v2.js.map +1 -1
- package/dist/components/PlAgDataTable/types.d.ts +3 -44
- package/dist/components/PlAgDataTable/types.d.ts.map +1 -1
- package/dist/components/PlAgDataTable/types.js +26 -42
- package/dist/components/PlAgDataTable/types.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 +8 -9
- package/dist/components/PlAgRowNumHeader.vue.js.map +1 -1
- package/dist/components/PlAnnotations/components/FilterSidebar.vue.d.ts.map +1 -1
- package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js +76 -74
- package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js.map +1 -1
- package/dist/components/PlAnnotations/components/PlAnnotations.vue2.js.map +1 -1
- package/dist/components/PlTableFilters/PlTableFiltersV2.vue.d.ts +7 -9
- package/dist/components/PlTableFilters/PlTableFiltersV2.vue.d.ts.map +1 -1
- package/dist/components/PlTableFilters/PlTableFiltersV2.vue2.js +82 -132
- package/dist/components/PlTableFilters/PlTableFiltersV2.vue2.js.map +1 -1
- package/dist/components/PlTableFilters/PlTableFiltersV2.vue3.js +4 -17
- package/dist/components/PlTableFilters/PlTableFiltersV2.vue3.js.map +1 -1
- package/dist/components/PlTableFilters/index.d.ts +0 -1
- package/dist/components/PlTableFilters/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +6 -6
- package/src/components/PlAdvancedFilter/index.ts +1 -1
- package/src/components/PlAgDataTable/PlAgDataTableV2.vue +3 -22
- package/src/components/PlAgDataTable/sources/table-state-v2.ts +68 -64
- package/src/components/PlAgDataTable/types.ts +15 -78
- package/src/components/PlAnnotations/components/FilterSidebar.vue +3 -6
- package/src/components/PlTableFilters/PlTableFiltersV2.vue +100 -232
- package/src/components/PlTableFilters/index.ts +0 -1
- package/dist/_virtual/index.js +0 -6
- package/dist/_virtual/index.js.map +0 -1
- package/dist/_virtual/re.js +0 -5
- package/dist/_virtual/re.js.map +0 -1
- package/dist/components/PlTableFilters/PlTableAddFilterV2.vue.d.ts +0 -15
- package/dist/components/PlTableFilters/PlTableAddFilterV2.vue.d.ts.map +0 -1
- package/dist/components/PlTableFilters/PlTableAddFilterV2.vue.js +0 -97
- package/dist/components/PlTableFilters/PlTableAddFilterV2.vue.js.map +0 -1
- package/dist/components/PlTableFilters/PlTableAddFilterV2.vue2.js +0 -5
- package/dist/components/PlTableFilters/PlTableAddFilterV2.vue2.js.map +0 -1
- package/dist/components/PlTableFilters/PlTableFilterEntryV2.vue.d.ts +0 -11
- package/dist/components/PlTableFilters/PlTableFilterEntryV2.vue.d.ts.map +0 -1
- package/dist/components/PlTableFilters/PlTableFilterEntryV2.vue.js +0 -142
- package/dist/components/PlTableFilters/PlTableFilterEntryV2.vue.js.map +0 -1
- package/dist/components/PlTableFilters/PlTableFilterEntryV2.vue2.js +0 -5
- package/dist/components/PlTableFilters/PlTableFilterEntryV2.vue2.js.map +0 -1
- package/dist/components/PlTableFilters/filters-state.d.ts +0 -7
- package/dist/components/PlTableFilters/filters-state.d.ts.map +0 -1
- package/dist/components/PlTableFilters/filters-state.js +0 -79
- package/dist/components/PlTableFilters/filters-state.js.map +0 -1
- package/dist/components/PlTableFilters/filters_logic.d.ts +0 -24
- package/dist/components/PlTableFilters/filters_logic.d.ts.map +0 -1
- package/dist/components/PlTableFilters/filters_logic.js +0 -348
- package/dist/components/PlTableFilters/filters_logic.js.map +0 -1
- package/dist/components/PlTableFilters/types.d.ts +0 -26
- package/dist/components/PlTableFilters/types.d.ts.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/comparator.js +0 -57
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/comparator.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/range.js +0 -149
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/range.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/semver.js +0 -170
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/semver.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/clean.js +0 -15
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/clean.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/cmp.js +0 -40
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/cmp.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/coerce.js +0 -34
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/coerce.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare-build.js +0 -15
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare-build.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare-loose.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare-loose.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/diff.js +0 -25
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/diff.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/eq.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/eq.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/gt.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/gt.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/gte.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/gte.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/inc.js +0 -22
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/inc.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/lt.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/lt.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/lte.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/lte.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/major.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/major.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/minor.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/minor.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/neq.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/neq.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/parse.js +0 -22
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/parse.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/patch.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/patch.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/prerelease.js +0 -15
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/prerelease.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/rcompare.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/rcompare.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/rsort.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/rsort.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/satisfies.js +0 -19
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/satisfies.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/sort.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/sort.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/valid.js +0 -15
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/valid.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/index.js +0 -98
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/index.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/constants.js +0 -29
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/constants.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/debug.js +0 -9
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/debug.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/identifiers.js +0 -17
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/identifiers.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/lrucache.js +0 -33
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/lrucache.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/parse-options.js +0 -11
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/parse-options.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/re.js +0 -33
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/re.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/gtr.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/gtr.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/intersects.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/intersects.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/ltr.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/ltr.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/max-satisfying.js +0 -23
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/max-satisfying.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/min-satisfying.js +0 -23
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/min-satisfying.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/min-version.js +0 -43
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/min-version.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/outside.js +0 -45
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/outside.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/simplify.js +0 -25
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/simplify.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/subset.js +0 -95
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/subset.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/to-comparators.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/to-comparators.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/valid.js +0 -18
- package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/valid.js.map +0 -1
- package/src/components/PlTableFilters/PlTableAddFilterV2.vue +0 -84
- package/src/components/PlTableFilters/PlTableFilterEntryV2.vue +0 -157
- package/src/components/PlTableFilters/filters-state.ts +0 -152
- package/src/components/PlTableFilters/filters_logic.ts +0 -444
- package/src/components/PlTableFilters/types.ts +0 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlTableFiltersV2.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlTableFilters/PlTableFiltersV2.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlTableFiltersV2.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlTableFilters/PlTableFiltersV2.vue"],"names":[],"mappings":"AA+IA,OAAO,KAAK,EAAE,gBAAgB,EAAkC,MAAM,sBAAsB,CAAC;AAY7F,OAAO,EACL,gBAAgB,EAGjB,MAAM,qBAAqB,CAAC;AAI7B,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B,CAAC;AA0FF,KAAK,iBAAiB,GAAG;IACzB,UAAU,EAAE,gBAAgB,CAAC;CAC5B,GAAG,WAAW,CAAC;;;;;;AAoIhB,wBAOG"}
|
|
@@ -1,157 +1,107 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { canonicalizeJson as
|
|
3
|
-
import { usePlBlockPageTitleTeleportTarget as
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
import _ from "./PlTableFilterEntryV2.vue.js";
|
|
7
|
-
import { isJsonEqual as ee } from "../../lib/util/helpers/dist/objects.js";
|
|
8
|
-
const le = ["disabled"], te = { key: 1 }, ue = /* @__PURE__ */ D({
|
|
1
|
+
import { defineComponent as M, mergeModels as N, useModel as A, ref as T, onMounted as x, computed as C, createElementBlock as p, openBlock as s, Fragment as E, createBlock as P, createCommentVNode as w, createVNode as m, unref as r, Teleport as B, withModifiers as z, withCtx as c, createTextVNode as h, normalizeClass as O } from "vue";
|
|
2
|
+
import { readAnnotation as f, Annotation as g, readDomain as $, Domain as D, getAxisId as I, canonicalizeJson as L, parseJson as U } from "@platforma-sdk/model";
|
|
3
|
+
import { usePlBlockPageTitleTeleportTarget as J, PlBtnGhost as G, PlSlideModal as R } from "@milaboratories/uikit";
|
|
4
|
+
import j from "../PlAdvancedFilter/PlAdvancedFilter.vue.js";
|
|
5
|
+
const H = { key: 1 }, Y = /* @__PURE__ */ M({
|
|
9
6
|
__name: "PlTableFiltersV2",
|
|
10
|
-
props: /* @__PURE__ */
|
|
11
|
-
|
|
7
|
+
props: /* @__PURE__ */ N({
|
|
8
|
+
columns: {}
|
|
12
9
|
}, {
|
|
13
|
-
modelValue: {
|
|
14
|
-
default: []
|
|
15
|
-
},
|
|
10
|
+
modelValue: { required: !0 },
|
|
16
11
|
modelModifiers: {}
|
|
17
12
|
}),
|
|
18
13
|
emits: ["update:modelValue"],
|
|
19
|
-
setup(
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
P(() => {
|
|
24
|
-
y.value = !0;
|
|
14
|
+
setup(v) {
|
|
15
|
+
const a = A(v, "modelValue"), k = v, b = T(!1);
|
|
16
|
+
x(() => {
|
|
17
|
+
b.value = !0;
|
|
25
18
|
});
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
19
|
+
const V = J("PlTableFiltersV2"), i = T(!1), q = C(() => a.value.filters.length > 0);
|
|
20
|
+
function y(t) {
|
|
21
|
+
const e = t.type === "axis" ? { type: "axis", id: I(t.spec) } : { type: "column", id: t.id };
|
|
22
|
+
return L(e);
|
|
23
|
+
}
|
|
24
|
+
const u = C(() => k.columns.map((t, e) => {
|
|
25
|
+
var d;
|
|
26
|
+
const l = y(t), o = ((d = f(t.spec, g.Label)) == null ? void 0 : d.trim()) ?? `Unlabeled ${t.type} ${e}`, n = $(t.spec, D.Alphabet) ?? f(t.spec, g.Alphabet);
|
|
27
|
+
return {
|
|
28
|
+
id: l,
|
|
29
|
+
label: o,
|
|
30
|
+
spec: t.spec,
|
|
31
|
+
alphabet: n ?? void 0
|
|
32
|
+
};
|
|
33
|
+
})), S = [
|
|
34
|
+
"isNA",
|
|
35
|
+
"isNotNA",
|
|
36
|
+
"greaterThan",
|
|
37
|
+
"greaterThanOrEqual",
|
|
38
|
+
"lessThan",
|
|
39
|
+
"lessThanOrEqual",
|
|
40
|
+
"patternEquals",
|
|
41
|
+
"patternNotEquals",
|
|
42
|
+
"patternContainSubsequence",
|
|
43
|
+
"patternNotContainSubsequence",
|
|
44
|
+
"patternMatchesRegularExpression",
|
|
45
|
+
"patternFuzzyContainSubsequence",
|
|
46
|
+
"equal",
|
|
47
|
+
"notEqual"
|
|
48
|
+
];
|
|
49
|
+
function F(t) {
|
|
50
|
+
const e = u.value.find((o) => o.id === t.columnId);
|
|
51
|
+
if (!e) return [];
|
|
52
|
+
const l = f(e.spec, g.DiscreteValues);
|
|
53
|
+
if (!l) return [];
|
|
54
|
+
try {
|
|
55
|
+
return U(l).filter((n) => t.searchStr ? String(n).toLowerCase().includes(t.searchStr.toLowerCase()) : !0).map((n) => ({ value: n, label: String(n) }));
|
|
56
|
+
} catch {
|
|
57
|
+
return [];
|
|
43
58
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
value: e.defaultFilter,
|
|
48
|
-
disabled: !1,
|
|
49
|
-
open: !1
|
|
50
|
-
} : e.filter = null;
|
|
51
|
-
});
|
|
52
|
-
}, T = f(() => a.value.filter((e) => e.filter !== null));
|
|
53
|
-
return (e, t) => (m(), b(J, null, [
|
|
54
|
-
y.value && o(M) ? (m(), O(W, {
|
|
59
|
+
}
|
|
60
|
+
return (t, e) => (s(), p(E, null, [
|
|
61
|
+
b.value && r(V) ? (s(), P(B, {
|
|
55
62
|
key: 0,
|
|
56
|
-
to:
|
|
63
|
+
to: r(V)
|
|
57
64
|
}, [
|
|
58
|
-
r(
|
|
59
|
-
icon:
|
|
60
|
-
onClick:
|
|
65
|
+
m(r(G), {
|
|
66
|
+
icon: q.value ? "filter-on" : "filter",
|
|
67
|
+
onClick: e[0] || (e[0] = z((l) => i.value = !0, ["stop"]))
|
|
61
68
|
}, {
|
|
62
|
-
default:
|
|
63
|
-
|
|
69
|
+
default: c(() => [...e[3] || (e[3] = [
|
|
70
|
+
h(" Filters ", -1)
|
|
64
71
|
])]),
|
|
65
72
|
_: 1
|
|
66
73
|
}, 8, ["icon"])
|
|
67
|
-
], 8, ["to"])) :
|
|
68
|
-
r(
|
|
69
|
-
modelValue:
|
|
70
|
-
"onUpdate:modelValue":
|
|
74
|
+
], 8, ["to"])) : w("", !0),
|
|
75
|
+
m(r(R), {
|
|
76
|
+
modelValue: i.value,
|
|
77
|
+
"onUpdate:modelValue": e[2] || (e[2] = (l) => i.value = l),
|
|
71
78
|
"close-on-outside-click": !1
|
|
72
79
|
}, {
|
|
73
|
-
title:
|
|
74
|
-
|
|
80
|
+
title: c(() => [...e[4] || (e[4] = [
|
|
81
|
+
h("Manage Filters", -1)
|
|
75
82
|
])]),
|
|
76
|
-
default:
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
class: v(e.$style["filter-manager"])
|
|
83
|
+
default: c(() => [
|
|
84
|
+
u.value.length > 0 ? (s(), p("div", {
|
|
85
|
+
key: 0,
|
|
86
|
+
class: O(t.$style.root)
|
|
81
87
|
}, [
|
|
82
|
-
r(
|
|
83
|
-
|
|
84
|
-
"onUpdate:
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
"
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
"on-toggle": (l) => {
|
|
93
|
-
l.filter && (l.filter.disabled = !l.filter.disabled);
|
|
94
|
-
},
|
|
95
|
-
"is-toggled": (l) => {
|
|
96
|
-
var i;
|
|
97
|
-
return ((i = l.filter) == null ? void 0 : i.disabled) ?? !1;
|
|
98
|
-
},
|
|
99
|
-
"on-remove": (l) => {
|
|
100
|
-
l.filter && (l.filter = null);
|
|
101
|
-
},
|
|
102
|
-
"get-item-key": (l) => o(G)(l.id),
|
|
103
|
-
"disable-dragging": ""
|
|
104
|
-
}, {
|
|
105
|
-
"item-title": d(({ item: l }) => [
|
|
106
|
-
p(q(l.label), 1)
|
|
107
|
-
]),
|
|
108
|
-
"item-content": d(({ index: l }) => [
|
|
109
|
-
r(_, {
|
|
110
|
-
modelValue: o(a).value[l],
|
|
111
|
-
"onUpdate:modelValue": (i) => o(a).value[l] = i
|
|
112
|
-
}, null, 8, ["modelValue", "onUpdate:modelValue"])
|
|
113
|
-
]),
|
|
114
|
-
_: 1
|
|
115
|
-
}, 8, ["items", "on-expand", "is-expanded", "on-toggle", "is-toggled", "on-remove", "get-item-key"]),
|
|
116
|
-
o(a).value.length ? (m(), b("div", {
|
|
117
|
-
key: 0,
|
|
118
|
-
class: v(e.$style["add-action-wrapper"])
|
|
119
|
-
}, [
|
|
120
|
-
k("button", {
|
|
121
|
-
disabled: !R.value,
|
|
122
|
-
class: v(e.$style["add-btn"]),
|
|
123
|
-
onClick: t[2] || (t[2] = (l) => g.value = !0)
|
|
124
|
-
}, [
|
|
125
|
-
r(o(Q), { name: "add" }),
|
|
126
|
-
k("div", {
|
|
127
|
-
class: v(e.$style["add-btn-title"])
|
|
128
|
-
}, "Add Filter", 2)
|
|
129
|
-
], 10, le),
|
|
130
|
-
r(o(X), {
|
|
131
|
-
disabled: !x.value,
|
|
132
|
-
onClick: $(z, ["stop"])
|
|
133
|
-
}, {
|
|
134
|
-
default: d(() => [...t[7] || (t[7] = [
|
|
135
|
-
p(" Reset to defaults ", -1)
|
|
136
|
-
])]),
|
|
137
|
-
_: 1
|
|
138
|
-
}, 8, ["disabled"])
|
|
139
|
-
], 2)) : V("", !0),
|
|
140
|
-
o(a).value.length ? V("", !0) : (m(), b("div", te, "No filters applicable"))
|
|
141
|
-
], 2)
|
|
88
|
+
m(r(j), {
|
|
89
|
+
filters: a.value,
|
|
90
|
+
"onUpdate:filters": e[1] || (e[1] = (l) => a.value = l),
|
|
91
|
+
items: u.value,
|
|
92
|
+
"supported-filters": S,
|
|
93
|
+
"get-suggest-options": F,
|
|
94
|
+
"enable-dnd": !1,
|
|
95
|
+
"enable-add-group-button": !0
|
|
96
|
+
}, null, 8, ["filters", "items"])
|
|
97
|
+
], 2)) : (s(), p("div", H, "No filters applicable"))
|
|
142
98
|
]),
|
|
143
99
|
_: 1
|
|
144
|
-
}, 8, ["modelValue"])
|
|
145
|
-
r(Z, {
|
|
146
|
-
modelValue: g.value,
|
|
147
|
-
"onUpdate:modelValue": t[4] || (t[4] = (l) => g.value = l),
|
|
148
|
-
filters: o(a).value,
|
|
149
|
-
"set-filter": (l, i) => o(a).value[l] = i
|
|
150
|
-
}, null, 8, ["modelValue", "filters", "set-filter"])
|
|
100
|
+
}, 8, ["modelValue"])
|
|
151
101
|
], 64));
|
|
152
102
|
}
|
|
153
103
|
});
|
|
154
104
|
export {
|
|
155
|
-
|
|
105
|
+
Y as default
|
|
156
106
|
};
|
|
157
107
|
//# sourceMappingURL=PlTableFiltersV2.vue2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlTableFiltersV2.vue2.js","sources":["../../../src/components/PlTableFilters/PlTableFiltersV2.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport {\n type PlDataTableFilterState,\n canonicalizeJson,\n type PTableColumnId,\n} from \"@platforma-sdk/model\";\nimport type { PlDataTableFiltersSettings } from \"./types\";\nimport { computed, onBeforeUnmount, onMounted, ref, toRefs, watch } from \"vue\";\nimport {\n PlBtnGhost,\n PlSlideModal,\n PlBtnSecondary,\n PlMaskIcon16,\n PlElementList,\n usePlBlockPageTitleTeleportTarget,\n} from \"@milaboratories/uikit\";\nimport { useFilters } from \"./filters-state\";\nimport PlTableAddFilterV2 from \"./PlTableAddFilterV2.vue\";\nimport PlTableFilterEntryV2 from \"./PlTableFilterEntryV2.vue\";\nimport { isJsonEqual } from \"@milaboratories/helpers\";\n\nconst state = defineModel<PlDataTableFilterState[]>({\n default: [],\n});\nconst props = defineProps<{\n settings: Readonly<PlDataTableFiltersSettings>;\n}>();\nconst { settings } = toRefs(props);\n\nconst filters = useFilters(settings, state);\n\nconst filtersOn = computed<boolean>(() =>\n filters.value.some((s) => s.filter && !s.filter.disabled),\n);\n\nconst mounted = ref(false);\nonMounted(() => {\n mounted.value = true;\n});\nconst teleportTarget = usePlBlockPageTitleTeleportTarget(\"PlTableFiltersV2\");\n\nconst showManager = ref(false);\n\nconst scrollIsActive = ref(false);\nconst filterManager = ref<HTMLElement>();\nlet observer: ResizeObserver;\nonMounted(() => {\n observer = new ResizeObserver(() => {\n const parent = filterManager.value?.parentElement;\n if (!parent) return;\n scrollIsActive.value =\n parent.scrollHeight > parent.clientHeight || parent.scrollWidth > parent.clientWidth;\n });\n if (filterManager.value && filterManager.value.parentElement) {\n observer.observe(filterManager.value!.parentElement);\n }\n});\n\nwatch(filterManager, (newElement, oldElement) => {\n if (oldElement?.parentElement) {\n observer.unobserve(oldElement.parentElement);\n }\n if (newElement?.parentElement) {\n observer.observe(newElement.parentElement);\n }\n});\n\nonBeforeUnmount(() => {\n if (observer !== undefined) {\n observer.disconnect();\n }\n});\n\nconst canAddFilter = computed<boolean>(() => filters.value.some((s) => !s.filter));\nconst showAddFilter = ref(false);\n\nconst canResetToDefaults = computed<boolean>(() => {\n return filters.value.some(\n (s) =>\n (!s.defaultFilter && s.filter) ||\n (s.defaultFilter &&\n (s.filter?.disabled === true || !isJsonEqual(s.filter?.value, s.defaultFilter))),\n );\n});\nconst resetToDefaults = () => {\n filters.value.forEach((s) => {\n if (s.defaultFilter) {\n s.filter = {\n value: s.defaultFilter,\n disabled: false,\n open: false,\n };\n } else {\n s.filter = null;\n }\n });\n};\n\nconst items = computed(() => filters.value.filter((s) => s.filter !== null));\n</script>\n\n<template>\n <Teleport v-if=\"mounted && teleportTarget\" :to=\"teleportTarget\">\n <PlBtnGhost :icon=\"filtersOn ? 'filter-on' : 'filter'\" @click.stop=\"showManager = true\">\n Filters\n </PlBtnGhost>\n </Teleport>\n\n <PlSlideModal v-model=\"showManager\" :close-on-outside-click=\"false\">\n <template #title>Manage Filters</template>\n\n <div ref=\"filterManager\" :class=\"$style['filter-manager']\">\n <PlElementList\n v-model:items=\"items\"\n :on-expand=\"\n (item) => {\n if (item.filter) {\n item.filter.open = !item.filter.open;\n }\n }\n \"\n :is-expanded=\"(item) => item.filter?.open ?? false\"\n :on-toggle=\"\n (item) => {\n if (item.filter) {\n item.filter.disabled = !item.filter.disabled;\n }\n }\n \"\n :is-toggled=\"(item) => item.filter?.disabled ?? false\"\n :on-remove=\"\n (item) => {\n if (item.filter) {\n item.filter = null;\n }\n }\n \"\n :get-item-key=\"(item) => canonicalizeJson<PTableColumnId>(item.id)\"\n disable-dragging\n >\n <template #item-title=\"{ item }\">\n {{ item.label }}\n </template>\n <template #item-content=\"{ index }\">\n <PlTableFilterEntryV2 v-model=\"filters.value[index]\" />\n </template>\n </PlElementList>\n\n <div v-if=\"filters.value.length\" :class=\"$style['add-action-wrapper']\">\n <button :disabled=\"!canAddFilter\" :class=\"$style['add-btn']\" @click=\"showAddFilter = true\">\n <PlMaskIcon16 name=\"add\" />\n <div :class=\"$style['add-btn-title']\">Add Filter</div>\n </button>\n\n <PlBtnSecondary :disabled=\"!canResetToDefaults\" @click.stop=\"resetToDefaults\">\n Reset to defaults\n </PlBtnSecondary>\n </div>\n\n <div v-if=\"!filters.value.length\">No filters applicable</div>\n </div>\n </PlSlideModal>\n\n <PlTableAddFilterV2\n v-model=\"showAddFilter\"\n :filters=\"filters.value\"\n :set-filter=\"(idx, filter) => (filters.value[idx] = filter)\"\n />\n</template>\n\n<style lang=\"scss\" module>\n.filter-manager {\n --expand-icon-rotation: rotate(0deg);\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.add-action-wrapper {\n position: sticky;\n bottom: -16px;\n background-color: var(--bg-elevated-01);\n transition: all 0.15s ease-in-out;\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.add-btn {\n height: 40px;\n background-color: var(--bg-elevated-01);\n display: flex;\n align-items: center;\n gap: 8px;\n padding-left: 12px;\n padding-right: 12px;\n border-radius: 6px;\n border: 1px dashed var(--border-color-div-grey);\n line-height: 0;\n cursor: pointer;\n text-align: left;\n}\n\n.add-btn:disabled {\n --icon-color: var(--dis-01);\n cursor: auto;\n}\n\n.add-btn:not([disabled]):hover {\n border-radius: 6px;\n border: 1px dashed var(--border-color-focus, #49cc49);\n background: rgba(99, 224, 36, 0.12);\n}\n\n.add-btn-title {\n flex-grow: 1;\n font-weight: 600;\n}\n\n.expand-icon {\n transition: all 0.15s ease-in-out;\n transform: var(--expand-icon-rotation);\n line-height: 0;\n cursor: pointer;\n}\n\n.toggle,\n.delete {\n line-height: 0;\n cursor: pointer;\n display: none;\n}\n\n.toggle .mask-24,\n.delete .mask-24 {\n --icon-color: var(--ic-02);\n}\n\n.toggle:hover .mask-24 {\n --icon-color: var(--ic-01);\n}\n\n.delete:hover .mask-24 {\n --icon-color: var(--ic-01);\n}\n\n.filter:hover .toggle,\n.filter:hover .delete {\n display: block;\n}\n\n.filter {\n border-radius: 6px;\n border: 1px solid var(--border-color-div-grey);\n background-color: var(--bg-base-light);\n transition: background-color 0.15s ease-in-out;\n overflow: auto;\n}\n\n.filter.disabled .expand-icon,\n.filter.disabled .title {\n opacity: 0.3;\n}\n\n.filter:hover {\n background-color: var(--bg-elevated-01);\n}\n\n.filter:global(.open) {\n background-color: var(--bg-elevated-01);\n --expand-icon-rotation: rotate(90deg);\n}\n</style>\n"],"names":["state","_useModel","props","__props","settings","toRefs","filters","useFilters","filtersOn","computed","s","mounted","ref","onMounted","teleportTarget","usePlBlockPageTitleTeleportTarget","showManager","scrollIsActive","filterManager","observer","parent","_a","watch","newElement","oldElement","onBeforeUnmount","canAddFilter","showAddFilter","canResetToDefaults","isJsonEqual","_b","resetToDefaults","items","_unref","_createBlock","_Teleport","_createVNode","PlBtnGhost","_cache","PlSlideModal","$event","_createElementVNode","$style","PlElementList","item","_withCtx","_createTextVNode","_toDisplayString","index","PlTableFilterEntryV2","_createElementBlock","PlMaskIcon16","PlBtnSecondary","_openBlock","PlTableAddFilterV2","idx","filter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PlTableFiltersV2.vue2.js","sources":["../../../src/components/PlTableFilters/PlTableFiltersV2.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { PTableColumnSpec, PTableColumnId, ListOptionBase } from \"@platforma-sdk/model\";\nimport {\n canonicalizeJson,\n Annotation,\n Domain,\n readAnnotation,\n readDomain,\n parseJson,\n getAxisId,\n} from \"@platforma-sdk/model\";\nimport { computed, onMounted, ref } from \"vue\";\nimport { PlBtnGhost, PlSlideModal, usePlBlockPageTitleTeleportTarget } from \"@milaboratories/uikit\";\nimport {\n PlAdvancedFilter,\n PlAdvancedFilterSupportedFilters,\n type PlAdvancedFilterItem,\n} from \"../PlAdvancedFilter\";\nimport type { PlAdvancedFilterColumnId } from \"../PlAdvancedFilter/types\";\n\nconst model = defineModel<PlAdvancedFilter>({ required: true });\nconst props = defineProps<{\n columns: PTableColumnSpec[];\n}>();\n\n// Teleport for \"Filters\" button\nconst mounted = ref(false);\nonMounted(() => {\n mounted.value = true;\n});\nconst teleportTarget = usePlBlockPageTitleTeleportTarget(\"PlTableFiltersV2\");\nconst showManager = ref(false);\n\n// Check if any filters are active\nconst filtersOn = computed(() => {\n return model.value.filters.length > 0;\n});\n\n// Convert PTableColumnSpec to PlAdvancedFilterColumnId\nfunction makeFilterColumnId(spec: PTableColumnSpec): PlAdvancedFilterColumnId {\n const id: PTableColumnId =\n spec.type === \"axis\"\n ? { type: \"axis\", id: getAxisId(spec.spec) }\n : { type: \"column\", id: spec.id };\n return canonicalizeJson<PTableColumnId>(id) as unknown as PlAdvancedFilterColumnId;\n}\n\n// Convert PTableColumnSpec[] to PlAdvancedFilterItem[]\nconst items = computed<PlAdvancedFilterItem[]>(() => {\n return props.columns.map((col, idx) => {\n const id = makeFilterColumnId(col);\n const label =\n readAnnotation(col.spec, Annotation.Label)?.trim() ?? `Unlabeled ${col.type} ${idx}`;\n const alphabet =\n readDomain(col.spec, Domain.Alphabet) ?? readAnnotation(col.spec, Annotation.Alphabet);\n return {\n id,\n label,\n spec: col.spec,\n alphabet: alphabet ?? undefined,\n };\n });\n});\n\n// Supported filters (same set as FilterSidebar)\nconst supportedFilters = [\n \"isNA\",\n \"isNotNA\",\n \"greaterThan\",\n \"greaterThanOrEqual\",\n \"lessThan\",\n \"lessThanOrEqual\",\n \"patternEquals\",\n \"patternNotEquals\",\n \"patternContainSubsequence\",\n \"patternNotContainSubsequence\",\n \"patternMatchesRegularExpression\",\n \"patternFuzzyContainSubsequence\",\n \"equal\",\n \"notEqual\",\n] as (typeof PlAdvancedFilterSupportedFilters)[number][];\n\n// getSuggestOptions - provide discrete values from column annotations\nfunction getSuggestOptions(params: {\n columnId: PlAdvancedFilterColumnId;\n axisIdx?: number;\n searchStr: string;\n searchType: \"value\" | \"label\";\n}): ListOptionBase<string | number>[] {\n const item = items.value.find((i) => i.id === params.columnId);\n if (!item) return [];\n\n const discreteValuesStr = readAnnotation(item.spec, Annotation.DiscreteValues);\n if (!discreteValuesStr) return [];\n\n try {\n const values = parseJson<(string | number)[]>(discreteValuesStr);\n return values\n .filter((v) => {\n if (!params.searchStr) return true;\n const str = String(v).toLowerCase();\n return str.includes(params.searchStr.toLowerCase());\n })\n .map((v) => ({ value: v, label: String(v) }));\n } catch {\n return [];\n }\n}\n</script>\n\n<template>\n <Teleport v-if=\"mounted && teleportTarget\" :to=\"teleportTarget\">\n <PlBtnGhost :icon=\"filtersOn ? 'filter-on' : 'filter'\" @click.stop=\"showManager = true\">\n Filters\n </PlBtnGhost>\n </Teleport>\n\n <PlSlideModal v-model=\"showManager\" :close-on-outside-click=\"false\">\n <template #title>Manage Filters</template>\n\n <div v-if=\"items.length > 0\" :class=\"$style.root\">\n <PlAdvancedFilter\n v-model:filters=\"model\"\n :items=\"items\"\n :supported-filters=\"supportedFilters\"\n :get-suggest-options=\"getSuggestOptions\"\n :enable-dnd=\"false\"\n :enable-add-group-button=\"true\"\n />\n </div>\n <div v-else>No filters applicable</div>\n </PlSlideModal>\n</template>\n\n<style module>\n.root {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n</style>\n"],"names":["model","_useModel","props","__props","mounted","ref","onMounted","teleportTarget","usePlBlockPageTitleTeleportTarget","showManager","filtersOn","computed","makeFilterColumnId","spec","id","getAxisId","canonicalizeJson","items","col","idx","label","_a","readAnnotation","Annotation","alphabet","readDomain","Domain","supportedFilters","getSuggestOptions","params","item","i","discreteValuesStr","parseJson","v","_unref","_createBlock","_Teleport","_createVNode","PlBtnGhost","_cache","PlSlideModal","$event","_createElementBlock","_normalizeClass","$style","PlAdvancedFilter","_openBlock"],"mappings":"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"}
|
|
@@ -1,21 +1,8 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
"add-action-wrapper": "_add-action-wrapper_3rpt9_8",
|
|
4
|
-
"add-btn": "_add-btn_3rpt9_18",
|
|
5
|
-
"add-btn-title": "_add-btn-title_3rpt9_44",
|
|
6
|
-
"expand-icon": "_expand-icon_3rpt9_49",
|
|
7
|
-
toggle: t,
|
|
8
|
-
delete: "_delete_3rpt9_57",
|
|
9
|
-
"mask-24": "_mask-24_3rpt9_63",
|
|
10
|
-
filter: _,
|
|
11
|
-
disabled: e,
|
|
12
|
-
title: a
|
|
1
|
+
const o = "_root_pwh6f_2", t = {
|
|
2
|
+
root: o
|
|
13
3
|
};
|
|
14
4
|
export {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
_ as filter,
|
|
18
|
-
a as title,
|
|
19
|
-
t as toggle
|
|
5
|
+
t as default,
|
|
6
|
+
o as root
|
|
20
7
|
};
|
|
21
8
|
//# sourceMappingURL=PlTableFiltersV2.vue3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlTableFiltersV2.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlTableFiltersV2.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PlTableFilters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PlTableFilters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|