diff --git a/Web/public/apple-touch-icon-xhq3hzfq.png b/Web/public/apple-touch-icon-xhq3hzfq.png
new file mode 100644
index 0000000..c39f57e
--- /dev/null
+++ b/Web/public/apple-touch-icon-xhq3hzfq.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:87682f5e9498f13a56d51b713f8c2e7d4c264248e9ae7be4468291fce2698773
+size 31227
diff --git a/Web/public/css/styles.css b/Web/public/css/styles.css
deleted file mode 100644
index befe6c2..0000000
--- a/Web/public/css/styles.css
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! tailwindcss v4.0.1 | MIT License | https://tailwindcss.com */
-@layer theme{:root,:host{--font-sans:"Geist",sans-serif;--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:"'Geist Mono'",monospace;--color-red-50:oklch(.971 .013 17.38);--color-red-100:oklch(.936 .032 17.717);--color-red-200:oklch(.885 .062 18.334);--color-red-300:oklch(.808 .114 19.571);--color-red-400:oklch(.704 .191 22.216);--color-red-500:oklch(.637 .237 25.331);--color-red-600:oklch(.577 .245 27.325);--color-red-700:oklch(.505 .213 27.518);--color-red-800:oklch(.444 .177 26.899);--color-red-900:oklch(.396 .141 25.723);--color-red-950:oklch(.258 .092 26.042);--color-orange-50:oklch(.98 .016 73.684);--color-orange-100:oklch(.954 .038 75.164);--color-orange-200:oklch(.901 .076 70.697);--color-orange-300:oklch(.837 .128 66.29);--color-orange-400:oklch(.75 .183 55.934);--color-orange-500:oklch(.705 .213 47.604);--color-orange-600:oklch(.646 .222 41.116);--color-orange-700:oklch(.553 .195 38.402);--color-orange-800:oklch(.47 .157 37.304);--color-orange-900:oklch(.408 .123 38.172);--color-orange-950:oklch(.266 .079 36.259);--color-amber-50:oklch(.987 .022 95.277);--color-amber-100:oklch(.962 .059 95.617);--color-amber-200:oklch(.924 .12 95.746);--color-amber-300:oklch(.879 .169 91.605);--color-amber-400:oklch(.828 .189 84.429);--color-amber-500:oklch(.769 .188 70.08);--color-amber-600:oklch(.666 .179 58.318);--color-amber-700:oklch(.555 .163 48.998);--color-amber-800:oklch(.473 .137 46.201);--color-amber-900:oklch(.414 .112 45.904);--color-amber-950:oklch(.279 .077 45.635);--color-yellow-50:oklch(.987 .026 102.212);--color-yellow-100:oklch(.973 .071 103.193);--color-yellow-200:oklch(.945 .129 101.54);--color-yellow-300:oklch(.905 .182 98.111);--color-yellow-400:oklch(.852 .199 91.936);--color-yellow-500:oklch(.795 .184 86.047);--color-yellow-600:oklch(.681 .162 75.834);--color-yellow-700:oklch(.554 .135 66.442);--color-yellow-800:oklch(.476 .114 61.907);--color-yellow-900:oklch(.421 .095 57.708);--color-yellow-950:oklch(.286 .066 53.813);--color-lime-50:oklch(.986 .031 120.757);--color-lime-100:oklch(.967 .067 122.328);--color-lime-200:oklch(.938 .127 124.321);--color-lime-300:oklch(.897 .196 126.665);--color-lime-400:oklch(.841 .238 128.85);--color-lime-500:oklch(.768 .233 130.85);--color-lime-600:oklch(.648 .2 131.684);--color-lime-700:oklch(.532 .157 131.589);--color-lime-800:oklch(.453 .124 130.933);--color-lime-900:oklch(.405 .101 131.063);--color-lime-950:oklch(.274 .072 132.109);--color-green-50:oklch(.982 .018 155.826);--color-green-100:oklch(.962 .044 156.743);--color-green-200:oklch(.925 .084 155.995);--color-green-300:oklch(.871 .15 154.449);--color-green-400:oklch(.792 .209 151.711);--color-green-500:oklch(.723 .219 149.579);--color-green-600:oklch(.627 .194 149.214);--color-green-700:oklch(.527 .154 150.069);--color-green-800:oklch(.448 .119 151.328);--color-green-900:oklch(.393 .095 152.535);--color-green-950:oklch(.266 .065 152.934);--color-emerald-50:oklch(.979 .021 166.113);--color-emerald-100:oklch(.95 .052 163.051);--color-emerald-200:oklch(.905 .093 164.15);--color-emerald-300:oklch(.845 .143 164.978);--color-emerald-400:oklch(.765 .177 163.223);--color-emerald-500:oklch(.696 .17 162.48);--color-emerald-600:oklch(.596 .145 163.225);--color-emerald-700:oklch(.508 .118 165.612);--color-emerald-800:oklch(.432 .095 166.913);--color-emerald-900:oklch(.378 .077 168.94);--color-emerald-950:oklch(.262 .051 172.552);--color-teal-50:oklch(.984 .014 180.72);--color-teal-100:oklch(.953 .051 180.801);--color-teal-200:oklch(.91 .096 180.426);--color-teal-300:oklch(.855 .138 181.071);--color-teal-400:oklch(.777 .152 181.912);--color-teal-500:oklch(.704 .14 182.503);--color-teal-600:oklch(.6 .118 184.704);--color-teal-700:oklch(.511 .096 186.391);--color-teal-800:oklch(.437 .078 188.216);--color-teal-900:oklch(.386 .063 188.416);--color-teal-950:oklch(.277 .046 192.524);--color-cyan-50:oklch(.984 .019 200.873);--color-cyan-100:oklch(.956 .045 203.388);--color-cyan-200:oklch(.917 .08 205.041);--color-cyan-300:oklch(.865 .127 207.078);--color-cyan-400:oklch(.789 .154 211.53);--color-cyan-500:oklch(.715 .143 215.221);--color-cyan-600:oklch(.609 .126 221.723);--color-cyan-700:oklch(.52 .105 223.128);--color-cyan-800:oklch(.45 .085 224.283);--color-cyan-900:oklch(.398 .07 227.392);--color-cyan-950:oklch(.302 .056 229.695);--color-sky-50:oklch(.977 .013 236.62);--color-sky-100:oklch(.951 .026 236.824);--color-sky-200:oklch(.901 .058 230.902);--color-sky-300:oklch(.828 .111 230.318);--color-sky-400:oklch(.746 .16 232.661);--color-sky-500:oklch(.685 .169 237.323);--color-sky-600:oklch(.588 .158 241.966);--color-sky-700:oklch(.5 .134 242.749);--color-sky-800:oklch(.443 .11 240.79);--color-sky-900:oklch(.391 .09 240.876);--color-sky-950:oklch(.293 .066 243.157);--color-blue-50:oklch(.97 .014 254.604);--color-blue-100:oklch(.932 .032 255.585);--color-blue-200:oklch(.882 .059 254.128);--color-blue-300:oklch(.809 .105 251.813);--color-blue-400:oklch(.707 .165 254.624);--color-blue-500:oklch(.623 .214 259.815);--color-blue-600:oklch(.546 .245 262.881);--color-blue-700:oklch(.488 .243 264.376);--color-blue-800:oklch(.424 .199 265.638);--color-blue-900:oklch(.379 .146 265.522);--color-blue-950:oklch(.282 .091 267.935);--color-indigo-50:oklch(.962 .018 272.314);--color-indigo-100:oklch(.93 .034 272.788);--color-indigo-200:oklch(.87 .065 274.039);--color-indigo-300:oklch(.785 .115 274.713);--color-indigo-400:oklch(.673 .182 276.935);--color-indigo-500:oklch(.585 .233 277.117);--color-indigo-600:oklch(.511 .262 276.966);--color-indigo-700:oklch(.457 .24 277.023);--color-indigo-800:oklch(.398 .195 277.366);--color-indigo-900:oklch(.359 .144 278.697);--color-indigo-950:oklch(.257 .09 281.288);--color-violet-50:oklch(.969 .016 293.756);--color-violet-100:oklch(.943 .029 294.588);--color-violet-200:oklch(.894 .057 293.283);--color-violet-300:oklch(.811 .111 293.571);--color-violet-400:oklch(.702 .183 293.541);--color-violet-500:oklch(.606 .25 292.717);--color-violet-600:oklch(.541 .281 293.009);--color-violet-700:oklch(.491 .27 292.581);--color-violet-800:oklch(.432 .232 292.759);--color-violet-900:oklch(.38 .189 293.745);--color-violet-950:oklch(.283 .141 291.089);--color-purple-50:oklch(.977 .014 308.299);--color-purple-100:oklch(.946 .033 307.174);--color-purple-200:oklch(.902 .063 306.703);--color-purple-300:oklch(.827 .119 306.383);--color-purple-400:oklch(.714 .203 305.504);--color-purple-500:oklch(.627 .265 303.9);--color-purple-600:oklch(.558 .288 302.321);--color-purple-700:oklch(.496 .265 301.924);--color-purple-800:oklch(.438 .218 303.724);--color-purple-900:oklch(.381 .176 304.987);--color-purple-950:oklch(.291 .149 302.717);--color-fuchsia-50:oklch(.977 .017 320.058);--color-fuchsia-100:oklch(.952 .037 318.852);--color-fuchsia-200:oklch(.903 .076 319.62);--color-fuchsia-300:oklch(.833 .145 321.434);--color-fuchsia-400:oklch(.74 .238 322.16);--color-fuchsia-500:oklch(.667 .295 322.15);--color-fuchsia-600:oklch(.591 .293 322.896);--color-fuchsia-700:oklch(.518 .253 323.949);--color-fuchsia-800:oklch(.452 .211 324.591);--color-fuchsia-900:oklch(.401 .17 325.612);--color-fuchsia-950:oklch(.293 .136 325.661);--color-pink-50:oklch(.971 .014 343.198);--color-pink-100:oklch(.948 .028 342.258);--color-pink-200:oklch(.899 .061 343.231);--color-pink-300:oklch(.823 .12 346.018);--color-pink-400:oklch(.718 .202 349.761);--color-pink-500:oklch(.656 .241 354.308);--color-pink-600:oklch(.592 .249 .584);--color-pink-700:oklch(.525 .223 3.958);--color-pink-800:oklch(.459 .187 3.815);--color-pink-900:oklch(.408 .153 2.432);--color-pink-950:oklch(.284 .109 3.907);--color-rose-50:oklch(.969 .015 12.422);--color-rose-100:oklch(.941 .03 12.58);--color-rose-200:oklch(.892 .058 10.001);--color-rose-300:oklch(.81 .117 11.638);--color-rose-400:oklch(.712 .194 13.428);--color-rose-500:oklch(.645 .246 16.439);--color-rose-600:oklch(.586 .253 17.585);--color-rose-700:oklch(.514 .222 16.935);--color-rose-800:oklch(.455 .188 13.697);--color-rose-900:oklch(.41 .159 10.272);--color-rose-950:oklch(.271 .105 12.094);--color-slate-50:oklch(.984 .003 247.858);--color-slate-100:oklch(.968 .007 247.896);--color-slate-200:oklch(.929 .013 255.508);--color-slate-300:oklch(.869 .022 252.894);--color-slate-400:oklch(.704 .04 256.788);--color-slate-500:oklch(.554 .046 257.417);--color-slate-600:oklch(.446 .043 257.281);--color-slate-700:oklch(.372 .044 257.287);--color-slate-800:oklch(.279 .041 260.031);--color-slate-900:oklch(.208 .042 265.755);--color-slate-950:oklch(.129 .042 264.695);--color-gray-50:oklch(.985 .002 247.839);--color-gray-100:oklch(.967 .003 264.542);--color-gray-200:oklch(.928 .006 264.531);--color-gray-300:oklch(.872 .01 258.338);--color-gray-400:oklch(.707 .022 261.325);--color-gray-500:oklch(.551 .027 264.364);--color-gray-600:oklch(.446 .03 256.802);--color-gray-700:oklch(.373 .034 259.733);--color-gray-800:oklch(.278 .033 256.848);--color-gray-900:oklch(.21 .034 264.665);--color-gray-950:oklch(.13 .028 261.692);--color-zinc-50:oklch(.985 0 0);--color-zinc-100:oklch(.967 .001 286.375);--color-zinc-200:oklch(.92 .004 286.32);--color-zinc-300:oklch(.871 .006 286.286);--color-zinc-400:oklch(.705 .015 286.067);--color-zinc-500:oklch(.552 .016 285.938);--color-zinc-600:oklch(.442 .017 285.786);--color-zinc-700:oklch(.37 .013 285.805);--color-zinc-800:oklch(.274 .006 286.033);--color-zinc-900:oklch(.21 .006 285.885);--color-zinc-950:oklch(.141 .005 285.823);--color-neutral-50:oklch(.985 0 0);--color-neutral-100:oklch(.97 0 0);--color-neutral-200:oklch(.922 0 0);--color-neutral-300:oklch(.87 0 0);--color-neutral-400:oklch(.708 0 0);--color-neutral-500:oklch(.556 0 0);--color-neutral-600:oklch(.439 0 0);--color-neutral-700:oklch(.371 0 0);--color-neutral-800:oklch(.269 0 0);--color-neutral-900:oklch(.205 0 0);--color-neutral-950:oklch(.145 0 0);--color-stone-50:oklch(.985 .001 106.423);--color-stone-100:oklch(.97 .001 106.424);--color-stone-200:oklch(.923 .003 48.717);--color-stone-300:oklch(.869 .005 56.366);--color-stone-400:oklch(.709 .01 56.259);--color-stone-500:oklch(.553 .013 58.071);--color-stone-600:oklch(.444 .011 73.639);--color-stone-700:oklch(.374 .01 67.558);--color-stone-800:oklch(.268 .007 34.298);--color-stone-900:oklch(.216 .006 56.043);--color-stone-950:oklch(.147 .004 49.25);--color-black:#000;--color-white:#fff;--spacing:.25rem;--breakpoint-sm:40rem;--breakpoint-md:48rem;--breakpoint-lg:64rem;--breakpoint-xl:80rem;--breakpoint-2xl:96rem;--container-3xs:16rem;--container-2xs:18rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--text-9xl:8rem;--text-9xl--line-height:1;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:2;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-4xl:2rem;--shadow-2xs:0 1px #0000000d;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--shadow-2xl:0 25px 50px -12px #00000040;--inset-shadow-2xs:inset 0 1px #0000000d;--inset-shadow-xs:inset 0 1px 1px #0000000d;--inset-shadow-sm:inset 0 2px 4px #0000000d;--drop-shadow-xs:0 1px 1px #0000000d;--drop-shadow-sm:0 1px 2px #00000026;--drop-shadow-md:0 3px 3px #0000001f;--drop-shadow-lg:0 4px 4px #00000026;--drop-shadow-xl:0 9px 7px #0000001a;--drop-shadow-2xl:0 25px 25px #00000026;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--animate-bounce:bounce 1s infinite;--blur-xs:4px;--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--blur-2xl:40px;--blur-3xl:64px;--perspective-dramatic:100px;--perspective-near:300px;--perspective-normal:500px;--perspective-midrange:800px;--perspective-distant:1200px;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-font-feature-settings:var(--font-sans--font-feature-settings);--default-font-variation-settings:var(--font-sans--font-variation-settings);--default-mono-font-family:var(--font-mono);--default-mono-font-feature-settings:var(--font-mono--font-feature-settings);--default-mono-font-variation-settings:var(--font-mono--font-variation-settings)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1;color:color-mix(in oklab,currentColor 50%,transparent)}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.my-20{margin-block:calc(var(--spacing)*20)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mr-2{margin-right:calc(var(--spacing)*2)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.aspect-square{aspect-ratio:1}.\!h-\[2\.5rem\]{height:2.5rem!important}.\!h-\[90svh\]{height:90svh!important}.\!h-\[90vh\]{height:90vh!important}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-\[2\.5rem\]{height:2.5rem}.h-\[31svw\]{height:31svw}.h-\[31vw\]{height:31vw}.h-\[90svh\]{height:90svh}.h-\[90vh\]{height:90vh}.h-auto{height:auto}.h-screen{height:100vh}.min-h-\[85vh\]{min-height:85vh}.w-4{width:calc(var(--spacing)*4)}.w-6{width:calc(var(--spacing)*6)}.w-80{width:calc(var(--spacing)*80)}.w-\[25svw\]{width:25svw}.w-\[25vw\]{width:25vw}.w-full{width:100%}.w-screen{width:100vw}.min-w-fit{min-width:fit-content}.flex-1{flex:1}.flex-none{flex:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-2{gap:calc(var(--spacing)*2)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.\!rounded-md{border-radius:var(--radius-md)!important}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-blue-400{border-color:var(--color-blue-400)}.border-green-400{border-color:var(--color-green-400)}.border-red-400{border-color:var(--color-red-400)}.border-yellow-400{border-color:var(--color-yellow-400)}.\!bg-\[hsl\(var\(--muted\)\)\]\/75{background-color:color-mix(in oklab,hsl(var(--muted))75%,transparent)!important}.bg-\[hsl\(var\(--foreground\)\)\]\/70{background-color:color-mix(in oklab,hsl(var(--foreground))70%,transparent)}.bg-zinc-900{background-color:var(--color-zinc-900)}.object-cover{object-fit:cover}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.p-10{padding:calc(var(--spacing)*10)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-6{padding-block:calc(var(--spacing)*6)}.text-center{text-align:center}.\!text-6xl{font-size:var(--text-6xl)!important;line-height:var(--tw-leading,var(--text-6xl--line-height))!important}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-\[hsl\(var\(--background\)\)\]{color:hsl(var(--background))}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.\!backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg))!important;-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)!important;backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)!important}.\!backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md))!important;-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)!important;backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)!important}@media (width<48rem){.max-md\:hidden{display:none}}@media (width>=48rem){.md\:w-\[30vw\]{width:30vw}}@media (width>=64rem){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:flex{display:flex}.lg\:flex-row{flex-direction:row}}@media (width>=80rem){.xl\:grid{display:grid}}@media (prefers-color-scheme:dark){.dark\:bg-\[hsl\(var\(--background\)\)\]\/60{background-color:color-mix(in oklab,hsl(var(--background))60%,transparent)}.dark\:text-\[hsl\(var\(--foreground\)\)\]{color:hsl(var(--foreground))}}}:root{font-feature-settings:"liga" 1,"calt" 1;font-family:Geist,sans-serif}@media (width<=768px){.uk-subnav>*>:first-child{padding-left:.5rem!important;padding-right:.5rem!important}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
\ No newline at end of file
diff --git a/Web/public/css/styles.src.css b/Web/public/css/styles.src.css
deleted file mode 100644
index e0ce4ed..0000000
--- a/Web/public/css/styles.src.css
+++ /dev/null
@@ -1,18 +0,0 @@
-@import "tailwindcss";
-
-@import url("https://fonts.googleapis.com/css2?family=Geist+Mono:wght@100..900&family=Geist:wght@100..900&display=swap");
-@theme {
- --font-sans: "Geist", sans-serif;
- --font-mono: "'Geist Mono'", monospace;
-}
-:root {
- font-family: Geist, sans-serif;
- font-feature-settings: "liga" 1, "calt" 1; /* fix for Chrome */
-}
-
-@media (max-width: 768px) {
- .uk-subnav > * > :first-child {
- padding-left: 0.5rem !important;
- padding-right: 0.5rem !important;
- }
-}
diff --git a/Web/public/favicon-16x16-6gdgm8kp.png b/Web/public/favicon-16x16-6gdgm8kp.png
new file mode 100644
index 0000000..dc0dfba
--- /dev/null
+++ b/Web/public/favicon-16x16-6gdgm8kp.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:200b0417a8ef894453cb434104540feefa7eea3e3ae01b9f262a2058521bb580
+size 795
diff --git a/Web/public/favicon-32x32-sqpfcyy0.png b/Web/public/favicon-32x32-sqpfcyy0.png
new file mode 100644
index 0000000..368fdc4
--- /dev/null
+++ b/Web/public/favicon-32x32-sqpfcyy0.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:75eb2dd80ebed66b2a008dca4cb70b7622e559d86e3d9cb4e1ed885c43586f20
+size 1890
diff --git a/Web/public/favicon-4nk2rrtb.ico b/Web/public/favicon-4nk2rrtb.ico
new file mode 100644
index 0000000..44fb810
Binary files /dev/null and b/Web/public/favicon-4nk2rrtb.ico differ
diff --git a/Web/public/index-2fc1d355.js b/Web/public/index-2fc1d355.js
new file mode 100644
index 0000000..a49926f
--- /dev/null
+++ b/Web/public/index-2fc1d355.js
@@ -0,0 +1,8423 @@
+var __create = Object.create;
+var __getProtoOf = Object.getPrototypeOf;
+var __defProp = Object.defineProperty;
+var __getOwnPropNames = Object.getOwnPropertyNames;
+var __hasOwnProp = Object.prototype.hasOwnProperty;
+var __toESM = (mod, isNodeMode, target) => {
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
+ for (let key of __getOwnPropNames(mod))
+ if (!__hasOwnProp.call(to, key))
+ __defProp(to, key, {
+ get: () => mod[key],
+ enumerable: true
+ });
+ return to;
+};
+var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
+
+// node_modules/franken-ui/dist/js/core.iife.js
+var require_core_iife = __commonJS((exports, module) => {
+ var FRANKENUICORE = function(E) {
+ var Dr;
+ const Qi = globalThis, ts = Qi.ShadowRoot && (Qi.ShadyCSS === undefined || Qi.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, Bs = Symbol(), Xn = new WeakMap;
+ let js = class {
+ constructor(n, a, h) {
+ if (this._$cssResult$ = true, h !== Bs)
+ throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
+ this.cssText = n, this.t = a;
+ }
+ get styleSheet() {
+ let n = this.o;
+ const a = this.t;
+ if (ts && n === undefined) {
+ const h = a !== undefined && a.length === 1;
+ h && (n = Xn.get(a)), n === undefined && ((this.o = n = new CSSStyleSheet).replaceSync(this.cssText), h && Xn.set(a, n));
+ }
+ return n;
+ }
+ toString() {
+ return this.cssText;
+ }
+ };
+ const Qn = (f) => new js(typeof f == "string" ? f : f + "", undefined, Bs), Wa = (f, ...n) => {
+ const a = f.length === 1 ? f[0] : n.reduce((h, c, m) => h + ((p) => {
+ if (p._$cssResult$ === true)
+ return p.cssText;
+ if (typeof p == "number")
+ return p;
+ throw Error("Value passed to 'css' function must be a 'css' function result: " + p + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.");
+ })(c) + f[m + 1], f[0]);
+ return new js(a, f, Bs);
+ }, tr = (f, n) => {
+ if (ts)
+ f.adoptedStyleSheets = n.map((a) => a instanceof CSSStyleSheet ? a : a.styleSheet);
+ else
+ for (const a of n) {
+ const h = document.createElement("style"), c = Qi.litNonce;
+ c !== undefined && h.setAttribute("nonce", c), h.textContent = a.cssText, f.appendChild(h);
+ }
+ }, Rs = ts ? (f) => f : (f) => f instanceof CSSStyleSheet ? ((n) => {
+ let a = "";
+ for (const h of n.cssRules)
+ a += h.cssText;
+ return Qn(a);
+ })(f) : f;
+ const { is: qa, defineProperty: Ya, getOwnPropertyDescriptor: Va, getOwnPropertyNames: Ja, getOwnPropertySymbols: Ka, getPrototypeOf: Ga } = Object, ge = globalThis, er = ge.trustedTypes, Za = er ? er.emptyScript : "", zs = ge.reactiveElementPolyfillSupport, bi = (f, n) => f, yi = { toAttribute(f, n) {
+ switch (n) {
+ case Boolean:
+ f = f ? Za : null;
+ break;
+ case Object:
+ case Array:
+ f = f == null ? f : JSON.stringify(f);
+ }
+ return f;
+ }, fromAttribute(f, n) {
+ let a = f;
+ switch (n) {
+ case Boolean:
+ a = f !== null;
+ break;
+ case Number:
+ a = f === null ? null : Number(f);
+ break;
+ case Object:
+ case Array:
+ try {
+ a = JSON.parse(f);
+ } catch {
+ a = null;
+ }
+ }
+ return a;
+ } }, es = (f, n) => !qa(f, n), ir = { attribute: true, type: String, converter: yi, reflect: false, hasChanged: es };
+ Symbol.metadata ?? (Symbol.metadata = Symbol("metadata")), ge.litPropertyMetadata ?? (ge.litPropertyMetadata = new WeakMap);
+ let Ae = class extends HTMLElement {
+ static addInitializer(n) {
+ this._$Ei(), (this.l ?? (this.l = [])).push(n);
+ }
+ static get observedAttributes() {
+ return this.finalize(), this._$Eh && [...this._$Eh.keys()];
+ }
+ static createProperty(n, a = ir) {
+ if (a.state && (a.attribute = false), this._$Ei(), this.elementProperties.set(n, a), !a.noAccessor) {
+ const h = Symbol(), c = this.getPropertyDescriptor(n, h, a);
+ c !== undefined && Ya(this.prototype, n, c);
+ }
+ }
+ static getPropertyDescriptor(n, a, h) {
+ const { get: c, set: m } = Va(this.prototype, n) ?? { get() {
+ return this[a];
+ }, set(p) {
+ this[a] = p;
+ } };
+ return { get() {
+ return c == null ? undefined : c.call(this);
+ }, set(p) {
+ const k = c == null ? undefined : c.call(this);
+ m.call(this, p), this.requestUpdate(n, k, h);
+ }, configurable: true, enumerable: true };
+ }
+ static getPropertyOptions(n) {
+ return this.elementProperties.get(n) ?? ir;
+ }
+ static _$Ei() {
+ if (this.hasOwnProperty(bi("elementProperties")))
+ return;
+ const n = Ga(this);
+ n.finalize(), n.l !== undefined && (this.l = [...n.l]), this.elementProperties = new Map(n.elementProperties);
+ }
+ static finalize() {
+ if (this.hasOwnProperty(bi("finalized")))
+ return;
+ if (this.finalized = true, this._$Ei(), this.hasOwnProperty(bi("properties"))) {
+ const a = this.properties, h = [...Ja(a), ...Ka(a)];
+ for (const c of h)
+ this.createProperty(c, a[c]);
+ }
+ const n = this[Symbol.metadata];
+ if (n !== null) {
+ const a = litPropertyMetadata.get(n);
+ if (a !== undefined)
+ for (const [h, c] of a)
+ this.elementProperties.set(h, c);
+ }
+ this._$Eh = new Map;
+ for (const [a, h] of this.elementProperties) {
+ const c = this._$Eu(a, h);
+ c !== undefined && this._$Eh.set(c, a);
+ }
+ this.elementStyles = this.finalizeStyles(this.styles);
+ }
+ static finalizeStyles(n) {
+ const a = [];
+ if (Array.isArray(n)) {
+ const h = new Set(n.flat(1 / 0).reverse());
+ for (const c of h)
+ a.unshift(Rs(c));
+ } else
+ n !== undefined && a.push(Rs(n));
+ return a;
+ }
+ static _$Eu(n, a) {
+ const h = a.attribute;
+ return h === false ? undefined : typeof h == "string" ? h : typeof n == "string" ? n.toLowerCase() : undefined;
+ }
+ constructor() {
+ super(), this._$Ep = undefined, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev();
+ }
+ _$Ev() {
+ var n;
+ this._$ES = new Promise((a) => this.enableUpdating = a), this._$AL = new Map, this._$E_(), this.requestUpdate(), (n = this.constructor.l) == null || n.forEach((a) => a(this));
+ }
+ addController(n) {
+ var a;
+ (this._$EO ?? (this._$EO = new Set)).add(n), this.renderRoot !== undefined && this.isConnected && ((a = n.hostConnected) == null || a.call(n));
+ }
+ removeController(n) {
+ var a;
+ (a = this._$EO) == null || a.delete(n);
+ }
+ _$E_() {
+ const n = new Map, a = this.constructor.elementProperties;
+ for (const h of a.keys())
+ this.hasOwnProperty(h) && (n.set(h, this[h]), delete this[h]);
+ n.size > 0 && (this._$Ep = n);
+ }
+ createRenderRoot() {
+ const n = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
+ return tr(n, this.constructor.elementStyles), n;
+ }
+ connectedCallback() {
+ var n;
+ this.renderRoot ?? (this.renderRoot = this.createRenderRoot()), this.enableUpdating(true), (n = this._$EO) == null || n.forEach((a) => {
+ var h;
+ return (h = a.hostConnected) == null ? undefined : h.call(a);
+ });
+ }
+ enableUpdating(n) {
+ }
+ disconnectedCallback() {
+ var n;
+ (n = this._$EO) == null || n.forEach((a) => {
+ var h;
+ return (h = a.hostDisconnected) == null ? undefined : h.call(a);
+ });
+ }
+ attributeChangedCallback(n, a, h) {
+ this._$AK(n, h);
+ }
+ _$EC(n, a) {
+ var m;
+ const h = this.constructor.elementProperties.get(n), c = this.constructor._$Eu(n, h);
+ if (c !== undefined && h.reflect === true) {
+ const p = (((m = h.converter) == null ? undefined : m.toAttribute) !== undefined ? h.converter : yi).toAttribute(a, h.type);
+ this._$Em = n, p == null ? this.removeAttribute(c) : this.setAttribute(c, p), this._$Em = null;
+ }
+ }
+ _$AK(n, a) {
+ var m;
+ const h = this.constructor, c = h._$Eh.get(n);
+ if (c !== undefined && this._$Em !== c) {
+ const p = h.getPropertyOptions(c), k = typeof p.converter == "function" ? { fromAttribute: p.converter } : ((m = p.converter) == null ? undefined : m.fromAttribute) !== undefined ? p.converter : yi;
+ this._$Em = c, this[c] = k.fromAttribute(a, p.type), this._$Em = null;
+ }
+ }
+ requestUpdate(n, a, h) {
+ if (n !== undefined) {
+ if (h ?? (h = this.constructor.getPropertyOptions(n)), !(h.hasChanged ?? es)(this[n], a))
+ return;
+ this.P(n, a, h);
+ }
+ this.isUpdatePending === false && (this._$ES = this._$ET());
+ }
+ P(n, a, h) {
+ this._$AL.has(n) || this._$AL.set(n, a), h.reflect === true && this._$Em !== n && (this._$Ej ?? (this._$Ej = new Set)).add(n);
+ }
+ async _$ET() {
+ this.isUpdatePending = true;
+ try {
+ await this._$ES;
+ } catch (a) {
+ Promise.reject(a);
+ }
+ const n = this.scheduleUpdate();
+ return n != null && await n, !this.isUpdatePending;
+ }
+ scheduleUpdate() {
+ return this.performUpdate();
+ }
+ performUpdate() {
+ var h;
+ if (!this.isUpdatePending)
+ return;
+ if (!this.hasUpdated) {
+ if (this.renderRoot ?? (this.renderRoot = this.createRenderRoot()), this._$Ep) {
+ for (const [m, p] of this._$Ep)
+ this[m] = p;
+ this._$Ep = undefined;
+ }
+ const c = this.constructor.elementProperties;
+ if (c.size > 0)
+ for (const [m, p] of c)
+ p.wrapped !== true || this._$AL.has(m) || this[m] === undefined || this.P(m, this[m], p);
+ }
+ let n = false;
+ const a = this._$AL;
+ try {
+ n = this.shouldUpdate(a), n ? (this.willUpdate(a), (h = this._$EO) == null || h.forEach((c) => {
+ var m;
+ return (m = c.hostUpdate) == null ? undefined : m.call(c);
+ }), this.update(a)) : this._$EU();
+ } catch (c) {
+ throw n = false, this._$EU(), c;
+ }
+ n && this._$AE(a);
+ }
+ willUpdate(n) {
+ }
+ _$AE(n) {
+ var a;
+ (a = this._$EO) == null || a.forEach((h) => {
+ var c;
+ return (c = h.hostUpdated) == null ? undefined : c.call(h);
+ }), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(n)), this.updated(n);
+ }
+ _$EU() {
+ this._$AL = new Map, this.isUpdatePending = false;
+ }
+ get updateComplete() {
+ return this.getUpdateComplete();
+ }
+ getUpdateComplete() {
+ return this._$ES;
+ }
+ shouldUpdate(n) {
+ return true;
+ }
+ update(n) {
+ this._$Ej && (this._$Ej = this._$Ej.forEach((a) => this._$EC(a, this[a]))), this._$EU();
+ }
+ updated(n) {
+ }
+ firstUpdated(n) {
+ }
+ };
+ Ae.elementStyles = [], Ae.shadowRootOptions = { mode: "open" }, Ae[bi("elementProperties")] = new Map, Ae[bi("finalized")] = new Map, zs == null || zs({ ReactiveElement: Ae }), (ge.reactiveElementVersions ?? (ge.reactiveElementVersions = [])).push("2.0.4");
+ const wi = globalThis, is = wi.trustedTypes, sr = is ? is.createPolicy("lit-html", { createHTML: (f) => f }) : undefined, Us = "$lit$", ne = `lit$${Math.random().toFixed(9).slice(2)}$`, Fs = "?" + ne, Xa = `<${Fs}>`, Ee = document, ki = () => Ee.createComment(""), xi = (f) => f === null || typeof f != "object" && typeof f != "function", nr = Array.isArray, rr = (f) => nr(f) || typeof (f == null ? undefined : f[Symbol.iterator]) == "function", Ws = `[
+\f\r]`, Si = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, or = /-->/g, ar = />/g, Ie = RegExp(`>|${Ws}(?:([^\\s"'>=/]+)(${Ws}*=${Ws}*(?:[^
+\f\r"'\`<>=]|("|')|))|$)`, "g"), lr = /'/g, cr = /"/g, hr = /^(?:script|style|textarea|title)$/i, ur = (f) => (n, ...a) => ({ _$litType$: f, strings: n, values: a }), z = ur(1), Qa = ur(2), re = Symbol.for("lit-noChange"), yt = Symbol.for("lit-nothing"), dr = new WeakMap, Ce = Ee.createTreeWalker(Ee, 129);
+ function fr(f, n) {
+ if (!Array.isArray(f) || !f.hasOwnProperty("raw"))
+ throw Error("invalid template strings array");
+ return sr !== undefined ? sr.createHTML(n) : n;
+ }
+ const pr = (f, n) => {
+ const a = f.length - 1, h = [];
+ let c, m = n === 2 ? "" : "")), h];
+ };
+
+ class _i {
+ constructor({ strings: n, _$litType$: a }, h) {
+ let c;
+ this.parts = [];
+ let m = 0, p = 0;
+ const k = n.length - 1, w = this.parts, [C, b] = pr(n, a);
+ if (this.el = _i.createElement(C, h), Ce.currentNode = this.el.content, a === 2) {
+ const I = this.el.content.firstChild;
+ I.replaceWith(...I.childNodes);
+ }
+ for (;(c = Ce.nextNode()) !== null && w.length < k; ) {
+ if (c.nodeType === 1) {
+ if (c.hasAttributes())
+ for (const I of c.getAttributeNames())
+ if (I.endsWith(Us)) {
+ const P = b[p++], N = c.getAttribute(I).split(ne), Y = /([.?@])?(.*)/.exec(P);
+ w.push({ type: 1, index: m, name: Y[2], strings: N, ctor: Y[1] === "." ? gr : Y[1] === "?" ? vr : Y[1] === "@" ? $r : Ai }), c.removeAttribute(I);
+ } else
+ I.startsWith(ne) && (w.push({ type: 6, index: m }), c.removeAttribute(I));
+ if (hr.test(c.tagName)) {
+ const I = c.textContent.split(ne), P = I.length - 1;
+ if (P > 0) {
+ c.textContent = is ? is.emptyScript : "";
+ for (let N = 0;N < P; N++)
+ c.append(I[N], ki()), Ce.nextNode(), w.push({ type: 2, index: ++m });
+ c.append(I[P], ki());
+ }
+ }
+ } else if (c.nodeType === 8)
+ if (c.data === Fs)
+ w.push({ type: 2, index: m });
+ else {
+ let I = -1;
+ for (;(I = c.data.indexOf(ne, I + 1)) !== -1; )
+ w.push({ type: 7, index: m }), I += ne.length - 1;
+ }
+ m++;
+ }
+ }
+ static createElement(n, a) {
+ const h = Ee.createElement("template");
+ return h.innerHTML = n, h;
+ }
+ }
+ function Te(f, n, a = f, h) {
+ var p, k;
+ if (n === re)
+ return n;
+ let c = h !== undefined ? (p = a._$Co) == null ? undefined : p[h] : a._$Cl;
+ const m = xi(n) ? undefined : n._$litDirective$;
+ return (c == null ? undefined : c.constructor) !== m && ((k = c == null ? undefined : c._$AO) == null || k.call(c, false), m === undefined ? c = undefined : (c = new m(f), c._$AT(f, a, h)), h !== undefined ? (a._$Co ?? (a._$Co = []))[h] = c : a._$Cl = c), c !== undefined && (n = Te(f, c._$AS(f, n.values), c, h)), n;
+ }
+
+ class mr {
+ constructor(n, a) {
+ this._$AV = [], this._$AN = undefined, this._$AD = n, this._$AM = a;
+ }
+ get parentNode() {
+ return this._$AM.parentNode;
+ }
+ get _$AU() {
+ return this._$AM._$AU;
+ }
+ u(n) {
+ const { el: { content: a }, parts: h } = this._$AD, c = ((n == null ? undefined : n.creationScope) ?? Ee).importNode(a, true);
+ Ce.currentNode = c;
+ let m = Ce.nextNode(), p = 0, k = 0, w = h[0];
+ for (;w !== undefined; ) {
+ if (p === w.index) {
+ let C;
+ w.type === 2 ? C = new Ge(m, m.nextSibling, this, n) : w.type === 1 ? C = new w.ctor(m, w.name, w.strings, this, n) : w.type === 6 && (C = new br(m, this, n)), this._$AV.push(C), w = h[++k];
+ }
+ p !== (w == null ? undefined : w.index) && (m = Ce.nextNode(), p++);
+ }
+ return Ce.currentNode = Ee, c;
+ }
+ p(n) {
+ let a = 0;
+ for (const h of this._$AV)
+ h !== undefined && (h.strings !== undefined ? (h._$AI(n, h, a), a += h.strings.length - 2) : h._$AI(n[a])), a++;
+ }
+ }
+
+ class Ge {
+ get _$AU() {
+ var n;
+ return ((n = this._$AM) == null ? undefined : n._$AU) ?? this._$Cv;
+ }
+ constructor(n, a, h, c) {
+ this.type = 2, this._$AH = yt, this._$AN = undefined, this._$AA = n, this._$AB = a, this._$AM = h, this.options = c, this._$Cv = (c == null ? undefined : c.isConnected) ?? true;
+ }
+ get parentNode() {
+ let n = this._$AA.parentNode;
+ const a = this._$AM;
+ return a !== undefined && (n == null ? undefined : n.nodeType) === 11 && (n = a.parentNode), n;
+ }
+ get startNode() {
+ return this._$AA;
+ }
+ get endNode() {
+ return this._$AB;
+ }
+ _$AI(n, a = this) {
+ n = Te(this, n, a), xi(n) ? n === yt || n == null || n === "" ? (this._$AH !== yt && this._$AR(), this._$AH = yt) : n !== this._$AH && n !== re && this._(n) : n._$litType$ !== undefined ? this.$(n) : n.nodeType !== undefined ? this.T(n) : rr(n) ? this.k(n) : this._(n);
+ }
+ S(n) {
+ return this._$AA.parentNode.insertBefore(n, this._$AB);
+ }
+ T(n) {
+ this._$AH !== n && (this._$AR(), this._$AH = this.S(n));
+ }
+ _(n) {
+ this._$AH !== yt && xi(this._$AH) ? this._$AA.nextSibling.data = n : this.T(Ee.createTextNode(n)), this._$AH = n;
+ }
+ $(n) {
+ var m;
+ const { values: a, _$litType$: h } = n, c = typeof h == "number" ? this._$AC(n) : (h.el === undefined && (h.el = _i.createElement(fr(h.h, h.h[0]), this.options)), h);
+ if (((m = this._$AH) == null ? undefined : m._$AD) === c)
+ this._$AH.p(a);
+ else {
+ const p = new mr(c, this), k = p.u(this.options);
+ p.p(a), this.T(k), this._$AH = p;
+ }
+ }
+ _$AC(n) {
+ let a = dr.get(n.strings);
+ return a === undefined && dr.set(n.strings, a = new _i(n)), a;
+ }
+ k(n) {
+ nr(this._$AH) || (this._$AH = [], this._$AR());
+ const a = this._$AH;
+ let h, c = 0;
+ for (const m of n)
+ c === a.length ? a.push(h = new Ge(this.S(ki()), this.S(ki()), this, this.options)) : h = a[c], h._$AI(m), c++;
+ c < a.length && (this._$AR(h && h._$AB.nextSibling, c), a.length = c);
+ }
+ _$AR(n = this._$AA.nextSibling, a) {
+ var h;
+ for ((h = this._$AP) == null ? undefined : h.call(this, false, true, a);n && n !== this._$AB; ) {
+ const c = n.nextSibling;
+ n.remove(), n = c;
+ }
+ }
+ setConnected(n) {
+ var a;
+ this._$AM === undefined && (this._$Cv = n, (a = this._$AP) == null || a.call(this, n));
+ }
+ }
+
+ class Ai {
+ get tagName() {
+ return this.element.tagName;
+ }
+ get _$AU() {
+ return this._$AM._$AU;
+ }
+ constructor(n, a, h, c, m) {
+ this.type = 1, this._$AH = yt, this._$AN = undefined, this.element = n, this.name = a, this._$AM = c, this.options = m, h.length > 2 || h[0] !== "" || h[1] !== "" ? (this._$AH = Array(h.length - 1).fill(new String), this.strings = h) : this._$AH = yt;
+ }
+ _$AI(n, a = this, h, c) {
+ const m = this.strings;
+ let p = false;
+ if (m === undefined)
+ n = Te(this, n, a, 0), p = !xi(n) || n !== this._$AH && n !== re, p && (this._$AH = n);
+ else {
+ const k = n;
+ let w, C;
+ for (n = m[0], w = 0;w < m.length - 1; w++)
+ C = Te(this, k[h + w], a, w), C === re && (C = this._$AH[w]), p || (p = !xi(C) || C !== this._$AH[w]), C === yt ? n = yt : n !== yt && (n += (C ?? "") + m[w + 1]), this._$AH[w] = C;
+ }
+ p && !c && this.j(n);
+ }
+ j(n) {
+ n === yt ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, n ?? "");
+ }
+ }
+
+ class gr extends Ai {
+ constructor() {
+ super(...arguments), this.type = 3;
+ }
+ j(n) {
+ this.element[this.name] = n === yt ? undefined : n;
+ }
+ }
+
+ class vr extends Ai {
+ constructor() {
+ super(...arguments), this.type = 4;
+ }
+ j(n) {
+ this.element.toggleAttribute(this.name, !!n && n !== yt);
+ }
+ }
+
+ class $r extends Ai {
+ constructor(n, a, h, c, m) {
+ super(n, a, h, c, m), this.type = 5;
+ }
+ _$AI(n, a = this) {
+ if ((n = Te(this, n, a, 0) ?? yt) === re)
+ return;
+ const h = this._$AH, c = n === yt && h !== yt || n.capture !== h.capture || n.once !== h.once || n.passive !== h.passive, m = n !== yt && (h === yt || c);
+ c && this.element.removeEventListener(this.name, this, h), m && this.element.addEventListener(this.name, this, n), this._$AH = n;
+ }
+ handleEvent(n) {
+ var a;
+ typeof this._$AH == "function" ? this._$AH.call(((a = this.options) == null ? undefined : a.host) ?? this.element, n) : this._$AH.handleEvent(n);
+ }
+ }
+
+ class br {
+ constructor(n, a, h) {
+ this.element = n, this.type = 6, this._$AN = undefined, this._$AM = a, this.options = h;
+ }
+ get _$AU() {
+ return this._$AM._$AU;
+ }
+ _$AI(n) {
+ Te(this, n);
+ }
+ }
+ const yr = { P: Us, A: ne, C: Fs, M: 1, L: pr, R: mr, D: rr, V: Te, I: Ge, H: Ai, N: vr, U: $r, B: gr, F: br }, qs = wi.litHtmlPolyfillSupport;
+ qs == null || qs(_i, Ge), (wi.litHtmlVersions ?? (wi.litHtmlVersions = [])).push("3.1.4");
+ const wr = (f, n, a) => {
+ const h = (a == null ? undefined : a.renderBefore) ?? n;
+ let c = h._$litPart$;
+ if (c === undefined) {
+ const m = (a == null ? undefined : a.renderBefore) ?? null;
+ h._$litPart$ = c = new Ge(n.insertBefore(ki(), m), m, undefined, a ?? {});
+ }
+ return c._$AI(f), c;
+ };
+ let Oe = class extends Ae {
+ constructor() {
+ super(...arguments), this.renderOptions = { host: this }, this._$Do = undefined;
+ }
+ createRenderRoot() {
+ var a;
+ const n = super.createRenderRoot();
+ return (a = this.renderOptions).renderBefore ?? (a.renderBefore = n.firstChild), n;
+ }
+ update(n) {
+ const a = this.render();
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(n), this._$Do = wr(a, this.renderRoot, this.renderOptions);
+ }
+ connectedCallback() {
+ var n;
+ super.connectedCallback(), (n = this._$Do) == null || n.setConnected(true);
+ }
+ disconnectedCallback() {
+ var n;
+ super.disconnectedCallback(), (n = this._$Do) == null || n.setConnected(false);
+ }
+ render() {
+ return re;
+ }
+ };
+ Oe._$litElement$ = true, Oe.finalized = true, (Dr = globalThis.litElementHydrateSupport) == null || Dr.call(globalThis, { LitElement: Oe });
+ const Ys = globalThis.litElementPolyfillSupport;
+ Ys == null || Ys({ LitElement: Oe });
+ const tl = { _$AK: (f, n, a) => {
+ f._$AK(n, a);
+ }, _$AL: (f) => f._$AL };
+ (globalThis.litElementVersions ?? (globalThis.litElementVersions = [])).push("4.0.6");
+ const el = Object.freeze(Object.defineProperty({ __proto__: null, CSSResult: js, LitElement: Oe, ReactiveElement: Ae, _$LE: tl, _$LH: yr, adoptStyles: tr, css: Wa, defaultConverter: yi, getCompatibleStyle: Rs, html: z, isServer: false, noChange: re, notEqual: es, nothing: yt, render: wr, supportsAdoptingStyleSheets: ts, svg: Qa, unsafeCSS: Qn }, Symbol.toStringTag, { value: "Module" }));
+ const oe = (f) => (n, a) => {
+ a !== undefined ? a.addInitializer(() => {
+ customElements.define(f, n);
+ }) : customElements.define(f, n);
+ };
+ const il = { attribute: true, type: String, converter: yi, reflect: false, hasChanged: es }, kr = (f = il, n, a) => {
+ const { kind: h, metadata: c } = a;
+ let m = globalThis.litPropertyMetadata.get(c);
+ if (m === undefined && globalThis.litPropertyMetadata.set(c, m = new Map), m.set(a.name, f), h === "accessor") {
+ const { name: p } = a;
+ return { set(k) {
+ const w = n.get.call(this);
+ n.set.call(this, k), this.requestUpdate(p, w, f);
+ }, init(k) {
+ return k !== undefined && this.P(p, undefined, f), k;
+ } };
+ }
+ if (h === "setter") {
+ const { name: p } = a;
+ return function(k) {
+ const w = this[p];
+ n.call(this, k), this.requestUpdate(p, w, f);
+ };
+ }
+ throw Error("Unsupported decorator location: " + h);
+ };
+ function j(f) {
+ return (n, a) => typeof a == "object" ? kr(f, n, a) : ((h, c, m) => {
+ const p = c.hasOwnProperty(m);
+ return c.constructor.createProperty(m, p ? { ...h, wrapped: true } : h), p ? Object.getOwnPropertyDescriptor(c, m) : undefined;
+ })(f, n, a);
+ }
+ function X(f) {
+ return j({ ...f, state: true, attribute: false });
+ }
+ function sl(f) {
+ return (n, a) => {
+ const h = typeof n == "function" ? n : n[a];
+ Object.assign(h, f);
+ };
+ }
+ const Ze = (f, n, a) => (a.configurable = true, a.enumerable = true, Reflect.decorate && typeof n != "object" && Object.defineProperty(f, n, a), a);
+ function nl(f, n) {
+ return (a, h, c) => {
+ const m = (p) => {
+ var k;
+ return ((k = p.renderRoot) == null ? undefined : k.querySelector(f)) ?? null;
+ };
+ if (n) {
+ const { get: p, set: k } = typeof h == "object" ? a : c ?? (() => {
+ const w = Symbol();
+ return { get() {
+ return this[w];
+ }, set(C) {
+ this[w] = C;
+ } };
+ })();
+ return Ze(a, h, { get() {
+ let w = p.call(this);
+ return w === undefined && (w = m(this), (w !== null || this.hasUpdated) && k.call(this, w)), w;
+ } });
+ }
+ return Ze(a, h, { get() {
+ return m(this);
+ } });
+ };
+ }
+ let rl;
+ function ol(f) {
+ return (n, a) => Ze(n, a, { get() {
+ return (this.renderRoot ?? rl ?? (rl = document.createDocumentFragment())).querySelectorAll(f);
+ } });
+ }
+ function al(f) {
+ return (n, a) => Ze(n, a, { async get() {
+ var h;
+ return await this.updateComplete, ((h = this.renderRoot) == null ? undefined : h.querySelector(f)) ?? null;
+ } });
+ }
+ function ll(f) {
+ return (n, a) => {
+ const { slot: h, selector: c } = f ?? {}, m = "slot" + (h ? `[name=${h}]` : ":not([name])");
+ return Ze(n, a, { get() {
+ var w;
+ const p = (w = this.renderRoot) == null ? undefined : w.querySelector(m), k = (p == null ? undefined : p.assignedElements(f)) ?? [];
+ return c === undefined ? k : k.filter((C) => C.matches(c));
+ } });
+ };
+ }
+ function cl(f) {
+ return (n, a) => {
+ const { slot: h } = f ?? {}, c = "slot" + (h ? `[name=${h}]` : ":not([name])");
+ return Ze(n, a, { get() {
+ var p;
+ const m = (p = this.renderRoot) == null ? undefined : p.querySelector(c);
+ return (m == null ? undefined : m.assignedNodes(f)) ?? [];
+ } });
+ };
+ }
+ const hl = Object.freeze(Object.defineProperty({ __proto__: null, customElement: oe, eventOptions: sl, property: j, query: nl, queryAll: ol, queryAssignedElements: ll, queryAssignedNodes: cl, queryAsync: al, standardProperty: kr, state: X }, Symbol.toStringTag, { value: "Module" }));
+ const xr = { ATTRIBUTE: 1, CHILD: 2, PROPERTY: 3, BOOLEAN_ATTRIBUTE: 4, EVENT: 5, ELEMENT: 6 }, Sr = (f) => (...n) => ({ _$litDirective$: f, values: n });
+
+ class _r {
+ constructor(n) {
+ }
+ get _$AU() {
+ return this._$AM._$AU;
+ }
+ _$AT(n, a, h) {
+ this._$Ct = n, this._$AM = a, this._$Ci = h;
+ }
+ _$AS(n, a) {
+ return this.update(n, a);
+ }
+ update(n, a) {
+ return this.render(...a);
+ }
+ }
+ const { I: ul } = yr, Ar = () => document.createComment(""), Ei = (f, n, a) => {
+ var m;
+ const h = f._$AA.parentNode, c = n === undefined ? f._$AB : n._$AA;
+ if (a === undefined) {
+ const p = h.insertBefore(Ar(), c), k = h.insertBefore(Ar(), c);
+ a = new ul(p, k, f, f.options);
+ } else {
+ const p = a._$AB.nextSibling, k = a._$AM, w = k !== f;
+ if (w) {
+ let C;
+ (m = a._$AQ) == null || m.call(a, f), a._$AM = f, a._$AP !== undefined && (C = f._$AU) !== k._$AU && a._$AP(C);
+ }
+ if (p !== c || w) {
+ let C = a._$AA;
+ for (;C !== p; ) {
+ const b = C.nextSibling;
+ h.insertBefore(C, c), C = b;
+ }
+ }
+ }
+ return a;
+ }, De = (f, n, a = f) => (f._$AI(n, a), f), dl = {}, fl = (f, n = dl) => f._$AH = n, pl = (f) => f._$AH, Vs = (f) => {
+ var h;
+ (h = f._$AP) == null || h.call(f, false, true);
+ let n = f._$AA;
+ const a = f._$AB.nextSibling;
+ for (;n !== a; ) {
+ const c = n.nextSibling;
+ n.remove(), n = c;
+ }
+ };
+ const Er = (f, n, a) => {
+ const h = new Map;
+ for (let c = n;c <= a; c++)
+ h.set(f[c], c);
+ return h;
+ }, Pe = Sr(class extends _r {
+ constructor(f) {
+ if (super(f), f.type !== xr.CHILD)
+ throw Error("repeat() can only be used in text expressions");
+ }
+ dt(f, n, a) {
+ let h;
+ a === undefined ? a = n : n !== undefined && (h = n);
+ const c = [], m = [];
+ let p = 0;
+ for (const k of f)
+ c[p] = h ? h(k, p) : p, m[p] = a(k, p), p++;
+ return { values: m, keys: c };
+ }
+ render(f, n, a) {
+ return this.dt(f, n, a).values;
+ }
+ update(f, [n, a, h]) {
+ const c = pl(f), { values: m, keys: p } = this.dt(n, a, h);
+ if (!Array.isArray(c))
+ return this.ut = p, m;
+ const k = this.ut ?? (this.ut = []), w = [];
+ let C, b, I = 0, P = c.length - 1, N = 0, Y = m.length - 1;
+ for (;I <= P && N <= Y; )
+ if (c[I] === null)
+ I++;
+ else if (c[P] === null)
+ P--;
+ else if (k[I] === p[N])
+ w[N] = De(c[I], m[N]), I++, N++;
+ else if (k[P] === p[Y])
+ w[Y] = De(c[P], m[Y]), P--, Y--;
+ else if (k[I] === p[Y])
+ w[Y] = De(c[I], m[Y]), Ei(f, w[Y + 1], c[I]), I++, Y--;
+ else if (k[P] === p[N])
+ w[N] = De(c[P], m[N]), Ei(f, c[I], c[P]), P--, N++;
+ else if (C === undefined && (C = Er(p, N, Y), b = Er(k, I, P)), C.has(k[I]))
+ if (C.has(k[P])) {
+ const rt = b.get(p[N]), Dt = rt !== undefined ? c[rt] : null;
+ if (Dt === null) {
+ const te = Ei(f, c[I]);
+ De(te, m[N]), w[N] = te;
+ } else
+ w[N] = De(Dt, m[N]), Ei(f, c[I], Dt), c[rt] = null;
+ N++;
+ } else
+ Vs(c[P]), P--;
+ else
+ Vs(c[I]), I++;
+ for (;N <= Y; ) {
+ const rt = Ei(f, w[Y + 1]);
+ De(rt, m[N]), w[N++] = rt;
+ }
+ for (;I <= P; ) {
+ const rt = c[I++];
+ rt !== null && Vs(rt);
+ }
+ return this.ut = p, fl(f, w), re;
+ }
+ });
+
+ class Js extends _r {
+ constructor(n) {
+ if (super(n), this.it = yt, n.type !== xr.CHILD)
+ throw Error(this.constructor.directiveName + "() can only be used in child bindings");
+ }
+ render(n) {
+ if (n === yt || n == null)
+ return this._t = undefined, this.it = n;
+ if (n === re)
+ return n;
+ if (typeof n != "string")
+ throw Error(this.constructor.directiveName + "() called with a non-string value");
+ if (n === this.it)
+ return this._t;
+ this.it = n;
+ const a = [n];
+ return a.raw = a, this._t = { _$litType$: this.constructor.resultType, strings: a, values: [] };
+ }
+ }
+ Js.directiveName = "unsafeHTML", Js.resultType = 1;
+ const ml = Sr(Js);
+ (function(f, n) {
+ typeof E == "object" && typeof module < "u" ? module.exports = n() : typeof define == "function" && define.amd ? define("uikit", n) : (f = typeof globalThis < "u" ? globalThis : f || self, f.UIkit = n());
+ })(undefined, function() {
+ const { hasOwnProperty: f, toString: n } = Object.prototype;
+ function a(t, e) {
+ return f.call(t, e);
+ }
+ const h = /\B([A-Z])/g, c = Ft((t) => t.replace(h, "-$1").toLowerCase()), m = /-(\w)/g, p = Ft((t) => (t.charAt(0).toLowerCase() + t.slice(1)).replace(m, (e, i) => i.toUpperCase())), k = Ft((t) => t.charAt(0).toUpperCase() + t.slice(1));
+ function w(t, e) {
+ var i;
+ return (i = t == null ? undefined : t.startsWith) == null ? undefined : i.call(t, e);
+ }
+ function C(t, e) {
+ var i;
+ return (i = t == null ? undefined : t.endsWith) == null ? undefined : i.call(t, e);
+ }
+ function b(t, e) {
+ var i;
+ return (i = t == null ? undefined : t.includes) == null ? undefined : i.call(t, e);
+ }
+ function I(t, e) {
+ var i;
+ return (i = t == null ? undefined : t.findIndex) == null ? undefined : i.call(t, e);
+ }
+ const { isArray: P, from: N } = Array, { assign: Y } = Object;
+ function rt(t) {
+ return typeof t == "function";
+ }
+ function Dt(t) {
+ return t !== null && typeof t == "object";
+ }
+ function te(t) {
+ return n.call(t) === "[object Object]";
+ }
+ function ii(t) {
+ return Dt(t) && t === t.window;
+ }
+ function le(t) {
+ return Jt(t) === 9;
+ }
+ function He(t) {
+ return Jt(t) >= 1;
+ }
+ function zt(t) {
+ return Jt(t) === 1;
+ }
+ function Jt(t) {
+ return !ii(t) && Dt(t) && t.nodeType;
+ }
+ function ce(t) {
+ return typeof t == "boolean";
+ }
+ function ht(t) {
+ return typeof t == "string";
+ }
+ function ee(t) {
+ return typeof t == "number";
+ }
+ function at(t) {
+ return ee(t) || ht(t) && !isNaN(t - parseFloat(t));
+ }
+ function Q(t) {
+ return !(P(t) ? t.length : Dt(t) && Object.keys(t).length);
+ }
+ function vt(t) {
+ return t === undefined;
+ }
+ function si(t) {
+ return ce(t) ? t : t === "true" || t === "1" || t === "" ? true : t === "false" || t === "0" ? false : t;
+ }
+ function L(t) {
+ const e = Number(t);
+ return isNaN(e) ? false : e;
+ }
+ function x(t) {
+ return parseFloat(t) || 0;
+ }
+ function S(t) {
+ return t && _(t)[0];
+ }
+ function _(t) {
+ return He(t) ? [t] : Array.from(t || []).filter(He);
+ }
+ function T(t) {
+ if (ii(t))
+ return t;
+ t = S(t);
+ const e = le(t) ? t : t == null ? undefined : t.ownerDocument;
+ return (e == null ? undefined : e.defaultView) || window;
+ }
+ function R(t, e) {
+ return t === e || Dt(t) && Dt(e) && Object.keys(t).length === Object.keys(e).length && lt(t, (i, s) => i === e[s]);
+ }
+ function U(t, e, i) {
+ return t.replace(new RegExp(`${e}|${i}`, "g"), (s) => s === e ? i : e);
+ }
+ function K(t) {
+ return t[t.length - 1];
+ }
+ function lt(t, e) {
+ for (const i in t)
+ if (e(t[i], i) === false)
+ return false;
+ return true;
+ }
+ function wt(t, e) {
+ return t.slice().sort(({ [e]: i = 0 }, { [e]: s = 0 }) => i > s ? 1 : s > i ? -1 : 0);
+ }
+ function dt(t, e) {
+ return t.reduce((i, s) => i + x(rt(e) ? e(s) : s[e]), 0);
+ }
+ function Ot(t, e) {
+ const i = new Set;
+ return t.filter(({ [e]: s }) => i.has(s) ? false : i.add(s));
+ }
+ function ie(t, e) {
+ return e.reduce((i, s) => ({ ...i, [s]: t[s] }), {});
+ }
+ function ft(t, e = 0, i = 1) {
+ return Math.min(Math.max(L(t) || 0, e), i);
+ }
+ function ut() {
+ }
+ function Kt(...t) {
+ return [["bottom", "top"], ["right", "left"]].every(([e, i]) => Math.min(...t.map(({ [e]: s }) => s)) - Math.max(...t.map(({ [i]: s }) => s)) > 0);
+ }
+ function kt(t, e) {
+ return t.x <= e.right && t.x >= e.left && t.y <= e.bottom && t.y >= e.top;
+ }
+ function Ut(t, e, i) {
+ const s = e === "width" ? "height" : "width";
+ return { [s]: t[e] ? Math.round(i * t[s] / t[e]) : t[s], [e]: i };
+ }
+ function ve(t, e) {
+ t = { ...t };
+ for (const i in t)
+ t = t[i] > e[i] ? Ut(t, i, e[i]) : t;
+ return t;
+ }
+ function ni(t, e) {
+ t = ve(t, e);
+ for (const i in t)
+ t = t[i] < e[i] ? Ut(t, i, e[i]) : t;
+ return t;
+ }
+ const Zs = { ratio: Ut, contain: ve, cover: ni };
+ function Ht(t, e, i = 0, s = false) {
+ e = _(e);
+ const { length: r } = e;
+ return r ? (t = at(t) ? L(t) : t === "next" ? i + 1 : t === "previous" ? i - 1 : t === "last" ? r - 1 : e.indexOf(S(t)), s ? ft(t, 0, r - 1) : (t %= r, t < 0 ? t + r : t)) : -1;
+ }
+ function Ft(t) {
+ const e = Object.create(null);
+ return (i, ...s) => e[i] || (e[i] = t(i, ...s));
+ }
+ function V(t, ...e) {
+ for (const i of _(t)) {
+ const s = Ne(e).filter((r) => !W(i, r));
+ s.length && i.classList.add(...s);
+ }
+ }
+ function ot(t, ...e) {
+ for (const i of _(t)) {
+ const s = Ne(e).filter((r) => W(i, r));
+ s.length && i.classList.remove(...s);
+ }
+ }
+ function Xs(t, e, i) {
+ i = Ne(i), e = Ne(e).filter((s) => !b(i, s)), ot(t, e), V(t, i);
+ }
+ function W(t, e) {
+ return [e] = Ne(e), _(t).some((i) => i.classList.contains(e));
+ }
+ function mt(t, e, i) {
+ const s = Ne(e);
+ vt(i) || (i = !!i);
+ for (const r of _(t))
+ for (const o of s)
+ r.classList.toggle(o, i);
+ }
+ function Ne(t) {
+ return t ? P(t) ? t.map(Ne).flat() : String(t).split(" ").filter(Boolean) : [];
+ }
+ function O(t, e, i) {
+ var s;
+ if (Dt(e)) {
+ for (const r in e)
+ O(t, r, e[r]);
+ return;
+ }
+ if (vt(i))
+ return (s = S(t)) == null ? undefined : s.getAttribute(e);
+ for (const r of _(t))
+ rt(i) && (i = i.call(r, O(r, e))), i === null ? Ci(r, e) : r.setAttribute(e, i);
+ }
+ function $e(t, e) {
+ return _(t).some((i) => i.hasAttribute(e));
+ }
+ function Ci(t, e) {
+ _(t).forEach((i) => i.removeAttribute(e));
+ }
+ function It(t, e) {
+ for (const i of [e, `data-${e}`])
+ if ($e(t, i))
+ return O(t, i);
+ }
+ const Le = typeof window < "u", xt = Le && document.dir === "rtl", ri = Le && "ontouchstart" in window, oi = Le && window.PointerEvent, Wt = oi ? "pointerdown" : ri ? "touchstart" : "mousedown", os = oi ? "pointermove" : ri ? "touchmove" : "mousemove", be = oi ? "pointerup" : ri ? "touchend" : "mouseup", Be = oi ? "pointerenter" : ri ? "" : "mouseenter", ai = oi ? "pointerleave" : ri ? "" : "mouseleave", as = oi ? "pointercancel" : "touchcancel", Ul = { area: true, base: true, br: true, col: true, embed: true, hr: true, img: true, input: true, keygen: true, link: true, meta: true, param: true, source: true, track: true, wbr: true };
+ function Qs(t) {
+ return _(t).some((e) => Ul[e.tagName.toLowerCase()]);
+ }
+ const Fl = Le && Element.prototype.checkVisibility || function() {
+ return this.offsetWidth || this.offsetHeight || this.getClientRects().length;
+ };
+ function St(t) {
+ return _(t).some((e) => Fl.call(e));
+ }
+ const Ti = "input,select,textarea,button";
+ function ls(t) {
+ return _(t).some((e) => tt(e, Ti));
+ }
+ const Oi = `${Ti},a[href],[tabindex]`;
+ function cs(t) {
+ return tt(t, Oi);
+ }
+ function it(t) {
+ var e;
+ return (e = S(t)) == null ? undefined : e.parentElement;
+ }
+ function Di(t, e) {
+ return _(t).filter((i) => tt(i, e));
+ }
+ function tt(t, e) {
+ return _(t).some((i) => i.matches(e));
+ }
+ function li(t, e) {
+ const i = [];
+ for (;t = it(t); )
+ (!e || tt(t, e)) && i.push(t);
+ return i;
+ }
+ function st(t, e) {
+ t = S(t);
+ const i = t ? N(t.children) : [];
+ return e ? Di(i, e) : i;
+ }
+ function he(t, e) {
+ return e ? _(t).indexOf(S(e)) : st(it(t)).indexOf(t);
+ }
+ function ci(t) {
+ return t = S(t), t && ["origin", "pathname", "search"].every((e) => t[e] === location[e]);
+ }
+ function tn(t) {
+ if (ci(t)) {
+ const { hash: e, ownerDocument: i } = S(t), s = decodeURIComponent(e).slice(1);
+ return s ? i.getElementById(s) || i.getElementsByName(s)[0] : i.documentElement;
+ }
+ }
+ function qt(t, e) {
+ return en(t, Pr(t, e));
+ }
+ function Pi(t, e) {
+ return Mi(t, Pr(t, e));
+ }
+ function en(t, e) {
+ return S(Nr(t, S(e), "querySelector"));
+ }
+ function Mi(t, e) {
+ return _(Nr(t, S(e), "querySelectorAll"));
+ }
+ function Pr(t, e = document) {
+ return le(e) || Mr(t).isContextSelector ? e : e.ownerDocument;
+ }
+ const Wl = /([!>+~-])(?=\s+[!>+~-]|\s*$)/g, ql = /(\([^)]*\)|[^,])+/g, Mr = Ft((t) => {
+ let e = false;
+ if (!t || !ht(t))
+ return {};
+ const i = [];
+ for (let s of t.match(ql))
+ s = s.trim().replace(Wl, "$1 *"), e || (e = ["!", "+", "~", "-", ">"].includes(s[0])), i.push(s);
+ return { selector: i.join(","), selectors: i, isContextSelector: e };
+ }), Yl = /(\([^)]*\)|\S)*/, Hr = Ft((t) => {
+ t = t.slice(1).trim();
+ const [e] = t.match(Yl);
+ return [e, t.slice(e.length + 1)];
+ });
+ function Nr(t, e = document, i) {
+ const s = Mr(t);
+ if (!s.isContextSelector)
+ return s.selector ? sn(e, i, s.selector) : t;
+ t = "";
+ const r = s.selectors.length === 1;
+ for (let o of s.selectors) {
+ let l, u = e;
+ if (o[0] === "!" && ([l, o] = Hr(o), u = e.parentElement.closest(l), !o && r) || u && o[0] === "-" && ([l, o] = Hr(o), u = u.previousElementSibling, u = tt(u, l) ? u : null, !o && r))
+ return u;
+ if (u) {
+ if (r)
+ return o[0] === "~" || o[0] === "+" ? (o = `:scope > :nth-child(${he(u) + 1}) ${o}`, u = u.parentElement) : o[0] === ">" && (o = `:scope ${o}`), sn(u, i, o);
+ t += `${t ? "," : ""}${Vl(u)} ${o}`;
+ }
+ }
+ return le(e) || (e = e.ownerDocument), sn(e, i, t);
+ }
+ function sn(t, e, i) {
+ try {
+ return t[e](i);
+ } catch {
+ return null;
+ }
+ }
+ function Vl(t) {
+ const e = [];
+ for (;t.parentNode; ) {
+ const i = O(t, "id");
+ if (i) {
+ e.unshift(`#${nn(i)}`);
+ break;
+ } else {
+ let { tagName: s } = t;
+ s !== "HTML" && (s += `:nth-child(${he(t) + 1})`), e.unshift(s), t = t.parentNode;
+ }
+ }
+ return e.join(" > ");
+ }
+ function nn(t) {
+ return ht(t) ? CSS.escape(t) : "";
+ }
+ function J(...t) {
+ let [e, i, s, r, o = false] = rn(t);
+ r.length > 1 && (r = Kl(r)), o != null && o.self && (r = Gl(r)), s && (r = Jl(s, r));
+ for (const l of i)
+ for (const u of e)
+ u.addEventListener(l, r, o);
+ return () => je(e, i, r, o);
+ }
+ function je(...t) {
+ let [e, i, , s, r = false] = rn(t);
+ for (const o of i)
+ for (const l of e)
+ l.removeEventListener(o, s, r);
+ }
+ function gt(...t) {
+ const [e, i, s, r, o = false, l] = rn(t), u = J(e, i, s, (d) => {
+ const v = !l || l(d);
+ v && (u(), r(d, v));
+ }, o);
+ return u;
+ }
+ function M(t, e, i) {
+ return on(t).every((s) => s.dispatchEvent(hi(e, true, true, i)));
+ }
+ function hi(t, e = true, i = false, s) {
+ return ht(t) && (t = new CustomEvent(t, { bubbles: e, cancelable: i, detail: s })), t;
+ }
+ function rn(t) {
+ return t[0] = on(t[0]), ht(t[1]) && (t[1] = t[1].split(" ")), rt(t[2]) && t.splice(2, 0, false), t;
+ }
+ function Jl(t, e) {
+ return (i) => {
+ const s = t[0] === ">" ? Mi(t, i.currentTarget).reverse().find((r) => r.contains(i.target)) : i.target.closest(t);
+ s && (i.current = s, e.call(this, i), delete i.current);
+ };
+ }
+ function Kl(t) {
+ return (e) => P(e.detail) ? t(e, ...e.detail) : t(e);
+ }
+ function Gl(t) {
+ return function(e) {
+ if (e.target === e.currentTarget || e.target === e.current)
+ return t.call(null, e);
+ };
+ }
+ function Lr(t) {
+ return t && "addEventListener" in t;
+ }
+ function Zl(t) {
+ return Lr(t) ? t : S(t);
+ }
+ function on(t) {
+ return P(t) ? t.map(Zl).filter(Boolean) : ht(t) ? Mi(t) : Lr(t) ? [t] : _(t);
+ }
+ function Gt(t) {
+ return t.pointerType === "touch" || !!t.touches;
+ }
+ function ue(t) {
+ var e, i;
+ const { clientX: s, clientY: r } = ((e = t.touches) == null ? undefined : e[0]) || ((i = t.changedTouches) == null ? undefined : i[0]) || t;
+ return { x: s, y: r };
+ }
+ const Xl = { "animation-iteration-count": true, "column-count": true, "fill-opacity": true, "flex-grow": true, "flex-shrink": true, "font-weight": true, "line-height": true, opacity: true, order: true, orphans: true, "stroke-dasharray": true, "stroke-dashoffset": true, widows: true, "z-index": true, zoom: true };
+ function g(t, e, i, s) {
+ const r = _(t);
+ for (const o of r)
+ if (ht(e)) {
+ if (e = hs(e), vt(i))
+ return getComputedStyle(o).getPropertyValue(e);
+ o.style.setProperty(e, at(i) && !Xl[e] ? `${i}px` : i || ee(i) ? i : "", s);
+ } else if (P(e)) {
+ const l = {};
+ for (const u of e)
+ l[u] = g(o, u);
+ return l;
+ } else if (Dt(e))
+ for (const l in e)
+ g(o, l, e[l], i);
+ return r[0];
+ }
+ const hs = Ft((t) => {
+ if (w(t, "--"))
+ return t;
+ t = c(t);
+ const { style: e } = document.documentElement;
+ if (t in e)
+ return t;
+ for (const i of ["webkit", "moz"]) {
+ const s = `-${i}-${t}`;
+ if (s in e)
+ return s;
+ }
+ }), an = "uk-transition", ln = "transitionend", cn = "transitioncanceled";
+ function Ql(t, e, i = 400, s = "linear") {
+ return i = Math.round(i), Promise.all(_(t).map((r) => new Promise((o, l) => {
+ for (const d in e)
+ g(r, d);
+ const u = setTimeout(() => M(r, ln), i);
+ gt(r, [ln, cn], ({ type: d }) => {
+ clearTimeout(u), ot(r, an), g(r, { transitionProperty: "", transitionDuration: "", transitionTimingFunction: "" }), d === cn ? l() : o(r);
+ }, { self: true }), V(r, an), g(r, { transitionProperty: Object.keys(e).map(hs).join(","), transitionDuration: `${i}ms`, transitionTimingFunction: s, ...e });
+ })));
+ }
+ const nt = { start: Ql, async stop(t) {
+ M(t, ln), await Promise.resolve();
+ }, async cancel(t) {
+ M(t, cn), await Promise.resolve();
+ }, inProgress(t) {
+ return W(t, an);
+ } }, Hi = "uk-anmt", Br = "animationend", us = "animationcanceled";
+ function jr(t, e, i = 200, s, r) {
+ return Promise.all(_(t).map((o) => new Promise((l, u) => {
+ W(o, Hi) && M(o, us);
+ const d = [e, Hi, `${Hi}-${r ? "leave" : "enter"}`, s && `uk-transform-origin-${s}`, r && `${Hi}-reverse`], v = setTimeout(() => M(o, Br), i);
+ gt(o, [Br, us], ({ type: $ }) => {
+ clearTimeout(v), $ === us ? u() : l(o), g(o, "animationDuration", ""), ot(o, d);
+ }, { self: true }), g(o, "animationDuration", `${i}ms`), V(o, d);
+ })));
+ }
+ const ye = { in: jr, out(t, e, i, s) {
+ return jr(t, e, i, s, true);
+ }, inProgress(t) {
+ return W(t, Hi);
+ }, cancel(t) {
+ M(t, us);
+ } };
+ function tc(t) {
+ if (document.readyState !== "loading") {
+ t();
+ return;
+ }
+ gt(document, "DOMContentLoaded", t);
+ }
+ function pt(t, ...e) {
+ return e.some((i) => {
+ var s;
+ return ((s = t == null ? undefined : t.tagName) == null ? undefined : s.toLowerCase()) === i.toLowerCase();
+ });
+ }
+ function Rr(t) {
+ return t = F(t), t && (t.innerHTML = ""), t;
+ }
+ function de(t, e) {
+ return vt(e) ? F(t).innerHTML : $t(Rr(t), e);
+ }
+ const ec = ps("prepend"), $t = ps("append"), ds = ps("before"), fs = ps("after");
+ function ps(t) {
+ return function(e, i) {
+ var s;
+ const r = _(ht(i) ? fe(i) : i);
+ return (s = F(e)) == null || s[t](...r), zr(r);
+ };
+ }
+ function Ct(t) {
+ _(t).forEach((e) => e.remove());
+ }
+ function Ni(t, e) {
+ for (e = S(ds(t, e));e.firstElementChild; )
+ e = e.firstElementChild;
+ return $t(e, t), e;
+ }
+ function hn(t, e) {
+ return _(_(t).map((i) => i.hasChildNodes() ? Ni(N(i.childNodes), e) : $t(i, e)));
+ }
+ function Li(t) {
+ _(t).map(it).filter((e, i, s) => s.indexOf(e) === i).forEach((e) => e.replaceWith(...e.childNodes));
+ }
+ const ic = /^<(\w+)\s*\/?>(?:<\/\1>)?$/;
+ function fe(t) {
+ const e = ic.exec(t);
+ if (e)
+ return document.createElement(e[1]);
+ const i = document.createElement("template");
+ return i.innerHTML = t.trim(), zr(i.content.childNodes);
+ }
+ function zr(t) {
+ return t.length > 1 ? t : t[0];
+ }
+ function we(t, e) {
+ if (zt(t))
+ for (e(t), t = t.firstElementChild;t; )
+ we(t, e), t = t.nextElementSibling;
+ }
+ function F(t, e) {
+ return Ur(t) ? S(fe(t)) : en(t, e);
+ }
+ function ct(t, e) {
+ return Ur(t) ? _(fe(t)) : Mi(t, e);
+ }
+ function Ur(t) {
+ return ht(t) && w(t.trim(), "<");
+ }
+ const Re = { width: ["left", "right"], height: ["top", "bottom"] };
+ function H(t) {
+ const e = zt(t) ? S(t).getBoundingClientRect() : { height: Pt(t), width: ms(t), top: 0, left: 0 };
+ return { height: e.height, width: e.width, top: e.top, left: e.left, bottom: e.top + e.height, right: e.left + e.width };
+ }
+ function G(t, e) {
+ e && g(t, { left: 0, top: 0 });
+ const i = H(t);
+ if (t) {
+ const { scrollY: s, scrollX: r } = T(t), o = { height: s, width: r };
+ for (const l in Re)
+ for (const u of Re[l])
+ i[u] += o[l];
+ }
+ if (!e)
+ return i;
+ for (const s of ["left", "top"])
+ g(t, s, e[s] - i[s]);
+ }
+ function un(t) {
+ let { top: e, left: i } = G(t);
+ const { ownerDocument: { body: s, documentElement: r }, offsetParent: o } = S(t);
+ let l = o || r;
+ for (;l && (l === s || l === r) && g(l, "position") === "static"; )
+ l = l.parentNode;
+ if (zt(l)) {
+ const u = G(l);
+ e -= u.top + x(g(l, "borderTopWidth")), i -= u.left + x(g(l, "borderLeftWidth"));
+ }
+ return { top: e - x(g(t, "marginTop")), left: i - x(g(t, "marginLeft")) };
+ }
+ function Bi(t) {
+ t = S(t);
+ const e = [t.offsetTop, t.offsetLeft];
+ for (;t = t.offsetParent; )
+ if (e[0] += t.offsetTop + x(g(t, "borderTopWidth")), e[1] += t.offsetLeft + x(g(t, "borderLeftWidth")), g(t, "position") === "fixed") {
+ const i = T(t);
+ return e[0] += i.scrollY, e[1] += i.scrollX, e;
+ }
+ return e;
+ }
+ const Pt = Fr("height"), ms = Fr("width");
+ function Fr(t) {
+ const e = k(t);
+ return (i, s) => {
+ if (vt(s)) {
+ if (ii(i))
+ return i[`inner${e}`];
+ if (le(i)) {
+ const r = i.documentElement;
+ return Math.max(r[`offset${e}`], r[`scroll${e}`]);
+ }
+ return i = S(i), s = g(i, t), s = s === "auto" ? i[`offset${e}`] : x(s) || 0, s - dn(i, t);
+ } else
+ return g(i, t, !s && s !== 0 ? "" : +s + dn(i, t) + "px");
+ };
+ }
+ function dn(t, e, i = "border-box") {
+ return g(t, "boxSizing") === i ? dt(Re[e], (s) => x(g(t, `padding-${s}`)) + x(g(t, `border-${s}-width`))) : 0;
+ }
+ function gs(t) {
+ for (const e in Re)
+ for (const i in Re[e])
+ if (Re[e][i] === t)
+ return Re[e][1 - i];
+ return t;
+ }
+ function At(t, e = "width", i = window, s = false) {
+ return ht(t) ? dt(nc(t), (r) => {
+ const o = oc(r);
+ return o ? ac(o === "vh" ? lc() : o === "vw" ? ms(T(i)) : s ? i[`offset${k(e)}`] : H(i)[e], r) : r;
+ }) : x(t);
+ }
+ const sc = /-?\d+(?:\.\d+)?(?:v[wh]|%|px)?/g, nc = Ft((t) => t.toString().replace(/\s/g, "").match(sc) || []), rc = /(?:v[hw]|%)$/, oc = Ft((t) => (t.match(rc) || [])[0]);
+ function ac(t, e) {
+ return t * x(e) / 100;
+ }
+ let ji, ui;
+ function lc() {
+ return ji || (ui || (ui = F("
"), g(ui, { height: "100vh", position: "fixed" }), J(window, "resize", () => ji = null)), $t(document.body, ui), ji = ui.clientHeight, Ct(ui), ji);
+ }
+ const ke = { read: cc, write: hc, clear: uc, flush: Wr }, vs = [], $s = [];
+ function cc(t) {
+ return vs.push(t), pn(), t;
+ }
+ function hc(t) {
+ return $s.push(t), pn(), t;
+ }
+ function uc(t) {
+ Yr(vs, t), Yr($s, t);
+ }
+ let fn = false;
+ function Wr() {
+ qr(vs), qr($s.splice(0)), fn = false, (vs.length || $s.length) && pn();
+ }
+ function pn() {
+ fn || (fn = true, queueMicrotask(Wr));
+ }
+ function qr(t) {
+ let e;
+ for (;e = t.shift(); )
+ try {
+ e();
+ } catch (i) {
+ console.error(i);
+ }
+ }
+ function Yr(t, e) {
+ const i = t.indexOf(e);
+ return ~i && t.splice(i, 1);
+ }
+
+ class Vr {
+ init() {
+ this.positions = [];
+ let e;
+ this.unbind = J(document, "mousemove", (i) => e = ue(i)), this.interval = setInterval(() => {
+ e && (this.positions.push(e), this.positions.length > 5 && this.positions.shift());
+ }, 50);
+ }
+ cancel() {
+ var e;
+ (e = this.unbind) == null || e.call(this), clearInterval(this.interval);
+ }
+ movesTo(e) {
+ if (!this.positions || this.positions.length < 2)
+ return false;
+ const i = H(e), { left: s, right: r, top: o, bottom: l } = i, [u] = this.positions, d = K(this.positions), v = [u, d];
+ return kt(d, i) ? false : [[{ x: s, y: o }, { x: r, y: l }], [{ x: s, y: l }, { x: r, y: o }]].some((y) => {
+ const A = dc(v, y);
+ return A && kt(A, i);
+ });
+ }
+ }
+ function dc([{ x: t, y: e }, { x: i, y: s }], [{ x: r, y: o }, { x: l, y: u }]) {
+ const d = (u - o) * (i - t) - (l - r) * (s - e);
+ if (d === 0)
+ return false;
+ const v = ((l - r) * (e - o) - (u - o) * (t - r)) / d;
+ return v < 0 ? false : { x: t + v * (i - t), y: e + v * (s - e) };
+ }
+ function Jr(t, e, i = {}, { intersecting: s = true } = {}) {
+ const r = new IntersectionObserver(s ? (o, l) => {
+ o.some((u) => u.isIntersecting) && e(o, l);
+ } : e, i);
+ for (const o of _(t))
+ r.observe(o);
+ return r;
+ }
+ const fc = Le && window.ResizeObserver;
+ function bs(t, e, i = { box: "border-box" }) {
+ if (fc)
+ return Kr(ResizeObserver, t, e, i);
+ const s = [J(window, "load resize", e), J(document, "loadedmetadata load", e, true)];
+ return { disconnect: () => s.map((r) => r()) };
+ }
+ function mn(t) {
+ return { disconnect: J([window, window.visualViewport], "resize", t) };
+ }
+ function gn(t, e, i) {
+ return Kr(MutationObserver, t, e, i);
+ }
+ function Kr(t, e, i, s) {
+ const r = new t(i);
+ for (const o of _(e))
+ r.observe(o, s);
+ return r;
+ }
+ function vn(t) {
+ bn(t) && yn(t, { func: "playVideo", method: "play" }), $n(t) && t.play().catch(ut);
+ }
+ function ys(t) {
+ bn(t) && yn(t, { func: "pauseVideo", method: "pause" }), $n(t) && t.pause();
+ }
+ function Gr(t) {
+ bn(t) && yn(t, { func: "mute", method: "setVolume", value: 0 }), $n(t) && (t.muted = true);
+ }
+ function $n(t) {
+ return pt(t, "video");
+ }
+ function bn(t) {
+ return pt(t, "iframe") && (Zr(t) || Xr(t));
+ }
+ function Zr(t) {
+ return !!t.src.match(/\/\/.*?youtube(-nocookie)?\.[a-z]+\/(watch\?v=[^&\s]+|embed)|youtu\.be\/.*/);
+ }
+ function Xr(t) {
+ return !!t.src.match(/vimeo\.com\/video\/.*/);
+ }
+ async function yn(t, e) {
+ await mc(t), Qr(t, e);
+ }
+ function Qr(t, e) {
+ t.contentWindow.postMessage(JSON.stringify({ event: "command", ...e }), "*");
+ }
+ const wn = "_ukPlayer";
+ let pc = 0;
+ function mc(t) {
+ if (t[wn])
+ return t[wn];
+ const e = Zr(t), i = Xr(t), s = ++pc;
+ let r;
+ return t[wn] = new Promise((o) => {
+ e && gt(t, "load", () => {
+ const l = () => Qr(t, { event: "listening", id: s });
+ r = setInterval(l, 100), l();
+ }), gt(window, "message", o, false, ({ data: l }) => {
+ try {
+ return l = JSON.parse(l), e && (l == null ? undefined : l.id) === s && l.event === "onReady" || i && Number(l == null ? undefined : l.player_id) === s;
+ } catch {
+ }
+ }), t.src = `${t.src}${b(t.src, "?") ? "&" : "?"}${e ? "enablejsapi=1" : `api=1&player_id=${s}`}`;
+ }).then(() => clearInterval(r));
+ }
+ function gc(t, e = 0, i = 0) {
+ return St(t) ? Kt(...Ue(t).map((s) => {
+ const { top: r, left: o, bottom: l, right: u } = Yt(s);
+ return { top: r - e, left: o - i, bottom: l + e, right: u + i };
+ }).concat(G(t))) : false;
+ }
+ function to(t, { offset: e = 0 } = {}) {
+ const i = St(t) ? di(t, false, ["hidden"]) : [];
+ return i.reduce((l, u, d) => {
+ const { scrollTop: v, scrollHeight: $, offsetHeight: y } = u, A = Yt(u), D = $ - A.height, { height: B, top: q } = i[d - 1] ? Yt(i[d - 1]) : G(t);
+ let Z = Math.ceil(q - A.top - e + v);
+ return e > 0 && y < B + e ? Z += e : e = 0, Z > D ? (e -= Z - D, Z = D) : Z < 0 && (e -= Z, Z = 0), () => s(u, Z - v, t, D).then(l);
+ }, () => Promise.resolve())();
+ function s(l, u, d, v) {
+ return new Promise(($) => {
+ const y = l.scrollTop, A = r(Math.abs(u)), D = Date.now(), B = Sn(l) === l, q = G(d).top + (B ? 0 : y);
+ let Z = 0, jt = 15;
+ (function me() {
+ const _e = o(ft((Date.now() - D) / A));
+ let se = 0;
+ i[0] === l && y + u < v && (se = G(d).top + (B ? 0 : l.scrollTop) - q - H(kn(d)).height), g(l, "scrollBehavior") !== "auto" && g(l, "scrollBehavior", "auto"), l.scrollTop = y + (u + se) * _e, g(l, "scrollBehavior", ""), _e === 1 && (Z === se || !jt--) ? $() : (Z = se, requestAnimationFrame(me));
+ })();
+ });
+ }
+ function r(l) {
+ return 40 * Math.pow(l, 0.375);
+ }
+ function o(l) {
+ return 0.5 * (1 - Math.cos(Math.PI * l));
+ }
+ }
+ function ws(t, e = 0, i = 0) {
+ if (!St(t))
+ return 0;
+ const s = ze(t, true), { scrollHeight: r, scrollTop: o } = s, { height: l } = Yt(s), u = r - l, d = Bi(t)[0] - Bi(s)[0], v = Math.max(0, d - l + e), $ = Math.min(u, d + t.offsetHeight - i);
+ return v < $ ? ft((o - v) / ($ - v)) : 1;
+ }
+ function di(t, e = false, i = []) {
+ const s = Sn(t);
+ let r = li(t).reverse();
+ r = r.slice(r.indexOf(s) + 1);
+ const o = I(r, (l) => g(l, "position") === "fixed");
+ return ~o && (r = r.slice(o)), [s].concat(r.filter((l) => g(l, "overflow").split(" ").some((u) => b(["auto", "scroll", ...i], u)) && (!e || l.scrollHeight > Yt(l).height))).reverse();
+ }
+ function ze(...t) {
+ return di(...t)[0];
+ }
+ function Ue(t) {
+ return di(t, false, ["hidden", "clip"]);
+ }
+ function Yt(t) {
+ const e = T(t), i = Sn(t), s = !He(t) || t.contains(i);
+ if (s && e.visualViewport) {
+ let { height: d, width: v, scale: $, pageTop: y, pageLeft: A } = e.visualViewport;
+ return d = Math.round(d * $), v = Math.round(v * $), { height: d, width: v, top: y, left: A, bottom: y + d, right: A + v };
+ }
+ let r = G(s ? e : t);
+ if (g(t, "display") === "inline")
+ return r;
+ const { body: o, documentElement: l } = e.document, u = s ? i === l || i.clientHeight < o.clientHeight ? i : o : t;
+ for (let [d, v, $, y] of [["width", "x", "left", "right"], ["height", "y", "top", "bottom"]]) {
+ const A = r[d] % 1;
+ r[$] += x(g(u, `border-${$}-width`)), r[d] = r[v] = u[`client${k(d)}`] - (A ? A < 0.5 ? -A : 1 - A : 0), r[y] = r[d] + r[$];
+ }
+ return r;
+ }
+ function kn(t) {
+ const { left: e, width: i, top: s } = H(t);
+ for (const r of s ? [0, s] : [0]) {
+ let o;
+ for (const l of T(t).document.elementsFromPoint(e + i / 2, r))
+ !l.contains(t) && !W(l, "uk-togglable-leave") && (xn(l, "fixed") && eo(li(t).reverse().find((u) => !u.contains(l) && !xn(u, "static"))) < eo(l) || xn(l, "sticky") && it(l).contains(t)) && (!o || H(o).height < H(l).height) && (o = l);
+ if (o)
+ return o;
+ }
+ }
+ function eo(t) {
+ return x(g(t, "zIndex"));
+ }
+ function xn(t, e) {
+ return g(t, "position") === e;
+ }
+ function Sn(t) {
+ return T(t).document.scrollingElement;
+ }
+ const Nt = [["width", "x", "left", "right"], ["height", "y", "top", "bottom"]];
+ function io(t, e, i) {
+ i = { attach: { element: ["left", "top"], target: ["left", "top"], ...i.attach }, offset: [0, 0], placement: [], ...i }, P(e) || (e = [e, e]), G(t, so(t, e, i));
+ }
+ function so(t, e, i) {
+ const s = no(t, e, i), { boundary: r, viewportOffset: o = 0, placement: l } = i;
+ let u = s;
+ for (const [d, [v, , $, y]] of Object.entries(Nt)) {
+ const A = vc(t, e[d], o, r, d);
+ if (ks(s, A, d))
+ continue;
+ let D = 0;
+ if (l[d] === "flip") {
+ const B = i.attach.target[d];
+ if (B === y && s[y] <= A[y] || B === $ && s[$] >= A[$])
+ continue;
+ D = bc(t, e, i, d)[$] - s[$];
+ const q = $c(t, e[d], o, d);
+ if (!ks(_n(s, D, d), q, d)) {
+ if (ks(s, q, d))
+ continue;
+ if (i.recursion)
+ return false;
+ const Z = yc(t, e, i);
+ if (Z && ks(Z, q, 1 - d))
+ return Z;
+ continue;
+ }
+ } else if (l[d] === "shift") {
+ const B = G(e[d]), { offset: q } = i;
+ D = ft(ft(s[$], A[$], A[y] - s[v]), B[$] - s[v] + q[d], B[y] - q[d]) - s[$];
+ }
+ u = _n(u, D, d);
+ }
+ return u;
+ }
+ function no(t, e, i) {
+ let { attach: s, offset: r } = { attach: { element: ["left", "top"], target: ["left", "top"], ...i.attach }, offset: [0, 0], ...i }, o = G(t);
+ for (const [l, [u, , d, v]] of Object.entries(Nt)) {
+ const $ = s.target[l] === s.element[l] ? Yt(e[l]) : G(e[l]);
+ o = _n(o, $[d] - o[d] + ro(s.target[l], v, $[u]) - ro(s.element[l], v, o[u]) + +r[l], l);
+ }
+ return o;
+ }
+ function _n(t, e, i) {
+ const [, s, r, o] = Nt[i], l = { ...t };
+ return l[r] = t[s] = t[r] + e, l[o] += e, l;
+ }
+ function ro(t, e, i) {
+ return t === "center" ? i / 2 : t === e ? i : 0;
+ }
+ function vc(t, e, i, s, r) {
+ let o = ao(...oo(t, e).map(Yt));
+ return i && (o[Nt[r][2]] += i, o[Nt[r][3]] -= i), s && (o = ao(o, G(P(s) ? s[r] : s))), o;
+ }
+ function $c(t, e, i, s) {
+ const [r, o, l, u] = Nt[s], [d] = oo(t, e), v = Yt(d);
+ return ["auto", "scroll"].includes(g(d, `overflow-${o}`)) && (v[l] -= d[`scroll${k(l)}`], v[u] = v[l] + d[`scroll${k(r)}`]), v[l] += i, v[u] -= i, v;
+ }
+ function oo(t, e) {
+ return Ue(e).filter((i) => i.contains(t));
+ }
+ function ao(...t) {
+ let e = {};
+ for (const i of t)
+ for (const [, , s, r] of Nt)
+ e[s] = Math.max(e[s] || 0, i[s]), e[r] = Math.min(...[e[r], i[r]].filter(Boolean));
+ return e;
+ }
+ function ks(t, e, i) {
+ const [, , s, r] = Nt[i];
+ return t[s] >= e[s] && t[r] <= e[r];
+ }
+ function bc(t, e, { offset: i, attach: s }, r) {
+ return no(t, e, { attach: { element: lo(s.element, r), target: lo(s.target, r) }, offset: wc(i, r) });
+ }
+ function yc(t, e, i) {
+ return so(t, e, { ...i, attach: { element: i.attach.element.map(co).reverse(), target: i.attach.target.map(co).reverse() }, offset: i.offset.reverse(), placement: i.placement.reverse(), recursion: true });
+ }
+ function lo(t, e) {
+ const i = [...t], s = Nt[e].indexOf(t[e]);
+ return ~s && (i[e] = Nt[e][1 - s % 2 + 2]), i;
+ }
+ function co(t) {
+ for (let e = 0;e < Nt.length; e++) {
+ const i = Nt[e].indexOf(t);
+ if (~i)
+ return Nt[1 - e][i % 2 + 2];
+ }
+ }
+ function wc(t, e) {
+ return t = [...t], t[e] *= -1, t;
+ }
+ var kc = Object.freeze({ __proto__: null, $: F, $$: ct, Animation: ye, Dimensions: Zs, MouseTracker: Vr, Transition: nt, addClass: V, after: fs, append: $t, apply: we, assign: Y, attr: O, before: ds, boxModelAdjust: dn, camelize: p, children: st, clamp: ft, createEvent: hi, css: g, data: It, dimensions: H, each: lt, empty: Rr, endsWith: C, escape: nn, fastdom: ke, filter: Di, find: en, findAll: Mi, findIndex: I, flipPosition: gs, fragment: fe, getCoveringElement: kn, getEventPos: ue, getIndex: Ht, getTargetedElement: tn, hasAttr: $e, hasClass: W, hasOwn: a, hasTouch: ri, height: Pt, html: de, hyphenate: c, inBrowser: Le, includes: b, index: he, intersectRect: Kt, isArray: P, isBoolean: ce, isDocument: le, isElement: zt, isEmpty: Q, isEqual: R, isFocusable: cs, isFunction: rt, isInView: gc, isInput: ls, isNode: He, isNumber: ee, isNumeric: at, isObject: Dt, isPlainObject: te, isRtl: xt, isSameSiteAnchor: ci, isString: ht, isTag: pt, isTouch: Gt, isUndefined: vt, isVisible: St, isVoidElement: Qs, isWindow: ii, last: K, matches: tt, memoize: Ft, mute: Gr, noop: ut, observeIntersection: Jr, observeMutation: gn, observeResize: bs, observeViewportResize: mn, off: je, offset: G, offsetPosition: Bi, offsetViewport: Yt, on: J, once: gt, overflowParents: Ue, parent: it, parents: li, pause: ys, pick: ie, play: vn, pointInRect: kt, pointerCancel: as, pointerDown: Wt, pointerEnter: Be, pointerLeave: ai, pointerMove: os, pointerUp: be, position: un, positionAt: io, prepend: ec, propName: hs, query: qt, queryAll: Pi, ready: tc, remove: Ct, removeAttr: Ci, removeClass: ot, replaceClass: Xs, scrollIntoView: to, scrollParent: ze, scrollParents: di, scrolledOver: ws, selFocusable: Oi, selInput: Ti, sortBy: wt, startsWith: w, sumBy: dt, swap: U, toArray: N, toBoolean: si, toEventTargets: on, toFloat: x, toNode: S, toNodes: _, toNumber: L, toPx: At, toWindow: T, toggleClass: mt, trigger: M, ucfirst: k, uniqueBy: Ot, unwrap: Li, width: ms, wrapAll: Ni, wrapInner: hn });
+ const _t = {};
+ _t.events = _t.watch = _t.observe = _t.created = _t.beforeConnect = _t.connected = _t.beforeDisconnect = _t.disconnected = _t.destroy = An, _t.args = function(t, e) {
+ return e !== false && An(e || t);
+ }, _t.update = function(t, e) {
+ return wt(An(t, rt(e) ? { read: e } : e), "order");
+ }, _t.props = function(t, e) {
+ if (P(e)) {
+ const i = {};
+ for (const s of e)
+ i[s] = String;
+ e = i;
+ }
+ return _t.methods(t, e);
+ }, _t.computed = _t.methods = function(t, e) {
+ return e ? t ? { ...t, ...e } : e : t;
+ }, _t.i18n = _t.data = function(t, e, i) {
+ return i ? ho(t, e, i) : e ? t ? function(s) {
+ return ho(t, e, s);
+ } : e : t;
+ };
+ function ho(t, e, i) {
+ return _t.computed(rt(t) ? t.call(i, i) : t, rt(e) ? e.call(i, i) : e);
+ }
+ function An(t, e) {
+ return t = t && !P(t) ? [t] : t, e ? t ? t.concat(e) : P(e) ? e : [e] : t;
+ }
+ function xc(t, e) {
+ return vt(e) ? t : e;
+ }
+ function Ri(t, e, i) {
+ const s = {};
+ if (rt(e) && (e = e.options), e.extends && (t = Ri(t, e.extends, i)), e.mixins)
+ for (const o of e.mixins)
+ t = Ri(t, o, i);
+ for (const o in t)
+ r(o);
+ for (const o in e)
+ a(t, o) || r(o);
+ function r(o) {
+ s[o] = (_t[o] || xc)(t[o], e[o], i);
+ }
+ return s;
+ }
+ function fi(t, e = []) {
+ try {
+ return t ? w(t, "{") ? JSON.parse(t) : e.length && !b(t, ":") ? { [e[0]]: t } : t.split(";").reduce((i, s) => {
+ const [r, o] = s.split(/:(.*)/);
+ return r && !vt(o) && (i[r.trim()] = o.trim()), i;
+ }, {}) : {};
+ } catch {
+ return {};
+ }
+ }
+ function En(t, e) {
+ return t === Boolean ? si(e) : t === Number ? L(e) : t === "list" ? _c(e) : t === Object && ht(e) ? fi(e) : t ? t(e) : e;
+ }
+ const Sc = /,(?![^(]*\))/;
+ function _c(t) {
+ return P(t) ? t : ht(t) ? t.split(Sc).map((e) => at(e) ? L(e) : si(e.trim())) : [t];
+ }
+ function Ac(t) {
+ t._data = {}, t._updates = [...t.$options.update || []], t._disconnect.push(() => t._updates = t._data = null);
+ }
+ function Ec(t, e) {
+ t._updates.unshift(e);
+ }
+ function zi(t, e = "update") {
+ t._connected && t._updates.length && (t._queued || (t._queued = new Set, ke.read(() => {
+ t._connected && Ic(t, t._queued), t._queued = null;
+ })), t._queued.add(e.type || e));
+ }
+ function Ic(t, e) {
+ for (const { read: i, write: s, events: r = [] } of t._updates) {
+ if (!e.has("update") && !r.some((l) => e.has(l)))
+ continue;
+ let o;
+ i && (o = i.call(t, t._data, e), o && te(o) && Y(t._data, o)), s && o !== false && ke.write(() => {
+ t._connected && s.call(t, t._data, e);
+ });
+ }
+ }
+ function pe(t) {
+ return Wi(bs, t, "resize");
+ }
+ function Ui(t) {
+ return Wi(Jr, t);
+ }
+ function In(t) {
+ return Wi(gn, t);
+ }
+ function xs(t = {}) {
+ return Ui({ handler: function(e, i) {
+ const { targets: s = this.$el, preload: r = 5 } = t;
+ for (const o of _(rt(s) ? s(this) : s))
+ ct('[loading="lazy"]', o).slice(0, r - 1).forEach((l) => Ci(l, "loading"));
+ for (const o of e.filter(({ isIntersecting: l }) => l).map(({ target: l }) => l))
+ i.unobserve(o);
+ }, ...t });
+ }
+ function uo(t) {
+ return Wi((e, i) => mn(i), t, "resize");
+ }
+ function Fi(t) {
+ return Wi((e, i) => ({ disconnect: J(Tc(e), "scroll", i, { passive: true }) }), t, "scroll");
+ }
+ function fo(t) {
+ return { observe(e, i) {
+ return { observe: ut, unobserve: ut, disconnect: J(e, Wt, i, { passive: true }) };
+ }, handler(e) {
+ if (!Gt(e))
+ return;
+ const i = ue(e), s = "tagName" in e.target ? e.target : it(e.target);
+ gt(document, `${be} ${as} scroll`, (r) => {
+ const { x: o, y: l } = ue(r);
+ (r.type !== "scroll" && s && o && Math.abs(i.x - o) > 100 || l && Math.abs(i.y - l) > 100) && setTimeout(() => {
+ M(s, "swipe"), M(s, `swipe${Cc(i.x, i.y, o, l)}`);
+ });
+ });
+ }, ...t };
+ }
+ function Wi(t, e, i) {
+ return { observe: t, handler() {
+ zi(this, i);
+ }, ...e };
+ }
+ function Cc(t, e, i, s) {
+ return Math.abs(t - i) >= Math.abs(e - s) ? t - i > 0 ? "Left" : "Right" : e - s > 0 ? "Up" : "Down";
+ }
+ function Tc(t) {
+ return _(t).map((e) => {
+ const { ownerDocument: i } = e, s = ze(e, true);
+ return s === i.scrollingElement ? i : s;
+ });
+ }
+ var Oc = { props: { margin: String, firstColumn: Boolean }, data: { margin: "uk-margin-small-top", firstColumn: "uk-first-column" }, observe: [In({ options: { childList: true } }), In({ options: { attributes: true, attributeFilter: ["style"] }, target: ({ $el: t }) => [t, ...st(t)] }), pe({ target: ({ $el: t }) => [t, ...st(t)] })], update: { read() {
+ return { rows: po(st(this.$el)) };
+ }, write({ rows: t }) {
+ for (const e of t)
+ for (const i of e)
+ mt(i, this.margin, t[0] !== e), mt(i, this.firstColumn, e[xt ? e.length - 1 : 0] === i);
+ }, events: ["resize"] } };
+ function po(t) {
+ const e = [[]], i = t.some((s, r) => r && t[r - 1].offsetParent !== s.offsetParent);
+ for (const s of t) {
+ if (!St(s))
+ continue;
+ const r = Cn(s, i);
+ for (let o = e.length - 1;o >= 0; o--) {
+ const l = e[o];
+ if (!l[0]) {
+ l.push(s);
+ break;
+ }
+ const u = Cn(l[0], i);
+ if (r.top >= u.bottom - 1 && r.top !== u.top) {
+ e.push([s]);
+ break;
+ }
+ if (r.bottom - 1 > u.top || r.top === u.top) {
+ let d = l.length - 1;
+ for (;d >= 0; d--) {
+ const v = Cn(l[d], i);
+ if (r.left >= v.left)
+ break;
+ }
+ l.splice(d + 1, 0, s);
+ break;
+ }
+ if (o === 0) {
+ e.unshift([s]);
+ break;
+ }
+ }
+ }
+ return e;
+ }
+ function Cn(t, e = false) {
+ let { offsetTop: i, offsetLeft: s, offsetHeight: r, offsetWidth: o } = t;
+ return e && ([i, s] = Bi(t)), { top: i, left: s, bottom: i + r, right: s + o };
+ }
+ async function Dc(t, e, i) {
+ await Tn();
+ let s = st(e);
+ const r = s.map((D) => mo(D, true)), o = { ...g(e, ["height", "padding"]), display: "block" }, l = s.concat(e);
+ await Promise.all(l.map(nt.cancel)), g(l, "transitionProperty", "none"), await t(), s = s.concat(st(e).filter((D) => !b(s, D))), await Promise.resolve(), g(l, "transitionProperty", "");
+ const u = O(e, "style"), d = g(e, ["height", "padding"]), [v, $] = Pc(e, s, r), y = s.map((D) => ({ style: O(D, "style") }));
+ s.forEach((D, B) => $[B] && g(D, $[B])), g(e, o), M(e, "scroll"), await Tn();
+ const A = s.map((D, B) => it(D) === e && nt.start(D, v[B], i, "ease")).concat(nt.start(e, d, i, "ease"));
+ try {
+ await Promise.all(A), s.forEach((D, B) => {
+ O(D, y[B]), it(D) === e && g(D, "display", v[B].opacity === 0 ? "none" : "");
+ }), O(e, "style", u);
+ } catch {
+ O(s, "style", ""), Mc(e, o);
+ }
+ }
+ function mo(t, e) {
+ const i = g(t, "zIndex");
+ return St(t) ? { display: "", opacity: e ? g(t, "opacity") : "0", pointerEvents: "none", position: "absolute", zIndex: i === "auto" ? he(t) : i, ...go(t) } : false;
+ }
+ function Pc(t, e, i) {
+ const s = e.map((o, l) => it(o) && (l in i) ? i[l] ? St(o) ? go(o) : { opacity: 0 } : { opacity: St(o) ? 1 : 0 } : false), r = s.map((o, l) => {
+ const u = it(e[l]) === t && (i[l] || mo(e[l]));
+ if (!u)
+ return false;
+ if (!o)
+ delete u.opacity;
+ else if (!("opacity" in o)) {
+ const { opacity: d } = u;
+ d % 1 ? o.opacity = 1 : delete u.opacity;
+ }
+ return u;
+ });
+ return [s, r];
+ }
+ function Mc(t, e) {
+ for (const i in e)
+ g(t, i, "");
+ }
+ function go(t) {
+ const { height: e, width: i } = H(t);
+ return { height: e, width: i, transform: "", ...un(t), ...g(t, ["marginTop", "marginLeft"]) };
+ }
+ function Tn() {
+ return new Promise((t) => requestAnimationFrame(t));
+ }
+ const On = "uk-transition-leave", Dn = "uk-transition-enter";
+ function vo(t, e, i, s = 0) {
+ const r = Ss(e, true), o = { opacity: 1 }, l = { opacity: 0 }, u = ($) => () => r === Ss(e) ? $() : Promise.reject(), d = u(async () => {
+ V(e, On), await Promise.all(bo(e).map(($, y) => new Promise((A) => setTimeout(() => nt.start($, l, i / 2, "ease").then(A), y * s)))), ot(e, On);
+ }), v = u(async () => {
+ const $ = Pt(e);
+ V(e, Dn), t(), g(st(e), { opacity: 0 }), await Tn();
+ const y = st(e), A = Pt(e);
+ g(e, "alignContent", "flex-start"), Pt(e, $);
+ const D = bo(e);
+ g(y, l);
+ const B = D.map(async (q, Z) => {
+ await Hc(Z * s), await nt.start(q, o, i / 2, "ease");
+ });
+ $ !== A && B.push(nt.start(e, { height: A }, i / 2 + D.length * s, "ease")), await Promise.all(B).then(() => {
+ ot(e, Dn), r === Ss(e) && (g(e, { height: "", alignContent: "" }), g(y, { opacity: "" }), delete e.dataset.transition);
+ });
+ });
+ return W(e, On) ? $o(e).then(v) : W(e, Dn) ? $o(e).then(d).then(v) : d().then(v);
+ }
+ function Ss(t, e) {
+ return e && (t.dataset.transition = 1 + Ss(t)), L(t.dataset.transition) || 0;
+ }
+ function $o(t) {
+ return Promise.all(st(t).filter(nt.inProgress).map((e) => new Promise((i) => gt(e, "transitionend transitioncanceled", i))));
+ }
+ function bo(t) {
+ return po(st(t)).flat().filter(St);
+ }
+ function Hc(t) {
+ return new Promise((e) => setTimeout(e, t));
+ }
+ var yo = { props: { duration: Number, animation: Boolean }, data: { duration: 150, animation: "slide" }, methods: { animate(t, e = this.$el) {
+ const i = this.animation;
+ return (i === "fade" ? vo : i === "delayed-fade" ? (...r) => vo(...r, 40) : i ? Dc : () => (t(), Promise.resolve()))(t, e, this.duration).catch(ut);
+ } } };
+ const et = { TAB: 9, ESC: 27, SPACE: 32, END: 35, HOME: 36, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40 };
+ var Nc = { mixins: [yo], args: "target", props: { target: String, selActive: Boolean }, data: { target: "", selActive: false, attrItem: "uk-filter-control", cls: "uk-active", duration: 250 }, computed: { children: ({ target: t }, e) => ct(`${t} > *`, e), toggles: ({ attrItem: t }, e) => ct(`[${t}],[data-${t}]`, e) }, watch: { toggles(t) {
+ this.updateState();
+ const e = ct(this.selActive, this.$el);
+ for (const i of t) {
+ this.selActive !== false && mt(i, this.cls, b(e, i));
+ const s = zc(i);
+ pt(s, "a") && O(s, "role", "button");
+ }
+ }, children(t, e) {
+ e && this.updateState();
+ } }, events: { name: "click keydown", delegate: ({ attrItem: t }) => `[${t}],[data-${t}]`, handler(t) {
+ t.type === "keydown" && t.keyCode !== et.SPACE || t.target.closest("a,button") && (t.preventDefault(), this.apply(t.current));
+ } }, methods: { apply(t) {
+ const e = this.getState(), i = ko(t, this.attrItem, this.getState());
+ Lc(e, i) || this.setState(i);
+ }, getState() {
+ return this.toggles.filter((t) => W(t, this.cls)).reduce((t, e) => ko(e, this.attrItem, t), { filter: { "": "" }, sort: [] });
+ }, async setState(t, e = true) {
+ t = { filter: { "": "" }, sort: [], ...t }, M(this.$el, "beforeFilter", [this, t]);
+ for (const i of this.toggles)
+ mt(i, this.cls, jc(i, this.attrItem, t));
+ await Promise.all(ct(this.target, this.$el).map((i) => {
+ const s = () => Bc(t, i, st(i));
+ return e ? this.animate(s, i) : s();
+ })), M(this.$el, "afterFilter", [this]);
+ }, updateState() {
+ ke.write(() => this.setState(this.getState(), false));
+ } } };
+ function wo(t, e) {
+ return fi(It(t, e), ["filter"]);
+ }
+ function Lc(t, e) {
+ return ["filter", "sort"].every((i) => R(t[i], e[i]));
+ }
+ function Bc(t, e, i) {
+ for (const o of i)
+ g(o, "display", Object.values(t.filter).every((l) => !l || tt(o, l)) ? "" : "none");
+ const [s, r] = t.sort;
+ if (s) {
+ const o = Rc(i, s, r);
+ R(o, i) || $t(e, o);
+ }
+ }
+ function ko(t, e, i) {
+ const { filter: s, group: r, sort: o, order: l = "asc" } = wo(t, e);
+ return (s || vt(o)) && (r ? s ? (delete i.filter[""], i.filter[r] = s) : (delete i.filter[r], (Q(i.filter) || ("" in i.filter)) && (i.filter = { "": s || "" })) : i.filter = { "": s || "" }), vt(o) || (i.sort = [o, l]), i;
+ }
+ function jc(t, e, { filter: i = { "": "" }, sort: [s, r] }) {
+ const { filter: o = "", group: l = "", sort: u, order: d = "asc" } = wo(t, e);
+ return vt(u) ? l in i && o === i[l] || !o && l && !(l in i) && !i[""] : s === u && r === d;
+ }
+ function Rc(t, e, i) {
+ return [...t].sort((s, r) => It(s, e).localeCompare(It(r, e), undefined, { numeric: true }) * (i === "asc" || -1));
+ }
+ function zc(t) {
+ return F("a,button", t) || t;
+ }
+ var Uc = { args: "dataSrc", props: { dataSrc: String, sources: String, margin: String, target: String, loading: String }, data: { dataSrc: "", sources: false, margin: "50%", target: false, loading: "lazy" }, connected() {
+ this.loading !== "lazy" ? this.load() : Mn(this.$el) && (this.$el.loading = "lazy", Pn(this.$el));
+ }, disconnected() {
+ this.img && (this.img.onload = ""), delete this.img;
+ }, observe: Ui({ handler(t, e) {
+ this.load(), e.disconnect();
+ }, options: ({ margin: t }) => ({ rootMargin: t }), filter: ({ loading: t }) => t === "lazy", target: ({ $el: t, $props: e }) => e.target ? [t, ...Pi(e.target, t)] : t }), methods: { load() {
+ if (this.img)
+ return this.img;
+ const t = Mn(this.$el) ? this.$el : Wc(this.$el, this.dataSrc, this.sources);
+ return Ci(t, "loading"), Pn(this.$el, t.currentSrc), this.img = t;
+ } } };
+ function Pn(t, e) {
+ if (Mn(t)) {
+ const i = it(t);
+ (pt(i, "picture") ? st(i) : [t]).forEach((r) => xo(r, r));
+ } else
+ e && !b(t.style.backgroundImage, e) && (g(t, "backgroundImage", `url(${nn(e)})`), M(t, hi("load", false)));
+ }
+ const Fc = ["data-src", "data-srcset", "sizes"];
+ function xo(t, e) {
+ for (const i of Fc) {
+ const s = It(t, i);
+ s && O(e, i.replace(/data-/g, ""), s);
+ }
+ }
+ function Wc(t, e, i) {
+ const s = new Image;
+ return So(s, i), xo(t, s), s.onload = () => Pn(t, s.currentSrc), O(s, "src", e), s;
+ }
+ function So(t, e) {
+ if (e = qc(e), e.length) {
+ const i = fe("
");
+ for (const s of e) {
+ const r = fe("");
+ O(r, s), $t(i, r);
+ }
+ $t(i, t);
+ }
+ }
+ function qc(t) {
+ if (!t)
+ return [];
+ if (w(t, "["))
+ try {
+ t = JSON.parse(t);
+ } catch {
+ t = [];
+ }
+ else
+ t = fi(t);
+ return P(t) || (t = [t]), t.filter((e) => !Q(e));
+ }
+ function Mn(t) {
+ return pt(t, "img");
+ }
+ let Hn;
+ function _o(t) {
+ const e = J(t, "touchstart", (s) => {
+ if (s.targetTouches.length !== 1 || tt(s.target, 'input[type="range"'))
+ return;
+ let r = ue(s).y;
+ const o = J(t, "touchmove", (l) => {
+ const u = ue(l).y;
+ u !== r && (r = u, di(l.target).some((d) => {
+ if (!t.contains(d))
+ return false;
+ let { scrollHeight: v, clientHeight: $ } = d;
+ return $ < v;
+ }) || l.preventDefault());
+ }, { passive: false });
+ gt(t, "scroll touchend touchcanel", o, { capture: true });
+ }, { passive: true });
+ if (Hn)
+ return e;
+ Hn = true;
+ const { scrollingElement: i } = document;
+ return g(i, { overflowY: CSS.supports("overflow", "clip") ? "clip" : "hidden", touchAction: "none", paddingRight: ms(window) - i.clientWidth || "" }), () => {
+ Hn = false, e(), g(i, { overflowY: "", touchAction: "", paddingRight: "" });
+ };
+ }
+ var Lt = { connected() {
+ V(this.$el, this.$options.id);
+ } }, qi = { props: { container: Boolean }, data: { container: true }, computed: { container({ container: t }) {
+ return t === true && this.$container || t && F(t);
+ } } }, Ao = { props: { pos: String, offset: Boolean, flip: Boolean, shift: Boolean, inset: Boolean }, data: { pos: `bottom-${xt ? "right" : "left"}`, offset: false, flip: true, shift: true, inset: false }, connected() {
+ this.pos = this.$props.pos.split("-").concat("center").slice(0, 2), [this.dir, this.align] = this.pos, this.axis = b(["top", "bottom"], this.dir) ? "y" : "x";
+ }, methods: { positionAt(t, e, i) {
+ let s = [this.getPositionOffset(t), this.getShiftOffset(t)];
+ const r = [this.flip && "flip", this.shift && "shift"], o = { element: [this.inset ? this.dir : gs(this.dir), this.align], target: [this.dir, this.align] };
+ if (this.axis === "y") {
+ for (const d in o)
+ o[d].reverse();
+ s.reverse(), r.reverse();
+ }
+ const l = Nn(t), u = H(t);
+ g(t, { top: -u.height, left: -u.width }), io(t, e, { attach: o, offset: s, boundary: i, placement: r, viewportOffset: this.getViewportOffset(t) }), l();
+ }, getPositionOffset(t = this.$el) {
+ return At(this.offset === false ? g(t, "--uk-position-offset") : this.offset, this.axis === "x" ? "width" : "height", t) * (b(["left", "top"], this.dir) ? -1 : 1) * (this.inset ? -1 : 1);
+ }, getShiftOffset(t = this.$el) {
+ return this.align === "center" ? 0 : At(g(t, "--uk-position-shift-offset"), this.axis === "y" ? "width" : "height", t) * (b(["left", "top"], this.align) ? 1 : -1);
+ }, getViewportOffset(t) {
+ return At(g(t, "--uk-position-viewport-offset"));
+ } } };
+ function Nn(t) {
+ const e = ze(t), { scrollTop: i } = e;
+ return () => {
+ i !== e.scrollTop && (e.scrollTop = i);
+ };
+ }
+ var Fe = { props: { cls: Boolean, animation: "list", duration: Number, velocity: Number, origin: String, transition: String }, data: { cls: false, animation: [false], duration: 200, velocity: 0.2, origin: false, transition: "ease", clsEnter: "uk-togglable-enter", clsLeave: "uk-togglable-leave" }, computed: { hasAnimation: ({ animation: t }) => !!t[0], hasTransition: ({ animation: t }) => ["slide", "reveal"].some((e) => w(t[0], e)) }, methods: { async toggleElement(t, e, i) {
+ try {
+ return await Promise.all(_(t).map((s) => {
+ const r = ce(e) ? e : !this.isToggled(s);
+ if (!M(s, `before${r ? "show" : "hide"}`, [this]))
+ return Promise.reject();
+ const o = (rt(i) ? i : i === false || !this.hasAnimation ? Yc : this.hasTransition ? Vc : Jc)(s, r, this), l = r ? this.clsEnter : this.clsLeave;
+ V(s, l), M(s, r ? "show" : "hide", [this]);
+ const u = () => {
+ var d;
+ if (ot(s, l), M(s, r ? "shown" : "hidden", [this]), r) {
+ const v = Nn(s);
+ (d = ct("[autofocus]", s).find(St)) == null || d.focus(), v();
+ }
+ };
+ return o ? o.then(u, () => (ot(s, l), Promise.reject())) : u();
+ })), true;
+ } catch {
+ return false;
+ }
+ }, isToggled(t = this.$el) {
+ return t = S(t), W(t, this.clsEnter) ? true : W(t, this.clsLeave) ? false : this.cls ? W(t, this.cls.split(" ")[0]) : St(t);
+ }, _toggle(t, e) {
+ if (!t)
+ return;
+ e = !!e;
+ let i;
+ this.cls ? (i = b(this.cls, " ") || e !== W(t, this.cls), i && mt(t, this.cls, b(this.cls, " ") ? undefined : e)) : (i = e === t.hidden, i && (t.hidden = !e)), i && M(t, "toggled", [e, this]);
+ } } };
+ function Yc(t, e, { _toggle: i }) {
+ return ye.cancel(t), nt.cancel(t), i(t, e);
+ }
+ async function Vc(t, e, { animation: i, duration: s, velocity: r, transition: o, _toggle: l }) {
+ var u;
+ const [d = "reveal", v = "top"] = ((u = i[0]) == null ? undefined : u.split("-")) || [], $ = [["left", "right"], ["top", "bottom"]], y = $[b($[0], v) ? 0 : 1], A = y[1] === v, B = ["width", "height"][$.indexOf(y)], q = `margin-${y[0]}`, Z = `margin-${v}`;
+ let jt = H(t)[B];
+ const me = nt.inProgress(t);
+ await nt.cancel(t), e && l(t, true);
+ const _e = Object.fromEntries(["padding", "border", "width", "height", "minWidth", "minHeight", "overflowY", "overflowX", q, Z].map((Fa) => [Fa, t.style[Fa]])), se = H(t), Zn = x(g(t, q)), Ra = x(g(t, Z)), Ke = se[B] + Ra;
+ !me && !e && (jt += Ra);
+ const [Ls] = hn(t, "");
+ g(Ls, { boxSizing: "border-box", height: se.height, width: se.width, ...g(t, ["overflow", "padding", "borderTop", "borderRight", "borderBottom", "borderLeft", "borderImage", Z]) }), g(t, { padding: 0, border: 0, minWidth: 0, minHeight: 0, [Z]: 0, width: se.width, height: se.height, overflow: "hidden", [B]: jt });
+ const za = jt / Ke;
+ s = (r * Ke + s) * (e ? 1 - za : za);
+ const Ua = { [B]: e ? Ke : 0 };
+ A && (g(t, q, Ke - jt + Zn), Ua[q] = e ? Zn : Ke + Zn), !A ^ d === "reveal" && (g(Ls, q, -Ke + jt), nt.start(Ls, { [q]: e ? 0 : -Ke }, s, o));
+ try {
+ await nt.start(t, Ua, s, o);
+ } finally {
+ g(t, _e), Li(Ls.firstChild), e || l(t, false);
+ }
+ }
+ function Jc(t, e, i) {
+ const { animation: s, duration: r, _toggle: o } = i;
+ return e ? (o(t, true), ye.in(t, s[0], r, i.origin)) : ye.out(t, s[1] || s[0], r, i.origin).then(() => o(t, false));
+ }
+ const Mt = [];
+ var Ln = { mixins: [Lt, qi, Fe], props: { selPanel: String, selClose: String, escClose: Boolean, bgClose: Boolean, stack: Boolean, role: String }, data: { cls: "uk-open", escClose: true, bgClose: true, overlay: true, stack: false, role: "dialog" }, computed: { panel: ({ selPanel: t }, e) => F(t, e), transitionElement() {
+ return this.panel;
+ } }, connected() {
+ O(this.panel || this.$el, "role", this.role), this.overlay && O(this.panel || this.$el, "aria-modal", true);
+ }, beforeDisconnect() {
+ b(Mt, this) && this.toggleElement(this.$el, false, false);
+ }, events: [{ name: "click", delegate: ({ selClose: t }) => `${t},a[href*="#"]`, handler(t) {
+ const { current: e, defaultPrevented: i } = t, { hash: s } = e;
+ !i && s && ci(e) && !this.$el.contains(F(s)) ? this.hide() : tt(e, this.selClose) && (t.preventDefault(), this.hide());
+ } }, { name: "toggle", self: true, handler(t) {
+ t.defaultPrevented || (t.preventDefault(), this.isToggled() === b(Mt, this) && this.toggle());
+ } }, { name: "beforeshow", self: true, handler(t) {
+ if (b(Mt, this))
+ return false;
+ !this.stack && Mt.length ? (Promise.all(Mt.map((e) => e.hide())).then(this.show), t.preventDefault()) : Mt.push(this);
+ } }, { name: "show", self: true, handler() {
+ this.stack && g(this.$el, "zIndex", x(g(this.$el, "zIndex")) + Mt.length);
+ const t = [this.overlay && Gc(this), this.overlay && _o(this.$el), this.bgClose && Zc(this), this.escClose && Xc(this)];
+ gt(this.$el, "hidden", () => t.forEach((e) => e && e()), { self: true }), V(document.documentElement, this.clsPage);
+ } }, { name: "shown", self: true, handler() {
+ cs(this.$el) || O(this.$el, "tabindex", "-1"), tt(this.$el, ":focus-within") || this.$el.focus();
+ } }, { name: "hidden", self: true, handler() {
+ b(Mt, this) && Mt.splice(Mt.indexOf(this), 1), g(this.$el, "zIndex", ""), Mt.some((t) => t.clsPage === this.clsPage) || ot(document.documentElement, this.clsPage);
+ } }], methods: { toggle() {
+ return this.isToggled() ? this.hide() : this.show();
+ }, show() {
+ return this.container && it(this.$el) !== this.container ? ($t(this.container, this.$el), new Promise((t) => requestAnimationFrame(() => this.show().then(t)))) : this.toggleElement(this.$el, true, Eo);
+ }, hide() {
+ return this.toggleElement(this.$el, false, Eo);
+ } } };
+ function Eo(t, e, { transitionElement: i, _toggle: s }) {
+ return new Promise((r, o) => gt(t, "show hide", () => {
+ var l;
+ (l = t._reject) == null || l.call(t), t._reject = o, s(t, e);
+ const u = gt(i, "transitionstart", () => {
+ gt(i, "transitionend transitioncancel", r, { self: true }), clearTimeout(d);
+ }, { self: true }), d = setTimeout(() => {
+ u(), r();
+ }, Kc(g(i, "transitionDuration")));
+ })).then(() => delete t._reject);
+ }
+ function Kc(t) {
+ return t ? C(t, "ms") ? x(t) : x(t) * 1000 : 0;
+ }
+ function Gc(t) {
+ return J(document, "focusin", (e) => {
+ K(Mt) === t && !t.$el.contains(e.target) && t.$el.focus();
+ });
+ }
+ function Zc(t) {
+ return J(document, Wt, ({ target: e }) => {
+ K(Mt) !== t || t.overlay && !t.$el.contains(e) || !t.panel || t.panel.contains(e) || gt(document, `${be} ${as} scroll`, ({ defaultPrevented: i, type: s, target: r }) => {
+ !i && s === be && e === r && t.hide();
+ }, true);
+ });
+ }
+ function Xc(t) {
+ return J(document, "keydown", (e) => {
+ e.keyCode === 27 && K(Mt) === t && t.hide();
+ });
+ }
+ var Bn = { slide: { show(t) {
+ return [{ transform: bt(t * -100) }, { transform: bt() }];
+ }, percent(t) {
+ return Yi(t);
+ }, translate(t, e) {
+ return [{ transform: bt(e * -100 * t) }, { transform: bt(e * 100 * (1 - t)) }];
+ } } };
+ function Yi(t) {
+ return Math.abs(new DOMMatrix(g(t, "transform")).m41 / t.offsetWidth);
+ }
+ function bt(t = 0, e = "%") {
+ return t ? `translate3d(${t + e}, 0, 0)` : "";
+ }
+ function Qc(t, e, i, { animation: s, easing: r }) {
+ const { percent: o, translate: l, show: u = ut } = s, d = u(i), { promise: v, resolve: $ } = Io();
+ return { dir: i, show(y, A = 0, D) {
+ const B = D ? "linear" : r;
+ return y -= Math.round(y * ft(A, -1, 1)), this.translate(A), We(e, "itemin", { percent: A, duration: y, timing: B, dir: i }), We(t, "itemout", { percent: 1 - A, duration: y, timing: B, dir: i }), Promise.all([nt.start(e, d[1], y, B), nt.start(t, d[0], y, B)]).then(() => {
+ this.reset(), $();
+ }, ut), v;
+ }, cancel() {
+ return nt.cancel([e, t]);
+ }, reset() {
+ for (const y in d[0])
+ g([e, t], y, "");
+ }, async forward(y, A = this.percent()) {
+ return await this.cancel(), this.show(y, A, true);
+ }, translate(y) {
+ this.reset();
+ const A = l(y, i);
+ g(e, A[1]), g(t, A[0]), We(e, "itemtranslatein", { percent: y, dir: i }), We(t, "itemtranslateout", { percent: 1 - y, dir: i });
+ }, percent() {
+ return o(t || e, e, i);
+ }, getDistance() {
+ return t == null ? undefined : t.offsetWidth;
+ } };
+ }
+ function We(t, e, i) {
+ M(t, hi(e, false, false, i));
+ }
+ function Io() {
+ let t;
+ return { promise: new Promise((e) => t = e), resolve: t };
+ }
+ var jn = { props: { i18n: Object }, data: { i18n: null }, methods: { t(t, ...e) {
+ var i, s, r;
+ let o = 0;
+ return ((r = ((i = this.i18n) == null ? undefined : i[t]) || ((s = this.$options.i18n) == null ? undefined : s[t])) == null ? undefined : r.replace(/%s/g, () => e[o++] || "")) || "";
+ } } }, th = { props: { autoplay: Boolean, autoplayInterval: Number, pauseOnHover: Boolean }, data: { autoplay: false, autoplayInterval: 7000, pauseOnHover: true }, connected() {
+ O(this.list, "aria-live", this.autoplay ? "off" : "polite"), this.autoplay && this.startAutoplay();
+ }, disconnected() {
+ this.stopAutoplay();
+ }, update() {
+ O(this.slides, "tabindex", "-1");
+ }, events: [{ name: "visibilitychange", el: () => document, filter: ({ autoplay: t }) => t, handler() {
+ document.hidden ? this.stopAutoplay() : this.startAutoplay();
+ } }], methods: { startAutoplay() {
+ this.stopAutoplay(), this.interval = setInterval(() => {
+ this.stack.length || this.draggable && tt(this.$el, ":focus-within") && !tt(this.$el, ":focus") || this.pauseOnHover && tt(this.$el, ":hover") || this.show("next");
+ }, this.autoplayInterval);
+ }, stopAutoplay() {
+ clearInterval(this.interval);
+ } } };
+ const _s = { passive: false, capture: true }, Co = { passive: true, capture: true }, eh = "touchstart mousedown", Rn = "touchmove mousemove", To = "touchend touchcancel mouseup click input scroll";
+ var ih = { props: { draggable: Boolean }, data: { draggable: true, threshold: 10 }, created() {
+ for (const t of ["start", "move", "end"]) {
+ const e = this[t];
+ this[t] = (i) => {
+ const s = ue(i).x * (xt ? -1 : 1);
+ this.prevPos = s === this.pos ? this.prevPos : this.pos, this.pos = s, e(i);
+ };
+ }
+ }, events: [{ name: eh, passive: true, delegate: ({ selList: t }) => `${t} > *`, handler(t) {
+ !this.draggable || this.parallax || !Gt(t) && sh(t.target) || t.target.closest(Ti) || t.button > 0 || this.length < 2 || this.start(t);
+ } }, { name: "dragstart", handler(t) {
+ t.preventDefault();
+ } }, { name: Rn, el: ({ list: t }) => t, handler: ut, ..._s }], methods: { start() {
+ this.drag = this.pos, this._transitioner ? (this.percent = this._transitioner.percent(), this.drag += this._transitioner.getDistance() * this.percent * this.dir, this._transitioner.cancel(), this._transitioner.translate(this.percent), this.dragging = true, this.stack = []) : this.prevIndex = this.index, J(document, Rn, this.move, _s), J(document, To, this.end, Co), g(this.list, "userSelect", "none");
+ }, move(t) {
+ const e = this.pos - this.drag;
+ if (e === 0 || this.prevPos === this.pos || !this.dragging && Math.abs(e) < this.threshold)
+ return;
+ t.cancelable && t.preventDefault(), this.dragging = true, this.dir = e < 0 ? 1 : -1;
+ let { slides: i, prevIndex: s } = this, r = Math.abs(e), o = this.getIndex(s + this.dir), l = Oo.call(this, s, o);
+ for (;o !== s && r > l; )
+ this.drag -= l * this.dir, s = o, r -= l, o = this.getIndex(s + this.dir), l = Oo.call(this, s, o);
+ this.percent = r / l;
+ const u = i[s], d = i[o], v = this.index !== o, $ = s === o;
+ let y;
+ for (const A of [this.index, this.prevIndex])
+ b([o, s], A) || (M(i[A], "itemhidden", [this]), $ && (y = true, this.prevIndex = s));
+ (this.index === s && this.prevIndex !== s || y) && M(i[this.index], "itemshown", [this]), v && (this.prevIndex = s, this.index = o, $ || (M(u, "beforeitemhide", [this]), M(u, "itemhide", [this])), M(d, "beforeitemshow", [this]), M(d, "itemshow", [this])), this._transitioner = this._translate(Math.abs(this.percent), u, !$ && d);
+ }, end() {
+ if (je(document, Rn, this.move, _s), je(document, To, this.end, Co), this.dragging)
+ if (setTimeout(J(this.list, "click", (t) => t.preventDefault(), _s)), this.dragging = null, this.index === this.prevIndex)
+ this.percent = 1 - this.percent, this.dir *= -1, this._show(false, this.index, true), this._transitioner = null;
+ else {
+ const t = (xt ? this.dir * (xt ? 1 : -1) : this.dir) < 0 == this.prevPos > this.pos;
+ this.index = t ? this.index : this.prevIndex, t && (M(this.slides[this.prevIndex], "itemhidden", [this]), M(this.slides[this.index], "itemshown", [this]), this.percent = 1 - this.percent), this.show(this.dir > 0 && !t || this.dir < 0 && t ? "next" : "previous", true);
+ }
+ g(this.list, { userSelect: "" }), this.drag = this.percent = null;
+ } } };
+ function Oo(t, e) {
+ return this._getTransitioner(t, t !== e && e).getDistance() || this.slides[t].offsetWidth;
+ }
+ function sh(t) {
+ return g(t, "userSelect") !== "none" && N(t.childNodes).some((e) => e.nodeType === 3 && e.textContent.trim());
+ }
+ function nh(t) {
+ t._watches = [];
+ for (const e of t.$options.watch || [])
+ for (const [i, s] of Object.entries(e))
+ Do(t, s, i);
+ t._initial = true;
+ }
+ function Do(t, e, i) {
+ t._watches.push({ name: i, ...te(e) ? e : { handler: e } });
+ }
+ function rh(t, e) {
+ for (const { name: i, handler: s, immediate: r = true } of t._watches)
+ (t._initial && r || a(e, i) && !R(e[i], t[i])) && s.call(t, t[i], e[i]);
+ t._initial = false;
+ }
+ function oh(t) {
+ const { computed: e } = t.$options;
+ if (t._computed = {}, e)
+ for (const i in e)
+ Mo(t, i, e[i]);
+ }
+ const Po = { subtree: true, childList: true };
+ function Mo(t, e, i) {
+ t._hasComputed = true, Object.defineProperty(t, e, { enumerable: true, get() {
+ const { _computed: s, $props: r, $el: o } = t;
+ if (!a(s, e) && (s[e] = (i.get || i).call(t, r, o), i.observe && t._computedObserver)) {
+ const l = i.observe.call(t, r);
+ t._computedObserver.observe(["~", "+", "-"].includes(l[0]) ? o.parentElement : o.getRootNode(), Po);
+ }
+ return s[e];
+ }, set(s) {
+ const { _computed: r } = t;
+ r[e] = i.set ? i.set.call(t, s) : s, vt(r[e]) && delete r[e];
+ } });
+ }
+ function ah(t) {
+ t._hasComputed && (Ec(t, { read: () => rh(t, Ho(t)), events: ["resize", "computed"] }), t._computedObserver = gn(t.$el, () => zi(t, "computed"), Po), t._disconnect.push(() => {
+ t._computedObserver.disconnect(), t._computedObserver = null, Ho(t);
+ }));
+ }
+ function Ho(t) {
+ const e = { ...t._computed };
+ return t._computed = {}, e;
+ }
+ function lh(t) {
+ for (const e of t.$options.events || [])
+ if (a(e, "handler"))
+ No(t, e);
+ else
+ for (const i in e)
+ No(t, { name: i, handler: e[i] });
+ }
+ function No(t, { name: e, el: i, handler: s, capture: r, passive: o, delegate: l, filter: u, self: d }) {
+ u && !u.call(t, t) || t._disconnect.push(J(i ? i.call(t, t) : t.$el, e, l == null ? undefined : l.call(t, t), s.bind(t), { passive: o, capture: r, self: d }));
+ }
+ function ch(t) {
+ for (const e of t.$options.observe || [])
+ hh(t, e);
+ }
+ function hh(t, e) {
+ let { observe: i, target: s = t.$el, handler: r, options: o, filter: l, args: u } = e;
+ if (l && !l.call(t, t))
+ return;
+ const d = `_observe${t._disconnect.length}`;
+ rt(s) && !a(t, d) && Mo(t, d, () => {
+ const y = s.call(t, t);
+ return P(y) ? _(y) : y;
+ }), r = ht(r) ? t[r] : r.bind(t), rt(o) && (o = o.call(t, t));
+ const v = a(t, d) ? t[d] : s, $ = i(v, r, o, u);
+ rt(s) && P(t[d]) && Do(t, { handler: uh($, o), immediate: false }, d), t._disconnect.push(() => $.disconnect());
+ }
+ function uh(t, e) {
+ return (i, s) => {
+ for (const r of s)
+ b(i, r) || (t.unobserve ? t.unobserve(r) : t.observe && t.disconnect());
+ for (const r of i)
+ (!b(s, r) || !t.unobserve) && t.observe(r, e);
+ };
+ }
+ function dh(t) {
+ const { $options: e, $props: i } = t, s = Lo(e);
+ Y(i, s);
+ const { computed: r, methods: o } = e;
+ for (let l in i)
+ l in s && (!r || !a(r, l)) && (!o || !a(o, l)) && (t[l] = i[l]);
+ }
+ function Lo(t) {
+ const e = {}, { args: i = [], props: s = {}, el: r, id: o } = t;
+ if (!s)
+ return e;
+ for (const u in s) {
+ const d = c(u);
+ let v = It(r, d);
+ vt(v) || (v = s[u] === Boolean && v === "" ? true : En(s[u], v), !(d === "target" && w(v, "_")) && (e[u] = v));
+ }
+ const l = fi(It(r, o), i);
+ for (const u in l) {
+ const d = p(u);
+ vt(s[d]) || (e[d] = En(s[d], l[u]));
+ }
+ return e;
+ }
+ const fh = Ft((t, e) => {
+ const i = Object.keys(e), s = i.concat(t).map((r) => [c(r), `data-${c(r)}`]).flat();
+ return { attributes: i, filter: s };
+ });
+ function ph(t) {
+ const { $options: e, $props: i } = t, { id: s, props: r, el: o } = e;
+ if (!r)
+ return;
+ const { attributes: l, filter: u } = fh(s, r), d = new MutationObserver((v) => {
+ const $ = Lo(e);
+ v.some(({ attributeName: y }) => {
+ const A = y.replace("data-", "");
+ return (A === s ? l : [p(A), p(y)]).some((D) => !vt($[D]) && $[D] !== i[D]);
+ }) && t.$reset();
+ });
+ d.observe(o, { attributes: true, attributeFilter: u }), t._disconnect.push(() => d.disconnect());
+ }
+ function pi(t, e) {
+ var i;
+ (i = t.$options[e]) == null || i.forEach((s) => s.call(t));
+ }
+ function zn(t) {
+ t._connected || (dh(t), pi(t, "beforeConnect"), t._connected = true, t._disconnect = [], lh(t), Ac(t), nh(t), ch(t), ph(t), ah(t), pi(t, "connected"), zi(t));
+ }
+ function Un(t) {
+ t._connected && (pi(t, "beforeDisconnect"), t._disconnect.forEach((e) => e()), t._disconnect = null, pi(t, "disconnected"), t._connected = false);
+ }
+ let mh = 0;
+ function Bo(t, e = {}) {
+ e.data = $h(e, t.constructor.options), t.$options = Ri(t.constructor.options, e, t), t.$props = {}, t._uid = mh++, gh(t), vh(t), oh(t), pi(t, "created"), e.el && t.$mount(e.el);
+ }
+ function gh(t) {
+ const { data: e = {} } = t.$options;
+ for (const i in e)
+ t.$props[i] = t[i] = e[i];
+ }
+ function vh(t) {
+ const { methods: e } = t.$options;
+ if (e)
+ for (const i in e)
+ t[i] = e[i].bind(t);
+ }
+ function $h({ data: t = {} }, { args: e = [], props: i = {} }) {
+ P(t) && (t = t.slice(0, e.length).reduce((s, r, o) => (te(r) ? Y(s, r) : s[e[o]] = r, s), {}));
+ for (const s in t)
+ vt(t[s]) ? delete t[s] : i[s] && (t[s] = En(i[s], t[s]));
+ return t;
+ }
+ const Bt = function(t) {
+ Bo(this, t);
+ };
+ Bt.util = kc, Bt.options = {}, Bt.version = "3.22.2";
+ const bh = "uk-", qe = "__uikit__", mi = {};
+ function jo(t, e) {
+ var i, s;
+ const r = bh + c(t);
+ if (!e)
+ return mi[r].options || (mi[r] = Bt.extend(mi[r])), mi[r];
+ t = p(t), Bt[t] = (l, u) => Vi(t, l, u);
+ const o = (i = e.options) != null ? i : { ...e };
+ return o.id = r, o.name = t, (s = o.install) == null || s.call(o, Bt, o, t), Bt._initialized && !o.functional && requestAnimationFrame(() => Vi(t, `[${r}],[data-${r}]`)), mi[r] = o;
+ }
+ function Vi(t, e, i, ...s) {
+ const r = jo(t);
+ return r.options.functional ? new r({ data: te(e) ? e : [e, i, ...s] }) : e ? ct(e).map(o)[0] : o();
+ function o(l) {
+ const u = As(l, t);
+ if (u)
+ if (i)
+ u.$destroy();
+ else
+ return u;
+ return new r({ el: l, data: i });
+ }
+ }
+ function Ji(t) {
+ return (t == null ? undefined : t[qe]) || {};
+ }
+ function As(t, e) {
+ return Ji(t)[e];
+ }
+ function yh(t, e) {
+ t[qe] || (t[qe] = {}), t[qe][e.$options.name] = e;
+ }
+ function wh(t, e) {
+ var i;
+ (i = t[qe]) == null || delete i[e.$options.name], Q(t[qe]) && delete t[qe];
+ }
+ function kh(t) {
+ t.component = jo, t.getComponents = Ji, t.getComponent = As, t.update = Ro, t.use = function(i) {
+ if (!i.installed)
+ return i.call(null, this), i.installed = true, this;
+ }, t.mixin = function(i, s) {
+ s = (ht(s) ? this.component(s) : s) || this, s.options = Ri(s.options, i);
+ }, t.extend = function(i) {
+ i || (i = {});
+ const s = this, r = function(l) {
+ Bo(this, l);
+ };
+ return r.prototype = Object.create(s.prototype), r.prototype.constructor = r, r.options = Ri(s.options, i), r.super = s, r.extend = s.extend, r;
+ };
+ let e;
+ Object.defineProperty(t, "container", { get() {
+ return e || document.body;
+ }, set(i) {
+ e = F(i);
+ } });
+ }
+ function Ro(t, e) {
+ t = t ? S(t) : document.body;
+ for (const i of li(t).reverse())
+ zo(i, e);
+ we(t, (i) => zo(i, e));
+ }
+ function zo(t, e) {
+ const i = Ji(t);
+ for (const s in i)
+ zi(i[s], e);
+ }
+ function xh(t) {
+ t.prototype.$mount = function(e) {
+ const i = this;
+ yh(e, i), i.$options.el = e, e.isConnected && zn(i);
+ }, t.prototype.$destroy = function(e = false) {
+ const i = this, { el: s } = i.$options;
+ s && Un(i), pi(i, "destroy"), wh(s, i), e && Ct(i.$el);
+ }, t.prototype.$create = Vi, t.prototype.$emit = function(e) {
+ zi(this, e);
+ }, t.prototype.$update = function(e = this.$el, i) {
+ Ro(e, i);
+ }, t.prototype.$reset = function() {
+ Un(this), zn(this);
+ }, t.prototype.$getComponent = As, Object.defineProperties(t.prototype, { $el: { get() {
+ return this.$options.el;
+ } }, $container: Object.getOwnPropertyDescriptor(t, "container") });
+ }
+ let Sh = 1;
+ function Ye(t, e = null) {
+ return (e == null ? undefined : e.id) || `${t.$options.id}-${Sh++}`;
+ }
+ var _h = { i18n: { next: "Next slide", previous: "Previous slide", slideX: "Slide %s", slideLabel: "%s of %s", role: "String" }, data: { selNav: false, role: "region" }, computed: { nav: ({ selNav: t }, e) => F(t, e), navChildren() {
+ return st(this.nav);
+ }, selNavItem: ({ attrItem: t }) => `[${t}],[data-${t}]`, navItems(t, e) {
+ return ct(this.selNavItem, e);
+ } }, watch: { nav(t, e) {
+ O(t, "role", "tablist"), this.padNavitems(), e && this.$emit();
+ }, list(t) {
+ pt(t, "ul") && O(t, "role", "presentation");
+ }, navChildren(t) {
+ O(t, "role", "presentation"), this.padNavitems(), this.updateNav();
+ }, navItems(t) {
+ for (const e of t) {
+ const i = It(e, this.attrItem), s = F("a,button", e) || e;
+ let r, o = null;
+ if (at(i)) {
+ const l = L(i), u = this.slides[l];
+ u && (u.id || (u.id = Ye(this, u)), o = u.id), r = this.t("slideX", x(i) + 1), O(s, "role", "tab");
+ } else
+ this.list && (this.list.id || (this.list.id = Ye(this, this.list)), o = this.list.id), r = this.t(i);
+ O(s, { "aria-controls": o, "aria-label": O(s, "aria-label") || r });
+ }
+ }, slides(t) {
+ t.forEach((e, i) => O(e, { role: this.nav ? "tabpanel" : "group", "aria-label": this.t("slideLabel", i + 1, this.length), "aria-roledescription": this.nav ? null : "slide" })), this.padNavitems();
+ } }, connected() {
+ O(this.$el, { role: this.role, "aria-roledescription": "carousel" });
+ }, update: [{ write() {
+ this.navItems.concat(this.nav).forEach((t) => t && (t.hidden = !this.maxIndex)), this.updateNav();
+ }, events: ["resize"] }], events: [{ name: "click keydown", delegate: ({ selNavItem: t }) => t, filter: ({ parallax: t }) => !t, handler(t) {
+ t.target.closest("a,button") && (t.type === "click" || t.keyCode === et.SPACE) && (t.preventDefault(), this.show(It(t.current, this.attrItem)));
+ } }, { name: "itemshow", handler() {
+ this.updateNav();
+ } }, { name: "keydown", delegate: ({ selNavItem: t }) => t, filter: ({ parallax: t }) => !t, handler(t) {
+ const { current: e, keyCode: i } = t, s = It(e, this.attrItem);
+ if (!at(s))
+ return;
+ let r = i === et.HOME ? 0 : i === et.END ? "last" : i === et.LEFT ? "previous" : i === et.RIGHT ? "next" : -1;
+ ~r && (t.preventDefault(), this.show(r));
+ } }], methods: { updateNav() {
+ const t = this.getValidIndex();
+ for (const e of this.navItems) {
+ const i = It(e, this.attrItem), s = F("a,button", e) || e;
+ if (at(i)) {
+ const o = L(i) === t;
+ mt(e, this.clsActive, o), mt(s, "uk-disabled", !!this.parallax), O(s, { "aria-selected": o, tabindex: o && !this.parallax ? null : -1 }), o && s && tt(it(e), ":focus-within") && s.focus();
+ } else
+ mt(e, "uk-invisible", this.finite && (i === "previous" && t === 0 || i === "next" && t >= this.maxIndex));
+ }
+ }, padNavitems() {
+ if (!this.nav)
+ return;
+ const t = [];
+ for (let e = 0;e < this.length; e++) {
+ const i = `${this.attrItem}="${e}"`;
+ t[e] = this.navChildren.findLast((s) => s.matches(`[${i}]`)) || F(`
`);
+ }
+ R(t, this.navChildren) || de(this.nav, t);
+ } } };
+ const Ah = "cubic-bezier(0.25, 0.46, 0.45, 0.94)", Eh = "cubic-bezier(0.165, 0.84, 0.44, 1)";
+ var Uo = { mixins: [th, ih, _h, jn], props: { clsActivated: String, easing: String, index: Number, finite: Boolean, velocity: Number }, data: () => ({ easing: "ease", finite: false, velocity: 1, index: 0, prevIndex: -1, stack: [], percent: 0, clsActive: "uk-active", clsActivated: "", clsEnter: "uk-slide-enter", clsLeave: "uk-slide-leave", clsSlideActive: "uk-slide-active", Transitioner: false, transitionOptions: {} }), connected() {
+ this.prevIndex = -1, this.index = this.getValidIndex(this.$props.index), this.stack = [];
+ }, disconnected() {
+ ot(this.slides, this.clsActive);
+ }, computed: { duration: ({ velocity: t }, e) => Fo(e.offsetWidth / t), list: ({ selList: t }, e) => F(t, e), maxIndex() {
+ return this.length - 1;
+ }, slides() {
+ return st(this.list);
+ }, length() {
+ return this.slides.length;
+ } }, watch: { slides(t, e) {
+ e && this.$emit();
+ } }, events: { itemshow({ target: t }) {
+ V(t, this.clsEnter, this.clsSlideActive);
+ }, itemshown({ target: t }) {
+ ot(t, this.clsEnter);
+ }, itemhide({ target: t }) {
+ V(t, this.clsLeave);
+ }, itemhidden({ target: t }) {
+ ot(t, this.clsLeave, this.clsSlideActive);
+ } }, methods: { async show(t, e = false) {
+ var i;
+ if (this.dragging || !this.length || this.parallax)
+ return;
+ const { stack: s } = this, r = e ? 0 : s.length, o = () => {
+ s.splice(r, 1), s.length && this.show(s.shift(), true);
+ };
+ if (s[e ? "unshift" : "push"](t), !e && s.length > 1) {
+ s.length === 2 && ((i = this._transitioner) == null || i.forward(Math.min(this.duration, 200)));
+ return;
+ }
+ const l = this.getIndex(this.index), u = W(this.slides, this.clsActive) && this.slides[l], d = this.getIndex(t, this.index), v = this.slides[d];
+ if (u === v) {
+ o();
+ return;
+ }
+ if (this.dir = Ih(t, l), this.prevIndex = l, this.index = d, u && !M(u, "beforeitemhide", [this]) || !M(v, "beforeitemshow", [this, u])) {
+ this.index = this.prevIndex, o();
+ return;
+ }
+ u && M(u, "itemhide", [this]), M(v, "itemshow", [this]), await this._show(u, v, e), u && M(u, "itemhidden", [this]), M(v, "itemshown", [this]), s.shift(), this._transitioner = null, s.length && requestAnimationFrame(() => s.length && this.show(s.shift(), true));
+ }, getIndex(t = this.index, e = this.index) {
+ return ft(Ht(t, this.slides, e, this.finite), 0, Math.max(0, this.maxIndex));
+ }, getValidIndex(t = this.index, e = this.prevIndex) {
+ return this.getIndex(t, e);
+ }, async _show(t, e, i) {
+ if (this._transitioner = this._getTransitioner(t, e, this.dir, { easing: i ? e.offsetWidth < 600 ? Ah : Eh : this.easing, ...this.transitionOptions }), !i && !t) {
+ this._translate(1);
+ return;
+ }
+ const { length: s } = this.stack;
+ return this._transitioner[s > 1 ? "forward" : "show"](s > 1 ? Math.min(this.duration, 75 + 75 / (s - 1)) : this.duration, this.percent);
+ }, _translate(t, e = this.prevIndex, i = this.index) {
+ const s = this._getTransitioner(e === i ? false : e, i);
+ return s.translate(t), s;
+ }, _getTransitioner(t = this.prevIndex, e = this.index, i = this.dir || 1, s = this.transitionOptions) {
+ return new this.Transitioner(ee(t) ? this.slides[t] : t, ee(e) ? this.slides[e] : e, i * (xt ? -1 : 1), s);
+ } } };
+ function Ih(t, e) {
+ return t === "next" ? 1 : t === "previous" || t < e ? -1 : 1;
+ }
+ function Fo(t) {
+ return 0.5 * t + 300;
+ }
+ var Wo = { mixins: [Uo], props: { animation: String }, data: { animation: "slide", clsActivated: "uk-transition-active", Animations: Bn, Transitioner: Qc }, computed: { animation({ animation: t, Animations: e }) {
+ return { ...e[t] || e.slide, name: t };
+ }, transitionOptions() {
+ return { animation: this.animation };
+ } }, observe: pe(), events: { itemshow({ target: t }) {
+ V(t, this.clsActive);
+ }, itemshown({ target: t }) {
+ V(t, this.clsActivated);
+ }, itemhidden({ target: t }) {
+ ot(t, this.clsActive, this.clsActivated);
+ } } }, Ch = { ...Bn, fade: { show() {
+ return [{ opacity: 0, zIndex: 0 }, { zIndex: -1 }];
+ }, percent(t) {
+ return 1 - g(t, "opacity");
+ }, translate(t) {
+ return [{ opacity: 1 - t, zIndex: 0 }, { zIndex: -1 }];
+ } }, scale: { show() {
+ return [{ opacity: 0, transform: gi(1 + 0.5), zIndex: 0 }, { zIndex: -1 }];
+ }, percent(t) {
+ return 1 - g(t, "opacity");
+ }, translate(t) {
+ return [{ opacity: 1 - t, transform: gi(1 + 0.5 * t), zIndex: 0 }, { zIndex: -1 }];
+ } }, pull: { show(t) {
+ return t < 0 ? [{ transform: bt(30), zIndex: -1 }, { transform: bt(), zIndex: 0 }] : [{ transform: bt(-100), zIndex: 0 }, { transform: bt(), zIndex: -1 }];
+ }, percent(t, e, i) {
+ return i < 0 ? 1 - Yi(e) : Yi(t);
+ }, translate(t, e) {
+ return e < 0 ? [{ transform: bt(30 * t), zIndex: -1 }, { transform: bt(-100 * (1 - t)), zIndex: 0 }] : [{ transform: bt(-t * 100), zIndex: 0 }, { transform: bt(30 * (1 - t)), zIndex: -1 }];
+ } }, push: { show(t) {
+ return t < 0 ? [{ transform: bt(100), zIndex: 0 }, { transform: bt(), zIndex: -1 }] : [{ transform: bt(-30), zIndex: -1 }, { transform: bt(), zIndex: 0 }];
+ }, percent(t, e, i) {
+ return i > 0 ? 1 - Yi(e) : Yi(t);
+ }, translate(t, e) {
+ return e < 0 ? [{ transform: bt(t * 100), zIndex: 0 }, { transform: bt(-30 * (1 - t)), zIndex: -1 }] : [{ transform: bt(-30 * t), zIndex: -1 }, { transform: bt(100 * (1 - t)), zIndex: 0 }];
+ } } };
+ function gi(t) {
+ return `scale3d(${t}, ${t}, 1)`;
+ }
+ var qo = { ...Bn, fade: { show() {
+ return [{ opacity: 0 }, { opacity: 1 }];
+ }, percent(t) {
+ return 1 - g(t, "opacity");
+ }, translate(t) {
+ return [{ opacity: 1 - t }, { opacity: t }];
+ } }, scale: { show() {
+ return [{ opacity: 0, transform: gi(1 - 0.2) }, { opacity: 1, transform: gi(1) }];
+ }, percent(t) {
+ return 1 - g(t, "opacity");
+ }, translate(t) {
+ return [{ opacity: 1 - t, transform: gi(1 - 0.2 * t) }, { opacity: t, transform: gi(1 - 0.2 + 0.2 * t) }];
+ } } }, Yo = { i18n: { counter: "%s / %s" }, mixins: [Ln, Wo], functional: true, props: { counter: Boolean, preload: Number, nav: Boolean, slidenav: Boolean, delayControls: Number, videoAutoplay: Boolean, template: String }, data: () => ({ counter: false, preload: 1, nav: false, slidenav: true, delayControls: 3000, videoAutoplay: false, items: [], cls: "uk-open", clsPage: "uk-lightbox-page", clsFit: "uk-lightbox-items-fit", clsZoom: "uk-lightbox-zoom", attrItem: "uk-lightbox-item", selList: ".uk-lightbox-items", selClose: ".uk-close-large", selNav: ".uk-lightbox-thumbnav, .uk-lightbox-dotnav", selCaption: ".uk-lightbox-caption", selCounter: ".uk-lightbox-counter", pauseOnHover: false, velocity: 2, Animations: qo, template: '
' }), created() {
+ let t = F(this.template);
+ pt(t, "template") && (t = fe(de(t)));
+ const e = F(this.selList, t), i = this.$props.nav;
+ Ct(ct(this.selNav, t).filter((o) => !tt(o, `.uk-${i}`)));
+ for (const [o, l] of this.items.entries())
+ $t(e, "
"), i === "thumbnav" && Ni(Th(l, this.videoAutoplay), $t(F(this.selNav, t), `
`));
+ this.slidenav || Ct(ct(".uk-lightbox-slidenav", t)), this.counter || Ct(F(this.selCounter, t)), V(e, this.clsFit);
+ const s = F("[uk-close]", t), r = this.t("close");
+ s && r && (s.dataset.i18n = JSON.stringify({ label: r })), this.$mount($t(this.container, t));
+ }, events: [{ name: "click", self: true, filter: ({ bgClose: t }) => t, delegate: ({ selList: t }) => `${t} > *`, handler(t) {
+ t.defaultPrevented || this.hide();
+ } }, { name: "click", self: true, delegate: ({ clsZoom: t }) => `.${t}`, handler(t) {
+ t.defaultPrevented || mt(this.list, this.clsFit);
+ } }, { name: `${os} ${Wt} keydown`, filter: ({ delayControls: t }) => t, handler() {
+ this.showControls();
+ } }, { name: "shown", self: true, handler() {
+ this.showControls();
+ } }, { name: "hide", self: true, handler() {
+ this.hideControls(), ot(this.slides, this.clsActive), nt.stop(this.slides);
+ } }, { name: "hidden", self: true, handler() {
+ this.$destroy(true);
+ } }, { name: "keyup", el: () => document, handler({ keyCode: t }) {
+ if (!this.isToggled(this.$el) || !this.draggable)
+ return;
+ let e = -1;
+ t === et.LEFT ? e = "previous" : t === et.RIGHT ? e = "next" : t === et.HOME ? e = 0 : t === et.END && (e = "last"), ~e && this.show(e);
+ } }, { name: "beforeitemshow", handler(t) {
+ de(F(this.selCaption, this.$el), this.getItem().caption || ""), de(F(this.selCounter, this.$el), this.t("counter", this.index + 1, this.slides.length));
+ for (let e = -this.preload;e <= this.preload; e++)
+ this.loadItem(this.index + e);
+ this.isToggled() || (this.draggable = false, t.preventDefault(), this.toggleElement(this.$el, true, false), this.animation = qo.scale, ot(t.target, this.clsActive), this.stack.splice(1, 0, this.index));
+ } }, { name: "itemshown", handler() {
+ this.draggable = this.$props.draggable;
+ } }, { name: "itemload", async handler(t, e) {
+ const { source: i, type: s, attrs: r = {} } = e;
+ if (this.setItem(e, "
"), !i)
+ return;
+ let o;
+ const l = { allowfullscreen: "", style: "max-width: 100%; box-sizing: border-box;", "uk-responsive": "", "uk-video": `${!!this.videoAutoplay}` };
+ if (s === "image" || Vo(i)) {
+ const u = xe("img");
+ So(u, e.sources), O(u, { src: i, ...ie(e, ["alt", "srcset", "sizes"]), ...r }), J(u, "load", () => this.setItem(e, it(u) || u)), J(u, "error", () => this.setError(e));
+ } else if (s === "video" || Jo(i)) {
+ const u = this.videoAutoplay === "inline", d = xe("video", { src: i, playsinline: "", controls: u ? null : "", loop: u ? "" : null, poster: this.videoAutoplay ? null : e.poster, "uk-video": u ? "automute: true" : !!this.videoAutoplay, ...r });
+ J(d, "loadedmetadata", () => this.setItem(e, d)), J(d, "error", () => this.setError(e));
+ } else if (s === "iframe" || i.match(/\.(html|php)($|\?)/i))
+ this.setItem(e, xe("iframe", { src: i, allowfullscreen: "", class: "uk-lightbox-iframe", ...r }));
+ else if (o = i.match(/\/\/(?:.*?youtube(-nocookie)?\..*?(?:[?&]v=|\/shorts\/)|youtu\.be\/)([\w-]{11})[&?]?(.*)?/))
+ this.setItem(e, xe("iframe", { src: `https://www.youtube${o[1] || ""}.com/embed/${o[2]}${o[3] ? `?${o[3]}` : ""}`, width: 1920, height: 1080, ...l, ...r }));
+ else if (o = i.match(/\/\/.*?vimeo\.[a-z]+\/(\d+)[&?]?(.*)?/))
+ try {
+ const { height: u, width: d } = await (await fetch(`https://vimeo.com/api/oembed.json?maxwidth=1920&url=${encodeURI(i)}`, { credentials: "omit" })).json();
+ this.setItem(e, xe("iframe", { src: `https://player.vimeo.com/video/${o[1]}${o[2] ? `?${o[2]}` : ""}`, width: d, height: u, ...l, ...r }));
+ } catch {
+ this.setError(e);
+ }
+ } }, { name: "itemloaded", handler() {
+ this.$emit("resize");
+ } }], update: { read() {
+ for (const t of ct(`${this.selList} :not([controls]):is(img,video)`, this.$el))
+ mt(t, this.clsZoom, (t.naturalHeight || t.videoHeight) - this.$el.offsetHeight > Math.max(0, (t.naturalWidth || t.videoWidth) - this.$el.offsetWidth));
+ }, events: ["resize"] }, methods: { loadItem(t = this.index) {
+ const e = this.getItem(t);
+ this.getSlide(e).childElementCount || M(this.$el, "itemload", [e]);
+ }, getItem(t = this.index) {
+ return this.items[Ht(t, this.slides)];
+ }, setItem(t, e) {
+ M(this.$el, "itemloaded", [this, de(this.getSlide(t), e)]);
+ }, getSlide(t) {
+ return this.slides[this.items.indexOf(t)];
+ }, setError(t) {
+ this.setItem(t, '
');
+ }, showControls() {
+ clearTimeout(this.controlsTimer), this.controlsTimer = this.delayControls && setTimeout(this.hideControls, this.delayControls), V(this.$el, "uk-active", "uk-transition-active");
+ }, hideControls() {
+ ot(this.$el, "uk-active", "uk-transition-active");
+ } } };
+ function xe(t, e) {
+ const i = fe(`<${t}>`);
+ return O(i, e), i;
+ }
+ function Th(t, e) {
+ const i = t.poster || t.thumb && (t.type === "image" || Vo(t.thumb)) ? xe("img", { src: t.poster || t.thumb, alt: "" }) : t.thumb && (t.type === "video" || Jo(t.thumb)) ? xe("video", { src: t.thumb, loop: "", playsinline: "", "uk-video": `autoplay: ${!!e}; automute: true` }) : xe("canvas");
+ return t.thumbRatio && (i.style.aspectRatio = t.thumbRatio), i;
+ }
+ function Vo(t) {
+ return t == null ? undefined : t.match(/\.(avif|jpe?g|jfif|a?png|gif|svg|webp)($|\?)/i);
+ }
+ function Jo(t) {
+ return t == null ? undefined : t.match(/\.(mp4|webm|ogv)($|\?)/i);
+ }
+ const Oh = ".uk-disabled *, .uk-disabled, [disabled]";
+ var Dh = { install: Ph, props: { toggle: String }, data: { toggle: "a" }, computed: { toggles: ({ toggle: t }, e) => ct(t, e) }, watch: { toggles(t) {
+ this.hide();
+ for (const e of t)
+ pt(e, "a") && O(e, "role", "button");
+ } }, disconnected() {
+ this.hide();
+ }, events: { name: "click", delegate: ({ toggle: t }) => t, handler(t) {
+ t.defaultPrevented || (t.preventDefault(), tt(t.current, Oh) || this.show(t.current));
+ } }, methods: { show(t) {
+ let e = this.toggles.map(Ko);
+ if (this.nav === "thumbnav" && Mh.call(this, this.toggles, e), e = Ot(e, "source"), zt(t)) {
+ const { source: i } = Ko(t);
+ t = I(e, ({ source: s }) => i === s);
+ }
+ return this.panel = this.panel || this.$create("lightboxPanel", { ...this.$props, items: e }), J(this.panel.$el, "hidden", () => this.panel = null), this.panel.show(t);
+ }, hide() {
+ var t;
+ return (t = this.panel) == null ? undefined : t.hide();
+ } } };
+ function Ph(t, e) {
+ t.lightboxPanel || t.component("lightboxPanel", Yo), Y(e.props, t.component("lightboxPanel").options.props);
+ }
+ function Mh(t, e) {
+ for (const [i, s] of Object.entries(t)) {
+ if (e[i].thumb)
+ continue;
+ const r = li(s).reverse().concat(s).find((l) => this.$el.contains(l) && (l === s || ct(this.toggle, l).length === 1));
+ if (!r)
+ continue;
+ const o = F("img,video", r);
+ o && (e[i].thumb = o.currentSrc || o.poster || o.src, e[i].thumbRatio = (o.naturalWidth || o.videoWidth) / (o.naturalHeight || o.videoHeight));
+ }
+ }
+ function Ko(t) {
+ const e = {};
+ for (const i of t.getAttributeNames()) {
+ const s = i.replace(/^data-/, "");
+ e[s === "href" ? "source" : s] = t.getAttribute(i);
+ }
+ return e.attrs = fi(e.attrs), e;
+ }
+ var Hh = { mixins: [qi], functional: true, args: ["message", "status"], data: { message: "", status: "", timeout: 5000, group: "", pos: "top-center", clsContainer: "uk-notification", clsClose: "uk-notification-close", clsMsg: "uk-notification-message" }, install: Nh, computed: { marginProp: ({ pos: t }) => `margin-${t.match(/[a-z]+(?=-)/)[0]}`, startProps() {
+ return { opacity: 0, [this.marginProp]: -this.$el.offsetHeight };
+ } }, created() {
+ const t = `${this.clsContainer}-${this.pos}`, e = `data-${this.clsContainer}-container`, i = F(`.${t}[${e}]`, this.container) || $t(this.container, `
`);
+ this.$mount($t(i, `
`));
+ }, async connected() {
+ const t = x(g(this.$el, this.marginProp));
+ await nt.start(g(this.$el, this.startProps), { opacity: 1, [this.marginProp]: t }), this.timeout && (this.timer = setTimeout(this.close, this.timeout));
+ }, events: { click(t) {
+ t.target.closest('a[href="#"],a[href=""]') && t.preventDefault(), this.close();
+ }, [Be]() {
+ this.timer && clearTimeout(this.timer);
+ }, [ai]() {
+ this.timeout && (this.timer = setTimeout(this.close, this.timeout));
+ } }, methods: { async close(t) {
+ const e = (i) => {
+ const s = it(i);
+ M(i, "close", [this]), Ct(i), s != null && s.hasChildNodes() || Ct(s);
+ };
+ this.timer && clearTimeout(this.timer), t || await nt.start(this.$el, this.startProps), e(this.$el);
+ } } };
+ function Nh(t) {
+ t.notification.closeAll = function(e, i) {
+ we(document.body, (s) => {
+ const r = t.getComponent(s, "notification");
+ r && (!e || e === r.group) && r.close(i);
+ });
+ };
+ }
+ var Es = { props: { media: Boolean }, data: { media: false }, connected() {
+ const t = Lh(this.media, this.$el);
+ if (this.matchMedia = true, t) {
+ this.mediaObj = window.matchMedia(t);
+ const e = () => {
+ this.matchMedia = this.mediaObj.matches, M(this.$el, hi("mediachange", false, true, [this.mediaObj]));
+ };
+ this.offMediaObj = J(this.mediaObj, "change", () => {
+ e(), this.$emit("resize");
+ }), e();
+ }
+ }, disconnected() {
+ var t;
+ (t = this.offMediaObj) == null || t.call(this);
+ } };
+ function Lh(t, e) {
+ if (ht(t)) {
+ if (w(t, "@"))
+ t = x(g(e, `--uk-breakpoint-${t.slice(1)}`));
+ else if (isNaN(t))
+ return t;
+ }
+ return t && at(t) ? `(min-width: ${t}px)` : "";
+ }
+ function Go(t) {
+ return St(t) ? Math.ceil(Math.max(0, ...ct("[stroke]", t).map((e) => {
+ var i;
+ return ((i = e.getTotalLength) == null ? undefined : i.call(e)) || 0;
+ }))) : 0;
+ }
+ const Is = { x: Cs, y: Cs, rotate: Cs, scale: Cs, color: Fn, backgroundColor: Fn, borderColor: Fn, blur: Ve, hue: Ve, fopacity: Ve, grayscale: Ve, invert: Ve, saturate: Ve, sepia: Ve, opacity: jh, stroke: Rh, bgx: Qo, bgy: Qo }, { keys: Zo } = Object;
+ var Xo = { mixins: [Es], props: na(Zo(Is), "list"), data: na(Zo(Is), undefined), computed: { props(t, e) {
+ const i = {};
+ for (const r in t)
+ r in Is && !vt(t[r]) && (i[r] = t[r].slice());
+ const s = {};
+ for (const r in i)
+ s[r] = Is[r](r, e, i[r], i);
+ return s;
+ } }, events: { load() {
+ this.$emit();
+ } }, methods: { reset() {
+ for (const t in this.getCss(0))
+ g(this.$el, t, "");
+ }, getCss(t) {
+ const e = {};
+ for (const i in this.props)
+ this.props[i](e, ft(t));
+ return e.willChange = Object.keys(e).map(hs).join(","), e;
+ } } };
+ function Cs(t, e, i) {
+ let s = Os(i) || { x: "px", y: "px", rotate: "deg" }[t] || "", r;
+ return t === "x" || t === "y" ? (t = `translate${k(t)}`, r = (o) => x(x(o).toFixed(s === "px" ? 0 : 6))) : t === "scale" && (s = "", r = (o) => {
+ var l;
+ return Os([o]) ? At(o, "width", e, true) / e[`offset${(l = o.endsWith) != null && l.call(o, "vh") ? "Height" : "Width"}`] : x(o);
+ }), i.length === 1 && i.unshift(t === "scale" ? 1 : 0), i = vi(i, r), (o, l) => {
+ o.transform = `${o.transform || ""} ${t}(${Ki(i, l)}${s})`;
+ };
+ }
+ function Fn(t, e, i) {
+ return i.length === 1 && i.unshift(Gi(e, t, "")), i = vi(i, (s) => Bh(e, s)), (s, r) => {
+ const [o, l, u] = sa(i, r), d = o.map((v, $) => (v += u * (l[$] - v), $ === 3 ? x(v) : parseInt(v, 10))).join(",");
+ s[t] = `rgba(${d})`;
+ };
+ }
+ function Bh(t, e) {
+ return Gi(t, "color", e).split(/[(),]/g).slice(1, -1).concat(1).slice(0, 4).map(x);
+ }
+ function Ve(t, e, i) {
+ i.length === 1 && i.unshift(0);
+ const s = Os(i) || { blur: "px", hue: "deg" }[t] || "%";
+ return t = { fopacity: "opacity", hue: "hue-rotate" }[t] || t, i = vi(i), (r, o) => {
+ const l = Ki(i, o);
+ r.filter = `${r.filter || ""} ${t}(${l + s})`;
+ };
+ }
+ function jh(t, e, i) {
+ return i.length === 1 && i.unshift(Gi(e, t, "")), i = vi(i), (s, r) => {
+ s[t] = Ki(i, r);
+ };
+ }
+ function Rh(t, e, i) {
+ i.length === 1 && i.unshift(0);
+ const s = Os(i), r = Go(e);
+ return i = vi(i.reverse(), (o) => (o = x(o), s === "%" ? o * r / 100 : o)), i.some(([o]) => o) ? (g(e, "strokeDasharray", r), (o, l) => {
+ o.strokeDashoffset = Ki(i, l);
+ }) : ut;
+ }
+ function Qo(t, e, i, s) {
+ i.length === 1 && i.unshift(0);
+ const r = t === "bgy" ? "height" : "width";
+ s[t] = vi(i, (u) => At(u, r, e));
+ const o = ["bgx", "bgy"].filter((u) => (u in s));
+ if (o.length === 2 && t === "bgx")
+ return ut;
+ if (Gi(e, "backgroundSize", "") === "cover")
+ return zh(t, e, i, s);
+ const l = {};
+ for (const u of o)
+ l[u] = ta(e, u);
+ return ea(o, l, s);
+ }
+ function zh(t, e, i, s) {
+ const r = Uh(e);
+ if (!r.width)
+ return ut;
+ const o = { width: e.offsetWidth, height: e.offsetHeight }, l = ["bgx", "bgy"].filter(($) => ($ in s)), u = {};
+ for (const $ of l) {
+ const y = s[$].map(([Z]) => Z), A = Math.min(...y), D = Math.max(...y), B = y.indexOf(A) < y.indexOf(D), q = D - A;
+ u[$] = `${(B ? -q : 0) - (B ? A : D)}px`, o[$ === "bgy" ? "height" : "width"] += q;
+ }
+ const d = Zs.cover(r, o);
+ for (const $ of l) {
+ const y = $ === "bgy" ? "height" : "width", A = d[y] - o[y];
+ u[$] = `max(${ta(e, $)},-${A}px) + ${u[$]}`;
+ }
+ const v = ea(l, u, s);
+ return ($, y) => {
+ v($, y), $.backgroundSize = `${d.width}px ${d.height}px`, $.backgroundRepeat = "no-repeat";
+ };
+ }
+ function ta(t, e) {
+ return Gi(t, `background-position-${e.slice(-1)}`, "");
+ }
+ function ea(t, e, i) {
+ return function(s, r) {
+ for (const o of t) {
+ const l = Ki(i[o], r);
+ s[`background-position-${o.slice(-1)}`] = `calc(${e[o]} + ${l}px)`;
+ }
+ };
+ }
+ const ia = {}, Ts = {};
+ function Uh(t) {
+ const e = g(t, "backgroundImage").replace(/^none|url\(["']?(.+?)["']?\)$/, "$1");
+ if (Ts[e])
+ return Ts[e];
+ const i = new Image;
+ return e && (i.src = e, !i.naturalWidth && !ia[e]) ? (gt(i, "error load", () => {
+ Ts[e] = Wn(i), M(t, hi("load", false));
+ }), ia[e] = true, Wn(i)) : Ts[e] = Wn(i);
+ }
+ function Wn(t) {
+ return { width: t.naturalWidth, height: t.naturalHeight };
+ }
+ function vi(t, e = x) {
+ const i = [], { length: s } = t;
+ let r = 0;
+ for (let o = 0;o < s; o++) {
+ let [l, u] = ht(t[o]) ? t[o].trim().split(/ (?![^(]*\))/) : [t[o]];
+ if (l = e(l), u = u ? x(u) / 100 : null, o === 0 ? u === null ? u = 0 : u && i.push([l, 0]) : o === s - 1 && (u === null ? u = 1 : u !== 1 && (i.push([l, u]), u = 1)), i.push([l, u]), u === null)
+ r++;
+ else if (r) {
+ const d = i[o - r - 1][1], v = (u - d) / (r + 1);
+ for (let $ = r;$ > 0; $--)
+ i[o - $][1] = d + v * (r - $ + 1);
+ r = 0;
+ }
+ }
+ return i;
+ }
+ function sa(t, e) {
+ const i = I(t.slice(1), ([, s]) => e <= s) + 1;
+ return [t[i - 1][0], t[i][0], (e - t[i - 1][1]) / (t[i][1] - t[i - 1][1])];
+ }
+ function Ki(t, e) {
+ const [i, s, r] = sa(t, e);
+ return i + Math.abs(i - s) * r * (i < s ? 1 : -1);
+ }
+ const Fh = /^-?\d+(?:\.\d+)?(\S+)?/;
+ function Os(t, e) {
+ var i;
+ for (const s of t) {
+ const r = (i = s.match) == null ? undefined : i.call(s, Fh);
+ if (r)
+ return r[1];
+ }
+ return e;
+ }
+ function Gi(t, e, i) {
+ const s = t.style[e], r = g(g(t, e, i), e);
+ return t.style[e] = s, r;
+ }
+ function na(t, e) {
+ return t.reduce((i, s) => (i[s] = e, i), {});
+ }
+ function ra(t, e) {
+ return e >= 0 ? Math.pow(t, e + 1) : 1 - Math.pow(1 - t, 1 - e);
+ }
+ var Wh = { mixins: [Xo], props: { target: String, viewport: Number, easing: Number, start: String, end: String }, data: { target: false, viewport: 1, easing: 1, start: 0, end: 0 }, computed: { target: ({ target: t }, e) => oa(t && qt(t, e) || e), start({ start: t }) {
+ return At(t, "height", this.target, true);
+ }, end({ end: t, viewport: e }) {
+ return At(t || (e = (1 - e) * 100) && `${e}vh+${e}%`, "height", this.target, true);
+ } }, observe: [uo(), Fi({ target: ({ target: t }) => t }), pe({ target: ({ $el: t, target: e }) => [t, e, ze(e, true)] })], update: { read({ percent: t }, e) {
+ if (e.has("scroll") || (t = false), !St(this.$el))
+ return false;
+ if (!this.matchMedia)
+ return;
+ const i = t;
+ return t = ra(ws(this.target, this.start, this.end), this.easing), { percent: t, style: i === t ? false : this.getCss(t) };
+ }, write({ style: t }) {
+ if (!this.matchMedia) {
+ this.reset();
+ return;
+ }
+ t && g(this.$el, t);
+ }, events: ["scroll", "resize"] } };
+ function oa(t) {
+ return t ? "offsetTop" in t ? t : oa(it(t)) : document.documentElement;
+ }
+ var aa = { props: { parallax: Boolean, parallaxTarget: Boolean, parallaxStart: String, parallaxEnd: String, parallaxEasing: Number }, data: { parallax: false, parallaxTarget: false, parallaxStart: 0, parallaxEnd: 0, parallaxEasing: 0 }, observe: [pe({ target: ({ $el: t, parallaxTarget: e }) => [t, e], filter: ({ parallax: t }) => t }), Fi({ filter: ({ parallax: t }) => t })], computed: { parallaxTarget({ parallaxTarget: t }, e) {
+ return t && qt(t, e) || this.list;
+ } }, update: { read() {
+ if (!this.parallax)
+ return false;
+ const t = this.parallaxTarget;
+ if (!t)
+ return false;
+ const e = At(this.parallaxStart, "height", t, true), i = At(this.parallaxEnd, "height", t, true), s = ra(ws(t, e, i), this.parallaxEasing);
+ return { parallax: this.getIndexAt(s) };
+ }, write({ parallax: t }) {
+ const [e, i] = t, s = this.getValidIndex(e + Math.ceil(i)), r = this.slides[e], o = this.slides[s], { triggerShow: l, triggerShown: u, triggerHide: d, triggerHidden: v } = qh(this);
+ if (~this.prevIndex)
+ for (const y of new Set([this.index, this.prevIndex]))
+ b([s, e], y) || (d(this.slides[y]), v(this.slides[y]));
+ const $ = this.prevIndex !== e || this.index !== s;
+ this.dir = 1, this.prevIndex = e, this.index = s, r !== o && d(r), l(o), $ && u(r), this._translate(r === o ? 1 : i, r, o);
+ }, events: ["scroll", "resize"] }, methods: { getIndexAt(t) {
+ const e = t * (this.length - 1);
+ return [Math.floor(e), e % 1];
+ } } };
+ function qh(t) {
+ const { clsSlideActive: e, clsEnter: i, clsLeave: s } = t;
+ return { triggerShow: r, triggerShown: o, triggerHide: l, triggerHidden: u };
+ function r(d) {
+ W(d, s) && (l(d), u(d)), W(d, e) || (M(d, "beforeitemshow", [t]), M(d, "itemshow", [t]));
+ }
+ function o(d) {
+ W(d, i) && M(d, "itemshown", [t]);
+ }
+ function l(d) {
+ W(d, e) || r(d), W(d, i) && o(d), W(d, s) || (M(d, "beforeitemhide", [t]), M(d, "itemhide", [t]));
+ }
+ function u(d) {
+ W(d, s) && M(d, "itemhidden", [t]);
+ }
+ }
+ var la = { update: { write() {
+ if (this.stack.length || this.dragging || this.parallax)
+ return;
+ const t = this.getValidIndex();
+ !~this.prevIndex || this.index !== t ? this.show(t) : this._translate(1);
+ }, events: ["resize"] } }, ca = { observe: xs({ target: ({ slides: t }) => t, targets: (t) => t.getAdjacentSlides() }), methods: { getAdjacentSlides() {
+ return [1, -1].map((t) => this.slides[this.getIndex(this.index + t)]);
+ } } };
+ function Yh(t, e, i, { center: s, easing: r, list: o }) {
+ const l = t ? Zi(t, o, s) : Zi(e, o, s) + H(e).width * i, u = e ? Zi(e, o, s) : l + H(t).width * i * (xt ? -1 : 1), { promise: d, resolve: v } = Io();
+ return { dir: i, show($, y = 0, A) {
+ const D = A ? "linear" : r;
+ return $ -= Math.round($ * ft(y, -1, 1)), g(o, "transitionProperty", "none"), this.translate(y), g(o, "transitionProperty", ""), y = t ? y : ft(y, 0, 1), We(this.getItemIn(), "itemin", { percent: y, duration: $, timing: D, dir: i }), t && We(this.getItemIn(true), "itemout", { percent: 1 - y, duration: $, timing: D, dir: i }), nt.start(o, { transform: bt(-u * (xt ? -1 : 1), "px") }, $, D).then(v, ut), d;
+ }, cancel() {
+ return nt.cancel(o);
+ }, reset() {
+ g(o, "transform", "");
+ }, async forward($, y = this.percent()) {
+ return await this.cancel(), this.show($, y, true);
+ }, translate($) {
+ if ($ === this.percent())
+ return;
+ const y = this.getDistance() * i * (xt ? -1 : 1);
+ g(o, "transform", bt(ft(-u + (y - y * $), -$i(o), H(o).width) * (xt ? -1 : 1), "px"));
+ const A = this.getActives(), D = this.getItemIn(), B = this.getItemIn(true);
+ $ = t ? ft($, -1, 1) : 0;
+ for (const q of st(o)) {
+ const Z = b(A, q), jt = q === D, me = q === B, _e = jt || !me && (Z || i * (xt ? -1 : 1) === -1 ^ Ds(q, o) > Ds(t || e));
+ We(q, `itemtranslate${_e ? "in" : "out"}`, { dir: i, percent: me ? 1 - $ : jt ? $ : Z ? 1 : 0 });
+ }
+ }, percent() {
+ return Math.abs((new DOMMatrix(g(o, "transform")).m41 * (xt ? -1 : 1) + l) / (u - l));
+ }, getDistance() {
+ return Math.abs(u - l);
+ }, getItemIn($ = false) {
+ let y = this.getActives(), A = ua(o, Zi(e || t, o, s));
+ if ($) {
+ const D = y;
+ y = A, A = D;
+ }
+ return A[I(A, (D) => !b(y, D))];
+ }, getActives() {
+ return ua(o, Zi(t || e, o, s));
+ } };
+ }
+ function Zi(t, e, i) {
+ const s = Ds(t, e);
+ return i ? s - Vh(t, e) : Math.min(s, ha(e));
+ }
+ function ha(t) {
+ return Math.max(0, $i(t) - H(t).width);
+ }
+ function $i(t, e) {
+ return dt(st(t).slice(0, e), (i) => H(i).width);
+ }
+ function Vh(t, e) {
+ return H(e).width / 2 - H(t).width / 2;
+ }
+ function Ds(t, e) {
+ return t && (un(t).left + (xt ? H(t).width - H(e).width : 0)) * (xt ? -1 : 1) || 0;
+ }
+ function ua(t, e) {
+ e -= 1;
+ const i = H(t).width, s = e + i + 2;
+ return st(t).filter((r) => {
+ const o = Ds(r, t), l = o + Math.min(H(r).width, i);
+ return o >= e && l <= s;
+ });
+ }
+ var Jh = { mixins: [Lt, Uo, la, aa, ca], props: { center: Boolean, sets: Boolean, active: String }, data: { center: false, sets: false, attrItem: "uk-slider-item", selList: ".uk-slider-items", selNav: ".uk-slider-nav", clsContainer: "uk-slider-container", active: "all", Transitioner: Yh }, computed: { finite({ finite: t }) {
+ return t || Kh(this.list, this.center);
+ }, maxIndex() {
+ if (!this.finite || this.center && !this.sets)
+ return this.length - 1;
+ if (this.center)
+ return K(this.sets);
+ let t = 0;
+ const e = ha(this.list), i = I(this.slides, (s) => {
+ if (t >= e - 0.005)
+ return true;
+ t += H(s).width;
+ });
+ return ~i ? i : this.length - 1;
+ }, sets({ sets: t }) {
+ if (!t || this.parallax)
+ return;
+ let e = 0;
+ const i = [], s = H(this.list).width;
+ for (let r = 0;r < this.length; r++) {
+ const o = H(this.slides[r]).width;
+ e + o > s && (e = 0), this.center ? e < s / 2 && e + o + H(this.slides[Ht(r + 1, this.slides)]).width / 2 > s / 2 && (i.push(r), e = s / 2 - o / 2) : e === 0 && i.push(Math.min(r, this.maxIndex)), e += o;
+ }
+ if (i.length)
+ return i;
+ }, transitionOptions() {
+ return { center: this.center, list: this.list };
+ }, slides() {
+ return st(this.list).filter(St);
+ } }, connected() {
+ mt(this.$el, this.clsContainer, !F(`.${this.clsContainer}`, this.$el));
+ }, observe: pe({ target: ({ slides: t, $el: e }) => [e, ...t] }), update: { write() {
+ for (const t of this.navItems) {
+ const e = L(It(t, this.attrItem));
+ e !== false && (t.hidden = !this.maxIndex || e > this.maxIndex || this.sets && !b(this.sets, e));
+ }
+ this.reorder(), this.parallax || this._translate(1), this.updateActiveClasses();
+ }, events: ["resize"] }, events: { beforeitemshow(t) {
+ !this.dragging && this.sets && this.stack.length < 2 && !b(this.sets, this.index) && (this.index = this.getValidIndex());
+ const e = Math.abs(this.index - this.prevIndex + (this.dir > 0 && this.index < this.prevIndex || this.dir < 0 && this.index > this.prevIndex ? (this.maxIndex + 1) * this.dir : 0));
+ if (!this.dragging && e > 1) {
+ for (let r = 0;r < e; r++)
+ this.stack.splice(1, 0, this.dir > 0 ? "next" : "previous");
+ t.preventDefault();
+ return;
+ }
+ const i = this.dir < 0 || !this.slides[this.prevIndex] ? this.index : this.prevIndex, s = $i(this.list) / this.length;
+ this.duration = Fo(s / this.velocity) * (H(this.slides[i]).width / s), this.reorder();
+ }, itemshow() {
+ ~this.prevIndex && V(this._getTransitioner().getItemIn(), this.clsActive), this.updateActiveClasses(this.prevIndex);
+ }, itemshown() {
+ this.updateActiveClasses();
+ } }, methods: { reorder() {
+ if (this.finite) {
+ g(this.slides, "order", "");
+ return;
+ }
+ const t = this.dir > 0 && this.slides[this.prevIndex] ? this.prevIndex : this.index;
+ if (this.slides.forEach((r, o) => g(r, "order", this.dir > 0 && o < t ? 1 : this.dir < 0 && o >= this.index ? -1 : "")), !this.center || !this.length)
+ return;
+ const e = this.slides[t];
+ let i = H(this.list).width / 2 - H(e).width / 2, s = 0;
+ for (;i > 0; ) {
+ const r = this.getIndex(--s + t, t), o = this.slides[r];
+ g(o, "order", r > t ? -2 : -1), i -= H(o).width;
+ }
+ }, updateActiveClasses(t = this.index) {
+ let e = this._getTransitioner(t).getActives();
+ this.active !== "all" && (e = [this.slides[this.getValidIndex(t)]]);
+ const i = [this.clsActive, !this.sets || b(this.sets, x(this.index)) ? this.clsActivated : ""];
+ for (const s of this.slides) {
+ const r = b(e, s);
+ mt(s, i, r), O(s, "aria-hidden", !r);
+ for (const o of ct(Oi, s))
+ a(o, "_tabindex") || (o._tabindex = O(o, "tabindex")), O(o, "tabindex", r ? o._tabindex : -1);
+ }
+ }, getValidIndex(t = this.index, e = this.prevIndex) {
+ if (t = this.getIndex(t, e), !this.sets)
+ return t;
+ let i;
+ do {
+ if (b(this.sets, t))
+ return t;
+ i = t, t = this.getIndex(t + this.dir, e);
+ } while (t !== i);
+ return t;
+ }, getAdjacentSlides() {
+ const { width: t } = H(this.list), e = -t, i = t * 2, s = H(this.slides[this.index]).width, r = this.center ? t / 2 - s / 2 : 0, o = new Set;
+ for (const l of [-1, 1]) {
+ let u = r + (l > 0 ? s : 0), d = 0;
+ do {
+ const v = this.slides[this.getIndex(this.index + l + d++ * l)];
+ u += H(v).width * l, o.add(v);
+ } while (this.length > d && u > e && u < i);
+ }
+ return Array.from(o);
+ }, getIndexAt(t) {
+ let e = -1;
+ const i = this.center ? $i(this.list) - (H(this.slides[0]).width / 2 + H(K(this.slides)).width / 2) : $i(this.list, this.maxIndex);
+ let s = t * i, r = 0;
+ do {
+ const o = H(this.slides[++e]).width, l = this.center ? o / 2 + H(this.slides[e + 1]).width / 2 : o;
+ r = s / l % 1, s -= l;
+ } while (s >= 0 && e < this.maxIndex);
+ return [e, r];
+ } } };
+ function Kh(t, e) {
+ if (!t || t.length < 2)
+ return true;
+ const { width: i } = H(t);
+ if (!e)
+ return Math.ceil($i(t)) < Math.trunc(i + Gh(t));
+ const s = st(t), r = Math.trunc(i / 2);
+ for (const o in s) {
+ const l = s[o], u = H(l).width, d = new Set([l]);
+ let v = 0;
+ for (const $ of [-1, 1]) {
+ let y = u / 2, A = 0;
+ for (;y < r; ) {
+ const D = s[Ht(+o + $ + A++ * $, s)];
+ if (d.has(D))
+ return true;
+ y += H(D).width, d.add(D);
+ }
+ v = Math.max(v, u / 2 + H(s[Ht(+o + $, s)]).width / 2 - (y - r));
+ }
+ if (Math.trunc(v) > dt(s.filter(($) => !d.has($)), ($) => H($).width))
+ return true;
+ }
+ return false;
+ }
+ function Gh(t) {
+ return Math.max(0, ...st(t).map((e) => H(e).width));
+ }
+ var da = { mixins: [Xo], beforeConnect() {
+ this.item = this.$el.closest(`.${this.$options.id.replace("parallax", "items")} > *`);
+ }, disconnected() {
+ this.item = null;
+ }, events: [{ name: "itemin itemout", self: true, el: ({ item: t }) => t, handler({ type: t, detail: { percent: e, duration: i, timing: s, dir: r } }) {
+ ke.read(() => {
+ if (!this.matchMedia)
+ return;
+ const o = this.getCss(pa(t, r, e)), l = this.getCss(fa(t) ? 0.5 : r > 0 ? 1 : 0);
+ ke.write(() => {
+ g(this.$el, o), nt.start(this.$el, l, i, s).catch(ut);
+ });
+ });
+ } }, { name: "transitioncanceled transitionend", self: true, el: ({ item: t }) => t, handler() {
+ nt.cancel(this.$el);
+ } }, { name: "itemtranslatein itemtranslateout", self: true, el: ({ item: t }) => t, handler({ type: t, detail: { percent: e, dir: i } }) {
+ ke.read(() => {
+ if (!this.matchMedia) {
+ this.reset();
+ return;
+ }
+ const s = this.getCss(pa(t, i, e));
+ ke.write(() => g(this.$el, s));
+ });
+ } }] };
+ function fa(t) {
+ return C(t, "in");
+ }
+ function pa(t, e, i) {
+ return i /= 2, fa(t) ^ e < 0 ? i : 1 - i;
+ }
+ var Zh = { mixins: [Lt, Wo, la, aa, ca], props: { ratio: String, minHeight: String, maxHeight: String }, data: { ratio: "16:9", minHeight: undefined, maxHeight: undefined, selList: ".uk-slideshow-items", attrItem: "uk-slideshow-item", selNav: ".uk-slideshow-nav", Animations: Ch }, watch: { list(t) {
+ g(t, { aspectRatio: this.ratio ? this.ratio.replace(":", "/") : undefined, minHeight: this.minHeight, maxHeight: this.maxHeight, width: "100%" });
+ } }, methods: { getAdjacentSlides() {
+ return [1, -1].map((t) => this.slides[this.getIndex(this.index + t)]);
+ } } }, Xh = { mixins: [Lt, yo], props: { group: String, threshold: Number, clsItem: String, clsPlaceholder: String, clsDrag: String, clsDragState: String, clsBase: String, clsNoDrag: String, clsEmpty: String, clsCustom: String, handle: String }, data: { group: false, threshold: 5, clsItem: "uk-sortable-item", clsPlaceholder: "uk-sortable-placeholder", clsDrag: "uk-sortable-drag", clsDragState: "uk-drag", clsBase: "uk-sortable", clsNoDrag: "uk-sortable-nodrag", clsEmpty: "uk-sortable-empty", clsCustom: "", handle: false, pos: {} }, events: { name: Wt, passive: false, handler(t) {
+ this.init(t);
+ } }, computed: { target: (t, e) => (e.tBodies || [e])[0], items() {
+ return st(this.target);
+ }, isEmpty() {
+ return !this.items.length;
+ }, handles({ handle: t }, e) {
+ return t ? ct(t, e) : this.items;
+ } }, watch: { isEmpty(t) {
+ mt(this.target, this.clsEmpty, t);
+ }, handles(t, e) {
+ g(e, { touchAction: "", userSelect: "" }), g(t, { touchAction: "none", userSelect: "none" });
+ } }, update: { write(t) {
+ if (!this.drag || !it(this.placeholder))
+ return;
+ const { pos: { x: e, y: i }, origin: { offsetTop: s, offsetLeft: r }, placeholder: o } = this;
+ g(this.drag, { top: i - s, left: e - r });
+ const l = this.getSortable(document.elementFromPoint(e, i));
+ if (!l)
+ return;
+ const { items: u } = l;
+ if (u.some(nt.inProgress))
+ return;
+ const d = iu(u, { x: e, y: i });
+ if (u.length && (!d || d === o))
+ return;
+ const v = this.getSortable(o), $ = su(l.target, d, o, e, i, l === v && t.moved !== d);
+ $ !== false && ($ && o === $ || (l !== v ? (v.remove(o), t.moved = d) : delete t.moved, l.insert(o, $), this.touched.add(l)));
+ }, events: ["move"] }, methods: { init(t) {
+ const { target: e, button: i, defaultPrevented: s } = t, [r] = this.items.filter((o) => o.contains(e));
+ !r || s || i > 0 || ls(e) || e.closest(`.${this.clsNoDrag}`) || this.handle && !e.closest(this.handle) || (t.preventDefault(), this.pos = ue(t), this.touched = new Set([this]), this.placeholder = r, this.origin = { target: e, index: he(r), ...this.pos }, J(document, os, this.move), J(document, be, this.end), this.threshold || this.start(t));
+ }, start(t) {
+ this.drag = eu(this.$container, this.placeholder);
+ const { left: e, top: i } = H(this.placeholder);
+ Y(this.origin, { offsetLeft: this.pos.x - e, offsetTop: this.pos.y - i }), V(this.drag, this.clsDrag, this.clsCustom), V(this.placeholder, this.clsPlaceholder), V(this.items, this.clsItem), V(document.documentElement, this.clsDragState), M(this.$el, "start", [this, this.placeholder]), Qh(this.pos), this.move(t);
+ }, move: ru(function(t) {
+ Y(this.pos, ue(t)), !this.drag && (Math.abs(this.pos.x - this.origin.x) > this.threshold || Math.abs(this.pos.y - this.origin.y) > this.threshold) && this.start(t), this.$emit("move");
+ }), end() {
+ if (je(document, os, this.move), je(document, be, this.end), !this.drag)
+ return;
+ tu();
+ const t = this.getSortable(this.placeholder);
+ this === t ? this.origin.index !== he(this.placeholder) && M(this.$el, "moved", [this, this.placeholder]) : (M(t.$el, "added", [t, this.placeholder]), M(this.$el, "removed", [this, this.placeholder])), M(this.$el, "stop", [this, this.placeholder]), Ct(this.drag), this.drag = null;
+ for (const { clsPlaceholder: e, clsItem: i } of this.touched)
+ for (const s of this.touched)
+ ot(s.items, e, i);
+ this.touched = null, ot(document.documentElement, this.clsDragState);
+ }, insert(t, e) {
+ V(this.items, this.clsItem), e && e.previousElementSibling !== t ? this.animate(() => ds(e, t)) : !e && this.target.lastElementChild !== t && this.animate(() => $t(this.target, t));
+ }, remove(t) {
+ this.target.contains(t) && this.animate(() => Ct(t));
+ }, getSortable(t) {
+ do {
+ const e = this.$getComponent(t, "sortable");
+ if (e && (e === this || this.group !== false && e.group === this.group))
+ return e;
+ } while (t = it(t));
+ } } };
+ let ma;
+ function Qh(t) {
+ let e = Date.now();
+ ma = setInterval(() => {
+ let { x: i, y: s } = t;
+ s += document.scrollingElement.scrollTop;
+ const r = (Date.now() - e) * 0.3;
+ e = Date.now(), di(document.elementFromPoint(i, t.y)).reverse().some((o) => {
+ let { scrollTop: l, scrollHeight: u } = o;
+ const { top: d, bottom: v, height: $ } = Yt(o);
+ if (d < s && d + 35 > s)
+ l -= r;
+ else if (v > s && v - 35 < s)
+ l += r;
+ else
+ return;
+ if (l > 0 && l < u - $)
+ return o.scrollTop = l, true;
+ });
+ }, 15);
+ }
+ function tu() {
+ clearInterval(ma);
+ }
+ function eu(t, e) {
+ let i;
+ if (pt(e, "li", "tr")) {
+ i = F("
"), $t(i, e.cloneNode(true).children);
+ for (const s of e.getAttributeNames())
+ O(i, s, e.getAttribute(s));
+ } else
+ i = e.cloneNode(true);
+ return $t(t, i), g(i, "margin", "0", "important"), g(i, { boxSizing: "border-box", width: e.offsetWidth, height: e.offsetHeight, padding: g(e, "padding") }), Pt(i.firstElementChild, Pt(e.firstElementChild)), i;
+ }
+ function iu(t, e) {
+ return t[I(t, (i) => kt(e, H(i)))];
+ }
+ function su(t, e, i, s, r, o) {
+ if (!st(t).length)
+ return;
+ const l = H(e);
+ if (!o)
+ return nu(t, i) || r < l.top + l.height / 2 ? e : e.nextElementSibling;
+ const u = H(i), d = ga([l.top, l.bottom], [u.top, u.bottom]), [v, $, y, A] = d ? [s, "width", "left", "right"] : [r, "height", "top", "bottom"], D = u[$] < l[$] ? l[$] - u[$] : 0;
+ return u[y] < l[y] ? D && v < l[y] + D ? false : e.nextElementSibling : D && v > l[A] - D ? false : e;
+ }
+ function nu(t, e) {
+ const i = st(t).length === 1;
+ i && $t(t, e);
+ const s = st(t), r = s.some((o, l) => {
+ const u = H(o);
+ return s.slice(l + 1).some((d) => {
+ const v = H(d);
+ return !ga([u.left, u.right], [v.left, v.right]);
+ });
+ });
+ return i && Ct(e), r;
+ }
+ function ga(t, e) {
+ return t[1] > e[0] && e[1] > t[0];
+ }
+ function ru(t) {
+ let e;
+ return function(...i) {
+ e || (e = true, t.call(this, ...i), requestAnimationFrame(() => e = false));
+ };
+ }
+ var ou = { mixins: [qi, Fe, Ao], data: { pos: "top", animation: ["uk-anmt-scale-up"], duration: 100, cls: "uk-active" }, connected() {
+ au(this.$el);
+ }, disconnected() {
+ this.hide();
+ }, methods: { show() {
+ if (this.isToggled(this.tooltip || null))
+ return;
+ const { delay: t = 0, title: e } = cu(this.$options);
+ if (!e)
+ return;
+ const i = O(this.$el, "title"), s = J(this.$el, ["blur", ai], (o) => !Gt(o) && this.hide());
+ this.reset = () => {
+ O(this.$el, { title: i, "aria-describedby": null }), s();
+ };
+ const r = Ye(this);
+ O(this.$el, { title: null, "aria-describedby": r }), clearTimeout(this.showTimer), this.showTimer = setTimeout(() => this._show(e, r), t);
+ }, async hide() {
+ var t;
+ tt(this.$el, "input:focus") || (clearTimeout(this.showTimer), this.isToggled(this.tooltip || null) && await this.toggleElement(this.tooltip, false, false), (t = this.reset) == null || t.call(this), Ct(this.tooltip), this.tooltip = null);
+ }, async _show(t, e) {
+ this.tooltip = $t(this.container, `
`), J(this.tooltip, "toggled", (i, s) => {
+ if (!s)
+ return;
+ const r = () => this.positionAt(this.tooltip, this.$el);
+ r();
+ const [o, l] = lu(this.tooltip, this.$el, this.pos);
+ this.origin = this.axis === "y" ? `${gs(o)}-${l}` : `${l}-${gs(o)}`;
+ const u = [gt(document, `keydown ${Wt}`, this.hide, false, (d) => d.type === Wt && !this.$el.contains(d.target) || d.type === "keydown" && d.keyCode === et.ESC), J([document, ...Ue(this.$el)], "scroll", r, { passive: true })];
+ gt(this.tooltip, "hide", () => u.forEach((d) => d()), { self: true });
+ }), await this.toggleElement(this.tooltip, true) || this.hide();
+ } }, events: { [`focus ${Be} ${Wt}`](t) {
+ (!Gt(t) || t.type === Wt) && document.readyState !== "loading" && this.show();
+ } } };
+ function au(t) {
+ cs(t) || O(t, "tabindex", "0");
+ }
+ function lu(t, e, [i, s]) {
+ const r = G(t), o = G(e), l = [["left", "right"], ["top", "bottom"]];
+ for (const d of l) {
+ if (r[d[0]] >= o[d[1]]) {
+ i = d[1];
+ break;
+ }
+ if (r[d[1]] <= o[d[0]]) {
+ i = d[0];
+ break;
+ }
+ }
+ return s = (b(l[0], i) ? l[1] : l[0]).find((d) => r[d] === o[d]) || "center", [i, s];
+ }
+ function cu(t) {
+ const { el: e, id: i, data: s } = t;
+ return ["delay", "title"].reduce((r, o) => ({ [o]: It(e, o), ...r }), { ...fi(It(e, i), ["title"]), ...s });
+ }
+ var hu = Object.freeze({ __proto__: null, Filter: Nc, Lightbox: Dh, LightboxPanel: Yo, Notification: Hh, Parallax: Wh, Slider: Jh, SliderParallax: da, Slideshow: Zh, SlideshowParallax: da, Sortable: Xh, Tooltip: ou });
+ function uu(t) {
+ Le && window.MutationObserver && (document.body ? requestAnimationFrame(() => va(t)) : new MutationObserver((e, i) => {
+ document.body && (va(t), i.disconnect());
+ }).observe(document.documentElement, { childList: true }));
+ }
+ function va(t) {
+ M(document, "uikit:init", t), document.body && we(document.body, $a), new MutationObserver(du).observe(document, { subtree: true, childList: true, attributes: true }), t._initialized = true;
+ }
+ function du(t) {
+ var e;
+ for (const { addedNodes: i, removedNodes: s, target: r, attributeName: o } of t) {
+ for (const u of i)
+ we(u, $a);
+ for (const u of s)
+ we(u, fu);
+ const l = o && ba(o);
+ l && ($e(r, o) ? Vi(l, r) : (e = As(r, l)) == null || e.$destroy());
+ }
+ }
+ function $a(t) {
+ const e = Ji(t);
+ for (const i in e)
+ zn(e[i]);
+ for (const i of t.getAttributeNames()) {
+ const s = ba(i);
+ s && Vi(s, t);
+ }
+ }
+ function fu(t) {
+ const e = Ji(t);
+ for (const i in e)
+ Un(e[i]);
+ }
+ function ba(t) {
+ w(t, "data-") && (t = t.slice(5));
+ const e = mi[t];
+ return e && (e.options || e).name;
+ }
+ kh(Bt), xh(Bt);
+ var ya = { mixins: [Lt, Fe], props: { animation: Boolean, targets: String, active: null, collapsible: Boolean, multiple: Boolean, toggle: String, content: String, offset: Number }, data: { targets: "> *", active: false, animation: true, collapsible: true, multiple: false, clsOpen: "uk-open", toggle: "> .uk-accordion-title", content: "> .uk-accordion-content", offset: 0 }, computed: { items: ({ targets: t }, e) => ct(t, e), toggles({ toggle: t }) {
+ return this.items.map((e) => F(t, e));
+ }, contents({ content: t }) {
+ return this.items.map((e) => {
+ var i;
+ return ((i = e._wrapper) == null ? undefined : i.firstElementChild) || F(t, e);
+ });
+ } }, watch: { items(t, e) {
+ if (e || W(t, this.clsOpen))
+ return;
+ const i = this.active !== false && t[Number(this.active)] || !this.collapsible && t[0];
+ i && this.toggle(i, false);
+ }, toggles() {
+ this.$emit();
+ }, contents(t) {
+ for (const e of t) {
+ const i = W(this.items.find((s) => s.contains(e)), this.clsOpen);
+ Ps(e, !i);
+ }
+ this.$emit();
+ } }, observe: xs(), events: [{ name: "click keydown", delegate: ({ targets: t, $props: e }) => `${t} ${e.toggle}`, async handler(t) {
+ var e;
+ t.type === "keydown" && t.keyCode !== et.SPACE || (t.preventDefault(), (e = this._off) == null || e.call(this), this._off = mu(t.target), await this.toggle(he(this.toggles, t.current)), this._off());
+ } }, { name: "shown hidden", self: true, delegate: ({ targets: t }) => t, handler() {
+ this.$emit();
+ } }], update() {
+ const t = Di(this.items, `.${this.clsOpen}`);
+ for (const e in this.items) {
+ const i = this.toggles[e], s = this.contents[e];
+ if (!i || !s)
+ continue;
+ i.id = Ye(this, i), s.id = Ye(this, s);
+ const r = b(t, this.items[e]);
+ O(i, { role: pt(i, "a") ? "button" : null, "aria-controls": s.id, "aria-expanded": r, "aria-disabled": !this.collapsible && t.length < 2 && r }), O(s, { role: "region", "aria-labelledby": i.id }), pt(s, "ul") && O(st(s), "role", "presentation");
+ }
+ }, methods: { toggle(t, e) {
+ t = this.items[Ht(t, this.items)];
+ let i = [t];
+ const s = Di(this.items, `.${this.clsOpen}`);
+ if (!this.multiple && !b(s, i[0]) && (i = i.concat(s)), !(!this.collapsible && s.length < 2 && b(s, t)))
+ return Promise.all(i.map((r) => this.toggleElement(r, !b(s, r), (o, l) => {
+ if (mt(o, this.clsOpen, l), e === false || !this.animation) {
+ Ps(F(this.content, o), !l);
+ return;
+ }
+ return pu(o, l, this);
+ })));
+ } } };
+ function Ps(t, e) {
+ t && (t.hidden = e);
+ }
+ async function pu(t, e, { content: i, duration: s, velocity: r, transition: o }) {
+ var l;
+ i = ((l = t._wrapper) == null ? undefined : l.firstElementChild) || F(i, t), t._wrapper || (t._wrapper = Ni(i, "
"));
+ const u = t._wrapper;
+ g(u, "overflow", "hidden");
+ const d = x(g(u, "height"));
+ await nt.cancel(u), Ps(i, false);
+ const v = dt(["marginTop", "marginBottom"], (y) => g(i, y)) + H(i).height, $ = d / v;
+ s = (r * v + s) * (e ? 1 - $ : $), g(u, "height", d), await nt.start(u, { height: e ? v : 0 }, s, o), Li(i), delete t._wrapper, e || Ps(i, true);
+ }
+ function mu(t) {
+ const e = ze(t, true);
+ let i;
+ return function s() {
+ i = requestAnimationFrame(() => {
+ const { top: r } = H(t);
+ r < 0 && (e.scrollTop += r), s();
+ });
+ }(), () => requestAnimationFrame(() => cancelAnimationFrame(i));
+ }
+ var gu = { mixins: [Lt, Fe], args: "animation", props: { animation: Boolean, close: String }, data: { animation: true, selClose: ".uk-alert-close", duration: 150 }, events: { name: "click", delegate: ({ selClose: t }) => t, handler(t) {
+ t.preventDefault(), this.close();
+ } }, methods: { async close() {
+ await this.toggleElement(this.$el, false, vu), this.$destroy(true);
+ } } };
+ function vu(t, e, { duration: i, transition: s, velocity: r }) {
+ const o = x(g(t, "height"));
+ return g(t, "height", o), nt.start(t, { height: 0, marginTop: 0, marginBottom: 0, paddingTop: 0, paddingBottom: 0, borderTop: 0, borderBottom: 0, opacity: 0 }, r * o + i, s);
+ }
+ var wa = { args: "autoplay", props: { automute: Boolean, autoplay: Boolean }, data: { automute: false, autoplay: true }, beforeConnect() {
+ this.autoplay === "inview" && !$e(this.$el, "preload") && (this.$el.preload = "none"), pt(this.$el, "iframe") && !$e(this.$el, "allow") && (this.$el.allow = "autoplay"), this.autoplay === "hover" && (pt(this.$el, "video") ? this.$el.tabindex = 0 : this.autoplay = true), this.automute && Gr(this.$el);
+ }, events: [{ name: `${Be} focusin`, filter: ({ autoplay: t }) => b(t, "hover"), handler(t) {
+ !Gt(t) || !$u(this.$el) ? vn(this.$el) : ys(this.$el);
+ } }, { name: `${ai} focusout`, filter: ({ autoplay: t }) => b(t, "hover"), handler(t) {
+ Gt(t) || ys(this.$el);
+ } }], observe: [Ui({ filter: ({ autoplay: t }) => t !== "hover", handler([{ isIntersecting: t }]) {
+ document.fullscreenElement || (t ? this.autoplay && vn(this.$el) : ys(this.$el));
+ }, args: { intersecting: false }, options: ({ $el: t, autoplay: e }) => ({ root: e === "inview" ? null : it(t).closest(":not(a)") }) })] };
+ function $u(t) {
+ return !t.paused && !t.ended;
+ }
+ var bu = { mixins: [wa], props: { width: Number, height: Number }, data: { automute: true }, created() {
+ this.useObjectFit = pt(this.$el, "img", "video");
+ }, observe: pe({ target: ({ $el: t }) => ka(t) || it(t), filter: ({ useObjectFit: t }) => !t }), update: { read() {
+ if (this.useObjectFit)
+ return false;
+ const { ratio: t, cover: e } = Zs, { $el: i, width: s, height: r } = this;
+ let o = { width: s, height: r };
+ if (!s || !r) {
+ const v = { width: i.naturalWidth || i.videoWidth || i.clientWidth, height: i.naturalHeight || i.videoHeight || i.clientHeight };
+ s ? o = t(v, "width", s) : r ? o = t(v, "height", r) : o = v;
+ }
+ const { offsetHeight: l, offsetWidth: u } = ka(i) || it(i), d = e(o, { width: u, height: l });
+ return !d.width || !d.height ? false : d;
+ }, write({ height: t, width: e }) {
+ g(this.$el, { height: t, width: e });
+ }, events: ["resize"] } };
+ function ka(t) {
+ for (;t = it(t); )
+ if (g(t, "position") !== "static")
+ return t;
+ }
+ let Et;
+ var xa = { mixins: [qi, Ao, Fe], args: "pos", props: { mode: "list", toggle: Boolean, boundary: Boolean, boundaryX: Boolean, boundaryY: Boolean, target: Boolean, targetX: Boolean, targetY: Boolean, stretch: Boolean, delayShow: Number, delayHide: Number, autoUpdate: Boolean, clsDrop: String, animateOut: Boolean, bgScroll: Boolean, closeOnScroll: Boolean }, data: { mode: ["click", "hover"], toggle: "- *", boundary: false, boundaryX: false, boundaryY: false, target: false, targetX: false, targetY: false, stretch: false, delayShow: 0, delayHide: 800, autoUpdate: true, clsDrop: false, animateOut: false, bgScroll: true, animation: ["uk-anmt-fade"], cls: "uk-open", container: false, closeOnScroll: false }, computed: { boundary({ boundary: t, boundaryX: e, boundaryY: i }, s) {
+ return [qt(e || t, s) || window, qt(i || t, s) || window];
+ }, target({ target: t, targetX: e, targetY: i }, s) {
+ return e || (e = t || this.targetEl), i || (i = t || this.targetEl), [e === true ? window : qt(e, s), i === true ? window : qt(i, s)];
+ } }, created() {
+ this.tracker = new Vr;
+ }, beforeConnect() {
+ this.clsDrop = this.$props.clsDrop || this.$options.id;
+ }, connected() {
+ V(this.$el, "uk-drop", this.clsDrop), this.toggle && !this.targetEl && (this.targetEl = wu(this)), this._style = ie(this.$el.style, ["width", "height"]);
+ }, disconnected() {
+ this.isActive() && (this.hide(false), Et = null), g(this.$el, this._style);
+ }, events: [{ name: "click", delegate: () => ".uk-drop-close", handler(t) {
+ t.preventDefault(), this.hide(false);
+ } }, { name: "click", delegate: () => 'a[href*="#"]', handler({ defaultPrevented: t, current: e }) {
+ const { hash: i } = e;
+ !t && i && ci(e) && !this.$el.contains(F(i)) && this.hide(false);
+ } }, { name: "beforescroll", handler() {
+ this.hide(false);
+ } }, { name: "toggle", self: true, handler(t, e) {
+ t.preventDefault(), this.isToggled() ? this.hide(false) : this.show(e == null ? undefined : e.$el, false);
+ } }, { name: "toggleshow", self: true, handler(t, e) {
+ t.preventDefault(), this.show(e == null ? undefined : e.$el);
+ } }, { name: "togglehide", self: true, handler(t) {
+ t.preventDefault(), tt(this.$el, ":focus,:hover") || this.hide();
+ } }, { name: `${Be} focusin`, filter: ({ mode: t }) => b(t, "hover"), handler(t) {
+ Gt(t) || this.clearTimers();
+ } }, { name: `${ai} focusout`, filter: ({ mode: t }) => b(t, "hover"), handler(t) {
+ !Gt(t) && t.relatedTarget && this.hide();
+ } }, { name: "toggled", self: true, handler(t, e) {
+ e && (this.clearTimers(), this.position());
+ } }, { name: "show", self: true, handler() {
+ Et = this, this.tracker.init(), O(this.targetEl, "aria-expanded", true);
+ const t = [ku(this), xu(this), _u(this), this.autoUpdate && Sa(this), this.closeOnScroll && Su(this)];
+ gt(this.$el, "hide", () => t.forEach((e) => e && e()), { self: true }), this.bgScroll || gt(this.$el, "hidden", _o(this.$el), { self: true });
+ } }, { name: "beforehide", self: true, handler() {
+ this.clearTimers();
+ } }, { name: "hide", handler({ target: t }) {
+ if (this.$el !== t) {
+ Et = Et === null && this.$el.contains(t) && this.isToggled() ? this : Et;
+ return;
+ }
+ Et = this.isActive() ? null : Et, this.tracker.cancel(), O(this.targetEl, "aria-expanded", null);
+ } }], update: { write() {
+ this.isToggled() && !W(this.$el, this.clsEnter) && this.position();
+ } }, methods: { show(t = this.targetEl, e = true) {
+ if (this.isToggled() && t && this.targetEl && t !== this.targetEl && this.hide(false, false), this.targetEl = t, this.clearTimers(), !this.isActive()) {
+ if (Et) {
+ if (e && Et.isDelaying()) {
+ this.showTimer = setTimeout(() => tt(t, ":hover") && this.show(), 10);
+ return;
+ }
+ let i;
+ for (;Et && i !== Et && !Et.$el.contains(this.$el); )
+ i = Et, Et.hide(false, false);
+ }
+ this.container && it(this.$el) !== this.container && $t(this.container, this.$el), this.showTimer = setTimeout(() => this.toggleElement(this.$el, true), e && this.delayShow || 0);
+ }
+ }, hide(t = true, e = true) {
+ const i = () => this.toggleElement(this.$el, false, this.animateOut && e);
+ this.clearTimers(), this.isDelayedHide = t, t && this.isDelaying() ? this.hideTimer = setTimeout(this.hide, 50) : t && this.delayHide ? this.hideTimer = setTimeout(i, this.delayHide) : i();
+ }, clearTimers() {
+ clearTimeout(this.showTimer), clearTimeout(this.hideTimer), this.showTimer = null, this.hideTimer = null;
+ }, isActive() {
+ return Et === this;
+ }, isDelaying() {
+ return [this.$el, ...ct(".uk-drop", this.$el)].some((t) => this.tracker.movesTo(t));
+ }, position() {
+ const t = Nn(this.$el);
+ ot(this.$el, "uk-drop-stack"), g(this.$el, this._style), this.$el.hidden = true;
+ const e = this.target.map((o) => yu(this.$el, o)), i = this.getViewportOffset(this.$el), s = [[0, ["x", "width", "left", "right"]], [1, ["y", "height", "top", "bottom"]]];
+ for (const [o, [l, u]] of s)
+ this.axis !== l && b([l, true], this.stretch) && g(this.$el, { [u]: Math.min(G(this.boundary[o])[u], e[o][u] - 2 * i), [`overflow-${l}`]: "auto" });
+ const r = e[0].width - 2 * i;
+ this.$el.hidden = false, g(this.$el, "maxWidth", ""), this.$el.offsetWidth > r && V(this.$el, "uk-drop-stack"), g(this.$el, "maxWidth", r), this.positionAt(this.$el, this.target, this.boundary);
+ for (const [o, [l, u, d, v]] of s)
+ if (this.axis === l && b([l, true], this.stretch)) {
+ const $ = Math.abs(this.getPositionOffset()), y = G(this.target[o]), A = G(this.$el);
+ g(this.$el, { [u]: (y[d] > A[d] ? y[this.inset ? v : d] - Math.max(G(this.boundary[o])[d], e[o][d] + i) : Math.min(G(this.boundary[o])[v], e[o][v] - i) - y[this.inset ? d : v]) - $, [`overflow-${l}`]: "auto" }), this.positionAt(this.$el, this.target, this.boundary);
+ }
+ t();
+ } } };
+ function yu(t, e) {
+ return Yt(Ue(e).find((i) => i.contains(t)));
+ }
+ function wu(t) {
+ const { $el: e } = t.$create("toggle", qt(t.toggle, t.$el), { target: t.$el, mode: t.mode });
+ return O(e, "aria-haspopup", true), e;
+ }
+ function ku(t) {
+ const e = () => t.$emit(), i = [mn(e), bs(Ue(t.$el).concat(t.target), e)];
+ return () => i.map((s) => s.disconnect());
+ }
+ function Sa(t, e = () => t.$emit()) {
+ return J([document, ...Ue(t.$el)], "scroll", e, { passive: true });
+ }
+ function xu(t) {
+ return J(document, "keydown", (e) => {
+ e.keyCode === et.ESC && t.hide(false);
+ });
+ }
+ function Su(t) {
+ return Sa(t, () => t.hide(false));
+ }
+ function _u(t) {
+ return J(document, Wt, ({ target: e }) => {
+ t.$el.contains(e) || gt(document, `${be} ${as} scroll`, ({ defaultPrevented: i, type: s, target: r }) => {
+ var o;
+ !i && s === be && e === r && !((o = t.targetEl) != null && o.contains(e)) && t.hide(false);
+ }, true);
+ });
+ }
+ var Au = { mixins: [Lt, qi], props: { align: String, clsDrop: String, boundary: Boolean, dropbar: Boolean, dropbarAnchor: Boolean, duration: Number, mode: Boolean, offset: Boolean, stretch: Boolean, delayShow: Boolean, delayHide: Boolean, target: Boolean, targetX: Boolean, targetY: Boolean, animation: Boolean, animateOut: Boolean, closeOnScroll: Boolean }, data: { align: xt ? "right" : "left", clsDrop: "uk-dropdown", clsDropbar: "uk-dropnav-dropbar", boundary: true, dropbar: false, dropbarAnchor: false, duration: 200, container: false, selNavItem: "> li > a, > ul > li > a" }, computed: { dropbarAnchor: ({ dropbarAnchor: t }, e) => qt(t, e) || e, dropbar({ dropbar: t }) {
+ return t ? (t = this._dropbar || qt(t, this.$el) || F(`+ .${this.clsDropbar}`, this.$el), t || (this._dropbar = F("
"))) : null;
+ }, dropContainer(t, e) {
+ return this.container || e;
+ }, dropdowns({ clsDrop: t }, e) {
+ var i;
+ const s = ct(`.${t}`, e);
+ if (this.dropContainer !== e)
+ for (const r of ct(`.${t}`, this.dropContainer)) {
+ const o = (i = this.getDropdown(r)) == null ? undefined : i.targetEl;
+ !b(s, r) && o && this.$el.contains(o) && s.push(r);
+ }
+ return s;
+ }, items({ selNavItem: t }, e) {
+ return ct(t, e);
+ } }, watch: { dropbar(t) {
+ V(t, "uk-dropbar", "uk-dropbar-top", this.clsDropbar, `uk-${this.$options.name}-dropbar`);
+ }, dropdowns() {
+ this.initializeDropdowns();
+ } }, connected() {
+ this.initializeDropdowns();
+ }, disconnected() {
+ Ct(this._dropbar), delete this._dropbar;
+ }, events: [{ name: "mouseover focusin", delegate: ({ selNavItem: t }) => t, handler({ current: t }) {
+ const e = this.getActive();
+ e && b(e.mode, "hover") && e.targetEl && !t.contains(e.targetEl) && !e.isDelaying() && e.hide(false);
+ } }, { name: "keydown", self: true, delegate: ({ selNavItem: t }) => t, handler(t) {
+ var e;
+ const { current: i, keyCode: s } = t, r = this.getActive();
+ s === et.DOWN && (r == null ? undefined : r.targetEl) === i && (t.preventDefault(), (e = F(Oi, r.$el)) == null || e.focus()), _a(t, this.items, r);
+ } }, { name: "keydown", el: ({ dropContainer: t }) => t, delegate: ({ clsDrop: t }) => `.${t}`, handler(t) {
+ var e;
+ const { current: i, keyCode: s, target: r } = t;
+ if (ls(r) || !b(this.dropdowns, i))
+ return;
+ const o = this.getActive();
+ let l = -1;
+ if (s === et.HOME ? l = 0 : s === et.END ? l = "last" : s === et.UP ? l = "previous" : s === et.DOWN ? l = "next" : s === et.ESC && ((e = o.targetEl) == null || e.focus()), ~l) {
+ t.preventDefault();
+ const u = ct(Oi, i);
+ u[Ht(l, u, I(u, (d) => tt(d, ":focus")))].focus();
+ }
+ _a(t, this.items, o);
+ } }, { name: "mouseleave", el: ({ dropbar: t }) => t, filter: ({ dropbar: t }) => t, handler() {
+ const t = this.getActive();
+ t && b(t.mode, "hover") && !this.dropdowns.some((e) => tt(e, ":hover")) && t.hide();
+ } }, { name: "beforeshow", el: ({ dropContainer: t }) => t, filter: ({ dropbar: t }) => t, handler({ target: t }) {
+ this.isDropbarDrop(t) && (this.dropbar.previousElementSibling !== this.dropbarAnchor && fs(this.dropbarAnchor, this.dropbar), V(t, `${this.clsDrop}-dropbar`));
+ } }, { name: "show", el: ({ dropContainer: t }) => t, filter: ({ dropbar: t }) => t, handler({ target: t }) {
+ if (!this.isDropbarDrop(t))
+ return;
+ const e = this.getDropdown(t), i = () => {
+ const s = Math.max(...li(t, `.${this.clsDrop}`).concat(t).map((r) => G(r).bottom));
+ G(this.dropbar, { left: G(this.dropbar).left, top: this.getDropbarOffset(e.getPositionOffset()) }), this.transitionTo(s - G(this.dropbar).top + x(g(t, "marginBottom")), t);
+ };
+ this._observer = bs([e.$el, ...e.target], i), i();
+ } }, { name: "beforehide", el: ({ dropContainer: t }) => t, filter: ({ dropbar: t }) => t, handler(t) {
+ const e = this.getActive();
+ tt(this.dropbar, ":hover") && e.$el === t.target && this.isDropbarDrop(e.$el) && b(e.mode, "hover") && e.isDelayedHide && !this.items.some((i) => e.targetEl !== i && tt(i, ":focus")) && t.preventDefault();
+ } }, { name: "hide", el: ({ dropContainer: t }) => t, filter: ({ dropbar: t }) => t, handler({ target: t }) {
+ var e;
+ if (!this.isDropbarDrop(t))
+ return;
+ (e = this._observer) == null || e.disconnect();
+ const i = this.getActive();
+ (!i || i.$el === t) && this.transitionTo(0);
+ } }], methods: { getActive() {
+ var t;
+ return b(this.dropdowns, (t = Et) == null ? undefined : t.$el) && Et;
+ }, async transitionTo(t, e) {
+ const { dropbar: i } = this, s = Pt(i);
+ if (e = s < t && e, await nt.cancel([e, i]), e) {
+ const r = G(e).top - G(i).top - s;
+ r > 0 && g(e, "transitionDelay", `${r / t * this.duration}ms`);
+ }
+ g(e, "clipPath", `polygon(0 0,100% 0,100% ${s}px,0 ${s}px)`), Pt(i, s), await Promise.all([nt.start(i, { height: t }, this.duration), nt.start(e, { clipPath: `polygon(0 0,100% 0,100% ${t}px,0 ${t}px)` }, this.duration).finally(() => g(e, { clipPath: "", transitionDelay: "" }))]).catch(ut);
+ }, getDropdown(t) {
+ return this.$getComponent(t, "drop") || this.$getComponent(t, "dropdown");
+ }, isDropbarDrop(t) {
+ return b(this.dropdowns, t) && W(t, this.clsDrop);
+ }, getDropbarOffset(t) {
+ const { $el: e, target: i, targetY: s } = this, { top: r, height: o } = G(qt(s || i || e, e));
+ return r + o + t;
+ }, initializeDropdowns() {
+ this.$create("drop", this.dropdowns.filter((t) => !this.getDropdown(t)), { ...this.$props, flip: false, shift: true, pos: `bottom-${this.align}`, boundary: this.boundary === true ? this.$el : this.boundary });
+ } } };
+ function _a(t, e, i) {
+ var s, r, o;
+ const { current: l, keyCode: u } = t;
+ let d = -1;
+ u === et.HOME ? d = 0 : u === et.END ? d = "last" : u === et.LEFT ? d = "previous" : u === et.RIGHT ? d = "next" : u === et.TAB && ((s = i.targetEl) == null || s.focus(), (r = i.hide) == null || r.call(i, false)), ~d && (t.preventDefault(), (o = i.hide) == null || o.call(i, false), e[Ht(d, e, e.indexOf(i.targetEl || l))].focus());
+ }
+ var Eu = { mixins: [Lt], args: "target", props: { target: Boolean }, data: { target: false }, computed: { input: (t, e) => F(Ti, e), state() {
+ return this.input.nextElementSibling;
+ }, target({ target: t }, e) {
+ return t && (t === true && it(this.input) === e && this.input.nextElementSibling || F(t, e));
+ } }, update() {
+ var t;
+ const { target: e, input: i } = this;
+ if (!e)
+ return;
+ let s;
+ const r = ls(e) ? "value" : "textContent", o = e[r], l = (t = i.files) != null && t[0] ? i.files[0].name : tt(i, "select") && (s = ct("option", i).filter((u) => u.selected)[0]) ? s.textContent : i.value;
+ o !== l && (e[r] = l);
+ }, events: [{ name: "change", handler() {
+ this.$emit();
+ } }, { name: "reset", el: ({ $el: t }) => t.closest("form"), handler() {
+ this.$emit();
+ } }] }, Iu = { extends: Oc, mixins: [Lt], name: "grid", props: { masonry: Boolean, parallax: String, parallaxStart: String, parallaxEnd: String, parallaxJustify: Boolean }, data: { margin: "uk-grid-margin", clsStack: "uk-grid-stack", masonry: false, parallax: 0, parallaxStart: 0, parallaxEnd: 0, parallaxJustify: false }, connected() {
+ this.masonry && V(this.$el, "uk-flex-top", "uk-flex-wrap-top");
+ }, observe: Fi({ filter: ({ parallax: t, parallaxJustify: e }) => t || e }), update: [{ write({ rows: t }) {
+ mt(this.$el, this.clsStack, !t.some((e) => e.length > 1));
+ }, events: ["resize"] }, { read(t) {
+ const { rows: e } = t;
+ let { masonry: i, parallax: s, parallaxJustify: r, margin: o } = this;
+ if (s = Math.max(0, At(s)), !(i || s || r) || Aa(e) || e[0].some((B, q) => e.some((Z) => Z[q] && Z[q].offsetWidth !== B.offsetWidth)))
+ return t.translates = t.scrollColumns = false;
+ let l = Tu(e, o), u, d;
+ i ? [u, d] = Cu(e, l, i === "next") : u = Ou(e);
+ const v = u.map((B) => dt(B, "offsetHeight") + l * (B.length - 1)), $ = Math.max(0, ...v);
+ let y, A, D;
+ return (s || r) && (y = v.map((B, q) => r ? $ - B + s : s / (q % 2 || 8)), r || (s = Math.max(...v.map((B, q) => B + y[q] - $))), A = At(this.parallaxStart, "height", this.$el, true), D = At(this.parallaxEnd, "height", this.$el, true)), { columns: u, translates: d, scrollColumns: y, parallaxStart: A, parallaxEnd: D, padding: s, height: d ? $ : "" };
+ }, write({ height: t, padding: e }) {
+ g(this.$el, "paddingBottom", e || ""), t !== false && g(this.$el, "height", t);
+ }, events: ["resize"] }, { read({ rows: t, scrollColumns: e, parallaxStart: i, parallaxEnd: s }) {
+ return { scrolled: e && !Aa(t) ? ws(this.$el, i, s) : false };
+ }, write({ columns: t, scrolled: e, scrollColumns: i, translates: s }) {
+ !e && !s || t.forEach((r, o) => r.forEach((l, u) => {
+ let [d, v] = s && s[o][u] || [0, 0];
+ e && (v += e * i[o]), g(l, "transform", `translate(${d}px, ${v}px)`);
+ }));
+ }, events: ["scroll", "resize"] }] };
+ function Aa(t) {
+ return t.flat().some((e) => g(e, "position") === "absolute");
+ }
+ function Cu(t, e, i) {
+ const s = [], r = [], o = Array(t[0].length).fill(0);
+ let l = 0;
+ for (let u of t) {
+ xt && u.reverse();
+ let d = 0;
+ for (const v in u) {
+ const { offsetWidth: $, offsetHeight: y } = u[v], A = i ? v : o.indexOf(Math.min(...o));
+ qn(s, A, u[v]), qn(r, A, [(A - v) * $ * (xt ? -1 : 1), o[A] - l]), o[A] += y + e, d = Math.max(d, y);
+ }
+ l += d + e;
+ }
+ return [s, r];
+ }
+ function Tu(t, e) {
+ const i = t.flat().find((s) => W(s, e));
+ return x(i ? g(i, "marginTop") : g(t[0][0], "paddingLeft"));
+ }
+ function Ou(t) {
+ const e = [];
+ for (const i of t)
+ for (const s in i)
+ qn(e, s, i[s]);
+ return e;
+ }
+ function qn(t, e, i) {
+ t[e] || (t[e] = []), t[e].push(i);
+ }
+ var Du = { mixins: [Lt, Es], props: { fill: String }, data: { fill: "", clsWrapper: "uk-leader-fill", clsHide: "uk-leader-hide", attrFill: "data-fill" }, computed: { fill: ({ fill: t }, e) => t || g(e, "--uk-leader-fill-content") }, connected() {
+ [this.wrapper] = hn(this.$el, `
`);
+ }, disconnected() {
+ Li(this.wrapper.childNodes);
+ }, observe: pe(), update: { read() {
+ return { width: Math.trunc(this.$el.offsetWidth / 2), fill: this.fill, hide: !this.matchMedia };
+ }, write({ width: t, fill: e, hide: i }) {
+ mt(this.wrapper, this.clsHide, i), O(this.wrapper, this.attrFill, new Array(t).join(e));
+ }, events: ["resize"] } }, Pu = { install: Mu, mixins: [Ln], data: { clsPage: "uk-modal-page", selPanel: ".uk-modal-dialog", selClose: '[class*="uk-modal-close"]' }, events: [{ name: "fullscreenchange webkitendfullscreen", capture: true, handler(t) {
+ pt(t.target, "video") && this.isToggled() && !document.fullscreenElement && this.hide();
+ } }, { name: "show", self: true, handler() {
+ W(this.panel, "uk-margin-auto-vertical") ? V(this.$el, "uk-flex") : g(this.$el, "display", "block"), Pt(this.$el);
+ } }, { name: "hidden", self: true, handler() {
+ g(this.$el, "display", ""), ot(this.$el, "uk-flex");
+ } }] };
+ function Mu({ modal: t }) {
+ t.dialog = function(i, s) {
+ const r = t(F(``), { stack: true, role: "alertdialog", ...s });
+ return r.show(), J(r.$el, "hidden", async () => {
+ await Promise.resolve(), r.$destroy(true);
+ }, { self: true }), r;
+ }, t.alert = function(i, s) {
+ return e(({ i18n: r }) => `${ht(i) ? i : de(i)}
`, s);
+ }, t.confirm = function(i, s) {
+ return e(({ i18n: r }) => ``, s, () => Promise.reject());
+ }, t.prompt = function(i, s, r) {
+ const o = e(({ i18n: d }) => ``, r, () => null, () => u.value), { $el: l } = o.dialog, u = F("input", l);
+ return u.value = s || "", J(l, "show", () => u.select()), o;
+ }, t.i18n = { ok: "Ok", cancel: "Cancel" };
+ function e(i, s, r = ut, o = ut) {
+ s = { bgClose: false, escClose: true, ...s, i18n: { ...t.i18n, ...s == null ? undefined : s.i18n } };
+ const l = t.dialog(i(s), s);
+ return Y(new Promise((u) => {
+ const d = J(l.$el, "hide", () => u(r()));
+ J(l.$el, "submit", "form", (v) => {
+ v.preventDefault(), u(o(l)), d(), l.hide();
+ });
+ }), { dialog: l });
+ }
+ }
+ var Hu = { extends: ya, data: { targets: "> .uk-parent", toggle: "> a", content: "> ul" } }, Nu = { mixins: [Ln], args: "mode", props: { mode: String, flip: Boolean, overlay: Boolean, swiping: Boolean }, data: { mode: "slide", flip: false, overlay: false, clsPage: "uk-offcanvas-page", clsContainer: "uk-offcanvas-container", selPanel: ".uk-offcanvas-bar", clsFlip: "uk-offcanvas-flip", clsContainerAnimation: "uk-offcanvas-container-animation", clsSidebarAnimation: "uk-offcanvas-bar-animation", clsMode: "uk-offcanvas", clsOverlay: "uk-offcanvas-overlay", selClose: ".uk-offcanvas-close", container: false, swiping: true }, computed: { clsFlip: ({ flip: t, clsFlip: e }) => t ? e : "", clsOverlay: ({ overlay: t, clsOverlay: e }) => t ? e : "", clsMode: ({ mode: t, clsMode: e }) => `${e}-${t}`, clsSidebarAnimation: ({ mode: t, clsSidebarAnimation: e }) => t === "none" || t === "reveal" ? "" : e, clsContainerAnimation: ({ mode: t, clsContainerAnimation: e }) => t !== "push" && t !== "reveal" ? "" : e, transitionElement({ mode: t }) {
+ return t === "reveal" ? it(this.panel) : this.panel;
+ } }, observe: fo({ filter: ({ swiping: t }) => t }), update: { read() {
+ this.isToggled() && !St(this.$el) && this.hide();
+ }, events: ["resize"] }, events: [{ name: "touchmove", self: true, passive: false, filter: ({ overlay: t }) => t, handler(t) {
+ t.cancelable && t.preventDefault();
+ } }, { name: "show", self: true, handler() {
+ this.mode === "reveal" && !W(it(this.panel), this.clsMode) && V(Ni(this.panel, ""), this.clsMode);
+ const { body: t, scrollingElement: e } = document;
+ V(t, this.clsContainer, this.clsFlip), g(t, "touchAction", "pan-y pinch-zoom"), g(this.$el, "display", "block"), g(this.panel, "maxWidth", e.clientWidth), V(this.$el, this.clsOverlay), V(this.panel, this.clsSidebarAnimation, this.mode === "reveal" ? "" : this.clsMode), Pt(t), V(t, this.clsContainerAnimation), this.clsContainerAnimation && Lu();
+ } }, { name: "hide", self: true, handler() {
+ ot(document.body, this.clsContainerAnimation), g(document.body, "touchAction", "");
+ } }, { name: "hidden", self: true, handler() {
+ this.clsContainerAnimation && Bu(), this.mode === "reveal" && W(it(this.panel), this.clsMode) && Li(this.panel), ot(this.panel, this.clsSidebarAnimation, this.clsMode), ot(this.$el, this.clsOverlay), g(this.$el, "display", ""), g(this.panel, "maxWidth", ""), ot(document.body, this.clsContainer, this.clsFlip);
+ } }, { name: "swipeLeft swipeRight", handler(t) {
+ this.isToggled() && C(t.type, "Left") ^ this.flip && this.hide();
+ } }] };
+ function Lu() {
+ Ea().content += ",user-scalable=0";
+ }
+ function Bu() {
+ const t = Ea();
+ t.content = t.content.replace(/,user-scalable=0$/, "");
+ }
+ function Ea() {
+ return F('meta[name="viewport"]', document.head) || $t(document.head, '
');
+ }
+ var ju = { mixins: [Lt], props: { selContainer: String, selContent: String, minHeight: Number }, data: { selContainer: ".uk-modal", selContent: ".uk-modal-dialog", minHeight: 150 }, computed: { container: ({ selContainer: t }, e) => e.closest(t), content: ({ selContent: t }, e) => e.closest(t) }, observe: pe({ target: ({ container: t, content: e }) => [t, e] }), update: { read() {
+ return !this.content || !this.container || !St(this.$el) ? false : { max: Math.max(this.minHeight, Pt(this.container) - (H(this.content).height - Pt(this.$el))) };
+ }, write({ max: t }) {
+ g(this.$el, { minHeight: this.minHeight, maxHeight: t });
+ }, events: ["resize"] } }, Ru = { props: ["width", "height"], connected() {
+ V(this.$el, "uk-responsive-width"), g(this.$el, "aspectRatio", `${this.width}/${this.height}`);
+ } }, zu = { props: { offset: Number }, data: { offset: 0 }, connected() {
+ Uu(this);
+ }, disconnected() {
+ Fu(this);
+ }, methods: { async scrollTo(t) {
+ t = t && F(t) || document.body, M(this.$el, "beforescroll", [this, t]) && (await to(t, { offset: this.offset }), M(this.$el, "scrolled", [this, t]));
+ } } };
+ const Xi = new Set;
+ function Uu(t) {
+ Xi.size || J(document, "click", Ia), Xi.add(t);
+ }
+ function Fu(t) {
+ Xi.delete(t), Xi.size || je(document, "click", Ia);
+ }
+ function Ia(t) {
+ if (!t.defaultPrevented)
+ for (const e of Xi)
+ e.$el.contains(t.target) && ci(e.$el) && (t.preventDefault(), window.location.href !== e.$el.href && window.history.pushState({}, "", e.$el.href), e.scrollTo(tn(e.$el)));
+ }
+ const Yn = "uk-scrollspy-inview";
+ var Wu = { args: "cls", props: { cls: String, target: String, hidden: Boolean, margin: String, repeat: Boolean, delay: Number }, data: () => ({ cls: "", target: false, hidden: true, margin: "-1px", repeat: false, delay: 0 }), computed: { elements: ({ target: t }, e) => t ? ct(t, e) : [e] }, watch: { elements(t) {
+ this.hidden && g(Di(t, `:not(.${Yn})`), "opacity", 0);
+ } }, connected() {
+ this.elementData = new Map;
+ }, disconnected() {
+ for (const [t, e] of this.elementData.entries())
+ ot(t, Yn, (e == null ? undefined : e.cls) || "");
+ delete this.elementData;
+ }, observe: Ui({ target: ({ elements: t }) => t, handler(t) {
+ const e = this.elementData;
+ for (const { target: i, isIntersecting: s } of t) {
+ e.has(i) || e.set(i, { cls: It(i, "uk-scrollspy-class") || this.cls });
+ const r = e.get(i);
+ !this.repeat && r.show || (r.show = s);
+ }
+ this.$emit();
+ }, options: ({ margin: t }) => ({ rootMargin: t }), args: { intersecting: false } }), update: [{ write(t) {
+ for (const [e, i] of this.elementData.entries())
+ i.show && !i.inview && !i.queued ? (i.queued = true, t.promise = (t.promise || Promise.resolve()).then(() => new Promise((s) => setTimeout(s, this.delay))).then(() => {
+ this.toggle(e, true), setTimeout(() => {
+ i.queued = false, this.$emit();
+ }, 300);
+ })) : !i.show && i.inview && !i.queued && this.repeat && this.toggle(e, false);
+ } }], methods: { toggle(t, e) {
+ var i, s;
+ const r = (i = this.elementData) == null ? undefined : i.get(t);
+ if (!r)
+ return;
+ (s = r.off) == null || s.call(r), g(t, "opacity", !e && this.hidden ? 0 : ""), mt(t, Yn, e), mt(t, r.cls);
+ let o;
+ if (o = r.cls.match(/\buk-anmt-[\w-]+/g)) {
+ const l = () => ot(t, o);
+ e ? r.off = gt(t, "animationcancel animationend", l, { self: true }) : l();
+ }
+ M(t, e ? "inview" : "outview"), r.inview = e;
+ } } }, qu = { props: { cls: String, closest: Boolean, scroll: Boolean, target: String, offset: Number }, data: { cls: "uk-active", closest: false, scroll: false, target: 'a[href]:not([role="button"])', offset: 0 }, computed: { links: ({ target: t }, e) => ct(t, e).filter((i) => ci(i)), elements({ closest: t }) {
+ return this.links.map((e) => e.closest(t || "*"));
+ } }, watch: { links(t) {
+ this.scroll && this.$create("scroll", t, { offset: this.offset });
+ } }, observe: [Ui(), Fi()], update: [{ read() {
+ const t = this.links.map((d) => tn(d)).filter(Boolean), { length: e } = t;
+ if (!e || !St(this.$el))
+ return false;
+ const i = ze(t, true), { scrollTop: s, scrollHeight: r } = i, o = Yt(i), l = r - o.height;
+ let u = false;
+ if (s >= l)
+ u = e - 1;
+ else {
+ const d = this.offset + H(kn()).height + o.height * 0.1;
+ for (let v = 0;v < t.length && !(G(t[v]).top - o.top - d > 0); v++)
+ u = +v;
+ }
+ return { active: u };
+ }, write({ active: t }) {
+ const e = t !== false && !W(this.elements[t], this.cls);
+ this.links.forEach((i) => i.blur());
+ for (let i = 0;i < this.elements.length; i++)
+ mt(this.elements[i], this.cls, +i === t);
+ e && M(this.$el, "active", [t, this.elements[t]]);
+ }, events: ["scroll", "resize"] }] }, Yu = { mixins: [Lt, Es], props: { position: String, top: null, bottom: null, start: null, end: null, offset: String, offsetEnd: String, overflowFlip: Boolean, animation: String, clsActive: String, clsInactive: String, clsFixed: String, clsBelow: String, selTarget: String, showOnUp: Boolean, targetOffset: Number }, data: { position: "top", top: false, bottom: false, start: false, end: false, offset: 0, offsetEnd: 0, overflowFlip: false, animation: "", clsActive: "uk-active", clsInactive: "", clsFixed: "uk-sticky-fixed", clsBelow: "uk-sticky-below", selTarget: "", showOnUp: false, targetOffset: false }, computed: { target: ({ selTarget: t }, e) => t && F(t, e) || e }, connected() {
+ this.start = Ca(this.start || this.top), this.end = Ca(this.end || this.bottom), this.placeholder = F("+ .uk-sticky-placeholder", this.$el) || F('
'), this.isFixed = false, this.setActive(false);
+ }, beforeDisconnect() {
+ this.isFixed && (this.hide(), ot(this.target, this.clsInactive)), Ta(this.$el), Ct(this.placeholder), this.placeholder = null;
+ }, observe: [uo(), Fi({ target: () => document.scrollingElement }), pe({ target: ({ $el: t }) => [t, Ms(t), document.scrollingElement], handler(t) {
+ this.$emit(this._data.resized && t.some(({ target: e }) => e === Ms(this.$el)) ? "update" : "resize"), this._data.resized = true;
+ } })], events: [{ name: "load hashchange popstate", el: () => window, filter: ({ targetOffset: t }) => t !== false, handler() {
+ const { scrollingElement: t } = document;
+ !location.hash || t.scrollTop === 0 || setTimeout(() => {
+ const e = G(F(location.hash)), i = G(this.$el);
+ this.isFixed && Kt(e, i) && (t.scrollTop = Math.ceil(e.top - i.height - At(this.targetOffset, "height", this.placeholder) - At(this.offset, "height", this.placeholder)));
+ });
+ } }], update: [{ read({ height: t, width: e, margin: i, sticky: s }, r) {
+ if (this.inactive = !this.matchMedia || !St(this.$el) || !this.$el.offsetHeight, this.inactive)
+ return;
+ const o = Pt(window), l = Math.max(0, document.scrollingElement.scrollHeight - o);
+ if (!l) {
+ this.inactive = true;
+ return;
+ }
+ const u = this.isFixed && r.has("update");
+ u && (Kn(this.target), this.hide()), this.active || ({ height: t, width: e } = H(this.$el), i = g(this.$el, "margin")), u && this.show();
+ const d = At("100vh", "height");
+ let v = this.position;
+ this.overflowFlip && t > d && (v = v === "top" ? "bottom" : "top");
+ const $ = this.isFixed ? this.placeholder : this.$el;
+ let [y, A] = [this.offset, this.offsetEnd].map((_e) => At(_e, "height", s ? this.$el : $));
+ v === "bottom" && (t < o || this.overflowFlip) && (y += o - t);
+ const D = t + y + A, B = this.overflowFlip ? 0 : Math.max(0, D - d), q = G($).top - new DOMMatrix(g($, "transform")).m42, Z = H(this.$el).height, jt = (this.start === false ? q : Vn(this.start, this.$el, q)) - y, me = this.end === false ? l : Math.min(l, Vn(this.end, this.$el, q + t, true) - Z - y + B);
+ return s = !this.showOnUp && jt + y === q && me === Math.min(l, Vn(true, this.$el, 0, true) - Z - y + B) && g(Ms(this.$el), "overflowY") !== "hidden", { start: jt, end: me, offset: y, overflow: B, height: t, elHeight: Z, width: e, margin: i, top: Bi($)[0], sticky: s, viewport: d, maxScrollHeight: l };
+ }, write({ height: t, width: e, margin: i, offset: s, sticky: r }) {
+ if ((this.inactive || r || !this.isFixed) && Ta(this.$el), this.inactive)
+ return;
+ r && (t = e = i = 0, g(this.$el, { position: "sticky", top: s }));
+ const { placeholder: o } = this;
+ g(o, { height: t, width: e, margin: i }), (it(o) !== it(this.$el) || r ^ he(o) < he(this.$el)) && ((r ? ds : fs)(this.$el, o), o.hidden = true);
+ }, events: ["resize"] }, { read({ scroll: t = 0, dir: e = "down", overflow: i, overflowScroll: s = 0, start: r, end: o, elHeight: l, height: u, sticky: d, maxScrollHeight: v }) {
+ const $ = Math.min(document.scrollingElement.scrollTop, v), y = t <= $ ? "down" : "up", A = this.isFixed ? this.placeholder : this.$el;
+ return { dir: y, prevDir: e, scroll: $, prevScroll: t, below: $ > G(A).top + (d ? Math.min(u, l) : u), offsetParentTop: G(A.offsetParent).top, overflowScroll: ft(s + ft($, r, o) - ft(t, r, o), 0, i) };
+ }, write(t, e) {
+ const i = e.has("scroll"), { initTimestamp: s = 0, dir: r, prevDir: o, scroll: l, prevScroll: u = 0, top: d, start: v, below: $ } = t;
+ if (l < 0 || l === u && i || this.showOnUp && !i && !this.isFixed)
+ return;
+ const y = Date.now();
+ if ((y - s > 300 || r !== o) && (t.initScroll = l, t.initTimestamp = y), !(this.showOnUp && !this.isFixed && Math.abs(t.initScroll - l) <= 30 && Math.abs(u - l) <= 10))
+ if (this.inactive || l < v || this.showOnUp && (l <= v || r === "down" && i || r === "up" && !this.isFixed && !$)) {
+ if (!this.isFixed) {
+ ye.inProgress(this.$el) && d > l && (ye.cancel(this.$el), this.hide());
+ return;
+ }
+ if (this.animation && $) {
+ if (W(this.$el, "uk-anmt-leave"))
+ return;
+ ye.out(this.$el, this.animation).then(() => this.hide(), ut);
+ } else
+ this.hide();
+ } else
+ this.isFixed ? this.update() : this.animation && $ ? (this.show(), ye.in(this.$el, this.animation).catch(ut)) : (Kn(this.target), this.show());
+ }, events: ["resize", "resizeViewport", "scroll"] }], methods: { show() {
+ this.isFixed = true, this.update(), this.placeholder.hidden = false;
+ }, hide() {
+ const { offset: t, sticky: e } = this._data;
+ this.setActive(false), ot(this.$el, this.clsFixed, this.clsBelow), e ? g(this.$el, "top", t) : g(this.$el, { position: "", top: "", width: "", marginTop: "" }), this.placeholder.hidden = true, this.isFixed = false;
+ }, update() {
+ let { width: t, scroll: e = 0, overflow: i, overflowScroll: s = 0, start: r, end: o, offset: l, offsetParentTop: u, sticky: d, below: v } = this._data;
+ const $ = r !== 0 || e > r;
+ if (!d) {
+ let y = "fixed";
+ e > o && (l += o - u + s - i, y = "absolute"), g(this.$el, { position: y, width: t, marginTop: 0 }, "important");
+ }
+ g(this.$el, "top", l - s), this.setActive($), mt(this.$el, this.clsBelow, v), V(this.$el, this.clsFixed);
+ }, setActive(t) {
+ const e = this.active;
+ this.active = t, t ? (Xs(this.target, this.clsInactive, this.clsActive), e !== t && M(this.$el, "active")) : (Xs(this.target, this.clsActive, this.clsInactive), e !== t && (Kn(this.target), M(this.$el, "inactive")));
+ } } };
+ function Vn(t, e, i, s) {
+ if (!t)
+ return 0;
+ if (at(t) || ht(t) && t.match(/^-?\d/))
+ return i + At(t, "height", e, true);
+ {
+ const r = t === true ? Ms(e) : qt(t, e);
+ return G(r).bottom - (s && (r != null && r.contains(e)) ? x(g(r, "paddingBottom")) + x(g(r, "borderBottomWidth")) : 0);
+ }
+ }
+ function Ca(t) {
+ return t === "true" ? true : t === "false" ? false : t;
+ }
+ function Ta(t) {
+ g(t, { position: "", top: "", marginTop: "", width: "" });
+ }
+ const Jn = "uk-transition-disable";
+ function Kn(t) {
+ W(t, Jn) || (V(t, Jn), requestAnimationFrame(() => ot(t, Jn)));
+ }
+ function Ms(t) {
+ for (;t = it(t); )
+ if (St(t))
+ return t;
+ }
+ var Oa = { args: "src", props: { width: Number, height: Number, ratio: Number }, data: { ratio: 1 }, connected() {
+ this.svg = this.getSvg().then((t) => {
+ if (!this._connected)
+ return;
+ const e = Vu(t, this.$el);
+ return this.svgEl && e !== this.svgEl && Ct(this.svgEl), Ju.call(this, e, t), this.svgEl = e;
+ }, ut);
+ }, disconnected() {
+ this.svg.then((t) => {
+ this._connected || (Qs(this.$el) && (this.$el.hidden = false), Ct(t), this.svgEl = null);
+ }), this.svg = null;
+ }, methods: { async getSvg() {
+ } } };
+ function Vu(t, e) {
+ if (Qs(e) || pt(e, "canvas")) {
+ e.hidden = true;
+ const s = e.nextElementSibling;
+ return Da(t, s) ? s : fs(e, t);
+ }
+ const i = e.lastElementChild;
+ return Da(t, i) ? i : $t(e, t);
+ }
+ function Da(t, e) {
+ return pt(t, "svg") && pt(e, "svg") && t.innerHTML === e.innerHTML;
+ }
+ function Ju(t, e) {
+ const i = ["width", "height"];
+ let s = i.map((o) => this[o]);
+ s.some((o) => o) || (s = i.map((o) => O(e, o)));
+ const r = O(e, "viewBox");
+ r && !s.some((o) => o) && (s = r.split(" ").slice(2)), s.forEach((o, l) => O(t, i[l], x(o) * this.ratio || null));
+ }
+ function Pa(t, e) {
+ return e && b(t, "
/g, Ku = Ft(function(t) {
+ const e = {};
+ Ma.lastIndex = 0;
+ let i;
+ for (;i = Ma.exec(t); )
+ e[i[3]] = `