@shtabapp/ui-kit 1.54.0 → 1.55.0

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.
@@ -3,7 +3,7 @@ import { t as r } from "./SButton-DnU_XZ1C.js";
3
3
  import { n as i } from "./useSelectionGroup-cKj38lEN.js";
4
4
  import { t as a } from "./SDropdown-CTQ5Qlez.js";
5
5
  import { n as o, t as s } from "./SInput-ug89CYt3.js";
6
- import { i as c, n as l, r as u, t as d } from "./SList-BESqVnlh.js";
6
+ import { i as c, n as l, r as u, t as d } from "./SList-bZ3ShGZ0.js";
7
7
  import { t as f } from "./SListItem-DJ8uSadf.js";
8
8
  import { computed as p, createBlock as m, createCommentVNode as h, createElementBlock as g, createElementVNode as _, createSlots as v, createTextVNode as ee, createVNode as y, defineComponent as b, guardReactiveProps as x, isRef as te, mergeModels as S, mergeProps as C, nextTick as w, normalizeClass as T, normalizeProps as E, normalizeStyle as D, openBlock as O, ref as ne, renderSlot as k, toDisplayString as A, toValue as j, unref as M, useId as re, useModel as ie, useSlots as ae, useTemplateRef as N, vModelText as oe, watch as P, withCtx as F, withDirectives as se, withModifiers as ce } from "vue";
9
9
  import { SIcon as le, useUiKitI18n as ue } from "@shtabapp/ui-kit-primitives";
@@ -57,30 +57,30 @@ var de = {
57
57
  }, he = (e) => typeof e == "string" || typeof e == "number", I = (e, t) => {
58
58
  let n = e[t];
59
59
  if (he(n)) return n;
60
- }, L = (e) => typeof e == "string" ? e : String(e), R = (e) => e == null ? !1 : typeof e == "string" ? e.length > 0 : !0, z = (e, t, n) => t.find((t) => L(I(t, n) ?? "") === e), ge = (e) => typeof e == "object" && !!e, B = (e, t, n) => {
60
+ }, L = (e) => typeof e == "string" ? e : String(e), R = (e) => e == null ? !1 : typeof e == "string" ? e.length > 0 : !0, z = (e, t, n) => t.find((t) => L(I(t, n) ?? "") === e), B = (e) => typeof e == "object" && !!e, V = (e, t, n) => {
61
61
  let r = z(e, t, n);
62
62
  if (r) return I(r, n);
63
- }, V = /* @__PURE__ */ function(e) {
63
+ }, H = /* @__PURE__ */ function(e) {
64
64
  return e.INPUT = "input", e.CONTENT = "content", e;
65
- }({}), H = (e, t, n) => {
65
+ }({}), ge = (e, t, n) => {
66
66
  if (!e) return !0;
67
67
  let r = e.toLocaleLowerCase(), i = c(t, n.itemTitle)?.toLocaleLowerCase() ?? "", a = L(I(t, n.itemValue) ?? "").toLocaleLowerCase();
68
68
  return i.includes(r) || a.includes(r);
69
69
  }, _e = (e, t, n, r) => {
70
- let i = r ?? ((e, t) => H(e, t, n));
70
+ let i = r ?? ((e, t) => ge(e, t, n));
71
71
  return t ? e.filter((e) => i(t, e)) : [...e];
72
- }, U = (e) => typeof e == "string" && R(e), W = (e) => typeof e == "number" && R(e), ve = (e, t, n) => {
72
+ }, U = (e) => typeof e == "string" && R(e), W = (e) => typeof e == "number" && R(e), G = (e, t, n) => {
73
73
  if (t) {
74
- if (!ge(e)) return;
74
+ if (!B(e)) return;
75
75
  let t = I(e, n);
76
76
  return U(t) || W(t) ? t : void 0;
77
77
  }
78
78
  let r = typeof e == "string" || typeof e == "number" ? e : void 0;
79
79
  if (U(r) || W(r)) return r;
80
- }, G = (e, t, n) => e ? (Array.isArray(e) ? e : [e]).flatMap((e) => {
81
- let r = ve(e, t, n);
80
+ }, K = (e, t, n) => e ? (Array.isArray(e) ? e : [e]).flatMap((e) => {
81
+ let r = G(e, t, n);
82
82
  return R(r) ? [r] : [];
83
- }) : [], K = (e, t) => {
83
+ }) : [], ve = (e, t) => {
84
84
  if (U(t)) {
85
85
  e.value = t;
86
86
  return;
@@ -90,19 +90,19 @@ var de = {
90
90
  return;
91
91
  }
92
92
  e.value = void 0;
93
- }, ye = (e, t, n) => t.flatMap((t) => {
93
+ }, q = (e, t, n) => t.flatMap((t) => {
94
94
  let r = L(t), i = e.find((e) => L(I(e, n) ?? "") === r);
95
95
  return i ? [i] : [];
96
- }), be = ({ modelValue: e, options: t, itemFields: n, multiple: r, returnObject: a, searchable: o, filterOption: s, isDropdownOpen: l, searchQuery: u }) => {
97
- let d = p(() => j(r)), f = p(() => j(a)), m = p(() => j(o) === V.INPUT), h = p(() => j(o) === V.CONTENT), g = p(() => !!j(o)), _ = p(() => {
96
+ }), ye = ({ modelValue: e, options: t, itemFields: n, multiple: r, returnObject: a, searchable: o, filterOption: s, isDropdownOpen: l, searchQuery: u }) => {
97
+ let d = p(() => j(r)), f = p(() => j(a)), m = p(() => j(o) === H.INPUT), h = p(() => j(o) === H.CONTENT), g = p(() => !!j(o)), _ = p(() => {
98
98
  let t = j(n);
99
- return G(e.value, f.value, t.itemValue);
99
+ return K(e.value, f.value, t.itemValue);
100
100
  }), v = p(() => {
101
101
  let e = j(t), r = j(n);
102
102
  return _e(e, g.value ? u.value : "", r, j(s));
103
103
  }), ee = p(() => d.value ? i.MULTIPLE : i.SINGLE), y = (t, n, r) => {
104
104
  if (f.value) {
105
- e.value = ye(n, t, r);
105
+ e.value = q(n, t, r);
106
106
  return;
107
107
  }
108
108
  e.value = t;
@@ -115,7 +115,7 @@ var de = {
115
115
  e.value = z(t, n, r) ?? void 0;
116
116
  return;
117
117
  }
118
- K(e, B(t, n, r));
118
+ ve(e, V(t, n, r));
119
119
  }, x = p({
120
120
  get: () => {
121
121
  if (d.value) return _.value.map((e) => L(e));
@@ -125,7 +125,7 @@ var de = {
125
125
  set: (e) => {
126
126
  let r = j(t), i = j(n);
127
127
  if (d.value) {
128
- y((Array.isArray(e) ? e : []).map((e) => B(e, r, i.itemValue)).filter((e) => R(e)), r, i.itemValue);
128
+ y((Array.isArray(e) ? e : []).map((e) => V(e, r, i.itemValue)).filter((e) => R(e)), r, i.itemValue);
129
129
  return;
130
130
  }
131
131
  b(typeof e == "string" ? e : void 0, r, i.itemValue);
@@ -177,16 +177,12 @@ var de = {
177
177
  },
178
178
  resetSearchQuery: O,
179
179
  formatSelectListKey: L,
180
- resolveValueFromListKey: (e) => B(e, j(t), j(n).itemValue)
180
+ resolveValueFromListKey: (e) => V(e, j(t), j(n).itemValue)
181
181
  };
182
- }, xe = {
183
- key: 0,
184
- class: "s-ui-select__options-divider",
185
- role: "separator"
186
- }, Se = {
182
+ }, be = {
187
183
  key: 1,
188
184
  class: "s-ui-select__empty s-ui-typography-body-14-regular"
189
- }, Ce = [
185
+ }, xe = [
190
186
  "id",
191
187
  "aria-expanded",
192
188
  "aria-controls",
@@ -194,27 +190,27 @@ var de = {
194
190
  "aria-readonly",
195
191
  "aria-autocomplete",
196
192
  "tabindex"
197
- ], we = {
193
+ ], Se = {
198
194
  key: 0,
199
195
  class: "s-ui-select__value"
200
- }, Te = {
196
+ }, Ce = {
201
197
  key: 1,
202
198
  class: "s-ui-select__placeholder"
203
- }, Ee = {
199
+ }, we = {
204
200
  key: 1,
205
201
  class: "s-ui-select__placeholder"
206
- }, De = {
202
+ }, Te = {
207
203
  key: 2,
208
204
  class: "s-ui-select__value"
209
- }, Oe = {
205
+ }, Ee = {
210
206
  key: 3,
211
207
  class: "s-ui-select__value-suffix"
212
- }, ke = [
208
+ }, De = [
213
209
  "name",
214
210
  "placeholder",
215
211
  "disabled",
216
212
  "readonly"
217
- ], Ae = 20, je = "100%", Me = 20, Ne = "__s-ui-select-options-divider__", q = /* @__PURE__ */ b({
213
+ ], Oe = 20, ke = "100%", Ae = 20, je = /* @__PURE__ */ b({
218
214
  __name: "SSelect",
219
215
  props: /*@__PURE__*/ S({
220
216
  options: {},
@@ -295,217 +291,206 @@ var de = {
295
291
  "endReached"
296
292
  ], ["update:modelValue", "update:searchQuery"]),
297
293
  setup(i, { expose: o, emit: c }) {
298
- let l = ie(i, "modelValue"), u = ie(i, "searchQuery"), b = c, { t: S } = ue(), D = ae(), j = re(), de = re(), fe = N("triggerInputRef"), he = ne(""), L = N("searchInputElementRef"), z = N("panelSearchInputElementRef"), ge = N("listElementRef"), B = ne(), V = ne(!1), H = ne(!1), _e = p(() => i.panelWidth === void 0), U = p(() => i.panelWidth ?? je), W = p(() => i.itemId ?? i.itemValue), ve = p(() => ({
294
+ let l = ie(i, "modelValue"), u = ie(i, "searchQuery"), b = c, { t: S } = ue(), D = ae(), j = re(), de = re(), fe = N("triggerInputRef"), he = ne(""), I = N("searchInputElementRef"), L = N("panelSearchInputElementRef"), z = N("listElementRef"), B = ne(), V = ne(!1), H = ne(!1), ge = p(() => i.panelWidth === void 0), _e = p(() => i.panelWidth ?? ke), U = p(() => i.itemId ?? i.itemValue), W = p(() => ({
299
295
  itemValue: i.itemValue,
300
296
  itemTitle: i.itemTitle,
301
297
  itemSubtitle: i.itemSubtitle,
302
- itemId: W.value
303
- })), { selectedValues: G, filteredOptions: K, listSelectionMode: ye, listSelectedModel: q, hasSelectedValues: Pe, singleDisplayLabel: Fe, multipleDisplayLabels: Ie, multipleDisplayText: Le, showPlaceholder: J, showInputSearchField: Y, isSearchableMode: Re, isSearchableInputMode: ze, isSearchableContentMode: X, isMultipleMode: Z, clearSelection: Be, removeSelectedValue: Ve, resolveValueFromListKey: He, formatSelectListKey: Ue } = be({
298
+ itemId: U.value
299
+ })), { selectedValues: G, filteredOptions: K, listSelectionMode: ve, listSelectedModel: q, hasSelectedValues: je, singleDisplayLabel: Me, multipleDisplayLabels: Ne, multipleDisplayText: Pe, showPlaceholder: J, showInputSearchField: Y, isSearchableMode: Fe, isSearchableInputMode: Ie, isSearchableContentMode: X, isMultipleMode: Z, clearSelection: Le, removeSelectedValue: Re, resolveValueFromListKey: ze, formatSelectListKey: Be } = ye({
304
300
  modelValue: l,
305
301
  options: () => i.options,
306
- itemFields: () => ve.value,
302
+ itemFields: () => W.value,
307
303
  multiple: () => i.multiple,
308
304
  returnObject: () => i.returnObject,
309
305
  searchable: () => i.searchable,
310
306
  filterOption: () => i.filterOption,
311
307
  isDropdownOpen: V,
312
308
  searchQuery: u
313
- }), We = p(() => !!D["value-suffix"]), Ge = p(() => ({
309
+ }), Ve = p(() => !!D["value-suffix"]), He = p(() => ({
314
310
  disabled: i.disabled,
315
- displayLabel: Fe.value
316
- })), Ke = p(() => K.value.length > Me), qe = p(() => X.value || Ke.value ? i.listHeight : "auto"), Je = p(() => {
317
- if (!(X.value || Ke.value)) return i.listHeight;
318
- }), Ye = p(() => G.value.map((e) => Ue(e))), Xe = (e) => Ye.value.includes(e), Ze = p(() => ({
319
- [W.value]: Ne,
320
- [i.itemDisabled]: !0
321
- })), Qe = (e) => Ue(I(e, W.value) ?? ""), $e = p(() => {
322
- if (!Z.value) return K.value;
323
- let e = [], t = [];
324
- for (let n of K.value) Xe(Qe(n)) ? e.push(n) : t.push(n);
325
- return e.length === 0 || t.length === 0 ? K.value : [
326
- ...e,
327
- Ze.value,
328
- ...t
329
- ];
330
- }), et = () => ({ tiny: !0 }), tt = (e) => me({
311
+ displayLabel: Me.value
312
+ })), Ue = p(() => K.value.length > Ae), We = p(() => X.value || Ue.value ? i.listHeight : "auto"), Ge = p(() => {
313
+ if (!(X.value || Ue.value)) return i.listHeight;
314
+ }), Ke = p(() => G.value.map((e) => Be(e))), qe = (e) => Ke.value.includes(e), Je = () => ({ tiny: !0 }), Ye = (e) => me({
331
315
  listItemScope: e,
332
316
  itemTitle: i.itemTitle,
333
317
  itemSubtitle: i.itemSubtitle,
334
318
  itemDisabled: i.itemDisabled,
335
319
  itemIconLeft: i.itemIconLeft,
336
320
  listActiveKey: B.value,
337
- isOptionSelected: Xe(e.key)
338
- }), nt = (e) => {
339
- let t = He(e);
321
+ isOptionSelected: qe(e.key)
322
+ }), Xe = (e) => {
323
+ let t = ze(e);
340
324
  if (R(t)) {
341
325
  if (Z.value) {
342
- Ve(t);
326
+ Re(t);
343
327
  return;
344
328
  }
345
329
  l.value = void 0;
346
330
  }
347
- }, rt = p(() => i.id ?? j), it = p(() => de), at = p(() => fe.value?.fieldElementRef ?? null), ot = p(() => ({
348
- labels: Ie.value,
331
+ }, Ze = p(() => i.id ?? j), Qe = p(() => de), $e = p(() => fe.value?.fieldElementRef ?? null), et = p(() => ({
332
+ labels: Ne.value,
349
333
  values: G.value,
350
- displayText: Le.value,
334
+ displayText: Pe.value,
351
335
  disabled: i.disabled || i.readonly,
352
- removeValue: Ve
353
- })), st = p(() => {
354
- if (!i.disabled && (i.readonly && !ze.value || !ze.value)) return 0;
355
- }), ct = p(() => ({
336
+ removeValue: Re
337
+ })), tt = p(() => {
338
+ if (!i.disabled && (i.readonly && !Ie.value || !Ie.value)) return 0;
339
+ }), nt = p(() => ({
356
340
  "s-ui-select--disabled": i.disabled,
357
341
  "s-ui-select--readonly": i.readonly,
358
342
  "s-ui-select--multiple": Z.value,
359
343
  "s-ui-select--open": V.value
360
- })), lt = () => {
344
+ })), rt = () => {
361
345
  if (X.value) {
362
- z.value?.focus();
346
+ L.value?.focus();
363
347
  return;
364
348
  }
365
- L.value?.focus();
366
- }, ut = async () => {
367
- await w(), z.value?.focus();
368
- }, dt = async () => {
369
- await w(), await ge.value?.focusNavigation();
349
+ I.value?.focus();
350
+ }, it = async () => {
351
+ await w(), L.value?.focus();
352
+ }, at = async () => {
353
+ await w(), await z.value?.focusNavigation();
370
354
  }, Q = async () => {
371
355
  if (!(i.disabled || i.readonly) && !V.value) {
372
356
  if (V.value = !0, b("open"), X.value) {
373
- await ut();
357
+ await it();
374
358
  return;
375
359
  }
376
- if (ze.value) {
377
- await w(), L.value?.focus();
360
+ if (Ie.value) {
361
+ await w(), I.value?.focus();
378
362
  return;
379
363
  }
380
- await dt();
364
+ await at();
381
365
  }
382
- }, ft = async () => {
366
+ }, ot = async () => {
383
367
  i.disabled || i.readonly || V.value || await Q();
384
368
  };
385
369
  P(u, async (e) => {
386
- ze.value && (i.disabled || i.readonly || e && (V.value || await Q()));
370
+ Ie.value && (i.disabled || i.readonly || e && (V.value || await Q()));
387
371
  });
388
372
  let $ = () => {
389
373
  V.value && (V.value = !1, B.value = void 0, b("close"));
390
- }, pt = () => {
374
+ }, st = () => {
391
375
  !i.closeOnSelect || Z.value || $();
392
376
  };
393
377
  P(l, (e, t) => {
394
378
  !i.closeOnSelect || Z.value || !V.value || !e || e === t || $();
395
379
  });
396
- let mt = (e) => {
397
- V.value && e.target instanceof Element && e.target.closest(".s-ui-list-item") && pt();
398
- }, ht = async (e) => {
399
- e.key !== "Enter" && e.key !== " " && e.key !== "Spacebar" || V.value && (await w(), pt());
400
- }, gt = async () => {
380
+ let ct = (e) => {
381
+ V.value && e.target instanceof Element && e.target.closest(".s-ui-list-item") && st();
382
+ }, lt = async (e) => {
383
+ e.key !== "Enter" && e.key !== " " && e.key !== "Spacebar" || V.value && (await w(), st());
384
+ }, ut = async () => {
401
385
  if (V.value) {
402
386
  $();
403
387
  return;
404
388
  }
405
389
  await Q();
406
- }, _t = async (e) => {
390
+ }, dt = async (e) => {
407
391
  if (!(i.disabled || i.readonly) && e.target instanceof HTMLElement) {
408
392
  if (e.target.closest(".s-ui-select__search-input")) {
409
393
  V.value || await Q();
410
394
  return;
411
395
  }
412
- await gt();
396
+ await ut();
413
397
  }
414
- }, vt = async (e) => e.key !== "ArrowDown" && e.key !== "ArrowUp" ? !1 : (e.preventDefault(), e.stopPropagation(), V.value || await Q(), await dt(), await ge.value?.handleKeyboardNavigation(e), !0), yt = (e) => {
415
- let t = He(e);
398
+ }, ft = async (e) => e.key !== "ArrowDown" && e.key !== "ArrowUp" ? !1 : (e.preventDefault(), e.stopPropagation(), V.value || await Q(), await at(), await z.value?.handleKeyboardNavigation(e), !0), pt = (e) => {
399
+ let t = ze(e);
416
400
  if (t) {
417
401
  if (Z.value) {
418
- G.value.some((t) => Ue(t) === e) ? Ve(t) : q.value = [...G.value.map((e) => Ue(e)), e];
402
+ G.value.some((t) => Be(t) === e) ? Re(t) : q.value = [...G.value.map((e) => Be(e)), e];
419
403
  return;
420
404
  }
421
- q.value = e, pt();
405
+ q.value = e, st();
422
406
  }
423
- }, bt = async (e) => {
424
- if (!(i.disabled || i.readonly) && !await vt(e)) {
407
+ }, mt = async (e) => {
408
+ if (!(i.disabled || i.readonly) && !await ft(e)) {
425
409
  if (e.key === "Escape") {
426
410
  e.preventDefault(), $();
427
411
  return;
428
412
  }
429
413
  if (e.key === "Enter" || e.key === " ") {
430
414
  if (e.preventDefault(), V.value && B.value) {
431
- yt(B.value);
415
+ pt(B.value);
432
416
  return;
433
417
  }
434
- await gt();
418
+ await ut();
435
419
  }
436
420
  }
437
- }, xt = async (e) => {
421
+ }, ht = async (e) => {
438
422
  if (e.key === "Escape") {
439
423
  e.preventDefault(), $();
440
424
  return;
441
425
  }
442
- await vt(e);
443
- }, St = xt, Ct = (e) => {
426
+ await ft(e);
427
+ }, gt = ht, _t = (e) => {
444
428
  i.disabled || (H.value || b("focus", e), H.value = !0);
445
- }, wt = (e) => {
429
+ }, vt = (e) => {
446
430
  if (!(e.currentTarget instanceof HTMLElement)) return;
447
431
  let t = e.relatedTarget;
448
432
  t instanceof Node && e.currentTarget.contains(t) || (H.value = !1, b("blur", e));
449
- }, Tt = () => {
450
- Be(), b("clear");
451
- }, Et = (e) => {
433
+ }, yt = () => {
434
+ Le(), b("clear");
435
+ }, bt = (e) => {
452
436
  b("endReached", e);
453
437
  };
454
438
  return o({
455
439
  open: Q,
456
440
  close: $,
457
- toggle: gt,
458
- focusSearchInput: lt
459
- }), (o, c) => (O(), g("div", { class: T(["s-ui-select", ct.value]) }, [y(M(a), {
441
+ toggle: ut,
442
+ focusSearchInput: rt
443
+ }), (o, c) => (O(), g("div", { class: T(["s-ui-select", nt.value]) }, [y(M(a), {
460
444
  modelValue: V.value,
461
445
  "onUpdate:modelValue": c[4] ||= (e) => V.value = e,
462
- reference: at.value,
446
+ reference: $e.value,
463
447
  disabled: i.disabled,
464
- "match-reference-width": _e.value,
448
+ "match-reference-width": ge.value,
465
449
  "fit-viewport": i.fitViewport,
466
450
  "surface-class": i.surfaceClass,
467
- "content-id": it.value,
451
+ "content-id": Qe.value,
468
452
  "dismiss-on-click-outside": !0,
469
453
  "dismiss-on-escape": !0
470
454
  }, {
471
455
  content: F(() => [y(M(pe), {
472
456
  class: "s-ui-select__menu",
473
- width: U.value
457
+ width: _e.value
474
458
  }, v({
475
459
  default: F(() => [_("div", {
476
460
  class: "s-ui-select__menu-body",
477
- onClick: mt,
478
- onKeydown: ht
461
+ onClick: ct,
462
+ onKeydown: lt
479
463
  }, [M(K).length > 0 ? (O(), m(M(d), {
480
464
  key: 0,
481
465
  ref_key: "listElementRef",
482
- ref: ge,
466
+ ref: z,
483
467
  modelValue: B.value,
484
468
  "onUpdate:modelValue": c[2] ||= (e) => B.value = e,
485
469
  selected: M(q),
486
470
  "onUpdate:selected": c[3] ||= (e) => te(q) ? q.value = e : null,
487
- items: $e.value,
488
- "item-key": W.value,
471
+ items: M(K),
472
+ "item-key": U.value,
489
473
  "title-key": i.itemTitle,
490
474
  "subtitle-key": i.itemSubtitle,
491
475
  "icon-left-key": i.itemIconLeft,
492
476
  "disabled-key": i.itemDisabled,
493
- "selection-mode": M(ye),
477
+ "selection-mode": M(ve),
494
478
  mandatory: !i.multiple,
495
- height: qe.value,
496
- "max-height": Je.value,
497
- virtual: Ke.value,
498
- "item-props": et,
479
+ height: We.value,
480
+ "max-height": Ge.value,
481
+ virtual: Ue.value,
482
+ "item-props": Je,
483
+ "selected-on-top": M(Z),
499
484
  "can-load-more": i.canLoadMore,
500
485
  "end-reached-distance": i.endReachedDistance,
501
- onEndReached: Et
486
+ onEndReached: bt
502
487
  }, v({ _: 2 }, [M(D).option || M(D)["option-icon"] || i.closableOptions || M(Z) ? {
503
488
  name: "item",
504
- fn: F((a) => [a.key === Ne ? (O(), g("div", xe)) : M(D).option ? k(o.$slots, "option", E(C({ key: 1 }, a))) : i.closableOptions ? (O(), m(M(f), E(C({ key: 2 }, tt(a))), v({ _: 2 }, [M(D)["option-icon"] ? {
489
+ fn: F((a) => [M(D).option ? k(o.$slots, "option", E(C({ key: 0 }, a))) : i.closableOptions ? (O(), m(M(f), E(C({ key: 1 }, Ye(a))), v({ _: 2 }, [M(D)["option-icon"] ? {
505
490
  name: "icon-left",
506
491
  fn: F(() => [k(o.$slots, "option-icon", E(x(a)))]),
507
492
  key: "0"
508
- } : void 0, Xe(a.key) ? {
493
+ } : void 0, qe(a.key) ? {
509
494
  name: "right",
510
495
  fn: F((i) => [y(M(r), {
511
496
  appearance: M(n).BARE,
@@ -515,7 +500,7 @@ var de = {
515
500
  "aria-label": M(S)("select.removeOption"),
516
501
  disabled: i.disabled || i.readonly,
517
502
  tabindex: -1,
518
- onClick: ce((e) => nt(a.key), ["stop"])
503
+ onClick: ce((e) => Xe(a.key), ["stop"])
519
504
  }, null, 8, [
520
505
  "appearance",
521
506
  "variant",
@@ -525,7 +510,7 @@ var de = {
525
510
  "onClick"
526
511
  ])]),
527
512
  key: "1"
528
- } : void 0]), 1040)) : (O(), m(M(f), E(C({ key: 3 }, tt(a))), v({ _: 2 }, [M(D)["option-icon"] ? {
513
+ } : void 0]), 1040)) : (O(), m(M(f), E(C({ key: 2 }, Ye(a))), v({ _: 2 }, [M(D)["option-icon"] ? {
529
514
  name: "icon-left",
530
515
  fn: F(() => [k(o.$slots, "option-icon", E(x(a)))]),
531
516
  key: "0"
@@ -545,16 +530,17 @@ var de = {
545
530
  "height",
546
531
  "max-height",
547
532
  "virtual",
533
+ "selected-on-top",
548
534
  "can-load-more",
549
535
  "end-reached-distance"
550
- ])) : (O(), g("div", Se, [k(o.$slots, "empty", {}, () => [ee(A(M(S)("select.noOptions")), 1)])]))], 32)]),
536
+ ])) : (O(), g("div", be, [k(o.$slots, "empty", {}, () => [ee(A(M(S)("select.noOptions")), 1)])]))], 32)]),
551
537
  _: 2
552
538
  }, [M(X) || M(D)["panel-header"] ? {
553
539
  name: "header",
554
540
  fn: F(() => [k(o.$slots, "panel-header"), M(X) ? (O(), m(M(s), {
555
541
  key: 0,
556
542
  ref_key: "panelSearchInputElementRef",
557
- ref: z,
543
+ ref: L,
558
544
  modelValue: u.value,
559
545
  "onUpdate:modelValue": c[0] ||= (e) => u.value = e,
560
546
  placeholder: i.searchPlaceholder,
@@ -562,7 +548,7 @@ var de = {
562
548
  clearable: !1,
563
549
  "icon-left": "search",
564
550
  onClick: c[1] ||= ce(() => {}, ["stop"]),
565
- onKeydown: M(St)
551
+ onKeydown: M(gt)
566
552
  }, null, 8, [
567
553
  "modelValue",
568
554
  "placeholder",
@@ -598,40 +584,40 @@ var de = {
598
584
  disabled: i.disabled,
599
585
  readonly: i.readonly,
600
586
  clearable: i.clearable,
601
- "has-value": M(Pe),
587
+ "has-value": M(je),
602
588
  focused: H.value || V.value,
603
589
  "icon-left": i.iconLeft,
604
590
  customize: i.customize,
605
591
  name: i.name,
606
- id: rt.value,
607
- onClear: Tt,
608
- onFocus: Ct,
609
- onBlur: wt
592
+ id: Ze.value,
593
+ onClear: yt,
594
+ onFocus: _t,
595
+ onBlur: vt
610
596
  }, v({
611
597
  control: F(() => [_("div", {
612
- id: rt.value,
598
+ id: Ze.value,
613
599
  class: T(["s-ui-select__control s-ui-typography-body-14-regular", {
614
600
  "s-ui-select__control--multiple": M(Z),
615
- "s-ui-select__control--empty": M(Z) && !M(Pe) && !M(Y),
616
- "s-ui-select__control--with-value-suffix": We.value && !M(Z) && !M(Y) && !M(J)
601
+ "s-ui-select__control--empty": M(Z) && !M(je) && !M(Y),
602
+ "s-ui-select__control--with-value-suffix": Ve.value && !M(Z) && !M(Y) && !M(J)
617
603
  }]),
618
604
  role: "combobox",
619
605
  "aria-expanded": V.value,
620
- "aria-controls": it.value,
606
+ "aria-controls": Qe.value,
621
607
  "aria-haspopup": "listbox",
622
608
  "aria-disabled": i.disabled ? !0 : void 0,
623
609
  "aria-readonly": i.readonly ? !0 : void 0,
624
- "aria-autocomplete": M(Re) ? "list" : void 0,
625
- tabindex: st.value,
626
- onClick: _t,
627
- onKeydown: bt
610
+ "aria-autocomplete": M(Fe) ? "list" : void 0,
611
+ tabindex: tt.value,
612
+ onClick: dt,
613
+ onKeydown: mt
628
614
  }, [
629
- M(Z) ? k(o.$slots, "selection", E(C({ key: 0 }, ot.value)), () => [M(Le) ? (O(), g("span", we, A(M(Le)), 1)) : M(J) && !M(Y) ? (O(), g("span", Te, A(i.placeholder), 1)) : h("", !0)]) : M(J) && !M(Y) ? (O(), g("span", Ee, A(i.placeholder), 1)) : M(Y) ? h("", !0) : (O(), g("span", De, A(M(Fe)), 1)),
630
- We.value && !M(Z) && !M(Y) && !M(J) ? (O(), g("div", Oe, [k(o.$slots, "value-suffix", E(x(Ge.value)))])) : h("", !0),
615
+ M(Z) ? k(o.$slots, "selection", E(C({ key: 0 }, et.value)), () => [M(Pe) ? (O(), g("span", Se, A(M(Pe)), 1)) : M(J) && !M(Y) ? (O(), g("span", Ce, A(i.placeholder), 1)) : h("", !0)]) : M(J) && !M(Y) ? (O(), g("span", we, A(i.placeholder), 1)) : M(Y) ? h("", !0) : (O(), g("span", Te, A(M(Me)), 1)),
616
+ Ve.value && !M(Z) && !M(Y) && !M(J) ? (O(), g("div", Ee, [k(o.$slots, "value-suffix", E(x(He.value)))])) : h("", !0),
631
617
  M(Y) ? se((O(), g("input", {
632
618
  key: 4,
633
619
  ref_key: "searchInputElementRef",
634
- ref: L,
620
+ ref: I,
635
621
  "onUpdate:modelValue": c[5] ||= (e) => u.value = e,
636
622
  class: "s-ui-select__search-input",
637
623
  type: "text",
@@ -641,13 +627,13 @@ var de = {
641
627
  readonly: i.readonly,
642
628
  autocomplete: "off",
643
629
  onClick: c[6] ||= ce(() => {}, ["stop"]),
644
- onFocus: ft,
645
- onKeydown: xt
646
- }, null, 40, ke)), [[oe, u.value]]) : h("", !0)
647
- ], 42, Ce)]),
630
+ onFocus: ot,
631
+ onKeydown: ht
632
+ }, null, 40, De)), [[oe, u.value]]) : h("", !0)
633
+ ], 42, xe)]),
648
634
  action: F(() => [y(M(le), {
649
635
  name: "chevronMiniDown",
650
- size: Ae,
636
+ size: Oe,
651
637
  class: "s-ui-select__chevron"
652
638
  })]),
653
639
  _: 2
@@ -693,4 +679,4 @@ var de = {
693
679
  }
694
680
  });
695
681
  //#endregion
696
- export { V as n, pe as r, q as t };
682
+ export { H as n, pe as r, je as t };
@@ -54,6 +54,8 @@ export interface ISListProps<TItem extends Record<string, unknown> = Record<stri
54
54
  revealRight?: boolean;
55
55
  /** Клик по строке с потомками сворачивает/разворачивает ветку. */
56
56
  expandOnClick?: boolean;
57
+ /** Плоские списки: выбранные строки группируются сверху, между группами — разделитель. Для деревьев игнорируется. */
58
+ selectedOnTop?: boolean;
57
59
  /** Поле-флаг «у раскрытого узла есть ещё дети для догрузки»; включает синтетическую строку «Показать ещё». */
58
60
  hasMoreChildrenKey?: keyof TItem & string;
59
61
  /** Ключи узлов, для которых сейчас идёт догрузка детей (в их строке «Показать ещё» — спиннер). */
@@ -1 +1 @@
1
- {"version":3,"file":"SList.types.d.ts","sourceRoot":"","sources":["../../../src/components/SList/SList.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,KAAK,CAAA;AAElD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAEzE,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,WAAW,aAAa;IACxB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,WAAW,aAAa;CACzB;AAED,MAAM,WAAW,WAAW,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1F,+CAA+C;IAC/C,KAAK,CAAC,EAAE,SAAS,KAAK,EAAE,CAAA;IACxB,wCAAwC;IACxC,OAAO,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAA;IACrC,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,KAAK,GAAG,MAAM,CAAA;IAClC,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,KAAK,GAAG,MAAM,CAAA;IAC/B,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,KAAK,GAAG,MAAM,CAAA;IAClC,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,KAAK,GAAG,MAAM,CAAA;IAClC,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,KAAK,GAAG,MAAM,CAAA;IAClC,yDAAyD;IACzD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IAC/E,0BAA0B;IAC1B,aAAa,CAAC,EAAE,cAAc,CAAA;IAC9B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,OAAO,CAAA;IAC3B,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,8GAA8G;IAC9G,kBAAkB,CAAC,EAAE,MAAM,KAAK,GAAG,MAAM,CAAA;IACzC,kGAAkG;IAClG,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC5C;AAED,MAAM,MAAM,uBAAuB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAC3E,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,KAAK,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG;IAC7F,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,8EAA8E;IAC9E,wBAAwB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAClE;AAED,MAAM,MAAM,cAAc,GAAG,uBAAuB,CAAC,WAAW,CAAC,GAAG,YAAY,CAAA"}
1
+ {"version":3,"file":"SList.types.d.ts","sourceRoot":"","sources":["../../../src/components/SList/SList.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SList.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SList/SList.vue"],"names":[],"mappings":"AAkzBA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAiB9F,QAAA,MAAM,YAAY,GAAK,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,gBAAgB,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAClE;WAq7BO,OAAO,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAAC;qBA/R3C,MAAM,GAAG,SAAS;mBAClB,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;mBAC7B,MAAM,EAAE;;;;;uBApnBO,QAAQ;;;iBAEC,MAAM;kBAAQ,KAAK;;;KA+4BmC,CAAC,GAAG,CAAC,OAAO,UAAU,SAAS;QAAE,oBAAoB,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5J,CAAC,OAAO,EAAE,OAAO,KAAK,EAAE,gBAAgB;;0CA/jBF,aAAa;MA+jBW,KAAK,IAAI;WACxE,GAAG;;eA54BF,CAAC,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAAK,OAAO;mBAC9C,CAAC,SAAS,EAAE,uBAAuB,CAAC,KAAK,CAAC,KAAK,OAAO;kBACvD,MAAM,OAAO;;UA44BlB;mBAr5BqB,QAAQ;;aAEC,MAAM;cAAQ,KAAK;2NAm5Bb;EAEvC,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAI,CAAC;wBACvD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,CAAC,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"SList.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SList/SList.vue"],"names":[],"mappings":"AAwzBA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAiB9F,QAAA,MAAM,YAAY,GAAK,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,gBAAgB,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAClE;WAy8BO,OAAO,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAAC;qBA/S3C,MAAM,GAAG,SAAS;mBAClB,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;mBAC7B,MAAM,EAAE;;;;;uBAvnBO,QAAQ;;;iBAEC,MAAM;kBAAQ,KAAK;;;KAk6BmC,CAAC,GAAG,CAAC,OAAO,UAAU,SAAS;QAAE,oBAAoB,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5J,CAAC,OAAO,EAAE,OAAO,KAAK,EAAE,gBAAgB;;0CA/kBF,aAAa;MA+kBW,KAAK,IAAI;WACxE,GAAG;;eA/5BF,CAAC,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAAK,OAAO;mBAC9C,CAAC,SAAS,EAAE,uBAAuB,CAAC,KAAK,CAAC,KAAK,OAAO;kBACvD,MAAM,OAAO;;UA+5BlB;mBAx6BqB,QAAQ;;aAEC,MAAM;cAAQ,KAAK;2NAs6Bb;EAEvC,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAI,CAAC;wBACvD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,CAAC,GAAG,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SSelect.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SSelect/SSelect.vue"],"names":[],"mappings":"AA41BA,OAAO,KAAK,EAEV,aAAa,EACb,aAAa,EACb,eAAe,EACf,kBAAkB,EAElB,mBAAmB,EACpB,MAAM,iBAAiB,CAAA;AAKxB,QAAA,MAAM,YAAY,GACd,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,aAAa,SAAS,OAAO,GAAG,KAAK,EACrC,SAAS,SAAS,OAAO,GAAG,KAAK,EAEpC,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,gBAAgB,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAClE;WAqpCO,OAAO,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAAC;qBA7mB3C,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC;QAC5F;;;;WAIG;sBACa,MAAM;;;;;;;;;;;;KAumBqE,CAAC,GAAG,CAAC,OAAO,UAAU,SAAS;QAAE,oBAAoB,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5J,CAAC,OAAO,EAAE,OAAO,KAAK,EAAE,gBAAgB,iBAAsB,KAAK,IAAI;WACxE,GAAG;;UAEJ;;wNAAoC;EAEvC,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAI,CAAC;wBACvD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,CAAC,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"SSelect.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SSelect/SSelect.vue"],"names":[],"mappings":"AAkzBA,OAAO,KAAK,EAEV,aAAa,EACb,aAAa,EACb,eAAe,EACf,kBAAkB,EAElB,mBAAmB,EACpB,MAAM,iBAAiB,CAAA;AAKxB,QAAA,MAAM,YAAY,GACd,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,aAAa,SAAS,OAAO,GAAG,KAAK,EACrC,SAAS,SAAS,OAAO,GAAG,KAAK,EAEpC,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,gBAAgB,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAClE;WAwmCO,OAAO,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAAC;qBArmB3C,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC;QAC5F;;;;WAIG;sBACa,MAAM;;;;;;;;;;;;KA+lBqE,CAAC,GAAG,CAAC,OAAO,UAAU,SAAS;QAAE,oBAAoB,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5J,CAAC,OAAO,EAAE,OAAO,KAAK,EAAE,gBAAgB,iBAAsB,KAAK,IAAI;WACxE,GAAG;;UAEJ;;wNAAoC;EAEvC,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAI,CAAC;wBACvD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,CAAC,GAAG,EAAE,CAAC"}
@@ -9,6 +9,8 @@ export type TFlatListRow<TItem extends Record<string, unknown>> = {
9
9
  parentKey?: string;
10
10
  /** Ключ родителя, для которого эта синтетическая строка догружает детей; `item` — сам родитель. */
11
11
  loadMoreForKey?: string;
12
+ /** Синтетическая строка-разделитель между выбранными и остальными элементами; `item` — пустой объект. */
13
+ divider?: boolean;
12
14
  };
13
15
  export type TListItemKeyResolver<TItem extends Record<string, unknown>> = (keyof TItem & string) | ((item: TItem) => string);
14
16
  export interface IUseFlatTreeListOptions<TItem extends Record<string, unknown>> {
@@ -17,11 +19,16 @@ export interface IUseFlatTreeListOptions<TItem extends Record<string, unknown>>
17
19
  itemKey: MaybeRefOrGetter<TListItemKeyResolver<TItem>>;
18
20
  expanded: Ref<string[]>;
19
21
  hasMoreChildrenKey?: MaybeRefOrGetter<(keyof TItem & string) | undefined>;
22
+ /** Плоские списки: выбранные элементы группируются сверху, между группами — строка-разделитель. */
23
+ selectedOnTop?: MaybeRefOrGetter<boolean>;
24
+ /** Ключи выбранных элементов для группировки `selectedOnTop`. */
25
+ selectedKeys?: MaybeRefOrGetter<string | readonly string[] | undefined>;
20
26
  }
21
27
  export interface IUseFlatTreeListReturn<TItem extends Record<string, unknown>> {
22
28
  flatRows: ComputedRef<TFlatListRow<TItem>[]>;
23
29
  toggleExpanded: (rowKey: string) => void;
24
30
  isExpanded: (rowKey: string) => boolean;
25
31
  }
26
- export declare const useFlatTreeList: <TItem extends Record<string, unknown>>({ items, childrenKey, itemKey, expanded, hasMoreChildrenKey, }: IUseFlatTreeListOptions<TItem>) => IUseFlatTreeListReturn<TItem>;
32
+ export declare const LIST_DIVIDER_ROW_KEY = "__s-ui-list-divider__";
33
+ export declare const useFlatTreeList: <TItem extends Record<string, unknown>>({ items, childrenKey, itemKey, expanded, hasMoreChildrenKey, selectedOnTop, selectedKeys, }: IUseFlatTreeListOptions<TItem>) => IUseFlatTreeListReturn<TItem>;
27
34
  //# sourceMappingURL=useFlatTreeList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFlatTreeList.d.ts","sourceRoot":"","sources":["../../src/composables/useFlatTreeList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAE1F,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAChE,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mGAAmG;IACnG,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,oBAAoB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAClE,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,GACtB,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,CAAA;AAE7B,MAAM,WAAW,uBAAuB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5E,KAAK,EAAE,gBAAgB,CAAC,SAAS,KAAK,EAAE,CAAC,CAAA;IACzC,WAAW,EAAE,gBAAgB,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAA;IACnD,OAAO,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAA;IACtD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;IACvB,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC,CAAA;CAC1E;AAED,MAAM,WAAW,sBAAsB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3E,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC5C,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;CACxC;AA+JD,eAAO,MAAM,eAAe,GAAI,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,gEAMpE,uBAAuB,CAAC,KAAK,CAAC,KAAG,sBAAsB,CAAC,KAAK,CAwD/D,CAAA"}
1
+ {"version":3,"file":"useFlatTreeList.d.ts","sourceRoot":"","sources":["../../src/composables/useFlatTreeList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAE1F,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAChE,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mGAAmG;IACnG,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,yGAAyG;IACzG,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,oBAAoB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAClE,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,GACtB,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,CAAA;AAE7B,MAAM,WAAW,uBAAuB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC5E,KAAK,EAAE,gBAAgB,CAAC,SAAS,KAAK,EAAE,CAAC,CAAA;IACzC,WAAW,EAAE,gBAAgB,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAA;IACnD,OAAO,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAA;IACtD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;IACvB,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC,CAAA;IACzE,mGAAmG;IACnG,aAAa,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACzC,iEAAiE;IACjE,YAAY,CAAC,EAAE,gBAAgB,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;CACxE;AAED,MAAM,WAAW,sBAAsB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3E,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC5C,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;CACxC;AAyDD,eAAO,MAAM,oBAAoB,0BAA0B,CAAA;AA4J3D,eAAO,MAAM,eAAe,GAAI,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,6FAQpE,uBAAuB,CAAC,KAAK,CAAC,KAAG,sBAAsB,CAAC,KAAK,CAqG/D,CAAA"}