@golemui/gui-lit 1.6.0 → 2.0.0-rc.1

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 (96) hide show
  1. package/CHANGELOG.md +86 -0
  2. package/accordion.element-CE1gDRCy.js +84 -0
  3. package/alert.element-Bqcad7bR.js +43 -0
  4. package/{button.element-CKYv0Glr.js → button.element-CjeUWaly.js} +23 -24
  5. package/{calendar.element-DkHZFBNr.js → calendar.element-DXI9bfFN.js} +17 -22
  6. package/{checkbox.element-MukoziRw.js → checkbox.element-D8hXKLjW.js} +18 -22
  7. package/{currency.element-DNumeSKA.js → currency.element-D8t_MtIs.js} +22 -26
  8. package/{date-picker.element-DpQmremq.js → date-picker.element-X__hfSnj.js} +16 -21
  9. package/{date-time-calendar.element-GAr8VMGa.js → date-time-calendar.element-Dmyd7LQ0.js} +17 -21
  10. package/{date-time-picker.element-Bt0GYSpS.js → date-time-picker.element-QGn5dEbf.js} +23 -27
  11. package/{date-time.element-WfLnY_Cb.js → date-time.element-B0OuRjlf.js} +20 -25
  12. package/{date.element-ChpTi2AQ.js → date.element-Ba8wmaNU.js} +13 -18
  13. package/default-list-item-renderer-sJeXkSKR.js +15 -0
  14. package/{default-multi-list-item-renderer-Cv-guvEX.js → default-multi-list-item-renderer-CG3Fuye0.js} +7 -12
  15. package/{dropdown.element-Ckh9JvEK.js → dropdown.element-C55MHVq-.js} +98 -132
  16. package/{file-upload.element-l_l_ubxJ.js → file-upload.element-B3oBEQ_s.js} +18 -23
  17. package/grid.element-CwDdlQ4b.js +54 -0
  18. package/index.js +42 -42
  19. package/index.umd.cjs +287 -374
  20. package/lib/components/accordion.element.d.ts +2 -2
  21. package/lib/components/alert.element.d.ts +0 -1
  22. package/lib/components/calendar.element.d.ts +0 -1
  23. package/lib/components/checkbox.element.d.ts +0 -1
  24. package/lib/components/currency.element.d.ts +0 -1
  25. package/lib/components/date-picker.element.d.ts +0 -1
  26. package/lib/components/date-time-calendar.element.d.ts +0 -1
  27. package/lib/components/date-time-picker.element.d.ts +0 -1
  28. package/lib/components/date-time.element.d.ts +0 -1
  29. package/lib/components/date.element.d.ts +0 -1
  30. package/lib/components/dropdown.element.d.ts +2 -6
  31. package/lib/components/file-upload.element.d.ts +0 -1
  32. package/lib/components/grid.element.d.ts +3 -3
  33. package/lib/components/list.element.d.ts +2 -8
  34. package/lib/components/markdown-text.element.d.ts +0 -1
  35. package/lib/components/markdown.element.d.ts +0 -1
  36. package/lib/components/multi-dropdown.element.d.ts +2 -6
  37. package/lib/components/multi-file-upload.element.d.ts +0 -1
  38. package/lib/components/multi-list.element.d.ts +2 -8
  39. package/lib/components/number.element.d.ts +0 -1
  40. package/lib/components/password.element.d.ts +0 -1
  41. package/lib/components/radiogroup.element.d.ts +0 -1
  42. package/lib/components/range-calendar.element.d.ts +0 -1
  43. package/lib/components/range-date-input.element.d.ts +0 -1
  44. package/lib/components/range-date-picker.element.d.ts +0 -1
  45. package/lib/components/range-date-time-calendar.element.d.ts +0 -1
  46. package/lib/components/range-date-time-input.element.d.ts +0 -1
  47. package/lib/components/range-date-time-picker.element.d.ts +0 -1
  48. package/lib/components/range-time-input.element.d.ts +0 -1
  49. package/lib/components/range-time-picker.element.d.ts +0 -1
  50. package/lib/components/renderer.element.d.ts +0 -1
  51. package/lib/components/repeater.element.d.ts +0 -1
  52. package/lib/components/select.element.d.ts +0 -1
  53. package/lib/components/tabs.element.d.ts +4 -15
  54. package/lib/components/tags.element.d.ts +0 -1
  55. package/lib/components/textarea.element.d.ts +0 -1
  56. package/lib/components/textinput.element.d.ts +0 -1
  57. package/lib/components/time-picker.element.d.ts +0 -1
  58. package/lib/components/time.element.d.ts +0 -1
  59. package/lib/components/toggle.element.d.ts +0 -1
  60. package/list.element-CIrv32zU.js +125 -0
  61. package/{markdown-text.element-DflCQwAo.js → markdown-text.element-Jos6zKYy.js} +17 -22
  62. package/{markdown.element-DUHHoi2Y.js → markdown.element-7tvZ028P.js} +11 -15
  63. package/{multi-dropdown.element-mX06nBBb.js → multi-dropdown.element-nOsP8HUx.js} +99 -135
  64. package/{multi-file-upload.element-DzAZAfc1.js → multi-file-upload.element-4h6JQgRF.js} +16 -21
  65. package/multi-list.element-CZfmTbCf.js +139 -0
  66. package/{number.element-mQSFQsYC.js → number.element-WRHwQGZz.js} +19 -23
  67. package/package.json +6 -6
  68. package/{password.element-xw5gugEg.js → password.element-DnV_PqKI.js} +17 -21
  69. package/{radiogroup.element-TqfrxVyI.js → radiogroup.element-Cqn_48Ao.js} +20 -24
  70. package/{range-calendar.element-BJr97SVA.js → range-calendar.element-V_56ZeT9.js} +13 -18
  71. package/{range-date-input.element-DDRYvP9h.js → range-date-input.element-D3ZG8OW-.js} +15 -20
  72. package/{range-date-picker.element-rdEr0_wu.js → range-date-picker.element-CaNHjueS.js} +21 -26
  73. package/{range-date-time-calendar.element-UlL1BBRJ.js → range-date-time-calendar.element-DyiiUB5Q.js} +19 -24
  74. package/{range-date-time-input.element-Cq4IdW7N.js → range-date-time-input.element-CVCPS7FC.js} +20 -25
  75. package/{range-date-time-picker.element-CnJcIN9C.js → range-date-time-picker.element-6nBQ_NZs.js} +16 -21
  76. package/{range-time-input.element-Cq0TrGe9.js → range-time-input.element-GXw45kMr.js} +12 -17
  77. package/{range-time-picker.element-BzlIuZ6m.js → range-time-picker.element-CG4PJg3u.js} +24 -29
  78. package/{renderer.element-BVwerbtL.js → renderer.element-FWOUTePl.js} +16 -21
  79. package/{repeater.element-DQNI4b7I.js → repeater.element-V508AKTJ.js} +8 -13
  80. package/{select.element-RBtbAvLx.js → select.element-BPrqKmDM.js} +17 -20
  81. package/tabs.element-CeZOk5Bj.js +88 -0
  82. package/{tags.element-CGvxhMmX.js → tags.element-CVCUsKZ0.js} +12 -17
  83. package/{textarea.element-E2ntRBtE.js → textarea.element-DrWG3xvs.js} +23 -27
  84. package/{textinput.element-0q5F5ol3.js → textinput.element-CCgsbYTB.js} +25 -29
  85. package/{time-picker.element-BiLaLr_c.js → time-picker.element-Q_OWcBVy.js} +21 -26
  86. package/{time.element-92goKRwJ.js → time.element-B0L2sriD.js} +20 -25
  87. package/{toggle.element-zDUc9Vja.js → toggle.element-BTjo7IVK.js} +18 -22
  88. package/accordion.element-BEenQrCh.js +0 -102
  89. package/alert.element-Dzv49O-1.js +0 -55
  90. package/default-list-item-renderer-CuPJ9jUD.js +0 -24
  91. package/flex.element-BW0_kx8z.js +0 -79
  92. package/grid.element-C019lV76.js +0 -78
  93. package/lib/components/flex.element.d.ts +0 -16
  94. package/list.element-UIKmXzeH.js +0 -148
  95. package/multi-list.element-Bs-UN2Cy.js +0 -162
  96. package/tabs.element-BiVaQlvt.js +0 -171
@@ -1,34 +1,29 @@
1
- import { LitElement as p, html as n } from "lit";
2
- import { property as l } from "lit/decorators.js";
3
- import { unsubscribeAll as m, safeDefine as c } from "@golemui/lit/internals";
1
+ import { LitElement as n, html as p } from "lit";
2
+ import { property as m } from "lit/decorators.js";
3
+ import { unsubscribeAll as c, safeDefine as l } from "@golemui/lit/internals";
4
4
  import { consume as u, provide as h } from "@lit/context";
5
- import { DisplayWidgetAdapter as f, formContext as x, displayWidgetContext as g } from "@golemui/lit";
5
+ import { DisplayWidgetAdapter as f, formContext as x, displayWidgetContext as b } from "@golemui/lit";
6
6
  import "@golemui/gui-components/markdown-text";
7
7
  import "rxjs";
8
- var b = Object.defineProperty, o = (r, i, e, y) => {
9
- for (var t = void 0, s = r.length - 1, d; s >= 0; s--)
10
- (d = r[s]) && (t = d(i, e, t) || t);
11
- return t && b(i, e, t), t;
8
+ var g = Object.defineProperty, o = (e, s, a, C) => {
9
+ for (var t = void 0, r = e.length - 1, d; r >= 0; r--)
10
+ (d = e[r]) && (t = d(s, a, t) || t);
11
+ return t && g(s, a, t), t;
12
12
  };
13
- class a extends p {
13
+ class i extends n {
14
14
  constructor() {
15
15
  super(...arguments), this.adapter = new f(), this.subscriptions = [];
16
16
  }
17
17
  createRenderRoot() {
18
18
  return this;
19
19
  }
20
- updated(i) {
21
- super.updated(i);
22
- const e = this.adapter.templateData.size;
23
- e ? this.style.flex = String(e) : this.style.removeProperty("flex");
24
- }
25
20
  connectedCallback() {
26
21
  super.connectedCallback(), this.classList.add("gui-markdown-text", "gui-field"), this.adapter.context = this.formContext, this.adapter.init(this.widget), this.subscriptions.push(
27
22
  this.adapter.templateDataChanged$.subscribe(() => this.requestUpdate())
28
23
  );
29
24
  }
30
25
  render() {
31
- return n`
26
+ return p`
32
27
  <div class="gui-widget" id=${this.widget.uid}>
33
28
  <gui-markdown-text
34
29
  .md=${this.adapter.templateData.md}
@@ -38,17 +33,17 @@ class a extends p {
38
33
  `;
39
34
  }
40
35
  disconnectedCallback() {
41
- super.disconnectedCallback(), this.adapter.destroy(), m(this.subscriptions);
36
+ super.disconnectedCallback(), this.adapter.destroy(), c(this.subscriptions);
42
37
  }
43
38
  }
44
39
  o([
45
40
  u({ context: x }),
46
- l({ attribute: !1 })
47
- ], a.prototype, "formContext");
41
+ m({ attribute: !1 })
42
+ ], i.prototype, "formContext");
48
43
  o([
49
- h({ context: g })
50
- ], a.prototype, "adapter");
51
- c("gui-markdown-text-display", a);
44
+ h({ context: b })
45
+ ], i.prototype, "adapter");
46
+ l("gui-markdown-text-display", i);
52
47
  export {
53
- a as MarkdownTextElement
48
+ i as MarkdownTextElement
54
49
  };
@@ -5,10 +5,11 @@ import { LitElement as u, html as c } from "lit";
5
5
  import { property as $ } from "lit/decorators.js";
6
6
  import { unsubscribeAll as D, safeDefine as b } from "@golemui/lit/internals";
7
7
  import "rxjs";
8
- var f = Object.defineProperty, d = (i, e, t, g) => {
9
- for (var a = void 0, r = i.length - 1, p; r >= 0; r--)
10
- (p = i[r]) && (a = p(e, t, a) || a);
11
- return a && f(e, t, a), a;
8
+ import { live as g } from "lit/directives/live.js";
9
+ var f = Object.defineProperty, d = (i, e, a, v) => {
10
+ for (var t = void 0, r = i.length - 1, p; r >= 0; r--)
11
+ (p = i[r]) && (t = p(e, a, t) || t);
12
+ return t && f(e, a, t), t;
12
13
  };
13
14
  class l extends u {
14
15
  constructor() {
@@ -17,11 +18,6 @@ class l extends u {
17
18
  createRenderRoot() {
18
19
  return this;
19
20
  }
20
- updated(e) {
21
- super.updated(e);
22
- const t = this.adapter.templateData.size;
23
- t ? this.style.flex = String(t) : this.style.removeProperty("flex");
24
- }
25
21
  connectedCallback() {
26
22
  super.connectedCallback(), this.classList.add("gui-markdown", "gui-field"), this.adapter.context = this.formContext, this.adapter.init(this.widget), this.subscriptions.push(
27
23
  this.adapter.templateDataChanged$.subscribe(() => this.requestUpdate())
@@ -33,11 +29,11 @@ class l extends u {
33
29
  .uid=${this.widget.uid}
34
30
  .label=${this.adapter.templateData.label}
35
31
  .errors=${this.adapter.templateData.errors}
36
- ?touched=${this.adapter.templateData.touched}
32
+ .touched=${this.adapter.templateData.touched}
37
33
  ?required=${this.adapter.templateData.validator?.required}
38
34
  ?disabled=${this.adapter.templateData.disabled}
39
35
  ?readonly=${this.adapter.templateData.readonly}
40
- .value=${this.adapter.templateData.value}
36
+ .value=${g(this.adapter.templateData.value)}
41
37
  .hint=${this.adapter.templateData.hint}
42
38
  .placeholder=${this.adapter.templateData.placeholder}
43
39
  .autocomplete=${this.adapter.templateData.autocomplete}
@@ -58,14 +54,14 @@ class l extends u {
58
54
  .defaultOpenPreview=${this.adapter.templateData.defaultOpenPreview}
59
55
  .maxLength=${this.adapter.templateData.validator?.maxLength}
60
56
  .dependencies=${this.adapter.templateData.deps}
61
- @input=${this.valueChanged}
62
- @blur=${() => this.adapter.onBlur()}
57
+ @gui-input=${this.valueChanged}
58
+ @gui-blur=${() => this.adapter.onBlur()}
63
59
  ></gui-markdown>
64
60
  `;
65
61
  }
66
62
  valueChanged(e) {
67
- const t = e.detail.value;
68
- this.adapter.valueChanged(t);
63
+ const a = e.detail.value;
64
+ this.adapter.valueChanged(a);
69
65
  }
70
66
  disconnectedCallback() {
71
67
  super.disconnectedCallback(), this.adapter.destroy(), D(this.subscriptions);
@@ -1,26 +1,27 @@
1
- import { InputWidgetAdapter as I, formContext as v, inputContext as D } from "@golemui/lit";
2
- import { updateListItems as F } from "@golemui/gui-components/internals";
3
- import { consume as x, provide as L } from "@lit/context";
4
- import { LitElement as R, nothing as w, html as m } from "lit";
5
- import { property as C, state as h, query as b } from "lit/decorators.js";
6
- import { unsubscribeAll as k, cspStyleMap as V, safeDefine as P } from "@golemui/lit/internals";
7
- import { Subject as S, debounceTime as T } from "rxjs";
8
- import { d as A } from "./default-multi-list-item-renderer-Cv-guvEX.js";
1
+ import { InputWidgetAdapter as _, formContext as f, inputContext as b } from "@golemui/lit";
2
+ import { updateListItems as $, selectedPills as w, searchItems as I } from "@golemui/gui-components/internals";
3
+ import { consume as v, provide as y } from "@lit/context";
4
+ import { LitElement as D, nothing as g, html as u } from "lit";
5
+ import { property as L, state as n, query as p } from "lit/decorators.js";
6
+ import { unsubscribeAll as R, cspStyleMap as V, safeDefine as F } from "@golemui/lit/internals";
7
+ import { Subject as k, debounceTime as x } from "rxjs";
8
+ import { d as C } from "./default-multi-list-item-renderer-CG3Fuye0.js";
9
9
  import "@golemui/gui-components/label";
10
10
  import "@golemui/gui-components/multi-list";
11
11
  import "@golemui/gui-components/multi-select-trigger";
12
12
  import "@golemui/gui-components/errors";
13
- var j = Object.defineProperty, n = (f, e, t, r) => {
14
- for (var i = void 0, l = f.length - 1, a; l >= 0; l--)
15
- (a = f[l]) && (i = a(e, t, i) || i);
16
- return i && j(e, t, i), i;
13
+ import { live as P } from "lit/directives/live.js";
14
+ var T = Object.defineProperty, o = (h, e, t, i) => {
15
+ for (var s = void 0, a = h.length - 1, d; a >= 0; a--)
16
+ (d = h[a]) && (s = d(e, t, s) || s);
17
+ return s && T(e, t, s), s;
17
18
  };
18
- class o extends R {
19
+ class l extends D {
19
20
  constructor() {
20
- super(...arguments), this.adapter = new I(), this.debouncer = new S(), this.subscriptions = [], this._range = { start: 0, end: 10 }, this._filteredItems = [], this._listItems = [], this._focusedIndex = -1, this._isFiltering = !1, this._isListVisible = !1, this._ignoreNextFocus = !1, this.onDocumentClick = (e) => {
21
+ super(...arguments), this.adapter = new _(), this.debouncer = new k(), this.subscriptions = [], this._visibleItems = [], this._filteredItems = [], this._listItems = [], this._isFiltering = !1, this._isListVisible = !1, this._ignoreNextFocus = !1, this.onDocumentClick = (e) => {
21
22
  if (!this._isListVisible) return;
22
- const t = e.composedPath(), r = this._triggerRef && t.includes(this._triggerRef), i = this._panelRef && t.includes(this._panelRef);
23
- !r && !i && (this._isListVisible = !1);
23
+ const t = e.composedPath(), i = this._triggerRef && t.includes(this._triggerRef), s = this._panelRef && t.includes(this._panelRef);
24
+ !i && !s && (this._isListVisible = !1);
24
25
  }, this._onToggleMouseDown = (e) => {
25
26
  e.preventDefault();
26
27
  }, this._onToggleClick = async (e) => {
@@ -32,69 +33,55 @@ class o extends R {
32
33
  createRenderRoot() {
33
34
  return this;
34
35
  }
35
- updated(e) {
36
- super.updated(e);
37
- const t = this.adapter.templateData.size;
38
- t ? this.style.flex = String(t) : this.style.removeProperty("flex");
39
- }
40
36
  connectedCallback() {
41
37
  super.connectedCallback(), typeof document < "u" && document.addEventListener("click", this.onDocumentClick), this.classList.add("gui-multi-dropdown", "gui-field"), this.adapter.context = this.formContext, this.adapter.init(this.widget), this._filteredItems = this.adapter.templateData.items, this.subscriptions.push(
42
38
  this.adapter.templateDataChanged$.subscribe(() => {
43
39
  const e = this.adapter.templateData;
44
40
  e.items && this._listItems?.length === 0 && this._filteredItems?.length === 0 && (this._filteredItems = e.items, this._listItems = e.items), this.requestUpdate();
45
41
  }),
46
- this.debouncer.pipe(T(this.adapter.templateData.inputDebounce ?? 500)).subscribe((e) => {
42
+ this.debouncer.pipe(x(this.adapter.templateData.inputDebounce ?? 500)).subscribe((e) => {
47
43
  this._filterItems(e);
48
44
  })
49
45
  );
50
46
  }
51
47
  disconnectedCallback() {
52
- super.disconnectedCallback(), document.removeEventListener("click", this.onDocumentClick), this.adapter.destroy(), k(this.subscriptions);
48
+ super.disconnectedCallback(), document.removeEventListener("click", this.onDocumentClick), this.adapter.destroy(), R(this.subscriptions);
53
49
  }
54
50
  _currentValues() {
55
51
  const e = this.adapter.templateData.value;
56
52
  return Array.isArray(e) ? e : [];
57
53
  }
58
54
  _pillItems(e) {
59
- const t = this.adapter.templateData, r = t.labelField ?? "label", i = F(
55
+ const t = this.adapter.templateData, i = $(
60
56
  t.items ?? [],
61
57
  t
62
58
  );
63
- return e.map((l) => {
64
- const a = i.find((u) => u.value === l) ?? this._listItems.find((u) => u.value === l), c = a != null && a.template !== null && typeof a.template == "object", s = a == null ? String(l) : String(c ? a.template[r] : a.template);
65
- return { key: String(l), label: s };
66
- });
59
+ return w(e, i, t.labelField, this._listItems);
67
60
  }
68
61
  _toggleValue(e) {
69
62
  const t = this.adapter.templateData;
70
63
  if (t.disabled || t.readonly) return;
71
- const r = this._currentValues();
72
- if (r.includes(e)) {
73
- this.adapter.valueChanged(r.filter((i) => i !== e));
64
+ const i = this._currentValues();
65
+ if (i.includes(e)) {
66
+ this.adapter.valueChanged(i.filter((s) => s !== e));
74
67
  return;
75
68
  }
76
- this.adapter.valueChanged([...r, e]);
69
+ this.adapter.valueChanged([...i, e]);
77
70
  }
78
71
  async _openPanel() {
79
72
  this._triggerRef?.closePillsDropdown(), this._isListVisible = !0, await this.updateComplete, this._listRef?.scrollToSelectedIndex();
80
73
  }
81
- _onRangeChange(e) {
82
- this._range = { start: e.detail.startIndex, end: e.detail.endIndex };
74
+ _onVisibleItemsChange(e) {
75
+ this._visibleItems = e.detail;
83
76
  }
84
77
  _onUpdateItems(e) {
85
78
  this._listItems = e.detail || [];
86
79
  }
87
- _onFocusChange(e) {
88
- this._focusedIndex = e.detail.index;
89
- }
90
- _onClickItem(e, t) {
91
- this.adapter.templateData.readonly || e.disabled || (this._toggleValue(e.value), this._focusedIndex = t, this._listRef && this._listRef.focusItemAtIndex(t));
92
- }
93
80
  _onValueChange(e) {
94
81
  this.adapter.templateData.readonly || this._toggleValue(e.detail.value);
95
82
  }
96
83
  _onPillRemove(e) {
97
- const t = this._currentValues().find((r) => String(r) === e.detail.key);
84
+ const t = this._currentValues().find((i) => String(i) === e.detail.key);
98
85
  t !== void 0 && this._toggleValue(t);
99
86
  }
100
87
  _onPillsDropdownToggle(e) {
@@ -108,20 +95,12 @@ class o extends R {
108
95
  this.debouncer.next(t);
109
96
  }
110
97
  _filterItems(e) {
111
- const t = this.adapter.templateData, r = !!this.widget.on?.filter;
112
- if (this.adapter.filterChanged(e), e && !r) {
113
- this._isFiltering = !0, this._isListVisible = !0;
114
- const i = t.searchFields ?? [t.labelField, t.valueField].filter(
115
- (s) => !!s
116
- ), l = i.length > 0, c = (t.items || []).filter((s) => {
117
- if (s === null || typeof s != "object")
118
- return s != null && s.toString().toLowerCase().includes(e.toLowerCase());
119
- const d = Object.keys(s), p = (g, _) => g || s[_].toString().toLowerCase().includes(e.toLowerCase());
120
- return l ? d.filter((g) => i.includes(g)).reduce(p, !1) : d.reduce(p, !1);
121
- });
122
- this._filteredItems = [...c];
123
- } else
124
- this._isFiltering = !1, this._filteredItems = [...t.items];
98
+ const t = this.adapter.templateData, i = !!this.widget.on?.filter;
99
+ this.adapter.filterChanged(e), e && !i ? (this._isFiltering = !0, this._isListVisible = !0, this._filteredItems = I(
100
+ t.items || [],
101
+ e,
102
+ t
103
+ )) : (this._isFiltering = !1, this._filteredItems = [...t.items]);
125
104
  }
126
105
  _onWidgetKeyDown(e) {
127
106
  e.key !== "Escape" || !this._isListVisible || (e.preventDefault(), e.stopPropagation(), this._isListVisible = !1, this._isFiltering = !1, this._ignoreNextFocus = !0, this._triggerRef?.focusInput(), setTimeout(() => {
@@ -130,8 +109,8 @@ class o extends R {
130
109
  }
131
110
  async _onFocusIn(e) {
132
111
  if (this._ignoreNextFocus) return;
133
- const t = this._triggerRef?.input, r = this._listRef && e.target === this._listRef;
134
- e.target !== t && !r || await this._openPanel();
112
+ const t = this._triggerRef?.input, i = this._listRef && e.target === this._listRef;
113
+ e.target !== t && !i || await this._openPanel();
135
114
  }
136
115
  _onPanelMouseDown(e) {
137
116
  const t = e.target;
@@ -142,11 +121,11 @@ class o extends R {
142
121
  t && this.contains(t) || (this.adapter.onBlur(), this._isListVisible = !1, this._isFiltering = !1);
143
122
  }
144
123
  render() {
145
- const e = this.adapter.templateData, t = e.touched && e.errors && e.errors.length > 0, r = this._listItems.slice(this._range.start, this._range.end), i = this._currentValues(), l = this._pillItems(i), a = this.adapter.getItemRenderer(
124
+ const e = this.adapter.templateData, t = e.touched && e.errors && e.errors.length > 0, i = this._currentValues(), s = this._pillItems(i), a = this.adapter.getItemRenderer(
146
125
  e.itemRenderer,
147
- A
148
- ), c = !!this.widget.on?.filter;
149
- return m`
126
+ C
127
+ ), d = !!this.widget.on?.filter;
128
+ return u`
150
129
  <gui-label
151
130
  .targetElement=${[this._listRef, this._triggerRef?.input]}
152
131
  .uid=${this.widget.uid}
@@ -161,7 +140,7 @@ class o extends R {
161
140
  <div class="gui-widget" @keydown=${this._onWidgetKeyDown} @focusout=${this._onFocusOut}>
162
141
  <gui-multi-select-trigger
163
142
  .uid=${this.widget.uid}
164
- .pills=${l}
143
+ .pills=${s}
165
144
  .errors=${e.errors}
166
145
  .touched=${!!e.touched}
167
146
  ?required=${e.validator?.required}
@@ -176,12 +155,12 @@ class o extends R {
176
155
  .panelId=${`${this.widget.uid}-list`}
177
156
  .removeAriaLabel=${e.removeAriaLabel}
178
157
  .removeIcon=${e.removeIcon}
179
- .compactAriaLabel=${`${l.length} selected`}
158
+ .compactAriaLabel=${`${s.length} selected`}
180
159
  @keydown=${this._onKeyDown}
181
160
  @input=${this._onInput}
182
161
  @focusin=${this._onFocusIn}
183
- @pillremove=${this._onPillRemove}
184
- @dropdowntoggle=${this._onPillsDropdownToggle}
162
+ @gui-pill-remove=${this._onPillRemove}
163
+ @gui-dropdown-toggle=${this._onPillsDropdownToggle}
185
164
  ></gui-multi-select-trigger>
186
165
  <button
187
166
  type="button"
@@ -194,17 +173,7 @@ class o extends R {
194
173
  @mousedown=${this._onToggleMouseDown}
195
174
  @click=${this._onToggleClick}
196
175
  >
197
- <svg
198
- xmlns="http://www.w3.org/2000/svg"
199
- width="16"
200
- height="16"
201
- viewBox="0 0 256 256"
202
- aria-hidden="true"
203
- >
204
- <path
205
- d="M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z"
206
- ></path>
207
- </svg>
176
+ <span class="gui-caret" aria-hidden="true"></span>
208
177
  </button>
209
178
 
210
179
  <div
@@ -215,98 +184,93 @@ class o extends R {
215
184
  <gui-multi-list
216
185
  id=${`${this.widget.uid}-list`}
217
186
  .uid=${this.widget.uid}
218
- .values=${i}
187
+ .values=${P(i)}
219
188
  .valueField=${e.valueField}
220
- .items=${this._isFiltering && !c ? this._filteredItems : e.items}
189
+ .items=${this._isFiltering && !d ? this._filteredItems : e.items}
221
190
  .itemHeight=${e.itemHeight}
222
191
  .height=${e.height}
223
192
  ?required=${e.validator?.required}
224
- ?touched=${e.touched}
193
+ .touched=${e.touched}
225
194
  ?disabled=${e.disabled}
226
195
  ?readonly=${e.readonly}
227
196
  ?hidden=${!this._isListVisible}
228
- @gui-range-change=${this._onRangeChange}
197
+ @gui-visible-items-change=${this._onVisibleItemsChange}
229
198
  @gui-update-items=${this._onUpdateItems}
230
- @gui-focus-change=${this._onFocusChange}
231
- @change=${this._onValueChange}
199
+ @gui-item-toggle=${this._onValueChange}
232
200
  >
233
- ${r.map((s, u) => {
234
- const d = this._range.start + u, p = i.includes(s.value), g = this._focusedIndex === d, _ = !!e.disabled || !!s.disabled, $ = e.labelField ?? "label", y = s.template !== null && typeof s.template == "object" && $ && !e.itemRenderer ? s.template[$] : s.template;
235
- return m`
201
+ ${this._visibleItems.map((r) => {
202
+ const c = e.labelField ?? "label", m = r.template !== null && typeof r.template == "object" && c && !e.itemRenderer ? r.template[c] : r.template;
203
+ return u`
236
204
  <div
237
205
  role="option"
238
206
  tabindex="-1"
239
207
  class="gui-list__item-wrapper"
240
- id="${this.widget.uid}-item-${d}"
208
+ id=${r.id}
241
209
  style=${V({ height: `${e.itemHeight || 40}px` })}
242
- aria-selected=${p ? "true" : "false"}
243
- aria-disabled=${_ ? "true" : "false"}
244
- @click=${() => this._onClickItem(s, d)}
210
+ aria-selected=${r.selected ? "true" : "false"}
211
+ aria-disabled=${r.disabled ? "true" : "false"}
245
212
  >
246
213
  ${a({
247
- template: y,
248
- value: s.value,
249
- index: d,
250
- selected: p,
251
- disabled: _,
252
- focused: g
214
+ template: m,
215
+ value: r.value,
216
+ index: r.index,
217
+ selected: r.selected,
218
+ disabled: r.disabled,
219
+ focused: r.focused
253
220
  })}
254
221
  </div>
255
222
  `;
256
223
  })}
257
224
  </gui-multi-list>
258
- ${t ? m`<gui-errors
225
+ ${t ? u`<gui-errors
259
226
  panel
260
227
  .uid=${this.widget.uid}
261
228
  .errors=${e.errors}
262
229
  .touched=${e.touched}
263
- ></gui-errors>` : w}
230
+ ></gui-errors>` : g}
264
231
  </div>
265
232
  </div>
266
233
 
267
- ${t ? m`<gui-errors
234
+ ${t ? u`<gui-errors
268
235
  .uid=${this.widget.uid}
269
236
  .errors=${e.errors}
270
237
  .touched=${e.touched}
271
- ></gui-errors>` : w}
238
+ ></gui-errors>` : g}
272
239
  `;
273
240
  }
274
241
  }
275
- n([
276
- x({ context: v }),
277
- C({ attribute: !1 })
278
- ], o.prototype, "formContext");
279
- n([
280
- L({ context: D })
281
- ], o.prototype, "adapter");
282
- n([
283
- h()
284
- ], o.prototype, "_range");
285
- n([
286
- h()
287
- ], o.prototype, "_filteredItems");
288
- n([
289
- h()
290
- ], o.prototype, "_listItems");
291
- n([
292
- h()
293
- ], o.prototype, "_focusedIndex");
294
- n([
295
- h()
296
- ], o.prototype, "_isFiltering");
297
- n([
298
- h()
299
- ], o.prototype, "_isListVisible");
300
- n([
301
- b("gui-multi-select-trigger")
302
- ], o.prototype, "_triggerRef");
303
- n([
304
- b("gui-multi-list")
305
- ], o.prototype, "_listRef");
306
- n([
307
- b(".gui-picker__panel")
308
- ], o.prototype, "_panelRef");
309
- P("gui-multi-dropdown-input", o);
242
+ o([
243
+ v({ context: f }),
244
+ L({ attribute: !1 })
245
+ ], l.prototype, "formContext");
246
+ o([
247
+ y({ context: b })
248
+ ], l.prototype, "adapter");
249
+ o([
250
+ n()
251
+ ], l.prototype, "_visibleItems");
252
+ o([
253
+ n()
254
+ ], l.prototype, "_filteredItems");
255
+ o([
256
+ n()
257
+ ], l.prototype, "_listItems");
258
+ o([
259
+ n()
260
+ ], l.prototype, "_isFiltering");
261
+ o([
262
+ n()
263
+ ], l.prototype, "_isListVisible");
264
+ o([
265
+ p("gui-multi-select-trigger")
266
+ ], l.prototype, "_triggerRef");
267
+ o([
268
+ p("gui-multi-list")
269
+ ], l.prototype, "_listRef");
270
+ o([
271
+ p(".gui-picker__panel")
272
+ ], l.prototype, "_panelRef");
273
+ F("gui-multi-dropdown-input", l);
310
274
  export {
311
- o as MultiDropdownElement
275
+ l as MultiDropdownElement
312
276
  };
@@ -1,27 +1,22 @@
1
- import { InputWidgetAdapter as n, formContext as d, inputContext as p } from "@golemui/lit";
1
+ import { InputWidgetAdapter as l, formContext as d, inputContext as u } from "@golemui/lit";
2
2
  import "@golemui/gui-components/multi-file-upload";
3
- import { consume as u, provide as c } from "@lit/context";
4
- import { LitElement as m, html as h } from "lit";
5
- import { property as g } from "lit/decorators.js";
3
+ import { consume as p, provide as c } from "@lit/context";
4
+ import { LitElement as m, html as g } from "lit";
5
+ import { property as h } from "lit/decorators.js";
6
6
  import { unsubscribeAll as $, safeDefine as b } from "@golemui/lit/internals";
7
7
  import "rxjs";
8
- var f = Object.defineProperty, l = (r, e, t, v) => {
8
+ var f = Object.defineProperty, n = (r, e, t, v) => {
9
9
  for (var a = void 0, i = r.length - 1, o; i >= 0; i--)
10
10
  (o = r[i]) && (a = o(e, t, a) || a);
11
11
  return a && f(e, t, a), a;
12
12
  };
13
13
  class s extends m {
14
14
  constructor() {
15
- super(...arguments), this.adapter = new n(), this.subscriptions = [];
15
+ super(...arguments), this.adapter = new l(), this.subscriptions = [];
16
16
  }
17
17
  createRenderRoot() {
18
18
  return this;
19
19
  }
20
- updated(e) {
21
- super.updated(e);
22
- const t = this.adapter.templateData.size;
23
- t ? this.style.flex = String(t) : this.style.removeProperty("flex");
24
- }
25
20
  connectedCallback() {
26
21
  super.connectedCallback(), this.classList.add("gui-multi-file-upload", "gui-field"), this.adapter.context = this.formContext, this.adapter.init(this.widget), this.subscriptions.push(
27
22
  this.adapter.templateDataChanged$.subscribe(() => this.requestUpdate())
@@ -30,14 +25,14 @@ class s extends m {
30
25
  render() {
31
26
  super.render();
32
27
  const e = this.adapter.templateData;
33
- return h`
28
+ return g`
34
29
  <gui-multi-file-upload
35
30
  .uid=${this.widget.uid}
36
31
  .path=${this.widget.path}
37
32
  .label=${e.label}
38
33
  .hint=${e.hint}
39
34
  .errors=${e.errors}
40
- ?touched=${e.touched}
35
+ .touched=${e.touched}
41
36
  ?required=${e.validator?.required}
42
37
  ?disabled=${e.disabled}
43
38
  ?readonly=${e.readonly}
@@ -59,9 +54,9 @@ class s extends m {
59
54
  .uploadedMessage=${e.uploadedMessage}
60
55
  .removedMessage=${e.removedMessage}
61
56
  .failedMessage=${e.failedMessage}
62
- @change=${this.valueChanged}
63
- @blur=${() => this.adapter.onBlur()}
64
- @inputError=${this.onInputError}
57
+ @gui-input=${this.valueChanged}
58
+ @gui-blur=${() => this.adapter.onBlur()}
59
+ @gui-input-error=${this.onInputError}
65
60
  ></gui-multi-file-upload>
66
61
  `;
67
62
  }
@@ -77,12 +72,12 @@ class s extends m {
77
72
  super.disconnectedCallback(), this.adapter.destroy(), $(this.subscriptions);
78
73
  }
79
74
  }
80
- l([
81
- u({ context: d }),
82
- g({ attribute: !1 })
75
+ n([
76
+ p({ context: d }),
77
+ h({ attribute: !1 })
83
78
  ], s.prototype, "formContext");
84
- l([
85
- c({ context: p })
79
+ n([
80
+ c({ context: u })
86
81
  ], s.prototype, "adapter");
87
82
  b("gui-multi-file-upload-input", s);
88
83
  export {