@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.
Files changed (170) hide show
  1. package/.turbo/turbo-build.log +142 -195
  2. package/.turbo/turbo-formatter$colon$check.log +2 -2
  3. package/.turbo/turbo-linter$colon$check.log +2 -2
  4. package/.turbo/turbo-types$colon$check.log +1 -1
  5. package/CHANGELOG.md +18 -0
  6. package/dist/AgGridVue/useAgGridOptions.js +2 -3
  7. package/dist/AgGridVue/useAgGridOptions.js.map +1 -1
  8. package/dist/components/PlAdvancedFilter/constants.d.ts +1 -1
  9. package/dist/components/PlAdvancedFilter/index.d.ts +2 -2
  10. package/dist/components/PlAdvancedFilter/index.d.ts.map +1 -1
  11. package/dist/components/PlAdvancedFilter/index.js.map +1 -1
  12. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue.d.ts.map +1 -1
  13. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js +135 -146
  14. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js.map +1 -1
  15. package/dist/components/PlAgDataTable/PlAgRowCount.vue.js +7 -8
  16. package/dist/components/PlAgDataTable/PlAgRowCount.vue.js.map +1 -1
  17. package/dist/components/PlAgDataTable/sources/table-state-v2.d.ts +3 -2
  18. package/dist/components/PlAgDataTable/sources/table-state-v2.d.ts.map +1 -1
  19. package/dist/components/PlAgDataTable/sources/table-state-v2.js +94 -95
  20. package/dist/components/PlAgDataTable/sources/table-state-v2.js.map +1 -1
  21. package/dist/components/PlAgDataTable/types.d.ts +3 -44
  22. package/dist/components/PlAgDataTable/types.d.ts.map +1 -1
  23. package/dist/components/PlAgDataTable/types.js +26 -42
  24. package/dist/components/PlAgDataTable/types.js.map +1 -1
  25. package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js +9 -10
  26. package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js.map +1 -1
  27. package/dist/components/PlAgRowNumHeader.vue.js +8 -9
  28. package/dist/components/PlAgRowNumHeader.vue.js.map +1 -1
  29. package/dist/components/PlAnnotations/components/FilterSidebar.vue.d.ts.map +1 -1
  30. package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js +76 -74
  31. package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js.map +1 -1
  32. package/dist/components/PlAnnotations/components/PlAnnotations.vue2.js.map +1 -1
  33. package/dist/components/PlTableFilters/PlTableFiltersV2.vue.d.ts +7 -9
  34. package/dist/components/PlTableFilters/PlTableFiltersV2.vue.d.ts.map +1 -1
  35. package/dist/components/PlTableFilters/PlTableFiltersV2.vue2.js +82 -132
  36. package/dist/components/PlTableFilters/PlTableFiltersV2.vue2.js.map +1 -1
  37. package/dist/components/PlTableFilters/PlTableFiltersV2.vue3.js +4 -17
  38. package/dist/components/PlTableFilters/PlTableFiltersV2.vue3.js.map +1 -1
  39. package/dist/components/PlTableFilters/index.d.ts +0 -1
  40. package/dist/components/PlTableFilters/index.d.ts.map +1 -1
  41. package/dist/index.js +1 -1
  42. package/package.json +6 -6
  43. package/src/components/PlAdvancedFilter/index.ts +1 -1
  44. package/src/components/PlAgDataTable/PlAgDataTableV2.vue +3 -22
  45. package/src/components/PlAgDataTable/sources/table-state-v2.ts +68 -64
  46. package/src/components/PlAgDataTable/types.ts +15 -78
  47. package/src/components/PlAnnotations/components/FilterSidebar.vue +3 -6
  48. package/src/components/PlTableFilters/PlTableFiltersV2.vue +100 -232
  49. package/src/components/PlTableFilters/index.ts +0 -1
  50. package/dist/_virtual/index.js +0 -6
  51. package/dist/_virtual/index.js.map +0 -1
  52. package/dist/_virtual/re.js +0 -5
  53. package/dist/_virtual/re.js.map +0 -1
  54. package/dist/components/PlTableFilters/PlTableAddFilterV2.vue.d.ts +0 -15
  55. package/dist/components/PlTableFilters/PlTableAddFilterV2.vue.d.ts.map +0 -1
  56. package/dist/components/PlTableFilters/PlTableAddFilterV2.vue.js +0 -97
  57. package/dist/components/PlTableFilters/PlTableAddFilterV2.vue.js.map +0 -1
  58. package/dist/components/PlTableFilters/PlTableAddFilterV2.vue2.js +0 -5
  59. package/dist/components/PlTableFilters/PlTableAddFilterV2.vue2.js.map +0 -1
  60. package/dist/components/PlTableFilters/PlTableFilterEntryV2.vue.d.ts +0 -11
  61. package/dist/components/PlTableFilters/PlTableFilterEntryV2.vue.d.ts.map +0 -1
  62. package/dist/components/PlTableFilters/PlTableFilterEntryV2.vue.js +0 -142
  63. package/dist/components/PlTableFilters/PlTableFilterEntryV2.vue.js.map +0 -1
  64. package/dist/components/PlTableFilters/PlTableFilterEntryV2.vue2.js +0 -5
  65. package/dist/components/PlTableFilters/PlTableFilterEntryV2.vue2.js.map +0 -1
  66. package/dist/components/PlTableFilters/filters-state.d.ts +0 -7
  67. package/dist/components/PlTableFilters/filters-state.d.ts.map +0 -1
  68. package/dist/components/PlTableFilters/filters-state.js +0 -79
  69. package/dist/components/PlTableFilters/filters-state.js.map +0 -1
  70. package/dist/components/PlTableFilters/filters_logic.d.ts +0 -24
  71. package/dist/components/PlTableFilters/filters_logic.d.ts.map +0 -1
  72. package/dist/components/PlTableFilters/filters_logic.js +0 -348
  73. package/dist/components/PlTableFilters/filters_logic.js.map +0 -1
  74. package/dist/components/PlTableFilters/types.d.ts +0 -26
  75. package/dist/components/PlTableFilters/types.d.ts.map +0 -1
  76. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/comparator.js +0 -57
  77. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/comparator.js.map +0 -1
  78. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/range.js +0 -149
  79. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/range.js.map +0 -1
  80. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/semver.js +0 -170
  81. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/semver.js.map +0 -1
  82. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/clean.js +0 -15
  83. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/clean.js.map +0 -1
  84. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/cmp.js +0 -40
  85. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/cmp.js.map +0 -1
  86. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/coerce.js +0 -34
  87. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/coerce.js.map +0 -1
  88. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare-build.js +0 -15
  89. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare-build.js.map +0 -1
  90. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare-loose.js +0 -12
  91. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare-loose.js.map +0 -1
  92. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare.js +0 -12
  93. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare.js.map +0 -1
  94. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/diff.js +0 -25
  95. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/diff.js.map +0 -1
  96. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/eq.js +0 -12
  97. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/eq.js.map +0 -1
  98. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/gt.js +0 -12
  99. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/gt.js.map +0 -1
  100. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/gte.js +0 -12
  101. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/gte.js.map +0 -1
  102. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/inc.js +0 -22
  103. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/inc.js.map +0 -1
  104. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/lt.js +0 -12
  105. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/lt.js.map +0 -1
  106. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/lte.js +0 -12
  107. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/lte.js.map +0 -1
  108. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/major.js +0 -12
  109. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/major.js.map +0 -1
  110. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/minor.js +0 -12
  111. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/minor.js.map +0 -1
  112. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/neq.js +0 -12
  113. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/neq.js.map +0 -1
  114. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/parse.js +0 -22
  115. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/parse.js.map +0 -1
  116. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/patch.js +0 -12
  117. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/patch.js.map +0 -1
  118. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/prerelease.js +0 -15
  119. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/prerelease.js.map +0 -1
  120. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/rcompare.js +0 -12
  121. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/rcompare.js.map +0 -1
  122. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/rsort.js +0 -12
  123. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/rsort.js.map +0 -1
  124. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/satisfies.js +0 -19
  125. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/satisfies.js.map +0 -1
  126. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/sort.js +0 -12
  127. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/sort.js.map +0 -1
  128. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/valid.js +0 -15
  129. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/valid.js.map +0 -1
  130. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/index.js +0 -98
  131. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/index.js.map +0 -1
  132. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/constants.js +0 -29
  133. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/constants.js.map +0 -1
  134. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/debug.js +0 -9
  135. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/debug.js.map +0 -1
  136. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/identifiers.js +0 -17
  137. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/identifiers.js.map +0 -1
  138. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/lrucache.js +0 -33
  139. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/lrucache.js.map +0 -1
  140. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/parse-options.js +0 -11
  141. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/parse-options.js.map +0 -1
  142. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/re.js +0 -33
  143. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/re.js.map +0 -1
  144. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/gtr.js +0 -12
  145. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/gtr.js.map +0 -1
  146. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/intersects.js +0 -12
  147. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/intersects.js.map +0 -1
  148. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/ltr.js +0 -12
  149. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/ltr.js.map +0 -1
  150. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/max-satisfying.js +0 -23
  151. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/max-satisfying.js.map +0 -1
  152. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/min-satisfying.js +0 -23
  153. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/min-satisfying.js.map +0 -1
  154. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/min-version.js +0 -43
  155. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/min-version.js.map +0 -1
  156. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/outside.js +0 -45
  157. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/outside.js.map +0 -1
  158. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/simplify.js +0 -25
  159. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/simplify.js.map +0 -1
  160. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/subset.js +0 -95
  161. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/subset.js.map +0 -1
  162. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/to-comparators.js +0 -12
  163. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/to-comparators.js.map +0 -1
  164. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/valid.js +0 -18
  165. package/dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/valid.js.map +0 -1
  166. package/src/components/PlTableFilters/PlTableAddFilterV2.vue +0 -84
  167. package/src/components/PlTableFilters/PlTableFilterEntryV2.vue +0 -157
  168. package/src/components/PlTableFilters/filters-state.ts +0 -152
  169. package/src/components/PlTableFilters/filters_logic.ts +0 -444
  170. 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":"AAmRA,OAAO,EACL,KAAK,sBAAsB,EAG5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAkB1D,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;CAChD,CAAC;AA+EF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACrC,GAAG,WAAW,CAAC;;;;;;;;AAqQhB,wBAQG"}
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 D, mergeModels as S, useModel as w, toRefs as E, computed as f, ref as u, onMounted as P, watch as H, onBeforeUnmount as I, createElementBlock as b, openBlock as m, Fragment as J, createBlock as O, createCommentVNode as V, createVNode as r, unref as o, Teleport as W, withModifiers as $, withCtx as d, createTextVNode as p, createElementVNode as k, normalizeClass as v, toDisplayString as q } from "vue";
2
- import { canonicalizeJson as G } from "@platforma-sdk/model";
3
- import { usePlBlockPageTitleTeleportTarget as L, PlBtnGhost as h, PlSlideModal as j, PlElementList as K, PlMaskIcon16 as Q, PlBtnSecondary as X } from "@milaboratories/uikit";
4
- import { useFilters as Y } from "./filters-state.js";
5
- import Z from "./PlTableAddFilterV2.vue.js";
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__ */ S({
11
- settings: {}
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(F) {
20
- const B = w(F, "modelValue"), C = F, { settings: U } = E(C), a = Y(U, B), N = f(
21
- () => a.value.some((e) => e.filter && !e.filter.disabled)
22
- ), y = u(!1);
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 M = L("PlTableFiltersV2"), c = u(!1), A = u(!1), s = u();
27
- let n;
28
- P(() => {
29
- n = new ResizeObserver(() => {
30
- var t;
31
- const e = (t = s.value) == null ? void 0 : t.parentElement;
32
- e && (A.value = e.scrollHeight > e.clientHeight || e.scrollWidth > e.clientWidth);
33
- }), s.value && s.value.parentElement && n.observe(s.value.parentElement);
34
- }), H(s, (e, t) => {
35
- t != null && t.parentElement && n.unobserve(t.parentElement), e != null && e.parentElement && n.observe(e.parentElement);
36
- }), I(() => {
37
- n !== void 0 && n.disconnect();
38
- });
39
- const R = f(() => a.value.some((e) => !e.filter)), g = u(!1), x = f(() => a.value.some(
40
- (e) => {
41
- var t, l;
42
- return !e.defaultFilter && e.filter || e.defaultFilter && (((t = e.filter) == null ? void 0 : t.disabled) === !0 || !ee((l = e.filter) == null ? void 0 : l.value, e.defaultFilter));
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
- )), z = () => {
45
- a.value.forEach((e) => {
46
- e.defaultFilter ? e.filter = {
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: o(M)
63
+ to: r(V)
57
64
  }, [
58
- r(o(h), {
59
- icon: N.value ? "filter-on" : "filter",
60
- onClick: t[0] || (t[0] = $((l) => c.value = !0, ["stop"]))
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: d(() => [...t[5] || (t[5] = [
63
- p(" Filters ", -1)
69
+ default: c(() => [...e[3] || (e[3] = [
70
+ h(" Filters ", -1)
64
71
  ])]),
65
72
  _: 1
66
73
  }, 8, ["icon"])
67
- ], 8, ["to"])) : V("", !0),
68
- r(o(j), {
69
- modelValue: c.value,
70
- "onUpdate:modelValue": t[3] || (t[3] = (l) => c.value = l),
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: d(() => [...t[6] || (t[6] = [
74
- p("Manage Filters", -1)
80
+ title: c(() => [...e[4] || (e[4] = [
81
+ h("Manage Filters", -1)
75
82
  ])]),
76
- default: d(() => [
77
- k("div", {
78
- ref_key: "filterManager",
79
- ref: s,
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(o(K), {
83
- items: T.value,
84
- "onUpdate:items": t[1] || (t[1] = (l) => T.value = l),
85
- "on-expand": (l) => {
86
- l.filter && (l.filter.open = !l.filter.open);
87
- },
88
- "is-expanded": (l) => {
89
- var i;
90
- return ((i = l.filter) == null ? void 0 : i.open) ?? !1;
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
- ue as default
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 t = "_toggle_3rpt9_56", _ = "_filter_3rpt9_1", e = "_disabled_3rpt9_89", a = "_title_3rpt9_90", d = {
2
- "filter-manager": "_filter-manager_3rpt9_1",
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
- d as default,
16
- e as disabled,
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,3 +1,2 @@
1
1
  export { default as PlTableFiltersV2 } from './PlTableFiltersV2.vue';
2
- export * from './types';
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -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;AACrE,cAAc,SAAS,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"}