bitboss-ui 2.0.7 → 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/index.js +139 -138
- package/dist/index.js.map +1 -1
- package/dist/index10.js +7 -78
- package/dist/index10.js.map +1 -1
- package/dist/{index100.js → index101.js} +3 -3
- package/dist/{index100.js.map → index101.js.map} +1 -1
- package/dist/{index102.js → index103.js} +3 -3
- package/dist/{index102.js.map → index103.js.map} +1 -1
- package/dist/{index104.js → index105.js} +8 -8
- package/dist/{index104.js.map → index105.js.map} +1 -1
- package/dist/{index106.js → index107.js} +10 -10
- package/dist/{index106.js.map → index107.js.map} +1 -1
- package/dist/{index108.js → index109.js} +3 -3
- package/dist/{index108.js.map → index109.js.map} +1 -1
- package/dist/index11.js +74 -35
- package/dist/index11.js.map +1 -1
- package/dist/{index110.js → index111.js} +3 -3
- package/dist/{index110.js.map → index111.js.map} +1 -1
- package/dist/{index112.js → index113.js} +3 -3
- package/dist/{index112.js.map → index113.js.map} +1 -1
- package/dist/{index114.js → index115.js} +3 -3
- package/dist/{index114.js.map → index115.js.map} +1 -1
- package/dist/{index116.js → index117.js} +8 -8
- package/dist/{index116.js.map → index117.js.map} +1 -1
- package/dist/{index118.js → index119.js} +2 -2
- package/dist/{index118.js.map → index119.js.map} +1 -1
- package/dist/index12.js +36 -189
- package/dist/index12.js.map +1 -1
- package/dist/index121.js +34 -38
- package/dist/index121.js.map +1 -1
- package/dist/index122.js +38 -38
- package/dist/index122.js.map +1 -1
- package/dist/index123.js +39 -42
- package/dist/index123.js.map +1 -1
- package/dist/index124.js +43 -31
- package/dist/index124.js.map +1 -1
- package/dist/index125.js +35 -2
- package/dist/index125.js.map +1 -1
- package/dist/index126.js +2 -21
- package/dist/index126.js.map +1 -1
- package/dist/index127.js +21 -2
- package/dist/index127.js.map +1 -1
- package/dist/index128.js +2 -312
- package/dist/index128.js.map +1 -1
- package/dist/index129.js +309 -21
- package/dist/index129.js.map +1 -1
- package/dist/index13.js +189 -78
- package/dist/index13.js.map +1 -1
- package/dist/index130.js +24 -2
- package/dist/index130.js.map +1 -1
- package/dist/index131.js +2 -5
- package/dist/index131.js.map +1 -1
- package/dist/index132.js +5 -9
- package/dist/index132.js.map +1 -1
- package/dist/index133.js +8 -5
- 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 +85 -0
- package/dist/index14.js.map +1 -0
- 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 +1 -1
- package/dist/{index15.js → index16.js} +4 -4
- package/dist/{index15.js.map → index16.js.map} +1 -1
- package/dist/index160.js +2 -2
- package/dist/{index162.js → index161.js} +1 -1
- package/dist/index161.js.map +1 -0
- package/dist/index163.js +6 -0
- package/dist/index163.js.map +1 -0
- 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 +1 -1
- package/dist/index170.js +2 -2
- package/dist/index171.js +6 -0
- package/dist/index171.js.map +1 -0
- 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/{index17.js → index18.js} +4 -4
- package/dist/{index17.js.map → 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 +1 -1
- package/dist/index184.js +1 -1
- package/dist/{index186.js → index185.js} +1 -1
- package/dist/index185.js.map +1 -0
- package/dist/index187.js +6 -0
- package/dist/index187.js.map +1 -0
- 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 +1 -1
- package/dist/index198.js +3 -81
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +81 -2
- package/dist/index199.js.map +1 -1
- package/dist/{index19.js → index20.js} +19 -18
- package/dist/{index19.js.map → index20.js.map} +1 -1
- package/dist/index200.js +2 -2
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +3 -4
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +126 -2
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +5 -8
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +119 -122
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +19 -5
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +13 -120
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +15 -18
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +2 -16
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +2 -16
- package/dist/index209.js.map +1 -1
- package/dist/index210.js +35 -2
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +174 -2
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +6 -35
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +44 -174
- package/dist/index213.js.map +1 -1
- package/dist/index215.js +12 -42
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +8 -0
- package/dist/index216.js.map +1 -0
- package/dist/index217.js +369 -13
- package/dist/index217.js.map +1 -1
- package/dist/index218.js +8 -5
- package/dist/index218.js.map +1 -1
- package/dist/index219.js +2 -369
- package/dist/index219.js.map +1 -1
- package/dist/{index21.js → index22.js} +21 -21
- package/dist/{index21.js.map → index22.js.map} +1 -1
- package/dist/index220.js +4 -19
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +2 -27
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +3 -3
- package/dist/index222.js.map +1 -1
- package/dist/index223.js +7 -249
- package/dist/index223.js.map +1 -1
- package/dist/index224.js +18 -51
- package/dist/index224.js.map +1 -1
- package/dist/index225.js +27 -44
- package/dist/index225.js.map +1 -1
- package/dist/index226.js +3 -5
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +243 -43
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +52 -3
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +44 -3
- package/dist/index229.js.map +1 -1
- package/dist/index230.js +5 -7
- package/dist/index230.js.map +1 -1
- package/dist/index231.js +48 -157
- package/dist/index231.js.map +1 -1
- package/dist/index232.js +158 -84
- package/dist/index232.js.map +1 -1
- package/dist/index233.js +87 -0
- package/dist/index233.js.map +1 -0
- 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/{index23.js → index24.js} +8 -8
- package/dist/{index23.js.map → 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 +2 -3
- package/dist/index243.js.map +1 -1
- package/dist/index244.js +9 -6
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +23 -16
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +6 -9
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +16 -23
- package/dist/index247.js.map +1 -1
- package/dist/index248.js +222 -7
- package/dist/index248.js.map +1 -1
- package/dist/index257.js +1 -1
- package/dist/index258.js +1 -1
- package/dist/{index25.js → index26.js} +6 -6
- package/dist/{index25.js.map → index26.js.map} +1 -1
- package/dist/index263.js +9 -2
- package/dist/index263.js.map +1 -1
- package/dist/index264.js +436 -2
- package/dist/index264.js.map +1 -1
- package/dist/index265.js +127 -2
- package/dist/index265.js.map +1 -1
- package/dist/index266.js +200 -2
- package/dist/index266.js.map +1 -1
- package/dist/index267.js +4 -2
- package/dist/index267.js.map +1 -1
- package/dist/index268.js +89 -2
- package/dist/index268.js.map +1 -1
- package/dist/index269.js +2 -28
- package/dist/index269.js.map +1 -1
- package/dist/index270.js +2 -22
- package/dist/index270.js.map +1 -1
- package/dist/index271.js +5 -0
- package/dist/index271.js.map +1 -0
- package/dist/index272.js +2 -224
- package/dist/index272.js.map +1 -1
- package/dist/index273.js +2 -89
- package/dist/index273.js.map +1 -1
- package/dist/index274.js +2 -200
- package/dist/index274.js.map +1 -1
- package/dist/index275.js +23 -431
- package/dist/index275.js.map +1 -1
- package/dist/index276.js +21 -126
- package/dist/index276.js.map +1 -1
- package/dist/index278.js +3 -2
- package/dist/index278.js.map +1 -1
- package/dist/index279.js +12 -9
- package/dist/index279.js.map +1 -1
- package/dist/{index27.js → index28.js} +4 -4
- package/dist/{index27.js.map → index28.js.map} +1 -1
- package/dist/index280.js +8 -68
- package/dist/index280.js.map +1 -1
- package/dist/index281.js +9 -3
- package/dist/index281.js.map +1 -1
- package/dist/index282.js +17 -12
- package/dist/index282.js.map +1 -1
- package/dist/index283.js +2 -9
- package/dist/index283.js.map +1 -1
- package/dist/index284.js +67 -15
- 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 +211 -15
- package/dist/index288.js.map +1 -1
- package/dist/index289.js +15 -4
- package/dist/index289.js.map +1 -1
- package/dist/index290.js +4 -4
- package/dist/index290.js.map +1 -1
- package/dist/index291.js +4 -59
- package/dist/index291.js.map +1 -1
- package/dist/index292.js +58 -34
- package/dist/index292.js.map +1 -1
- package/dist/index293.js +34 -6
- package/dist/index293.js.map +1 -1
- package/dist/index294.js +5 -17
- package/dist/index294.js.map +1 -1
- package/dist/index295.js +6 -6
- package/dist/index295.js.map +1 -1
- package/dist/index296.js +19 -2
- package/dist/index296.js.map +1 -1
- package/dist/index297.js +2 -11
- package/dist/index297.js.map +1 -1
- package/dist/index298.js +2 -2
- package/dist/index299.js +14 -0
- package/dist/index299.js.map +1 -0
- package/dist/{index29.js → index30.js} +3 -3
- package/dist/{index29.js.map → index30.js.map} +1 -1
- package/dist/index301.js +416 -42
- package/dist/index301.js.map +1 -1
- package/dist/index302.js +50 -0
- package/dist/index302.js.map +1 -0
- package/dist/{index31.js → index32.js} +4 -4
- package/dist/{index31.js.map → index32.js.map} +1 -1
- package/dist/{index33.js → index34.js} +5 -5
- package/dist/{index33.js.map → index34.js.map} +1 -1
- package/dist/{index35.js → index36.js} +23 -22
- package/dist/{index35.js.map → index36.js.map} +1 -1
- package/dist/{index37.js → index38.js} +8 -8
- package/dist/{index37.js.map → index38.js.map} +1 -1
- package/dist/{index39.js → index40.js} +3 -3
- package/dist/{index39.js.map → index40.js.map} +1 -1
- package/dist/{index41.js → index42.js} +4 -4
- package/dist/{index41.js.map → index42.js.map} +1 -1
- package/dist/{index43.js → index44.js} +12 -11
- package/dist/{index43.js.map → index44.js.map} +1 -1
- package/dist/{index45.js → index46.js} +4 -4
- package/dist/{index45.js.map → index46.js.map} +1 -1
- package/dist/{index47.js → index48.js} +3 -3
- package/dist/{index47.js.map → index48.js.map} +1 -1
- package/dist/index5.js +14 -40
- package/dist/index5.js.map +1 -1
- package/dist/{index49.js → index50.js} +4 -4
- package/dist/{index49.js.map → index50.js.map} +1 -1
- package/dist/{index51.js → index52.js} +3 -3
- package/dist/{index51.js.map → index52.js.map} +1 -1
- package/dist/{index53.js → index54.js} +3 -3
- package/dist/{index53.js.map → index54.js.map} +1 -1
- package/dist/{index55.js → index56.js} +3 -3
- package/dist/{index55.js.map → index56.js.map} +1 -1
- package/dist/{index57.js → index58.js} +2 -2
- package/dist/{index57.js.map → index58.js.map} +1 -1
- package/dist/index6.js +38 -76
- package/dist/index6.js.map +1 -1
- package/dist/{index59.js → index60.js} +14 -13
- package/dist/{index59.js.map → index60.js.map} +1 -1
- package/dist/{index61.js → index62.js} +3 -3
- package/dist/{index61.js.map → index62.js.map} +1 -1
- package/dist/{index63.js → index64.js} +3 -3
- package/dist/{index63.js.map → index64.js.map} +1 -1
- package/dist/{index65.js → index66.js} +5 -5
- package/dist/{index65.js.map → index66.js.map} +1 -1
- package/dist/{index67.js → index68.js} +3 -3
- package/dist/{index67.js.map → index68.js.map} +1 -1
- package/dist/index7.js +78 -62
- package/dist/index7.js.map +1 -1
- package/dist/{index69.js → index70.js} +2 -2
- package/dist/{index69.js.map → index70.js.map} +1 -1
- package/dist/{index71.js → index72.js} +9 -9
- package/dist/{index71.js.map → index72.js.map} +1 -1
- package/dist/{index73.js → index74.js} +3 -3
- package/dist/{index73.js.map → index74.js.map} +1 -1
- package/dist/{index75.js → index76.js} +5 -5
- package/dist/{index75.js.map → index76.js.map} +1 -1
- package/dist/index78.js +37 -120
- package/dist/index78.js.map +1 -1
- package/dist/index79.js +130 -0
- package/dist/index79.js.map +1 -0
- package/dist/index8.js +60 -18
- package/dist/index8.js.map +1 -1
- package/dist/{index80.js → index81.js} +5 -5
- package/dist/{index80.js.map → index81.js.map} +1 -1
- package/dist/{index82.js → index83.js} +25 -24
- package/dist/{index82.js.map → index83.js.map} +1 -1
- package/dist/{index84.js → index85.js} +7 -7
- package/dist/{index84.js.map → index85.js.map} +1 -1
- package/dist/{index86.js → index87.js} +3 -3
- package/dist/{index86.js.map → index87.js.map} +1 -1
- package/dist/{index88.js → index89.js} +3 -3
- package/dist/{index88.js.map → index89.js.map} +1 -1
- package/dist/index9.js +19 -7
- package/dist/index9.js.map +1 -1
- package/dist/{index90.js → index91.js} +3 -3
- package/dist/{index90.js.map → index91.js.map} +1 -1
- package/dist/{index92.js → index93.js} +3 -3
- package/dist/{index92.js.map → index93.js.map} +1 -1
- package/dist/{index94.js → index95.js} +1 -1
- package/dist/index95.js.map +1 -0
- package/dist/{index96.js → index97.js} +3 -3
- package/dist/{index96.js.map → index97.js.map} +1 -1
- package/dist/{index98.js → index99.js} +3 -3
- package/dist/{index98.js.map → index99.js.map} +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/index120.js +0 -43
- package/dist/index120.js.map +0 -1
- package/dist/index162.js.map +0 -1
- package/dist/index164.js +0 -6
- package/dist/index164.js.map +0 -1
- package/dist/index172.js +0 -5
- package/dist/index172.js.map +0 -1
- package/dist/index186.js.map +0 -1
- package/dist/index188.js +0 -6
- package/dist/index188.js.map +0 -1
- package/dist/index214.js +0 -9
- package/dist/index214.js.map +0 -1
- package/dist/index234.js +0 -5
- package/dist/index234.js.map +0 -1
- package/dist/index240.js +0 -5
- package/dist/index240.js.map +0 -1
- package/dist/index277.js +0 -8
- package/dist/index277.js.map +0 -1
- package/dist/index300.js +0 -424
- package/dist/index300.js.map +0 -1
- package/dist/index4.js +0 -17
- package/dist/index4.js.map +0 -1
- package/dist/index77.js +0 -47
- package/dist/index77.js.map +0 -1
- package/dist/index94.js.map +0 -1
package/dist/index235.js
CHANGED
|
@@ -1,21 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
const a = (t, r) => {
|
|
3
|
-
if (!Object.prototype.hasOwnProperty.call(t, r))
|
|
4
|
-
throw new Error(
|
|
5
|
-
`Object ${JSON.stringify(t, null, 2)} has no property named "${r.toString()}"`
|
|
6
|
-
);
|
|
7
|
-
}, l = (t) => typeof t == "string" ? t.toLocaleLowerCase() : JSON.stringify(t).toLowerCase(), y = (t, r, s) => {
|
|
8
|
-
const i = s.toLocaleLowerCase();
|
|
9
|
-
for (let e = 0; e < r.length; e++) {
|
|
10
|
-
const n = r[e];
|
|
11
|
-
a(t, n);
|
|
12
|
-
const o = t[n];
|
|
13
|
-
if (c(o)) continue;
|
|
14
|
-
if (l(o).includes(i)) return !0;
|
|
15
|
-
}
|
|
16
|
-
return !1;
|
|
17
|
-
};
|
|
1
|
+
import f from "./index288.js";
|
|
18
2
|
export {
|
|
19
|
-
|
|
3
|
+
f as default
|
|
20
4
|
};
|
|
21
5
|
//# sourceMappingURL=index235.js.map
|
package/dist/index235.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index235.js","sources":[
|
|
1
|
+
{"version":3,"file":"index235.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/index236.js
CHANGED
|
@@ -1,109 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
let o = (s + e) % t.options.length;
|
|
16
|
-
for (; t.options[o].disabled && o !== s; )
|
|
17
|
-
o = a(e + 1);
|
|
18
|
-
return o;
|
|
19
|
-
}, x = () => {
|
|
20
|
-
if (!i.value) return;
|
|
21
|
-
const e = a();
|
|
22
|
-
n.value = e;
|
|
23
|
-
}, c = (e = 1) => {
|
|
24
|
-
const s = l(n.value) ? 0 : n.value;
|
|
25
|
-
let o = (s - e + t.options.length) % t.options.length;
|
|
26
|
-
for (; t.options[o].disabled && o !== s; )
|
|
27
|
-
o = c(e + 1);
|
|
28
|
-
return o;
|
|
29
|
-
}, m = async () => {
|
|
30
|
-
if (!i.value) return;
|
|
31
|
-
const e = c();
|
|
32
|
-
n.value = e;
|
|
33
|
-
}, w = () => {
|
|
34
|
-
if (!i.value) return;
|
|
35
|
-
let e = 0;
|
|
36
|
-
for (; t.options[e].disabled; )
|
|
37
|
-
e++;
|
|
38
|
-
n.value = e;
|
|
39
|
-
}, b = () => {
|
|
40
|
-
if (!i.value) return;
|
|
41
|
-
let e = t.options.length - 1;
|
|
42
|
-
for (; t.options[e].disabled && e !== 0; )
|
|
43
|
-
e--;
|
|
44
|
-
n.value = e;
|
|
45
|
-
}, I = () => {
|
|
46
|
-
if (!i.value) return;
|
|
47
|
-
let e = 0;
|
|
48
|
-
for (; !t.options[e].selected && t.options.length !== e; )
|
|
49
|
-
e++;
|
|
50
|
-
n.value = e;
|
|
51
|
-
}, g = () => {
|
|
52
|
-
if (!i.value) return;
|
|
53
|
-
let e = t.options.length - 1;
|
|
54
|
-
for (; t.options[e].selected && e !== 0; )
|
|
55
|
-
e--;
|
|
56
|
-
n.value = e;
|
|
57
|
-
}, _ = (e) => {
|
|
58
|
-
if (!i.value) return;
|
|
59
|
-
const s = t.options.findIndex(
|
|
60
|
-
(o) => o.valueHash === e
|
|
61
|
-
);
|
|
62
|
-
s >= 0 && (n.value = s);
|
|
63
|
-
}, r = () => {
|
|
64
|
-
n.value = null;
|
|
65
|
-
}, k = () => {
|
|
66
|
-
if (l(n.value)) return;
|
|
67
|
-
const e = t.options[n.value];
|
|
68
|
-
e.selected && u("option:unselected", e);
|
|
69
|
-
}, C = () => l(n.value) ? void 0 : t.options[n.value];
|
|
70
|
-
return N(
|
|
71
|
-
() => t.options,
|
|
72
|
-
(e, s) => {
|
|
73
|
-
d(e) !== d(s) && r();
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
flush: "post"
|
|
77
|
-
}
|
|
78
|
-
), v({
|
|
79
|
-
focusNext: x,
|
|
80
|
-
focusPrevious: m,
|
|
81
|
-
focusFirst: w,
|
|
82
|
-
focusFirstSelected: I,
|
|
83
|
-
focusLast: b,
|
|
84
|
-
focusLastSelected: g,
|
|
85
|
-
blur: r,
|
|
86
|
-
confirmOption: k,
|
|
87
|
-
focusByHash: _,
|
|
88
|
-
getHighlighted: C
|
|
89
|
-
}), (e, s) => (p(!0), L(S, null, V(e.options, (o, B) => (p(), A(E, {
|
|
90
|
-
key: o.valueHash,
|
|
91
|
-
class: O({
|
|
92
|
-
"bb-chipsbox-item": !0,
|
|
93
|
-
"bb-chipsbox-item--focused": B === n.value
|
|
94
|
-
}),
|
|
95
|
-
clearable: !0,
|
|
96
|
-
text: o.text,
|
|
97
|
-
"onClick:clear": P((M) => u("option:unselected", o), ["stop"])
|
|
98
|
-
}, {
|
|
99
|
-
default: $(() => [
|
|
100
|
-
z(D(o.text), 1)
|
|
101
|
-
]),
|
|
102
|
-
_: 2
|
|
103
|
-
}, 1032, ["class", "text", "onClick:clear"]))), 128));
|
|
1
|
+
import { isNil as c } from "./index126.js";
|
|
2
|
+
const a = (t, r) => {
|
|
3
|
+
if (!Object.prototype.hasOwnProperty.call(t, r))
|
|
4
|
+
throw new Error(
|
|
5
|
+
`Object ${JSON.stringify(t, null, 2)} has no property named "${r.toString()}"`
|
|
6
|
+
);
|
|
7
|
+
}, l = (t) => typeof t == "string" ? t.toLocaleLowerCase() : JSON.stringify(t).toLowerCase(), y = (t, r, s) => {
|
|
8
|
+
const i = s.toLocaleLowerCase();
|
|
9
|
+
for (let e = 0; e < r.length; e++) {
|
|
10
|
+
const n = r[e];
|
|
11
|
+
a(t, n);
|
|
12
|
+
const o = t[n];
|
|
13
|
+
if (c(o)) continue;
|
|
14
|
+
if (l(o).includes(i)) return !0;
|
|
104
15
|
}
|
|
105
|
-
|
|
16
|
+
return !1;
|
|
17
|
+
};
|
|
106
18
|
export {
|
|
107
|
-
|
|
19
|
+
y as matchAnyKey
|
|
108
20
|
};
|
|
109
21
|
//# sourceMappingURL=index236.js.map
|
package/dist/index236.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index236.js","sources":["../src/
|
|
1
|
+
{"version":3,"file":"index236.js","sources":["../src/utilities/functions/matchAnyKey.ts"],"sourcesContent":["import { isNil } from './isNil';\n\nconst ensureKeyExists = <T extends object>(item: T, key: keyof T) => {\n\tif (!Object.prototype.hasOwnProperty.call(item, key)) {\n\t\tthrow new Error(\n\t\t\t`Object ${JSON.stringify(item, null, 2)} has no property named \"${key.toString()}\"`\n\t\t);\n\t}\n};\nconst asString = (value: any) => {\n\tif (typeof value === 'string') return value.toLocaleLowerCase();\n\treturn JSON.stringify(value).toLowerCase();\n};\n\n/**\n * Return true or false based on whether the query is included in the passed keys\n * @param item The object to test\n * @param keys The keys to be tested as haystack\n * @param query The query to searched as needle\n * @returns boolean\n */\nexport const matchAnyKey = <T extends object>(\n\titem: T,\n\tkeys: (keyof T)[],\n\tquery: string\n) => {\n\tconst lcQuery = query.toLocaleLowerCase();\n\tfor (let index = 0; index < keys.length; index++) {\n\t\tconst key = keys[index];\n\t\tensureKeyExists(item, key);\n\t\tconst value = item[key];\n\t\tif (isNil(value)) continue;\n\t\tconst valueAsString = asString(value);\n\t\tif (valueAsString.includes(lcQuery)) return true;\n\t}\n\treturn false;\n};\n"],"names":["ensureKeyExists","item","key","asString","value","matchAnyKey","keys","query","lcQuery","index","isNil"],"mappings":";AAEA,MAAMA,IAAkB,CAAmBC,GAASC,MAAiB;AACpE,MAAI,CAAC,OAAO,UAAU,eAAe,KAAKD,GAAMC,CAAG;AAClD,UAAM,IAAI;AAAA,MACT,UAAU,KAAK,UAAUD,GAAM,MAAM,CAAC,CAAC,2BAA2BC,EAAI,SAAA,CAAU;AAAA,IAAA;AAGnF,GACMC,IAAW,CAACC,MACb,OAAOA,KAAU,WAAiBA,EAAM,kBAAkB,IACvD,KAAK,UAAUA,CAAK,EAAE,YAAY,GAU7BC,IAAc,CAC1BJ,GACAK,GACAC,MACI;AACE,QAAAC,IAAUD,EAAM;AACtB,WAASE,IAAQ,GAAGA,IAAQH,EAAK,QAAQG,KAAS;AAC3C,UAAAP,IAAMI,EAAKG,CAAK;AACtB,IAAAT,EAAgBC,GAAMC,CAAG;AACnB,UAAAE,IAAQH,EAAKC,CAAG;AAClB,QAAAQ,EAAMN,CAAK,EAAG;AAElB,QADsBD,EAASC,CAAK,EAClB,SAASI,CAAO,EAAU,QAAA;AAAA,EAC7C;AACO,SAAA;AACR;"}
|
package/dist/index237.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { defineComponent as y, ref as F, computed as H, watch as N, openBlock as p, createElementBlock as L, Fragment as S, renderList as V, createBlock as A, normalizeClass as O, withModifiers as P, withCtx as $, createTextVNode as z, toDisplayString as D } from "vue";
|
|
2
|
+
import { hash as d } from "./index226.js";
|
|
3
|
+
import { isNil as l } from "./index126.js";
|
|
4
|
+
import E from "./index121.js";
|
|
5
|
+
/* empty css */
|
|
6
|
+
const K = /* @__PURE__ */ y({
|
|
7
|
+
__name: "ChipsBox",
|
|
8
|
+
props: {
|
|
9
|
+
options: {}
|
|
10
|
+
},
|
|
11
|
+
emits: ["option:unselected"],
|
|
12
|
+
setup(f, { expose: v, emit: h }) {
|
|
13
|
+
const t = f, u = h, n = F(null), i = H(() => t.options.some((e) => !e.disabled)), a = (e = 1) => {
|
|
14
|
+
const s = l(n.value) ? -1 : n.value;
|
|
15
|
+
let o = (s + e) % t.options.length;
|
|
16
|
+
for (; t.options[o].disabled && o !== s; )
|
|
17
|
+
o = a(e + 1);
|
|
18
|
+
return o;
|
|
19
|
+
}, x = () => {
|
|
20
|
+
if (!i.value) return;
|
|
21
|
+
const e = a();
|
|
22
|
+
n.value = e;
|
|
23
|
+
}, c = (e = 1) => {
|
|
24
|
+
const s = l(n.value) ? 0 : n.value;
|
|
25
|
+
let o = (s - e + t.options.length) % t.options.length;
|
|
26
|
+
for (; t.options[o].disabled && o !== s; )
|
|
27
|
+
o = c(e + 1);
|
|
28
|
+
return o;
|
|
29
|
+
}, m = async () => {
|
|
30
|
+
if (!i.value) return;
|
|
31
|
+
const e = c();
|
|
32
|
+
n.value = e;
|
|
33
|
+
}, w = () => {
|
|
34
|
+
if (!i.value) return;
|
|
35
|
+
let e = 0;
|
|
36
|
+
for (; t.options[e].disabled; )
|
|
37
|
+
e++;
|
|
38
|
+
n.value = e;
|
|
39
|
+
}, b = () => {
|
|
40
|
+
if (!i.value) return;
|
|
41
|
+
let e = t.options.length - 1;
|
|
42
|
+
for (; t.options[e].disabled && e !== 0; )
|
|
43
|
+
e--;
|
|
44
|
+
n.value = e;
|
|
45
|
+
}, I = () => {
|
|
46
|
+
if (!i.value) return;
|
|
47
|
+
let e = 0;
|
|
48
|
+
for (; !t.options[e].selected && t.options.length !== e; )
|
|
49
|
+
e++;
|
|
50
|
+
n.value = e;
|
|
51
|
+
}, g = () => {
|
|
52
|
+
if (!i.value) return;
|
|
53
|
+
let e = t.options.length - 1;
|
|
54
|
+
for (; t.options[e].selected && e !== 0; )
|
|
55
|
+
e--;
|
|
56
|
+
n.value = e;
|
|
57
|
+
}, _ = (e) => {
|
|
58
|
+
if (!i.value) return;
|
|
59
|
+
const s = t.options.findIndex(
|
|
60
|
+
(o) => o.valueHash === e
|
|
61
|
+
);
|
|
62
|
+
s >= 0 && (n.value = s);
|
|
63
|
+
}, r = () => {
|
|
64
|
+
n.value = null;
|
|
65
|
+
}, k = () => {
|
|
66
|
+
if (l(n.value)) return;
|
|
67
|
+
const e = t.options[n.value];
|
|
68
|
+
e.selected && u("option:unselected", e);
|
|
69
|
+
}, C = () => l(n.value) ? void 0 : t.options[n.value];
|
|
70
|
+
return N(
|
|
71
|
+
() => t.options,
|
|
72
|
+
(e, s) => {
|
|
73
|
+
d(e) !== d(s) && r();
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
flush: "post"
|
|
77
|
+
}
|
|
78
|
+
), v({
|
|
79
|
+
focusNext: x,
|
|
80
|
+
focusPrevious: m,
|
|
81
|
+
focusFirst: w,
|
|
82
|
+
focusFirstSelected: I,
|
|
83
|
+
focusLast: b,
|
|
84
|
+
focusLastSelected: g,
|
|
85
|
+
blur: r,
|
|
86
|
+
confirmOption: k,
|
|
87
|
+
focusByHash: _,
|
|
88
|
+
getHighlighted: C
|
|
89
|
+
}), (e, s) => (p(!0), L(S, null, V(e.options, (o, B) => (p(), A(E, {
|
|
90
|
+
key: o.valueHash,
|
|
91
|
+
class: O({
|
|
92
|
+
"bb-chipsbox-item": !0,
|
|
93
|
+
"bb-chipsbox-item--focused": B === n.value
|
|
94
|
+
}),
|
|
95
|
+
clearable: !0,
|
|
96
|
+
text: o.text,
|
|
97
|
+
"onClick:clear": P((M) => u("option:unselected", o), ["stop"])
|
|
98
|
+
}, {
|
|
99
|
+
default: $(() => [
|
|
100
|
+
z(D(o.text), 1)
|
|
101
|
+
]),
|
|
102
|
+
_: 2
|
|
103
|
+
}, 1032, ["class", "text", "onClick:clear"]))), 128));
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
export {
|
|
107
|
+
K as default
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=index237.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index237.js","sources":["../src/components/ChipsBox.vue"],"sourcesContent":["<template>\n\t<BbChip\n\t\tv-for=\"(item, index) in options\"\n\t\t:key=\"item.valueHash\"\n\t\t:class=\"{\n\t\t\t'bb-chipsbox-item': true,\n\t\t\t'bb-chipsbox-item--focused': index === focusedIndex,\n\t\t}\"\n\t\t:clearable=\"true\"\n\t\t:text=\"item.text\"\n\t\t@click:clear.stop=\"emit('option:unselected', item)\"\n\t\t>{{ item.text }}</BbChip\n\t>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { hash } from '@/utilities/functions/hash';\nimport { isNil } from '@/utilities/functions/isNil';\nimport { ref } from 'vue';\nimport { watch } from 'vue';\nimport BbChip from './BbChip/BbChip.vue';\nimport type { Option } from '@/types/Option';\n\ntype Props = {\n\toptions: Option[];\n};\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n\t(e: 'option:unselected', option: Option): void;\n}>();\n\n/**\n * START FOCUS HANDLING\n */\n\nconst focusedIndex = ref<null | number>(null);\n\nconst canFocus = computed(() => props.options.some((o) => !o.disabled));\n\nconst findNextAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? -1 : focusedIndex.value!;\n\tlet newIndex = (initialValue + offset) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findNextAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\n\nconst focusNext = () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findNextAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\nconst findPreviousAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? 0 : focusedIndex.value!;\n\tlet newIndex =\n\t\t(initialValue - offset + props.options.length) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findPreviousAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\nconst focusPrevious = async () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findPreviousAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusFirst = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (props.options[newIndex].disabled) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusLast = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].disabled && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusFirstSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (\n\t\t!props.options[newIndex].selected &&\n\t\tprops.options.length !== newIndex\n\t) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusLastSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].selected && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusByHash = (hash: Option['valueHash']) => {\n\tif (!canFocus.value) return;\n\tconst linkedOptionIndex = props.options.findIndex(\n\t\t(o) => o.valueHash === hash\n\t);\n\tif (linkedOptionIndex >= 0) {\n\t\tfocusedIndex.value = linkedOptionIndex;\n\t}\n};\n\nconst blur = () => {\n\tfocusedIndex.value = null;\n};\n\n/**\n * END FOCUS HANDLING\n */\n\nconst confirmOption = () => {\n\tif (isNil(focusedIndex.value)) return;\n\tconst option = props.options[focusedIndex.value!];\n\tif (option.selected) {\n\t\temit('option:unselected', option);\n\t}\n};\n\nconst getHighlighted = () => {\n\tif (isNil(focusedIndex.value)) return;\n\tconst option = props.options[focusedIndex.value!];\n\treturn option;\n};\n\nwatch(\n\t() => props.options,\n\t(value, previous) => {\n\t\tif (hash(value) !== hash(previous)) {\n\t\t\tblur();\n\t\t}\n\t},\n\t{\n\t\tflush: 'post',\n\t}\n);\n\ndefineExpose({\n\tfocusNext,\n\tfocusPrevious,\n\tfocusFirst,\n\tfocusFirstSelected,\n\tfocusLast,\n\tfocusLastSelected,\n\tblur,\n\tconfirmOption,\n\tfocusByHash,\n\tgetHighlighted,\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/ChipsBox';\n</style>\n"],"names":["props","__props","emit","__emit","focusedIndex","ref","canFocus","computed","o","findNextAvailableIndex","offset","initialValue","isNil","newIndex","focusNext","findPreviousAvailableIndex","focusPrevious","focusFirst","focusLast","focusFirstSelected","focusLastSelected","focusByHash","hash","linkedOptionIndex","blur","confirmOption","option","getHighlighted","watch","value","previous","__expose"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent as F, ref as H, computed as L, watch as N, openBlock as d, createElementBlock as v, Fragment as S, renderList as A, normalizeClass as O, withModifiers as P, toDisplayString as V } from "vue";
|
|
2
|
-
import { hash as f } from "./
|
|
3
|
-
import { isNil as i } from "./
|
|
2
|
+
import { hash as f } from "./index226.js";
|
|
3
|
+
import { isNil as i } from "./index126.js";
|
|
4
4
|
const z = ["text", "onClick:clear"], j = /* @__PURE__ */ F({
|
|
5
5
|
__name: "CommaBox",
|
|
6
6
|
props: {
|
|
@@ -100,4 +100,4 @@ const z = ["text", "onClick:clear"], j = /* @__PURE__ */ F({
|
|
|
100
100
|
export {
|
|
101
101
|
j as default
|
|
102
102
|
};
|
|
103
|
-
//# sourceMappingURL=
|
|
103
|
+
//# sourceMappingURL=index239.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index239.js","sources":["../src/components/CommaBox.vue"],"sourcesContent":["<template>\n\t<span\n\t\tv-for=\"(item, index) in options\"\n\t\t:key=\"item.valueHash\"\n\t\t:class=\"{\n\t\t\t'bb-commabox-item': true,\n\t\t\t'bb-commabox-item--focused': index === focusedIndex,\n\t\t\t'bb-commabox-item--has-comma': index !== options.length - 1,\n\t\t}\"\n\t\t:clearable=\"true\"\n\t\t:text=\"item.text\"\n\t\t@click:clear.stop=\"emit('option:unselected', item)\"\n\t\t>{{ item.text }}</span\n\t>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { hash } from '@/utilities/functions/hash';\nimport { isNil } from '@/utilities/functions/isNil';\nimport { ref } from 'vue';\nimport { watch } from 'vue';\nimport type { Option } from '@/types/Option';\n\ntype Props = {\n\toptions: Option[];\n};\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n\t(e: 'option:unselected', option: Option): void;\n}>();\n\n/**\n * START FOCUS HANDLING\n */\n\nconst focusedIndex = ref<null | number>(null);\n\nconst canFocus = computed(() => props.options.some((o) => !o.disabled));\n\nconst findNextAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? -1 : focusedIndex.value!;\n\tlet newIndex = (initialValue + offset) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findNextAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\n\nconst focusNext = () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findNextAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\nconst findPreviousAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? 0 : focusedIndex.value!;\n\tlet newIndex =\n\t\t(initialValue - offset + props.options.length) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findPreviousAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\nconst focusPrevious = async () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findPreviousAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusFirst = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (props.options[newIndex].disabled) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusLast = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].disabled && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusFirstSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (\n\t\t!props.options[newIndex].selected &&\n\t\tprops.options.length !== newIndex\n\t) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusLastSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].selected && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusByHash = (hash: Option['valueHash']) => {\n\tif (!canFocus.value) return;\n\tconst linkedOptionIndex = props.options.findIndex(\n\t\t(o) => o.valueHash === hash\n\t);\n\tif (linkedOptionIndex >= 0) {\n\t\tfocusedIndex.value = linkedOptionIndex;\n\t}\n};\n\nconst blur = () => {\n\tfocusedIndex.value = null;\n};\n\n/**\n * END FOCUS HANDLING\n */\n\nconst confirmOption = () => {\n\tif (!focusedIndex.value) return;\n\tconst option = props.options[focusedIndex.value];\n\tif (option.selected) {\n\t\temit('option:unselected', option);\n\t}\n};\n\nconst getHighlighted = () => {\n\tif (isNil(focusedIndex.value)) return;\n\tconst option = props.options[focusedIndex.value!];\n\treturn option;\n};\n\nwatch(\n\t() => props.options,\n\t(value, previous) => {\n\t\tif (hash(value) !== hash(previous)) {\n\t\t\tblur();\n\t\t}\n\t},\n\t{\n\t\tflush: 'post',\n\t}\n);\n\ndefineExpose({\n\tfocusNext,\n\tfocusPrevious,\n\tfocusFirst,\n\tfocusFirstSelected,\n\tfocusLast,\n\tfocusLastSelected,\n\tblur,\n\tconfirmOption,\n\tfocusByHash,\n\tgetHighlighted,\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/CommaBox';\n</style>\n"],"names":["props","__props","emit","__emit","focusedIndex","ref","canFocus","computed","o","findNextAvailableIndex","offset","initialValue","isNil","newIndex","focusNext","findPreviousAvailableIndex","focusPrevious","focusFirst","focusLast","focusFirstSelected","focusLastSelected","focusByHash","hash","linkedOptionIndex","blur","confirmOption","option","getHighlighted","watch","value","previous","__expose"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { defineComponent as ae, ref as o, getCurrentInstance as se, computed as m, nextTick as N, useAttrs as ne, onMounted as ie, onBeforeUnmount as F, watch as re, openBlock as _, createBlock as ue, Teleport as de, createElementVNode as a, mergeProps as G, createElementBlock as T, renderSlot as u, createTextVNode as ce, toDisplayString as P, createCommentVNode as z } from "vue";
|
|
2
|
-
import { throttle as ve } from "./
|
|
3
|
-
import { useFocusTrap as fe } from "./
|
|
4
|
-
import { useId as K } from "./
|
|
5
|
-
import { wait as H } from "./
|
|
6
|
-
import { waitFor as be } from "./
|
|
7
|
-
import { useModalsState as k } from "./
|
|
8
|
-
import { useLogger as pe } from "./
|
|
2
|
+
import { throttle as ve } from "./index222.js";
|
|
3
|
+
import { useFocusTrap as fe } from "./index210.js";
|
|
4
|
+
import { useId as K } from "./index9.js";
|
|
5
|
+
import { wait as H } from "./index128.js";
|
|
6
|
+
import { waitFor as be } from "./index212.js";
|
|
7
|
+
import { useModalsState as k } from "./index223.js";
|
|
8
|
+
import { useLogger as pe } from "./index218.js";
|
|
9
9
|
const me = { class: "bb-base-dialog-close" }, ge = ["aria-label"], ye = /* @__PURE__ */ a("span", { class: "bb-base-dialog-close__icon" }, [
|
|
10
10
|
/* @__PURE__ */ a("svg", {
|
|
11
11
|
"aria-hidden": "true",
|
|
@@ -259,4 +259,4 @@ const me = { class: "bb-base-dialog-close" }, ge = ["aria-label"], ye = /* @__PU
|
|
|
259
259
|
export {
|
|
260
260
|
ze as default
|
|
261
261
|
};
|
|
262
|
-
//# sourceMappingURL=
|
|
262
|
+
//# sourceMappingURL=index24.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index23.js","sources":["../src/components/BaseDialog/BaseDialog.vue"],"sourcesContent":["<template>\n\t<teleport to=\"body\">\n\t\t<div v-bind=\"overlayAttributes\" ref=\"overlay\">\n\t\t\t<div v-bind=\"panelAttributes\" ref=\"panel\">\n\t\t\t\t<div\n\t\t\t\t\tv-if=\"hasRenderedAtLeastOnce\"\n\t\t\t\t\tref=\"content\"\n\t\t\t\t\tclass=\"bb-base-dialog__content\"\n\t\t\t\t>\n\t\t\t\t\t<div ref=\"header\" class=\"bb-base-dialog__header\">\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t:close=\"onCloseClick\"\n\t\t\t\t\t\t\tname=\"header\"\n\t\t\t\t\t\t\t:title=\"title\"\n\t\t\t\t\t\t\t:title-id=\"titleId\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span :id=\"titleId\" class=\"bb-base-dialog__title\">\n\t\t\t\t\t\t\t\t<slot name=\"title\" :text=\"title\">{{ title }}</slot>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span class=\"bb-base-dialog-close\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tv-if=\"showClose\"\n\t\t\t\t\t\t\t\t\t:aria-label=\"closeLabel\"\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t@click=\"onCloseClick\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<slot name=\"close\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"bb-base-dialog-close__icon\"\n\t\t\t\t\t\t\t\t\t\t\t><svg\n\t\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\t\t\t\t\td=\"M23 23L1 1M23 1L1 23\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div ref=\"body\" class=\"bb-base-dialog__body\">\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t:description-id=\"descriptionId\"\n\t\t\t\t\t\t\tname=\"description\"\n\t\t\t\t\t\t\t:text=\"description\"\n\t\t\t\t\t\t\t><div\n\t\t\t\t\t\t\t\tv-if=\"description\"\n\t\t\t\t\t\t\t\t:id=\"descriptionId\"\n\t\t\t\t\t\t\t\tclass=\"bb-base-dialog__description sr-only\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{{ description }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div style=\"flex: 10000 10000 0%\"></div>\n\t\t\t\t\t<div ref=\"footer\" class=\"bb-base-dialog__footer\">\n\t\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n\tcomputed,\n\tonBeforeUnmount,\n\tonMounted,\n\tref,\n\tuseAttrs,\n\tnextTick,\n\tgetCurrentInstance,\n\twatch,\n} from 'vue';\nimport { throttle } from '@/utilities/functions/throttle';\nimport { useFocusTrap } from '@vueuse/integrations/useFocusTrap';\nimport { useId } from '@/composables/useId';\nimport { wait } from '@/utilities/functions/wait';\nimport { waitFor } from '@/utilities/functions/waitFor';\nimport type { CommonProps, Size } from '@/types/CommonProps';\nimport { useModalsState } from '@/composables/useModalsState';\nimport { useLogger } from '@/composables/useLogger';\n\nexport type Sizes = {\n\tsm: number;\n\tmd: number;\n\tlg: number;\n};\n\nexport type BaseDialogProps = Pick<\n\tCommonProps,\n\t| 'closeLabel'\n\t| 'compact'\n\t| 'disabled'\n\t| 'eager'\n\t| 'panelClasses'\n\t| 'overlayClasses'\n\t| 'persistent'\n\t| 'showClose'\n\t| 'title'\n\t| 'transition'\n\t| 'transitionDuration'\n> &\n\tSize<Sizes> & {\n\t\t/**\n\t\t * Description of the content of the modal. Extremely useful for accessibility reasons.\n\t\t */\n\t\tdescription?: string;\n\t\t/**\n\t\t * Elements that obtains focus immediately after opening the dialog.\n\t\t * By default it's the first tabbable item.\n\t\t */\n\t\tfocusTarget?: string;\n\t\t/**\n\t\t * Displays the modala as fulscreen with no margin to the page\n\t\t */\n\t\tfullscreen?: boolean;\n\t\t/**\n\t\t * Defines the state open / closed of the modal.\n\t\t */\n\t\tmodelValue?: boolean | null;\n\t};\n\nconst props = withDefaults(defineProps<BaseDialogProps>(), {\n\tcloseLabel: 'Chiudi modale',\n\tshowClose: true,\n\tsize: 'sm',\n\ttransition: 'fade',\n\ttransitionDuration: 350,\n\tpanelClasses: () => [],\n\toverlayClasses: () => [],\n});\n\nexport type BaseDialogSlots = {\n\theader?: (props: {\n\t\ttitleId: typeof titleId;\n\t\tclose: typeof onCloseClick;\n\t\ttitle: BaseDialogProps['title'];\n\t}) => any;\n\ttitle?: (props: { text: BaseDialogProps['title'] }) => any;\n\tclose?: (props: object) => any;\n\tdescription?: (props: {\n\t\tdescriptionId: typeof descriptionId;\n\t\ttext: BaseDialogProps['description'];\n\t}) => any;\n\tdefault?: (props: object) => any;\n\tfooter?: (props: object) => any;\n};\n\ndefineSlots<BaseDialogSlots>();\n\nexport type BaseDialogEvents = {\n\t(e: 'shown'): void;\n\t(e: 'hidden'): void;\n\t(e: 'update:modelValue', value: boolean): void;\n};\n\nconst emit = defineEmits<BaseDialogEvents>();\n\nconst titleId = `title_${useId().id.value}`;\nconst descriptionId = `description_${useId().id.value}`;\n\nconst observer = ref<ResizeObserver | null>(null);\nconst overlay = ref<HTMLElement | null>(null);\nconst panel = ref<HTMLElement | null>(null);\nconst content = ref<HTMLElement | null>(null);\nconst header = ref<HTMLElement | null>(null);\nconst body = ref<HTMLElement | null>(null);\nconst footer = ref<HTMLElement | null>(null);\nconst height = ref<number | null>(null);\n\n// @ts-expect-error possibly undef\nconst isNuxt = !!getCurrentInstance()?.proxy?.$nuxt;\n\nconst orderInStack = ref(0);\nconst isCurrent = computed(() => {\n\tconst { openedModals } = useModalsState();\n\treturn openedModals.value && openedModals.value === orderInStack.value;\n});\n\nconst { activate, deactivate } = useFocusTrap(panel, {\n\tinitialFocus: props.focusTarget ?? undefined,\n\tclickOutsideDeactivates: (event) => {\n\t\t// This is used when other teleports are running.\n\t\t// eg if you have a select inside a modal it will be in fact outside of the modal because of teleport\n\t\treturn event.target === overlay.value;\n\t},\n\tallowOutsideClick: true,\n\t/* On esc deactivate the trap, return focus and then close the modal */\n\tescapeDeactivates: () => {\n\t\tnextTick(() => {\n\t\t\temit('update:modelValue', false);\n\t\t});\n\t\treturn true;\n\t},\n});\n\nconst attrs = useAttrs();\n\nconst closeLabel = computed(() => props.closeLabel);\n\nonMounted(async () => {\n\tif (body.value) {\n\t\tobserver.value = new ResizeObserver(onContentGrow);\n\t\tobserver.value.observe(body.value);\n\t}\n\twindow.addEventListener('resize', onContentGrow);\n\n\tonContentGrow();\n\tif (!props.modelValue && !hasRenderedAtLeastOnce.value) return;\n\tif (isNuxt && !globalThis.document) return;\n\talignToModelValue();\n});\nonBeforeUnmount(() => {\n\twindow.removeEventListener('resize', onContentGrow);\n});\n\nconst open = ref(false);\nconst opening = ref(false);\nconst closed = ref(true);\nconst closing = ref(false);\nconst hasRenderedAtLeastOnce = ref(props.eager || props.modelValue);\n\nconst busy = computed(() => opening.value || closing.value);\n\nconst restrictBody = () => {\n\tif (!globalThis.document) return;\n\tconst scrollBarWidth =\n\t\twindow.innerWidth - document.documentElement.clientWidth;\n\tdocument.body.style.overflow = 'hidden';\n\tdocument.body.style.paddingRight = `${scrollBarWidth}px`;\n};\nconst releaseBody = () => {\n\tif (!globalThis.document) return;\n\tdocument.body.style.overflow = 'auto';\n\tdocument.body.style.paddingRight = '0px';\n};\n\nonBeforeUnmount(() => {\n\tif (props.modelValue) {\n\t\tconst { openedModals, modalHasClosed } = useModalsState();\n\t\tif (openedModals.value) {\n\t\t\tmodalHasClosed();\n\t\t\torderInStack.value = 0;\n\t\t\treleaseBody();\n\t\t}\n\t}\n});\n\n/**\n * When modelValue becomes true if the component wasn't rendered render it\n * and wait for it to be on the page (or transitions would not work).\n * Stash the latest focused element so we can return it later when it closes.\n * Focus on the panel upon opening.\n * ---\n * Notice all interactions update modelValue and then this function aligns the display to it\n */\nconst alignToModelValue = async () => {\n\tif (props.modelValue) {\n\t\tif (!hasRenderedAtLeastOnce.value) {\n\t\t\thasRenderedAtLeastOnce.value = true;\n\t\t\tawait waitFor(() => !!body.value);\n\t\t\tawait nextTick();\n\t\t\tif (body.value) {\n\t\t\t\tobserver.value = new ResizeObserver(onContentGrow);\n\t\t\t\tobserver.value.observe(body.value);\n\t\t\t}\n\t\t}\n\n\t\tclosed.value = false;\n\t\tclosing.value = false;\n\t\topening.value = true;\n\n\t\t// This prevents overscroll chaining (additional scrolling to the body when the modal has been completely scrolled)\n\t\tconst { modalHasOpened, openedModals } = useModalsState();\n\t\tmodalHasOpened();\n\t\torderInStack.value = openedModals.value;\n\t\trestrictBody();\n\n\t\tawait wait(props.transitionDuration);\n\t\topening.value = false;\n\t\topen.value = true;\n\t\temit('shown');\n\t\tactivate();\n\t} else {\n\t\tdeactivate();\n\t\topening.value = false;\n\t\topen.value = false;\n\t\tclosing.value = true;\n\n\t\tawait wait(props.transitionDuration);\n\n\t\tclosing.value = false;\n\t\tclosed.value = true;\n\t\tconst { modalHasClosed, openedModals } = useModalsState();\n\t\tmodalHasClosed();\n\t\torderInStack.value = 0;\n\t\tif (!openedModals.value) {\n\t\t\treleaseBody();\n\t\t}\n\t\temit('hidden');\n\t}\n};\n/**\n * Every time modelValue changes align the display to it\n */\nwatch(\n\t() => props.modelValue,\n\t() => {\n\t\tif (!props.modelValue && !hasRenderedAtLeastOnce.value) return;\n\t\tif (isNuxt && !globalThis.document) return;\n\t\talignToModelValue();\n\t},\n\t{ flush: 'post' }\n);\n\n/**\n * Disable scrolling\n */\nconst onOverlayScroll = (event: Event) => {\n\tif (event.target === overlay.value) {\n\t\tevent.preventDefault();\n\t}\n};\n\n/**\n * Close the modal on overlay click if not persistent\n */\nconst onOverlayClick = (event: MouseEvent) => {\n\tif (props.disabled || busy.value) return;\n\tif (overlay.value) {\n\t\tif (event.target === overlay.value) {\n\t\t\tif (!props.persistent) {\n\t\t\t\temit('update:modelValue', false);\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * On click on the X button\n */\nconst onCloseClick = () => {\n\tif (props.disabled || busy.value) return;\n\tdeactivate();\n\temit('update:modelValue', false);\n};\n\nconst overlayAttributes = computed(() => {\n\tconst classes = [\n\t\t{\n\t\t\t'bb-base-dialog bb-base-dialog__overlay': true,\n\t\t\t'bb-base-dialog--fullscreen': props.fullscreen,\n\t\t\t'bb-base-dialog--faded': !isCurrent.value,\n\t\t\t'bb-base-dialog--open': open.value,\n\t\t\t'bb-base-dialog--opening': opening.value,\n\t\t\t'bb-base-dialog--closed': closed.value,\n\t\t\t'bb-base-dialog--closing': closing.value,\n\t\t\t[`bb-base-dialog--transition-${props.transition}`]: true,\n\t\t},\n\t\tprops.overlayClasses,\n\t].flat();\n\tconst eventListeners = {\n\t\tonClick: onOverlayClick,\n\t\tonScroll: onOverlayScroll,\n\t\tonTouchmove: onOverlayScroll,\n\t\tonWheel: onOverlayScroll,\n\t\tonKeydown: onOverlayScroll,\n\t};\n\n\tconst style = {\n\t\ttransitionDuration: props.transitionDuration / 1000 + 's',\n\t};\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t\t...eventListeners,\n\t\t...attrs,\n\t};\n});\n\nconst panelAttributes = computed(() => {\n\tconst classes = [\n\t\t{\n\t\t\t'bb-base-dialog__panel': true,\n\t\t\t'bb-base-dialog__panel--compact': props.compact,\n\t\t},\n\t\tprops.panelClasses,\n\t].flat();\n\n\tconst accessibilityAttrs: {\n\t\t[key: string]: string | boolean;\n\t} = {\n\t\trole: 'dialog',\n\t\t'aria-modal': true,\n\t};\n\n\tif (hasRenderedAtLeastOnce.value) {\n\t\tif (props.title) {\n\t\t\taccessibilityAttrs['aria-labelledby'] = titleId;\n\t\t}\n\n\t\tif (props.description)\n\t\t\taccessibilityAttrs['aria-describedby'] = descriptionId;\n\t}\n\n\tlet maxWidth;\n\tconst sizes: Sizes = {\n\t\tsm: 384,\n\t\tmd: 652,\n\t\tlg: 896,\n\t};\n\tif (props.fullscreen) maxWidth = '100%';\n\telse if (typeof props.size === 'number') maxWidth = props.size + 'px';\n\telse if (props.size in sizes)\n\t\tmaxWidth = sizes[props.size as keyof Sizes] + 'px';\n\telse maxWidth = props.size + 'px';\n\n\tconst style = {\n\t\tmaxWidth,\n\t\ttransitionDuration: props.transitionDuration / 1000 + 's',\n\t};\n\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t\t...accessibilityAttrs,\n\t};\n});\n\nlet calledGrowTimes = 0;\n\n/**\n * This is called when content inside body changes.\n * Gets the total height the panel needs to be\n * It could be called numerous times so throttle every 300ms\n */\nconst onContentGrow = throttle(\n\tasync () => {\n\t\tcalledGrowTimes++;\n\t\tif (calledGrowTimes === 100) {\n\t\t\tconst { error } = useLogger();\n\t\t\terror(\n\t\t\t\t'Dialog is updating its height too often. Please check the content is reliably sized.'\n\t\t\t);\n\t\t}\n\t\tif (props.fullscreen) {\n\t\t\theight.value = window.innerHeight;\n\t\t\treturn;\n\t\t}\n\t\tif (header.value && body.value && footer.value) {\n\t\t\tconst contentHeight =\n\t\t\t\theader.value.scrollHeight +\n\t\t\t\tbody.value.scrollHeight +\n\t\t\t\tfooter.value.scrollHeight +\n\t\t\t\t2;\n\t\t\t/* Add two so renderless elements at the bottom are not cut off */\n\t\t\tif (content.value) {\n\t\t\t\tcontent.value.style.height = '0px';\n\t\t\t\tcontent.value.style.height = `${contentHeight + 2}px`;\n\t\t\t\t/**\n\t\t\t\t * Run until all transitions inside have completed\n\t\t\t\t */\n\t\t\t\tawait wait(30);\n\t\t\t\tif (header.value && body.value && footer.value) {\n\t\t\t\t\tconst contentHeight2 =\n\t\t\t\t\t\theader.value.scrollHeight +\n\t\t\t\t\t\tbody.value.scrollHeight +\n\t\t\t\t\t\tfooter.value.scrollHeight +\n\t\t\t\t\t\t2;\n\t\t\t\t\tif (contentHeight !== contentHeight2) onContentGrow();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t200,\n\t{ trailing: true }\n);\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BaseDialog';\n</style>\n"],"names":["props","__props","emit","__emit","titleId","useId","descriptionId","observer","ref","overlay","panel","content","header","body","footer","height","isNuxt","_b","_a","getCurrentInstance","orderInStack","isCurrent","computed","openedModals","useModalsState","activate","deactivate","useFocusTrap","event","nextTick","attrs","useAttrs","closeLabel","onMounted","onContentGrow","hasRenderedAtLeastOnce","alignToModelValue","onBeforeUnmount","open","opening","closed","closing","busy","restrictBody","scrollBarWidth","releaseBody","modalHasClosed","waitFor","modalHasOpened","wait","watch","onOverlayScroll","onOverlayClick","onCloseClick","overlayAttributes","classes","eventListeners","style","panelAttributes","accessibilityAttrs","maxWidth","sizes","calledGrowTimes","throttle","error","useLogger","contentHeight","contentHeight2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index24.js","sources":["../src/components/BaseDialog/BaseDialog.vue"],"sourcesContent":["<template>\n\t<teleport to=\"body\">\n\t\t<div v-bind=\"overlayAttributes\" ref=\"overlay\">\n\t\t\t<div v-bind=\"panelAttributes\" ref=\"panel\">\n\t\t\t\t<div\n\t\t\t\t\tv-if=\"hasRenderedAtLeastOnce\"\n\t\t\t\t\tref=\"content\"\n\t\t\t\t\tclass=\"bb-base-dialog__content\"\n\t\t\t\t>\n\t\t\t\t\t<div ref=\"header\" class=\"bb-base-dialog__header\">\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t:close=\"onCloseClick\"\n\t\t\t\t\t\t\tname=\"header\"\n\t\t\t\t\t\t\t:title=\"title\"\n\t\t\t\t\t\t\t:title-id=\"titleId\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span :id=\"titleId\" class=\"bb-base-dialog__title\">\n\t\t\t\t\t\t\t\t<slot name=\"title\" :text=\"title\">{{ title }}</slot>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span class=\"bb-base-dialog-close\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tv-if=\"showClose\"\n\t\t\t\t\t\t\t\t\t:aria-label=\"closeLabel\"\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t@click=\"onCloseClick\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<slot name=\"close\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"bb-base-dialog-close__icon\"\n\t\t\t\t\t\t\t\t\t\t\t><svg\n\t\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\t\t\t\t\td=\"M23 23L1 1M23 1L1 23\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div ref=\"body\" class=\"bb-base-dialog__body\">\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t:description-id=\"descriptionId\"\n\t\t\t\t\t\t\tname=\"description\"\n\t\t\t\t\t\t\t:text=\"description\"\n\t\t\t\t\t\t\t><div\n\t\t\t\t\t\t\t\tv-if=\"description\"\n\t\t\t\t\t\t\t\t:id=\"descriptionId\"\n\t\t\t\t\t\t\t\tclass=\"bb-base-dialog__description sr-only\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{{ description }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div style=\"flex: 10000 10000 0%\"></div>\n\t\t\t\t\t<div ref=\"footer\" class=\"bb-base-dialog__footer\">\n\t\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n\tcomputed,\n\tonBeforeUnmount,\n\tonMounted,\n\tref,\n\tuseAttrs,\n\tnextTick,\n\tgetCurrentInstance,\n\twatch,\n} from 'vue';\nimport { throttle } from '@/utilities/functions/throttle';\nimport { useFocusTrap } from '@vueuse/integrations/useFocusTrap';\nimport { useId } from '@/composables/useId';\nimport { wait } from '@/utilities/functions/wait';\nimport { waitFor } from '@/utilities/functions/waitFor';\nimport type { CommonProps, Size } from '@/types/CommonProps';\nimport { useModalsState } from '@/composables/useModalsState';\nimport { useLogger } from '@/composables/useLogger';\n\nexport type Sizes = {\n\tsm: number;\n\tmd: number;\n\tlg: number;\n};\n\nexport type BaseDialogProps = Pick<\n\tCommonProps,\n\t| 'closeLabel'\n\t| 'compact'\n\t| 'disabled'\n\t| 'eager'\n\t| 'panelClasses'\n\t| 'overlayClasses'\n\t| 'persistent'\n\t| 'showClose'\n\t| 'title'\n\t| 'transition'\n\t| 'transitionDuration'\n> &\n\tSize<Sizes> & {\n\t\t/**\n\t\t * Description of the content of the modal. Extremely useful for accessibility reasons.\n\t\t */\n\t\tdescription?: string;\n\t\t/**\n\t\t * Elements that obtains focus immediately after opening the dialog.\n\t\t * By default it's the first tabbable item.\n\t\t */\n\t\tfocusTarget?: string;\n\t\t/**\n\t\t * Displays the modala as fulscreen with no margin to the page\n\t\t */\n\t\tfullscreen?: boolean;\n\t\t/**\n\t\t * Defines the state open / closed of the modal.\n\t\t */\n\t\tmodelValue?: boolean | null;\n\t};\n\nconst props = withDefaults(defineProps<BaseDialogProps>(), {\n\tcloseLabel: 'Chiudi modale',\n\tshowClose: true,\n\tsize: 'sm',\n\ttransition: 'fade',\n\ttransitionDuration: 350,\n\tpanelClasses: () => [],\n\toverlayClasses: () => [],\n});\n\nexport type BaseDialogSlots = {\n\theader?: (props: {\n\t\ttitleId: typeof titleId;\n\t\tclose: typeof onCloseClick;\n\t\ttitle: BaseDialogProps['title'];\n\t}) => any;\n\ttitle?: (props: { text: BaseDialogProps['title'] }) => any;\n\tclose?: (props: object) => any;\n\tdescription?: (props: {\n\t\tdescriptionId: typeof descriptionId;\n\t\ttext: BaseDialogProps['description'];\n\t}) => any;\n\tdefault?: (props: object) => any;\n\tfooter?: (props: object) => any;\n};\n\ndefineSlots<BaseDialogSlots>();\n\nexport type BaseDialogEvents = {\n\t(e: 'shown'): void;\n\t(e: 'hidden'): void;\n\t(e: 'update:modelValue', value: boolean): void;\n};\n\nconst emit = defineEmits<BaseDialogEvents>();\n\nconst titleId = `title_${useId().id.value}`;\nconst descriptionId = `description_${useId().id.value}`;\n\nconst observer = ref<ResizeObserver | null>(null);\nconst overlay = ref<HTMLElement | null>(null);\nconst panel = ref<HTMLElement | null>(null);\nconst content = ref<HTMLElement | null>(null);\nconst header = ref<HTMLElement | null>(null);\nconst body = ref<HTMLElement | null>(null);\nconst footer = ref<HTMLElement | null>(null);\nconst height = ref<number | null>(null);\n\n// @ts-expect-error possibly undef\nconst isNuxt = !!getCurrentInstance()?.proxy?.$nuxt;\n\nconst orderInStack = ref(0);\nconst isCurrent = computed(() => {\n\tconst { openedModals } = useModalsState();\n\treturn openedModals.value && openedModals.value === orderInStack.value;\n});\n\nconst { activate, deactivate } = useFocusTrap(panel, {\n\tinitialFocus: props.focusTarget ?? undefined,\n\tclickOutsideDeactivates: (event) => {\n\t\t// This is used when other teleports are running.\n\t\t// eg if you have a select inside a modal it will be in fact outside of the modal because of teleport\n\t\treturn event.target === overlay.value;\n\t},\n\tallowOutsideClick: true,\n\t/* On esc deactivate the trap, return focus and then close the modal */\n\tescapeDeactivates: () => {\n\t\tnextTick(() => {\n\t\t\temit('update:modelValue', false);\n\t\t});\n\t\treturn true;\n\t},\n});\n\nconst attrs = useAttrs();\n\nconst closeLabel = computed(() => props.closeLabel);\n\nonMounted(async () => {\n\tif (body.value) {\n\t\tobserver.value = new ResizeObserver(onContentGrow);\n\t\tobserver.value.observe(body.value);\n\t}\n\twindow.addEventListener('resize', onContentGrow);\n\n\tonContentGrow();\n\tif (!props.modelValue && !hasRenderedAtLeastOnce.value) return;\n\tif (isNuxt && !globalThis.document) return;\n\talignToModelValue();\n});\nonBeforeUnmount(() => {\n\twindow.removeEventListener('resize', onContentGrow);\n});\n\nconst open = ref(false);\nconst opening = ref(false);\nconst closed = ref(true);\nconst closing = ref(false);\nconst hasRenderedAtLeastOnce = ref(props.eager || props.modelValue);\n\nconst busy = computed(() => opening.value || closing.value);\n\nconst restrictBody = () => {\n\tif (!globalThis.document) return;\n\tconst scrollBarWidth =\n\t\twindow.innerWidth - document.documentElement.clientWidth;\n\tdocument.body.style.overflow = 'hidden';\n\tdocument.body.style.paddingRight = `${scrollBarWidth}px`;\n};\nconst releaseBody = () => {\n\tif (!globalThis.document) return;\n\tdocument.body.style.overflow = 'auto';\n\tdocument.body.style.paddingRight = '0px';\n};\n\nonBeforeUnmount(() => {\n\tif (props.modelValue) {\n\t\tconst { openedModals, modalHasClosed } = useModalsState();\n\t\tif (openedModals.value) {\n\t\t\tmodalHasClosed();\n\t\t\torderInStack.value = 0;\n\t\t\treleaseBody();\n\t\t}\n\t}\n});\n\n/**\n * When modelValue becomes true if the component wasn't rendered render it\n * and wait for it to be on the page (or transitions would not work).\n * Stash the latest focused element so we can return it later when it closes.\n * Focus on the panel upon opening.\n * ---\n * Notice all interactions update modelValue and then this function aligns the display to it\n */\nconst alignToModelValue = async () => {\n\tif (props.modelValue) {\n\t\tif (!hasRenderedAtLeastOnce.value) {\n\t\t\thasRenderedAtLeastOnce.value = true;\n\t\t\tawait waitFor(() => !!body.value);\n\t\t\tawait nextTick();\n\t\t\tif (body.value) {\n\t\t\t\tobserver.value = new ResizeObserver(onContentGrow);\n\t\t\t\tobserver.value.observe(body.value);\n\t\t\t}\n\t\t}\n\n\t\tclosed.value = false;\n\t\tclosing.value = false;\n\t\topening.value = true;\n\n\t\t// This prevents overscroll chaining (additional scrolling to the body when the modal has been completely scrolled)\n\t\tconst { modalHasOpened, openedModals } = useModalsState();\n\t\tmodalHasOpened();\n\t\torderInStack.value = openedModals.value;\n\t\trestrictBody();\n\n\t\tawait wait(props.transitionDuration);\n\t\topening.value = false;\n\t\topen.value = true;\n\t\temit('shown');\n\t\tactivate();\n\t} else {\n\t\tdeactivate();\n\t\topening.value = false;\n\t\topen.value = false;\n\t\tclosing.value = true;\n\n\t\tawait wait(props.transitionDuration);\n\n\t\tclosing.value = false;\n\t\tclosed.value = true;\n\t\tconst { modalHasClosed, openedModals } = useModalsState();\n\t\tmodalHasClosed();\n\t\torderInStack.value = 0;\n\t\tif (!openedModals.value) {\n\t\t\treleaseBody();\n\t\t}\n\t\temit('hidden');\n\t}\n};\n/**\n * Every time modelValue changes align the display to it\n */\nwatch(\n\t() => props.modelValue,\n\t() => {\n\t\tif (!props.modelValue && !hasRenderedAtLeastOnce.value) return;\n\t\tif (isNuxt && !globalThis.document) return;\n\t\talignToModelValue();\n\t},\n\t{ flush: 'post' }\n);\n\n/**\n * Disable scrolling\n */\nconst onOverlayScroll = (event: Event) => {\n\tif (event.target === overlay.value) {\n\t\tevent.preventDefault();\n\t}\n};\n\n/**\n * Close the modal on overlay click if not persistent\n */\nconst onOverlayClick = (event: MouseEvent) => {\n\tif (props.disabled || busy.value) return;\n\tif (overlay.value) {\n\t\tif (event.target === overlay.value) {\n\t\t\tif (!props.persistent) {\n\t\t\t\temit('update:modelValue', false);\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * On click on the X button\n */\nconst onCloseClick = () => {\n\tif (props.disabled || busy.value) return;\n\tdeactivate();\n\temit('update:modelValue', false);\n};\n\nconst overlayAttributes = computed(() => {\n\tconst classes = [\n\t\t{\n\t\t\t'bb-base-dialog bb-base-dialog__overlay': true,\n\t\t\t'bb-base-dialog--fullscreen': props.fullscreen,\n\t\t\t'bb-base-dialog--faded': !isCurrent.value,\n\t\t\t'bb-base-dialog--open': open.value,\n\t\t\t'bb-base-dialog--opening': opening.value,\n\t\t\t'bb-base-dialog--closed': closed.value,\n\t\t\t'bb-base-dialog--closing': closing.value,\n\t\t\t[`bb-base-dialog--transition-${props.transition}`]: true,\n\t\t},\n\t\tprops.overlayClasses,\n\t].flat();\n\tconst eventListeners = {\n\t\tonClick: onOverlayClick,\n\t\tonScroll: onOverlayScroll,\n\t\tonTouchmove: onOverlayScroll,\n\t\tonWheel: onOverlayScroll,\n\t\tonKeydown: onOverlayScroll,\n\t};\n\n\tconst style = {\n\t\ttransitionDuration: props.transitionDuration / 1000 + 's',\n\t};\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t\t...eventListeners,\n\t\t...attrs,\n\t};\n});\n\nconst panelAttributes = computed(() => {\n\tconst classes = [\n\t\t{\n\t\t\t'bb-base-dialog__panel': true,\n\t\t\t'bb-base-dialog__panel--compact': props.compact,\n\t\t},\n\t\tprops.panelClasses,\n\t].flat();\n\n\tconst accessibilityAttrs: {\n\t\t[key: string]: string | boolean;\n\t} = {\n\t\trole: 'dialog',\n\t\t'aria-modal': true,\n\t};\n\n\tif (hasRenderedAtLeastOnce.value) {\n\t\tif (props.title) {\n\t\t\taccessibilityAttrs['aria-labelledby'] = titleId;\n\t\t}\n\n\t\tif (props.description)\n\t\t\taccessibilityAttrs['aria-describedby'] = descriptionId;\n\t}\n\n\tlet maxWidth;\n\tconst sizes: Sizes = {\n\t\tsm: 384,\n\t\tmd: 652,\n\t\tlg: 896,\n\t};\n\tif (props.fullscreen) maxWidth = '100%';\n\telse if (typeof props.size === 'number') maxWidth = props.size + 'px';\n\telse if (props.size in sizes)\n\t\tmaxWidth = sizes[props.size as keyof Sizes] + 'px';\n\telse maxWidth = props.size + 'px';\n\n\tconst style = {\n\t\tmaxWidth,\n\t\ttransitionDuration: props.transitionDuration / 1000 + 's',\n\t};\n\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t\t...accessibilityAttrs,\n\t};\n});\n\nlet calledGrowTimes = 0;\n\n/**\n * This is called when content inside body changes.\n * Gets the total height the panel needs to be\n * It could be called numerous times so throttle every 300ms\n */\nconst onContentGrow = throttle(\n\tasync () => {\n\t\tcalledGrowTimes++;\n\t\tif (calledGrowTimes === 100) {\n\t\t\tconst { error } = useLogger();\n\t\t\terror(\n\t\t\t\t'Dialog is updating its height too often. Please check the content is reliably sized.'\n\t\t\t);\n\t\t}\n\t\tif (props.fullscreen) {\n\t\t\theight.value = window.innerHeight;\n\t\t\treturn;\n\t\t}\n\t\tif (header.value && body.value && footer.value) {\n\t\t\tconst contentHeight =\n\t\t\t\theader.value.scrollHeight +\n\t\t\t\tbody.value.scrollHeight +\n\t\t\t\tfooter.value.scrollHeight +\n\t\t\t\t2;\n\t\t\t/* Add two so renderless elements at the bottom are not cut off */\n\t\t\tif (content.value) {\n\t\t\t\tcontent.value.style.height = '0px';\n\t\t\t\tcontent.value.style.height = `${contentHeight + 2}px`;\n\t\t\t\t/**\n\t\t\t\t * Run until all transitions inside have completed\n\t\t\t\t */\n\t\t\t\tawait wait(30);\n\t\t\t\tif (header.value && body.value && footer.value) {\n\t\t\t\t\tconst contentHeight2 =\n\t\t\t\t\t\theader.value.scrollHeight +\n\t\t\t\t\t\tbody.value.scrollHeight +\n\t\t\t\t\t\tfooter.value.scrollHeight +\n\t\t\t\t\t\t2;\n\t\t\t\t\tif (contentHeight !== contentHeight2) onContentGrow();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t200,\n\t{ trailing: true }\n);\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BaseDialog';\n</style>\n"],"names":["props","__props","emit","__emit","titleId","useId","descriptionId","observer","ref","overlay","panel","content","header","body","footer","height","isNuxt","_b","_a","getCurrentInstance","orderInStack","isCurrent","computed","openedModals","useModalsState","activate","deactivate","useFocusTrap","event","nextTick","attrs","useAttrs","closeLabel","onMounted","onContentGrow","hasRenderedAtLeastOnce","alignToModelValue","onBeforeUnmount","open","opening","closed","closing","busy","restrictBody","scrollBarWidth","releaseBody","modalHasClosed","waitFor","modalHasOpened","wait","watch","onOverlayScroll","onOverlayClick","onCloseClick","overlayAttributes","classes","eventListeners","style","panelAttributes","accessibilityAttrs","maxWidth","sizes","calledGrowTimes","throttle","error","useLogger","contentHeight","contentHeight2"],"mappings":"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"}
|
package/dist/index241.js
CHANGED
|
@@ -1,13 +1,5 @@
|
|
|
1
|
-
const o = (
|
|
2
|
-
const e = {};
|
|
3
|
-
for (const c in t)
|
|
4
|
-
if (Object.prototype.hasOwnProperty.call(t, c)) {
|
|
5
|
-
const n = t[c];
|
|
6
|
-
r(n, c, t) && (e[c] = n);
|
|
7
|
-
}
|
|
8
|
-
return e;
|
|
9
|
-
};
|
|
1
|
+
const o = (e) => e[0];
|
|
10
2
|
export {
|
|
11
|
-
o as
|
|
3
|
+
o as head
|
|
12
4
|
};
|
|
13
5
|
//# sourceMappingURL=index241.js.map
|
package/dist/index241.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index241.js","sources":["../src/utilities/functions/
|
|
1
|
+
{"version":3,"file":"index241.js","sources":["../src/utilities/functions/head.ts"],"sourcesContent":["/** Takes an array and returns the first item in it */\nexport const head = <T>(arr: T[]) => arr[0];\n"],"names":["head","arr"],"mappings":"AACO,MAAMA,IAAO,CAAIC,MAAaA,EAAI,CAAC;"}
|
package/dist/index242.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
const o = () => {
|
|
1
|
+
const o = (t, r) => {
|
|
2
|
+
const e = {};
|
|
3
|
+
for (const c in t)
|
|
4
|
+
if (Object.prototype.hasOwnProperty.call(t, c)) {
|
|
5
|
+
const n = t[c];
|
|
6
|
+
r(n, c, t) && (e[c] = n);
|
|
7
|
+
}
|
|
8
|
+
return e;
|
|
2
9
|
};
|
|
3
10
|
export {
|
|
4
|
-
o as
|
|
11
|
+
o as pickBy
|
|
5
12
|
};
|
|
6
13
|
//# sourceMappingURL=index242.js.map
|
package/dist/index242.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index242.js","sources":["../src/utilities/functions/
|
|
1
|
+
{"version":3,"file":"index242.js","sources":["../src/utilities/functions/pickBy.ts"],"sourcesContent":["export const pickBy = <T extends object>(\n\tobj: T,\n\titeratee: (value: T[keyof T], key: keyof T, object: T) => boolean\n): Partial<T> => {\n\tconst accumulator: Partial<T> = {};\n\tfor (const key in obj) {\n\t\tif (Object.prototype.hasOwnProperty.call(obj, key)) {\n\t\t\tconst element = obj[key];\n\t\t\tif (iteratee(element, key, obj)) accumulator[key] = element;\n\t\t}\n\t}\n\treturn accumulator;\n};\n"],"names":["pickBy","obj","iteratee","accumulator","key","element"],"mappings":"AAAa,MAAAA,IAAS,CACrBC,GACAC,MACgB;AAChB,QAAMC,IAA0B,CAAA;AAChC,aAAWC,KAAOH;AACjB,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAKG,CAAG,GAAG;AAC7C,YAAAC,IAAUJ,EAAIG,CAAG;AACvB,MAAIF,EAASG,GAASD,GAAKH,CAAG,MAAGE,EAAYC,CAAG,IAAIC;AAAA,IACrD;AAEM,SAAAF;AACR;"}
|
package/dist/index243.js
CHANGED
package/dist/index243.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index243.js","sources":["../src/utilities/functions/
|
|
1
|
+
{"version":3,"file":"index243.js","sources":["../src/utilities/functions/noop.ts"],"sourcesContent":["/* \n This function is No-OP it does nothing\n*/\nexport const noop = () => {};\n"],"names":["noop"],"mappings":"AAGO,MAAMA,IAAO,MAAM;AAAC;"}
|
package/dist/index244.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
const o = (n, t) => {
|
|
2
|
+
for (let e = n.length - 1; e >= 0; e--) {
|
|
3
|
+
const i = n[e];
|
|
4
|
+
if (t(i, e, n))
|
|
5
|
+
return e;
|
|
6
|
+
}
|
|
7
|
+
return -1;
|
|
8
|
+
};
|
|
5
9
|
export {
|
|
6
|
-
o as
|
|
7
|
-
f as default
|
|
10
|
+
o as findRightIndex
|
|
8
11
|
};
|
|
9
12
|
//# sourceMappingURL=index244.js.map
|
package/dist/index244.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index244.js","sources":["../
|
|
1
|
+
{"version":3,"file":"index244.js","sources":["../src/utilities/functions/findRightIndex.ts"],"sourcesContent":["/**\n * Same as find but from the end of an array\n */\nexport const findRightIndex = <T>(\n\tarr: T[],\n\titeratee: (value: T, index: number, arr: T[]) => boolean\n) => {\n\tfor (let index = arr.length - 1; index >= 0; index--) {\n\t\tconst element = arr[index];\n\t\tif (iteratee(element, index, arr)) {\n\t\t\treturn index;\n\t\t}\n\t}\n\treturn -1;\n};\n"],"names":["findRightIndex","arr","iteratee","index","element"],"mappings":"AAGa,MAAAA,IAAiB,CAC7BC,GACAC,MACI;AACJ,WAASC,IAAQF,EAAI,SAAS,GAAGE,KAAS,GAAGA,KAAS;AAC/C,UAAAC,IAAUH,EAAIE,CAAK;AACzB,QAAID,EAASE,GAASD,GAAOF,CAAG;AACxB,aAAAE;AAAA,EAET;AACO,SAAA;AACR;"}
|