bitboss-ui 2.0.4 → 2.0.7
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 +138 -137
- package/dist/index.js.map +1 -1
- package/dist/index10.js +74 -35
- package/dist/index10.js.map +1 -1
- package/dist/{index99.js → index100.js} +3 -3
- package/dist/index100.js.map +1 -0
- package/dist/{index101.js → index102.js} +3 -3
- package/dist/{index101.js.map → index102.js.map} +1 -1
- package/dist/{index103.js → index104.js} +8 -8
- package/dist/{index103.js.map → index104.js.map} +1 -1
- package/dist/{index105.js → index106.js} +10 -10
- package/dist/{index105.js.map → index106.js.map} +1 -1
- package/dist/{index107.js → index108.js} +3 -3
- package/dist/{index107.js.map → index108.js.map} +1 -1
- package/dist/index11.js +36 -189
- package/dist/index11.js.map +1 -1
- package/dist/{index109.js → index110.js} +3 -3
- package/dist/{index109.js.map → index110.js.map} +1 -1
- package/dist/{index111.js → index112.js} +3 -3
- package/dist/{index111.js.map → index112.js.map} +1 -1
- package/dist/{index113.js → index114.js} +3 -3
- package/dist/{index113.js.map → index114.js.map} +1 -1
- package/dist/{index115.js → index116.js} +8 -8
- package/dist/{index115.js.map → index116.js.map} +1 -1
- package/dist/{index117.js → index118.js} +2 -2
- package/dist/{index117.js.map → index118.js.map} +1 -1
- package/dist/index12.js +189 -78
- package/dist/index12.js.map +1 -1
- package/dist/index120.js +34 -38
- package/dist/index120.js.map +1 -1
- package/dist/index121.js +38 -38
- package/dist/index121.js.map +1 -1
- package/dist/index122.js +39 -42
- package/dist/index122.js.map +1 -1
- package/dist/index123.js +43 -31
- package/dist/index123.js.map +1 -1
- package/dist/index124.js +35 -2
- package/dist/index124.js.map +1 -1
- package/dist/index125.js +2 -21
- package/dist/index125.js.map +1 -1
- package/dist/index126.js +21 -2
- package/dist/index126.js.map +1 -1
- package/dist/index127.js +2 -312
- package/dist/index127.js.map +1 -1
- package/dist/index128.js +309 -21
- package/dist/index128.js.map +1 -1
- package/dist/index129.js +24 -2
- package/dist/index129.js.map +1 -1
- package/dist/index13.js +85 -0
- package/dist/index13.js.map +1 -0
- package/dist/index130.js +2 -5
- package/dist/index130.js.map +1 -1
- package/dist/index131.js +5 -9
- package/dist/index131.js.map +1 -1
- package/dist/index132.js +8 -5
- package/dist/index132.js.map +1 -1
- package/dist/index133.js +6 -3
- package/dist/index133.js.map +1 -1
- package/dist/index134.js +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/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/{index14.js → index15.js} +4 -4
- package/dist/{index14.js.map → index15.js.map} +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/{index161.js → index160.js} +1 -1
- package/dist/index160.js.map +1 -0
- package/dist/index162.js +6 -0
- package/dist/index162.js.map +1 -0
- package/dist/index164.js +1 -1
- 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/{index16.js → index17.js} +4 -4
- package/dist/{index16.js.map → index17.js.map} +1 -1
- package/dist/index170.js +6 -0
- package/dist/index170.js.map +1 -0
- package/dist/index172.js +2 -3
- package/dist/index172.js.map +1 -1
- package/dist/index173.js +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/index180.js +1 -1
- package/dist/index181.js +1 -1
- package/dist/index182.js +1 -1
- package/dist/index183.js +2 -2
- package/dist/{index185.js → index184.js} +1 -1
- package/dist/index184.js.map +1 -0
- package/dist/index186.js +6 -0
- package/dist/index186.js.map +1 -0
- package/dist/index188.js +1 -1
- package/dist/index189.js +1 -1
- package/dist/{index18.js → index19.js} +76 -74
- package/dist/index19.js.map +1 -0
- 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 -2
- package/dist/index197.js.map +1 -1
- package/dist/index198.js +77 -154
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +2 -84
- package/dist/index199.js.map +1 -1
- package/dist/index200.js +5 -0
- package/dist/index200.js.map +1 -0
- package/dist/index201.js +4 -2
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +2 -4
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +8 -2
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +117 -72
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +5 -126
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +123 -5
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +17 -121
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +15 -18
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +10 -10
- package/dist/index209.js.map +1 -1
- package/dist/{index20.js → index21.js} +26 -27
- package/dist/index21.js.map +1 -0
- package/dist/index210.js +2 -16
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +2 -2
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +35 -2
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +172 -33
- package/dist/index213.js.map +1 -1
- package/dist/index214.js +6 -174
- package/dist/index214.js.map +1 -1
- package/dist/index215.js +42 -5
- package/dist/index215.js.map +1 -1
- package/dist/index217.js +16 -0
- package/dist/index217.js.map +1 -0
- package/dist/index218.js +4 -12
- package/dist/index218.js.map +1 -1
- package/dist/index219.js +369 -5
- package/dist/index219.js.map +1 -1
- package/dist/index220.js +17 -367
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +27 -8
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +3 -3
- package/dist/index222.js.map +1 -1
- package/dist/index223.js +249 -7
- package/dist/index223.js.map +1 -1
- package/dist/index224.js +51 -18
- package/dist/index224.js.map +1 -1
- package/dist/index225.js +44 -27
- package/dist/index225.js.map +1 -1
- package/dist/index226.js +5 -3
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +43 -243
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +6 -0
- package/dist/{index233.js.map → index228.js.map} +1 -1
- package/dist/index229.js +3 -52
- package/dist/index229.js.map +1 -1
- package/dist/{index22.js → index23.js} +74 -76
- package/dist/index23.js.map +1 -0
- package/dist/index230.js +7 -37
- package/dist/index230.js.map +1 -1
- package/dist/index231.js +158 -5
- package/dist/index231.js.map +1 -1
- package/dist/index232.js +77 -34
- package/dist/index232.js.map +1 -1
- package/dist/index234.js +2 -2
- package/dist/index234.js.map +1 -1
- package/dist/index235.js +18 -3
- package/dist/index235.js.map +1 -1
- package/dist/index236.js +105 -17
- package/dist/index236.js.map +1 -1
- package/dist/{index239.js → index238.js} +3 -3
- package/dist/{index239.js.map → index238.js.map} +1 -1
- package/dist/index240.js +5 -0
- package/dist/index240.js.map +1 -0
- package/dist/index244.js +3 -3
- package/dist/index248.js +9 -3
- package/dist/index248.js.map +1 -1
- package/dist/index249.js +281 -12
- package/dist/index249.js.map +1 -1
- package/dist/{index24.js → index25.js} +6 -6
- package/dist/{index24.js.map → index25.js.map} +1 -1
- package/dist/index250.js +5 -8
- package/dist/index250.js.map +1 -1
- package/dist/index251.js +2 -9
- package/dist/index251.js.map +1 -1
- package/dist/index252.js +2 -17
- package/dist/index252.js.map +1 -1
- package/dist/index253.js +2 -281
- package/dist/index253.js.map +1 -1
- package/dist/index254.js +2 -6
- package/dist/index254.js.map +1 -1
- package/dist/index255.js +2 -2
- package/dist/index256.js +126 -2
- package/dist/index256.js.map +1 -1
- package/dist/index257.js +431 -2
- package/dist/index257.js.map +1 -1
- package/dist/index258.js +3 -2
- package/dist/index258.js.map +1 -1
- package/dist/index260.js +7 -126
- package/dist/index260.js.map +1 -1
- package/dist/index261.js +20 -429
- package/dist/index261.js.map +1 -1
- package/dist/{index259.js → index263.js} +1 -1
- package/dist/index263.js.map +1 -0
- package/dist/index264.js +2 -7
- package/dist/index264.js.map +1 -1
- package/dist/index265.js +1 -21
- package/dist/index265.js.map +1 -1
- package/dist/index266.js +5 -0
- package/dist/index266.js.map +1 -0
- package/dist/index267.js +2 -9
- package/dist/index267.js.map +1 -1
- package/dist/index268.js +2 -200
- package/dist/index268.js.map +1 -1
- package/dist/index269.js +23 -431
- package/dist/index269.js.map +1 -1
- package/dist/{index26.js → index27.js} +4 -4
- package/dist/{index26.js.map → index27.js.map} +1 -1
- package/dist/index270.js +21 -126
- package/dist/index270.js.map +1 -1
- package/dist/index272.js +224 -2
- package/dist/index272.js.map +1 -1
- package/dist/index273.js +89 -2
- package/dist/index273.js.map +1 -1
- package/dist/index274.js +200 -3
- package/dist/index274.js.map +1 -1
- package/dist/index275.js +436 -2
- package/dist/index275.js.map +1 -1
- package/dist/index276.js +127 -2
- package/dist/index276.js.map +1 -1
- package/dist/index277.js +5 -2
- package/dist/index277.js.map +1 -1
- package/dist/index278.js +2 -28
- package/dist/index278.js.map +1 -1
- package/dist/index279.js +7 -20
- package/dist/index279.js.map +1 -1
- package/dist/index280.js +72 -0
- package/dist/index280.js.map +1 -0
- package/dist/index281.js +3 -2
- package/dist/index281.js.map +1 -1
- package/dist/index282.js +12 -5
- package/dist/index282.js.map +1 -1
- package/dist/index283.js +8 -68
- package/dist/index283.js.map +1 -1
- package/dist/index284.js +17 -224
- package/dist/index284.js.map +1 -1
- package/dist/index285.js +1 -1
- package/dist/index286.js +1 -1
- package/dist/index287.js +12 -12
- package/dist/index287.js.map +1 -1
- package/dist/index288.js +18 -0
- package/dist/index288.js.map +1 -0
- package/dist/index289.js +4 -15
- package/dist/index289.js.map +1 -1
- package/dist/{index28.js → index29.js} +19 -19
- package/dist/index29.js.map +1 -0
- package/dist/index290.js +4 -4
- package/dist/index290.js.map +1 -1
- package/dist/index291.js +59 -4
- package/dist/index291.js.map +1 -1
- package/dist/index292.js +34 -58
- package/dist/index292.js.map +1 -1
- package/dist/index293.js +6 -10
- package/dist/index293.js.map +1 -1
- package/dist/index294.js +18 -34
- package/dist/index294.js.map +1 -1
- package/dist/index295.js +6 -6
- package/dist/index295.js.map +1 -1
- package/dist/index296.js +2 -19
- package/dist/index296.js.map +1 -1
- package/dist/index297.js +10 -6
- package/dist/index297.js.map +1 -1
- package/dist/index298.js +47 -2
- package/dist/index298.js.map +1 -1
- package/dist/index300.js +424 -0
- package/dist/index300.js.map +1 -0
- package/dist/index301.js +42 -416
- package/dist/index301.js.map +1 -1
- package/dist/{index30.js → index31.js} +4 -4
- package/dist/{index30.js.map → index31.js.map} +1 -1
- package/dist/{index32.js → index33.js} +41 -40
- package/dist/index33.js.map +1 -0
- package/dist/{index34.js → index35.js} +23 -22
- package/dist/{index34.js.map → index35.js.map} +1 -1
- package/dist/{index36.js → index37.js} +9 -8
- package/dist/index37.js.map +1 -0
- package/dist/{index38.js → index39.js} +4 -3
- package/dist/index39.js.map +1 -0
- package/dist/index4.js +14 -40
- package/dist/index4.js.map +1 -1
- package/dist/{index40.js → index41.js} +4 -4
- package/dist/{index40.js.map → index41.js.map} +1 -1
- package/dist/{index42.js → index43.js} +34 -33
- package/dist/{index42.js.map → index43.js.map} +1 -1
- package/dist/{index44.js → index45.js} +9 -9
- package/dist/index45.js.map +1 -0
- package/dist/{index46.js → index47.js} +3 -3
- package/dist/{index46.js.map → index47.js.map} +1 -1
- package/dist/{index48.js → index49.js} +4 -4
- package/dist/{index48.js.map → index49.js.map} +1 -1
- package/dist/index5.js +38 -76
- package/dist/index5.js.map +1 -1
- package/dist/index51.js +95 -0
- package/dist/index51.js.map +1 -0
- package/dist/{index52.js → index53.js} +3 -3
- package/dist/{index52.js.map → index53.js.map} +1 -1
- package/dist/{index54.js → index55.js} +3 -3
- package/dist/{index54.js.map → index55.js.map} +1 -1
- package/dist/{index56.js → index57.js} +2 -2
- package/dist/{index56.js.map → index57.js.map} +1 -1
- package/dist/{index58.js → index59.js} +7 -6
- package/dist/{index58.js.map → index59.js.map} +1 -1
- package/dist/index6.js +78 -62
- package/dist/index6.js.map +1 -1
- package/dist/{index60.js → index61.js} +3 -3
- package/dist/{index60.js.map → index61.js.map} +1 -1
- package/dist/{index62.js → index63.js} +3 -3
- package/dist/{index62.js.map → index63.js.map} +1 -1
- package/dist/{index64.js → index65.js} +5 -5
- package/dist/{index64.js.map → index65.js.map} +1 -1
- package/dist/{index66.js → index67.js} +3 -3
- package/dist/{index66.js.map → index67.js.map} +1 -1
- package/dist/{index68.js → index69.js} +2 -2
- package/dist/{index68.js.map → index69.js.map} +1 -1
- package/dist/index7.js +60 -18
- package/dist/index7.js.map +1 -1
- package/dist/{index70.js → index71.js} +7 -7
- package/dist/{index70.js.map → index71.js.map} +1 -1
- package/dist/{index72.js → index73.js} +3 -3
- package/dist/{index72.js.map → index73.js.map} +1 -1
- package/dist/{index74.js → index75.js} +3 -3
- package/dist/{index74.js.map → index75.js.map} +1 -1
- package/dist/index77.js +37 -120
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +130 -0
- package/dist/index78.js.map +1 -0
- package/dist/index8.js +19 -7
- package/dist/index8.js.map +1 -1
- package/dist/{index79.js → index80.js} +5 -5
- package/dist/{index79.js.map → index80.js.map} +1 -1
- package/dist/{index81.js → index82.js} +7 -6
- package/dist/{index81.js.map → index82.js.map} +1 -1
- package/dist/{index83.js → index84.js} +7 -7
- package/dist/{index83.js.map → index84.js.map} +1 -1
- package/dist/{index85.js → index86.js} +3 -3
- package/dist/{index85.js.map → index86.js.map} +1 -1
- package/dist/{index87.js → index88.js} +3 -3
- package/dist/{index87.js.map → index88.js.map} +1 -1
- package/dist/index9.js +7 -78
- package/dist/index9.js.map +1 -1
- package/dist/{index89.js → index90.js} +3 -3
- package/dist/{index89.js.map → index90.js.map} +1 -1
- package/dist/{index91.js → index92.js} +3 -3
- package/dist/{index91.js.map → index92.js.map} +1 -1
- package/dist/{index93.js → index94.js} +1 -1
- package/dist/index94.js.map +1 -0
- package/dist/{index95.js → index96.js} +3 -3
- package/dist/{index95.js.map → index96.js.map} +1 -1
- package/dist/{index97.js → index98.js} +3 -3
- package/dist/{index97.js.map → index98.js.map} +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/index119.js +0 -47
- package/dist/index119.js.map +0 -1
- package/dist/index161.js.map +0 -1
- package/dist/index163.js +0 -6
- package/dist/index163.js.map +0 -1
- package/dist/index171.js +0 -5
- package/dist/index171.js.map +0 -1
- package/dist/index18.js.map +0 -1
- package/dist/index185.js.map +0 -1
- package/dist/index187.js +0 -6
- package/dist/index187.js.map +0 -1
- package/dist/index20.js.map +0 -1
- package/dist/index216.js +0 -45
- package/dist/index216.js.map +0 -1
- package/dist/index22.js.map +0 -1
- package/dist/index233.js +0 -6
- package/dist/index237.js +0 -109
- package/dist/index237.js.map +0 -1
- package/dist/index259.js.map +0 -1
- package/dist/index262.js +0 -6
- package/dist/index262.js.map +0 -1
- package/dist/index271.js +0 -92
- package/dist/index271.js.map +0 -1
- package/dist/index28.js.map +0 -1
- package/dist/index299.js +0 -50
- package/dist/index299.js.map +0 -1
- package/dist/index3.js +0 -17
- package/dist/index3.js.map +0 -1
- package/dist/index302.js +0 -50
- package/dist/index302.js.map +0 -1
- package/dist/index32.js.map +0 -1
- package/dist/index36.js.map +0 -1
- package/dist/index38.js.map +0 -1
- package/dist/index44.js.map +0 -1
- package/dist/index50.js +0 -97
- package/dist/index50.js.map +0 -1
- package/dist/index76.js +0 -47
- package/dist/index76.js.map +0 -1
- package/dist/index93.js.map +0 -1
- package/dist/index99.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { defineComponent as ae, ref as o, getCurrentInstance as se, computed as
|
|
2
|
-
import { throttle as ve } from "./
|
|
3
|
-
import { useFocusTrap as
|
|
4
|
-
import { useId as
|
|
5
|
-
import { wait as
|
|
6
|
-
import { waitFor as
|
|
7
|
-
import { useModalsState as k } from "./
|
|
8
|
-
import { useLogger as pe } from "./
|
|
9
|
-
const
|
|
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 "./index229.js";
|
|
3
|
+
import { useFocusTrap as fe } from "./index212.js";
|
|
4
|
+
import { useId as K } from "./index8.js";
|
|
5
|
+
import { wait as H } from "./index127.js";
|
|
6
|
+
import { waitFor as be } from "./index214.js";
|
|
7
|
+
import { useModalsState as k } from "./index230.js";
|
|
8
|
+
import { useLogger as pe } from "./index203.js";
|
|
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",
|
|
12
12
|
fill: "none",
|
|
@@ -20,7 +20,7 @@ const ge = { class: "bb-base-dialog-close" }, me = { class: "bb-base-dialog-clos
|
|
|
20
20
|
"stroke-width": "2"
|
|
21
21
|
})
|
|
22
22
|
])
|
|
23
|
-
], -1),
|
|
23
|
+
], -1), he = /* @__PURE__ */ a("div", { style: { flex: "10000 10000 0%" } }, null, -1), ze = /* @__PURE__ */ ae({
|
|
24
24
|
__name: "BaseDialog",
|
|
25
25
|
props: {
|
|
26
26
|
closeLabel: { default: "Chiudi modale" },
|
|
@@ -41,70 +41,70 @@ const ge = { class: "bb-base-dialog-close" }, me = { class: "bb-base-dialog-clos
|
|
|
41
41
|
modelValue: { type: [Boolean, null] }
|
|
42
42
|
},
|
|
43
43
|
emits: ["shown", "hidden", "update:modelValue"],
|
|
44
|
-
setup(
|
|
45
|
-
var
|
|
46
|
-
const t =
|
|
44
|
+
setup(U, { emit: j }) {
|
|
45
|
+
var I, R;
|
|
46
|
+
const t = U, d = j, C = `title_${K().id.value}`, B = `description_${K().id.value}`, g = o(null), c = o(null), $ = o(null), y = o(null), v = o(null), s = o(null), f = o(null), q = o(null), L = !!((R = (I = se()) == null ? void 0 : I.proxy) != null && R.$nuxt), h = o(0), J = m(() => {
|
|
47
47
|
const { openedModals: e } = k();
|
|
48
|
-
return e.value && e.value ===
|
|
49
|
-
}), { activate:
|
|
48
|
+
return e.value && e.value === h.value;
|
|
49
|
+
}), { activate: Q, deactivate: M } = fe($, {
|
|
50
50
|
initialFocus: t.focusTarget ?? void 0,
|
|
51
51
|
clickOutsideDeactivates: (e) => e.target === c.value,
|
|
52
52
|
allowOutsideClick: !0,
|
|
53
53
|
/* On esc deactivate the trap, return focus and then close the modal */
|
|
54
|
-
escapeDeactivates: () => (
|
|
54
|
+
escapeDeactivates: () => (N(() => {
|
|
55
55
|
d("update:modelValue", !1);
|
|
56
56
|
}), !0)
|
|
57
|
-
}),
|
|
57
|
+
}), X = ne(), Y = m(() => t.closeLabel);
|
|
58
58
|
ie(async () => {
|
|
59
|
-
s.value && (
|
|
60
|
-
}),
|
|
59
|
+
s.value && (g.value = new ResizeObserver(r), g.value.observe(s.value)), window.addEventListener("resize", r), r(), !(!t.modelValue && !i.value) && (L && !globalThis.document || S());
|
|
60
|
+
}), F(() => {
|
|
61
61
|
window.removeEventListener("resize", r);
|
|
62
62
|
});
|
|
63
|
-
const V = o(!1),
|
|
63
|
+
const V = o(!1), b = o(!1), D = o(!0), p = o(!1), i = o(t.eager || t.modelValue), O = m(() => b.value || p.value), Z = () => {
|
|
64
64
|
if (!globalThis.document) return;
|
|
65
65
|
const e = window.innerWidth - document.documentElement.clientWidth;
|
|
66
66
|
document.body.style.overflow = "hidden", document.body.style.paddingRight = `${e}px`;
|
|
67
|
-
},
|
|
67
|
+
}, x = () => {
|
|
68
68
|
globalThis.document && (document.body.style.overflow = "auto", document.body.style.paddingRight = "0px");
|
|
69
69
|
};
|
|
70
|
-
|
|
70
|
+
F(() => {
|
|
71
71
|
if (t.modelValue) {
|
|
72
72
|
const { openedModals: e, modalHasClosed: l } = k();
|
|
73
|
-
e.value && (l(),
|
|
73
|
+
e.value && (l(), h.value = 0, x());
|
|
74
74
|
}
|
|
75
75
|
});
|
|
76
|
-
const
|
|
76
|
+
const S = async () => {
|
|
77
77
|
if (t.modelValue) {
|
|
78
|
-
i.value || (i.value = !0, await
|
|
78
|
+
i.value || (i.value = !0, await be(() => !!s.value), await N(), s.value && (g.value = new ResizeObserver(r), g.value.observe(s.value))), D.value = !1, p.value = !1, b.value = !0;
|
|
79
79
|
const { modalHasOpened: e, openedModals: l } = k();
|
|
80
|
-
e(),
|
|
80
|
+
e(), h.value = l.value, Z(), await H(t.transitionDuration), b.value = !1, V.value = !0, d("shown"), Q();
|
|
81
81
|
} else {
|
|
82
|
-
|
|
82
|
+
M(), b.value = !1, V.value = !1, p.value = !0, await H(t.transitionDuration), p.value = !1, D.value = !0;
|
|
83
83
|
const { modalHasClosed: e, openedModals: l } = k();
|
|
84
|
-
e(),
|
|
84
|
+
e(), h.value = 0, l.value || x(), d("hidden");
|
|
85
85
|
}
|
|
86
86
|
};
|
|
87
87
|
re(
|
|
88
88
|
() => t.modelValue,
|
|
89
89
|
() => {
|
|
90
|
-
!t.modelValue && !i.value ||
|
|
90
|
+
!t.modelValue && !i.value || L && !globalThis.document || S();
|
|
91
91
|
},
|
|
92
92
|
{ flush: "post" }
|
|
93
93
|
);
|
|
94
|
-
const
|
|
94
|
+
const w = (e) => {
|
|
95
95
|
e.target === c.value && e.preventDefault();
|
|
96
96
|
}, ee = (e) => {
|
|
97
|
-
t.disabled ||
|
|
98
|
-
},
|
|
99
|
-
t.disabled ||
|
|
100
|
-
}, te =
|
|
97
|
+
t.disabled || O.value || c.value && e.target === c.value && (t.persistent || d("update:modelValue", !1));
|
|
98
|
+
}, A = () => {
|
|
99
|
+
t.disabled || O.value || (M(), d("update:modelValue", !1));
|
|
100
|
+
}, te = m(() => {
|
|
101
101
|
const e = [
|
|
102
102
|
{
|
|
103
103
|
"bb-base-dialog bb-base-dialog__overlay": !0,
|
|
104
104
|
"bb-base-dialog--fullscreen": t.fullscreen,
|
|
105
|
-
"bb-base-dialog--faded": !
|
|
105
|
+
"bb-base-dialog--faded": !J.value,
|
|
106
106
|
"bb-base-dialog--open": V.value,
|
|
107
|
-
"bb-base-dialog--opening":
|
|
107
|
+
"bb-base-dialog--opening": b.value,
|
|
108
108
|
"bb-base-dialog--closed": D.value,
|
|
109
109
|
"bb-base-dialog--closing": p.value,
|
|
110
110
|
[`bb-base-dialog--transition-${t.transition}`]: !0
|
|
@@ -112,10 +112,10 @@ const ge = { class: "bb-base-dialog-close" }, me = { class: "bb-base-dialog-clos
|
|
|
112
112
|
t.overlayClasses
|
|
113
113
|
].flat(), l = {
|
|
114
114
|
onClick: ee,
|
|
115
|
-
onScroll:
|
|
116
|
-
onTouchmove:
|
|
117
|
-
onWheel:
|
|
118
|
-
onKeydown:
|
|
115
|
+
onScroll: w,
|
|
116
|
+
onTouchmove: w,
|
|
117
|
+
onWheel: w,
|
|
118
|
+
onKeydown: w
|
|
119
119
|
}, n = {
|
|
120
120
|
transitionDuration: t.transitionDuration / 1e3 + "s"
|
|
121
121
|
};
|
|
@@ -123,9 +123,9 @@ const ge = { class: "bb-base-dialog-close" }, me = { class: "bb-base-dialog-clos
|
|
|
123
123
|
class: e,
|
|
124
124
|
style: n,
|
|
125
125
|
...l,
|
|
126
|
-
...
|
|
126
|
+
...X
|
|
127
127
|
};
|
|
128
|
-
}), le =
|
|
128
|
+
}), le = m(() => {
|
|
129
129
|
const e = [
|
|
130
130
|
{
|
|
131
131
|
"bb-base-dialog__panel": !0,
|
|
@@ -138,12 +138,12 @@ const ge = { class: "bb-base-dialog-close" }, me = { class: "bb-base-dialog-clos
|
|
|
138
138
|
};
|
|
139
139
|
i.value && (t.title && (l["aria-labelledby"] = C), t.description && (l["aria-describedby"] = B));
|
|
140
140
|
let n;
|
|
141
|
-
const
|
|
141
|
+
const W = {
|
|
142
142
|
sm: 384,
|
|
143
143
|
md: 652,
|
|
144
144
|
lg: 896
|
|
145
145
|
};
|
|
146
|
-
t.fullscreen ? n = "100%" : typeof t.size == "number" ? n = t.size + "px" : t.size in
|
|
146
|
+
t.fullscreen ? n = "100%" : typeof t.size == "number" ? n = t.size + "px" : t.size in W ? n = W[t.size] + "px" : n = t.size + "px";
|
|
147
147
|
const oe = {
|
|
148
148
|
maxWidth: n,
|
|
149
149
|
transitionDuration: t.transitionDuration / 1e3 + "s"
|
|
@@ -154,23 +154,23 @@ const ge = { class: "bb-base-dialog-close" }, me = { class: "bb-base-dialog-clos
|
|
|
154
154
|
...l
|
|
155
155
|
};
|
|
156
156
|
});
|
|
157
|
-
let
|
|
157
|
+
let E = 0;
|
|
158
158
|
const r = ve(
|
|
159
159
|
async () => {
|
|
160
|
-
if (
|
|
160
|
+
if (E++, E === 100) {
|
|
161
161
|
const { error: e } = pe();
|
|
162
162
|
e(
|
|
163
163
|
"Dialog is updating its height too often. Please check the content is reliably sized."
|
|
164
164
|
);
|
|
165
165
|
}
|
|
166
166
|
if (t.fullscreen) {
|
|
167
|
-
|
|
167
|
+
q.value = window.innerHeight;
|
|
168
168
|
return;
|
|
169
169
|
}
|
|
170
|
-
if (v.value && s.value &&
|
|
171
|
-
const e = v.value.scrollHeight + s.value.scrollHeight +
|
|
172
|
-
if (
|
|
173
|
-
const l = v.value.scrollHeight + s.value.scrollHeight +
|
|
170
|
+
if (v.value && s.value && f.value) {
|
|
171
|
+
const e = v.value.scrollHeight + s.value.scrollHeight + f.value.scrollHeight + 2;
|
|
172
|
+
if (y.value && (y.value.style.height = "0px", y.value.style.height = `${e + 2}px`, await H(30), v.value && s.value && f.value)) {
|
|
173
|
+
const l = v.value.scrollHeight + s.value.scrollHeight + f.value.scrollHeight + 2;
|
|
174
174
|
e !== l && r();
|
|
175
175
|
}
|
|
176
176
|
}
|
|
@@ -178,19 +178,19 @@ const ge = { class: "bb-base-dialog-close" }, me = { class: "bb-base-dialog-clos
|
|
|
178
178
|
200,
|
|
179
179
|
{ trailing: !0 }
|
|
180
180
|
);
|
|
181
|
-
return (e, l) => (
|
|
182
|
-
a("div",
|
|
181
|
+
return (e, l) => (_(), ue(de, { to: "body" }, [
|
|
182
|
+
a("div", G(te.value, {
|
|
183
183
|
ref_key: "overlay",
|
|
184
184
|
ref: c
|
|
185
185
|
}), [
|
|
186
|
-
a("div",
|
|
186
|
+
a("div", G(le.value, {
|
|
187
187
|
ref_key: "panel",
|
|
188
|
-
ref:
|
|
188
|
+
ref: $
|
|
189
189
|
}), [
|
|
190
|
-
i.value ? (
|
|
190
|
+
i.value ? (_(), T("div", {
|
|
191
191
|
key: 0,
|
|
192
192
|
ref_key: "content",
|
|
193
|
-
ref:
|
|
193
|
+
ref: y,
|
|
194
194
|
class: "bb-base-dialog__content"
|
|
195
195
|
}, [
|
|
196
196
|
a("div", {
|
|
@@ -199,7 +199,7 @@ const ge = { class: "bb-base-dialog-close" }, me = { class: "bb-base-dialog-clos
|
|
|
199
199
|
class: "bb-base-dialog__header"
|
|
200
200
|
}, [
|
|
201
201
|
u(e.$slots, "header", {
|
|
202
|
-
close:
|
|
202
|
+
close: A,
|
|
203
203
|
title: e.title,
|
|
204
204
|
titleId: C
|
|
205
205
|
}, () => [
|
|
@@ -208,22 +208,20 @@ const ge = { class: "bb-base-dialog-close" }, me = { class: "bb-base-dialog-clos
|
|
|
208
208
|
class: "bb-base-dialog__title"
|
|
209
209
|
}, [
|
|
210
210
|
u(e.$slots, "title", { text: e.title }, () => [
|
|
211
|
-
ce(
|
|
211
|
+
ce(P(e.title), 1)
|
|
212
212
|
])
|
|
213
213
|
]),
|
|
214
|
-
a("span",
|
|
215
|
-
e.showClose ? (
|
|
214
|
+
a("span", me, [
|
|
215
|
+
e.showClose ? (_(), T("button", {
|
|
216
216
|
key: 0,
|
|
217
|
+
"aria-label": Y.value,
|
|
217
218
|
type: "button",
|
|
218
|
-
onClick:
|
|
219
|
+
onClick: A
|
|
219
220
|
}, [
|
|
220
|
-
u(e.$slots, "close", {
|
|
221
|
-
|
|
222
|
-
a("span", he, z(O.value), 1),
|
|
223
|
-
ye
|
|
224
|
-
])
|
|
221
|
+
u(e.$slots, "close", {}, () => [
|
|
222
|
+
ye
|
|
225
223
|
])
|
|
226
|
-
])) :
|
|
224
|
+
], 8, ge)) : z("", !0)
|
|
227
225
|
])
|
|
228
226
|
])
|
|
229
227
|
], 512),
|
|
@@ -236,29 +234,29 @@ const ge = { class: "bb-base-dialog-close" }, me = { class: "bb-base-dialog-clos
|
|
|
236
234
|
descriptionId: B,
|
|
237
235
|
text: e.description
|
|
238
236
|
}, () => [
|
|
239
|
-
e.description ? (
|
|
237
|
+
e.description ? (_(), T("div", {
|
|
240
238
|
key: 0,
|
|
241
239
|
id: B,
|
|
242
|
-
class: "bb-base-dialog__description"
|
|
243
|
-
},
|
|
240
|
+
class: "bb-base-dialog__description sr-only"
|
|
241
|
+
}, P(e.description), 1)) : z("", !0)
|
|
244
242
|
]),
|
|
245
243
|
u(e.$slots, "default")
|
|
246
244
|
], 512),
|
|
247
|
-
|
|
245
|
+
he,
|
|
248
246
|
a("div", {
|
|
249
247
|
ref_key: "footer",
|
|
250
|
-
ref:
|
|
248
|
+
ref: f,
|
|
251
249
|
class: "bb-base-dialog__footer"
|
|
252
250
|
}, [
|
|
253
251
|
u(e.$slots, "footer")
|
|
254
252
|
], 512)
|
|
255
|
-
], 512)) :
|
|
253
|
+
], 512)) : z("", !0)
|
|
256
254
|
], 16)
|
|
257
255
|
], 16)
|
|
258
256
|
]));
|
|
259
257
|
}
|
|
260
258
|
});
|
|
261
259
|
export {
|
|
262
|
-
|
|
260
|
+
ze as default
|
|
263
261
|
};
|
|
264
|
-
//# sourceMappingURL=
|
|
262
|
+
//# sourceMappingURL=index23.js.map
|
|
@@ -0,0 +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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"}
|
package/dist/index230.js
CHANGED
|
@@ -1,40 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
},
|
|
8
|
-
emits: ["update:month"],
|
|
9
|
-
setup(l, { emit: d }) {
|
|
10
|
-
const r = l, m = d, i = c(() => r.cursor.month()), u = c(
|
|
11
|
-
() => new Array(12).fill(0).map((a, t) => {
|
|
12
|
-
const o = r.cursor.clone().startOf("year").add(t, "month");
|
|
13
|
-
return {
|
|
14
|
-
text: o.format("MMMM"),
|
|
15
|
-
key: o.unix(),
|
|
16
|
-
selected: o.month() === i.value,
|
|
17
|
-
handler: () => m("update:month", t)
|
|
18
|
-
};
|
|
19
|
-
})
|
|
20
|
-
);
|
|
21
|
-
return (a, t) => (n(), s("div", f, [
|
|
22
|
-
h("div", M, [
|
|
23
|
-
(n(!0), s(p, null, b(u.value, (e) => (n(), s("button", {
|
|
24
|
-
key: e.key,
|
|
25
|
-
class: k({
|
|
26
|
-
"month-selector__btn": !0,
|
|
27
|
-
"month-selector__btn--selected": e.selected
|
|
28
|
-
}),
|
|
29
|
-
disabled: a.disabled,
|
|
30
|
-
type: "button",
|
|
31
|
-
onClick: e.handler
|
|
32
|
-
}, y(e.text), 11, v))), 128))
|
|
33
|
-
])
|
|
34
|
-
]));
|
|
35
|
-
}
|
|
36
|
-
});
|
|
1
|
+
import { ref as e } from "vue";
|
|
2
|
+
const o = e(0), s = () => {
|
|
3
|
+
o.value++;
|
|
4
|
+
}, a = () => {
|
|
5
|
+
o.value--;
|
|
6
|
+
}, d = () => ({ openedModals: o, modalHasOpened: s, modalHasClosed: a });
|
|
37
7
|
export {
|
|
38
|
-
|
|
8
|
+
d as useModalsState
|
|
39
9
|
};
|
|
40
10
|
//# sourceMappingURL=index230.js.map
|
package/dist/index230.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index230.js","sources":["../src/
|
|
1
|
+
{"version":3,"file":"index230.js","sources":["../src/composables/useModalsState.ts"],"sourcesContent":["import { ref } from 'vue';\n\nconst openedModals = ref(0);\n\nconst modalHasOpened = () => {\n\topenedModals.value++;\n};\n\nconst modalHasClosed = () => {\n\topenedModals.value--;\n};\nexport const useModalsState = () => {\n\treturn { openedModals, modalHasOpened, modalHasClosed };\n};\n"],"names":["openedModals","ref","modalHasOpened","modalHasClosed","useModalsState"],"mappings":";AAEA,MAAMA,IAAeC,EAAI,CAAC,GAEpBC,IAAiB,MAAM;AACf,EAAAF,EAAA;AACd,GAEMG,IAAiB,MAAM;AACf,EAAAH,EAAA;AACd,GACaI,IAAiB,OACtB,EAAE,cAAAJ,GAAc,gBAAAE,GAAgB,gBAAAC;"}
|
package/dist/index231.js
CHANGED
|
@@ -1,8 +1,161 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
|
|
1
|
+
import { ref as a, computed as r, onBeforeMount as Y, onBeforeUnmount as Z, watch as H, nextTick as N } from "vue";
|
|
2
|
+
import { last as _ } from "./index211.js";
|
|
3
|
+
import { useArray as Q } from "./index282.js";
|
|
4
|
+
import { uniqBy as $ } from "./index283.js";
|
|
5
|
+
import { useItemValue as ee } from "./index279.js";
|
|
6
|
+
import { useItemText as te } from "./index284.js";
|
|
7
|
+
import { hash as v } from "./index222.js";
|
|
8
|
+
import { isNotNil as q } from "./index130.js";
|
|
9
|
+
import { waitFor as le } from "./index214.js";
|
|
10
|
+
import { isNil as oe } from "./index125.js";
|
|
11
|
+
const he = (l) => {
|
|
12
|
+
const i = a(""), F = a(), u = (e) => {
|
|
13
|
+
F.value = e, l.emit("update:modelValue", e);
|
|
14
|
+
}, d = a([]), {
|
|
15
|
+
array: k,
|
|
16
|
+
add: E,
|
|
17
|
+
remove: P,
|
|
18
|
+
set: y
|
|
19
|
+
} = Q(), {
|
|
20
|
+
array: S,
|
|
21
|
+
add: j,
|
|
22
|
+
remove: J
|
|
23
|
+
} = Q(), { getItemText: L } = te(), { getItemValue: U } = ee(), O = (e) => {
|
|
24
|
+
const t = !!(l.disabled.value || e.disabled), o = L(e, l.itemText), n = U(e, l.itemValue);
|
|
25
|
+
if (n === void 0)
|
|
26
|
+
throw new Error(
|
|
27
|
+
'The result of extracting "value" from option was undefined. Affected item is ' + JSON.stringify(e) + " please check itemValue property is correct."
|
|
28
|
+
);
|
|
29
|
+
const X = v(n);
|
|
30
|
+
return {
|
|
31
|
+
item: e,
|
|
32
|
+
text: o,
|
|
33
|
+
value: n,
|
|
34
|
+
valueHash: X,
|
|
35
|
+
disabled: t,
|
|
36
|
+
selected: !1
|
|
37
|
+
};
|
|
38
|
+
}, T = (e) => (e.selected = q(b.value[e.valueHash]), e), V = r(() => {
|
|
39
|
+
const e = [].concat(
|
|
40
|
+
d.value.map((t) => T(O(t))),
|
|
41
|
+
S.value.map(T),
|
|
42
|
+
k.value.map(T)
|
|
43
|
+
);
|
|
44
|
+
return $(e, (t) => t.valueHash);
|
|
45
|
+
}), z = (e) => {
|
|
46
|
+
l.multiple ? (u(l.modelValue.value.concat(e.value)), l.stash && E(e), l.resetQueryOnOptionSelected && s()) : (l.stash && y(e), u(e.value), N(() => s()));
|
|
47
|
+
}, G = async (e) => {
|
|
48
|
+
if (J((t) => t.valueHash !== e.valueHash), P((t) => t.valueHash !== e.valueHash), l.multiple) {
|
|
49
|
+
const t = { ...b.value };
|
|
50
|
+
delete t[e.valueHash], u(Object.values(t));
|
|
51
|
+
} else
|
|
52
|
+
u(null), await N(), s();
|
|
53
|
+
}, b = r(() => {
|
|
54
|
+
const e = {}, t = [].concat(l.modelValue.value);
|
|
55
|
+
for (let o = 0; o < t.length; o++) {
|
|
56
|
+
const n = t[o];
|
|
57
|
+
e[v(n)] = n;
|
|
58
|
+
}
|
|
59
|
+
return e;
|
|
60
|
+
}), g = async ({ prefill: e = !1 }) => {
|
|
61
|
+
let t = [];
|
|
62
|
+
if (Array.isArray(l.items.value))
|
|
63
|
+
t = l.items.value;
|
|
64
|
+
else if (typeof l.items.value == "function") {
|
|
65
|
+
const o = ++c.value;
|
|
66
|
+
try {
|
|
67
|
+
t = await l.items.value(
|
|
68
|
+
i.value,
|
|
69
|
+
e,
|
|
70
|
+
l.modelValue.value
|
|
71
|
+
), o < c.value && (await le(() => o === c.value), t = d.value);
|
|
72
|
+
} catch (n) {
|
|
73
|
+
console.error(n);
|
|
74
|
+
}
|
|
75
|
+
c.value--;
|
|
76
|
+
}
|
|
77
|
+
d.value = t;
|
|
78
|
+
}, B = r(() => {
|
|
79
|
+
const e = {};
|
|
80
|
+
for (let t = 0; t < V.value.length; t++) {
|
|
81
|
+
const o = V.value[t], { valueHash: n } = o;
|
|
82
|
+
e[n] = o;
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
get: (t) => e[v(t)]
|
|
86
|
+
};
|
|
87
|
+
}), f = r(() => [].concat(l.modelValue.value).reduce((e, t) => {
|
|
88
|
+
const o = B.value.get(t);
|
|
89
|
+
return o && e.push(o), e;
|
|
90
|
+
}, [])), C = (e) => q(B.value.get(e)), s = () => {
|
|
91
|
+
if (l.multiple) {
|
|
92
|
+
i.value = "";
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
let e;
|
|
96
|
+
f.value && (e = _(f.value)), i.value = (e == null ? void 0 : e.text) || "";
|
|
97
|
+
}, K = () => {
|
|
98
|
+
const e = i.value.trim(), t = O(e);
|
|
99
|
+
j(t), s();
|
|
100
|
+
}, c = a(0), M = r(() => [].concat(l.modelValue.value).reduce(
|
|
101
|
+
(e, t) => (C(t) ? e.coherent.push(t) : e.incoherent.push(t), e),
|
|
102
|
+
{ coherent: [], incoherent: [] }
|
|
103
|
+
)), A = r(() => l.multiple && !l.modelValue.value.length || !l.multiple && oe(l.modelValue.value) ? !0 : !M.value.incoherent.length), R = () => {
|
|
104
|
+
l.enforceCoherence && !A.value && (l.multiple ? u(M.value.coherent) : u(null));
|
|
105
|
+
}, p = a(!1), I = a(!1), m = async () => {
|
|
106
|
+
I.value = !0, await g({ prefill: !0 }), R(), s(), p.value = !0, I.value = !1;
|
|
107
|
+
};
|
|
108
|
+
Y(async () => {
|
|
109
|
+
l.prefill && (await m(), l.stash && y(...f.value));
|
|
110
|
+
});
|
|
111
|
+
let h;
|
|
112
|
+
const W = () => {
|
|
113
|
+
h && clearTimeout(h), h = setTimeout(async () => {
|
|
114
|
+
try {
|
|
115
|
+
await g({ prefill: !1 });
|
|
116
|
+
} catch (e) {
|
|
117
|
+
console.error(e);
|
|
118
|
+
}
|
|
119
|
+
}, l.queryDebounceTime);
|
|
120
|
+
};
|
|
121
|
+
Z(() => clearTimeout(h));
|
|
122
|
+
let x;
|
|
123
|
+
H(
|
|
124
|
+
() => l.modelValue.value,
|
|
125
|
+
() => {
|
|
126
|
+
A.value || (x && clearTimeout(x), x = setTimeout(async () => {
|
|
127
|
+
m();
|
|
128
|
+
}, l.modelValueDebounceTime));
|
|
129
|
+
}
|
|
130
|
+
);
|
|
131
|
+
let w;
|
|
132
|
+
const D = async (e, t) => {
|
|
133
|
+
v(t) !== v(e) && p.value && (w && clearTimeout(w), w = setTimeout(async () => {
|
|
134
|
+
await m();
|
|
135
|
+
}, l.depsDebounceTime));
|
|
136
|
+
};
|
|
137
|
+
return H(() => l.items.value, D), H(() => l.dependencies.value, D), {
|
|
138
|
+
addCurrentQueryToManualItems: K,
|
|
139
|
+
alignQueryToState: s,
|
|
140
|
+
getOptions: g,
|
|
141
|
+
hasPrefilled: p,
|
|
142
|
+
innerLoading: c,
|
|
143
|
+
isPrefilling: I,
|
|
144
|
+
manualItems: S,
|
|
145
|
+
options: V,
|
|
146
|
+
prefillItems: m,
|
|
147
|
+
query: i,
|
|
148
|
+
searchByQuery: W,
|
|
149
|
+
selectedOptions: f,
|
|
150
|
+
selectOption: z,
|
|
151
|
+
setStash: y,
|
|
152
|
+
unselectOption: G,
|
|
153
|
+
updateModelValue: u,
|
|
154
|
+
valueIsSelected: C,
|
|
155
|
+
internalItems: d
|
|
156
|
+
};
|
|
157
|
+
};
|
|
5
158
|
export {
|
|
6
|
-
|
|
159
|
+
he as useOptions
|
|
7
160
|
};
|
|
8
161
|
//# sourceMappingURL=index231.js.map
|
package/dist/index231.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index231.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
1
|
+
{"version":3,"file":"index231.js","sources":["../src/composables/useOptions.ts"],"sourcesContent":["import {\n\tcomputed,\n\tnextTick,\n\tonBeforeMount,\n\tonBeforeUnmount,\n\tref,\n\twatch,\n\ttype Ref,\n} from 'vue';\nimport type { Option as BaseOption } from '@/types/Option';\nimport { last } from '@/utilities/functions/last';\nimport { useArray } from './useArray';\nimport { uniqBy } from '@/utilities/functions/uniqBy';\nimport { useItemValue } from './useItemValue';\nimport { useItemText } from './useItemText';\nimport { hash } from '@/utilities/functions/hash';\nimport { isNotNil } from '@/utilities/functions/isNotNil';\nimport { waitFor } from '@/utilities/functions/waitFor';\nimport { isNil } from '@/utilities/functions/isNil';\n\ntype Options = {\n\tmultiple: boolean;\n\tstash: boolean;\n\titemText: string | ((item: any) => string) | undefined;\n\titemValue: string | ((item: any) => string) | undefined;\n\tmodelValue: Ref<any>;\n\tresetQueryOnOptionSelected: boolean;\n\temit: any;\n\titems: Ref<any>;\n\tenforceCoherence: boolean;\n\tprefill: boolean;\n\tmodelValueDebounceTime: number;\n\tdepsDebounceTime: number;\n\tdependencies: Ref<any[]>;\n\tqueryDebounceTime: number;\n\tdisabled: Ref<boolean>;\n};\n\nexport const useOptions = (params: Options) => {\n\tconst query = ref<string>('');\n\n\tconst lastEmittedValue = ref();\n\tconst updateModelValue = (value: any) => {\n\t\tlastEmittedValue.value = value;\n\t\tparams.emit('update:modelValue', value);\n\t};\n\n\tconst internalItems = ref<any[]>([]);\n\tconst {\n\t\tarray: innerStash,\n\t\tadd: addToStash,\n\t\tremove: removeFromStash,\n\t\tset: setStash,\n\t} = useArray<BaseOption>();\n\n\tconst {\n\t\tarray: manualItems,\n\t\tadd: addToManualItems,\n\t\tremove: removeFromManualItems,\n\t} = useArray<BaseOption>();\n\n\tconst { getItemText } = useItemText();\n\tconst { getItemValue } = useItemValue();\n\tconst createOption = (item: any): BaseOption => {\n\t\tconst disabled = !!(params.disabled.value || item.disabled);\n\t\tconst text = getItemText(item, params.itemText);\n\t\tconst value = getItemValue(item, params.itemValue);\n\n\t\t// Undefined is not supported\n\t\tif (value === undefined)\n\t\t\tthrow new Error(\n\t\t\t\t'The result of extracting \"value\" from option was undefined. Affected item is ' +\n\t\t\t\t\tJSON.stringify(item) +\n\t\t\t\t\t' please check itemValue property is correct.'\n\t\t\t);\n\t\tconst valueHash = hash(value);\n\t\tconst selected = false;\n\t\treturn {\n\t\t\titem,\n\t\t\ttext,\n\t\t\tvalue,\n\t\t\tvalueHash,\n\t\t\tdisabled,\n\t\t\tselected,\n\t\t};\n\t};\n\n\tconst setSelected = (o: BaseOption) => {\n\t\to.selected = isNotNil(modelValueIndexedByHash.value[o.valueHash]);\n\t\treturn o;\n\t};\n\tconst options = computed<BaseOption[]>(() => {\n\t\tconst base = ([] as BaseOption[]).concat(\n\t\t\tinternalItems.value.map((item) => {\n\t\t\t\treturn setSelected(createOption(item));\n\t\t\t}),\n\t\t\tmanualItems.value.map(setSelected),\n\t\t\tinnerStash.value.map(setSelected)\n\t\t);\n\t\treturn uniqBy(base, (o) => o.valueHash);\n\t});\n\n\tconst selectOption = (option: BaseOption) => {\n\t\tif (params.multiple) {\n\t\t\tupdateModelValue(params.modelValue.value.concat(option.value));\n\t\t\tif (params.stash) {\n\t\t\t\taddToStash(option);\n\t\t\t}\n\n\t\t\tif (params.resetQueryOnOptionSelected) {\n\t\t\t\talignQueryToState();\n\t\t\t}\n\t\t} else {\n\t\t\tif (params.stash) {\n\t\t\t\tsetStash(option);\n\t\t\t}\n\t\t\tupdateModelValue(option.value);\n\t\t\tnextTick(() => alignQueryToState());\n\t\t}\n\t};\n\tconst unselectOption = async (option: BaseOption) => {\n\t\tremoveFromManualItems((o) => o.valueHash !== option.valueHash);\n\t\tremoveFromStash((o) => o.valueHash !== option.valueHash);\n\t\tif (params.multiple) {\n\t\t\tconst copy = { ...modelValueIndexedByHash.value };\n\t\t\tdelete copy[option.valueHash];\n\t\t\tupdateModelValue(Object.values(copy));\n\t\t} else {\n\t\t\tupdateModelValue(null);\n\t\t\tawait nextTick();\n\t\t\talignQueryToState();\n\t\t}\n\t};\n\n\t/**\n\t * Indexes modelValue to a map of hash - value pairs so we can easily track which values are selected\n\t */\n\tconst modelValueIndexedByHash = computed(() => {\n\t\tconst map: Record<string, any> = {};\n\t\tconst arr = [].concat(params.modelValue.value);\n\t\tfor (let index = 0; index < arr.length; index++) {\n\t\t\tconst element = arr[index];\n\t\t\tmap[hash(element)] = element;\n\t\t}\n\t\treturn map;\n\t});\n\n\tconst getOptions = async ({ prefill = false }) => {\n\t\tlet items: any[] = [];\n\t\tif (Array.isArray(params.items.value)) {\n\t\t\titems = params.items.value;\n\t\t} else {\n\t\t\tif (typeof params.items.value === 'function') {\n\t\t\t\tconst order = ++innerLoading.value;\n\t\t\t\ttry {\n\t\t\t\t\titems = await params.items.value(\n\t\t\t\t\t\tquery.value,\n\t\t\t\t\t\tprefill,\n\t\t\t\t\t\tparams.modelValue.value\n\t\t\t\t\t);\n\t\t\t\t\t// If by the time this resolves another call has already been made discard this result\n\t\t\t\t\tif (order < innerLoading.value) {\n\t\t\t\t\t\tawait waitFor(() => order === innerLoading.value);\n\t\t\t\t\t\titems = internalItems.value;\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t}\n\t\t\t\tinnerLoading.value--;\n\t\t\t}\n\t\t}\n\t\tinternalItems.value = items as any;\n\t};\n\n\t/**\n\t * Indexes options by their hash so they can be retrieved\n\t */\n\tconst optionsIndexedByHash = computed(() => {\n\t\tconst map: Record<string, BaseOption> = {};\n\t\tfor (let index = 0; index < options.value.length; index++) {\n\t\t\tconst element = options.value[index];\n\t\t\tconst { valueHash } = element;\n\t\t\tmap[valueHash] = element;\n\t\t}\n\t\treturn {\n\t\t\tget: (value: any) => {\n\t\t\t\treturn map[hash(value)];\n\t\t\t},\n\t\t};\n\t});\n\n\t/**\n\t * For every item in modelValue find the linked option if it exists.\n\t * This is used to display chips.\n\t */\n\tconst selectedOptions = computed(() => {\n\t\treturn [].concat(params.modelValue.value).reduce((acc, h) => {\n\t\t\tconst found = optionsIndexedByHash.value.get(h);\n\t\t\tif (found) {\n\t\t\t\tacc.push(found);\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] as BaseOption[]);\n\t});\n\n\tconst valueIsSelected = (value: any) =>\n\t\tisNotNil(optionsIndexedByHash.value.get(value));\n\n\tconst alignQueryToState = () => {\n\t\tif (params.multiple) {\n\t\t\tquery.value = '';\n\t\t\treturn;\n\t\t}\n\t\tlet option: BaseOption | undefined;\n\t\tif (selectedOptions.value) {\n\t\t\toption = last(selectedOptions.value);\n\t\t}\n\t\tquery.value = option?.text || '';\n\t};\n\n\t/**\n\t * Add an option to the manual items and then reset the query\n\t */\n\tconst addCurrentQueryToManualItems = () => {\n\t\tconst text = query.value.trim();\n\t\tconst option = createOption(text);\n\t\taddToManualItems(option);\n\t\talignQueryToState();\n\t};\n\n\t/**\n\t * Use a number accumulator because if the fn takes 5 seconds\n\t * and after 2 seconds another search is run\n\t * When the first returns the second is still out for 2 seconds\n\t * and we want to track them both.\n\t * Debounce will not be enough.\n\t */\n\tconst innerLoading = ref(0);\n\n\t/**\n\t * Coherent values are values that have an option they can be linked to.\n\t * Divide coherent and incoherent values.\n\t */\n\n\tconst coherenceStatus = computed(() => {\n\t\treturn [].concat(params.modelValue.value).reduce(\n\t\t\t(acc, curr) => {\n\t\t\t\tif (valueIsSelected(curr)) {\n\t\t\t\t\tacc.coherent.push(curr);\n\t\t\t\t} else {\n\t\t\t\t\tacc.incoherent.push(curr);\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{ coherent: [], incoherent: [] }\n\t\t);\n\t});\n\n\t/**\n\t * Model value is considered coherent when:\n\t * - multiple mode is empty\n\t * - single mode is null\n\t */\n\tconst modelValueIsCoherent = computed(() => {\n\t\tif (params.multiple && !params.modelValue.value.length) return true;\n\t\telse if (!params.multiple && isNil(params.modelValue.value)) return true;\n\t\treturn !coherenceStatus.value.incoherent.length;\n\t});\n\n\t/**\n\t * Realign selection state to the passed settings.\n\t * If modelValue has any value that is not coherent while\n\t * coherence is enforced the value should be removed\n\t */\n\tconst alignToCoherenceSettings = () => {\n\t\tif (params.enforceCoherence && !modelValueIsCoherent.value) {\n\t\t\tif (!params.multiple) updateModelValue(null);\n\t\t\telse updateModelValue(coherenceStatus.value.coherent);\n\t\t}\n\t};\n\n\t/**\n\t * Prefilling is the phase where the component understands it needs\n\t * to update its inner items due to a change in state, whether dependencies have changed, items or modelValue have changed.\n\t * It can be intended as the component aligning itself to what state is passed to it.\n\t */\n\tconst hasPrefilled = ref(false);\n\tconst isPrefilling = ref(false);\n\tconst prefillItems = async () => {\n\t\tisPrefilling.value = true;\n\t\tawait getOptions({ prefill: true });\n\t\talignToCoherenceSettings();\n\t\talignQueryToState();\n\t\thasPrefilled.value = true;\n\t\tisPrefilling.value = false;\n\t};\n\n\tonBeforeMount(async () => {\n\t\tif (params.prefill) {\n\t\t\tawait prefillItems();\n\t\t\tif (params.stash) {\n\t\t\t\tsetStash(...selectedOptions.value);\n\t\t\t}\n\t\t}\n\t});\n\n\t/**\n\t * Triggered on input when items is a function.\n\t */\n\n\tlet timeout: ReturnType<typeof setTimeout>;\n\tconst searchByQuery = () => {\n\t\tif (timeout) clearTimeout(timeout);\n\t\ttimeout = setTimeout(async () => {\n\t\t\ttry {\n\t\t\t\tawait getOptions({ prefill: false });\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t}, params.queryDebounceTime);\n\t};\n\tonBeforeUnmount(() => clearTimeout(timeout));\n\n\t/**\n\t * When modelValue changes split behavior for single and multiple selection:\n\t */\n\tlet modelValueTimeout: ReturnType<typeof setTimeout>;\n\twatch(\n\t\t() => params.modelValue.value,\n\t\t() => {\n\t\t\tif (modelValueIsCoherent.value) return;\n\t\t\tif (modelValueTimeout) clearTimeout(modelValueTimeout);\n\t\t\tmodelValueTimeout = setTimeout(async () => {\n\t\t\t\tprefillItems();\n\t\t\t}, params.modelValueDebounceTime);\n\t\t}\n\t);\n\n\t/**\n\t * START DEPENDENCY HANDLING\n\t * Explicit dependencies (props.dependencies) and implicit dependencies (props.items)\n\t * need to trigger a pipeline of realignment whenever they change\n\t */\n\tlet depsTimeout: ReturnType<typeof setTimeout>;\n\n\tconst handleDependencyChange = async (current: any, previous: any) => {\n\t\t// Circumvent arrays defined in the template by the parent triggering the watcher\n\t\tif (hash(previous) === hash(current)) return;\n\t\t// Do not track until prefill completes\n\t\tif (!hasPrefilled.value) return;\n\t\tif (depsTimeout) clearTimeout(depsTimeout);\n\t\tdepsTimeout = setTimeout(async () => {\n\t\t\tawait prefillItems();\n\t\t}, params.depsDebounceTime);\n\t};\n\n\t/**\n\t * This is triggered to refresh static items whenever the passed array changes.\n\t * If the parent defines an array in the template this is triggered\n\t * at every render so we take counter measures\n\t * Even if the entire array changes all the previously selected values are still in the stash.\n\t */\n\twatch(() => params.items.value, handleDependencyChange);\n\n\t/**\n\t * When dependencies change\n\t * If the input has not been prefilled yet just return\n\t * Check dependencies are the same by value and not reference\n\t * Otherwise we search again for options as they might be different base on dependencies.\n\t * If coherence is enforced we set the state accordingly\n\t */\n\twatch(() => params.dependencies.value, handleDependencyChange);\n\n\t/**\n\t * END DEPENDENCIES HANDLING\n\t */\n\n\treturn {\n\t\taddCurrentQueryToManualItems,\n\t\talignQueryToState,\n\t\tgetOptions,\n\t\thasPrefilled,\n\t\tinnerLoading,\n\t\tisPrefilling,\n\t\tmanualItems,\n\t\toptions,\n\t\tprefillItems,\n\t\tquery,\n\t\tsearchByQuery,\n\t\tselectedOptions,\n\t\tselectOption,\n\t\tsetStash,\n\t\tunselectOption,\n\t\tupdateModelValue,\n\t\tvalueIsSelected,\n\t\tinternalItems,\n\t};\n};\n"],"names":["useOptions","params","query","ref","lastEmittedValue","updateModelValue","value","internalItems","innerStash","addToStash","removeFromStash","setStash","useArray","manualItems","addToManualItems","removeFromManualItems","getItemText","useItemText","getItemValue","useItemValue","createOption","item","disabled","text","valueHash","hash","setSelected","o","isNotNil","modelValueIndexedByHash","options","computed","base","uniqBy","selectOption","option","alignQueryToState","nextTick","unselectOption","copy","map","arr","index","element","getOptions","prefill","items","order","innerLoading","waitFor","error","optionsIndexedByHash","selectedOptions","acc","h","found","valueIsSelected","last","addCurrentQueryToManualItems","coherenceStatus","curr","modelValueIsCoherent","isNil","alignToCoherenceSettings","hasPrefilled","isPrefilling","prefillItems","onBeforeMount","timeout","searchByQuery","onBeforeUnmount","modelValueTimeout","watch","depsTimeout","handleDependencyChange","current","previous"],"mappings":"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"}
|