@anoki/fse-ui 1.0.0-beta1.41 → 1.0.0-beta1.43
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/ui/AggregationItemCard/AggregationItemCard.css +1 -1
- package/dist/components/ui/Tags/Tags.css +1 -1
- package/dist/index.cjs106.js +1 -1
- package/dist/index.cjs106.js.map +1 -1
- package/dist/index.cjs135.js +1 -1
- package/dist/index.cjs135.js.map +1 -1
- package/dist/index.cjs150.js +1 -1
- package/dist/index.cjs150.js.map +1 -1
- package/dist/index.cjs221.js +1 -1
- package/dist/index.cjs223.js +1 -1
- package/dist/index.cjs237.js +1 -1
- package/dist/index.cjs241.js +1 -1
- package/dist/index.cjs248.js +1 -1
- package/dist/index.cjs254.js +1 -1
- package/dist/index.cjs255.js +1 -1
- package/dist/index.cjs256.js +1 -1
- package/dist/index.cjs257.js +1 -1
- package/dist/index.cjs285.js +1 -1
- package/dist/index.cjs290.js +1 -1
- package/dist/index.cjs298.js +1 -1
- package/dist/index.cjs308.js +1 -1
- package/dist/index.cjs315.js +1 -1
- package/dist/index.cjs32.js +1 -1
- package/dist/index.cjs33.js +1 -1
- package/dist/index.cjs346.js +1 -1
- package/dist/index.cjs364.js +1 -1
- package/dist/index.cjs365.js +1 -1
- package/dist/index.cjs387.js +1 -1
- package/dist/index.cjs393.js +1 -1
- package/dist/index.cjs405.js +1 -1
- package/dist/index.cjs442.js +2 -0
- package/dist/index.cjs442.js.map +1 -0
- package/dist/index.cjs443.js +1 -1
- package/dist/index.cjs443.js.map +1 -1
- package/dist/index.cjs444.js +1 -1
- package/dist/index.cjs444.js.map +1 -1
- package/dist/index.cjs445.js +9 -1
- package/dist/index.cjs445.js.map +1 -1
- package/dist/index.cjs446.js +17 -3
- package/dist/index.cjs446.js.map +1 -1
- package/dist/index.cjs447.js +1 -23
- package/dist/index.cjs447.js.map +1 -1
- package/dist/index.cjs448.js +2 -1
- package/dist/index.cjs448.js.map +1 -1
- package/dist/index.cjs449.js +27 -2
- package/dist/index.cjs449.js.map +1 -1
- package/dist/index.cjs450.js +1 -27
- package/dist/index.cjs450.js.map +1 -1
- package/dist/index.cjs451.js +1 -1
- package/dist/index.cjs452.js +1 -1
- package/dist/index.cjs452.js.map +1 -1
- package/dist/index.cjs453.js +1 -1
- package/dist/index.cjs453.js.map +1 -1
- package/dist/index.cjs454.js +1 -1
- package/dist/index.cjs454.js.map +1 -1
- package/dist/index.cjs456.js +2 -0
- package/dist/index.cjs456.js.map +1 -0
- package/dist/index.cjs457.js +1 -1
- package/dist/index.cjs457.js.map +1 -1
- package/dist/index.cjs458.js +1 -1
- package/dist/index.cjs458.js.map +1 -1
- package/dist/index.cjs459.js +1 -1
- package/dist/index.cjs459.js.map +1 -1
- package/dist/index.cjs460.js +1 -1
- package/dist/index.cjs460.js.map +1 -1
- package/dist/index.cjs461.js +1 -1
- package/dist/index.cjs461.js.map +1 -1
- package/dist/index.cjs462.js +1 -1
- package/dist/index.cjs462.js.map +1 -1
- package/dist/index.cjs463.js +1 -1
- package/dist/index.cjs463.js.map +1 -1
- package/dist/index.cjs466.js +2 -0
- package/dist/index.cjs466.js.map +1 -0
- package/dist/index.cjs467.js +1 -1
- package/dist/index.cjs467.js.map +1 -1
- package/dist/index.cjs468.js +1 -1
- package/dist/index.cjs468.js.map +1 -1
- package/dist/index.cjs469.js +1 -1
- package/dist/index.cjs469.js.map +1 -1
- package/dist/index.cjs471.js +1 -1
- package/dist/index.cjs471.js.map +1 -1
- package/dist/index.cjs472.js +1 -1
- package/dist/index.cjs472.js.map +1 -1
- package/dist/index.cjs473.js +1 -1
- package/dist/index.cjs474.js +1 -1
- package/dist/index.cjs474.js.map +1 -1
- package/dist/index.cjs475.js +1 -1
- package/dist/index.cjs475.js.map +1 -1
- package/dist/index.cjs479.js +1 -1
- package/dist/index.cjs480.js +1 -1
- package/dist/index.cjs481.js +1 -1
- package/dist/index.cjs485.js +1 -1
- package/dist/index.cjs491.js +1 -1
- package/dist/index.cjs491.js.map +1 -1
- package/dist/index.cjs492.js +1 -1
- package/dist/index.cjs492.js.map +1 -1
- package/dist/index.cjs493.js +1 -1
- package/dist/index.cjs493.js.map +1 -1
- package/dist/index.cjs494.js +1 -1
- package/dist/index.cjs494.js.map +1 -1
- package/dist/index.cjs495.js +2 -0
- package/dist/index.cjs495.js.map +1 -0
- package/dist/index.cjs496.js +2 -0
- package/dist/index.cjs496.js.map +1 -0
- package/dist/index.cjs5.js +1 -1
- package/dist/index.cjs507.js +1 -1
- package/dist/index.cjs509.js +1 -1
- package/dist/index.cjs515.js +1 -1
- package/dist/index.cjs516.js +1 -1
- package/dist/index.cjs517.js +1 -1
- package/dist/index.cjs522.js +1 -1
- package/dist/index.cjs522.js.map +1 -1
- package/dist/index.cjs523.js +1 -38
- package/dist/index.cjs523.js.map +1 -1
- package/dist/index.cjs524.js +1 -1
- package/dist/index.cjs524.js.map +1 -1
- package/dist/index.cjs525.js +1 -1
- package/dist/index.cjs525.js.map +1 -1
- package/dist/index.cjs526.js +1 -1
- package/dist/index.cjs526.js.map +1 -1
- package/dist/index.cjs527.js +1 -1
- package/dist/index.cjs527.js.map +1 -1
- package/dist/index.cjs528.js +1 -1
- package/dist/index.cjs528.js.map +1 -1
- package/dist/index.cjs529.js +1 -1
- package/dist/index.cjs529.js.map +1 -1
- package/dist/index.cjs530.js +1 -1
- package/dist/index.cjs530.js.map +1 -1
- package/dist/index.cjs531.js +1 -1
- package/dist/index.cjs531.js.map +1 -1
- package/dist/index.cjs532.js +1 -1
- package/dist/index.cjs532.js.map +1 -1
- package/dist/index.cjs533.js +1 -1
- package/dist/index.cjs533.js.map +1 -1
- package/dist/index.cjs534.js +1 -1
- package/dist/index.cjs534.js.map +1 -1
- package/dist/index.cjs535.js +1 -1
- package/dist/index.cjs535.js.map +1 -1
- package/dist/index.cjs536.js +1 -1
- package/dist/index.cjs536.js.map +1 -1
- package/dist/index.cjs537.js +1 -1
- package/dist/index.cjs537.js.map +1 -1
- package/dist/index.cjs538.js +1 -1
- package/dist/index.cjs538.js.map +1 -1
- package/dist/index.cjs539.js +1 -1
- package/dist/index.cjs539.js.map +1 -1
- package/dist/index.cjs540.js +1 -1
- package/dist/index.cjs540.js.map +1 -1
- package/dist/index.cjs541.js +1 -1
- package/dist/index.cjs541.js.map +1 -1
- package/dist/index.cjs542.js +1 -1
- package/dist/index.cjs542.js.map +1 -1
- package/dist/index.cjs543.js +1 -1
- package/dist/index.cjs543.js.map +1 -1
- package/dist/index.cjs544.js +1 -1
- package/dist/index.cjs544.js.map +1 -1
- package/dist/index.cjs545.js +1 -1
- package/dist/index.cjs545.js.map +1 -1
- package/dist/index.cjs546.js +1 -1
- package/dist/index.cjs546.js.map +1 -1
- package/dist/index.cjs547.js +1 -1
- package/dist/index.cjs547.js.map +1 -1
- package/dist/index.cjs548.js +1 -1
- package/dist/index.cjs548.js.map +1 -1
- package/dist/index.cjs549.js +38 -1
- package/dist/index.cjs549.js.map +1 -1
- package/dist/index.cjs550.js +1 -1
- package/dist/index.cjs550.js.map +1 -1
- package/dist/index.cjs551.js +1 -1
- package/dist/index.cjs551.js.map +1 -1
- package/dist/index.cjs552.js +1 -1
- package/dist/index.cjs552.js.map +1 -1
- package/dist/index.cjs553.js +5 -1
- package/dist/index.cjs553.js.map +1 -1
- package/dist/index.cjs554.js +1 -1
- package/dist/index.cjs554.js.map +1 -1
- package/dist/index.cjs555.js +1 -5
- package/dist/index.cjs555.js.map +1 -1
- package/dist/index.cjs556.js +1 -1
- package/dist/index.cjs556.js.map +1 -1
- package/dist/index.cjs557.js +1 -1
- package/dist/index.cjs557.js.map +1 -1
- package/dist/index.cjs558.js +1 -1
- package/dist/index.cjs558.js.map +1 -1
- package/dist/index.cjs559.js +1 -1
- package/dist/index.cjs559.js.map +1 -1
- package/dist/index.cjs560.js +1 -1
- package/dist/index.cjs560.js.map +1 -1
- package/dist/index.cjs561.js +1 -1
- package/dist/index.cjs561.js.map +1 -1
- package/dist/index.cjs562.js +1 -1
- package/dist/index.cjs562.js.map +1 -1
- package/dist/index.cjs563.js +1 -1
- package/dist/index.cjs563.js.map +1 -1
- package/dist/index.cjs564.js +1 -1
- package/dist/index.cjs564.js.map +1 -1
- package/dist/index.cjs565.js +1 -1
- package/dist/index.cjs565.js.map +1 -1
- package/dist/index.cjs566.js +1 -1
- package/dist/index.cjs566.js.map +1 -1
- package/dist/index.cjs567.js +1 -1
- package/dist/index.cjs567.js.map +1 -1
- package/dist/index.cjs568.js +1 -1
- package/dist/index.cjs568.js.map +1 -1
- package/dist/index.cjs569.js +1 -1
- package/dist/index.cjs569.js.map +1 -1
- package/dist/index.cjs570.js +2 -0
- package/dist/index.cjs570.js.map +1 -0
- package/dist/index.cjs574.js +2 -0
- package/dist/index.cjs574.js.map +1 -0
- package/dist/index.cjs575.js +1 -1
- package/dist/index.cjs575.js.map +1 -1
- package/dist/index.cjs580.js +1 -1
- package/dist/index.cjs580.js.map +1 -1
- package/dist/index.cjs581.js +1 -1
- package/dist/index.cjs581.js.map +1 -1
- package/dist/{index.cjs578.js → index.cjs582.js} +1 -1
- package/dist/{index.cjs578.js.map → index.cjs582.js.map} +1 -1
- package/dist/{index.cjs579.js → index.cjs583.js} +1 -1
- package/dist/{index.cjs579.js.map → index.cjs583.js.map} +1 -1
- package/dist/index.cjs588.js +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.es106.js +11 -10
- package/dist/index.es106.js.map +1 -1
- package/dist/index.es135.js +62 -78
- package/dist/index.es135.js.map +1 -1
- package/dist/index.es150.js +16 -15
- package/dist/index.es150.js.map +1 -1
- package/dist/index.es221.js +1 -1
- package/dist/index.es223.js +1 -1
- package/dist/index.es237.js +1 -1
- package/dist/index.es241.js +1 -1
- package/dist/index.es248.js +2 -2
- package/dist/index.es254.js +3 -3
- package/dist/index.es255.js +1 -1
- package/dist/index.es256.js +2 -2
- package/dist/index.es257.js +2 -2
- package/dist/index.es285.js +7 -7
- package/dist/index.es290.js +1 -1
- package/dist/index.es298.js +8 -8
- package/dist/index.es308.js +1 -1
- package/dist/index.es315.js +7 -7
- package/dist/index.es32.js +1 -1
- package/dist/index.es33.js +1 -1
- package/dist/index.es346.js +7 -7
- package/dist/index.es364.js +6 -6
- package/dist/index.es365.js +2 -2
- package/dist/index.es387.js +3 -3
- package/dist/index.es393.js +1 -1
- package/dist/index.es405.js +8 -8
- package/dist/index.es442.js +139 -0
- package/dist/index.es442.js.map +1 -0
- package/dist/index.es443.js +7 -135
- package/dist/index.es443.js.map +1 -1
- package/dist/index.es444.js +2 -8
- package/dist/index.es444.js.map +1 -1
- package/dist/index.es445.js +33 -2
- package/dist/index.es445.js.map +1 -1
- package/dist/index.es446.js +396 -23
- package/dist/index.es446.js.map +1 -1
- package/dist/index.es447.js +5 -405
- package/dist/index.es447.js.map +1 -1
- package/dist/index.es448.js +520 -5
- package/dist/index.es448.js.map +1 -1
- package/dist/index.es449.js +3653 -499
- package/dist/index.es449.js.map +1 -1
- package/dist/index.es450.js +5 -3674
- package/dist/index.es450.js.map +1 -1
- package/dist/index.es451.js +2 -6
- package/dist/index.es451.js.map +1 -1
- package/dist/index.es452.js +2026 -2
- package/dist/index.es452.js.map +1 -1
- package/dist/index.es453.js +52 -2018
- package/dist/index.es453.js.map +1 -1
- package/dist/index.es454.js +187 -57
- package/dist/index.es454.js.map +1 -1
- package/dist/index.es456.js +10 -0
- package/dist/index.es456.js.map +1 -0
- package/dist/index.es457.js +25 -5
- package/dist/index.es457.js.map +1 -1
- package/dist/index.es458.js +64 -23
- package/dist/index.es458.js.map +1 -1
- package/dist/index.es459.js +27 -65
- package/dist/index.es459.js.map +1 -1
- package/dist/index.es460.js +32 -29
- package/dist/index.es460.js.map +1 -1
- package/dist/index.es461.js +620 -31
- package/dist/index.es461.js.map +1 -1
- package/dist/index.es462.js +10 -621
- package/dist/index.es462.js.map +1 -1
- package/dist/index.es463.js +15 -11
- package/dist/index.es463.js.map +1 -1
- package/dist/index.es466.js +9 -0
- package/dist/index.es466.js.map +1 -0
- package/dist/index.es467.js +24 -5
- package/dist/index.es467.js.map +1 -1
- package/dist/index.es468.js +67 -23
- package/dist/index.es468.js.map +1 -1
- package/dist/index.es469.js +2 -69
- package/dist/index.es469.js.map +1 -1
- package/dist/index.es470.js +2 -2
- package/dist/index.es471.js +15 -2
- package/dist/index.es471.js.map +1 -1
- package/dist/index.es472.js +8 -131
- package/dist/index.es472.js.map +1 -1
- package/dist/index.es473.js +1 -1
- package/dist/index.es474.js +3 -9
- package/dist/index.es474.js.map +1 -1
- package/dist/index.es475.js +131 -2
- package/dist/index.es475.js.map +1 -1
- package/dist/index.es479.js +4 -4
- package/dist/index.es480.js +3 -3
- package/dist/index.es481.js +2 -2
- package/dist/index.es485.js +1 -1
- package/dist/index.es491.js +10 -13
- package/dist/index.es491.js.map +1 -1
- package/dist/index.es492.js +43 -215
- package/dist/index.es492.js.map +1 -1
- package/dist/index.es493.js +12 -176
- package/dist/index.es493.js.map +1 -1
- package/dist/index.es494.js +217 -3
- package/dist/index.es494.js.map +1 -1
- package/dist/index.es495.js +181 -0
- package/dist/index.es495.js.map +1 -0
- package/dist/index.es496.js +7 -0
- package/dist/index.es496.js.map +1 -0
- package/dist/index.es5.js +1 -1
- package/dist/index.es507.js +1 -1
- package/dist/index.es509.js +1 -1
- package/dist/index.es515.js +1 -1
- package/dist/index.es516.js +2 -2
- package/dist/index.es517.js +4 -4
- package/dist/index.es522.js +5 -65
- package/dist/index.es522.js.map +1 -1
- package/dist/index.es523.js +16 -69
- package/dist/index.es523.js.map +1 -1
- package/dist/index.es524.js +13 -9
- package/dist/index.es524.js.map +1 -1
- package/dist/index.es525.js +34 -12
- package/dist/index.es525.js.map +1 -1
- package/dist/index.es526.js +5 -62
- package/dist/index.es526.js.map +1 -1
- package/dist/index.es527.js +2 -5
- package/dist/index.es527.js.map +1 -1
- package/dist/index.es528.js +3 -16
- package/dist/index.es528.js.map +1 -1
- package/dist/index.es529.js +7 -13
- package/dist/index.es529.js.map +1 -1
- package/dist/index.es530.js +6 -36
- package/dist/index.es530.js.map +1 -1
- package/dist/index.es531.js +5 -5
- package/dist/index.es531.js.map +1 -1
- package/dist/index.es532.js +32 -2
- package/dist/index.es532.js.map +1 -1
- package/dist/index.es533.js +242 -3
- package/dist/index.es533.js.map +1 -1
- package/dist/index.es534.js +4 -7
- package/dist/index.es534.js.map +1 -1
- package/dist/index.es535.js +5 -6
- package/dist/index.es535.js.map +1 -1
- package/dist/index.es536.js +10 -5
- package/dist/index.es536.js.map +1 -1
- package/dist/index.es537.js +56 -32
- package/dist/index.es537.js.map +1 -1
- package/dist/index.es538.js +7 -241
- package/dist/index.es538.js.map +1 -1
- package/dist/index.es539.js +6 -4
- package/dist/index.es539.js.map +1 -1
- package/dist/index.es540.js +532 -4
- package/dist/index.es540.js.map +1 -1
- package/dist/index.es541.js +14 -10
- package/dist/index.es541.js.map +1 -1
- package/dist/index.es542.js +2 -56
- package/dist/index.es542.js.map +1 -1
- package/dist/index.es543.js +36 -7
- package/dist/index.es543.js.map +1 -1
- package/dist/index.es544.js +2 -6
- package/dist/index.es544.js.map +1 -1
- package/dist/index.es545.js +248 -508
- package/dist/index.es545.js.map +1 -1
- package/dist/index.es546.js +3 -14
- package/dist/index.es546.js.map +1 -1
- package/dist/index.es547.js +30 -2
- package/dist/index.es547.js.map +1 -1
- package/dist/index.es548.js +64 -36
- package/dist/index.es548.js.map +1 -1
- package/dist/index.es549.js +69 -2
- package/dist/index.es549.js.map +1 -1
- package/dist/index.es550.js +8 -272
- package/dist/index.es550.js.map +1 -1
- package/dist/index.es551.js +14 -3
- package/dist/index.es551.js.map +1 -1
- package/dist/index.es552.js +61 -29
- package/dist/index.es552.js.map +1 -1
- package/dist/index.es553.js +39 -3
- package/dist/index.es553.js.map +1 -1
- package/dist/index.es554.js +2 -23
- package/dist/index.es554.js.map +1 -1
- package/dist/index.es555.js +4 -39
- package/dist/index.es555.js.map +1 -1
- package/dist/index.es556.js +2 -2
- package/dist/index.es556.js.map +1 -1
- package/dist/index.es557.js +2 -5
- package/dist/index.es557.js.map +1 -1
- package/dist/index.es558.js +2 -16
- package/dist/index.es558.js.map +1 -1
- package/dist/index.es559.js +6 -2
- package/dist/index.es559.js.map +1 -1
- package/dist/index.es560.js +16 -2
- package/dist/index.es560.js.map +1 -1
- package/dist/index.es561.js +2 -2
- package/dist/index.es561.js.map +1 -1
- package/dist/index.es562.js +2 -6
- package/dist/index.es562.js.map +1 -1
- package/dist/index.es563.js +3 -2
- package/dist/index.es563.js.map +1 -1
- package/dist/index.es564.js +2 -2
- package/dist/index.es564.js.map +1 -1
- package/dist/index.es565.js +4 -3
- package/dist/index.es565.js.map +1 -1
- package/dist/index.es566.js +4 -2
- package/dist/index.es566.js.map +1 -1
- package/dist/index.es567.js +22 -3
- package/dist/index.es567.js.map +1 -1
- package/dist/index.es568.js +3 -73
- package/dist/index.es568.js.map +1 -1
- package/dist/index.es569.js +3 -2
- package/dist/index.es569.js.map +1 -1
- package/dist/index.es570.js +5 -0
- package/dist/index.es570.js.map +1 -0
- package/dist/index.es574.js +77 -0
- package/dist/index.es574.js.map +1 -0
- package/dist/index.es575.js +2 -4
- package/dist/index.es575.js.map +1 -1
- package/dist/index.es580.js +13 -3
- package/dist/index.es580.js.map +1 -1
- package/dist/index.es581.js +28 -2
- package/dist/index.es581.js.map +1 -1
- package/dist/{index.es578.js → index.es582.js} +1 -1
- package/dist/{index.es578.js.map → index.es582.js.map} +1 -1
- package/dist/{index.es579.js → index.es583.js} +1 -1
- package/dist/{index.es579.js.map → index.es583.js.map} +1 -1
- package/dist/index.es588.js +1 -1
- package/package.json +3 -2
- package/dist/index.cjs441.js +0 -2
- package/dist/index.cjs441.js.map +0 -1
- package/dist/index.cjs455.js +0 -2
- package/dist/index.cjs455.js.map +0 -1
- package/dist/index.cjs464.js +0 -2
- package/dist/index.cjs464.js.map +0 -1
- package/dist/index.cjs489.js +0 -2
- package/dist/index.cjs489.js.map +0 -1
- package/dist/index.cjs490.js +0 -2
- package/dist/index.cjs490.js.map +0 -1
- package/dist/index.cjs576.js +0 -2
- package/dist/index.cjs576.js.map +0 -1
- package/dist/index.cjs577.js +0 -2
- package/dist/index.cjs577.js.map +0 -1
- package/dist/index.es441.js +0 -25
- package/dist/index.es441.js.map +0 -1
- package/dist/index.es455.js +0 -193
- package/dist/index.es455.js.map +0 -1
- package/dist/index.es464.js +0 -18
- package/dist/index.es464.js.map +0 -1
- package/dist/index.es489.js +0 -14
- package/dist/index.es489.js.map +0 -1
- package/dist/index.es490.js +0 -49
- package/dist/index.es490.js.map +0 -1
- package/dist/index.es576.js +0 -16
- package/dist/index.es576.js.map +0 -1
- package/dist/index.es577.js +0 -31
- package/dist/index.es577.js.map +0 -1
- /package/dist/components/ui/{CardMapDoctor/CardMapDoctor.css → CardMapDoctorV2/CardMapDoctorV2.css} +0 -0
    
        package/dist/index.es453.js.map
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"file":"index.es453.js","sources":["../node_modules/swiper/shared/swiper-core.mjs"],"sourcesContent":["import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { b as elementParents, q as elementStyle, e as elementChildren, a as setCSSProperty, h as elementOuterSize, r as elementNextAll, t as elementPrevAll, k as getTranslate, u as animateCSSModeScroll, n as nextTick, v as showWarning, c as createElement, w as elementIsChildOf, f as now, x as extend, i as elementIndex, y as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n  const window = getWindow();\n  const document = getDocument();\n  return {\n    smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n    touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n  };\n}\nfunction getSupport() {\n  if (!support) {\n    support = calcSupport();\n  }\n  return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n  let {\n    userAgent\n  } = _temp === void 0 ? {} : _temp;\n  const support = getSupport();\n  const window = getWindow();\n  const platform = window.navigator.platform;\n  const ua = userAgent || window.navigator.userAgent;\n  const device = {\n    ios: false,\n    android: false\n  };\n  const screenWidth = window.screen.width;\n  const screenHeight = window.screen.height;\n  const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n  let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n  const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n  const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n  const windows = platform === 'Win32';\n  let macos = platform === 'MacIntel';\n\n  // iPadOs 13 fix\n  const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n  if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n    ipad = ua.match(/(Version)\\/([\\d.]+)/);\n    if (!ipad) ipad = [0, 1, '13_0_0'];\n    macos = false;\n  }\n\n  // Android\n  if (android && !windows) {\n    device.os = 'android';\n    device.android = true;\n  }\n  if (ipad || iphone || ipod) {\n    device.os = 'ios';\n    device.ios = true;\n  }\n\n  // Export object\n  return device;\n}\nfunction getDevice(overrides) {\n  if (overrides === void 0) {\n    overrides = {};\n  }\n  if (!deviceCached) {\n    deviceCached = calcDevice(overrides);\n  }\n  return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n  const window = getWindow();\n  const device = getDevice();\n  let needPerspectiveFix = false;\n  function isSafari() {\n    const ua = window.navigator.userAgent.toLowerCase();\n    return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n  }\n  if (isSafari()) {\n    const ua = String(window.navigator.userAgent);\n    if (ua.includes('Version/')) {\n      const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n      needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n    }\n  }\n  const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n  const isSafariBrowser = isSafari();\n  const need3dFix = isSafariBrowser || isWebView && device.ios;\n  return {\n    isSafari: needPerspectiveFix || isSafariBrowser,\n    needPerspectiveFix,\n    need3dFix,\n    isWebView\n  };\n}\nfunction getBrowser() {\n  if (!browser) {\n    browser = calcBrowser();\n  }\n  return browser;\n}\n\nfunction Resize(_ref) {\n  let {\n    swiper,\n    on,\n    emit\n  } = _ref;\n  const window = getWindow();\n  let observer = null;\n  let animationFrame = null;\n  const resizeHandler = () => {\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\n    emit('beforeResize');\n    emit('resize');\n  };\n  const createObserver = () => {\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\n    observer = new ResizeObserver(entries => {\n      animationFrame = window.requestAnimationFrame(() => {\n        const {\n          width,\n          height\n        } = swiper;\n        let newWidth = width;\n        let newHeight = height;\n        entries.forEach(_ref2 => {\n          let {\n            contentBoxSize,\n            contentRect,\n            target\n          } = _ref2;\n          if (target && target !== swiper.el) return;\n          newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n          newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n        });\n        if (newWidth !== width || newHeight !== height) {\n          resizeHandler();\n        }\n      });\n    });\n    observer.observe(swiper.el);\n  };\n  const removeObserver = () => {\n    if (animationFrame) {\n      window.cancelAnimationFrame(animationFrame);\n    }\n    if (observer && observer.unobserve && swiper.el) {\n      observer.unobserve(swiper.el);\n      observer = null;\n    }\n  };\n  const orientationChangeHandler = () => {\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\n    emit('orientationchange');\n  };\n  on('init', () => {\n    if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n      createObserver();\n      return;\n    }\n    window.addEventListener('resize', resizeHandler);\n    window.addEventListener('orientationchange', orientationChangeHandler);\n  });\n  on('destroy', () => {\n    removeObserver();\n    window.removeEventListener('resize', resizeHandler);\n    window.removeEventListener('orientationchange', orientationChangeHandler);\n  });\n}\n\nfunction Observer(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on,\n    emit\n  } = _ref;\n  const observers = [];\n  const window = getWindow();\n  const attach = function (target, options) {\n    if (options === void 0) {\n      options = {};\n    }\n    const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n    const observer = new ObserverFunc(mutations => {\n      // The observerUpdate event should only be triggered\n      // once despite the number of mutations.  Additional\n      // triggers are redundant and are very costly\n      if (swiper.__preventObserver__) return;\n      if (mutations.length === 1) {\n        emit('observerUpdate', mutations[0]);\n        return;\n      }\n      const observerUpdate = function observerUpdate() {\n        emit('observerUpdate', mutations[0]);\n      };\n      if (window.requestAnimationFrame) {\n        window.requestAnimationFrame(observerUpdate);\n      } else {\n        window.setTimeout(observerUpdate, 0);\n      }\n    });\n    observer.observe(target, {\n      attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n      childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,\n      characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n    });\n    observers.push(observer);\n  };\n  const init = () => {\n    if (!swiper.params.observer) return;\n    if (swiper.params.observeParents) {\n      const containerParents = elementParents(swiper.hostEl);\n      for (let i = 0; i < containerParents.length; i += 1) {\n        attach(containerParents[i]);\n      }\n    }\n    // Observe container\n    attach(swiper.hostEl, {\n      childList: swiper.params.observeSlideChildren\n    });\n\n    // Observe wrapper\n    attach(swiper.wrapperEl, {\n      attributes: false\n    });\n  };\n  const destroy = () => {\n    observers.forEach(observer => {\n      observer.disconnect();\n    });\n    observers.splice(0, observers.length);\n  };\n  extendParams({\n    observer: false,\n    observeParents: false,\n    observeSlideChildren: false\n  });\n  on('init', init);\n  on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n  on(events, handler, priority) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (typeof handler !== 'function') return self;\n    const method = priority ? 'unshift' : 'push';\n    events.split(' ').forEach(event => {\n      if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n      self.eventsListeners[event][method](handler);\n    });\n    return self;\n  },\n  once(events, handler, priority) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (typeof handler !== 'function') return self;\n    function onceHandler() {\n      self.off(events, onceHandler);\n      if (onceHandler.__emitterProxy) {\n        delete onceHandler.__emitterProxy;\n      }\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      handler.apply(self, args);\n    }\n    onceHandler.__emitterProxy = handler;\n    return self.on(events, onceHandler, priority);\n  },\n  onAny(handler, priority) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (typeof handler !== 'function') return self;\n    const method = priority ? 'unshift' : 'push';\n    if (self.eventsAnyListeners.indexOf(handler) < 0) {\n      self.eventsAnyListeners[method](handler);\n    }\n    return self;\n  },\n  offAny(handler) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (!self.eventsAnyListeners) return self;\n    const index = self.eventsAnyListeners.indexOf(handler);\n    if (index >= 0) {\n      self.eventsAnyListeners.splice(index, 1);\n    }\n    return self;\n  },\n  off(events, handler) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (!self.eventsListeners) return self;\n    events.split(' ').forEach(event => {\n      if (typeof handler === 'undefined') {\n        self.eventsListeners[event] = [];\n      } else if (self.eventsListeners[event]) {\n        self.eventsListeners[event].forEach((eventHandler, index) => {\n          if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n            self.eventsListeners[event].splice(index, 1);\n          }\n        });\n      }\n    });\n    return self;\n  },\n  emit() {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (!self.eventsListeners) return self;\n    let events;\n    let data;\n    let context;\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n    if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n      events = args[0];\n      data = args.slice(1, args.length);\n      context = self;\n    } else {\n      events = args[0].events;\n      data = args[0].data;\n      context = args[0].context || self;\n    }\n    data.unshift(context);\n    const eventsArray = Array.isArray(events) ? events : events.split(' ');\n    eventsArray.forEach(event => {\n      if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n        self.eventsAnyListeners.forEach(eventHandler => {\n          eventHandler.apply(context, [event, ...data]);\n        });\n      }\n      if (self.eventsListeners && self.eventsListeners[event]) {\n        self.eventsListeners[event].forEach(eventHandler => {\n          eventHandler.apply(context, data);\n        });\n      }\n    });\n    return self;\n  }\n};\n\nfunction updateSize() {\n  const swiper = this;\n  let width;\n  let height;\n  const el = swiper.el;\n  if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n    width = swiper.params.width;\n  } else {\n    width = el.clientWidth;\n  }\n  if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n    height = swiper.params.height;\n  } else {\n    height = el.clientHeight;\n  }\n  if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n    return;\n  }\n\n  // Subtract paddings\n  width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n  height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n  if (Number.isNaN(width)) width = 0;\n  if (Number.isNaN(height)) height = 0;\n  Object.assign(swiper, {\n    width,\n    height,\n    size: swiper.isHorizontal() ? width : height\n  });\n}\n\nfunction updateSlides() {\n  const swiper = this;\n  function getDirectionPropertyValue(node, label) {\n    return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n  }\n  const params = swiper.params;\n  const {\n    wrapperEl,\n    slidesEl,\n    size: swiperSize,\n    rtlTranslate: rtl,\n    wrongRTL\n  } = swiper;\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n  const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n  const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n  let snapGrid = [];\n  const slidesGrid = [];\n  const slidesSizesGrid = [];\n  let offsetBefore = params.slidesOffsetBefore;\n  if (typeof offsetBefore === 'function') {\n    offsetBefore = params.slidesOffsetBefore.call(swiper);\n  }\n  let offsetAfter = params.slidesOffsetAfter;\n  if (typeof offsetAfter === 'function') {\n    offsetAfter = params.slidesOffsetAfter.call(swiper);\n  }\n  const previousSnapGridLength = swiper.snapGrid.length;\n  const previousSlidesGridLength = swiper.slidesGrid.length;\n  let spaceBetween = params.spaceBetween;\n  let slidePosition = -offsetBefore;\n  let prevSlideSize = 0;\n  let index = 0;\n  if (typeof swiperSize === 'undefined') {\n    return;\n  }\n  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n  } else if (typeof spaceBetween === 'string') {\n    spaceBetween = parseFloat(spaceBetween);\n  }\n  swiper.virtualSize = -spaceBetween;\n\n  // reset margins\n  slides.forEach(slideEl => {\n    if (rtl) {\n      slideEl.style.marginLeft = '';\n    } else {\n      slideEl.style.marginRight = '';\n    }\n    slideEl.style.marginBottom = '';\n    slideEl.style.marginTop = '';\n  });\n\n  // reset cssMode offsets\n  if (params.centeredSlides && params.cssMode) {\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n  }\n  const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n  if (gridEnabled) {\n    swiper.grid.initSlides(slides);\n  } else if (swiper.grid) {\n    swiper.grid.unsetSlides();\n  }\n\n  // Calc slides\n  let slideSize;\n  const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n    return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n  }).length > 0;\n  for (let i = 0; i < slidesLength; i += 1) {\n    slideSize = 0;\n    let slide;\n    if (slides[i]) slide = slides[i];\n    if (gridEnabled) {\n      swiper.grid.updateSlide(i, slide, slides);\n    }\n    if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n    if (params.slidesPerView === 'auto') {\n      if (shouldResetSlideSize) {\n        slides[i].style[swiper.getDirectionLabel('width')] = ``;\n      }\n      const slideStyles = getComputedStyle(slide);\n      const currentTransform = slide.style.transform;\n      const currentWebKitTransform = slide.style.webkitTransform;\n      if (currentTransform) {\n        slide.style.transform = 'none';\n      }\n      if (currentWebKitTransform) {\n        slide.style.webkitTransform = 'none';\n      }\n      if (params.roundLengths) {\n        slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n      } else {\n        // eslint-disable-next-line\n        const width = getDirectionPropertyValue(slideStyles, 'width');\n        const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n        const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n        const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n        const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n        const boxSizing = slideStyles.getPropertyValue('box-sizing');\n        if (boxSizing && boxSizing === 'border-box') {\n          slideSize = width + marginLeft + marginRight;\n        } else {\n          const {\n            clientWidth,\n            offsetWidth\n          } = slide;\n          slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n        }\n      }\n      if (currentTransform) {\n        slide.style.transform = currentTransform;\n      }\n      if (currentWebKitTransform) {\n        slide.style.webkitTransform = currentWebKitTransform;\n      }\n      if (params.roundLengths) slideSize = Math.floor(slideSize);\n    } else {\n      slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n      if (params.roundLengths) slideSize = Math.floor(slideSize);\n      if (slides[i]) {\n        slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n      }\n    }\n    if (slides[i]) {\n      slides[i].swiperSlideSize = slideSize;\n    }\n    slidesSizesGrid.push(slideSize);\n    if (params.centeredSlides) {\n      slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n      if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n      if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n      if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n      if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n      if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n      slidesGrid.push(slidePosition);\n    } else {\n      if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n      if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n      slidesGrid.push(slidePosition);\n      slidePosition = slidePosition + slideSize + spaceBetween;\n    }\n    swiper.virtualSize += slideSize + spaceBetween;\n    prevSlideSize = slideSize;\n    index += 1;\n  }\n  swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n  if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n    wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n  }\n  if (params.setWrapperSize) {\n    wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n  }\n  if (gridEnabled) {\n    swiper.grid.updateWrapperSize(slideSize, snapGrid);\n  }\n\n  // Remove last grid elements depending on width\n  if (!params.centeredSlides) {\n    const newSlidesGrid = [];\n    for (let i = 0; i < snapGrid.length; i += 1) {\n      let slidesGridItem = snapGrid[i];\n      if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n      if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n        newSlidesGrid.push(slidesGridItem);\n      }\n    }\n    snapGrid = newSlidesGrid;\n    if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n      snapGrid.push(swiper.virtualSize - swiperSize);\n    }\n  }\n  if (isVirtual && params.loop) {\n    const size = slidesSizesGrid[0] + spaceBetween;\n    if (params.slidesPerGroup > 1) {\n      const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n      const groupSize = size * params.slidesPerGroup;\n      for (let i = 0; i < groups; i += 1) {\n        snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n      }\n    }\n    for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n      if (params.slidesPerGroup === 1) {\n        snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n      }\n      slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n      swiper.virtualSize += size;\n    }\n  }\n  if (snapGrid.length === 0) snapGrid = [0];\n  if (spaceBetween !== 0) {\n    const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n    slides.filter((_, slideIndex) => {\n      if (!params.cssMode || params.loop) return true;\n      if (slideIndex === slides.length - 1) {\n        return false;\n      }\n      return true;\n    }).forEach(slideEl => {\n      slideEl.style[key] = `${spaceBetween}px`;\n    });\n  }\n  if (params.centeredSlides && params.centeredSlidesBounds) {\n    let allSlidesSize = 0;\n    slidesSizesGrid.forEach(slideSizeValue => {\n      allSlidesSize += slideSizeValue + (spaceBetween || 0);\n    });\n    allSlidesSize -= spaceBetween;\n    const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;\n    snapGrid = snapGrid.map(snap => {\n      if (snap <= 0) return -offsetBefore;\n      if (snap > maxSnap) return maxSnap + offsetAfter;\n      return snap;\n    });\n  }\n  if (params.centerInsufficientSlides) {\n    let allSlidesSize = 0;\n    slidesSizesGrid.forEach(slideSizeValue => {\n      allSlidesSize += slideSizeValue + (spaceBetween || 0);\n    });\n    allSlidesSize -= spaceBetween;\n    const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n    if (allSlidesSize + offsetSize < swiperSize) {\n      const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;\n      snapGrid.forEach((snap, snapIndex) => {\n        snapGrid[snapIndex] = snap - allSlidesOffset;\n      });\n      slidesGrid.forEach((snap, snapIndex) => {\n        slidesGrid[snapIndex] = snap + allSlidesOffset;\n      });\n    }\n  }\n  Object.assign(swiper, {\n    slides,\n    snapGrid,\n    slidesGrid,\n    slidesSizesGrid\n  });\n  if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n    const addToSnapGrid = -swiper.snapGrid[0];\n    const addToSlidesGrid = -swiper.slidesGrid[0];\n    swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n    swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n  }\n  if (slidesLength !== previousSlidesLength) {\n    swiper.emit('slidesLengthChange');\n  }\n  if (snapGrid.length !== previousSnapGridLength) {\n    if (swiper.params.watchOverflow) swiper.checkOverflow();\n    swiper.emit('snapGridLengthChange');\n  }\n  if (slidesGrid.length !== previousSlidesGridLength) {\n    swiper.emit('slidesGridLengthChange');\n  }\n  if (params.watchSlidesProgress) {\n    swiper.updateSlidesOffset();\n  }\n  swiper.emit('slidesUpdated');\n  if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n    const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n    const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n    if (slidesLength <= params.maxBackfaceHiddenSlides) {\n      if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n    } else if (hasClassBackfaceClassAdded) {\n      swiper.el.classList.remove(backFaceHiddenClass);\n    }\n  }\n}\n\nfunction updateAutoHeight(speed) {\n  const swiper = this;\n  const activeSlides = [];\n  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n  let newHeight = 0;\n  let i;\n  if (typeof speed === 'number') {\n    swiper.setTransition(speed);\n  } else if (speed === true) {\n    swiper.setTransition(swiper.params.speed);\n  }\n  const getSlideByIndex = index => {\n    if (isVirtual) {\n      return swiper.slides[swiper.getSlideIndexByData(index)];\n    }\n    return swiper.slides[index];\n  };\n  // Find slides currently in view\n  if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n    if (swiper.params.centeredSlides) {\n      (swiper.visibleSlides || []).forEach(slide => {\n        activeSlides.push(slide);\n      });\n    } else {\n      for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n        const index = swiper.activeIndex + i;\n        if (index > swiper.slides.length && !isVirtual) break;\n        activeSlides.push(getSlideByIndex(index));\n      }\n    }\n  } else {\n    activeSlides.push(getSlideByIndex(swiper.activeIndex));\n  }\n\n  // Find new height from highest slide in view\n  for (i = 0; i < activeSlides.length; i += 1) {\n    if (typeof activeSlides[i] !== 'undefined') {\n      const height = activeSlides[i].offsetHeight;\n      newHeight = height > newHeight ? height : newHeight;\n    }\n  }\n\n  // Update Height\n  if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n  const swiper = this;\n  const slides = swiper.slides;\n  // eslint-disable-next-line\n  const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n  for (let i = 0; i < slides.length; i += 1) {\n    slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n  }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n  if (condition && !slideEl.classList.contains(className)) {\n    slideEl.classList.add(className);\n  } else if (!condition && slideEl.classList.contains(className)) {\n    slideEl.classList.remove(className);\n  }\n};\nfunction updateSlidesProgress(translate) {\n  if (translate === void 0) {\n    translate = this && this.translate || 0;\n  }\n  const swiper = this;\n  const params = swiper.params;\n  const {\n    slides,\n    rtlTranslate: rtl,\n    snapGrid\n  } = swiper;\n  if (slides.length === 0) return;\n  if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n  let offsetCenter = -translate;\n  if (rtl) offsetCenter = translate;\n  swiper.visibleSlidesIndexes = [];\n  swiper.visibleSlides = [];\n  let spaceBetween = params.spaceBetween;\n  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n  } else if (typeof spaceBetween === 'string') {\n    spaceBetween = parseFloat(spaceBetween);\n  }\n  for (let i = 0; i < slides.length; i += 1) {\n    const slide = slides[i];\n    let slideOffset = slide.swiperSlideOffset;\n    if (params.cssMode && params.centeredSlides) {\n      slideOffset -= slides[0].swiperSlideOffset;\n    }\n    const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n    const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n    const slideBefore = -(offsetCenter - slideOffset);\n    const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n    const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n    const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n    if (isVisible) {\n      swiper.visibleSlides.push(slide);\n      swiper.visibleSlidesIndexes.push(i);\n    }\n    toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n    toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n    slide.progress = rtl ? -slideProgress : slideProgress;\n    slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n  }\n}\n\nfunction updateProgress(translate) {\n  const swiper = this;\n  if (typeof translate === 'undefined') {\n    const multiplier = swiper.rtlTranslate ? -1 : 1;\n    // eslint-disable-next-line\n    translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n  }\n  const params = swiper.params;\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n  let {\n    progress,\n    isBeginning,\n    isEnd,\n    progressLoop\n  } = swiper;\n  const wasBeginning = isBeginning;\n  const wasEnd = isEnd;\n  if (translatesDiff === 0) {\n    progress = 0;\n    isBeginning = true;\n    isEnd = true;\n  } else {\n    progress = (translate - swiper.minTranslate()) / translatesDiff;\n    const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n    const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n    isBeginning = isBeginningRounded || progress <= 0;\n    isEnd = isEndRounded || progress >= 1;\n    if (isBeginningRounded) progress = 0;\n    if (isEndRounded) progress = 1;\n  }\n  if (params.loop) {\n    const firstSlideIndex = swiper.getSlideIndexByData(0);\n    const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n    const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n    const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n    const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n    const translateAbs = Math.abs(translate);\n    if (translateAbs >= firstSlideTranslate) {\n      progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n    } else {\n      progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n    }\n    if (progressLoop > 1) progressLoop -= 1;\n  }\n  Object.assign(swiper, {\n    progress,\n    progressLoop,\n    isBeginning,\n    isEnd\n  });\n  if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n  if (isBeginning && !wasBeginning) {\n    swiper.emit('reachBeginning toEdge');\n  }\n  if (isEnd && !wasEnd) {\n    swiper.emit('reachEnd toEdge');\n  }\n  if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n    swiper.emit('fromEdge');\n  }\n  swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n  if (condition && !slideEl.classList.contains(className)) {\n    slideEl.classList.add(className);\n  } else if (!condition && slideEl.classList.contains(className)) {\n    slideEl.classList.remove(className);\n  }\n};\nfunction updateSlidesClasses() {\n  const swiper = this;\n  const {\n    slides,\n    params,\n    slidesEl,\n    activeIndex\n  } = swiper;\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n  const getFilteredSlide = selector => {\n    return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n  };\n  let activeSlide;\n  let prevSlide;\n  let nextSlide;\n  if (isVirtual) {\n    if (params.loop) {\n      let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n      if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n      if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n      activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n    } else {\n      activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n    }\n  } else {\n    if (gridEnabled) {\n      activeSlide = slides.find(slideEl => slideEl.column === activeIndex);\n      nextSlide = slides.find(slideEl => slideEl.column === activeIndex + 1);\n      prevSlide = slides.find(slideEl => slideEl.column === activeIndex - 1);\n    } else {\n      activeSlide = slides[activeIndex];\n    }\n  }\n  if (activeSlide) {\n    if (!gridEnabled) {\n      // Next Slide\n      nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n      if (params.loop && !nextSlide) {\n        nextSlide = slides[0];\n      }\n\n      // Prev Slide\n      prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n      if (params.loop && !prevSlide === 0) {\n        prevSlide = slides[slides.length - 1];\n      }\n    }\n  }\n  slides.forEach(slideEl => {\n    toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n    toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n    toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n  });\n  swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n  if (!swiper || swiper.destroyed || !swiper.params) return;\n  const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n  const slideEl = imageEl.closest(slideSelector());\n  if (slideEl) {\n    let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n    if (!lazyEl && swiper.isElement) {\n      if (slideEl.shadowRoot) {\n        lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n      } else {\n        // init later\n        requestAnimationFrame(() => {\n          if (slideEl.shadowRoot) {\n            lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n            if (lazyEl) lazyEl.remove();\n          }\n        });\n      }\n    }\n    if (lazyEl) lazyEl.remove();\n  }\n};\nconst unlazy = (swiper, index) => {\n  if (!swiper.slides[index]) return;\n  const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n  if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n  if (!swiper || swiper.destroyed || !swiper.params) return;\n  let amount = swiper.params.lazyPreloadPrevNext;\n  const len = swiper.slides.length;\n  if (!len || !amount || amount < 0) return;\n  amount = Math.min(amount, len);\n  const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n  const activeIndex = swiper.activeIndex;\n  if (swiper.params.grid && swiper.params.grid.rows > 1) {\n    const activeColumn = activeIndex;\n    const preloadColumns = [activeColumn - amount];\n    preloadColumns.push(...Array.from({\n      length: amount\n    }).map((_, i) => {\n      return activeColumn + slidesPerView + i;\n    }));\n    swiper.slides.forEach((slideEl, i) => {\n      if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n    });\n    return;\n  }\n  const slideIndexLastInView = activeIndex + slidesPerView - 1;\n  if (swiper.params.rewind || swiper.params.loop) {\n    for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n      const realIndex = (i % len + len) % len;\n      if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n    }\n  } else {\n    for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n      if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n        unlazy(swiper, i);\n      }\n    }\n  }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n  const {\n    slidesGrid,\n    params\n  } = swiper;\n  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n  let activeIndex;\n  for (let i = 0; i < slidesGrid.length; i += 1) {\n    if (typeof slidesGrid[i + 1] !== 'undefined') {\n      if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n        activeIndex = i;\n      } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n        activeIndex = i + 1;\n      }\n    } else if (translate >= slidesGrid[i]) {\n      activeIndex = i;\n    }\n  }\n  // Normalize slideIndex\n  if (params.normalizeSlideIndex) {\n    if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n  }\n  return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n  const swiper = this;\n  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n  const {\n    snapGrid,\n    params,\n    activeIndex: previousIndex,\n    realIndex: previousRealIndex,\n    snapIndex: previousSnapIndex\n  } = swiper;\n  let activeIndex = newActiveIndex;\n  let snapIndex;\n  const getVirtualRealIndex = aIndex => {\n    let realIndex = aIndex - swiper.virtual.slidesBefore;\n    if (realIndex < 0) {\n      realIndex = swiper.virtual.slides.length + realIndex;\n    }\n    if (realIndex >= swiper.virtual.slides.length) {\n      realIndex -= swiper.virtual.slides.length;\n    }\n    return realIndex;\n  };\n  if (typeof activeIndex === 'undefined') {\n    activeIndex = getActiveIndexByTranslate(swiper);\n  }\n  if (snapGrid.indexOf(translate) >= 0) {\n    snapIndex = snapGrid.indexOf(translate);\n  } else {\n    const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n    snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n  }\n  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n  if (activeIndex === previousIndex && !swiper.params.loop) {\n    if (snapIndex !== previousSnapIndex) {\n      swiper.snapIndex = snapIndex;\n      swiper.emit('snapIndexChange');\n    }\n    return;\n  }\n  if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n    swiper.realIndex = getVirtualRealIndex(activeIndex);\n    return;\n  }\n  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n  // Get real index\n  let realIndex;\n  if (swiper.virtual && params.virtual.enabled && params.loop) {\n    realIndex = getVirtualRealIndex(activeIndex);\n  } else if (gridEnabled) {\n    const firstSlideInColumn = swiper.slides.find(slideEl => slideEl.column === activeIndex);\n    let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n    if (Number.isNaN(activeSlideIndex)) {\n      activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n    }\n    realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n  } else if (swiper.slides[activeIndex]) {\n    const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n    if (slideIndex) {\n      realIndex = parseInt(slideIndex, 10);\n    } else {\n      realIndex = activeIndex;\n    }\n  } else {\n    realIndex = activeIndex;\n  }\n  Object.assign(swiper, {\n    previousSnapIndex,\n    snapIndex,\n    previousRealIndex,\n    realIndex,\n    previousIndex,\n    activeIndex\n  });\n  if (swiper.initialized) {\n    preload(swiper);\n  }\n  swiper.emit('activeIndexChange');\n  swiper.emit('snapIndexChange');\n  if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n    if (previousRealIndex !== realIndex) {\n      swiper.emit('realIndexChange');\n    }\n    swiper.emit('slideChange');\n  }\n}\n\nfunction updateClickedSlide(el, path) {\n  const swiper = this;\n  const params = swiper.params;\n  let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n  if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n    [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n      if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n        slide = pathEl;\n      }\n    });\n  }\n  let slideFound = false;\n  let slideIndex;\n  if (slide) {\n    for (let i = 0; i < swiper.slides.length; i += 1) {\n      if (swiper.slides[i] === slide) {\n        slideFound = true;\n        slideIndex = i;\n        break;\n      }\n    }\n  }\n  if (slide && slideFound) {\n    swiper.clickedSlide = slide;\n    if (swiper.virtual && swiper.params.virtual.enabled) {\n      swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n    } else {\n      swiper.clickedIndex = slideIndex;\n    }\n  } else {\n    swiper.clickedSlide = undefined;\n    swiper.clickedIndex = undefined;\n    return;\n  }\n  if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n    swiper.slideToClickedSlide();\n  }\n}\n\nvar update = {\n  updateSize,\n  updateSlides,\n  updateAutoHeight,\n  updateSlidesOffset,\n  updateSlidesProgress,\n  updateProgress,\n  updateSlidesClasses,\n  updateActiveIndex,\n  updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n  if (axis === void 0) {\n    axis = this.isHorizontal() ? 'x' : 'y';\n  }\n  const swiper = this;\n  const {\n    params,\n    rtlTranslate: rtl,\n    translate,\n    wrapperEl\n  } = swiper;\n  if (params.virtualTranslate) {\n    return rtl ? -translate : translate;\n  }\n  if (params.cssMode) {\n    return translate;\n  }\n  let currentTranslate = getTranslate(wrapperEl, axis);\n  currentTranslate += swiper.cssOverflowAdjustment();\n  if (rtl) currentTranslate = -currentTranslate;\n  return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n  const swiper = this;\n  const {\n    rtlTranslate: rtl,\n    params,\n    wrapperEl,\n    progress\n  } = swiper;\n  let x = 0;\n  let y = 0;\n  const z = 0;\n  if (swiper.isHorizontal()) {\n    x = rtl ? -translate : translate;\n  } else {\n    y = translate;\n  }\n  if (params.roundLengths) {\n    x = Math.floor(x);\n    y = Math.floor(y);\n  }\n  swiper.previousTranslate = swiper.translate;\n  swiper.translate = swiper.isHorizontal() ? x : y;\n  if (params.cssMode) {\n    wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n  } else if (!params.virtualTranslate) {\n    if (swiper.isHorizontal()) {\n      x -= swiper.cssOverflowAdjustment();\n    } else {\n      y -= swiper.cssOverflowAdjustment();\n    }\n    wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n  }\n\n  // Check if we need to update progress\n  let newProgress;\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n  if (translatesDiff === 0) {\n    newProgress = 0;\n  } else {\n    newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n  }\n  if (newProgress !== progress) {\n    swiper.updateProgress(translate);\n  }\n  swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n  return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n  return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n  if (translate === void 0) {\n    translate = 0;\n  }\n  if (speed === void 0) {\n    speed = this.params.speed;\n  }\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n  if (translateBounds === void 0) {\n    translateBounds = true;\n  }\n  const swiper = this;\n  const {\n    params,\n    wrapperEl\n  } = swiper;\n  if (swiper.animating && params.preventInteractionOnTransition) {\n    return false;\n  }\n  const minTranslate = swiper.minTranslate();\n  const maxTranslate = swiper.maxTranslate();\n  let newTranslate;\n  if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n  // Update progress\n  swiper.updateProgress(newTranslate);\n  if (params.cssMode) {\n    const isH = swiper.isHorizontal();\n    if (speed === 0) {\n      wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n    } else {\n      if (!swiper.support.smoothScroll) {\n        animateCSSModeScroll({\n          swiper,\n          targetPosition: -newTranslate,\n          side: isH ? 'left' : 'top'\n        });\n        return true;\n      }\n      wrapperEl.scrollTo({\n        [isH ? 'left' : 'top']: -newTranslate,\n        behavior: 'smooth'\n      });\n    }\n    return true;\n  }\n  if (speed === 0) {\n    swiper.setTransition(0);\n    swiper.setTranslate(newTranslate);\n    if (runCallbacks) {\n      swiper.emit('beforeTransitionStart', speed, internal);\n      swiper.emit('transitionEnd');\n    }\n  } else {\n    swiper.setTransition(speed);\n    swiper.setTranslate(newTranslate);\n    if (runCallbacks) {\n      swiper.emit('beforeTransitionStart', speed, internal);\n      swiper.emit('transitionStart');\n    }\n    if (!swiper.animating) {\n      swiper.animating = true;\n      if (!swiper.onTranslateToWrapperTransitionEnd) {\n        swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n          if (!swiper || swiper.destroyed) return;\n          if (e.target !== this) return;\n          swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n          swiper.onTranslateToWrapperTransitionEnd = null;\n          delete swiper.onTranslateToWrapperTransitionEnd;\n          swiper.animating = false;\n          if (runCallbacks) {\n            swiper.emit('transitionEnd');\n          }\n        };\n      }\n      swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n    }\n  }\n  return true;\n}\n\nvar translate = {\n  getTranslate: getSwiperTranslate,\n  setTranslate,\n  minTranslate,\n  maxTranslate,\n  translateTo\n};\n\nfunction setTransition(duration, byController) {\n  const swiper = this;\n  if (!swiper.params.cssMode) {\n    swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n    swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n  }\n  swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n  let {\n    swiper,\n    runCallbacks,\n    direction,\n    step\n  } = _ref;\n  const {\n    activeIndex,\n    previousIndex\n  } = swiper;\n  let dir = direction;\n  if (!dir) {\n    if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n  }\n  swiper.emit(`transition${step}`);\n  if (runCallbacks && dir === 'reset') {\n    swiper.emit(`slideResetTransition${step}`);\n  } else if (runCallbacks && activeIndex !== previousIndex) {\n    swiper.emit(`slideChangeTransition${step}`);\n    if (dir === 'next') {\n      swiper.emit(`slideNextTransition${step}`);\n    } else {\n      swiper.emit(`slidePrevTransition${step}`);\n    }\n  }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n  const swiper = this;\n  const {\n    params\n  } = swiper;\n  if (params.cssMode) return;\n  if (params.autoHeight) {\n    swiper.updateAutoHeight();\n  }\n  transitionEmit({\n    swiper,\n    runCallbacks,\n    direction,\n    step: 'Start'\n  });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n  const swiper = this;\n  const {\n    params\n  } = swiper;\n  swiper.animating = false;\n  if (params.cssMode) return;\n  swiper.setTransition(0);\n  transitionEmit({\n    swiper,\n    runCallbacks,\n    direction,\n    step: 'End'\n  });\n}\n\nvar transition = {\n  setTransition,\n  transitionStart,\n  transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n  if (index === void 0) {\n    index = 0;\n  }\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n  if (typeof index === 'string') {\n    index = parseInt(index, 10);\n  }\n  const swiper = this;\n  let slideIndex = index;\n  if (slideIndex < 0) slideIndex = 0;\n  const {\n    params,\n    snapGrid,\n    slidesGrid,\n    previousIndex,\n    activeIndex,\n    rtlTranslate: rtl,\n    wrapperEl,\n    enabled\n  } = swiper;\n  if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n    return false;\n  }\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n  let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n  const translate = -snapGrid[snapIndex];\n  // Normalize slideIndex\n  if (params.normalizeSlideIndex) {\n    for (let i = 0; i < slidesGrid.length; i += 1) {\n      const normalizedTranslate = -Math.floor(translate * 100);\n      const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n      const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n      if (typeof slidesGrid[i + 1] !== 'undefined') {\n        if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n          slideIndex = i;\n        } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n          slideIndex = i + 1;\n        }\n      } else if (normalizedTranslate >= normalizedGrid) {\n        slideIndex = i;\n      }\n    }\n  }\n  // Directions locks\n  if (swiper.initialized && slideIndex !== activeIndex) {\n    if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n      return false;\n    }\n    if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n      if ((activeIndex || 0) !== slideIndex) {\n        return false;\n      }\n    }\n  }\n  if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n    swiper.emit('beforeSlideChangeStart');\n  }\n\n  // Update progress\n  swiper.updateProgress(translate);\n  let direction;\n  if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n  // initial virtual\n  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n  const isInitialVirtual = isVirtual && initial;\n  // Update Index\n  if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {\n    swiper.updateActiveIndex(slideIndex);\n    // Update Height\n    if (params.autoHeight) {\n      swiper.updateAutoHeight();\n    }\n    swiper.updateSlidesClasses();\n    if (params.effect !== 'slide') {\n      swiper.setTranslate(translate);\n    }\n    if (direction !== 'reset') {\n      swiper.transitionStart(runCallbacks, direction);\n      swiper.transitionEnd(runCallbacks, direction);\n    }\n    return false;\n  }\n  if (params.cssMode) {\n    const isH = swiper.isHorizontal();\n    const t = rtl ? translate : -translate;\n    if (speed === 0) {\n      if (isVirtual) {\n        swiper.wrapperEl.style.scrollSnapType = 'none';\n        swiper._immediateVirtual = true;\n      }\n      if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n        swiper._cssModeVirtualInitialSet = true;\n        requestAnimationFrame(() => {\n          wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n        });\n      } else {\n        wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n      }\n      if (isVirtual) {\n        requestAnimationFrame(() => {\n          swiper.wrapperEl.style.scrollSnapType = '';\n          swiper._immediateVirtual = false;\n        });\n      }\n    } else {\n      if (!swiper.support.smoothScroll) {\n        animateCSSModeScroll({\n          swiper,\n          targetPosition: t,\n          side: isH ? 'left' : 'top'\n        });\n        return true;\n      }\n      wrapperEl.scrollTo({\n        [isH ? 'left' : 'top']: t,\n        behavior: 'smooth'\n      });\n    }\n    return true;\n  }\n  const browser = getBrowser();\n  const isSafari = browser.isSafari;\n  if (isVirtual && !initial && isSafari && swiper.isElement) {\n    swiper.virtual.update(false, false, slideIndex);\n  }\n  swiper.setTransition(speed);\n  swiper.setTranslate(translate);\n  swiper.updateActiveIndex(slideIndex);\n  swiper.updateSlidesClasses();\n  swiper.emit('beforeTransitionStart', speed, internal);\n  swiper.transitionStart(runCallbacks, direction);\n  if (speed === 0) {\n    swiper.transitionEnd(runCallbacks, direction);\n  } else if (!swiper.animating) {\n    swiper.animating = true;\n    if (!swiper.onSlideToWrapperTransitionEnd) {\n      swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n        if (!swiper || swiper.destroyed) return;\n        if (e.target !== this) return;\n        swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n        swiper.onSlideToWrapperTransitionEnd = null;\n        delete swiper.onSlideToWrapperTransitionEnd;\n        swiper.transitionEnd(runCallbacks, direction);\n      };\n    }\n    swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n  }\n  return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n  if (index === void 0) {\n    index = 0;\n  }\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n  if (typeof index === 'string') {\n    const indexAsNumber = parseInt(index, 10);\n    index = indexAsNumber;\n  }\n  const swiper = this;\n  if (swiper.destroyed) return;\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n  let newIndex = index;\n  if (swiper.params.loop) {\n    if (swiper.virtual && swiper.params.virtual.enabled) {\n      // eslint-disable-next-line\n      newIndex = newIndex + swiper.virtual.slidesBefore;\n    } else {\n      let targetSlideIndex;\n      if (gridEnabled) {\n        const slideIndex = newIndex * swiper.params.grid.rows;\n        targetSlideIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n      } else {\n        targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n      }\n      const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n      const {\n        centeredSlides\n      } = swiper.params;\n      let slidesPerView = swiper.params.slidesPerView;\n      if (slidesPerView === 'auto') {\n        slidesPerView = swiper.slidesPerViewDynamic();\n      } else {\n        slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n        if (centeredSlides && slidesPerView % 2 === 0) {\n          slidesPerView = slidesPerView + 1;\n        }\n      }\n      let needLoopFix = cols - targetSlideIndex < slidesPerView;\n      if (centeredSlides) {\n        needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n      }\n      if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n        needLoopFix = false;\n      }\n      if (needLoopFix) {\n        const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n        swiper.loopFix({\n          direction,\n          slideTo: true,\n          activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n          slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n        });\n      }\n      if (gridEnabled) {\n        const slideIndex = newIndex * swiper.params.grid.rows;\n        newIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n      } else {\n        newIndex = swiper.getSlideIndexByData(newIndex);\n      }\n    }\n  }\n  requestAnimationFrame(() => {\n    swiper.slideTo(newIndex, speed, runCallbacks, internal);\n  });\n  return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n  const swiper = this;\n  const {\n    enabled,\n    params,\n    animating\n  } = swiper;\n  if (!enabled || swiper.destroyed) return swiper;\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  let perGroup = params.slidesPerGroup;\n  if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n    perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n  }\n  const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  if (params.loop) {\n    if (animating && !isVirtual && params.loopPreventsSliding) return false;\n    swiper.loopFix({\n      direction: 'next'\n    });\n    // eslint-disable-next-line\n    swiper._clientLeft = swiper.wrapperEl.clientLeft;\n    if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n      requestAnimationFrame(() => {\n        swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n      });\n      return true;\n    }\n  }\n  if (params.rewind && swiper.isEnd) {\n    return swiper.slideTo(0, speed, runCallbacks, internal);\n  }\n  return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n  const swiper = this;\n  const {\n    params,\n    snapGrid,\n    slidesGrid,\n    rtlTranslate,\n    enabled,\n    animating\n  } = swiper;\n  if (!enabled || swiper.destroyed) return swiper;\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  if (params.loop) {\n    if (animating && !isVirtual && params.loopPreventsSliding) return false;\n    swiper.loopFix({\n      direction: 'prev'\n    });\n    // eslint-disable-next-line\n    swiper._clientLeft = swiper.wrapperEl.clientLeft;\n  }\n  const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n  function normalize(val) {\n    if (val < 0) return -Math.floor(Math.abs(val));\n    return Math.floor(val);\n  }\n  const normalizedTranslate = normalize(translate);\n  const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n  const isFreeMode = params.freeMode && params.freeMode.enabled;\n  let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n  if (typeof prevSnap === 'undefined' && (params.cssMode || isFreeMode)) {\n    let prevSnapIndex;\n    snapGrid.forEach((snap, snapIndex) => {\n      if (normalizedTranslate >= snap) {\n        // prevSnap = snap;\n        prevSnapIndex = snapIndex;\n      }\n    });\n    if (typeof prevSnapIndex !== 'undefined') {\n      prevSnap = isFreeMode ? snapGrid[prevSnapIndex] : snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n    }\n  }\n  let prevIndex = 0;\n  if (typeof prevSnap !== 'undefined') {\n    prevIndex = slidesGrid.indexOf(prevSnap);\n    if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n    if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n      prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n      prevIndex = Math.max(prevIndex, 0);\n    }\n  }\n  if (params.rewind && swiper.isBeginning) {\n    const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n    return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n  } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n    requestAnimationFrame(() => {\n      swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n    });\n    return true;\n  }\n  return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n  const swiper = this;\n  if (swiper.destroyed) return;\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n  if (threshold === void 0) {\n    threshold = 0.5;\n  }\n  const swiper = this;\n  if (swiper.destroyed) return;\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  let index = swiper.activeIndex;\n  const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n  const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n  if (translate >= swiper.snapGrid[snapIndex]) {\n    // The current translate is on or after the current snap index, so the choice\n    // is between the current index and the one after it.\n    const currentSnap = swiper.snapGrid[snapIndex];\n    const nextSnap = swiper.snapGrid[snapIndex + 1];\n    if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n      index += swiper.params.slidesPerGroup;\n    }\n  } else {\n    // The current translate is before the current snap index, so the choice\n    // is between the current index and the one before it.\n    const prevSnap = swiper.snapGrid[snapIndex - 1];\n    const currentSnap = swiper.snapGrid[snapIndex];\n    if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n      index -= swiper.params.slidesPerGroup;\n    }\n  }\n  index = Math.max(index, 0);\n  index = Math.min(index, swiper.slidesGrid.length - 1);\n  return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n  const swiper = this;\n  if (swiper.destroyed) return;\n  const {\n    params,\n    slidesEl\n  } = swiper;\n  const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n  let slideToIndex = swiper.clickedIndex;\n  let realIndex;\n  const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n  if (params.loop) {\n    if (swiper.animating) return;\n    realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n    if (params.centeredSlides) {\n      if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n        swiper.loopFix();\n        slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n        nextTick(() => {\n          swiper.slideTo(slideToIndex);\n        });\n      } else {\n        swiper.slideTo(slideToIndex);\n      }\n    } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n      swiper.loopFix();\n      slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n      nextTick(() => {\n        swiper.slideTo(slideToIndex);\n      });\n    } else {\n      swiper.slideTo(slideToIndex);\n    }\n  } else {\n    swiper.slideTo(slideToIndex);\n  }\n}\n\nvar slide = {\n  slideTo,\n  slideToLoop,\n  slideNext,\n  slidePrev,\n  slideReset,\n  slideToClosest,\n  slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex, initial) {\n  const swiper = this;\n  const {\n    params,\n    slidesEl\n  } = swiper;\n  if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n  const initSlides = () => {\n    const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n    slides.forEach((el, index) => {\n      el.setAttribute('data-swiper-slide-index', index);\n    });\n  };\n  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n  const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n  const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n  const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n  const addBlankSlides = amountOfSlides => {\n    for (let i = 0; i < amountOfSlides; i += 1) {\n      const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n      swiper.slidesEl.append(slideEl);\n    }\n  };\n  if (shouldFillGroup) {\n    if (params.loopAddBlankSlides) {\n      const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n      addBlankSlides(slidesToAdd);\n      swiper.recalcSlides();\n      swiper.updateSlides();\n    } else {\n      showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n    }\n    initSlides();\n  } else if (shouldFillGrid) {\n    if (params.loopAddBlankSlides) {\n      const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n      addBlankSlides(slidesToAdd);\n      swiper.recalcSlides();\n      swiper.updateSlides();\n    } else {\n      showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n    }\n    initSlides();\n  } else {\n    initSlides();\n  }\n  swiper.loopFix({\n    slideRealIndex,\n    direction: params.centeredSlides ? undefined : 'next',\n    initial\n  });\n}\n\nfunction loopFix(_temp) {\n  let {\n    slideRealIndex,\n    slideTo = true,\n    direction,\n    setTranslate,\n    activeSlideIndex,\n    initial,\n    byController,\n    byMousewheel\n  } = _temp === void 0 ? {} : _temp;\n  const swiper = this;\n  if (!swiper.params.loop) return;\n  swiper.emit('beforeLoopFix');\n  const {\n    slides,\n    allowSlidePrev,\n    allowSlideNext,\n    slidesEl,\n    params\n  } = swiper;\n  const {\n    centeredSlides,\n    initialSlide\n  } = params;\n  swiper.allowSlidePrev = true;\n  swiper.allowSlideNext = true;\n  if (swiper.virtual && params.virtual.enabled) {\n    if (slideTo) {\n      if (!params.centeredSlides && swiper.snapIndex === 0) {\n        swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n      } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n        swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n      } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n        swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n      }\n    }\n    swiper.allowSlidePrev = allowSlidePrev;\n    swiper.allowSlideNext = allowSlideNext;\n    swiper.emit('loopFix');\n    return;\n  }\n  let slidesPerView = params.slidesPerView;\n  if (slidesPerView === 'auto') {\n    slidesPerView = swiper.slidesPerViewDynamic();\n  } else {\n    slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n    if (centeredSlides && slidesPerView % 2 === 0) {\n      slidesPerView = slidesPerView + 1;\n    }\n  }\n  const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n  let loopedSlides = slidesPerGroup;\n  if (loopedSlides % slidesPerGroup !== 0) {\n    loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n  }\n  loopedSlides += params.loopAdditionalSlides;\n  swiper.loopedSlides = loopedSlides;\n  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n  if (slides.length < slidesPerView + loopedSlides || swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {\n    showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n  } else if (gridEnabled && params.grid.fill === 'row') {\n    showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n  }\n  const prependSlidesIndexes = [];\n  const appendSlidesIndexes = [];\n  const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n  const isInitialOverflow = initial && cols - initialSlide < slidesPerView && !centeredSlides;\n  let activeIndex = isInitialOverflow ? initialSlide : swiper.activeIndex;\n  if (typeof activeSlideIndex === 'undefined') {\n    activeSlideIndex = swiper.getSlideIndex(slides.find(el => el.classList.contains(params.slideActiveClass)));\n  } else {\n    activeIndex = activeSlideIndex;\n  }\n  const isNext = direction === 'next' || !direction;\n  const isPrev = direction === 'prev' || !direction;\n  let slidesPrepended = 0;\n  let slidesAppended = 0;\n  const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n  const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n  // prepend last slides before start\n  if (activeColIndexWithShift < loopedSlides) {\n    slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n    for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n      const index = i - Math.floor(i / cols) * cols;\n      if (gridEnabled) {\n        const colIndexToPrepend = cols - index - 1;\n        for (let i = slides.length - 1; i >= 0; i -= 1) {\n          if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n        }\n        // slides.forEach((slide, slideIndex) => {\n        //   if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n        // });\n      } else {\n        prependSlidesIndexes.push(cols - index - 1);\n      }\n    }\n  } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n    slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n    if (isInitialOverflow) {\n      slidesAppended = Math.max(slidesAppended, slidesPerView - cols + initialSlide + 1);\n    }\n    for (let i = 0; i < slidesAppended; i += 1) {\n      const index = i - Math.floor(i / cols) * cols;\n      if (gridEnabled) {\n        slides.forEach((slide, slideIndex) => {\n          if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n        });\n      } else {\n        appendSlidesIndexes.push(index);\n      }\n    }\n  }\n  swiper.__preventObserver__ = true;\n  requestAnimationFrame(() => {\n    swiper.__preventObserver__ = false;\n  });\n  if (swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {\n    if (appendSlidesIndexes.includes(activeSlideIndex)) {\n      appendSlidesIndexes.splice(appendSlidesIndexes.indexOf(activeSlideIndex), 1);\n    }\n    if (prependSlidesIndexes.includes(activeSlideIndex)) {\n      prependSlidesIndexes.splice(prependSlidesIndexes.indexOf(activeSlideIndex), 1);\n    }\n  }\n  if (isPrev) {\n    prependSlidesIndexes.forEach(index => {\n      slides[index].swiperLoopMoveDOM = true;\n      slidesEl.prepend(slides[index]);\n      slides[index].swiperLoopMoveDOM = false;\n    });\n  }\n  if (isNext) {\n    appendSlidesIndexes.forEach(index => {\n      slides[index].swiperLoopMoveDOM = true;\n      slidesEl.append(slides[index]);\n      slides[index].swiperLoopMoveDOM = false;\n    });\n  }\n  swiper.recalcSlides();\n  if (params.slidesPerView === 'auto') {\n    swiper.updateSlides();\n  } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n    swiper.slides.forEach((slide, slideIndex) => {\n      swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n    });\n  }\n  if (params.watchSlidesProgress) {\n    swiper.updateSlidesOffset();\n  }\n  if (slideTo) {\n    if (prependSlidesIndexes.length > 0 && isPrev) {\n      if (typeof slideRealIndex === 'undefined') {\n        const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n        const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n        const diff = newSlideTranslate - currentSlideTranslate;\n        if (byMousewheel) {\n          swiper.setTranslate(swiper.translate - diff);\n        } else {\n          swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n          if (setTranslate) {\n            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n          }\n        }\n      } else {\n        if (setTranslate) {\n          const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n          swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n          swiper.touchEventsData.currentTranslate = swiper.translate;\n        }\n      }\n    } else if (appendSlidesIndexes.length > 0 && isNext) {\n      if (typeof slideRealIndex === 'undefined') {\n        const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n        const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n        const diff = newSlideTranslate - currentSlideTranslate;\n        if (byMousewheel) {\n          swiper.setTranslate(swiper.translate - diff);\n        } else {\n          swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n          if (setTranslate) {\n            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n          }\n        }\n      } else {\n        const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n        swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n      }\n    }\n  }\n  swiper.allowSlidePrev = allowSlidePrev;\n  swiper.allowSlideNext = allowSlideNext;\n  if (swiper.controller && swiper.controller.control && !byController) {\n    const loopParams = {\n      slideRealIndex,\n      direction,\n      setTranslate,\n      activeSlideIndex,\n      byController: true\n    };\n    if (Array.isArray(swiper.controller.control)) {\n      swiper.controller.control.forEach(c => {\n        if (!c.destroyed && c.params.loop) c.loopFix({\n          ...loopParams,\n          slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n        });\n      });\n    } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n      swiper.controller.control.loopFix({\n        ...loopParams,\n        slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n      });\n    }\n  }\n  swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n  const swiper = this;\n  const {\n    params,\n    slidesEl\n  } = swiper;\n  if (!params.loop || !slidesEl || swiper.virtual && swiper.params.virtual.enabled) return;\n  swiper.recalcSlides();\n  const newSlidesOrder = [];\n  swiper.slides.forEach(slideEl => {\n    const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n    newSlidesOrder[index] = slideEl;\n  });\n  swiper.slides.forEach(slideEl => {\n    slideEl.removeAttribute('data-swiper-slide-index');\n  });\n  newSlidesOrder.forEach(slideEl => {\n    slidesEl.append(slideEl);\n  });\n  swiper.recalcSlides();\n  swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n  loopCreate,\n  loopFix,\n  loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n  const swiper = this;\n  if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n  const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n  if (swiper.isElement) {\n    swiper.__preventObserver__ = true;\n  }\n  el.style.cursor = 'move';\n  el.style.cursor = moving ? 'grabbing' : 'grab';\n  if (swiper.isElement) {\n    requestAnimationFrame(() => {\n      swiper.__preventObserver__ = false;\n    });\n  }\n}\n\nfunction unsetGrabCursor() {\n  const swiper = this;\n  if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n    return;\n  }\n  if (swiper.isElement) {\n    swiper.__preventObserver__ = true;\n  }\n  swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n  if (swiper.isElement) {\n    requestAnimationFrame(() => {\n      swiper.__preventObserver__ = false;\n    });\n  }\n}\n\nvar grabCursor = {\n  setGrabCursor,\n  unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n  if (base === void 0) {\n    base = this;\n  }\n  function __closestFrom(el) {\n    if (!el || el === getDocument() || el === getWindow()) return null;\n    if (el.assignedSlot) el = el.assignedSlot;\n    const found = el.closest(selector);\n    if (!found && !el.getRootNode) {\n      return null;\n    }\n    return found || __closestFrom(el.getRootNode().host);\n  }\n  return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n  const window = getWindow();\n  const {\n    params\n  } = swiper;\n  const edgeSwipeDetection = params.edgeSwipeDetection;\n  const edgeSwipeThreshold = params.edgeSwipeThreshold;\n  if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n    if (edgeSwipeDetection === 'prevent') {\n      event.preventDefault();\n      return true;\n    }\n    return false;\n  }\n  return true;\n}\nfunction onTouchStart(event) {\n  const swiper = this;\n  const document = getDocument();\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  const data = swiper.touchEventsData;\n  if (e.type === 'pointerdown') {\n    if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n      return;\n    }\n    data.pointerId = e.pointerId;\n  } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n    data.touchId = e.targetTouches[0].identifier;\n  }\n  if (e.type === 'touchstart') {\n    // don't proceed touch event\n    preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n    return;\n  }\n  const {\n    params,\n    touches,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n  if (!params.simulateTouch && e.pointerType === 'mouse') return;\n  if (swiper.animating && params.preventInteractionOnTransition) {\n    return;\n  }\n  if (!swiper.animating && params.cssMode && params.loop) {\n    swiper.loopFix();\n  }\n  let targetEl = e.target;\n  if (params.touchEventsTarget === 'wrapper') {\n    if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n  }\n  if ('which' in e && e.which === 3) return;\n  if ('button' in e && e.button > 0) return;\n  if (data.isTouched && data.isMoved) return;\n\n  // change target el for shadow root component\n  const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n  // eslint-disable-next-line\n  const eventPath = e.composedPath ? e.composedPath() : e.path;\n  if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n    targetEl = eventPath[0];\n  }\n  const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n  const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n  // use closestElement for shadow root element to get the actual closest for nested shadow root element\n  if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n    swiper.allowClick = true;\n    return;\n  }\n  if (params.swipeHandler) {\n    if (!targetEl.closest(params.swipeHandler)) return;\n  }\n  touches.currentX = e.pageX;\n  touches.currentY = e.pageY;\n  const startX = touches.currentX;\n  const startY = touches.currentY;\n\n  // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n  if (!preventEdgeSwipe(swiper, e, startX)) {\n    return;\n  }\n  Object.assign(data, {\n    isTouched: true,\n    isMoved: false,\n    allowTouchCallbacks: true,\n    isScrolling: undefined,\n    startMoving: undefined\n  });\n  touches.startX = startX;\n  touches.startY = startY;\n  data.touchStartTime = now();\n  swiper.allowClick = true;\n  swiper.updateSize();\n  swiper.swipeDirection = undefined;\n  if (params.threshold > 0) data.allowThresholdMove = false;\n  let preventDefault = true;\n  if (targetEl.matches(data.focusableElements)) {\n    preventDefault = false;\n    if (targetEl.nodeName === 'SELECT') {\n      data.isTouched = false;\n    }\n  }\n  if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {\n    document.activeElement.blur();\n  }\n  const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n  if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n    e.preventDefault();\n  }\n  if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n    swiper.freeMode.onTouchStart();\n  }\n  swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n  const document = getDocument();\n  const swiper = this;\n  const data = swiper.touchEventsData;\n  const {\n    params,\n    touches,\n    rtlTranslate: rtl,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n  if (!params.simulateTouch && event.pointerType === 'mouse') return;\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  if (e.type === 'pointermove') {\n    if (data.touchId !== null) return; // return from pointer if we use touch\n    const id = e.pointerId;\n    if (id !== data.pointerId) return;\n  }\n  let targetTouch;\n  if (e.type === 'touchmove') {\n    targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n    if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n  } else {\n    targetTouch = e;\n  }\n  if (!data.isTouched) {\n    if (data.startMoving && data.isScrolling) {\n      swiper.emit('touchMoveOpposite', e);\n    }\n    return;\n  }\n  const pageX = targetTouch.pageX;\n  const pageY = targetTouch.pageY;\n  if (e.preventedByNestedSwiper) {\n    touches.startX = pageX;\n    touches.startY = pageY;\n    return;\n  }\n  if (!swiper.allowTouchMove) {\n    if (!e.target.matches(data.focusableElements)) {\n      swiper.allowClick = false;\n    }\n    if (data.isTouched) {\n      Object.assign(touches, {\n        startX: pageX,\n        startY: pageY,\n        currentX: pageX,\n        currentY: pageY\n      });\n      data.touchStartTime = now();\n    }\n    return;\n  }\n  if (params.touchReleaseOnEdges && !params.loop) {\n    if (swiper.isVertical()) {\n      // Vertical\n      if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n        data.isTouched = false;\n        data.isMoved = false;\n        return;\n      }\n    } else if (rtl && (pageX > touches.startX && -swiper.translate <= swiper.maxTranslate() || pageX < touches.startX && -swiper.translate >= swiper.minTranslate())) {\n      return;\n    } else if (!rtl && (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate())) {\n      return;\n    }\n  }\n  if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {\n    document.activeElement.blur();\n  }\n  if (document.activeElement) {\n    if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n      data.isMoved = true;\n      swiper.allowClick = false;\n      return;\n    }\n  }\n  if (data.allowTouchCallbacks) {\n    swiper.emit('touchMove', e);\n  }\n  touches.previousX = touches.currentX;\n  touches.previousY = touches.currentY;\n  touches.currentX = pageX;\n  touches.currentY = pageY;\n  const diffX = touches.currentX - touches.startX;\n  const diffY = touches.currentY - touches.startY;\n  if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n  if (typeof data.isScrolling === 'undefined') {\n    let touchAngle;\n    if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n      data.isScrolling = false;\n    } else {\n      // eslint-disable-next-line\n      if (diffX * diffX + diffY * diffY >= 25) {\n        touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n        data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n      }\n    }\n  }\n  if (data.isScrolling) {\n    swiper.emit('touchMoveOpposite', e);\n  }\n  if (typeof data.startMoving === 'undefined') {\n    if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n      data.startMoving = true;\n    }\n  }\n  if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n    data.isTouched = false;\n    return;\n  }\n  if (!data.startMoving) {\n    return;\n  }\n  swiper.allowClick = false;\n  if (!params.cssMode && e.cancelable) {\n    e.preventDefault();\n  }\n  if (params.touchMoveStopPropagation && !params.nested) {\n    e.stopPropagation();\n  }\n  let diff = swiper.isHorizontal() ? diffX : diffY;\n  let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n  if (params.oneWayMovement) {\n    diff = Math.abs(diff) * (rtl ? 1 : -1);\n    touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n  }\n  touches.diff = diff;\n  diff *= params.touchRatio;\n  if (rtl) {\n    diff = -diff;\n    touchesDiff = -touchesDiff;\n  }\n  const prevTouchesDirection = swiper.touchesDirection;\n  swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n  swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n  const isLoop = swiper.params.loop && !params.cssMode;\n  const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n  if (!data.isMoved) {\n    if (isLoop && allowLoopFix) {\n      swiper.loopFix({\n        direction: swiper.swipeDirection\n      });\n    }\n    data.startTranslate = swiper.getTranslate();\n    swiper.setTransition(0);\n    if (swiper.animating) {\n      const evt = new window.CustomEvent('transitionend', {\n        bubbles: true,\n        cancelable: true,\n        detail: {\n          bySwiperTouchMove: true\n        }\n      });\n      swiper.wrapperEl.dispatchEvent(evt);\n    }\n    data.allowMomentumBounce = false;\n    // Grab Cursor\n    if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n      swiper.setGrabCursor(true);\n    }\n    swiper.emit('sliderFirstMove', e);\n  }\n  let loopFixed;\n  new Date().getTime();\n  if (params._loopSwapReset !== false && data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n    Object.assign(touches, {\n      startX: pageX,\n      startY: pageY,\n      currentX: pageX,\n      currentY: pageY,\n      startTranslate: data.currentTranslate\n    });\n    data.loopSwapReset = true;\n    data.startTranslate = data.currentTranslate;\n    return;\n  }\n  swiper.emit('sliderMove', e);\n  data.isMoved = true;\n  data.currentTranslate = diff + data.startTranslate;\n  let disableParentSwiper = true;\n  let resistanceRatio = params.resistanceRatio;\n  if (params.touchReleaseOnEdges) {\n    resistanceRatio = 0;\n  }\n  if (diff > 0) {\n    if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) {\n      swiper.loopFix({\n        direction: 'prev',\n        setTranslate: true,\n        activeSlideIndex: 0\n      });\n    }\n    if (data.currentTranslate > swiper.minTranslate()) {\n      disableParentSwiper = false;\n      if (params.resistance) {\n        data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n      }\n    }\n  } else if (diff < 0) {\n    if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) {\n      swiper.loopFix({\n        direction: 'next',\n        setTranslate: true,\n        activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n      });\n    }\n    if (data.currentTranslate < swiper.maxTranslate()) {\n      disableParentSwiper = false;\n      if (params.resistance) {\n        data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n      }\n    }\n  }\n  if (disableParentSwiper) {\n    e.preventedByNestedSwiper = true;\n  }\n\n  // Directions locks\n  if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n    data.currentTranslate = data.startTranslate;\n  }\n  if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n    data.currentTranslate = data.startTranslate;\n  }\n  if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n    data.currentTranslate = data.startTranslate;\n  }\n\n  // Threshold\n  if (params.threshold > 0) {\n    if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n      if (!data.allowThresholdMove) {\n        data.allowThresholdMove = true;\n        touches.startX = touches.currentX;\n        touches.startY = touches.currentY;\n        data.currentTranslate = data.startTranslate;\n        touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n        return;\n      }\n    } else {\n      data.currentTranslate = data.startTranslate;\n      return;\n    }\n  }\n  if (!params.followFinger || params.cssMode) return;\n\n  // Update active index in free mode\n  if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n  }\n  if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n    swiper.freeMode.onTouchMove();\n  }\n  // Update progress\n  swiper.updateProgress(data.currentTranslate);\n  // Update translate\n  swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n  const swiper = this;\n  const data = swiper.touchEventsData;\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  let targetTouch;\n  const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n  if (!isTouchEvent) {\n    if (data.touchId !== null) return; // return from pointer if we use touch\n    if (e.pointerId !== data.pointerId) return;\n    targetTouch = e;\n  } else {\n    targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n    if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n  }\n  if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n    const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n    if (!proceed) {\n      return;\n    }\n  }\n  data.pointerId = null;\n  data.touchId = null;\n  const {\n    params,\n    touches,\n    rtlTranslate: rtl,\n    slidesGrid,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n  if (!params.simulateTouch && e.pointerType === 'mouse') return;\n  if (data.allowTouchCallbacks) {\n    swiper.emit('touchEnd', e);\n  }\n  data.allowTouchCallbacks = false;\n  if (!data.isTouched) {\n    if (data.isMoved && params.grabCursor) {\n      swiper.setGrabCursor(false);\n    }\n    data.isMoved = false;\n    data.startMoving = false;\n    return;\n  }\n\n  // Return Grab Cursor\n  if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n    swiper.setGrabCursor(false);\n  }\n\n  // Time diff\n  const touchEndTime = now();\n  const timeDiff = touchEndTime - data.touchStartTime;\n\n  // Tap, doubleTap, Click\n  if (swiper.allowClick) {\n    const pathTree = e.path || e.composedPath && e.composedPath();\n    swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n    swiper.emit('tap click', e);\n    if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n      swiper.emit('doubleTap doubleClick', e);\n    }\n  }\n  data.lastClickTime = now();\n  nextTick(() => {\n    if (!swiper.destroyed) swiper.allowClick = true;\n  });\n  if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n    data.isTouched = false;\n    data.isMoved = false;\n    data.startMoving = false;\n    return;\n  }\n  data.isTouched = false;\n  data.isMoved = false;\n  data.startMoving = false;\n  let currentPos;\n  if (params.followFinger) {\n    currentPos = rtl ? swiper.translate : -swiper.translate;\n  } else {\n    currentPos = -data.currentTranslate;\n  }\n  if (params.cssMode) {\n    return;\n  }\n  if (params.freeMode && params.freeMode.enabled) {\n    swiper.freeMode.onTouchEnd({\n      currentPos\n    });\n    return;\n  }\n\n  // Find current slide\n  const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n  let stopIndex = 0;\n  let groupSize = swiper.slidesSizesGrid[0];\n  for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n    const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n    if (typeof slidesGrid[i + increment] !== 'undefined') {\n      if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n        stopIndex = i;\n        groupSize = slidesGrid[i + increment] - slidesGrid[i];\n      }\n    } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n      stopIndex = i;\n      groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n    }\n  }\n  let rewindFirstIndex = null;\n  let rewindLastIndex = null;\n  if (params.rewind) {\n    if (swiper.isBeginning) {\n      rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n    } else if (swiper.isEnd) {\n      rewindFirstIndex = 0;\n    }\n  }\n  // Find current slide size\n  const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n  const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n  if (timeDiff > params.longSwipesMs) {\n    // Long touches\n    if (!params.longSwipes) {\n      swiper.slideTo(swiper.activeIndex);\n      return;\n    }\n    if (swiper.swipeDirection === 'next') {\n      if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n    }\n    if (swiper.swipeDirection === 'prev') {\n      if (ratio > 1 - params.longSwipesRatio) {\n        swiper.slideTo(stopIndex + increment);\n      } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n        swiper.slideTo(rewindLastIndex);\n      } else {\n        swiper.slideTo(stopIndex);\n      }\n    }\n  } else {\n    // Short swipes\n    if (!params.shortSwipes) {\n      swiper.slideTo(swiper.activeIndex);\n      return;\n    }\n    const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n    if (!isNavButtonTarget) {\n      if (swiper.swipeDirection === 'next') {\n        swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n      }\n      if (swiper.swipeDirection === 'prev') {\n        swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n      }\n    } else if (e.target === swiper.navigation.nextEl) {\n      swiper.slideTo(stopIndex + increment);\n    } else {\n      swiper.slideTo(stopIndex);\n    }\n  }\n}\n\nfunction onResize() {\n  const swiper = this;\n  const {\n    params,\n    el\n  } = swiper;\n  if (el && el.offsetWidth === 0) return;\n\n  // Breakpoints\n  if (params.breakpoints) {\n    swiper.setBreakpoint();\n  }\n\n  // Save locks\n  const {\n    allowSlideNext,\n    allowSlidePrev,\n    snapGrid\n  } = swiper;\n  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n  // Disable locks on resize\n  swiper.allowSlideNext = true;\n  swiper.allowSlidePrev = true;\n  swiper.updateSize();\n  swiper.updateSlides();\n  swiper.updateSlidesClasses();\n  const isVirtualLoop = isVirtual && params.loop;\n  if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n    swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n  } else {\n    if (swiper.params.loop && !isVirtual) {\n      swiper.slideToLoop(swiper.realIndex, 0, false, true);\n    } else {\n      swiper.slideTo(swiper.activeIndex, 0, false, true);\n    }\n  }\n  if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n    clearTimeout(swiper.autoplay.resizeTimeout);\n    swiper.autoplay.resizeTimeout = setTimeout(() => {\n      if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n        swiper.autoplay.resume();\n      }\n    }, 500);\n  }\n  // Return locks after resize\n  swiper.allowSlidePrev = allowSlidePrev;\n  swiper.allowSlideNext = allowSlideNext;\n  if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n    swiper.checkOverflow();\n  }\n}\n\nfunction onClick(e) {\n  const swiper = this;\n  if (!swiper.enabled) return;\n  if (!swiper.allowClick) {\n    if (swiper.params.preventClicks) e.preventDefault();\n    if (swiper.params.preventClicksPropagation && swiper.animating) {\n      e.stopPropagation();\n      e.stopImmediatePropagation();\n    }\n  }\n}\n\nfunction onScroll() {\n  const swiper = this;\n  const {\n    wrapperEl,\n    rtlTranslate,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n  swiper.previousTranslate = swiper.translate;\n  if (swiper.isHorizontal()) {\n    swiper.translate = -wrapperEl.scrollLeft;\n  } else {\n    swiper.translate = -wrapperEl.scrollTop;\n  }\n  // eslint-disable-next-line\n  if (swiper.translate === 0) swiper.translate = 0;\n  swiper.updateActiveIndex();\n  swiper.updateSlidesClasses();\n  let newProgress;\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n  if (translatesDiff === 0) {\n    newProgress = 0;\n  } else {\n    newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n  }\n  if (newProgress !== swiper.progress) {\n    swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n  }\n  swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n  const swiper = this;\n  processLazyPreloader(swiper, e.target);\n  if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n    return;\n  }\n  swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n  const swiper = this;\n  if (swiper.documentTouchHandlerProceeded) return;\n  swiper.documentTouchHandlerProceeded = true;\n  if (swiper.params.touchReleaseOnEdges) {\n    swiper.el.style.touchAction = 'auto';\n  }\n}\n\nconst events = (swiper, method) => {\n  const document = getDocument();\n  const {\n    params,\n    el,\n    wrapperEl,\n    device\n  } = swiper;\n  const capture = !!params.nested;\n  const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n  const swiperMethod = method;\n  if (!el || typeof el === 'string') return;\n\n  // Touch Events\n  document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n    passive: false,\n    capture\n  });\n  el[domMethod]('touchstart', swiper.onTouchStart, {\n    passive: false\n  });\n  el[domMethod]('pointerdown', swiper.onTouchStart, {\n    passive: false\n  });\n  document[domMethod]('touchmove', swiper.onTouchMove, {\n    passive: false,\n    capture\n  });\n  document[domMethod]('pointermove', swiper.onTouchMove, {\n    passive: false,\n    capture\n  });\n  document[domMethod]('touchend', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('pointerup', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('pointercancel', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('touchcancel', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('pointerout', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('pointerleave', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('contextmenu', swiper.onTouchEnd, {\n    passive: true\n  });\n\n  // Prevent Links Clicks\n  if (params.preventClicks || params.preventClicksPropagation) {\n    el[domMethod]('click', swiper.onClick, true);\n  }\n  if (params.cssMode) {\n    wrapperEl[domMethod]('scroll', swiper.onScroll);\n  }\n\n  // Resize handler\n  if (params.updateOnWindowResize) {\n    swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n  } else {\n    swiper[swiperMethod]('observerUpdate', onResize, true);\n  }\n\n  // Images loader\n  el[domMethod]('load', swiper.onLoad, {\n    capture: true\n  });\n};\nfunction attachEvents() {\n  const swiper = this;\n  const {\n    params\n  } = swiper;\n  swiper.onTouchStart = onTouchStart.bind(swiper);\n  swiper.onTouchMove = onTouchMove.bind(swiper);\n  swiper.onTouchEnd = onTouchEnd.bind(swiper);\n  swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n  if (params.cssMode) {\n    swiper.onScroll = onScroll.bind(swiper);\n  }\n  swiper.onClick = onClick.bind(swiper);\n  swiper.onLoad = onLoad.bind(swiper);\n  events(swiper, 'on');\n}\nfunction detachEvents() {\n  const swiper = this;\n  events(swiper, 'off');\n}\nvar events$1 = {\n  attachEvents,\n  detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n  return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n  const swiper = this;\n  const {\n    realIndex,\n    initialized,\n    params,\n    el\n  } = swiper;\n  const breakpoints = params.breakpoints;\n  if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n  const document = getDocument();\n\n  // Get breakpoint for window/container width and update parameters\n  const breakpointsBase = params.breakpointsBase === 'window' || !params.breakpointsBase ? params.breakpointsBase : 'container';\n  const breakpointContainer = ['window', 'container'].includes(params.breakpointsBase) || !params.breakpointsBase ? swiper.el : document.querySelector(params.breakpointsBase);\n  const breakpoint = swiper.getBreakpoint(breakpoints, breakpointsBase, breakpointContainer);\n  if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n  const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n  const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n  const wasMultiRow = isGridEnabled(swiper, params);\n  const isMultiRow = isGridEnabled(swiper, breakpointParams);\n  const wasGrabCursor = swiper.params.grabCursor;\n  const isGrabCursor = breakpointParams.grabCursor;\n  const wasEnabled = params.enabled;\n  if (wasMultiRow && !isMultiRow) {\n    el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n    swiper.emitContainerClasses();\n  } else if (!wasMultiRow && isMultiRow) {\n    el.classList.add(`${params.containerModifierClass}grid`);\n    if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n      el.classList.add(`${params.containerModifierClass}grid-column`);\n    }\n    swiper.emitContainerClasses();\n  }\n  if (wasGrabCursor && !isGrabCursor) {\n    swiper.unsetGrabCursor();\n  } else if (!wasGrabCursor && isGrabCursor) {\n    swiper.setGrabCursor();\n  }\n\n  // Toggle navigation, pagination, scrollbar\n  ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n    if (typeof breakpointParams[prop] === 'undefined') return;\n    const wasModuleEnabled = params[prop] && params[prop].enabled;\n    const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n    if (wasModuleEnabled && !isModuleEnabled) {\n      swiper[prop].disable();\n    }\n    if (!wasModuleEnabled && isModuleEnabled) {\n      swiper[prop].enable();\n    }\n  });\n  const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n  const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n  const wasLoop = params.loop;\n  if (directionChanged && initialized) {\n    swiper.changeDirection();\n  }\n  extend(swiper.params, breakpointParams);\n  const isEnabled = swiper.params.enabled;\n  const hasLoop = swiper.params.loop;\n  Object.assign(swiper, {\n    allowTouchMove: swiper.params.allowTouchMove,\n    allowSlideNext: swiper.params.allowSlideNext,\n    allowSlidePrev: swiper.params.allowSlidePrev\n  });\n  if (wasEnabled && !isEnabled) {\n    swiper.disable();\n  } else if (!wasEnabled && isEnabled) {\n    swiper.enable();\n  }\n  swiper.currentBreakpoint = breakpoint;\n  swiper.emit('_beforeBreakpoint', breakpointParams);\n  if (initialized) {\n    if (needsReLoop) {\n      swiper.loopDestroy();\n      swiper.loopCreate(realIndex);\n      swiper.updateSlides();\n    } else if (!wasLoop && hasLoop) {\n      swiper.loopCreate(realIndex);\n      swiper.updateSlides();\n    } else if (wasLoop && !hasLoop) {\n      swiper.loopDestroy();\n    }\n  }\n  swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n  if (base === void 0) {\n    base = 'window';\n  }\n  if (!breakpoints || base === 'container' && !containerEl) return undefined;\n  let breakpoint = false;\n  const window = getWindow();\n  const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n  const points = Object.keys(breakpoints).map(point => {\n    if (typeof point === 'string' && point.indexOf('@') === 0) {\n      const minRatio = parseFloat(point.substr(1));\n      const value = currentHeight * minRatio;\n      return {\n        value,\n        point\n      };\n    }\n    return {\n      value: point,\n      point\n    };\n  });\n  points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n  for (let i = 0; i < points.length; i += 1) {\n    const {\n      point,\n      value\n    } = points[i];\n    if (base === 'window') {\n      if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n        breakpoint = point;\n      }\n    } else if (value <= containerEl.clientWidth) {\n      breakpoint = point;\n    }\n  }\n  return breakpoint || 'max';\n}\n\nvar breakpoints = {\n  setBreakpoint,\n  getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n  const resultClasses = [];\n  entries.forEach(item => {\n    if (typeof item === 'object') {\n      Object.keys(item).forEach(classNames => {\n        if (item[classNames]) {\n          resultClasses.push(prefix + classNames);\n        }\n      });\n    } else if (typeof item === 'string') {\n      resultClasses.push(prefix + item);\n    }\n  });\n  return resultClasses;\n}\nfunction addClasses() {\n  const swiper = this;\n  const {\n    classNames,\n    params,\n    rtl,\n    el,\n    device\n  } = swiper;\n  // prettier-ignore\n  const suffixes = prepareClasses(['initialized', params.direction, {\n    'free-mode': swiper.params.freeMode && params.freeMode.enabled\n  }, {\n    'autoheight': params.autoHeight\n  }, {\n    'rtl': rtl\n  }, {\n    'grid': params.grid && params.grid.rows > 1\n  }, {\n    'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n  }, {\n    'android': device.android\n  }, {\n    'ios': device.ios\n  }, {\n    'css-mode': params.cssMode\n  }, {\n    'centered': params.cssMode && params.centeredSlides\n  }, {\n    'watch-progress': params.watchSlidesProgress\n  }], params.containerModifierClass);\n  classNames.push(...suffixes);\n  el.classList.add(...classNames);\n  swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n  const swiper = this;\n  const {\n    el,\n    classNames\n  } = swiper;\n  if (!el || typeof el === 'string') return;\n  el.classList.remove(...classNames);\n  swiper.emitContainerClasses();\n}\n\nvar classes = {\n  addClasses,\n  removeClasses\n};\n\nfunction checkOverflow() {\n  const swiper = this;\n  const {\n    isLocked: wasLocked,\n    params\n  } = swiper;\n  const {\n    slidesOffsetBefore\n  } = params;\n  if (slidesOffsetBefore) {\n    const lastSlideIndex = swiper.slides.length - 1;\n    const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n    swiper.isLocked = swiper.size > lastSlideRightEdge;\n  } else {\n    swiper.isLocked = swiper.snapGrid.length === 1;\n  }\n  if (params.allowSlideNext === true) {\n    swiper.allowSlideNext = !swiper.isLocked;\n  }\n  if (params.allowSlidePrev === true) {\n    swiper.allowSlidePrev = !swiper.isLocked;\n  }\n  if (wasLocked && wasLocked !== swiper.isLocked) {\n    swiper.isEnd = false;\n  }\n  if (wasLocked !== swiper.isLocked) {\n    swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n  }\n}\nvar checkOverflow$1 = {\n  checkOverflow\n};\n\nvar defaults = {\n  init: true,\n  direction: 'horizontal',\n  oneWayMovement: false,\n  swiperElementNodeName: 'SWIPER-CONTAINER',\n  touchEventsTarget: 'wrapper',\n  initialSlide: 0,\n  speed: 300,\n  cssMode: false,\n  updateOnWindowResize: true,\n  resizeObserver: true,\n  nested: false,\n  createElements: false,\n  eventsPrefix: 'swiper',\n  enabled: true,\n  focusableElements: 'input, select, option, textarea, button, video, label',\n  // Overrides\n  width: null,\n  height: null,\n  //\n  preventInteractionOnTransition: false,\n  // ssr\n  userAgent: null,\n  url: null,\n  // To support iOS's swipe-to-go-back gesture (when being used in-app).\n  edgeSwipeDetection: false,\n  edgeSwipeThreshold: 20,\n  // Autoheight\n  autoHeight: false,\n  // Set wrapper width\n  setWrapperSize: false,\n  // Virtual Translate\n  virtualTranslate: false,\n  // Effects\n  effect: 'slide',\n  // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n  // Breakpoints\n  breakpoints: undefined,\n  breakpointsBase: 'window',\n  // Slides grid\n  spaceBetween: 0,\n  slidesPerView: 1,\n  slidesPerGroup: 1,\n  slidesPerGroupSkip: 0,\n  slidesPerGroupAuto: false,\n  centeredSlides: false,\n  centeredSlidesBounds: false,\n  slidesOffsetBefore: 0,\n  // in px\n  slidesOffsetAfter: 0,\n  // in px\n  normalizeSlideIndex: true,\n  centerInsufficientSlides: false,\n  // Disable swiper and hide navigation when container not overflow\n  watchOverflow: true,\n  // Round length\n  roundLengths: false,\n  // Touches\n  touchRatio: 1,\n  touchAngle: 45,\n  simulateTouch: true,\n  shortSwipes: true,\n  longSwipes: true,\n  longSwipesRatio: 0.5,\n  longSwipesMs: 300,\n  followFinger: true,\n  allowTouchMove: true,\n  threshold: 5,\n  touchMoveStopPropagation: false,\n  touchStartPreventDefault: true,\n  touchStartForcePreventDefault: false,\n  touchReleaseOnEdges: false,\n  // Unique Navigation Elements\n  uniqueNavElements: true,\n  // Resistance\n  resistance: true,\n  resistanceRatio: 0.85,\n  // Progress\n  watchSlidesProgress: false,\n  // Cursor\n  grabCursor: false,\n  // Clicks\n  preventClicks: true,\n  preventClicksPropagation: true,\n  slideToClickedSlide: false,\n  // loop\n  loop: false,\n  loopAddBlankSlides: true,\n  loopAdditionalSlides: 0,\n  loopPreventsSliding: true,\n  // rewind\n  rewind: false,\n  // Swiping/no swiping\n  allowSlidePrev: true,\n  allowSlideNext: true,\n  swipeHandler: null,\n  // '.swipe-handler',\n  noSwiping: true,\n  noSwipingClass: 'swiper-no-swiping',\n  noSwipingSelector: null,\n  // Passive Listeners\n  passiveListeners: true,\n  maxBackfaceHiddenSlides: 10,\n  // NS\n  containerModifierClass: 'swiper-',\n  // NEW\n  slideClass: 'swiper-slide',\n  slideBlankClass: 'swiper-slide-blank',\n  slideActiveClass: 'swiper-slide-active',\n  slideVisibleClass: 'swiper-slide-visible',\n  slideFullyVisibleClass: 'swiper-slide-fully-visible',\n  slideNextClass: 'swiper-slide-next',\n  slidePrevClass: 'swiper-slide-prev',\n  wrapperClass: 'swiper-wrapper',\n  lazyPreloaderClass: 'swiper-lazy-preloader',\n  lazyPreloadPrevNext: 0,\n  // Callbacks\n  runCallbacksOnInit: true,\n  // Internals\n  _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n  return function extendParams(obj) {\n    if (obj === void 0) {\n      obj = {};\n    }\n    const moduleParamName = Object.keys(obj)[0];\n    const moduleParams = obj[moduleParamName];\n    if (typeof moduleParams !== 'object' || moduleParams === null) {\n      extend(allModulesParams, obj);\n      return;\n    }\n    if (params[moduleParamName] === true) {\n      params[moduleParamName] = {\n        enabled: true\n      };\n    }\n    if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n      params[moduleParamName].auto = true;\n    }\n    if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n      params[moduleParamName].auto = true;\n    }\n    if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n      extend(allModulesParams, obj);\n      return;\n    }\n    if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n      params[moduleParamName].enabled = true;\n    }\n    if (!params[moduleParamName]) params[moduleParamName] = {\n      enabled: false\n    };\n    extend(allModulesParams, obj);\n  };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n  eventsEmitter,\n  update,\n  translate,\n  transition,\n  slide,\n  loop,\n  grabCursor,\n  events: events$1,\n  breakpoints,\n  checkOverflow: checkOverflow$1,\n  classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n  constructor() {\n    let el;\n    let params;\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n      params = args[0];\n    } else {\n      [el, params] = args;\n    }\n    if (!params) params = {};\n    params = extend({}, params);\n    if (el && !params.el) params.el = el;\n    const document = getDocument();\n    if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n      const swipers = [];\n      document.querySelectorAll(params.el).forEach(containerEl => {\n        const newParams = extend({}, params, {\n          el: containerEl\n        });\n        swipers.push(new Swiper(newParams));\n      });\n      // eslint-disable-next-line no-constructor-return\n      return swipers;\n    }\n\n    // Swiper Instance\n    const swiper = this;\n    swiper.__swiper__ = true;\n    swiper.support = getSupport();\n    swiper.device = getDevice({\n      userAgent: params.userAgent\n    });\n    swiper.browser = getBrowser();\n    swiper.eventsListeners = {};\n    swiper.eventsAnyListeners = [];\n    swiper.modules = [...swiper.__modules__];\n    if (params.modules && Array.isArray(params.modules)) {\n      swiper.modules.push(...params.modules);\n    }\n    const allModulesParams = {};\n    swiper.modules.forEach(mod => {\n      mod({\n        params,\n        swiper,\n        extendParams: moduleExtendParams(params, allModulesParams),\n        on: swiper.on.bind(swiper),\n        once: swiper.once.bind(swiper),\n        off: swiper.off.bind(swiper),\n        emit: swiper.emit.bind(swiper)\n      });\n    });\n\n    // Extend defaults with modules params\n    const swiperParams = extend({}, defaults, allModulesParams);\n\n    // Extend defaults with passed params\n    swiper.params = extend({}, swiperParams, extendedDefaults, params);\n    swiper.originalParams = extend({}, swiper.params);\n    swiper.passedParams = extend({}, params);\n\n    // add event listeners\n    if (swiper.params && swiper.params.on) {\n      Object.keys(swiper.params.on).forEach(eventName => {\n        swiper.on(eventName, swiper.params.on[eventName]);\n      });\n    }\n    if (swiper.params && swiper.params.onAny) {\n      swiper.onAny(swiper.params.onAny);\n    }\n\n    // Extend Swiper\n    Object.assign(swiper, {\n      enabled: swiper.params.enabled,\n      el,\n      // Classes\n      classNames: [],\n      // Slides\n      slides: [],\n      slidesGrid: [],\n      snapGrid: [],\n      slidesSizesGrid: [],\n      // isDirection\n      isHorizontal() {\n        return swiper.params.direction === 'horizontal';\n      },\n      isVertical() {\n        return swiper.params.direction === 'vertical';\n      },\n      // Indexes\n      activeIndex: 0,\n      realIndex: 0,\n      //\n      isBeginning: true,\n      isEnd: false,\n      // Props\n      translate: 0,\n      previousTranslate: 0,\n      progress: 0,\n      velocity: 0,\n      animating: false,\n      cssOverflowAdjustment() {\n        // Returns 0 unless `translate` is > 2**23\n        // Should be subtracted from css values to prevent overflow\n        return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n      },\n      // Locks\n      allowSlideNext: swiper.params.allowSlideNext,\n      allowSlidePrev: swiper.params.allowSlidePrev,\n      // Touch Events\n      touchEventsData: {\n        isTouched: undefined,\n        isMoved: undefined,\n        allowTouchCallbacks: undefined,\n        touchStartTime: undefined,\n        isScrolling: undefined,\n        currentTranslate: undefined,\n        startTranslate: undefined,\n        allowThresholdMove: undefined,\n        // Form elements to match\n        focusableElements: swiper.params.focusableElements,\n        // Last click time\n        lastClickTime: 0,\n        clickTimeout: undefined,\n        // Velocities\n        velocities: [],\n        allowMomentumBounce: undefined,\n        startMoving: undefined,\n        pointerId: null,\n        touchId: null\n      },\n      // Clicks\n      allowClick: true,\n      // Touches\n      allowTouchMove: swiper.params.allowTouchMove,\n      touches: {\n        startX: 0,\n        startY: 0,\n        currentX: 0,\n        currentY: 0,\n        diff: 0\n      },\n      // Images\n      imagesToLoad: [],\n      imagesLoaded: 0\n    });\n    swiper.emit('_swiper');\n\n    // Init\n    if (swiper.params.init) {\n      swiper.init();\n    }\n\n    // Return app instance\n    // eslint-disable-next-line no-constructor-return\n    return swiper;\n  }\n  getDirectionLabel(property) {\n    if (this.isHorizontal()) {\n      return property;\n    }\n    // prettier-ignore\n    return {\n      'width': 'height',\n      'margin-top': 'margin-left',\n      'margin-bottom ': 'margin-right',\n      'margin-left': 'margin-top',\n      'margin-right': 'margin-bottom',\n      'padding-left': 'padding-top',\n      'padding-right': 'padding-bottom',\n      'marginRight': 'marginBottom'\n    }[property];\n  }\n  getSlideIndex(slideEl) {\n    const {\n      slidesEl,\n      params\n    } = this;\n    const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n    const firstSlideIndex = elementIndex(slides[0]);\n    return elementIndex(slideEl) - firstSlideIndex;\n  }\n  getSlideIndexByData(index) {\n    return this.getSlideIndex(this.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index));\n  }\n  recalcSlides() {\n    const swiper = this;\n    const {\n      slidesEl,\n      params\n    } = swiper;\n    swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n  }\n  enable() {\n    const swiper = this;\n    if (swiper.enabled) return;\n    swiper.enabled = true;\n    if (swiper.params.grabCursor) {\n      swiper.setGrabCursor();\n    }\n    swiper.emit('enable');\n  }\n  disable() {\n    const swiper = this;\n    if (!swiper.enabled) return;\n    swiper.enabled = false;\n    if (swiper.params.grabCursor) {\n      swiper.unsetGrabCursor();\n    }\n    swiper.emit('disable');\n  }\n  setProgress(progress, speed) {\n    const swiper = this;\n    progress = Math.min(Math.max(progress, 0), 1);\n    const min = swiper.minTranslate();\n    const max = swiper.maxTranslate();\n    const current = (max - min) * progress + min;\n    swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n  }\n  emitContainerClasses() {\n    const swiper = this;\n    if (!swiper.params._emitClasses || !swiper.el) return;\n    const cls = swiper.el.className.split(' ').filter(className => {\n      return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n    });\n    swiper.emit('_containerClasses', cls.join(' '));\n  }\n  getSlideClasses(slideEl) {\n    const swiper = this;\n    if (swiper.destroyed) return '';\n    return slideEl.className.split(' ').filter(className => {\n      return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n    }).join(' ');\n  }\n  emitSlidesClasses() {\n    const swiper = this;\n    if (!swiper.params._emitClasses || !swiper.el) return;\n    const updates = [];\n    swiper.slides.forEach(slideEl => {\n      const classNames = swiper.getSlideClasses(slideEl);\n      updates.push({\n        slideEl,\n        classNames\n      });\n      swiper.emit('_slideClass', slideEl, classNames);\n    });\n    swiper.emit('_slideClasses', updates);\n  }\n  slidesPerViewDynamic(view, exact) {\n    if (view === void 0) {\n      view = 'current';\n    }\n    if (exact === void 0) {\n      exact = false;\n    }\n    const swiper = this;\n    const {\n      params,\n      slides,\n      slidesGrid,\n      slidesSizesGrid,\n      size: swiperSize,\n      activeIndex\n    } = swiper;\n    let spv = 1;\n    if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n    if (params.centeredSlides) {\n      let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n      let breakLoop;\n      for (let i = activeIndex + 1; i < slides.length; i += 1) {\n        if (slides[i] && !breakLoop) {\n          slideSize += Math.ceil(slides[i].swiperSlideSize);\n          spv += 1;\n          if (slideSize > swiperSize) breakLoop = true;\n        }\n      }\n      for (let i = activeIndex - 1; i >= 0; i -= 1) {\n        if (slides[i] && !breakLoop) {\n          slideSize += slides[i].swiperSlideSize;\n          spv += 1;\n          if (slideSize > swiperSize) breakLoop = true;\n        }\n      }\n    } else {\n      // eslint-disable-next-line\n      if (view === 'current') {\n        for (let i = activeIndex + 1; i < slides.length; i += 1) {\n          const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n          if (slideInView) {\n            spv += 1;\n          }\n        }\n      } else {\n        // previous\n        for (let i = activeIndex - 1; i >= 0; i -= 1) {\n          const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n          if (slideInView) {\n            spv += 1;\n          }\n        }\n      }\n    }\n    return spv;\n  }\n  update() {\n    const swiper = this;\n    if (!swiper || swiper.destroyed) return;\n    const {\n      snapGrid,\n      params\n    } = swiper;\n    // Breakpoints\n    if (params.breakpoints) {\n      swiper.setBreakpoint();\n    }\n    [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n      if (imageEl.complete) {\n        processLazyPreloader(swiper, imageEl);\n      }\n    });\n    swiper.updateSize();\n    swiper.updateSlides();\n    swiper.updateProgress();\n    swiper.updateSlidesClasses();\n    function setTranslate() {\n      const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n      const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n      swiper.setTranslate(newTranslate);\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    }\n    let translated;\n    if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n      setTranslate();\n      if (params.autoHeight) {\n        swiper.updateAutoHeight();\n      }\n    } else {\n      if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n        const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n        translated = swiper.slideTo(slides.length - 1, 0, false, true);\n      } else {\n        translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n      }\n      if (!translated) {\n        setTranslate();\n      }\n    }\n    if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n      swiper.checkOverflow();\n    }\n    swiper.emit('update');\n  }\n  changeDirection(newDirection, needUpdate) {\n    if (needUpdate === void 0) {\n      needUpdate = true;\n    }\n    const swiper = this;\n    const currentDirection = swiper.params.direction;\n    if (!newDirection) {\n      // eslint-disable-next-line\n      newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n    }\n    if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n      return swiper;\n    }\n    swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n    swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n    swiper.emitContainerClasses();\n    swiper.params.direction = newDirection;\n    swiper.slides.forEach(slideEl => {\n      if (newDirection === 'vertical') {\n        slideEl.style.width = '';\n      } else {\n        slideEl.style.height = '';\n      }\n    });\n    swiper.emit('changeDirection');\n    if (needUpdate) swiper.update();\n    return swiper;\n  }\n  changeLanguageDirection(direction) {\n    const swiper = this;\n    if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n    swiper.rtl = direction === 'rtl';\n    swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n    if (swiper.rtl) {\n      swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n      swiper.el.dir = 'rtl';\n    } else {\n      swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n      swiper.el.dir = 'ltr';\n    }\n    swiper.update();\n  }\n  mount(element) {\n    const swiper = this;\n    if (swiper.mounted) return true;\n\n    // Find el\n    let el = element || swiper.params.el;\n    if (typeof el === 'string') {\n      el = document.querySelector(el);\n    }\n    if (!el) {\n      return false;\n    }\n    el.swiper = swiper;\n    if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n      swiper.isElement = true;\n    }\n    const getWrapperSelector = () => {\n      return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n    };\n    const getWrapper = () => {\n      if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n        const res = el.shadowRoot.querySelector(getWrapperSelector());\n        // Children needs to return slot items\n        return res;\n      }\n      return elementChildren(el, getWrapperSelector())[0];\n    };\n    // Find Wrapper\n    let wrapperEl = getWrapper();\n    if (!wrapperEl && swiper.params.createElements) {\n      wrapperEl = createElement('div', swiper.params.wrapperClass);\n      el.append(wrapperEl);\n      elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n        wrapperEl.append(slideEl);\n      });\n    }\n    Object.assign(swiper, {\n      el,\n      wrapperEl,\n      slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n      hostEl: swiper.isElement ? el.parentNode.host : el,\n      mounted: true,\n      // RTL\n      rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n      rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n      wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n    });\n    return true;\n  }\n  init(el) {\n    const swiper = this;\n    if (swiper.initialized) return swiper;\n    const mounted = swiper.mount(el);\n    if (mounted === false) return swiper;\n    swiper.emit('beforeInit');\n\n    // Set breakpoint\n    if (swiper.params.breakpoints) {\n      swiper.setBreakpoint();\n    }\n\n    // Add Classes\n    swiper.addClasses();\n\n    // Update size\n    swiper.updateSize();\n\n    // Update slides\n    swiper.updateSlides();\n    if (swiper.params.watchOverflow) {\n      swiper.checkOverflow();\n    }\n\n    // Set Grab Cursor\n    if (swiper.params.grabCursor && swiper.enabled) {\n      swiper.setGrabCursor();\n    }\n\n    // Slide To Initial Slide\n    if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n      swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n    } else {\n      swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n    }\n\n    // Create loop\n    if (swiper.params.loop) {\n      swiper.loopCreate(undefined, true);\n    }\n\n    // Attach events\n    swiper.attachEvents();\n    const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n    if (swiper.isElement) {\n      lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n    }\n    lazyElements.forEach(imageEl => {\n      if (imageEl.complete) {\n        processLazyPreloader(swiper, imageEl);\n      } else {\n        imageEl.addEventListener('load', e => {\n          processLazyPreloader(swiper, e.target);\n        });\n      }\n    });\n    preload(swiper);\n\n    // Init Flag\n    swiper.initialized = true;\n    preload(swiper);\n\n    // Emit\n    swiper.emit('init');\n    swiper.emit('afterInit');\n    return swiper;\n  }\n  destroy(deleteInstance, cleanStyles) {\n    if (deleteInstance === void 0) {\n      deleteInstance = true;\n    }\n    if (cleanStyles === void 0) {\n      cleanStyles = true;\n    }\n    const swiper = this;\n    const {\n      params,\n      el,\n      wrapperEl,\n      slides\n    } = swiper;\n    if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n      return null;\n    }\n    swiper.emit('beforeDestroy');\n\n    // Init Flag\n    swiper.initialized = false;\n\n    // Detach events\n    swiper.detachEvents();\n\n    // Destroy loop\n    if (params.loop) {\n      swiper.loopDestroy();\n    }\n\n    // Cleanup styles\n    if (cleanStyles) {\n      swiper.removeClasses();\n      if (el && typeof el !== 'string') {\n        el.removeAttribute('style');\n      }\n      if (wrapperEl) {\n        wrapperEl.removeAttribute('style');\n      }\n      if (slides && slides.length) {\n        slides.forEach(slideEl => {\n          slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n          slideEl.removeAttribute('style');\n          slideEl.removeAttribute('data-swiper-slide-index');\n        });\n      }\n    }\n    swiper.emit('destroy');\n\n    // Detach emitter events\n    Object.keys(swiper.eventsListeners).forEach(eventName => {\n      swiper.off(eventName);\n    });\n    if (deleteInstance !== false) {\n      if (swiper.el && typeof swiper.el !== 'string') {\n        swiper.el.swiper = null;\n      }\n      deleteProps(swiper);\n    }\n    swiper.destroyed = true;\n    return null;\n  }\n  static extendDefaults(newDefaults) {\n    extend(extendedDefaults, newDefaults);\n  }\n  static get extendedDefaults() {\n    return extendedDefaults;\n  }\n  static get defaults() {\n    return defaults;\n  }\n  static installModule(mod) {\n    if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n    const modules = Swiper.prototype.__modules__;\n    if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n      modules.push(mod);\n    }\n  }\n  static use(module) {\n    if (Array.isArray(module)) {\n      module.forEach(m => Swiper.installModule(m));\n      return Swiper;\n    }\n    Swiper.installModule(module);\n    return Swiper;\n  }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n  Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n    Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n  });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n"],"names":["support","calcSupport","window","getWindow","document","getDocument","getSupport","deviceCached","calcDevice","_temp","userAgent","platform","ua","device","screenWidth","screenHeight","android","ipad","ipod","iphone","windows","macos","iPadScreens","getDevice","overrides","browser","calcBrowser","needPerspectiveFix","isSafari","major","minor","num","isWebView","isSafariBrowser","need3dFix","getBrowser","Resize","_ref","swiper","on","emit","observer","animationFrame","resizeHandler","createObserver","entries","width","height","newWidth","newHeight","_ref2","contentBoxSize","contentRect","target","removeObserver","orientationChangeHandler","Observer","extendParams","observers","attach","options","ObserverFunc","mutations","observerUpdate","init","containerParents","elementParents","i","destroy","eventsEmitter","events","handler","priority","self","method","event","onceHandler","_len","args","_key","index","eventHandler","data","context","_len2","_key2","updateSize","el","elementStyle","updateSlides","getDirectionPropertyValue","node","label","params","wrapperEl","slidesEl","swiperSize","rtl","wrongRTL","isVirtual","previousSlidesLength","slides","elementChildren","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","slideEl","setCSSProperty","gridEnabled","slideSize","shouldResetSlideSize","key","slide","slideStyles","currentTransform","currentWebKitTransform","elementOuterSize","paddingLeft","paddingRight","marginLeft","marginRight","boxSizing","clientWidth","offsetWidth","newSlidesGrid","slidesGridItem","size","groups","groupSize","_","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","offsetSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","backFaceHiddenClass","hasClassBackfaceClassAdded","updateAutoHeight","speed","activeSlides","getSlideByIndex","updateSlidesOffset","minusOffset","toggleSlideClasses$1","condition","className","updateSlidesProgress","translate","offsetCenter","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","isVisible","updateProgress","multiplier","translatesDiff","progress","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","toggleSlideClasses","updateSlidesClasses","activeIndex","getFilteredSlide","selector","activeSlide","prevSlide","nextSlide","elementNextAll","elementPrevAll","processLazyPreloader","imageEl","slideSelector","lazyEl","unlazy","preload","amount","len","slidesPerView","activeColumn","preloadColumns","slideIndexLastInView","realIndex","getActiveIndexByTranslate","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","skip","firstSlideInColumn","activeSlideIndex","updateClickedSlide","path","pathEl","slideFound","update","getSwiperTranslate","axis","currentTranslate","getTranslate","setTranslate","byController","x","y","z","newProgress","minTranslate","maxTranslate","translateTo","runCallbacks","translateBounds","internal","newTranslate","isH","animateCSSModeScroll","e","setTransition","duration","transitionEmit","direction","step","dir","transitionStart","transitionEnd","transition","slideTo","initial","enabled","normalizedTranslate","normalizedGrid","normalizedGridNext","t","slideToLoop","newIndex","targetSlideIndex","cols","centeredSlides","needLoopFix","slideNext","animating","perGroup","increment","slidePrev","rtlTranslate","normalize","val","normalizedSnapGrid","isFreeMode","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","nextSnap","slideToClickedSlide","slideToIndex","nextTick","loopCreate","slideRealIndex","initSlides","slidesPerGroup","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","createElement","slidesToAdd","showWarning","loopFix","byMousewheel","allowSlidePrev","allowSlideNext","initialSlide","loopedSlides","prependSlidesIndexes","appendSlidesIndexes","isInitialOverflow","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","currentSlideTranslate","diff","shift","loopParams","c","loopDestroy","newSlidesOrder","loop","setGrabCursor","moving","unsetGrabCursor","grabCursor","closestElement","base","__closestFrom","found","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","onTouchStart","touches","targetEl","elementIsChildOf","swipingClassHasValue","eventPath","noSwipingSelector","isTargetShadow","startY","now","preventDefault","shouldPreventDefault","onTouchMove","targetTouch","pageX","pageY","diffX","diffY","touchAngle","touchesDiff","prevTouchesDirection","isLoop","allowLoopFix","evt","disableParentSwiper","resistanceRatio","onTouchEnd","touchEndTime","timeDiff","pathTree","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","onResize","isVirtualLoop","onClick","onScroll","onLoad","onDocumentTouchStart","capture","domMethod","swiperMethod","attachEvents","detachEvents","events$1","isGridEnabled","setBreakpoint","initialized","breakpoints","breakpointsBase","breakpointContainer","breakpoint","breakpointParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","prop","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","wasLoop","extend","isEnabled","hasLoop","getBreakpoint","containerEl","currentHeight","points","point","minRatio","a","b","value","prepareClasses","prefix","resultClasses","item","classNames","addClasses","suffixes","removeClasses","classes","checkOverflow","wasLocked","slidesOffsetBefore","lastSlideRightEdge","checkOverflow$1","defaults","moduleExtendParams","allModulesParams","obj","moduleParamName","moduleParams","prototypes","extendedDefaults","Swiper","swipers","newParams","mod","swiperParams","eventName","property","elementIndex","min","current","cls","updates","view","exact","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","element","getWrapperSelector","lazyElements","deleteInstance","cleanStyles","deleteProps","newDefaults","modules","module","m","prototypeGroup","protoMethod"],"mappings":"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","x_google_ignoreList":[0]}
         | 
| 1 | 
            +
            {"version":3,"file":"index.es453.js","sources":["../node_modules/swiper/shared/update-on-virtual-data.mjs"],"sourcesContent":["import { e as extend, p as paramsList, i as isObject, n as needsNavigation, a as needsPagination, b as needsScrollbar } from './update-swiper.mjs';\nimport { d as defaults } from './swiper-core.mjs';\n\nfunction getParams(obj, splitEvents) {\n  if (obj === void 0) {\n    obj = {};\n  }\n  if (splitEvents === void 0) {\n    splitEvents = true;\n  }\n  const params = {\n    on: {}\n  };\n  const events = {};\n  const passedParams = {};\n  extend(params, defaults);\n  params._emitClasses = true;\n  params.init = false;\n  const rest = {};\n  const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n  const plainObj = Object.assign({}, obj);\n  Object.keys(plainObj).forEach(key => {\n    if (typeof obj[key] === 'undefined') return;\n    if (allowedParams.indexOf(key) >= 0) {\n      if (isObject(obj[key])) {\n        params[key] = {};\n        passedParams[key] = {};\n        extend(params[key], obj[key]);\n        extend(passedParams[key], obj[key]);\n      } else {\n        params[key] = obj[key];\n        passedParams[key] = obj[key];\n      }\n    } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n      if (splitEvents) {\n        events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n      } else {\n        params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n      }\n    } else {\n      rest[key] = obj[key];\n    }\n  });\n  ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n    if (params[key] === true) params[key] = {};\n    if (params[key] === false) delete params[key];\n  });\n  return {\n    params,\n    passedParams,\n    rest,\n    events\n  };\n}\n\nfunction mountSwiper(_ref, swiperParams) {\n  let {\n    el,\n    nextEl,\n    prevEl,\n    paginationEl,\n    scrollbarEl,\n    swiper\n  } = _ref;\n  if (needsNavigation(swiperParams) && nextEl && prevEl) {\n    swiper.params.navigation.nextEl = nextEl;\n    swiper.originalParams.navigation.nextEl = nextEl;\n    swiper.params.navigation.prevEl = prevEl;\n    swiper.originalParams.navigation.prevEl = prevEl;\n  }\n  if (needsPagination(swiperParams) && paginationEl) {\n    swiper.params.pagination.el = paginationEl;\n    swiper.originalParams.pagination.el = paginationEl;\n  }\n  if (needsScrollbar(swiperParams) && scrollbarEl) {\n    swiper.params.scrollbar.el = scrollbarEl;\n    swiper.originalParams.scrollbar.el = scrollbarEl;\n  }\n  swiper.init(el);\n}\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n  const keys = [];\n  if (!oldParams) return keys;\n  const addKey = key => {\n    if (keys.indexOf(key) < 0) keys.push(key);\n  };\n  if (children && oldChildren) {\n    const oldChildrenKeys = oldChildren.map(getKey);\n    const childrenKeys = children.map(getKey);\n    if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n    if (oldChildren.length !== children.length) addKey('children');\n  }\n  const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n  watchParams.forEach(key => {\n    if (key in swiperParams && key in oldParams) {\n      if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n        const newKeys = Object.keys(swiperParams[key]);\n        const oldKeys = Object.keys(oldParams[key]);\n        if (newKeys.length !== oldKeys.length) {\n          addKey(key);\n        } else {\n          newKeys.forEach(newKey => {\n            if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n              addKey(key);\n            }\n          });\n          oldKeys.forEach(oldKey => {\n            if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n          });\n        }\n      } else if (swiperParams[key] !== oldParams[key]) {\n        addKey(key);\n      }\n    }\n  });\n  return keys;\n}\n\nconst updateOnVirtualData = swiper => {\n  if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n  swiper.updateSlides();\n  swiper.updateProgress();\n  swiper.updateSlidesClasses();\n  swiper.emit('_virtualUpdated');\n  if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n    swiper.parallax.setTranslate();\n  }\n};\n\nexport { getChangedParams as a, getParams as g, mountSwiper as m, updateOnVirtualData as u };\n"],"names":["getParams","obj","splitEvents","params","events","passedParams","extend","defaults","rest","allowedParams","paramsList","key","plainObj","isObject","mountSwiper","_ref","swiperParams","el","nextEl","prevEl","paginationEl","scrollbarEl","swiper","needsNavigation","needsPagination","needsScrollbar","getChangedParams","oldParams","children","oldChildren","getKey","keys","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","updateOnVirtualData"],"mappings":"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","x_google_ignoreList":[0]}
         |