bitboss-ui 2.0.5 → 2.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/BaseDialog/BaseDialog.vue.d.ts +1 -3
- package/dist/composables/useOptions.d.ts +1 -1
- package/dist/index.js +89 -87
- package/dist/index.js.map +1 -1
- package/dist/index10.js +7 -39
- package/dist/index10.js.map +1 -1
- package/dist/index101.js +60 -87
- package/dist/index101.js.map +1 -1
- package/dist/index103.js +113 -258
- package/dist/index103.js.map +1 -1
- package/dist/index105.js +254 -388
- package/dist/index105.js.map +1 -1
- package/dist/index107.js +387 -98
- package/dist/index107.js.map +1 -1
- package/dist/index109.js +52 -48
- package/dist/index109.js.map +1 -1
- package/dist/index11.js +74 -188
- package/dist/index11.js.map +1 -1
- package/dist/index111.js +35 -34
- package/dist/index111.js.map +1 -1
- package/dist/index113.js +105 -23
- package/dist/index113.js.map +1 -1
- package/dist/index115.js +23 -156
- package/dist/index115.js.map +1 -1
- package/dist/index117.js +153 -112
- package/dist/index117.js.map +1 -1
- package/dist/index119.js +115 -39
- package/dist/index119.js.map +1 -1
- package/dist/index12.js +38 -80
- package/dist/index12.js.map +1 -1
- package/dist/index121.js +36 -40
- package/dist/index121.js.map +1 -1
- package/dist/index122.js +34 -37
- package/dist/index122.js.map +1 -1
- package/dist/index123.js +30 -21
- package/dist/index123.js.map +1 -1
- package/dist/index124.js +47 -2
- package/dist/index124.js.map +1 -1
- package/dist/index125.js +35 -21
- package/dist/index125.js.map +1 -1
- package/dist/index126.js +2 -2
- package/dist/index126.js.map +1 -1
- package/dist/index127.js +21 -312
- package/dist/index127.js.map +1 -1
- package/dist/index128.js +2 -24
- package/dist/index128.js.map +1 -1
- package/dist/index129.js +312 -2
- package/dist/index129.js.map +1 -1
- package/dist/index13.js +196 -0
- package/dist/index13.js.map +1 -0
- package/dist/index130.js +24 -5
- package/dist/index130.js.map +1 -1
- package/dist/index131.js +2 -9
- package/dist/index131.js.map +1 -1
- package/dist/index132.js +5 -6
- package/dist/index132.js.map +1 -1
- package/dist/index133.js +9 -3
- package/dist/index133.js.map +1 -1
- package/dist/index134.js +6 -3
- package/dist/index134.js.map +1 -1
- package/dist/index135.js +1 -1
- package/dist/index136.js +1 -1
- package/dist/index137.js +1 -1
- package/dist/index138.js +1 -1
- package/dist/index139.js +1 -1
- package/dist/index14.js +73 -121
- package/dist/index14.js.map +1 -1
- package/dist/index140.js +1 -1
- package/dist/index141.js +1 -1
- package/dist/index142.js +1 -1
- package/dist/index143.js +1 -1
- package/dist/index144.js +1 -1
- package/dist/index145.js +1 -1
- package/dist/index146.js +1 -1
- package/dist/index147.js +1 -1
- package/dist/index148.js +1 -1
- package/dist/index149.js +1 -1
- package/dist/index150.js +1 -1
- package/dist/index151.js +1 -1
- package/dist/index152.js +1 -1
- package/dist/index153.js +1 -1
- package/dist/index154.js +1 -1
- package/dist/index155.js +1 -1
- package/dist/index156.js +1 -1
- package/dist/index157.js +1 -1
- package/dist/index158.js +1 -1
- package/dist/index159.js +2 -2
- package/dist/index16.js +119 -118
- package/dist/index16.js.map +1 -1
- package/dist/index160.js +6 -0
- package/dist/index160.js.map +1 -0
- package/dist/index161.js +1 -1
- package/dist/index163.js +2 -2
- package/dist/index165.js +1 -1
- package/dist/index166.js +1 -1
- package/dist/index167.js +1 -1
- package/dist/index168.js +1 -1
- package/dist/index169.js +2 -2
- package/dist/index170.js +6 -0
- package/dist/index170.js.map +1 -0
- package/dist/index171.js +3 -2
- package/dist/index171.js.map +1 -1
- package/dist/index173.js +2 -3
- package/dist/index173.js.map +1 -1
- package/dist/index174.js +1 -1
- package/dist/index175.js +1 -1
- package/dist/index176.js +1 -1
- package/dist/index177.js +1 -1
- package/dist/index178.js +1 -1
- package/dist/index179.js +1 -1
- package/dist/index18.js +120 -208
- package/dist/index18.js.map +1 -1
- package/dist/index180.js +1 -1
- package/dist/index181.js +1 -1
- package/dist/index182.js +1 -1
- package/dist/index183.js +2 -2
- package/dist/index184.js +6 -0
- package/dist/index184.js.map +1 -0
- package/dist/index185.js +1 -1
- package/dist/index187.js +1 -1
- package/dist/index189.js +1 -1
- package/dist/index190.js +1 -1
- package/dist/index191.js +1 -1
- package/dist/index192.js +1 -1
- package/dist/index193.js +1 -1
- package/dist/index194.js +1 -1
- package/dist/index195.js +1 -1
- package/dist/index196.js +1 -1
- package/dist/index197.js +3 -81
- package/dist/index197.js.map +1 -1
- package/dist/index198.js +3 -3
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +81 -5
- package/dist/index199.js.map +1 -1
- package/dist/index20.js +193 -275
- package/dist/index20.js.map +1 -1
- package/dist/index200.js +2 -16
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +3 -16
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +124 -17
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +5 -19
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +119 -23
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +19 -3
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +16 -2
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +16 -8
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +2 -249
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +5 -0
- package/dist/index209.js.map +1 -0
- package/dist/index210.js +35 -52
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +173 -36
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +6 -5
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +39 -36
- package/dist/index213.js.map +1 -1
- package/dist/index215.js +13 -4
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +5 -2
- package/dist/index216.js.map +1 -1
- package/dist/index217.js +369 -2
- package/dist/index217.js.map +1 -1
- package/dist/index218.js +6 -40
- package/dist/index218.js.map +1 -1
- package/dist/{index214.js → index219.js} +1 -1
- package/dist/{index214.js.map → index219.js.map} +1 -1
- package/dist/index22.js +287 -247
- package/dist/index22.js.map +1 -1
- package/dist/index220.js +4 -13
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +2 -158
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +3 -84
- package/dist/index222.js.map +1 -1
- package/dist/index223.js +10 -0
- package/dist/index223.js.map +1 -0
- package/dist/index224.js +19 -3
- package/dist/index224.js.map +1 -1
- package/dist/index225.js +26 -34
- package/dist/index225.js.map +1 -1
- package/dist/index226.js +3 -6
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +249 -7
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +49 -123
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +44 -123
- package/dist/index229.js.map +1 -1
- package/dist/index230.js +5 -2
- package/dist/index230.js.map +1 -1
- package/dist/index231.js +49 -174
- package/dist/index231.js.map +1 -1
- package/dist/index232.js +158 -5
- package/dist/index232.js.map +1 -1
- package/dist/index233.js +83 -368
- package/dist/index233.js.map +1 -1
- package/dist/index235.js +2 -18
- package/dist/index235.js.map +1 -1
- package/dist/index236.js +17 -105
- package/dist/index236.js.map +1 -1
- package/dist/index237.js +109 -0
- package/dist/index237.js.map +1 -0
- package/dist/{index238.js → index239.js} +3 -3
- package/dist/{index238.js.map → index239.js.map} +1 -1
- package/dist/index24.js +249 -120
- package/dist/index24.js.map +1 -1
- package/dist/index241.js +2 -10
- package/dist/index241.js.map +1 -1
- package/dist/index242.js +9 -2
- package/dist/index242.js.map +1 -1
- package/dist/index243.js +3 -224
- package/dist/index243.js.map +1 -1
- package/dist/index244.js +9 -281
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +23 -6
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +6 -2
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +16 -2
- package/dist/index247.js.map +1 -1
- package/dist/index248.js +224 -2
- package/dist/index248.js.map +1 -1
- package/dist/index249.js +281 -2
- package/dist/index249.js.map +1 -1
- package/dist/index250.js +6 -2
- package/dist/index250.js.map +1 -1
- package/dist/index251.js +2 -2
- package/dist/index252.js +2 -3
- package/dist/index252.js.map +1 -1
- package/dist/index253.js +2 -2
- package/dist/index254.js +2 -2
- package/dist/index255.js +2 -2
- package/dist/index256.js +122 -24
- package/dist/index256.js.map +1 -1
- package/dist/index257.js +429 -20
- package/dist/index257.js.map +1 -1
- package/dist/index258.js +6 -0
- package/dist/index258.js.map +1 -0
- package/dist/index26.js +119 -142
- package/dist/index26.js.map +1 -1
- package/dist/index260.js +6 -3
- package/dist/index260.js.map +1 -1
- package/dist/index261.js +21 -8
- package/dist/index261.js.map +1 -1
- package/dist/index263.js +9 -3
- package/dist/index263.js.map +1 -1
- package/dist/index264.js +439 -0
- package/dist/index264.js.map +1 -0
- package/dist/index265.js +127 -6
- package/dist/index265.js.map +1 -1
- package/dist/index266.js +199 -15
- package/dist/index266.js.map +1 -1
- package/dist/index267.js +4 -9
- package/dist/index267.js.map +1 -1
- package/dist/index268.js +89 -3
- package/dist/index268.js.map +1 -1
- package/dist/index269.js +2 -12
- package/dist/index269.js.map +1 -1
- package/dist/index270.js +2 -9
- package/dist/index270.js.map +1 -1
- package/dist/index271.js +2 -9
- package/dist/index271.js.map +1 -1
- package/dist/index272.js +2 -17
- package/dist/index272.js.map +1 -1
- package/dist/index273.js +2 -431
- package/dist/index273.js.map +1 -1
- package/dist/index274.js +2 -89
- package/dist/index274.js.map +1 -1
- package/dist/index275.js +28 -2
- package/dist/index275.js.map +1 -1
- package/dist/index276.js +17 -64
- package/dist/index276.js.map +1 -1
- package/dist/index278.js +3 -200
- package/dist/index278.js.map +1 -1
- package/dist/index279.js +12 -2
- package/dist/index279.js.map +1 -1
- package/dist/index28.js +138 -83
- package/dist/index28.js.map +1 -1
- package/dist/index280.js +7 -124
- package/dist/index280.js.map +1 -1
- package/dist/index281.js +7 -20
- package/dist/index281.js.map +1 -1
- package/dist/index282.js +20 -0
- package/dist/index282.js.map +1 -0
- package/dist/index283.js +2 -436
- package/dist/index283.js.map +1 -1
- package/dist/index284.js +68 -126
- package/dist/index284.js.map +1 -1
- package/dist/index285.js +5 -3
- package/dist/index285.js.map +1 -1
- package/dist/index286.js +1 -1
- package/dist/index287.js +3 -211
- package/dist/index287.js.map +1 -1
- package/dist/index288.js +214 -0
- package/dist/index288.js.map +1 -0
- package/dist/index290.js +4 -7
- package/dist/index290.js.map +1 -1
- package/dist/index291.js +4 -19
- package/dist/index291.js.map +1 -1
- package/dist/index292.js +58 -6
- package/dist/index292.js.map +1 -1
- package/dist/index293.js +35 -4
- package/dist/index293.js.map +1 -1
- package/dist/index294.js +7 -4
- package/dist/index294.js.map +1 -1
- package/dist/index295.js +6 -58
- package/dist/index295.js.map +1 -1
- package/dist/index296.js +18 -34
- package/dist/index296.js.map +1 -1
- package/dist/index297.js +2 -11
- package/dist/index297.js.map +1 -1
- package/dist/index298.js +47 -2
- package/dist/index298.js.map +1 -1
- package/dist/index299.js +10 -46
- package/dist/index299.js.map +1 -1
- package/dist/index30.js +85 -115
- package/dist/index30.js.map +1 -1
- package/dist/index32.js +111 -112
- package/dist/index32.js.map +1 -1
- package/dist/index34.js +114 -365
- package/dist/index34.js.map +1 -1
- package/dist/index36.js +361 -283
- package/dist/index36.js.map +1 -1
- package/dist/index38.js +288 -106
- package/dist/index38.js.map +1 -1
- package/dist/index40.js +114 -121
- package/dist/index40.js.map +1 -1
- package/dist/index42.js +113 -200
- package/dist/index42.js.map +1 -1
- package/dist/index44.js +180 -90
- package/dist/index44.js.map +1 -1
- package/dist/index46.js +110 -78
- package/dist/index46.js.map +1 -1
- package/dist/index48.js +89 -54
- package/dist/index48.js.map +1 -1
- package/dist/index5.js +14 -78
- package/dist/index5.js.map +1 -1
- package/dist/index50.js +54 -84
- package/dist/index50.js.map +1 -1
- package/dist/index52.js +86 -60
- package/dist/index52.js.map +1 -1
- package/dist/index54.js +59 -40
- package/dist/index54.js.map +1 -1
- package/dist/index56.js +42 -55
- package/dist/index56.js.map +1 -1
- package/dist/index58.js +53 -103
- package/dist/index58.js.map +1 -1
- package/dist/index6.js +36 -58
- package/dist/index6.js.map +1 -1
- package/dist/index60.js +103 -89
- package/dist/index60.js.map +1 -1
- package/dist/index62.js +61 -88
- package/dist/index62.js.map +1 -1
- package/dist/index64.js +119 -77
- package/dist/index64.js.map +1 -1
- package/dist/index66.js +77 -91
- package/dist/index66.js.map +1 -1
- package/dist/index68.js +88 -49
- package/dist/index68.js.map +1 -1
- package/dist/index7.js +78 -20
- package/dist/index7.js.map +1 -1
- package/dist/index70.js +51 -304
- package/dist/index70.js.map +1 -1
- package/dist/index72.js +299 -115
- package/dist/index72.js.map +1 -1
- package/dist/index74.js +120 -214
- package/dist/index74.js.map +1 -1
- package/dist/index76.js +213 -36
- package/dist/index76.js.map +1 -1
- package/dist/index78.js +47 -0
- package/dist/index78.js.map +1 -0
- package/dist/index79.js +119 -230
- package/dist/index79.js.map +1 -1
- package/dist/index8.js +61 -7
- package/dist/index8.js.map +1 -1
- package/dist/index81.js +227 -154
- package/dist/index81.js.map +1 -1
- package/dist/index83.js +154 -207
- package/dist/index83.js.map +1 -1
- package/dist/index85.js +215 -26
- package/dist/index85.js.map +1 -1
- package/dist/index87.js +27 -88
- package/dist/index87.js.map +1 -1
- package/dist/index89.js +53 -88
- package/dist/index89.js.map +1 -1
- package/dist/index9.js +17 -76
- package/dist/index9.js.map +1 -1
- package/dist/index91.js +75 -44
- package/dist/index91.js.map +1 -1
- package/dist/index93.js +89 -15
- package/dist/index93.js.map +1 -1
- package/dist/index95.js +15 -166
- package/dist/index95.js.map +1 -1
- package/dist/index97.js +120 -59
- package/dist/index97.js.map +1 -1
- package/dist/index99.js +66 -52
- package/dist/index99.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +2 -2
- package/dist/index120.js +0 -47
- package/dist/index120.js.map +0 -1
- package/dist/index164.js +0 -6
- package/dist/index164.js.map +0 -1
- package/dist/index172.js +0 -6
- package/dist/index172.js.map +0 -1
- package/dist/index188.js +0 -6
- package/dist/index188.js.map +0 -1
- package/dist/index234.js +0 -6
- package/dist/index234.js.map +0 -1
- package/dist/index240.js +0 -5
- package/dist/index240.js.map +0 -1
- package/dist/index259.js +0 -10
- package/dist/index259.js.map +0 -1
- package/dist/index262.js +0 -26
- package/dist/index262.js.map +0 -1
- package/dist/index277.js +0 -8
- package/dist/index277.js.map +0 -1
- package/dist/index3.js +0 -17
- package/dist/index3.js.map +0 -1
- package/dist/index4.js +0 -43
- package/dist/index4.js.map +0 -1
- package/dist/index77.js +0 -130
- package/dist/index77.js.map +0 -1
package/dist/index83.js
CHANGED
|
@@ -1,223 +1,170 @@
|
|
|
1
|
-
import { defineComponent as W,
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import
|
|
1
|
+
import { defineComponent as W, computed as y, ref as c, onMounted as w, onBeforeUnmount as R, openBlock as k, createElementBlock as V, normalizeClass as C, createElementVNode as o, createVNode as v, unref as g, withCtx as S, renderSlot as m, Fragment as F, renderList as L, toDisplayString as M, nextTick as N } from "vue";
|
|
2
|
+
import { debounce as T } from "./index263.js";
|
|
3
|
+
/* empty css */
|
|
4
|
+
/* empty css */
|
|
5
|
+
/* empty css */
|
|
6
|
+
import $ from "./index14.js";
|
|
7
7
|
/* empty css */
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}, ue = /* @__PURE__ */ b("span", { class: "bb-popover__close-label" }, "Chiudi", -1), ce = /* @__PURE__ */ b("svg", {
|
|
13
|
-
fill: "none",
|
|
14
|
-
viewBox: "0 0 24 24",
|
|
15
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
16
|
-
}, [
|
|
17
|
-
/* @__PURE__ */ b("path", {
|
|
18
|
-
d: "M23 23L1 1M23 1L1 23",
|
|
19
|
-
stroke: "currentColor",
|
|
20
|
-
"stroke-linecap": "round",
|
|
21
|
-
"stroke-width": "2"
|
|
22
|
-
})
|
|
23
|
-
], -1), _e = /* @__PURE__ */ W({
|
|
24
|
-
__name: "BbPopover",
|
|
8
|
+
import A from "./index123.js";
|
|
9
|
+
/* empty css */
|
|
10
|
+
const D = { "aria-label": "Navigazione" }, G = /* @__PURE__ */ o("span", { class: "bb-pagination__page-label" }, "Precedente", -1), I = { class: "bb-pagination__page-label" }, O = { class: "bb-pagination__page-label" }, j = /* @__PURE__ */ o("span", { class: "bb-pagination__page-label" }, "Successivo", -1), ee = /* @__PURE__ */ W({
|
|
11
|
+
__name: "BbPagination",
|
|
25
12
|
props: {
|
|
26
|
-
arrowPadding: { default: 10 },
|
|
27
|
-
block: { type: Boolean },
|
|
28
13
|
disabled: { type: Boolean },
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
transitionDuration: { default: 150 },
|
|
36
|
-
focusTarget: {},
|
|
37
|
-
width: {}
|
|
14
|
+
loading: { type: Boolean },
|
|
15
|
+
align: { default: "right" },
|
|
16
|
+
ellipsis: { default: "..." },
|
|
17
|
+
maxSize: { default: 6 },
|
|
18
|
+
modelValue: { default: 1 },
|
|
19
|
+
totalPages: { default: 1 }
|
|
38
20
|
},
|
|
39
|
-
emits: ["
|
|
40
|
-
setup(
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
* the trigger we just allow and process that in its
|
|
45
|
-
* own click handler.
|
|
46
|
-
* If we are pressing anything random on the page
|
|
47
|
-
* close the popover and be done
|
|
48
|
-
*/
|
|
49
|
-
clickOutsideDeactivates: (e) => {
|
|
50
|
-
var P;
|
|
51
|
-
const o = e.target;
|
|
52
|
-
return o instanceof HTMLElement && (P = s.value) != null && P.contains(o) || (p(), u("hidden")), !0;
|
|
53
|
-
},
|
|
54
|
-
escapeDeactivates: () => (K(async () => {
|
|
55
|
-
await p(), f(), u("hidden");
|
|
56
|
-
}), !0),
|
|
57
|
-
/* We don't return focus so that when
|
|
58
|
-
* we press a button on tyhe page we can focus
|
|
59
|
-
* THAT button and not the current trigger
|
|
60
|
-
*/
|
|
61
|
-
returnFocusOnDeactivate: !1
|
|
62
|
-
}), { floatingStyles: z, placement: m, middlewareData: w } = X(
|
|
63
|
-
s,
|
|
64
|
-
c,
|
|
65
|
-
{
|
|
66
|
-
placement: t.placement,
|
|
67
|
-
whileElementsMounted: oe,
|
|
68
|
-
middleware: [
|
|
69
|
-
ae(),
|
|
70
|
-
re(t.offset),
|
|
71
|
-
ne({ padding: t.padding }),
|
|
72
|
-
Y({
|
|
73
|
-
element: $,
|
|
74
|
-
padding: t.arrowPadding
|
|
75
|
-
}),
|
|
76
|
-
le()
|
|
77
|
-
]
|
|
78
|
-
}
|
|
79
|
-
);
|
|
80
|
-
let T = () => {
|
|
21
|
+
emits: ["update:modelValue"],
|
|
22
|
+
setup(B, { emit: E }) {
|
|
23
|
+
const a = B, _ = E, i = y(() => +a.totalPages), r = c(1), n = c(+a.maxSize), u = c(), d = c(), z = c(1 / 0), f = () => {
|
|
24
|
+
u.value && d.value && (u.value.clientWidth < d.value.clientWidth ? n.value - 1 > 3 ? (n.value--, N(f)) : n.value = 3 : n.value < +a.maxSize && /* If there is enough space to fit one */
|
|
25
|
+
u.value.clientWidth - d.value.clientWidth > z.value && (n.value = Math.min(n.value + 1, +a.maxSize), N(f)));
|
|
81
26
|
};
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
left: `${e}px`,
|
|
93
|
-
top: `${o}px`
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
}), x = _(() => {
|
|
98
|
-
const e = {
|
|
99
|
-
...z.value,
|
|
100
|
-
transitionDuration: `${t.transitionDuration}ms`
|
|
101
|
-
};
|
|
102
|
-
if (t.width) {
|
|
103
|
-
let o;
|
|
104
|
-
if (typeof t.width == "string" && Number.isNaN(Number(t.width)))
|
|
105
|
-
if (t.width.includes("%")) {
|
|
106
|
-
if (!s.value) return;
|
|
107
|
-
o = `${s.value.clientWidth * (+t.width.replace("%", "") / 100)}px`;
|
|
108
|
-
} else
|
|
109
|
-
o = t.width;
|
|
110
|
-
else
|
|
111
|
-
o = `${t.width}px`;
|
|
112
|
-
e.width = o;
|
|
113
|
-
}
|
|
114
|
-
return e;
|
|
115
|
-
}), A = async () => {
|
|
116
|
-
i.value = !1, l.value = !1, r.value = !0, await M(50), n.value = !0, r.value = !1, T = Q(
|
|
117
|
-
() => {
|
|
118
|
-
var e;
|
|
119
|
-
return (e = w.value.hide) == null ? void 0 : e.referenceHidden;
|
|
120
|
-
},
|
|
121
|
-
async (e) => {
|
|
122
|
-
!l.value && !i.value && e && (await p(), C(), f());
|
|
123
|
-
}
|
|
124
|
-
);
|
|
125
|
-
}, p = async () => {
|
|
126
|
-
n.value = !1, r.value = !1, l.value = !0, await M(t.transitionDuration), l.value = !1, i.value = !0, T();
|
|
127
|
-
}, h = a(!1), V = async () => {
|
|
128
|
-
if (n.value) {
|
|
129
|
-
await p(), f(), u("hidden");
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
if (r.value || t.disabled) return;
|
|
133
|
-
h.value = !0, await A();
|
|
134
|
-
let e = t.focusTarget ?? ".bb-popover__close";
|
|
135
|
-
O({
|
|
136
|
-
onPostActivate: () => {
|
|
137
|
-
if (c.value) {
|
|
138
|
-
const o = c.value.querySelector(e);
|
|
139
|
-
o instanceof HTMLElement && (o.focus(), u("shown"));
|
|
27
|
+
if (globalThis.ResizeObserver) {
|
|
28
|
+
const e = new ResizeObserver(T(f, 200));
|
|
29
|
+
w(() => {
|
|
30
|
+
if (u.value && d.value) {
|
|
31
|
+
const t = u.value.querySelectorAll(
|
|
32
|
+
".bb-pagination__page"
|
|
33
|
+
)[1];
|
|
34
|
+
if (t) {
|
|
35
|
+
const p = getComputedStyle(d.value).columnGap.replaceAll(/\D/g, ""), s = Number(p);
|
|
36
|
+
z.value = t.clientWidth + s;
|
|
140
37
|
}
|
|
38
|
+
e.observe(u.value);
|
|
141
39
|
}
|
|
40
|
+
}), R(() => {
|
|
41
|
+
e.disconnect();
|
|
142
42
|
});
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
43
|
+
}
|
|
44
|
+
const P = y(() => {
|
|
45
|
+
if (i.value <= 0 || isNaN(i.value) || i.value > Number.MAX_SAFE_INTEGER)
|
|
46
|
+
return [];
|
|
47
|
+
if (n.value <= 1) return [a.modelValue];
|
|
48
|
+
if (i.value <= n.value)
|
|
49
|
+
return b(i.value, r.value);
|
|
50
|
+
const e = n.value % 2 === 0, t = e ? n.value / 2 : Math.floor(n.value / 2), l = e ? t : t + 1, p = i.value - t;
|
|
51
|
+
if (l - a.modelValue >= 0)
|
|
52
|
+
return [
|
|
53
|
+
...b(Math.max(1, n.value - 1), r.value),
|
|
54
|
+
a.ellipsis,
|
|
55
|
+
i.value
|
|
56
|
+
];
|
|
57
|
+
if (a.modelValue - p >= (e ? 1 : 0)) {
|
|
58
|
+
const s = n.value - 1, h = i.value - s + r.value;
|
|
59
|
+
return [
|
|
60
|
+
r.value,
|
|
61
|
+
a.ellipsis,
|
|
62
|
+
...b(s, h)
|
|
63
|
+
];
|
|
64
|
+
} else {
|
|
65
|
+
const s = Math.max(1, n.value - 3), h = s === 1 ? a.modelValue : a.modelValue - Math.ceil(s / 2) + r.value;
|
|
66
|
+
return [
|
|
67
|
+
r.value,
|
|
68
|
+
a.ellipsis,
|
|
69
|
+
...b(s, h),
|
|
70
|
+
a.ellipsis,
|
|
71
|
+
i.value
|
|
72
|
+
];
|
|
73
|
+
}
|
|
74
|
+
}), x = y(() => P.value.map((e, t) => typeof e == "string" ? {
|
|
75
|
+
active: !1,
|
|
76
|
+
key: `ellipsis-${t}`,
|
|
77
|
+
page: e,
|
|
78
|
+
ellipsis: !0,
|
|
79
|
+
disabled: !0
|
|
80
|
+
} : {
|
|
81
|
+
active: e === a.modelValue,
|
|
82
|
+
key: e,
|
|
83
|
+
page: e,
|
|
84
|
+
ellipsis: !1,
|
|
85
|
+
disabled: !!a.disabled || +a.totalPages < 2 || a.loading
|
|
86
|
+
})), b = (e, t = 0) => Array.from({ length: e }, (l, p) => t + p);
|
|
87
|
+
return (e, t) => (k(), V("div", {
|
|
88
|
+
ref_key: "outercontainer",
|
|
89
|
+
ref: u,
|
|
90
|
+
class: C(["bb-pagination", {
|
|
91
|
+
[`bb-pagination--${e.align}`]: !0
|
|
92
|
+
}])
|
|
93
|
+
}, [
|
|
94
|
+
o("nav", D, [
|
|
95
|
+
o("ul", {
|
|
96
|
+
ref_key: "innercontainer",
|
|
97
|
+
ref: d,
|
|
98
|
+
class: "bb-pagination__pages"
|
|
186
99
|
}, [
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
100
|
+
o("li", null, [
|
|
101
|
+
v(g($), {
|
|
102
|
+
class: "bb-pagination__page bb-pagination__page--previous",
|
|
103
|
+
disabled: a.modelValue <= 1 || e.loading || e.disabled,
|
|
104
|
+
onClick: t[0] || (t[0] = (l) => _("update:modelValue", a.modelValue - 1))
|
|
105
|
+
}, {
|
|
106
|
+
default: S(() => [
|
|
107
|
+
m(e.$slots, "previous", {}, () => [
|
|
108
|
+
G,
|
|
109
|
+
v(g(A), {
|
|
110
|
+
class: "bb-pagination__page-chevron",
|
|
111
|
+
type: "chevron_down"
|
|
112
|
+
})
|
|
113
|
+
])
|
|
114
|
+
]),
|
|
115
|
+
_: 3
|
|
116
|
+
}, 8, ["disabled"])
|
|
117
|
+
]),
|
|
118
|
+
(k(!0), V(F, null, L(x.value, (l) => (k(), V("li", {
|
|
119
|
+
key: l.key
|
|
120
|
+
}, [
|
|
121
|
+
v(g($), {
|
|
122
|
+
class: C(["bb-pagination__page", {
|
|
123
|
+
"bb-pagination__page--active": l.active,
|
|
124
|
+
"bb-pagination__page--ellipsis": l.ellipsis
|
|
125
|
+
}]),
|
|
126
|
+
disabled: l.disabled,
|
|
127
|
+
onClick: (p) => _("update:modelValue", l.key)
|
|
128
|
+
}, {
|
|
129
|
+
default: S(() => [
|
|
130
|
+
l.ellipsis === !0 ? m(e.$slots, "ellipsis", { key: 0 }, () => [
|
|
131
|
+
o("span", I, M(a.ellipsis), 1)
|
|
132
|
+
]) : m(e.$slots, "item", {
|
|
133
|
+
key: 1,
|
|
134
|
+
active: l.active,
|
|
135
|
+
disabled: l.disabled,
|
|
136
|
+
item: l.key
|
|
137
|
+
}, () => [
|
|
138
|
+
o("span", O, M(l.key), 1)
|
|
139
|
+
])
|
|
140
|
+
]),
|
|
141
|
+
_: 2
|
|
142
|
+
}, 1032, ["class", "disabled", "onClick"])
|
|
143
|
+
]))), 128)),
|
|
144
|
+
o("li", null, [
|
|
145
|
+
v(g($), {
|
|
146
|
+
class: "bb-pagination__page bb-pagination__page--next",
|
|
147
|
+
disabled: a.modelValue >= +i.value || e.loading || e.disabled,
|
|
148
|
+
onClick: t[1] || (t[1] = (l) => _("update:modelValue", a.modelValue + 1))
|
|
198
149
|
}, {
|
|
199
|
-
default:
|
|
200
|
-
|
|
201
|
-
|
|
150
|
+
default: S(() => [
|
|
151
|
+
m(e.$slots, "next", {}, () => [
|
|
152
|
+
j,
|
|
153
|
+
v(g(A), {
|
|
154
|
+
class: "bb-pagination__page-chevron",
|
|
155
|
+
type: "chevron_down"
|
|
156
|
+
})
|
|
157
|
+
])
|
|
202
158
|
]),
|
|
203
|
-
_:
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
disabled: !!e.disabled,
|
|
210
|
-
open: n.value,
|
|
211
|
-
opening: r.value,
|
|
212
|
-
placement: y(m)
|
|
213
|
-
})
|
|
214
|
-
])) : k("", !0)
|
|
215
|
-
], 14, se)
|
|
216
|
-
]))
|
|
217
|
-
], 16));
|
|
159
|
+
_: 3
|
|
160
|
+
}, 8, ["disabled"])
|
|
161
|
+
])
|
|
162
|
+
], 512)
|
|
163
|
+
])
|
|
164
|
+
], 2));
|
|
218
165
|
}
|
|
219
166
|
});
|
|
220
167
|
export {
|
|
221
|
-
|
|
168
|
+
ee as default
|
|
222
169
|
};
|
|
223
170
|
//# sourceMappingURL=index83.js.map
|
package/dist/index83.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index83.js","sources":["../src/components/BbPopover/BbPopover.vue"],"sourcesContent":["<template>\n\t<span class=\"bb-popover\" v-bind=\"attributes\">\n\t\t<span ref=\"wrapper\" class=\"bb-popover__wrapper\">\n\t\t\t<slot\n\t\t\t\tname=\"activator\"\n\t\t\t\tv-bind=\"{\n\t\t\t\t\tprops: {\n\t\t\t\t\t\t'aria-controls': `popover_${id}`,\n\t\t\t\t\t\t'aria-expanded': open,\n\t\t\t\t\t\tonClick: onTriggerClick,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tdisabled: !!disabled,\n\t\t\t\t\t},\n\t\t\t\t\tclosed: closed,\n\t\t\t\t\tclosing: closing,\n\t\t\t\t\tdisabled: !!disabled,\n\t\t\t\t\topen: open,\n\t\t\t\t\topening: opening,\n\t\t\t\t\tplacement: placement,\n\t\t\t\t}\"\n\t\t\t></slot>\n\t\t</span>\n\t\t<teleport to=\"body\">\n\t\t\t<span\n\t\t\t\t:id=\"`popover_${id}`\"\n\t\t\t\tref=\"content\"\n\t\t\t\tclass=\"bb-popover__bubble-container\"\n\t\t\t\t:class=\"{\n\t\t\t\t\t[`bb-popover__bubble-container--${placement}`]: true,\n\t\t\t\t\t[`bb-popover__bubble-container--${theme}`]: theme,\n\t\t\t\t\t'bb-popover__bubble-container--hidden': closed,\n\t\t\t\t\t'bb-popover__bubble-container--closing': closing,\n\t\t\t\t\t'bb-popover__bubble-container--opening': opening,\n\t\t\t\t\t'bb-popover__bubble-container--open': open,\n\t\t\t\t}\"\n\t\t\t\t:style=\"containerStyle\"\n\t\t\t>\n\t\t\t\t<span\n\t\t\t\t\tv-if=\"hasOpenedOnce || eager\"\n\t\t\t\t\tref=\"bubblearrow\"\n\t\t\t\t\tclass=\"bb-popover__arrow\"\n\t\t\t\t\tv-bind=\"arrowAttributes\"\n\t\t\t\t></span>\n\t\t\t\t<span v-if=\"hasOpenedOnce || eager\" class=\"bb-popover__bubble\">\n\t\t\t\t\t<BaseButton\n\t\t\t\t\t\tv-if=\"showClose\"\n\t\t\t\t\t\tclass=\"bb-popover__close\"\n\t\t\t\t\t\t@click=\"onClickClose\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"bb-popover__close-label\">Chiudi</span>\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\td=\"M23 23L1 1M23 1L1 23\"\n\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</BaseButton>\n\t\t\t\t\t<slot\n\t\t\t\t\t\t:close=\"onClickClose\"\n\t\t\t\t\t\t:closed=\"closed\"\n\t\t\t\t\t\t:closing=\"closing\"\n\t\t\t\t\t\t:disabled=\"!!disabled\"\n\t\t\t\t\t\t:open=\"open\"\n\t\t\t\t\t\t:opening=\"opening\"\n\t\t\t\t\t\t:placement=\"placement\"\n\t\t\t\t\t></slot>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t</teleport>\n\t</span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, ref, watch } from 'vue';\nimport {\n\tuseFloating,\n\tautoUpdate,\n\tflip,\n\tshift,\n\toffset,\n\tarrow,\n\thide,\n} from '@floating-ui/vue';\nimport { useFocusTrap } from '@vueuse/integrations/useFocusTrap';\nimport { useId } from '@/composables/useId';\nimport { wait } from '@/utilities/functions/wait';\nimport BaseButton from '../BaseButton/BaseButton.vue';\nimport type { CommonProps } from '@/types/CommonProps';\nimport type { Placement } from '@floating-ui/vue';\n\nexport type BbPopoverProps = Pick<\n\tCommonProps,\n\t| 'arrowPadding'\n\t| 'block'\n\t| 'disabled'\n\t| 'eager'\n\t| 'offset'\n\t| 'padding'\n\t| 'placement'\n\t| 'showClose'\n\t| 'theme'\n\t| 'transitionDuration'\n> & {\n\t/**\n\t * Elements that obtains focus immediately after opening the popover.\n\t * By default it's the first tabbable item.\n\t */\n\tfocusTarget?: string;\n\t/**\n\t * Width of the dropdown in pixels.\n\t */\n\twidth?: number | string;\n};\n\nconst props = withDefaults(defineProps<BbPopoverProps>(), {\n\tarrowPadding: 10,\n\toffset: 3,\n\tpadding: 10,\n\tplacement: 'bottom',\n\tshowClose: true,\n\ttheme: 'default',\n\ttransitionDuration: 150,\n});\n\nexport type BbPopoverEvents = {\n\t(e: 'shown'): void;\n\t(e: 'hidden'): void;\n};\n\nconst emit = defineEmits<BbPopoverEvents>();\n\ndefineSlots<{\n\tactivator?: (props: {\n\t\tprops: {\n\t\t\t'aria-controls': string;\n\t\t\t'aria-expanded': boolean;\n\t\t\tonClick: typeof onTriggerClick;\n\t\t\tid: string;\n\t\t\tdisabled: boolean;\n\t\t};\n\t\tclosed: boolean;\n\t\tclosing: boolean;\n\t\tdisabled: boolean;\n\t\topen: boolean;\n\t\topening: boolean;\n\t\tplacement: Placement;\n\t}) => any;\n\tdefault?: (props: {\n\t\tclose: typeof onClickClose;\n\t\tclosed: boolean;\n\t\tclosing: boolean;\n\t\tdisabled: boolean;\n\t\topen: boolean;\n\t\topening: boolean;\n\t\tplacement: Placement;\n\t}) => any;\n}>();\n\nconst { id: _id } = useId();\nconst id = `bbp_${_id.value}`;\n\nconst wrapper = ref<HTMLElement>();\nconst content = ref<HTMLElement>();\nconst bubblearrow = ref<HTMLElement>();\n\nconst { activate, deactivate } = useFocusTrap(content, {\n\t/**\n\t * This traps all clicks outside so we are pressing\n\t * the trigger we just allow and process that in its\n\t * own click handler.\n\t * If we are pressing anything random on the page\n\t * close the popover and be done\n\t */\n\tclickOutsideDeactivates: (event) => {\n\t\tconst target = event.target;\n\t\tif (target instanceof HTMLElement) {\n\t\t\tif (wrapper.value?.contains(target)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tclosePopover();\n\t\temit('hidden');\n\t\treturn true;\n\t},\n\tescapeDeactivates: () => {\n\t\tnextTick(async () => {\n\t\t\tawait closePopover();\n\t\t\tfocusTrigger();\n\t\t\temit('hidden');\n\t\t});\n\t\treturn true;\n\t},\n\t/* We don't return focus so that when\n\t * we press a button on tyhe page we can focus\n\t * THAT button and not the current trigger\n\t */\n\treturnFocusOnDeactivate: false,\n});\n\nconst { floatingStyles, placement, middlewareData } = useFloating(\n\twrapper,\n\tcontent,\n\t{\n\t\tplacement: props.placement,\n\t\twhileElementsMounted: autoUpdate,\n\t\tmiddleware: [\n\t\t\tflip(),\n\t\t\toffset(props.offset),\n\t\t\tshift({ padding: props.padding }),\n\t\t\tarrow({\n\t\t\t\telement: bubblearrow,\n\t\t\t\tpadding: props.arrowPadding,\n\t\t\t}),\n\t\t\thide(),\n\t\t],\n\t}\n);\n\nlet stopWatcher = () => {};\n\nconst attributes = computed(() => {\n\tconst classes = {\n\t\t'bb-popover--block': props.block,\n\t\t[`bb-popover--${props.theme}`]: true,\n\t};\n\treturn {\n\t\tclass: classes,\n\t};\n});\n\nconst opening = ref(false);\nconst open = ref(false);\nconst closing = ref(false);\nconst closed = ref(true);\n\nconst arrowAttributes = computed(() => {\n\tif (middlewareData.value.arrow) {\n\t\tconst { x, y } = middlewareData.value.arrow;\n\t\treturn {\n\t\t\tstyle: {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t},\n\t\t};\n\t}\n\treturn undefined;\n});\n\nconst containerStyle = computed(() => {\n\tconst base: Record<string, any> = {\n\t\t...floatingStyles.value,\n\t\ttransitionDuration: `${props.transitionDuration}ms`,\n\t};\n\tif (props.width) {\n\t\tlet width: string;\n\t\t// If the width is a css unit string use it, if it is a number or number string add px\n\t\tif (typeof props.width === 'string' && Number.isNaN(Number(props.width))) {\n\t\t\tif (props.width.includes('%')) {\n\t\t\t\tif (!wrapper.value) return;\n\t\t\t\twidth = `${\n\t\t\t\t\twrapper.value.clientWidth * (+props.width.replace('%', '') / 100)\n\t\t\t\t}px`;\n\t\t\t} else {\n\t\t\t\twidth = props.width;\n\t\t\t}\n\t\t} else {\n\t\t\twidth = `${props.width}px`;\n\t\t}\n\t\tbase.width = width;\n\t}\n\treturn base;\n});\n\nconst openPopover = async () => {\n\tclosed.value = false;\n\tclosing.value = false;\n\topening.value = true;\n\tawait wait(50);\n\topen.value = true;\n\topening.value = false;\n\tstopWatcher = watch(\n\t\t() => middlewareData.value.hide?.referenceHidden,\n\t\tasync (value) => {\n\t\t\tif (!closing.value && !closed.value && value) {\n\t\t\t\tawait closePopover();\n\t\t\t\tdeactivate();\n\t\t\t\tfocusTrigger();\n\t\t\t}\n\t\t}\n\t);\n};\n\nconst closePopover = async () => {\n\topen.value = false;\n\topening.value = false;\n\tclosing.value = true;\n\tawait wait(props.transitionDuration);\n\tclosing.value = false;\n\tclosed.value = true;\n\tstopWatcher();\n};\nconst hasOpenedOnce = ref(false);\nconst onTriggerClick = async () => {\n\tif (open.value) {\n\t\tawait closePopover();\n\t\tfocusTrigger();\n\t\temit('hidden');\n\t\treturn;\n\t}\n\tif (opening.value || props.disabled) return;\n\thasOpenedOnce.value = true;\n\tawait openPopover();\n\tlet focusTarget = props.focusTarget ?? '.bb-popover__close';\n\n\tactivate({\n\t\tonPostActivate: () => {\n\t\t\tif (content.value) {\n\t\t\t\tconst target = content.value.querySelector(focusTarget);\n\t\t\t\tif (target instanceof HTMLElement) {\n\t\t\t\t\ttarget.focus();\n\t\t\t\t\temit('shown');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t});\n};\n\nconst focusTrigger = () => {\n\tconst trigger = wrapper.value?.querySelector(`[aria-controls=popover_${id}]`);\n\tif (trigger instanceof HTMLElement) {\n\t\ttrigger.focus({ preventScroll: true });\n\t}\n};\n\nconst onClickClose = async () => {\n\tdeactivate();\n\tawait closePopover();\n\tfocusTrigger();\n\temit('hidden');\n};\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbPopover';\n</style>\n"],"names":["props","__props","emit","__emit","_id","useId","id","wrapper","ref","content","bubblearrow","activate","deactivate","useFocusTrap","event","target","_a","closePopover","nextTick","focusTrigger","floatingStyles","placement","middlewareData","useFloating","autoUpdate","flip","offset","shift","arrow","hide","stopWatcher","attributes","computed","opening","open","closing","closed","arrowAttributes","x","y","containerStyle","base","width","openPopover","wait","watch","value","hasOpenedOnce","onTriggerClick","focusTarget","trigger","onClickClose"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwHA,UAAMA,IAAQC,GAeRC,IAAOC,GA6BP,EAAE,IAAIC,EAAI,IAAIC,GAAM,GACpBC,IAAK,OAAOF,EAAI,KAAK,IAErBG,IAAUC,KACVC,IAAUD,KACVE,IAAcF,KAEd,EAAE,UAAAG,GAAU,YAAAC,MAAeC,EAAaJ,GAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQtD,yBAAyB,CAACK,MAAU;;AACnC,cAAMC,IAASD,EAAM;AACrB,eAAIC,aAAkB,gBACjBC,IAAAT,EAAQ,UAAR,QAAAS,EAAe,SAASD,OAIhBE,KACbf,EAAK,QAAQ,IACN;AAAA,MACR;AAAA,MACA,mBAAmB,OAClBgB,EAAS,YAAY;AACpB,cAAMD,EAAa,GACNE,KACbjB,EAAK,QAAQ;AAAA,MAAA,CACb,GACM;AAAA;AAAA;AAAA;AAAA;AAAA,MAMR,yBAAyB;AAAA,IAAA,CACzB,GAEK,EAAE,gBAAAkB,GAAgB,WAAAC,GAAW,gBAAAC,EAAmB,IAAAC;AAAA,MACrDhB;AAAA,MACAE;AAAA,MACA;AAAA,QACC,WAAWT,EAAM;AAAA,QACjB,sBAAsBwB;AAAA,QACtB,YAAY;AAAA,UACXC,GAAK;AAAA,UACLC,GAAO1B,EAAM,MAAM;AAAA,UACnB2B,GAAM,EAAE,SAAS3B,EAAM,SAAS;AAAA,UAChC4B,EAAM;AAAA,YACL,SAASlB;AAAA,YACT,SAASV,EAAM;AAAA,UAAA,CACf;AAAA,UACD6B,GAAK;AAAA,QACN;AAAA,MACD;AAAA,IAAA;AAGD,QAAIC,IAAc,MAAM;AAAA,IAAA;AAElB,UAAAC,IAAaC,EAAS,OAKpB;AAAA,MACN,OALe;AAAA,QACf,qBAAqBhC,EAAM;AAAA,QAC3B,CAAC,eAAeA,EAAM,KAAK,EAAE,GAAG;AAAA,MAAA;AAAA,IAGzB,EAER,GAEKiC,IAAUzB,EAAI,EAAK,GACnB0B,IAAO1B,EAAI,EAAK,GAChB2B,IAAU3B,EAAI,EAAK,GACnB4B,IAAS5B,EAAI,EAAI,GAEjB6B,IAAkBL,EAAS,MAAM;AAClC,UAAAV,EAAe,MAAM,OAAO;AAC/B,cAAM,EAAE,GAAAgB,GAAG,GAAAC,EAAE,IAAIjB,EAAe,MAAM;AAC/B,eAAA;AAAA,UACN,OAAO;AAAA,YACN,MAAM,GAAGgB,CAAC;AAAA,YACV,KAAK,GAAGC,CAAC;AAAA,UACV;AAAA,QAAA;AAAA,MAEF;AAAA,IACO,CACP,GAEKC,IAAiBR,EAAS,MAAM;AACrC,YAAMS,IAA4B;AAAA,QACjC,GAAGrB,EAAe;AAAA,QAClB,oBAAoB,GAAGpB,EAAM,kBAAkB;AAAA,MAAA;AAEhD,UAAIA,EAAM,OAAO;AACZ,YAAA0C;AAEA,YAAA,OAAO1C,EAAM,SAAU,YAAY,OAAO,MAAM,OAAOA,EAAM,KAAK,CAAC;AACtE,cAAIA,EAAM,MAAM,SAAS,GAAG,GAAG;AAC1B,gBAAA,CAACO,EAAQ,MAAO;AACZ,YAAAmC,IAAA,GACPnC,EAAQ,MAAM,eAAe,CAACP,EAAM,MAAM,QAAQ,KAAK,EAAE,IAAI,IAC9D;AAAA,UAAA;AAEA,YAAA0C,IAAQ1C,EAAM;AAAA;AAGP,UAAA0C,IAAA,GAAG1C,EAAM,KAAK;AAEvB,QAAAyC,EAAK,QAAQC;AAAA,MACd;AACO,aAAAD;AAAA,IAAA,CACP,GAEKE,IAAc,YAAY;AAC/B,MAAAP,EAAO,QAAQ,IACfD,EAAQ,QAAQ,IAChBF,EAAQ,QAAQ,IAChB,MAAMW,EAAK,EAAE,GACbV,EAAK,QAAQ,IACbD,EAAQ,QAAQ,IACFH,IAAAe;AAAA,QACb;;AAAM,kBAAA7B,IAAAM,EAAe,MAAM,SAArB,gBAAAN,EAA2B;AAAA;AAAA,QACjC,OAAO8B,MAAU;AAChB,UAAI,CAACX,EAAQ,SAAS,CAACC,EAAO,SAASU,MACtC,MAAM7B,EAAa,GACRL,KACEO;QAEf;AAAA,MAAA;AAAA,IACD,GAGKF,IAAe,YAAY;AAChC,MAAAiB,EAAK,QAAQ,IACbD,EAAQ,QAAQ,IAChBE,EAAQ,QAAQ,IACV,MAAAS,EAAK5C,EAAM,kBAAkB,GACnCmC,EAAQ,QAAQ,IAChBC,EAAO,QAAQ,IACHN;IAAA,GAEPiB,IAAgBvC,EAAI,EAAK,GACzBwC,IAAiB,YAAY;AAClC,UAAId,EAAK,OAAO;AACf,cAAMjB,EAAa,GACNE,KACbjB,EAAK,QAAQ;AACb;AAAA,MACD;AACI,UAAA+B,EAAQ,SAASjC,EAAM,SAAU;AACrC,MAAA+C,EAAc,QAAQ,IACtB,MAAMJ,EAAY;AACd,UAAAM,IAAcjD,EAAM,eAAe;AAE9B,MAAAW,EAAA;AAAA,QACR,gBAAgB,MAAM;AACrB,cAAIF,EAAQ,OAAO;AAClB,kBAAMM,IAASN,EAAQ,MAAM,cAAcwC,CAAW;AACtD,YAAIlC,aAAkB,gBACrBA,EAAO,MAAM,GACbb,EAAK,OAAO;AAAA,UAEd;AAAA,QACD;AAAA,MAAA,CACA;AAAA,IAAA,GAGIiB,IAAe,MAAM;;AAC1B,YAAM+B,KAAUlC,IAAAT,EAAQ,UAAR,gBAAAS,EAAe,cAAc,0BAA0BV,CAAE;AACzE,MAAI4C,aAAmB,eACtBA,EAAQ,MAAM,EAAE,eAAe,GAAM,CAAA;AAAA,IACtC,GAGKC,IAAe,YAAY;AACrB,MAAAvC,KACX,MAAMK,EAAa,GACNE,KACbjB,EAAK,QAAQ;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index83.js","sources":["../src/components/BbPagination/BbPagination.vue"],"sourcesContent":["<template>\n\t<div\n\t\tref=\"outercontainer\"\n\t\tclass=\"bb-pagination\"\n\t\t:class=\"{\n\t\t\t[`bb-pagination--${align}`]: true,\n\t\t}\"\n\t>\n\t\t<nav aria-label=\"Navigazione\">\n\t\t\t<ul ref=\"innercontainer\" class=\"bb-pagination__pages\">\n\t\t\t\t<li>\n\t\t\t\t\t<BaseButton\n\t\t\t\t\t\tclass=\"bb-pagination__page bb-pagination__page--previous\"\n\t\t\t\t\t\t:disabled=\"props.modelValue <= 1 || loading || disabled\"\n\t\t\t\t\t\t@click=\"emit('update:modelValue', props.modelValue - 1)\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot name=\"previous\">\n\t\t\t\t\t\t\t<span class=\"bb-pagination__page-label\">Precedente</span>\n\t\t\t\t\t\t\t<BbIcon class=\"bb-pagination__page-chevron\" type=\"chevron_down\" />\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t</BaseButton>\n\t\t\t\t</li>\n\t\t\t\t<li v-for=\"item in items\" :key=\"item.key\">\n\t\t\t\t\t<BaseButton\n\t\t\t\t\t\tclass=\"bb-pagination__page\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'bb-pagination__page--active': item.active,\n\t\t\t\t\t\t\t'bb-pagination__page--ellipsis': item.ellipsis,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t:disabled=\"item.disabled\"\n\t\t\t\t\t\t@click=\"emit('update:modelValue', item.key)\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<template v-if=\"item.ellipsis === true\">\n\t\t\t\t\t\t\t<slot name=\"ellipsis\">\n\t\t\t\t\t\t\t\t<span class=\"bb-pagination__page-label\">{{\n\t\t\t\t\t\t\t\t\tprops.ellipsis\n\t\t\t\t\t\t\t\t}}</span>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t\t:active=\"item.active\"\n\t\t\t\t\t\t\t\t:disabled=\"item.disabled\"\n\t\t\t\t\t\t\t\t:item=\"item.key\"\n\t\t\t\t\t\t\t\tname=\"item\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"bb-pagination__page-label\">{{ item.key }}</span>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</BaseButton>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<BaseButton\n\t\t\t\t\t\tclass=\"bb-pagination__page bb-pagination__page--next\"\n\t\t\t\t\t\t:disabled=\"props.modelValue >= +totalPages || loading || disabled\"\n\t\t\t\t\t\t@click=\"emit('update:modelValue', props.modelValue + 1)\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot name=\"next\">\n\t\t\t\t\t\t\t<span class=\"bb-pagination__page-label\">Successivo</span>\n\t\t\t\t\t\t\t<BbIcon class=\"bb-pagination__page-chevron\" type=\"chevron_down\" />\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t</BaseButton>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</nav>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref } from 'vue';\nimport { debounce } from '@/utilities/functions/debounce';\nimport type { CommonProps } from '@/types/CommonProps';\nimport { BaseButton, BbIcon } from '@/index';\n\nexport type BbPaginationProps = Pick<CommonProps, 'disabled' | 'loading'> & {\n\talign?: 'left' | 'right' | 'center';\n\t/**\n\t * String of text displayed in place of hidden pages\n\t */\n\tellipsis?: string;\n\t/**\n\t * Maximum number of clickable pages displayed at all times.\n\t * This has a tolerance of +/- 1 for odd / even numbering.\n\t * It does not include ellipses.\n\t */\n\tmaxSize?: number | string;\n\t/**\n\t * Used by v-model. Indicates the current page.\n\t */\n\tmodelValue: number;\n\t/**\n\t * Total number of pages there is.\n\t */\n\ttotalPages?: number | string;\n};\n\nconst props = withDefaults(defineProps<BbPaginationProps>(), {\n\talign: 'right',\n\tmodelValue: 1,\n\ttotalPages: 1,\n\tellipsis: '...',\n\tmaxSize: 6,\n});\n\nexport type BbPaginationEvents = {\n\t(e: 'update:modelValue', value: number): void;\n};\n\nconst emit = defineEmits(['update:modelValue']);\n\ndefineSlots<{\n\tprevious?: (props: object) => any;\n\tnext?: (props: object) => any;\n\titem?: (props: { active: boolean; disabled: boolean; item: number }) => any;\n\tellipsis?: (props: object) => any;\n}>();\n\nconst totalPages = computed(() => +props.totalPages);\nconst start = ref(1);\nconst maxSize = ref(+props.maxSize);\n\nconst outercontainer = ref<HTMLElement>();\nconst innercontainer = ref<HTMLElement>();\n\nconst buttonFootprint = ref<number>(Infinity);\n\n/**\n * Adjusts how many buttons to show.\n * if current buttons can't fit subtract maxSize until they do or until minimum is reached\n * if more buttons could fit add buttons until the don't\n * If minimum or maximum is reached just quit until next resize\n */\nconst adjustMaxElements = () => {\n\tif (outercontainer.value && innercontainer.value) {\n\t\t/* If some buttons do not fit */\n\t\tif (outercontainer.value.clientWidth < innercontainer.value.clientWidth) {\n\t\t\tif (maxSize.value - 1 > 3) {\n\t\t\t\tmaxSize.value--;\n\t\t\t\tnextTick(adjustMaxElements);\n\t\t\t} else {\n\t\t\t\tmaxSize.value = 3;\n\t\t\t}\n\t\t\t/* If all current buttons do fit */\n\t\t} else {\n\t\t\t/* If some buttons have been hidden */\n\t\t\tif (maxSize.value < +props.maxSize) {\n\t\t\t\tif (\n\t\t\t\t\t/* If there is enough space to fit one */\n\t\t\t\t\toutercontainer.value.clientWidth - innercontainer.value.clientWidth >\n\t\t\t\t\tbuttonFootprint.value\n\t\t\t\t) {\n\t\t\t\t\tmaxSize.value = Math.min(maxSize.value + 1, +props.maxSize);\n\t\t\t\t\tnextTick(adjustMaxElements);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\nif (globalThis.ResizeObserver) {\n\tconst observer = new ResizeObserver(debounce(adjustMaxElements, 200));\n\tonMounted(() => {\n\t\tif (outercontainer.value && innercontainer.value) {\n\t\t\tconst button = outercontainer.value.querySelectorAll(\n\t\t\t\t'.bb-pagination__page'\n\t\t\t)[1];\n\t\t\tif (button) {\n\t\t\t\t/* Compute the footprint necessary to render a new button */\n\t\t\t\tconst gapString = getComputedStyle(innercontainer.value).columnGap;\n\t\t\t\tconst numberAsString = gapString.replaceAll(/\\D/g, '');\n\t\t\t\tconst gap = Number(numberAsString);\n\t\t\t\tbuttonFootprint.value = button.clientWidth + gap;\n\t\t\t}\n\t\t\tobserver.observe(outercontainer.value);\n\t\t}\n\t});\n\tonBeforeUnmount(() => {\n\t\tobserver.disconnect();\n\t});\n}\n\nconst range = computed(() => {\n\tif (\n\t\ttotalPages.value <= 0 ||\n\t\tisNaN(totalPages.value) ||\n\t\ttotalPages.value > Number.MAX_SAFE_INTEGER\n\t)\n\t\treturn [];\n\n\tif (maxSize.value <= 1) return [props.modelValue];\n\n\tif (totalPages.value <= maxSize.value) {\n\t\treturn createRange(totalPages.value, start.value);\n\t}\n\n\tconst even = maxSize.value % 2 === 0;\n\tconst middle = even ? maxSize.value / 2 : Math.floor(maxSize.value / 2);\n\tconst left = even ? middle : middle + 1;\n\tconst right = totalPages.value - middle;\n\n\tif (left - props.modelValue >= 0) {\n\t\treturn [\n\t\t\t...createRange(Math.max(1, maxSize.value - 1), start.value),\n\t\t\tprops.ellipsis,\n\t\t\ttotalPages.value,\n\t\t];\n\t} else if (props.modelValue - right >= (even ? 1 : 0)) {\n\t\tconst rangeLength = maxSize.value - 1;\n\t\tconst rangeStart = totalPages.value - rangeLength + start.value;\n\t\treturn [\n\t\t\tstart.value,\n\t\t\tprops.ellipsis,\n\t\t\t...createRange(rangeLength, rangeStart),\n\t\t];\n\t} else {\n\t\tconst rangeLength = Math.max(1, maxSize.value - 3);\n\t\tconst rangeStart =\n\t\t\trangeLength === 1\n\t\t\t\t? props.modelValue\n\t\t\t\t: props.modelValue - Math.ceil(rangeLength / 2) + start.value;\n\t\treturn [\n\t\t\tstart.value,\n\t\t\tprops.ellipsis,\n\t\t\t...createRange(rangeLength, rangeStart),\n\t\t\tprops.ellipsis,\n\t\t\ttotalPages.value,\n\t\t];\n\t}\n});\n\ntype Item =\n\t| {\n\t\t\tactive: boolean;\n\t\t\tkey: string;\n\t\t\tpage: string;\n\t\t\tellipsis: true;\n\t\t\tdisabled: boolean;\n\t }\n\t| {\n\t\t\tactive: boolean;\n\t\t\tkey: number;\n\t\t\tpage: number;\n\t\t\tellipsis: false;\n\t\t\tdisabled: boolean;\n\t };\n\nconst items = computed<Item[]>(() => {\n\treturn range.value.map((item, index) => {\n\t\tif (typeof item === 'string') {\n\t\t\treturn {\n\t\t\t\tactive: false,\n\t\t\t\tkey: `ellipsis-${index}`,\n\t\t\t\tpage: item,\n\t\t\t\tellipsis: true,\n\t\t\t\tdisabled: true,\n\t\t\t};\n\t\t} else {\n\t\t\tconst active = item === props.modelValue;\n\t\t\treturn {\n\t\t\t\tactive,\n\t\t\t\tkey: item,\n\t\t\t\tpage: item,\n\t\t\t\tellipsis: false,\n\t\t\t\tdisabled: !!props.disabled || +props.totalPages < 2 || props.loading,\n\t\t\t};\n\t\t}\n\t});\n});\n\nconst createRange = (length: number, start = 0): number[] => {\n\treturn Array.from({ length }, (_, k) => start + k);\n};\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbPagination';\n</style>\n"],"names":["props","__props","emit","__emit","totalPages","computed","start","ref","maxSize","outercontainer","innercontainer","buttonFootprint","adjustMaxElements","nextTick","observer","debounce","onMounted","button","numberAsString","gap","onBeforeUnmount","range","createRange","even","middle","left","right","rangeLength","rangeStart","items","item","index","length","_","k"],"mappings":"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"}
|