bitboss-ui 2.1.112 → 2.1.113

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 (190) hide show
  1. package/dist/components/BaseCheckbox/types.d.ts +8 -0
  2. package/dist/components/BaseCheckboxGroup/BaseCheckboxGroup.vue.d.ts +1 -222
  3. package/dist/components/BaseCheckboxGroup/types.d.ts +275 -0
  4. package/dist/components/BaseColorInput/BaseColorInput.vue.d.ts +5 -151
  5. package/dist/components/BaseColorInput/ColorPalette.vue.d.ts +1 -17
  6. package/dist/components/BaseColorInput/types.d.ts +233 -0
  7. package/dist/components/BaseSwitchGroup/BaseSwitchGroup.vue.d.ts +1 -1
  8. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +1 -1
  9. package/dist/components/BbColorInput/BbColorInput.vue.d.ts +1 -1
  10. package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +4 -4
  11. package/dist/index.d.ts +2 -2
  12. package/dist/index109.js +9 -9
  13. package/dist/index110.js +18 -18
  14. package/dist/index118.js +1 -1
  15. package/dist/index124.js +4 -4
  16. package/dist/index126.js +11 -11
  17. package/dist/index134.js +1 -1
  18. package/dist/index136.js +4 -4
  19. package/dist/index138.js +1 -1
  20. package/dist/index14.js +1 -1
  21. package/dist/index140.js +2 -2
  22. package/dist/index146.js +2 -2
  23. package/dist/index148.js +1 -1
  24. package/dist/index149.js +2 -2
  25. package/dist/index16.js +2 -2
  26. package/dist/index18.js +3 -3
  27. package/dist/index20.js +8 -8
  28. package/dist/index22.js +13 -13
  29. package/dist/index222.js +138 -2
  30. package/dist/index223.js +2 -138
  31. package/dist/index224.js +34 -5
  32. package/dist/index225.js +32 -7
  33. package/dist/index226.js +28 -33
  34. package/dist/index228.js +7 -0
  35. package/dist/index229.js +8 -2
  36. package/dist/index230.js +7 -2
  37. package/dist/index231.js +2 -3
  38. package/dist/index232.js +8 -3
  39. package/dist/index233.js +2 -2
  40. package/dist/index234.js +3 -20
  41. package/dist/index235.js +2 -188
  42. package/dist/index236.js +11 -3
  43. package/dist/index237.js +8 -5
  44. package/dist/index238.js +3 -5
  45. package/dist/index239.js +3 -5
  46. package/dist/index24.js +9 -9
  47. package/dist/index240.js +2 -5
  48. package/dist/index241.js +18 -5
  49. package/dist/index242.js +12 -5
  50. package/dist/index243.js +51 -3
  51. package/dist/index244.js +18 -8
  52. package/dist/index245.js +12 -135
  53. package/dist/index246.js +19 -0
  54. package/dist/index247.js +30 -3
  55. package/dist/index248.js +18 -6
  56. package/dist/index249.js +4 -16
  57. package/dist/index250.js +106 -2
  58. package/dist/index252.js +100 -13
  59. package/dist/index254.js +131 -19
  60. package/dist/index256.js +109 -0
  61. package/dist/index257.js +11 -28
  62. package/dist/index258.js +2 -17
  63. package/dist/index259.js +6 -50
  64. package/dist/index26.js +2 -2
  65. package/dist/index260.js +7 -18
  66. package/dist/index261.js +86 -3
  67. package/dist/index263.js +5 -18
  68. package/dist/index264.js +5 -67
  69. package/dist/index265.js +5 -2
  70. package/dist/index266.js +5 -9
  71. package/dist/index267.js +5 -21
  72. package/dist/index268.js +5 -4
  73. package/dist/index269.js +67 -25
  74. package/dist/index270.js +33 -2
  75. package/dist/index271.js +2 -18
  76. package/dist/index272.js +2 -12
  77. package/dist/index273.js +3 -106
  78. package/dist/index275.js +22 -99
  79. package/dist/index277.js +12 -106
  80. package/dist/index278.js +5 -11
  81. package/dist/index279.js +6 -5
  82. package/dist/index28.js +1 -1
  83. package/dist/index280.js +268 -6
  84. package/dist/index281.js +42 -258
  85. package/dist/index282.js +44 -44
  86. package/dist/index283.js +28 -48
  87. package/dist/index284.js +55 -27
  88. package/dist/index285.js +4 -60
  89. package/dist/index286.js +19 -6
  90. package/dist/index287.js +5 -9
  91. package/dist/index288.js +373 -23
  92. package/dist/index290.js +6 -10
  93. package/dist/index291.js +16 -3
  94. package/dist/index292.js +10 -34
  95. package/dist/index293.js +2 -32
  96. package/dist/index294.js +7 -371
  97. package/dist/index295.js +23 -0
  98. package/dist/index296.js +9 -3
  99. package/dist/index297.js +23 -53
  100. package/dist/index298.js +25 -5
  101. package/dist/index299.js +187 -8
  102. package/dist/index30.js +2 -2
  103. package/dist/index300.js +3 -2
  104. package/dist/index301.js +3 -7
  105. package/dist/index302.js +53 -7
  106. package/dist/index305.js +1 -1
  107. package/dist/index306.js +2 -7
  108. package/dist/index307.js +1 -1
  109. package/dist/index308.js +6 -718
  110. package/dist/index309.js +3 -366
  111. package/dist/index310.js +3 -57
  112. package/dist/index311.js +1 -1
  113. package/dist/index312.js +2 -280
  114. package/dist/index313.js +28 -2
  115. package/dist/index314.js +16 -124
  116. package/dist/index315.js +4 -2
  117. package/dist/index316.js +2 -15
  118. package/dist/index317.js +3 -2
  119. package/dist/index318.js +277 -13
  120. package/dist/index319.js +2 -2
  121. package/dist/index32.js +2 -2
  122. package/dist/index320.js +121 -12
  123. package/dist/index321.js +2 -2
  124. package/dist/index322.js +12 -16
  125. package/dist/index324.js +16 -2
  126. package/dist/index325.js +2 -28
  127. package/dist/index326.js +16 -17
  128. package/dist/index327.js +2 -3
  129. package/dist/index328.js +19 -4
  130. package/dist/index329.js +2 -27
  131. package/dist/index330.js +27 -2
  132. package/dist/index331.js +2 -2
  133. package/dist/index332.js +1 -1
  134. package/dist/index333.js +1 -1
  135. package/dist/index334.js +1 -1
  136. package/dist/index336.js +2 -3
  137. package/dist/index337.js +1 -1
  138. package/dist/index338.js +4 -2
  139. package/dist/index339.js +719 -4
  140. package/dist/index34.js +8 -8
  141. package/dist/index340.js +366 -2
  142. package/dist/index341.js +56 -5
  143. package/dist/index342.js +6 -5
  144. package/dist/index343.js +5 -3
  145. package/dist/index345.js +2 -2
  146. package/dist/index346.js +1 -1
  147. package/dist/index347.js +198 -65
  148. package/dist/index348.js +257 -65
  149. package/dist/index349.js +1 -1
  150. package/dist/index350.js +67 -7
  151. package/dist/index351.js +66 -18
  152. package/dist/index352.js +2 -9
  153. package/dist/index353.js +2 -15
  154. package/dist/index354.js +134 -5
  155. package/dist/index355.js +6 -6
  156. package/dist/index356.js +17 -198
  157. package/dist/index357.js +9 -259
  158. package/dist/index358.js +12 -131
  159. package/dist/index359.js +4 -21
  160. package/dist/index36.js +3 -3
  161. package/dist/index360.js +9 -0
  162. package/dist/index361.js +21 -1
  163. package/dist/index363.js +1 -1
  164. package/dist/index367.js +1 -1
  165. package/dist/index38.js +19 -19
  166. package/dist/index40.js +6 -6
  167. package/dist/index42.js +2 -2
  168. package/dist/index44.js +8 -8
  169. package/dist/index46.js +6 -6
  170. package/dist/index50.js +2 -2
  171. package/dist/index56.js +1 -1
  172. package/dist/index58.js +2 -2
  173. package/dist/index60.js +1 -1
  174. package/dist/index62.js +4 -4
  175. package/dist/index74.js +3 -3
  176. package/dist/index82.js +6 -6
  177. package/dist/index86.js +2 -2
  178. package/dist/index88.js +3 -3
  179. package/dist/index90.js +1 -1
  180. package/dist/index93.js +2 -2
  181. package/dist/index95.js +1 -1
  182. package/dist/index97.js +4 -4
  183. package/package.json +2 -2
  184. package/dist/index227.js +0 -30
  185. package/dist/index251.js +0 -15
  186. package/dist/index255.js +0 -88
  187. package/dist/index262.js +0 -14
  188. package/dist/index362.js +0 -4
  189. /package/dist/{index253.js → index274.js} +0 -0
  190. /package/dist/{index289.js → index276.js} +0 -0
package/dist/index347.js CHANGED
@@ -1,69 +1,202 @@
1
- const e = {
2
- common: {
3
- closeLabel: "Chiudi",
4
- loadingText: "Caricamento...",
5
- noDataText: "Nessun elemento da visualizzare",
6
- clearLabel: "Reset valore selezionato"
1
+ import { defineComponent as U, useTemplateRef as L, computed as n, watch as f, ref as W, createElementBlock as s, openBlock as u, withModifiers as X, normalizeStyle as x, normalizeClass as z, createElementVNode as c, renderSlot as r, createTextVNode as I, toDisplayString as h, unref as E, Fragment as Z, renderList as w } from "vue";
2
+ import { isNil as g } from "./index231.js";
3
+ import { isNotNil as ee } from "./index150.js";
4
+ import { useVirtualizer as te } from "./index366.js";
5
+ import { hash as N } from "./index238.js";
6
+ import { useLocale as oe } from "./index233.js";
7
+ import { useListboxFocus as ae } from "./index367.js";
8
+ import { indexBy as ie } from "./index295.js";
9
+ const le = { class: "bb-listbox__outer-container scrollbar-border" }, ne = {
10
+ ref: "inner",
11
+ class: "bb-listbox__inner-container",
12
+ tabindex: "-1"
13
+ }, se = {
14
+ key: 0,
15
+ class: "bb-listbox__loading"
16
+ }, ue = {
17
+ key: 1,
18
+ class: "bb-listbox__no-data"
19
+ }, de = ["aria-activedescendant", "aria-multiselectable"], ce = ["aria-selected", "data-index", "id"], re = { class: "autocomplete-option__label" }, _e = /* @__PURE__ */ U({
20
+ __name: "FlatListBox",
21
+ props: {
22
+ compact: { type: Boolean },
23
+ options: {},
24
+ open: { type: Boolean },
25
+ loading: { type: Boolean },
26
+ multiple: { type: Boolean },
27
+ transitionDuration: { default: 250 },
28
+ loadingText: {},
29
+ noDataText: {},
30
+ optionHeight: {}
7
31
  },
8
- colorInput: {
9
- dialogLabel: "Selettore colore",
10
- openPicker: "Apri il selettore colore",
11
- openPickerSelected: "Apri il selettore colore, colore corrente: {0}",
12
- paletteLabel: "Seleziona un colore dalla tavolozza",
13
- mainCanvasDesc: "Usa le frecce per selezionare un colore",
14
- mainCanvasSelectedColor: "Colore selezionato: {0}",
15
- hueCanvasDesc: "Usa le frecce per selezionare una tonalità",
16
- hueCanvasSelectedHue: "Tonalità selezionata: {0}",
17
- alphaSliderDesc: "Usa le frecce per regolare l'opacità",
18
- eyeDropper: "Seleziona colore dallo schermo"
19
- },
20
- datePicker: {
21
- monthLabel: "Seleziona un mese",
22
- yearLabel: "Seleziona un anno",
23
- previousMonthLabel: "Vai indietro di un mese",
24
- nextMonthLabel: "Vai avanti di un mese"
25
- },
26
- baseDatePickerInput: {
27
- dateFormat: "Formato della data",
28
- dateFormatSingle: "GG/MM/AAAA",
29
- dateFormatRange: "GG/MM/AAAA - GG/MM/AAAA",
30
- emptyRange: "Seleziona un range",
31
- changeSelectionRange: "Cambia selezione, da {0} a {1}",
32
- changeSelection: "Cambia selezione, {0}",
33
- emptySelection: "Seleziona una data"
34
- },
35
- dialog: {
36
- closeLabel: "Chiudi modale"
37
- },
38
- dropdownButton: {
39
- open: "Apri menu",
40
- close: "Chiudi menu"
41
- },
42
- rating: {
43
- singleStar: "{0} su {1}",
44
- multipleStars: "{0} su {1}"
45
- },
46
- select: {
47
- multipleMaxReached: "{0} elementi selezionati"
48
- },
49
- chip: {
50
- clearLabel: "Elimina"
51
- },
52
- breadcrumbs: {
53
- label: "Breadcrumb",
54
- openHiddenLabelCount: "Mostra {0} breadcrumb nascoste"
55
- },
56
- pagination: {
57
- previous: "Precedente",
58
- next: "Successivo"
59
- },
60
- table: {
61
- noDataText: "Non ci sono elementi da visualizzare",
62
- selectAllLabel: "Seleziona tutti gli elementi di questa pagina",
63
- selectText: "Seleziona un elemento",
64
- select: "Seleziona"
32
+ emits: ["option:selected", "option:unselected", "focused:change"],
33
+ setup(F, { expose: M, emit: R }) {
34
+ const i = F, v = R, { t: _ } = oe(), d = L("inner"), V = L("listbox"), y = n(() => i.optionHeight ? i.optionHeight : i.compact ? 32 : 40), p = te({
35
+ get count() {
36
+ return i.options.length;
37
+ },
38
+ getScrollElement: () => d.value ?? null,
39
+ estimateSize: () => y.value,
40
+ overscan: 5
41
+ }), C = n(() => p.value.getVirtualItems()), O = n(() => p.value.getTotalSize()), H = n(
42
+ () => i.options.map((e, a) => ({
43
+ index: a,
44
+ text: e.text,
45
+ value: e.value,
46
+ valueHash: e.valueHash,
47
+ item: e.item,
48
+ selected: !!e.selected,
49
+ disabled: !!e.disabled,
50
+ focused: a === l.value
51
+ }))
52
+ ), o = n(() => ie(H.value, "index")), k = (e) => `listbox-option-${e}`, m = n(() => {
53
+ if (g(l.value)) return;
54
+ const e = o.value[l.value];
55
+ if (e)
56
+ return k(e.valueHash);
57
+ }), b = n(() => H.value.length > 0), {
58
+ focusedIndex: l,
59
+ focusNext: A,
60
+ focusPrevious: P,
61
+ focusFirst: Y,
62
+ focusLast: j,
63
+ focusFirstSelected: q,
64
+ focusLastSelected: G,
65
+ focusByHash: J,
66
+ blur: B,
67
+ getHighlighted: K
68
+ } = ae(() => i.options, { disabled: () => !i.open });
69
+ f(l, (e) => {
70
+ d.value && ee(e) && p.value.scrollToIndex(e, {
71
+ align: "center",
72
+ behavior: "smooth"
73
+ }), v("focused:change", m.value);
74
+ });
75
+ const T = () => {
76
+ if (g(l.value) || !i.open) return;
77
+ const e = o.value[l.value];
78
+ e.disabled || (e.selected ? v("option:unselected", e) : v("option:selected", e));
79
+ }, $ = W(0), S = () => {
80
+ d.value && ($.value = d.value.scrollHeight);
81
+ }, Q = (e) => {
82
+ if (e.preventDefault(), d.value && e.target instanceof HTMLElement && V.value) {
83
+ let a = e.target, t = a.dataset.index;
84
+ for (; g(t) && a.parentElement; )
85
+ a = a.parentElement, t = a.dataset.index;
86
+ if (t) {
87
+ const D = o.value[+t];
88
+ D && !D.disabled && (l.value = +t, T());
89
+ }
90
+ }
91
+ };
92
+ return f(
93
+ () => i.open,
94
+ () => {
95
+ S();
96
+ },
97
+ { flush: "post" }
98
+ ), f(
99
+ () => i.options,
100
+ (e, a) => {
101
+ N(e.map((t) => t.valueHash)) !== N(a.map((t) => t.valueHash)) && (p.value.calculateRange(), S(), B());
102
+ },
103
+ { flush: "post" }
104
+ ), M({
105
+ focusNext: A,
106
+ focusPrevious: P,
107
+ focusFirst: Y,
108
+ focusFirstSelected: q,
109
+ focusLast: j,
110
+ focusLastSelected: G,
111
+ blur: B,
112
+ confirmOption: T,
113
+ focusByHash: J,
114
+ getHighlighted: K,
115
+ getActiveDescendantId: () => m.value
116
+ }), (e, a) => (u(), s("span", {
117
+ class: z(["bb-listbox", {
118
+ "bb-listbox--compact": e.compact,
119
+ "bb-listbox--loading": e.loading,
120
+ "bb-listbox--multiple": e.multiple,
121
+ "bb-listbox--no-data": !b.value,
122
+ "bb-listbox--open": e.open
123
+ }]),
124
+ style: x({
125
+ "--transition-duration": `${e.transitionDuration}ms`,
126
+ "--overlay-min-height": `${$.value}px`,
127
+ "--option-height": `${y.value}px`
128
+ }),
129
+ onClick: X(Q, ["stop"])
130
+ }, [
131
+ c("span", le, [
132
+ c("span", ne, [
133
+ r(e.$slots, "options:prepend"),
134
+ e.loading && !b.value ? (u(), s("span", se, [
135
+ r(e.$slots, "loading", {}, () => [
136
+ I(h(e.loadingText || E(_)("common.loadingText").value), 1)
137
+ ])
138
+ ])) : b.value ? (u(), s("span", {
139
+ key: 2,
140
+ role: "listbox",
141
+ ref: "listbox",
142
+ style: x({
143
+ height: `${O.value}px`
144
+ }),
145
+ "aria-activedescendant": m.value,
146
+ "aria-multiselectable": e.multiple ? !0 : void 0,
147
+ tabindex: "-1"
148
+ }, [
149
+ (u(!0), s(Z, null, w(C.value, (t) => (u(), s("span", {
150
+ key: o.value[t.index].valueHash,
151
+ "aria-selected": o.value[t.index].focused ? !0 : void 0,
152
+ class: z({
153
+ "bb-listbox__option autocomplete-option": !0,
154
+ "autocomplete-option--focused": o.value[t.index].focused,
155
+ "autocomplete-option--selected": o.value[t.index].selected,
156
+ "autocomplete-option--disabled": o.value[t.index].disabled
157
+ }),
158
+ "data-index": t.index,
159
+ id: k(o.value[t.index].valueHash),
160
+ role: "option",
161
+ style: x({
162
+ transform: `translateY(${t.start}px)`
163
+ })
164
+ }, [
165
+ r(e.$slots, "option", {
166
+ disabled: o.value[t.index].disabled,
167
+ focused: o.value[t.index].focused,
168
+ index: t.index,
169
+ item: o.value[t.index].item,
170
+ selected: o.value[t.index].selected,
171
+ text: o.value[t.index].text,
172
+ value: o.value[t.index].value
173
+ }, () => [
174
+ a[0] || (a[0] = c("svg", {
175
+ class: "autocomplete-option__checkbox",
176
+ role: "presentation",
177
+ viewBox: "276.411 158.834 114.971 114.97"
178
+ }, [
179
+ c("path", {
180
+ d: "M 297.574 224.786 L 318.309 243.134 L 371.568 189.232",
181
+ fill: "none",
182
+ "stroke-linecap": "round",
183
+ "stroke-width": "14px"
184
+ })
185
+ ], -1)),
186
+ c("span", re, h(o.value[t.index].text), 1)
187
+ ])
188
+ ], 14, ce))), 128))
189
+ ], 12, de)) : (u(), s("span", ue, [
190
+ r(e.$slots, "no-data", {}, () => [
191
+ I(h(e.noDataText || E(_)("common.noDataText").value), 1)
192
+ ])
193
+ ])),
194
+ r(e.$slots, "options:append")
195
+ ], 512)
196
+ ])
197
+ ], 6));
65
198
  }
66
- };
199
+ });
67
200
  export {
68
- e as default
201
+ _e as default
69
202
  };
package/dist/index348.js CHANGED
@@ -1,69 +1,261 @@
1
- const e = {
2
- common: {
3
- closeLabel: "Close",
4
- loadingText: "Loading...",
5
- noDataText: "No data to display",
6
- clearLabel: "Reset selected value"
1
+ import { defineComponent as pe, useTemplateRef as G, computed as i, watch as E, ref as ve, createElementBlock as r, openBlock as c, withModifiers as he, normalizeStyle as V, normalizeClass as J, createElementVNode as v, renderSlot as b, createTextVNode as P, toDisplayString as x, unref as g, Fragment as Y, renderList as K } from "vue";
2
+ import { isNil as f } from "./index231.js";
3
+ import { useVirtualizer as be } from "./index366.js";
4
+ import { useLocale as me } from "./index233.js";
5
+ import { useListboxFocus as xe } from "./index367.js";
6
+ import { indexBy as A } from "./index295.js";
7
+ const ge = { class: "bb-listbox__outer-container scrollbar-border" }, fe = {
8
+ ref: "inner",
9
+ class: "bb-listbox__inner-container",
10
+ tabindex: "-1"
11
+ }, He = {
12
+ key: 0,
13
+ class: "bb-listbox__loading"
14
+ }, _e = {
15
+ key: 1,
16
+ class: "bb-listbox__no-data"
17
+ }, ye = ["aria-activedescendant", "aria-multiselectable"], Ie = ["aria-labelledby", "aria-disabled"], $e = ["id"], ke = { class: "bb-listbox__group-header-label" }, Be = ["aria-selected", "aria-setsize", "aria-posinset", "id", "data-index"], De = { class: "autocomplete-option__label" }, Ee = /* @__PURE__ */ pe({
18
+ __name: "GroupedListBox",
19
+ props: {
20
+ compact: { type: Boolean },
21
+ groups: {},
22
+ headerHeight: {},
23
+ loading: { type: Boolean },
24
+ loadingText: {},
25
+ multiple: { type: Boolean },
26
+ noDataText: {},
27
+ open: { type: Boolean },
28
+ optionHeight: {},
29
+ transitionDuration: { default: 250 }
7
30
  },
8
- colorInput: {
9
- dialogLabel: "Color picker",
10
- openPicker: "Open color picker",
11
- openPickerSelected: "Open color picker, current color: {0}",
12
- paletteLabel: "Select a color from the palette",
13
- mainCanvasDesc: "Use the arrows to select a color",
14
- mainCanvasSelectedColor: "Selected color: {0}",
15
- hueCanvasDesc: "Use the arrows to select a hue",
16
- hueCanvasSelectedHue: "Selected hue: {0}",
17
- alphaSliderDesc: "Use the arrows to adjust opacity",
18
- eyeDropper: "Pick color from screen"
19
- },
20
- datePicker: {
21
- monthLabel: "Select a month",
22
- yearLabel: "Select a year",
23
- previousMonthLabel: "Go to previous month",
24
- nextMonthLabel: "Go to next month"
25
- },
26
- baseDatePickerInput: {
27
- dateFormat: "Date format",
28
- dateFormatSingle: "DD/MM/YYYY",
29
- dateFormatRange: "DD/MM/YYYY - DD/MM/YYYY",
30
- emptyRange: "Select a range",
31
- changeSelectionRange: "Change selection, from {0} to {1}",
32
- changeSelection: "Change selection, {0}",
33
- emptySelection: "Select a date"
34
- },
35
- dialog: {
36
- closeLabel: "Close dialog"
37
- },
38
- dropdownButton: {
39
- open: "Open menu",
40
- close: "Close menu"
41
- },
42
- rating: {
43
- singleStar: "{0} out of {1}",
44
- multipleStars: "{0} out of {1}"
45
- },
46
- select: {
47
- multipleMaxReached: "{0} items selected"
48
- },
49
- chip: {
50
- clearLabel: "Remove"
51
- },
52
- breadcrumbs: {
53
- label: "Breadcrumbs",
54
- openHiddenLabelCount: "Show {0} hidden breadcrumbs"
55
- },
56
- pagination: {
57
- previous: "Previous",
58
- next: "Next"
59
- },
60
- table: {
61
- noDataText: "No data to display",
62
- selectAllLabel: "Select all items on this page",
63
- selectText: "Select an item",
64
- select: "Select"
31
+ emits: ["option:selected", "option:unselected", "focused:change"],
32
+ setup(Q, { expose: U, emit: W }) {
33
+ const s = Q, H = W, { t: F } = me(), h = G("inner"), X = G("listbox"), _ = i(() => s.optionHeight ? s.optionHeight : s.compact ? 32 : 40), y = i(() => s.headerHeight ? s.headerHeight : s.compact ? 24 : 32), Z = i(() => {
34
+ let e = 0;
35
+ return s.groups.map((a, t) => {
36
+ const l = a.id, p = e, d = a.options.length, D = y.value + d * _.value, M = `group-header-${a.id}`, S = typeof a.data == "string" ? a.data : JSON.stringify(a.data), T = a.options.every((O) => O.disabled), z = a.data, L = a.options;
37
+ return e += d, {
38
+ offset: p,
39
+ length: d,
40
+ height: D,
41
+ id: l,
42
+ headerId: M,
43
+ label: S,
44
+ index: t,
45
+ allOptionsAreDisabled: T,
46
+ data: z,
47
+ options: L
48
+ };
49
+ });
50
+ }), n = i(
51
+ () => A(Z.value, "index")
52
+ ), m = i(() => s.groups.flatMap(
53
+ (e, a) => e.options.map((t, l) => {
54
+ const p = t.valueHash, d = n.value[a].offset + l, D = e.id, M = !!t.selected, S = !!t.disabled, T = t.item, z = t.text, L = t.value, O = d === u.value;
55
+ return {
56
+ id: p,
57
+ globalIndex: d,
58
+ groupIndex: a,
59
+ groupId: D,
60
+ indexInGroup: l,
61
+ selected: M,
62
+ disabled: S,
63
+ item: T,
64
+ text: z,
65
+ value: L,
66
+ valueHash: t.valueHash,
67
+ focused: O
68
+ };
69
+ })
70
+ )), o = i(() => A(m.value, "id")), I = i(
71
+ () => A(m.value, "globalIndex")
72
+ ), N = (e) => `listbox-option-${e}`, $ = i(() => {
73
+ if (f(u.value)) return;
74
+ const e = I.value[u.value];
75
+ if (e)
76
+ return N(e.valueHash);
77
+ }), k = i(() => m.value.length > 0), w = (e) => y.value + s.groups[e].options.length * _.value, B = be({
78
+ get count() {
79
+ return s.groups.length;
80
+ },
81
+ getScrollElement: () => h.value ?? null,
82
+ estimateSize: (e) => w(e),
83
+ overscan: 2
84
+ }), ee = i(() => B.value.getVirtualItems()), te = i(() => B.value.getTotalSize()), {
85
+ focusedIndex: u,
86
+ focusNext: ae,
87
+ focusPrevious: le,
88
+ focusFirst: se,
89
+ focusLast: oe,
90
+ focusFirstSelected: ne,
91
+ focusLastSelected: ie,
92
+ focusByHash: ue,
93
+ blur: C,
94
+ getHighlighted: de
95
+ } = xe(
96
+ i(() => m.value),
97
+ { disabled: () => !s.open }
98
+ ), re = () => {
99
+ if (!h.value || f(u.value)) return;
100
+ const e = h.value.querySelector(
101
+ `[data-index="${u.value}"]`
102
+ );
103
+ e && e.scrollIntoView({ block: "nearest", behavior: "smooth" });
104
+ };
105
+ E(u, () => {
106
+ re(), H("focused:change", $.value);
107
+ });
108
+ const R = () => {
109
+ if (f(u.value) || !s.open) return;
110
+ const e = I.value[u.value];
111
+ if (!e || e.disabled) return;
112
+ const a = {
113
+ text: e.text,
114
+ value: e.value,
115
+ item: e.item,
116
+ valueHash: e.valueHash,
117
+ selected: e.selected,
118
+ disabled: e.disabled
119
+ };
120
+ e.selected ? H("option:unselected", a) : H("option:selected", a);
121
+ }, j = ve(0), q = () => {
122
+ h.value && (j.value = h.value.scrollHeight);
123
+ }, ce = (e) => {
124
+ if (e.preventDefault(), h.value && e.target instanceof HTMLElement && X.value) {
125
+ let a = e.target, t = a.dataset.index;
126
+ for (; f(t) && a.parentElement; )
127
+ a = a.parentElement, t = a.dataset.index;
128
+ if (t) {
129
+ const l = I.value[+t];
130
+ l && !l.disabled && (u.value = +t, R());
131
+ }
132
+ }
133
+ };
134
+ return E(() => s.open, q, { flush: "post" }), E(
135
+ () => s.groups,
136
+ (e, a) => {
137
+ const t = e.flatMap((p) => p.options.map((d) => d.valueHash)).join(","), l = a.flatMap((p) => p.options.map((d) => d.valueHash)).join(",");
138
+ t !== l && (B.value.measure(), q(), C());
139
+ },
140
+ { flush: "post" }
141
+ ), U({
142
+ focusNext: ae,
143
+ focusPrevious: le,
144
+ focusFirst: se,
145
+ focusFirstSelected: ne,
146
+ focusLast: oe,
147
+ focusLastSelected: ie,
148
+ blur: C,
149
+ confirmOption: R,
150
+ focusByHash: ue,
151
+ getHighlighted: de,
152
+ getActiveDescendantId: () => $.value
153
+ }), (e, a) => (c(), r("span", {
154
+ class: J(["bb-listbox bb-listbox--grouped", {
155
+ "bb-listbox--compact": e.compact,
156
+ "bb-listbox--loading": e.loading,
157
+ "bb-listbox--multiple": e.multiple,
158
+ "bb-listbox--no-data": !k.value,
159
+ "bb-listbox--open": e.open
160
+ }]),
161
+ style: V({
162
+ "--transition-duration": `${e.transitionDuration}ms`,
163
+ "--overlay-min-height": `${j.value}px`,
164
+ "--option-height": `${_.value}px`,
165
+ "--group-header-height": `${y.value}px`
166
+ }),
167
+ onClick: he(ce, ["stop"])
168
+ }, [
169
+ v("span", ge, [
170
+ v("span", fe, [
171
+ b(e.$slots, "options:prepend"),
172
+ e.loading && !k.value ? (c(), r("span", He, [
173
+ b(e.$slots, "loading", {}, () => [
174
+ P(x(e.loadingText || g(F)("common.loadingText").value), 1)
175
+ ])
176
+ ])) : k.value ? (c(), r("span", {
177
+ key: 2,
178
+ role: "listbox",
179
+ ref: "listbox",
180
+ style: V({ height: `${te.value}px` }),
181
+ "aria-activedescendant": $.value,
182
+ "aria-multiselectable": e.multiple ? !0 : void 0,
183
+ tabindex: "-1"
184
+ }, [
185
+ (c(!0), r(Y, null, K(ee.value, (t) => (c(), r("span", {
186
+ key: n.value[t.index].id,
187
+ style: V({ transform: `translateY(${t.start}px)` }),
188
+ role: "group",
189
+ "aria-labelledby": n.value[t.index].headerId,
190
+ "aria-disabled": n.value[t.index].allOptionsAreDisabled,
191
+ class: "bb-listbox__group"
192
+ }, [
193
+ v("span", {
194
+ class: "bb-listbox__group-header",
195
+ role: "presentation",
196
+ id: n.value[t.index].headerId
197
+ }, [
198
+ b(e.$slots, "group", {
199
+ text: n.value[t.index].label,
200
+ item: n.value[t.index].data,
201
+ index: t.index,
202
+ length: n.value[t.index].length,
203
+ disabled: n.value[t.index].allOptionsAreDisabled
204
+ }, () => [
205
+ v("span", ke, x(n.value[t.index].label), 1)
206
+ ])
207
+ ], 8, $e),
208
+ (c(!0), r(Y, null, K(n.value[t.index].options, (l) => (c(), r("span", {
209
+ key: l.valueHash,
210
+ "aria-selected": o.value[l.valueHash].selected ? !0 : void 0,
211
+ "aria-setsize": n.value[t.index].length,
212
+ "aria-posinset": o.value[l.valueHash].indexInGroup + 1,
213
+ id: N(l.valueHash),
214
+ class: J({
215
+ "bb-listbox__option autocomplete-option": !0,
216
+ "autocomplete-option--focused": g(u) === o.value[l.valueHash].globalIndex,
217
+ "autocomplete-option--selected": o.value[l.valueHash].selected,
218
+ "autocomplete-option--disabled": o.value[l.valueHash].disabled
219
+ }),
220
+ "data-index": o.value[l.valueHash].globalIndex,
221
+ role: "option"
222
+ }, [
223
+ b(e.$slots, "option", {
224
+ disabled: !!o.value[l.valueHash].disabled,
225
+ focused: g(u) === o.value[l.valueHash].globalIndex,
226
+ index: o.value[l.valueHash].globalIndex,
227
+ item: o.value[l.valueHash].item,
228
+ selected: !!o.value[l.valueHash].selected,
229
+ text: o.value[l.valueHash].text,
230
+ value: o.value[l.valueHash].value
231
+ }, () => [
232
+ a[0] || (a[0] = v("svg", {
233
+ class: "autocomplete-option__checkbox",
234
+ role: "presentation",
235
+ viewBox: "276.411 158.834 114.971 114.97"
236
+ }, [
237
+ v("path", {
238
+ d: "M 297.574 224.786 L 318.309 243.134 L 371.568 189.232",
239
+ fill: "none",
240
+ "stroke-linecap": "round",
241
+ "stroke-width": "14px"
242
+ })
243
+ ], -1)),
244
+ v("span", De, x(o.value[l.valueHash].text), 1)
245
+ ])
246
+ ], 10, Be))), 128))
247
+ ], 12, Ie))), 128))
248
+ ], 12, ye)) : (c(), r("span", _e, [
249
+ b(e.$slots, "no-data", {}, () => [
250
+ P(x(e.noDataText || g(F)("common.noDataText").value), 1)
251
+ ])
252
+ ])),
253
+ b(e.$slots, "options:append")
254
+ ], 512)
255
+ ])
256
+ ], 6));
65
257
  }
66
- };
258
+ });
67
259
  export {
68
- e as default
260
+ Ee as default
69
261
  };
package/dist/index349.js CHANGED
@@ -1,4 +1,4 @@
1
- import { commonjsGlobal as r } from "./index341.js";
1
+ import { commonjsGlobal as r } from "./index342.js";
2
2
  var o, c;
3
3
  function C() {
4
4
  if (c) return o;