mediacube-ui-v2 0.0.344 → 0.0.346

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "catalogSchemaVersion": 2,
3
- "libraryVersion": "0.0.344",
3
+ "libraryVersion": "0.0.346",
4
4
  "packageName": "mediacube-ui-v2",
5
5
  "pathHash": "9b6f3b8016b22ac7",
6
6
  "componentCount": 76,
@@ -4575,6 +4575,11 @@
4575
4575
  "type": "IFilterValue",
4576
4576
  "description": ""
4577
4577
  },
4578
+ {
4579
+ "name": "update:selectedPreset",
4580
+ "type": "union",
4581
+ "description": ""
4582
+ },
4578
4583
  {
4579
4584
  "name": "confirm",
4580
4585
  "type": "IFilterValue",
@@ -4606,7 +4611,7 @@
4606
4611
  "@/types/ITranslations",
4607
4612
  "@/types/styles/Colors"
4608
4613
  ],
4609
- "searchText": "patterns/mcfilter/mcfilter mcfilter mediacube-ui-v2/components/patterns/mcfilter/mcfilter open name modelvalue filters buttonconfirmisloading disabledopen usetimezone placeholders withactivator withpresets selectedpreset error clear open delete-preset update:modelvalue confirm @/types/ibutton @/types/idsoptions @/types/ifilter @/types/iselect @/types/itranslations @/types/styles/colors",
4614
+ "searchText": "patterns/mcfilter/mcfilter mcfilter mediacube-ui-v2/components/patterns/mcfilter/mcfilter open name modelvalue filters buttonconfirmisloading disabledopen usetimezone placeholders withactivator withpresets selectedpreset error clear open delete-preset update:modelvalue update:selectedpreset confirm @/types/ibutton @/types/idsoptions @/types/ifilter @/types/iselect @/types/itranslations @/types/styles/colors",
4610
4615
  "aiDoc": "# McFilter — данные и события для ИИ\n\n## Назначение\n\nПанель фильтрации: выбор полей из `filters`, условия (relation / text / range / date / fast), теги, пресеты, подтверждение.\n\n## Модель (`v-model` / `modelValue`)\n\nТип `IFilterValue` (см. `mediacube-ui-v2/types/IFilter`):\n\n- **`filter`**: объект условий; ключ — `IFilter.value` из схемы `filters`, значение — условие (`FilterConditionValue`: скаляр, `{ more, less }`, или relation-объект с `is` / `is_not` / `exists`).\n- **`filter_name`**: строка (в API часто base64/URI-кодированный JSON) с человекочитаемыми подписями для тегов; после decode — `IFilterParsedValueFilterName` (параллельная структура ключам `filter`).\n\nПри инициализации и обновлении `modelValue` библиотека нормализует состояние (`normalizeMcFilterModel`): отбрасывает ключи не из `props.filters`, восстанавливает `filter_name` из `filter` при пустых подписях.\n\n## Props (важное)\n\n- **`name`** (string): идентификатор фильтра (пресеты в localStorage).\n- **`filters`** (`IFilter[]`): схема полей; обязательна как источник правды по ключам.\n- **`modelValue`**: `{ filter, filter_name }`.\n- **`placeholders`**, **`open`**, **`withPresets`**, **`withActivator`**, **`useTimezone`**, и т.д. — см. автогенерируемые props в ai-catalog.\n\n## События\n\n- **`update:modelValue`**, **`confirm`**: актуальное значение после «Применить».\n- **`error`**, **`clear`**, **`open`**, **`delete-preset`**.\n\n## Практика\n\n- Всегда передавайте **`filters`** с тем же набором `value`, что и ключи в сохранённом `filter`.\n- Для relation с опциями используйте `options` или ajax-функции; доменные типы — `IRelationFilter`, `IFilter` в types.",
4611
4616
  "docgenError": null
4612
4617
  },
@@ -1,27 +1,27 @@
1
- import { defineComponent as Ue, defineAsyncComponent as E, inject as Le, ref as g, reactive as We, computed as p, onMounted as He, onBeforeUnmount as Ge, watch as N, openBlock as h, createElementBlock as P, createElementVNode as w, renderSlot as Je, createVNode as y, unref as s, withCtx as C, createCommentVNode as D, Fragment as se, createBlock as K, createTextVNode as O, toDisplayString as R, renderList as Qe, nextTick as ue } from "vue";
2
- import { useHelper as Xe } from "../../../composables/useHelper2.js";
3
- import { UseEncodeDecode as I } from "../../../composables/useEncodeDecode2.js";
4
- import { ButtonSize as U } from "../../../enums/ui/Button2.js";
5
- import { ChipSize as Ye } from "../../../enums/Chip2.js";
6
- import { FilterTypes as _, FilterRelations as S } from "../../../enums/Filter2.js";
7
- import { TooltipSizes as G, TooltipPositions as J } from "../../../enums/Tooltip2.js";
8
- import { useLocalStorage as Ze } from "@vueuse/core";
9
- import { useTheme as et } from "../../../composables/useTheme2.js";
10
- import { normalizeMcFilterModel as Q } from "../../../utils/normalizeMcFilterModel2.js";
11
- import X from "../../elements/McSvgIcon/McSvgIcon.vue2.js";
1
+ import { defineComponent as Le, defineAsyncComponent as E, inject as We, ref as f, reactive as He, computed as y, onMounted as Ge, onBeforeUnmount as Je, watch as O, openBlock as z, createElementBlock as j, createElementVNode as w, renderSlot as Qe, createVNode as _, unref as s, withCtx as T, createCommentVNode as P, Fragment as ue, createBlock as D, createTextVNode as N, toDisplayString as R, renderList as Xe, nextTick as ce } from "vue";
2
+ import { useHelper as Ye } from "../../../composables/useHelper2.js";
3
+ import { UseEncodeDecode as U } from "../../../composables/useEncodeDecode2.js";
4
+ import { ButtonSize as L } from "../../../enums/ui/Button2.js";
5
+ import { ChipSize as Ze } from "../../../enums/Chip2.js";
6
+ import { FilterTypes as g, FilterRelations as V } from "../../../enums/Filter2.js";
7
+ import { TooltipSizes as J, TooltipPositions as Q } from "../../../enums/Tooltip2.js";
8
+ import { useLocalStorage as et } from "@vueuse/core";
9
+ import { useTheme as tt } from "../../../composables/useTheme2.js";
10
+ import { normalizeMcFilterModel as X } from "../../../utils/normalizeMcFilterModel2.js";
11
+ import Y from "../../elements/McSvgIcon/McSvgIcon.vue2.js";
12
12
  import '../../../assets/components/elements/McTooltip/index.css';import '../../../assets/components/elements/McFieldText/index.css';import '../../../assets/components/elements/McTitle/index.css';import '../../../assets/components/elements/McButton/index.css';import '../../../assets/components/elements/McSvgIcon/index.css';/* empty css */
13
- import j from "../../elements/McButton/McButton.vue2.js";
13
+ import B from "../../elements/McButton/McButton.vue2.js";
14
14
  /* empty css */
15
- import tt from "../../elements/McTitle/McTitle.vue2.js";
15
+ import lt from "../../elements/McTitle/McTitle.vue2.js";
16
16
  /* empty css */
17
- import lt from "../../elements/McFieldText/McFieldText.vue2.js";
17
+ import at from "../../elements/McFieldText/McFieldText.vue2.js";
18
18
  /* empty css */
19
- import Y from "../../elements/McTooltip/McTooltip.vue2.js";
19
+ import Z from "../../elements/McTooltip/McTooltip.vue2.js";
20
20
  /* empty css */
21
- const at = { class: "mc-filter" }, nt = { class: "mc-filter__header" }, ot = {
21
+ const nt = { class: "mc-filter" }, ot = { class: "mc-filter__header" }, rt = {
22
22
  key: 1,
23
23
  class: "mc-filter__presets"
24
- }, rt = { key: 0 }, it = { class: "mc-filter__body" }, st = { class: "mc-filter__body-top" }, ut = { class: "mc-filter__body-top-left" }, ct = { class: "mc-filter__body-fast-tags-wrapper" }, vt = { class: "mc-filter__body-bottom" }, mt = { class: "mc-filter__body-bottom-left" }, dt = { class: "mc-filter__body-bottom-right" }, Ot = /* @__PURE__ */ Ue({
24
+ }, it = { key: 0 }, st = { class: "mc-filter__body" }, ut = { class: "mc-filter__body-top" }, ct = { class: "mc-filter__body-top-left" }, vt = { class: "mc-filter__body-fast-tags-wrapper" }, dt = { class: "mc-filter__body-bottom" }, mt = { class: "mc-filter__body-bottom-left" }, pt = { class: "mc-filter__body-bottom-right" }, Nt = /* @__PURE__ */ Le({
25
25
  __name: "McFilter",
26
26
  props: {
27
27
  open: {
@@ -93,235 +93,235 @@ const at = { class: "mc-filter" }, nt = { class: "mc-filter__header" }, ot = {
93
93
  default: null
94
94
  }
95
95
  },
96
- emits: ["error", "clear", "open", "delete-preset", "update:modelValue", "confirm"],
97
- setup(B, { emit: ce }) {
98
- const ve = E(() => import("../../elements/McFieldSelect/McFieldSelect.vue.js")), me = E(() => import("./McFilterTags/McFilterTags.vue.js")), de = E(
96
+ emits: ["error", "clear", "open", "delete-preset", "update:modelValue", "update:selectedPreset", "confirm"],
97
+ setup($, { emit: ve }) {
98
+ const de = E(() => import("../../elements/McFieldSelect/McFieldSelect.vue.js")), me = E(() => import("./McFilterTags/McFilterTags.vue.js")), pe = E(
99
99
  () => import("./McFilterTypeRange/McFilterTypeRange.vue.js")
100
100
  ), fe = E(
101
101
  () => import("./McFilterTypeDate/McFilterTypeDate.vue.js")
102
- ), pe = E(
103
- () => import("./McFilterTypeText/McFilterTypeText.vue.js")
104
102
  ), ye = E(
103
+ () => import("./McFilterTypeText/McFilterTypeText.vue.js")
104
+ ), _e = E(
105
105
  () => import("./McFilterTypeRelation/McFilterTypeRelation.vue.js")
106
- ), _e = E(() => import("../../elements/McChip/McChip.vue.js")), ge = E(
106
+ ), ge = E(() => import("../../elements/McChip/McChip.vue.js")), be = E(
107
107
  () => import("./McFilterPresets/McFilterPresets.vue.js")
108
- ), r = Xe(), V = ce, a = B, $ = et("filter"), be = Le("dsOptions", {}), k = g(!1), o = g({}), m = g({}), Z = g({}), ee = g({}), v = g({}), A = g({}), b = g(null), n = g(null), u = We(
109
- r.deepMerge(be.componentTranslations?.filter, a.placeholders)
110
- ), te = p(() => r.isEqual(q.value.filter, o.value)), x = g(""), T = g(null), he = g(null), z = Ze("mcFilterPresets", {}), le = g([]), q = p({
108
+ ), r = Ye(), b = ve, n = $, q = tt("filter"), he = We("dsOptions", {}), S = f(!1), o = f({}), m = f({}), ee = f({}), te = f({}), v = f({}), A = f({}), h = f(null), a = f(null), u = He(
109
+ r.deepMerge(he.componentTranslations?.filter, n.placeholders)
110
+ ), le = y(() => r.isEqual(I.value.filter, o.value)), K = f(""), C = f(null), x = f(null), Ce = f(null), k = et("mcFilterPresets", {}), ae = f([]), I = y({
111
111
  get() {
112
- const { filter: e = null, filter_name: t = null } = a.modelValue || {};
112
+ const { filter: e = null, filter_name: t = null } = n.modelValue || {};
113
113
  return {
114
114
  filter: e,
115
- filter_name: I.decode(t)
115
+ filter_name: U.decode(t)
116
116
  };
117
117
  },
118
118
  set(e) {
119
119
  const { filter: t = null, filter_name: l = {} } = e || {}, i = {
120
120
  filter: t,
121
- filter_name: I.encode(l)
121
+ filter_name: U.encode(l)
122
122
  };
123
- V("update:modelValue", i);
123
+ b("update:modelValue", i);
124
124
  }
125
- }), Ce = p(() => {
125
+ }), ze = y(() => {
126
126
  const e = /* @__PURE__ */ new Map();
127
- for (const t of a.filters)
127
+ for (const t of n.filters)
128
128
  e.set(String(t.value), t);
129
129
  return e;
130
- }), d = p(() => Ce.value.get(String(b.value)) || {}), ze = p(() => d.value?.type === _.Relation), Te = p(() => d.value?.type === _.Date), Ve = p(() => d.value?.type === _.Text), Se = p(() => d.value?.type === _.Range), ke = p(() => {
130
+ }), d = y(() => ze.value.get(String(h.value)) || {}), Te = y(() => d.value?.type === g.Relation), Ve = y(() => d.value?.type === g.Date), Se = y(() => d.value?.type === g.Text), ke = y(() => d.value?.type === g.Range), Fe = y(() => {
131
131
  const e = o.value && Object.keys(o.value) || [], t = new Set(e.map(String));
132
- return a.filters.filter((l) => l.type === _.Fast && !t.has(String(l.value)));
133
- }), Fe = p(() => a.filters.filter((e) => e.type !== _.Fast)), Ee = p(() => k.value || !te.value ? `${$.component.button}-invert` : "black-flat"), we = p(() => !r.isEmpty(v.value) && !!d.value && d.value.type !== _.Fast), De = p(() => !x.value.trim());
134
- p(() => {
132
+ return n.filters.filter((l) => l.type === g.Fast && !t.has(String(l.value)));
133
+ }), Ee = y(() => n.filters.filter((e) => e.type !== g.Fast)), we = y(() => S.value || !le.value ? `${q.component.button}-invert` : "black-flat"), Pe = y(() => !r.isEmpty(v.value) && !!d.value && d.value.type !== g.Fast), De = y(() => !K.value.trim());
134
+ y(() => {
135
135
  const e = /* @__PURE__ */ new Map();
136
- for (let t in a.filters)
137
- e.set(a.filters[t].value, a.filters[t]);
136
+ for (let t in n.filters)
137
+ e.set(n.filters[t].value, n.filters[t]);
138
138
  return e;
139
- }), He(() => {
140
- L(), window.addEventListener("storage", L), Ke();
141
139
  }), Ge(() => {
142
- window.removeEventListener("storage", L);
140
+ W(), window.addEventListener("storage", W), Ke();
141
+ }), Je(() => {
142
+ window.removeEventListener("storage", W);
143
143
  });
144
144
  const Ke = () => {
145
- const { filter: e, filter_name: t } = Q(
146
- q.value.filter,
147
- q.value.filter_name,
148
- a.filters
145
+ const { filter: e, filter_name: t } = X(
146
+ I.value.filter,
147
+ I.value.filter_name,
148
+ n.filters
149
149
  );
150
- Z.value = e, ee.value = t, o.value = e, m.value = t;
151
- }, L = () => {
152
- le.value = z.value[a.name] || [];
150
+ ee.value = e, te.value = t, o.value = e, m.value = t;
151
+ }, W = () => {
152
+ ae.value = k.value[n.name] || [];
153
153
  }, xe = (e) => {
154
- const { relation: t, value: l } = e, i = b.value, f = v.value, c = t ? { [t]: e.default } : e.default;
155
- b.value = l, F({ value: c, valueName: e.name }), H(), b.value = i, ue(() => {
156
- v.value = f;
154
+ const { relation: t, value: l } = e, i = h.value, p = v.value, c = t ? { [t]: e.default } : e.default;
155
+ h.value = l, F({ value: c, valueName: e.name }), G(), h.value = i, ce(() => {
156
+ v.value = p;
157
157
  });
158
158
  }, F = ({ value: e, valueName: t }) => {
159
159
  v.value = e, A.value = t || "";
160
- }, Ne = () => {
161
- console.log("handleStoreTag"), n.value ? Oe() : Re();
162
160
  }, Oe = () => {
161
+ console.log("handleStoreTag"), a.value ? Ne() : Re();
162
+ }, Ne = () => {
163
163
  switch (d.value?.type) {
164
- case _.Relation: {
164
+ case g.Relation: {
165
165
  Me();
166
166
  break;
167
167
  }
168
168
  default: {
169
- H();
169
+ G();
170
170
  break;
171
171
  }
172
172
  }
173
- n.value = null;
173
+ a.value = null;
174
174
  }, Re = () => {
175
175
  switch (d.value?.type) {
176
- case _.Relation: {
177
- Pe();
176
+ case g.Relation: {
177
+ je();
178
178
  break;
179
179
  }
180
180
  default: {
181
- H();
181
+ G();
182
182
  break;
183
183
  }
184
184
  }
185
- n.value = null;
185
+ a.value = null;
186
186
  }, Me = () => {
187
- if (n.value) {
188
- const l = n.value.relationKey === S.Exists ? [0] : [n.value.value], i = {
189
- [n.value.category]: {
190
- [n.value.relationKey]: l
187
+ if (a.value) {
188
+ const l = a.value.relationKey === V.Exists ? [0] : [a.value.value], i = {
189
+ [a.value.category]: {
190
+ [a.value.relationKey]: l
191
191
  }
192
- }, f = {
193
- [b.value]: r.cloneDeep(v.value)
192
+ }, p = {
193
+ [h.value]: r.cloneDeep(v.value)
194
194
  };
195
- if (r.isEqual(f, i)) {
196
- V("error", u.messages.same_filter);
195
+ if (r.isEqual(p, i)) {
196
+ b("error", u.messages.same_filter);
197
197
  return;
198
198
  }
199
199
  }
200
- const { category: e, categoryName: t } = ae();
201
- if (n.value)
202
- if (n.value.relationKey === S.Exists)
203
- delete e[n.value.relationKey], delete t[n.value.relationKey];
200
+ const { category: e, categoryName: t } = ne();
201
+ if (a.value)
202
+ if (a.value.relationKey === V.Exists)
203
+ delete e[a.value.relationKey], delete t[a.value.relationKey];
204
204
  else {
205
- const i = e[n.value.relationKey]?.indexOf(String(n.value.value)) ?? -1;
206
- i !== -1 && (e?.[n.value.relationKey]?.splice(i, 1), r.isEmpty(e[n.value.relationKey]) && delete e[n.value.relationKey], delete t?.[n.value.relationKey]?.[n.value.value], r.isEmpty(t[n.value.relationKey]) && delete t[n.value.relationKey]);
205
+ const i = e[a.value.relationKey]?.indexOf(String(a.value.value)) ?? -1;
206
+ i !== -1 && (e?.[a.value.relationKey]?.splice(i, 1), r.isEmpty(e[a.value.relationKey]) && delete e[a.value.relationKey], delete t?.[a.value.relationKey]?.[a.value.value], r.isEmpty(t[a.value.relationKey]) && delete t[a.value.relationKey]);
207
207
  }
208
- W(e, t);
209
- }, Pe = () => {
210
- const { category: e, categoryName: t } = ae();
211
- W(e, t);
212
- }, ae = () => {
213
- const e = Object.keys(v.value), t = r.cloneDeep(o.value), l = r.cloneDeep(m.value), i = t?.[b.value], f = l?.[b.value];
208
+ H(e, t);
209
+ }, je = () => {
210
+ const { category: e, categoryName: t } = ne();
211
+ H(e, t);
212
+ }, ne = () => {
213
+ const e = Object.keys(v.value), t = r.cloneDeep(o.value), l = r.cloneDeep(m.value), i = t?.[h.value], p = l?.[h.value];
214
214
  return i && e.forEach((c) => {
215
- if (c === S.Exists)
216
- i[S.Exists] = 0, f[S.Exists] = null;
215
+ if (c === V.Exists)
216
+ i[V.Exists] = 0, p[V.Exists] = null;
217
217
  else {
218
- const M = v.value[c], ie = A.value[c];
219
- c in i ? (i[c] = r.uniqWith([...i[c], ...M], r.isEqual), f[c] = {
220
- ...f[c],
221
- ...ie
222
- }) : (i[c] = M, f[c] = ie);
218
+ const M = v.value[c], se = A.value[c];
219
+ c in i ? (i[c] = r.uniqWith([...i[c], ...M], r.isEqual), p[c] = {
220
+ ...p[c],
221
+ ...se
222
+ }) : (i[c] = M, p[c] = se);
223
223
  }
224
- }), { category: i, categoryName: f };
225
- }, W = (e, t) => {
224
+ }), { category: i, categoryName: p };
225
+ }, H = (e, t) => {
226
226
  const l = {
227
227
  ...o.value,
228
- [b.value]: e || v.value
228
+ [h.value]: e || v.value
229
229
  };
230
230
  if (r.isEqual(o.value, l)) {
231
- V("error", u.messages.same_filter);
231
+ b("error", u.messages.same_filter);
232
232
  return;
233
233
  }
234
234
  o.value = l, m.value = {
235
235
  ...m.value,
236
- [b.value]: t || A.value
237
- }, ne();
238
- }, ne = () => {
236
+ [h.value]: t || A.value
237
+ }, oe();
238
+ }, oe = () => {
239
239
  switch (d.value?.type) {
240
- case _.Text:
241
- case _.Relation:
240
+ case g.Text:
241
+ case g.Relation:
242
242
  F({ value: "" });
243
243
  break;
244
- case _.Range:
245
- case _.Date:
244
+ case g.Range:
245
+ case g.Date:
246
246
  F({ value: {} });
247
247
  break;
248
248
  }
249
- }, H = () => {
250
- if (d.value?.type === _.Range && Object.keys(v.value || {}).length === 2) {
249
+ }, G = () => {
250
+ if (d.value?.type === g.Range && Object.keys(v.value || {}).length === 2) {
251
251
  const e = v.value;
252
252
  if (e.more && e.less && e.more > e.less) {
253
- V("error", u.messages.more_than);
253
+ b("error", u.messages.more_than);
254
254
  return;
255
255
  }
256
256
  }
257
- W(v.value, v.value);
258
- }, je = (e) => {
259
- if (n.value = null, r.isEmpty(e)) {
257
+ H(v.value, v.value);
258
+ }, Be = (e) => {
259
+ if (a.value = null, r.isEmpty(e)) {
260
260
  o.value = {}, m.value = {};
261
261
  return;
262
262
  }
263
- m.value = r.cloneDeep(e), $e(e);
264
- }, Be = () => {
265
- Z.value = {}, ee.value = {}, o.value = {}, m.value = {}, V("clear", u.messages.accidentally_cleared);
266
- }, $e = (e) => {
267
- const t = r.cloneDeep(e), l = [S.Is, S.IsNot];
268
- for (let [i, f] of Object.entries(e))
269
- if (f.constructor === Object)
270
- for (let [c, M] of Object.entries(f))
263
+ m.value = r.cloneDeep(e), qe(e);
264
+ }, $e = () => {
265
+ ee.value = {}, te.value = {}, o.value = {}, m.value = {}, b("clear", u.messages.accidentally_cleared);
266
+ }, qe = (e) => {
267
+ const t = r.cloneDeep(e), l = [V.Is, V.IsNot];
268
+ for (let [i, p] of Object.entries(e))
269
+ if (p.constructor === Object)
270
+ for (let [c, M] of Object.entries(p))
271
271
  l.includes(c) && M?.constructor === Object && (t[i][c] = [...Object.keys(M)]);
272
272
  o.value = t;
273
273
  }, Ae = (e) => {
274
- if (n.value = r.isEqual(n.value, e) ? null : e, !n.value) {
275
- ne();
274
+ if (a.value = r.isEqual(a.value, e) ? null : e, !a.value) {
275
+ oe();
276
276
  return;
277
277
  }
278
278
  let t = null, l = null;
279
279
  e.relationKey ? (t = {
280
- [e.relationKey]: e.relationKey === S.Exists ? [0] : [String(e.value)]
280
+ [e.relationKey]: e.relationKey === V.Exists ? [0] : [String(e.value)]
281
281
  }, l = {
282
- [e.relationKey]: e.relationKey === S.Exists ? [0] : { [e.value]: e.title }
283
- }) : (t = e.value?.constructor === Object ? e.value : String(e.value), l = e.value), b.value = e.category, ue(() => {
282
+ [e.relationKey]: e.relationKey === V.Exists ? [0] : { [e.value]: e.title }
283
+ }) : (t = e.value?.constructor === Object ? e.value : String(e.value), l = e.value), h.value = e.category, ce(() => {
284
284
  v.value = t, A.value = l;
285
285
  });
286
- }, oe = () => {
287
- q.value = {
286
+ }, re = () => {
287
+ I.value = {
288
288
  filter: o.value,
289
289
  filter_name: m.value
290
290
  };
291
291
  const e = {
292
292
  filter: o.value,
293
- filter_name: I.encode(m.value)
293
+ filter_name: U.encode(m.value)
294
294
  };
295
- V("confirm", e);
296
- }, re = (e) => {
295
+ b("confirm", e);
296
+ }, ie = (e) => {
297
297
  if (e) {
298
- T.value = e;
299
- const { filter: t, filter_name: l } = Q(
298
+ C.value = e;
299
+ const { filter: t, filter_name: l } = X(
300
300
  r.cloneDeep(e.filter),
301
301
  r.cloneDeep(e.filter_name),
302
- a.filters
302
+ n.filters
303
303
  );
304
- o.value = t, m.value = l;
304
+ o.value = t, m.value = l, x.value = r.cloneDeep(t);
305
305
  } else
306
- T.value = null, o.value = {}, m.value = {};
307
- k.value || oe();
308
- }, qe = (e) => {
309
- const t = z.value[a.name]?.filter((l) => e && l.name !== e.name);
310
- z.value[a.name] = [...t], he.value = r.cloneDeep(T.value), T.value = null, o.value = {}, m.value = {}, V("delete-preset", u.messages.accidentally_deleted);
311
- }, Ie = () => {
312
- if (z.value[a.name] && z.value[a.name].find((l) => l.name?.trim() === x.value?.trim())) {
313
- V("error", u.messages.same_preset_name);
306
+ C.value = null, x.value = null, o.value = {}, m.value = {};
307
+ S.value || re();
308
+ }, Ie = (e) => {
309
+ const t = k.value[n.name]?.filter((l) => e && l.name !== e.name);
310
+ k.value[n.name] = [...t], Ce.value = r.cloneDeep(C.value), C.value = null, x.value = null, o.value = {}, m.value = {}, b("update:selectedPreset", null), b("delete-preset", u.messages.accidentally_deleted);
311
+ }, Ue = () => {
312
+ if (k.value[n.name] && k.value[n.name].find((l) => l.name?.trim() === K.value?.trim())) {
313
+ b("error", u.messages.same_preset_name);
314
314
  return;
315
315
  }
316
316
  const e = {
317
- name: x.value?.trim(),
317
+ name: K.value?.trim(),
318
318
  filter: r.cloneDeep(o.value),
319
319
  filter_name: r.cloneDeep(m.value)
320
- }, t = z.value[a.name];
321
- t ? z.value[a.name] = [e, ...t] : z.value[a.name] = [e], x.value = "", T.value = { ...e };
320
+ }, t = k.value[n.name];
321
+ t ? k.value[n.name] = [e, ...t] : k.value[n.name] = [e], K.value = "", C.value = { ...e }, x.value = r.cloneDeep(o.value), b("update:selectedPreset", C.value);
322
322
  };
323
- return N(
324
- () => a.modelValue,
323
+ return O(
324
+ () => n.modelValue,
325
325
  (e) => {
326
326
  const t = e || {
327
327
  filter: null,
@@ -330,169 +330,162 @@ const at = { class: "mc-filter" }, nt = { class: "mc-filter__header" }, ot = {
330
330
  let l = {};
331
331
  if (t.filter_name)
332
332
  try {
333
- const c = I.decode(t.filter_name);
333
+ const c = U.decode(t.filter_name);
334
334
  c && typeof c == "object" && !Array.isArray(c) && (l = c);
335
335
  } catch {
336
336
  console.error("Can't parse filters");
337
337
  }
338
- const { filter: i, filter_name: f } = Q(t.filter, l, a.filters);
339
- o.value = i, m.value = f;
338
+ const { filter: i, filter_name: p } = X(t.filter, l, n.filters);
339
+ o.value = i, m.value = p;
340
340
  },
341
341
  { deep: !0 }
342
- ), N(
342
+ ), O(
343
343
  () => d.value,
344
344
  () => {
345
345
  F({ value: "" });
346
346
  },
347
347
  { deep: !0 }
348
- ), N(
348
+ ), O(
349
349
  () => o.value,
350
350
  () => {
351
- if (T.value && z.value[a.name]) {
352
- const e = T.value.name, t = z.value[a.name].map((l) => l.name === e ? {
353
- name: l.name,
354
- filter: r.cloneDeep(o.value),
355
- filter_name: r.cloneDeep(m.value)
356
- } : l);
357
- z.value[a.name] = [...t];
358
- }
351
+ C.value && !r.isEqual(o.value, x.value) && (C.value = null, x.value = null, b("update:selectedPreset", null));
359
352
  },
360
353
  { deep: !0 }
361
- ), N(
362
- () => a.open,
354
+ ), O(
355
+ () => n.open,
363
356
  (e) => {
364
- k.value = e;
357
+ S.value = e;
365
358
  }
366
- ), N(
367
- () => k.value,
359
+ ), O(
360
+ () => S.value,
368
361
  (e) => {
369
- V("open", e);
362
+ b("open", e);
370
363
  }
371
- ), N(
372
- () => a.selectedPreset,
364
+ ), O(
365
+ () => n.selectedPreset,
373
366
  (e) => {
374
- re(e);
367
+ e?.name !== C.value?.name && ie(e);
375
368
  }
376
- ), (e, t) => (h(), P("div", at, [
377
- w("div", nt, [
378
- a.withActivator ? Je(e.$slots, "activator", { key: 0 }, () => [
379
- y(Y, {
369
+ ), (e, t) => (z(), j("div", nt, [
370
+ w("div", ot, [
371
+ n.withActivator ? Qe(e.$slots, "activator", { key: 0 }, () => [
372
+ _(Z, {
380
373
  content: u.main_tooltip,
381
- placement: s(J).Top,
382
- size: s(G).S
374
+ placement: s(Q).Top,
375
+ size: s(J).S
383
376
  }, {
384
- default: C(() => [
385
- y(j, {
386
- variation: Ee.value,
387
- disabled: B.disabledOpen,
388
- "bg-flat": k.value,
389
- size: s(U).MCompact,
390
- onClick: t[0] || (t[0] = (l) => k.value = !k.value)
377
+ default: T(() => [
378
+ _(B, {
379
+ variation: we.value,
380
+ disabled: $.disabledOpen,
381
+ "bg-flat": S.value,
382
+ size: s(L).MCompact,
383
+ onClick: t[0] || (t[0] = (l) => S.value = !S.value)
391
384
  }, {
392
- "icon-prepend": C(() => [
393
- y(X, { name: "filter_list" })
385
+ "icon-prepend": T(() => [
386
+ _(Y, { name: "filter_list" })
394
387
  ]),
395
388
  _: 1
396
389
  }, 8, ["variation", "disabled", "bg-flat", "size"])
397
390
  ]),
398
391
  _: 1
399
392
  }, 8, ["content", "placement", "size"])
400
- ]) : D("", !0),
401
- a.withPresets && le.value ? (h(), P("div", ot, [
402
- y(s(ge), {
403
- name: a.name,
404
- "selected-preset": T.value,
405
- onPresetSelected: re
393
+ ]) : P("", !0),
394
+ n.withPresets && ae.value ? (z(), j("div", rt, [
395
+ _(s(be), {
396
+ name: n.name,
397
+ "selected-preset": C.value,
398
+ onPresetSelected: ie
406
399
  }, null, 8, ["name", "selected-preset"])
407
- ])) : D("", !0)
400
+ ])) : P("", !0)
408
401
  ]),
409
- k.value ? (h(), P("div", rt, [
410
- w("div", it, [
411
- w("div", st, [
412
- w("div", ut, [
413
- y(s(ve), {
414
- modelValue: b.value,
415
- "onUpdate:modelValue": t[1] || (t[1] = (l) => b.value = l),
402
+ S.value ? (z(), j("div", it, [
403
+ w("div", st, [
404
+ w("div", ut, [
405
+ w("div", ct, [
406
+ _(s(de), {
407
+ modelValue: h.value,
408
+ "onUpdate:modelValue": t[1] || (t[1] = (l) => h.value = l),
416
409
  title: u.value,
417
- options: Fe.value,
410
+ options: Ee.value,
418
411
  placeholder: u.choose,
419
412
  "hide-selected": !1,
420
413
  class: "mc-filter__main-select",
421
414
  name: "filter_value_name"
422
415
  }, null, 8, ["modelValue", "title", "options", "placeholder"]),
423
- d.value ? (h(), P(se, { key: 0 }, [
424
- ze.value ? (h(), K(s(ye), {
416
+ d.value ? (z(), j(ue, { key: 0 }, [
417
+ Te.value ? (z(), D(s(_e), {
425
418
  key: 0,
426
419
  "model-value": v.value,
427
420
  filter: d.value,
428
421
  placeholders: u,
429
- "current-values": n.value ? {} : o.value,
430
- "use-timezone": a.useTimezone,
422
+ "current-values": a.value ? {} : o.value,
423
+ "use-timezone": n.useTimezone,
431
424
  "onUpdate:modelValue": F
432
- }, null, 8, ["model-value", "filter", "placeholders", "current-values", "use-timezone"])) : Te.value ? (h(), K(s(fe), {
425
+ }, null, 8, ["model-value", "filter", "placeholders", "current-values", "use-timezone"])) : Ve.value ? (z(), D(s(fe), {
433
426
  key: 1,
434
427
  "model-value": v.value,
435
428
  filter: d.value,
436
429
  placeholders: u,
437
- "current-values": n.value ? {} : o.value,
438
- "use-timezone": a.useTimezone,
430
+ "current-values": a.value ? {} : o.value,
431
+ "use-timezone": n.useTimezone,
439
432
  "onUpdate:modelValue": F
440
- }, null, 8, ["model-value", "filter", "placeholders", "current-values", "use-timezone"])) : Ve.value ? (h(), K(s(pe), {
433
+ }, null, 8, ["model-value", "filter", "placeholders", "current-values", "use-timezone"])) : Se.value ? (z(), D(s(ye), {
441
434
  key: 2,
442
435
  "model-value": v.value,
443
436
  filter: d.value,
444
437
  placeholders: u,
445
- "current-values": n.value ? {} : o.value,
446
- "use-timezone": a.useTimezone,
438
+ "current-values": a.value ? {} : o.value,
439
+ "use-timezone": n.useTimezone,
447
440
  "onUpdate:modelValue": F
448
- }, null, 8, ["model-value", "filter", "placeholders", "current-values", "use-timezone"])) : Se.value ? (h(), K(s(de), {
441
+ }, null, 8, ["model-value", "filter", "placeholders", "current-values", "use-timezone"])) : ke.value ? (z(), D(s(pe), {
449
442
  key: 3,
450
443
  "model-value": v.value,
451
444
  filter: d.value,
452
445
  placeholders: u,
453
- "current-values": n.value ? {} : o.value,
454
- "use-timezone": a.useTimezone,
446
+ "current-values": a.value ? {} : o.value,
447
+ "use-timezone": n.useTimezone,
455
448
  "onUpdate:modelValue": F
456
- }, null, 8, ["model-value", "filter", "placeholders", "current-values", "use-timezone"])) : D("", !0),
457
- we.value ? (h(), K(j, {
449
+ }, null, 8, ["model-value", "filter", "placeholders", "current-values", "use-timezone"])) : P("", !0),
450
+ Pe.value ? (z(), D(B, {
458
451
  key: 4,
459
- variation: `${s($).component.button}-outline`,
460
- onClick: Ne
452
+ variation: `${s(q).component.button}-outline`,
453
+ onClick: Oe
461
454
  }, {
462
- default: C(() => [
463
- O(R(u.actions[n.value ? "save" : "add"]), 1)
455
+ default: T(() => [
456
+ N(R(u.actions[a.value ? "save" : "add"]), 1)
464
457
  ]),
465
458
  _: 1
466
- }, 8, ["variation"])) : D("", !0)
467
- ], 64)) : D("", !0)
459
+ }, 8, ["variation"])) : P("", !0)
460
+ ], 64)) : P("", !0)
468
461
  ])
469
462
  ]),
470
- y(s(me), {
463
+ _(s(me), {
471
464
  "model-value": m.value,
472
- filters: B.filters,
465
+ filters: $.filters,
473
466
  placeholders: u,
474
- "active-tag": n.value,
475
- "use-timezone": a.useTimezone,
476
- onTagChange: t[2] || (t[2] = (l) => je(l)),
467
+ "active-tag": a.value,
468
+ "use-timezone": n.useTimezone,
469
+ onTagChange: t[2] || (t[2] = (l) => Be(l)),
477
470
  onTagClick: t[3] || (t[3] = (l) => Ae(l)),
478
- onClear: Be
471
+ onClear: $e
479
472
  }, null, 8, ["model-value", "filters", "placeholders", "active-tag", "use-timezone"]),
480
- w("section", ct, [
481
- (h(!0), P(se, null, Qe(ke.value, (l, i) => (h(), K(Y, {
473
+ w("section", vt, [
474
+ (z(!0), j(ue, null, Xe(Fe.value, (l, i) => (z(), D(Z, {
482
475
  key: i,
483
476
  content: l.description || "",
484
- placement: s(J).Top,
485
- size: s(G).S
477
+ placement: s(Q).Top,
478
+ size: s(J).S
486
479
  }, {
487
- default: C(() => [
488
- y(s(_e), {
480
+ default: T(() => [
481
+ _(s(ge), {
489
482
  variation: "gray-outline",
490
483
  "text-color": "black",
491
- size: s(Ye).S,
492
- onClick: (f) => xe(l)
484
+ size: s(Ze).S,
485
+ onClick: (p) => xe(l)
493
486
  }, {
494
- default: C(() => [
495
- O(R(l.name), 1)
487
+ default: T(() => [
488
+ N(R(l.name), 1)
496
489
  ]),
497
490
  _: 2
498
491
  }, 1032, ["size", "onClick"])
@@ -500,49 +493,49 @@ const at = { class: "mc-filter" }, nt = { class: "mc-filter__header" }, ot = {
500
493
  _: 2
501
494
  }, 1032, ["content", "placement", "size"]))), 128))
502
495
  ]),
503
- w("div", vt, [
496
+ w("div", dt, [
504
497
  w("div", mt, [
505
- y(j, {
506
- disabled: te.value,
507
- loading: B.buttonConfirmIsLoading,
508
- variation: s($).component.button,
509
- size: s(U).S,
510
- onClick: oe
498
+ _(B, {
499
+ disabled: le.value,
500
+ loading: $.buttonConfirmIsLoading,
501
+ variation: s(q).component.button,
502
+ size: s(L).S,
503
+ onClick: re
511
504
  }, {
512
- default: C(() => [
513
- O(R(u.actions.confirm), 1)
505
+ default: T(() => [
506
+ N(R(u.actions.confirm), 1)
514
507
  ]),
515
508
  _: 1
516
509
  }, 8, ["disabled", "loading", "variation", "size"]),
517
- T.value ? (h(), K(j, {
510
+ C.value ? (z(), D(B, {
518
511
  key: 0,
519
512
  variation: "red-outline",
520
- size: s(U).S,
521
- onClick: t[4] || (t[4] = (l) => qe(T.value))
513
+ size: s(L).S,
514
+ onClick: t[4] || (t[4] = (l) => Ie(C.value))
522
515
  }, {
523
- "icon-append": C(() => [
524
- y(X, {
516
+ "icon-append": T(() => [
517
+ _(Y, {
525
518
  name: "delete",
526
519
  size: "250",
527
520
  color: "red"
528
521
  })
529
522
  ]),
530
- default: C(() => [
531
- O(R(u.actions.delete_preset) + " ", 1)
523
+ default: T(() => [
524
+ N(R(u.actions.delete_preset) + " ", 1)
532
525
  ]),
533
526
  _: 1
534
- }, 8, ["size"])) : D("", !0)
527
+ }, 8, ["size"])) : P("", !0)
535
528
  ]),
536
- w("div", dt, [
537
- y(tt, { class: "mc-filter__preset-input-title" }, {
538
- "icon-append": C(() => [
539
- y(Y, {
529
+ w("div", pt, [
530
+ _(lt, { class: "mc-filter__preset-input-title" }, {
531
+ "icon-append": T(() => [
532
+ _(Z, {
540
533
  content: u.enter_preset_tooltip,
541
- placement: s(J).Top,
542
- size: s(G).S
534
+ placement: s(Q).Top,
535
+ size: s(J).S
543
536
  }, {
544
- default: C(() => [
545
- y(X, {
537
+ default: T(() => [
538
+ _(Y, {
546
539
  name: "help_solid",
547
540
  size: "250",
548
541
  color: "outline-gray"
@@ -551,38 +544,38 @@ const at = { class: "mc-filter" }, nt = { class: "mc-filter__header" }, ot = {
551
544
  _: 1
552
545
  }, 8, ["content", "placement", "size"])
553
546
  ]),
554
- default: C(() => [
555
- O(R(u.create_preset) + " ", 1)
547
+ default: T(() => [
548
+ N(R(u.create_preset) + " ", 1)
556
549
  ]),
557
550
  _: 1
558
551
  }),
559
- y(lt, {
560
- modelValue: x.value,
561
- "onUpdate:modelValue": t[5] || (t[5] = (l) => x.value = l),
552
+ _(at, {
553
+ modelValue: K.value,
554
+ "onUpdate:modelValue": t[5] || (t[5] = (l) => K.value = l),
562
555
  placeholder: u.enter_preset_name,
563
556
  "max-length": 30,
564
557
  width: "250px",
565
558
  class: "mc-filter__preset-input",
566
559
  name: "preset_name"
567
560
  }, null, 8, ["modelValue", "placeholder"]),
568
- y(j, {
561
+ _(B, {
569
562
  disabled: De.value,
570
- variation: `${s($).component.button}-outline`,
571
- size: s(U).S,
572
- onClick: Ie
563
+ variation: `${s(q).component.button}-outline`,
564
+ size: s(L).S,
565
+ onClick: Ue
573
566
  }, {
574
- default: C(() => [
575
- O(R(u.actions.create), 1)
567
+ default: T(() => [
568
+ N(R(u.actions.create), 1)
576
569
  ]),
577
570
  _: 1
578
571
  }, 8, ["disabled", "variation", "size"])
579
572
  ])
580
573
  ])
581
574
  ])
582
- ])) : D("", !0)
575
+ ])) : P("", !0)
583
576
  ]));
584
577
  }
585
578
  });
586
579
  export {
587
- Ot as default
580
+ Nt as default
588
581
  };
@@ -382,7 +382,17 @@
382
382
  }
383
383
  }
384
384
 
385
- @mixin editor-default-styles($main-font-size: $font-size-300, $main-line-height: $line-height-300) {
385
+ /**
386
+ * $preserve-empty-lines — сохранять пустые строки, набранные в редакторе (Enter x2 / Shift+Enter).
387
+ * По умолчанию выключено: пустые параграфы прячутся, как и раньше.
388
+ * Включать только там, где рендерится контент из визуального редактора, и пустая строка —
389
+ * осмысленная часть вёрстки автора. Для текстов из бэка/переводов оставлять false.
390
+ */
391
+ @mixin editor-default-styles(
392
+ $main-font-size: $font-size-300,
393
+ $main-line-height: $line-height-300,
394
+ $preserve-empty-lines: false
395
+ ) {
386
396
  p,
387
397
  strong,
388
398
  em,
@@ -395,6 +405,21 @@
395
405
  display: none;
396
406
  }
397
407
  }
408
+ @if $preserve-empty-lines {
409
+ /**
410
+ * Пустой <p> без контента имеет нулевую высоту, а висящий <br> в конце абзаца
411
+ * браузер не отрисовывает вовсе. Zero-width space даёт последней строке содержимое,
412
+ * поэтому отступ, который автор видит в редакторе, не схлопывается при показе.
413
+ */
414
+ p {
415
+ &:empty {
416
+ display: block;
417
+ }
418
+ &::after {
419
+ content: '\200B';
420
+ }
421
+ }
422
+ }
398
423
  ol,
399
424
  ul {
400
425
  margin-block-start: 0;
@@ -704,8 +729,8 @@
704
729
  }
705
730
 
706
731
 
707
- @mixin editor-notification-styles {
708
- @include editor-default-styles;
732
+ @mixin editor-notification-styles($preserve-empty-lines: false) {
733
+ @include editor-default-styles($preserve-empty-lines: $preserve-empty-lines);
709
734
  h1 {
710
735
  margin-bottom: $space-250;
711
736
  img {
@@ -751,7 +776,7 @@
751
776
  }
752
777
  }
753
778
 
754
- @mixin editor-assist-styles {
779
+ @mixin editor-assist-styles($preserve-empty-lines: false) {
755
780
  img {
756
781
  max-width: 100%;
757
782
  width: 100%;
@@ -759,5 +784,5 @@
759
784
  object-fit: cover;
760
785
  margin: 16px 0;
761
786
  }
762
- @include editor-default-styles;
787
+ @include editor-default-styles($preserve-empty-lines: $preserve-empty-lines);
763
788
  }
@@ -79,6 +79,7 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<im
79
79
  "update:modelValue": (value: IFilterValue) => any;
80
80
  open: (value: boolean) => any;
81
81
  "delete-preset": (value: string) => any;
82
+ "update:selectedPreset": (value: IFilterPreset | null) => any;
82
83
  }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
83
84
  open: {
84
85
  type: PropType<boolean>;
@@ -158,6 +159,7 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<im
158
159
  "onUpdate:modelValue"?: ((value: IFilterValue) => any) | undefined;
159
160
  onOpen?: ((value: boolean) => any) | undefined;
160
161
  "onDelete-preset"?: ((value: string) => any) | undefined;
162
+ "onUpdate:selectedPreset"?: ((value: IFilterPreset | null) => any) | undefined;
161
163
  }>, {
162
164
  modelValue: IFilterValue;
163
165
  placeholders: Partial<IFilterPlaceholders>;
@@ -56,6 +56,7 @@ declare const McFilter: {
56
56
  "onUpdate:modelValue"?: ((value: import('../../../types/IFilter').IFilterValue) => any) | undefined;
57
57
  onOpen?: ((value: boolean) => any) | undefined;
58
58
  "onDelete-preset"?: ((value: string) => any) | undefined;
59
+ "onUpdate:selectedPreset"?: ((value: import('../../../types/IFilter').IFilterPreset | null) => any) | undefined;
59
60
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
60
61
  error: (value: string) => any;
61
62
  confirm: (value: import('../../../types/IFilter').IFilterValue) => any;
@@ -63,6 +64,7 @@ declare const McFilter: {
63
64
  "update:modelValue": (value: import('../../../types/IFilter').IFilterValue) => any;
64
65
  open: (value: boolean) => any;
65
66
  "delete-preset": (value: string) => any;
67
+ "update:selectedPreset": (value: import('../../../types/IFilter').IFilterPreset | null) => any;
66
68
  }, import('vue').PublicProps, {
67
69
  modelValue: import('../../../types/IFilter').IFilterValue;
68
70
  placeholders: Partial<import('../../../types/IFilter').IFilterPlaceholders>;
@@ -138,6 +140,7 @@ declare const McFilter: {
138
140
  "onUpdate:modelValue"?: ((value: import('../../../types/IFilter').IFilterValue) => any) | undefined;
139
141
  onOpen?: ((value: boolean) => any) | undefined;
140
142
  "onDelete-preset"?: ((value: string) => any) | undefined;
143
+ "onUpdate:selectedPreset"?: ((value: import('../../../types/IFilter').IFilterPreset | null) => any) | undefined;
141
144
  }>, {}, {}, {}, {}, {
142
145
  modelValue: import('../../../types/IFilter').IFilterValue;
143
146
  placeholders: Partial<import('../../../types/IFilter').IFilterPlaceholders>;
@@ -210,6 +213,7 @@ declare const McFilter: {
210
213
  "onUpdate:modelValue"?: ((value: import('../../../types/IFilter').IFilterValue) => any) | undefined;
211
214
  onOpen?: ((value: boolean) => any) | undefined;
212
215
  "onDelete-preset"?: ((value: string) => any) | undefined;
216
+ "onUpdate:selectedPreset"?: ((value: import('../../../types/IFilter').IFilterPreset | null) => any) | undefined;
213
217
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
214
218
  error: (value: string) => any;
215
219
  confirm: (value: import('../../../types/IFilter').IFilterValue) => any;
@@ -217,6 +221,7 @@ declare const McFilter: {
217
221
  "update:modelValue": (value: import('../../../types/IFilter').IFilterValue) => any;
218
222
  open: (value: boolean) => any;
219
223
  "delete-preset": (value: string) => any;
224
+ "update:selectedPreset": (value: import('../../../types/IFilter').IFilterPreset | null) => any;
220
225
  }, string, {
221
226
  modelValue: import('../../../types/IFilter').IFilterValue;
222
227
  placeholders: Partial<import('../../../types/IFilter').IFilterPlaceholders>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mediacube-ui-v2",
3
- "version": "0.0.344",
3
+ "version": "0.0.346",
4
4
  "license": "MIT",
5
5
  "description": "Design system for Mediacube services",
6
6
  "sideEffects": [