From a8c1352920bc10213b020c4d7fd0969bb96dd019 Mon Sep 17 00:00:00 2001 From: Andrew Gliga Date: Wed, 24 Apr 2024 11:57:24 -0700 Subject: [PATCH] fix(phone-input): added sprites (#2316) --- .changeset/soft-ligers-march.md | 5 + dist/flag/flag.css | 774 +++++++++++++++++ dist/phone-input/phone-input.css | 2 + docs/_includes/phone-input.html | 373 +++------ docs/src/js/main.js | 12 +- docs/static/docs.min.js | 2 +- docs/static/docs.min.js.map | 2 +- src/less/flag/flag.less | 777 ++++++++++++++++++ src/less/phone-input/phone-input.less | 2 + .../stories/phone-input.stories.js | 270 +++--- 10 files changed, 1803 insertions(+), 416 deletions(-) create mode 100644 .changeset/soft-ligers-march.md diff --git a/.changeset/soft-ligers-march.md b/.changeset/soft-ligers-march.md new file mode 100644 index 000000000..5cdf9da6a --- /dev/null +++ b/.changeset/soft-ligers-march.md @@ -0,0 +1,5 @@ +--- +"@ebay/skin": minor +--- + +flags: updated to use sprites diff --git a/dist/flag/flag.css b/dist/flag/flag.css index d83cbfb57..8bfbc75cf 100644 --- a/dist/flag/flag.css +++ b/dist/flag/flag.css @@ -1,3 +1,4 @@ +/* stylelint-disable number-max-precision */ svg.flag { display: inline-block; max-height: 48px; @@ -6,3 +7,776 @@ svg.flag { stroke-width: 0; vertical-align: middle; } +/* !***************************************************** +Freak Flags, Copyright ©2024 Michael P. Cohen. Freak flags is licenced under the MIT licence. +For complete information visit: www.freakflagsprite.com +******************************************************/ +.fflag { + background-image: url("https://ir.ebaystatic.com/cr/v/c1/skin/flags/flags-v2.png"); + background-repeat: no-repeat; + background-size: 100% 49494%; + box-shadow: 0 0 0 1px #5a5a5a; + box-sizing: content-box; + display: inline-block; + overflow: hidden; + position: relative; + vertical-align: middle; +} +.fflag--ch, +.fflag--np { + box-shadow: none !important; +} +.fflag--dz { + background-position: center 0.2287%; +} +.fflag--ao { + background-position: center 0.4524%; +} +.fflag--bj { + background-position: center 0.6721%; +} +.fflag--bw { + background-position: center 0.8958%; +} +.fflag--bf { + background-position: center 1.1162%; +} +.fflag--bi { + background-position: center 1.3379%; +} +.fflag--cm { + background-position: center 1.5589%; +} +.fflag--cv { + background-position: center 1.7805%; +} +.fflag--cf { + background-position: center 2.0047%; +} +.fflag--td { + background-position: center 2.2247%; +} +.fflag--cd { + background-position: left 2.4467%; +} +.fflag--dj { + background-position: left 2.6674%; +} +.fflag--eg { + background-position: center 2.8931%; +} +.fflag--gq { + background-position: center 3.1125%; +} +.fflag--er { + background-position: left 3.3325%; +} +.fflag--et { + background-position: center 3.5542%; +} +.fflag--ga { + background-position: center 3.7759%; +} +.fflag--gm { + background-position: center 4.0015%; +} +.fflag--gh { + background-position: center 4.2229%; +} +.fflag--gn { + background-position: center 4.441%; +} +.fflag--gw { + background-position: left 4.66663%; +} +.fflag--ci { + background-position: center 4.8844%; +} +.fflag--ke { + background-position: center 5.1061%; +} +.fflag--ls { + background-position: center 5.3298%; +} +.fflag--lr { + background-position: left 5.5495%; +} +.fflag--ly { + background-position: center 5.7712%; +} +.fflag--mg { + background-position: center 5.994%; +} +.fflag--mw { + background-position: center 6.2156%; +} +.fflag--ml { + background-position: center 6.4363%; +} +.fflag--mr { + background-position: center 6.658%; +} +.fflag--mu { + background-position: center 6.8805%; +} +.fflag--yt { + background-position: center 7.1038%; +} +.fflag--ma { + background-position: center 7.3231%; +} +.fflag--mz { + background-position: left 7.5448%; +} +.fflag--na { + background-position: left 7.7661%; +} +.fflag--ne { + background-position: center 7.98937%; +} +.fflag--ng { + background-position: center 8.2099%; +} +.fflag--cg { + background-position: center 8.4316%; +} +.fflag--re { + background-position: center 8.6533%; +} +.fflag--rw { + background-position: right 8.875%; +} +.fflag--sh { + background-position: center 9.0967%; +} +.fflag--st { + background-position: center 9.32237%; +} +.fflag--sn { + background-position: center 9.5426%; +} +.fflag--sc { + background-position: left 9.7628%; +} +.fflag--sl { + background-position: center 9.9845%; +} +.fflag--so { + background-position: center 10.2052%; +} +.fflag--za { + background-position: left 10.4269%; +} +.fflag--ss { + background-position: left 10.6486%; +} +.fflag--sd { + background-position: center 10.8703%; +} +.fflag--sr { + background-position: center 11.0945%; +} +.fflag--sz { + background-position: center 11.3135%; +} +.fflag--tg { + background-position: left 11.5354%; +} +.fflag--tn { + background-position: center 11.7593%; +} +.fflag--ug { + background-position: center 11.9799%; +} +.fflag--tz { + background-position: center 12.2005%; +} +.fflag--eh { + background-position: center 12.4222%; +} +.fflag--ye { + background-position: center 12.644%; +} +.fflag--zm { + background-position: center 12.8664%; +} +.fflag--zw { + background-position: left 13.0873%; +} +.fflag--ai { + background-position: center 13.309%; +} +.fflag--ag { + background-position: center 13.5307%; +} +.fflag--ar { + background-position: center 13.7524%; +} +.fflag--aw { + background-position: left 13.9741%; +} +.fflag--bs { + background-position: left 14.1958%; +} +.fflag--bb { + background-position: center 14.4175%; +} +.fflag--bq { + background-position: center 14.6415%; +} +.fflag--bz { + background-position: center 14.8609%; +} +.fflag--bm { + background-position: center 15.0826%; +} +.fflag--bo { + background-position: center 15.306%; +} +.fflag--vg { + background-position: center 15.528%; +} +.fflag--br { + background-position: center 15.7496%; +} +.fflag--ca { + background-position: center 15.9694%; +} +.fflag--ky { + background-position: center 16.1911%; +} +.fflag--cl { + background-position: left 16.4128%; +} +.fflag--co { + background-position: left 16.6345%; +} +.fflag--km { + background-position: center 16.8562%; +} +.fflag--cr { + background-position: center 17.0779%; +} +.fflag--cu { + background-position: left 17.2996%; +} +.fflag--cw { + background-position: center 17.5213%; +} +.fflag--dm { + background-position: center 17.743%; +} +.fflag--do { + background-position: center 17.968%; +} +.fflag--ec { + background-position: center 18.1864%; +} +.fflag--sv { + background-position: center 18.4081%; +} +.fflag--fk { + background-position: center 18.6298%; +} +.fflag--gf { + background-position: center 18.8515%; +} +.fflag--gl { + background-position: left 19.0732%; +} +.fflag--gd { + background-position: center 19.2987%; +} +.fflag--gp { + background-position: center 19.518%; +} +.fflag--gt { + background-position: center 19.7383%; +} +.fflag--gy { + background-position: center 19.96%; +} +.fflag--ht { + background-position: center 20.1817%; +} +.fflag--hn { + background-position: center 20.4034%; +} +.fflag--jm { + background-position: center 20.6241%; +} +.fflag--mq { + background-position: center 20.8468%; +} +.fflag--mx { + background-position: center 21.0685%; +} +.fflag--ms { + background-position: center 21.2902%; +} +.fflag--ni { + background-position: center 21.5119%; +} +.fflag--pa { + background-position: center 21.7336%; +} +.fflag--py { + background-position: center 21.9553%; +} +.fflag--pe { + background-position: center 22.177%; +} +.fflag--pr { + background-position: left 22.4002%; +} +.fflag--bl { + background-position: center 22.6204%; +} +.fflag--kn { + background-position: center 22.8421%; +} +.fflag--lc { + background-position: center 23.0638%; +} +.fflag--pm { + background-position: center 23.2855%; +} +.fflag--vc { + background-position: center 23.5072%; +} +.fflag--sx { + background-position: left 23.732%; +} +.fflag--tt { + background-position: center 23.9506%; +} +.fflag--tc { + background-position: center 24.1723%; +} +.fflag--us { + background-position: center 24.392%; +} +.fflag--vi { + background-position: center 24.6157%; +} +.fflag--uy { + background-position: left 24.8374%; +} +.fflag--ve { + background-position: center 25.0591%; +} +.fflag--ab { + background-position: center 25.279%; +} +.fflag--af { + background-position: center 25.5025%; +} +.fflag--az { + background-position: center 25.7242%; +} +.fflag--bd { + background-position: center 25.9459%; +} +.fflag--bt { + background-position: center 26.1676%; +} +.fflag--bn { + background-position: center 26.3885%; +} +.fflag--kh { + background-position: center 26.611%; +} +.fflag--cn { + background-position: left 26.8327%; +} +.fflag--ge { + background-position: center 27.0544%; +} +.fflag--hk { + background-position: center 27.2761%; +} +.fflag--in { + background-position: center 27.4978%; +} +.fflag--id { + background-position: center 27.7195%; +} +.fflag--jp { + background-position: center 27.9412%; +} +.fflag--kz { + background-position: center 28.1615%; +} +.fflag--la { + background-position: center 28.3846%; +} +.fflag--mo { + background-position: center 28.6063%; +} +.fflag--my { + background-position: center 28.829%; +} +.fflag--mv { + background-position: center 29.0497%; +} +.fflag--mn { + background-position: left 29.2714%; +} +.fflag--mm { + background-position: center 29.4931%; +} +.fflag--np { + background-position: left 29.7148%; +} +.fflag--kp { + background-position: left 29.9365%; +} +.fflag--mp { + background-position: center 30.1582%; +} +.fflag--pw { + background-position: center 30.3799%; +} +.fflag--pg { + background-position: center 30.6016%; +} +.fflag--ph { + background-position: left 30.8233%; +} +.fflag--sg { + background-position: left 31.045%; +} +.fflag--kr { + background-position: center 31.2667%; +} +.fflag--lk { + background-position: right 31.4884%; +} +.fflag--tw { + background-position: left 31.7101%; +} +.fflag--tj { + background-position: center 31.9318%; +} +.fflag--th { + background-position: center 32.1535%; +} +.fflag--tl { + background-position: left 32.3752%; +} +.fflag--tm { + background-position: center 32.5969%; +} +.fflag--vn { + background-position: center 32.8186%; +} +.fflag--ax { + background-position: center 33.0403%; +} +.fflag--al { + background-position: center 33.25975%; +} +.fflag--ad { + background-position: center 33.4837%; +} +.fflag--am { + background-position: center 33.7054%; +} +.fflag--at { + background-position: center 33.9271%; +} +.fflag--by { + background-position: left 34.1488%; +} +.fflag--be { + background-position: center 34.3705%; +} +.fflag--ba { + background-position: center 34.5922%; +} +.fflag--bg { + background-position: center 34.8139%; +} +.fflag--hr { + background-position: center 35.0356%; +} +.fflag--cy { + background-position: center 35.2555%; +} +.fflag--cz { + background-position: left 35.479%; +} +.fflag--dk { + background-position: center 35.7007%; +} +.fflag--ee { + background-position: center 35.9224%; +} +.fflag--fo { + background-position: center 36.1441%; +} +.fflag--fi { + background-position: center 36.3658%; +} +.fflag--fr { + background-position: center 36.5875%; +} +.fflag--de { + background-position: center 36.8092%; +} +.fflag--gi { + background-position: center 37.0309%; +} +.fflag--gr { + background-position: left 37.2526%; +} +.fflag--gg { + background-position: center 37.4743%; +} +.fflag--hu { + background-position: center 37.696%; +} +.fflag--is { + background-position: center 37.9177%; +} +.fflag--ie { + background-position: center 38.1394%; +} +.fflag--im { + background-position: center 38.3611%; +} +.fflag--it { + background-position: center 38.5828%; +} +.fflag--je { + background-position: center 38.8045%; +} +.fflag--xk { + background-position: center 39.0262%; +} +.fflag--lv { + background-position: center 39.2479%; +} +.fflag--li { + background-position: left 39.4696%; +} +.fflag--lt { + background-position: center 39.6913%; +} +.fflag--lu { + background-position: center 39.913%; +} +.fflag--mt { + background-position: left 40.1347%; +} +.fflag--md { + background-position: center 40.3564%; +} +.fflag--mc { + background-position: center 40.5781%; +} +.fflag--me { + background-position: center 40.7998%; +} +.fflag--nl { + background-position: center 41.0215%; +} +.fflag--mk { + background-position: center 41.2432%; +} +.fflag--no { + background-position: center 41.4649%; +} +.fflag--pl { + background-position: center 41.6866%; +} +.fflag--pt { + background-position: center 41.9083%; +} +.fflag--ro { + background-position: center 42.13%; +} +.fflag--ru { + background-position: center 42.3517%; +} +.fflag--sm { + background-position: center 42.5734%; +} +.fflag--rs { + background-position: center 42.7951%; +} +.fflag--sk { + background-position: center 43.0168%; +} +.fflag--si { + background-position: center 43.2385%; +} +.fflag--es { + background-position: left 43.4602%; +} +.fflag--se { + background-position: center 43.6819%; +} +.fflag--ch { + background-position: center 43.9036%; +} +.fflag--tr { + background-position: center 44.1253%; +} +.fflag--ua { + background-position: center 44.347%; +} +.fflag--gb { + background-position: center 44.5687%; +} +.fflag--va { + background-position: right 44.7904%; +} +.fflag--bh { + background-position: center 45.0121%; +} +.fflag--ir { + background-position: center 45.2338%; +} +.fflag--iq { + background-position: center 45.4555%; +} +.fflag--il { + background-position: center 45.6772%; +} +.fflag--kw { + background-position: left 45.897%; +} +.fflag--jo { + background-position: left 46.1206%; +} +.fflag--kg { + background-position: center 46.3423%; +} +.fflag--lb { + background-position: center 46.561%; +} +.fflag--om { + background-position: left 46.7857%; +} +.fflag--pk { + background-position: center 47.0074%; +} +.fflag--ps { + background-position: center 47.2291%; +} +.fflag--qa { + background-position: center 47.4508%; +} +.fflag--sa { + background-position: center 47.6725%; +} +.fflag--sy { + background-position: center 47.8942%; +} +.fflag--ae { + background-position: center 48.1159%; +} +.fflag--uz { + background-position: left 48.3376%; +} +.fflag--as { + background-position: right 48.5593%; +} +.fflag--au { + background-position: center 48.781%; +} +.fflag--cx { + background-position: center 49.002%; +} +.fflag--cc { + background-position: center 49.2244%; +} +.fflag--ck { + background-position: center 49.4445%; +} +.fflag--fj { + background-position: center 49.6678%; +} +.fflag--pf { + background-position: center 49.8895%; +} +.fflag--gu { + background-position: center 50.1112%; +} +.fflag--ki { + background-position: center 50.3329%; +} +.fflag--mh { + background-position: left 50.5546%; +} +.fflag--fm { + background-position: center 50.7763%; +} +.fflag--nc { + background-position: center 50.998%; +} +.fflag--nz { + background-position: center 51.2197%; +} +.fflag--nr { + background-position: left 51.4414%; +} +.fflag--nu { + background-position: center 51.6631%; +} +.fflag--nf { + background-position: center 51.8848%; +} +.fflag--ws { + background-position: left 52.1065%; +} +.fflag--sb { + background-position: left 52.3282%; +} +.fflag--tk { + background-position: center 52.5499%; +} +.fflag--to { + background-position: left 52.7716%; +} +.fflag--tv { + background-position: center 52.9933%; +} +.fflag--vu { + background-position: left 53.215%; +} +.fflag--wf { + background-position: center 53.4385%; +} +.fflag--aq { + background-position: center 53.6584%; +} +.fflag--eu { + background-position: center 53.875%; +} +.fflag--jr { + background-position: center 54.099%; +} +.fflag--oly { + background-position: center 54.32%; +} +.fflag--un { + background-position: center 54.54%; +} +.fflag.ff-sm { + height: 11px; + width: 18px; +} +.fflag.ff-md { + height: 17px; + width: 27px; +} +.fflag.ff-lg { + height: 27px; + width: 42px; +} +.fflag.ff-xl { + height: 37px; + width: 60px; +} diff --git a/dist/phone-input/phone-input.css b/dist/phone-input/phone-input.css index b3760957a..3cab751ec 100644 --- a/dist/phone-input/phone-input.css +++ b/dist/phone-input/phone-input.css @@ -12,6 +12,7 @@ -webkit-margin-start: var(--spacing-50); margin-inline-start: var(--spacing-50); } +.phone-input .listbox-button span.fflag, .phone-input .listbox-button svg.flag { height: 18px; width: 24px; @@ -93,6 +94,7 @@ background-color: var(--textbox-background-color, var(--color-background-secondary)); color: var(--textbox-foreground-color, var(--color-foreground-secondary)); } +.phone-input--disabled span.fflag, .phone-input--disabled svg.flag { filter: var(--color-icon-disabled-filter); } diff --git a/docs/_includes/phone-input.html b/docs/_includes/phone-input.html index 321f8ee90..116f0a427 100644 --- a/docs/_includes/phone-input.html +++ b/docs/_includes/phone-input.html @@ -17,10 +17,7 @@

Default Phone input

data-listbox-button-prefix="Country: " aria-label="Country: United States of America"> - +

Default Phone input

- - - + Albania (+355) @@ -43,10 +38,8 @@

Default Phone input

- + + India (+91) @@ -56,10 +49,8 @@

Default Phone input

- + + Saint Helena, Ascension and Tristan da Cunha (+290) @@ -69,10 +60,8 @@

Default Phone input

- + + United Kingdom (+44) @@ -82,10 +71,8 @@

Default Phone input

- + + United States of America (+1) @@ -112,10 +99,9 @@

Default Phone input

data-listbox-button-prefix="Country: " aria-label="Country: United States of America"> - +

Default Phone input

- + Albania (+355) @@ -139,10 +124,9 @@

Default Phone input

- + India (+91) @@ -152,10 +136,9 @@

Default Phone input

- + Saint Helena, Ascension and Tristan da Cunha (+290) @@ -165,10 +148,9 @@

Default Phone input

- + United Kingdom (+44) @@ -178,10 +160,9 @@

Default Phone input

- + United States of America (+1) @@ -213,10 +194,8 @@

With Group Label

data-listbox-button-prefix="Country: " aria-label="Country: United States of America"> - + +

With Group Label

- + Albania (+355) -
- + India (+91) @@ -253,10 +225,7 @@

With Group Label

- + Saint Helena, Ascension and Tristan da Cunha (+290) @@ -266,10 +235,7 @@

With Group Label

- + United Kingdom (+44) @@ -279,10 +245,7 @@

With Group Label

- + United States of America (+1) @@ -312,10 +275,9 @@

With Group Label

data-listbox-button-prefix="Country: " aria-label="Country: United States of America"> - +

With Group Label

- + + Albania (+355) @@ -340,10 +300,8 @@

With Group Label

...
- + + United States of America (+1) @@ -376,10 +334,8 @@

Large Phone input

aria-label="Country: United States of America"> - + +

Large Phone input

- + + Albania (+355) @@ -403,10 +357,8 @@

Large Phone input

- + + India (+91) @@ -416,10 +368,8 @@

Large Phone input

- + + Saint Helena, Ascension and Tristan da Cunha (+290) @@ -429,10 +379,8 @@

Large Phone input

- + + United Kingdom (+44) @@ -442,10 +390,8 @@

Large Phone input

- + + United States of America (+1) @@ -472,10 +418,9 @@

Large Phone input

aria-haspopup="listbox" type="button" data-listbox-button-prefix="Country: "> - +

Large Phone input

- + Albania (+355) @@ -500,10 +444,9 @@

Large Phone input

...
- + United States of America (+1) @@ -535,10 +478,8 @@

Readonly Phone input

data-listbox-button-prefix="Country: " aria-label="Country: United States of America" disabled> - + +

Readonly Phone input

- + + Albania (+355) @@ -562,10 +501,8 @@

Readonly Phone input

- + + India (+91) @@ -575,10 +512,8 @@

Readonly Phone input

- + + Saint Helena, Ascension and Tristan da Cunha (+290) @@ -588,10 +523,8 @@

Readonly Phone input

- + + United Kingdom (+44) @@ -601,10 +534,8 @@

Readonly Phone input

- + + United States of America (+1) @@ -631,10 +562,9 @@

Readonly Phone input

data-listbox-button-prefix="Country: " aria-label="Country: United States of America" disabled> - +

Readonly Phone input

- + Albania (+355) @@ -659,10 +588,9 @@

Readonly Phone input

...
- + United States of America (+1) @@ -695,10 +623,8 @@

Disabled Phone Input

data-listbox-button-prefix="Country: " aria-label="Country: United States of America" disabled> - + +

Disabled Phone Input

- + + Albania (+355) @@ -722,10 +646,8 @@

Disabled Phone Input

- + + India (+91) @@ -735,10 +657,8 @@

Disabled Phone Input

- + + Saint Helena, Ascension and Tristan da Cunha (+290) @@ -748,10 +668,8 @@

Disabled Phone Input

- + + United Kingdom (+44) @@ -761,10 +679,8 @@

Disabled Phone Input

- + + United States of America (+1) @@ -791,10 +707,9 @@

Disabled Phone Input

data-listbox-button-prefix="Country: " aria-label="Country: United States of America" disabled> - +

Disabled Phone Input

- + Albania (+355) @@ -819,10 +733,9 @@

Disabled Phone Input

...
- + United States of America (+1) @@ -847,17 +760,15 @@

Error Phone Input

- + \n \n \n ');e.insertAdjacentHTML("beforeend",n)}(t)}if(o.matches(s)){const t=o.previousElementSibling.innerText.trim(),i=o.closest("li");e.removeChild(i),function(t){const e='\n
\n '.concat(t,"\n
\n ");n.insertAdjacentHTML("beforeend",e)}(t)}}}))}))})(); +(()=>{"use strict";function t(t){!function(t,e,n){if(!t.shiftKey){const s=t.key;switch(s){case"Enter":case"Escape":case"PageUp":case"PageDown":case"End":case"Home":case"ArrowLeft":case"ArrowUp":case"ArrowRight":case"ArrowDown":e.dispatchEvent(new CustomEvent((i=`${s}Key${n}`).charAt(0).toLowerCase()+i.slice(1),{detail:t,bubbles:!0}));break;case" ":e.dispatchEvent(new CustomEvent(`spacebarKey${n}`,{detail:t,bubbles:!0}));break;default:return}}var i}(t,this,"Down")}const e={},n="nid",i=function(t){const e="abcdefghijklmnopqrstuvwxyz",n=e+"0123456789";let i=e[s(25)];for(let t=1;t<3;t++)i+=n[s(35)];return i}();function s(t){return Math.floor(Math.random()*t)}function o(t,s=n){const o=`${s}${""===s?"":"-"}${i}`;return e[o]=e[o]||0,t.id||t.setAttribute("id",`${o}-${e[o]++}`),t.id}const r={};function l(t,e,n){t.dispatchEvent(new CustomEvent("focusExit",{detail:{fromElement:e,toElement:n},bubbles:!1}))}function a(t){const e=t.target;!0===this.el.contains(e)?this.currentFocusElement=e:(window.removeEventListener("blur",this.onWindowBlurListener),document.removeEventListener("focusin",this.onDocumentFocusInListener),l(this.el,this.currentFocusElement,e),this.currentFocusElement=null)}function c(){l(this.el,this.currentFocusElement,void 0)}function u(){document.addEventListener("focusin",this.onDocumentFocusInListener),window.addEventListener("blur",this.onWindowBlurListener)}class h{constructor(t){this.el=t,this.currentFocusElement=null,this.onWidgetFocusInListener=u.bind(this),this.onDocumentFocusInListener=a.bind(this),this.onWindowBlurListener=c.bind(this),this.el.addEventListener("focusin",this.onWidgetFocusInListener)}removeEventListeners(){window.removeEventListener("blur",this.onWindowBlurListener),document.removeEventListener("focusin",this.onDocumentFocusInListener),this.el.removeEventListener("focusin",this.onWidgetFocusInListener)}}function d(t){let e=null;return o(t),r[t.id]||(e=new h(t),r[t.id]=e),e}const m={axis:"both",autoInit:"interactive",autoReset:"current",ignoreByDelegateSelector:null,wrap:!1};function b(t){return!t.hidden&&"true"!==t.getAttribute("aria-disabled")}function _(t,e){return e>=0&&eb(t)))}function p(t){return t.indexOf(function(t){return t.filter(b)}(t).reverse()[0])}function v(t,e,n){return t.findIndex((t=>b(t)&&t.getAttribute(e)===n))}function E(t){return v(t,"aria-selected","true")}function g(t,e){return null!==e.ignoreByDelegateSelector?[...t.querySelectorAll(e.ignoreByDelegateSelector)]:[]}function L(t,e,n){let i=-1;switch(t){case"none":i=null;break;case"current":i=n;break;case"interactive":i=f(e);break;case"ariaChecked":i=function(t){return v(t,"aria-checked","true")}(e);break;case"ariaSelected":i=E(e);break;case"ariaSelectedOrInteractive":i=E(e),i=-1===i?f(e):i;break;default:i="number"==typeof t||null===t?t:-1}return i}function x(t){const e=g(this._el,this.options);0!==e.length&&e.includes(t.detail.target)||(this.index=function(t,e,n){let i=-1;if(null===e);else if(function(t,e){return e===f(t)}(t,e))!0===n&&(i=p(t));else{let n=e;for(;--n>=0;)if(b(t[n])){i=n;break}}return i}(this.items,this.index,this.options.wrap))}function y(t){const e=g(this._el,this.options);0!==e.length&&e.includes(t.detail.target)||(this.index=function(t,e,n){let i=-1;if(null===e)i=f(t);else if(function(t,e){return e===p(t)}(t,e))!0===n&&(i=f(t));else{let n=e;for(;++n0&&[...o].includes(this._cachedElement)?n=f(this.items):(o.length>0||i.length>0)&&(n=this.indexOf(this._cachedElement))),this._index=n,this._el.dispatchEvent(new CustomEvent("navigationModelMutation",{bubbles:!1,detail:{fromIndex:e,toIndex:n}}))}class A{constructor(t,e,n){this.options=Object.assign({},m,n),this._el=t,this._itemSelector=e}}class O extends A{constructor(t,e,n){super(t,e,n);const i=this._index,s=L(this.options.autoInit,this.items,this.index);this._index=s,this._cachedElement=this.items[s],this._el.dispatchEvent(new CustomEvent("navigationModelInit",{bubbles:!1,detail:{firstInteractiveIndex:this.firstNavigableIndex,fromIndex:i,items:this.items,toIndex:s}}))}get currentItem(){return this.items[this.index]}get items(){return[...this._el.querySelectorAll(`${this._itemSelector}`)]}get index(){return this._index}set index(t){if(t!==this.index&&_(this.items,t)){const e=this.index;this._cachedElement=this.items[t],this._index=t,this._el.dispatchEvent(new CustomEvent("navigationModelChange",{bubbles:!1,detail:{fromIndex:e,toIndex:t}}))}}indexOf(t){return this.items.indexOf(t)}reset(){const t=this.index,e=L(this.options.autoReset,this.items,this.index);e!==t&&(this._index=e,this._el.dispatchEvent(new CustomEvent("navigationModelReset",{bubbles:!1,detail:{fromIndex:t,toIndex:e}})))}}class I{constructor(e,n){this.model=n,this.el=e,this._keyPrevListener=x.bind(n),this._keyNextListener=y.bind(n),this._keyHomeListener=k.bind(n),this._keyEndListener=C.bind(n),this._clickListener=w.bind(n),this._focusExitListener=S.bind(n),this._observer=new MutationObserver(M.bind(n)),function(e){e.addEventListener("keydown",t)}(this.el),d(this.el);const i=n.options.axis;"both"!==i&&"x"!==i||(this.el.addEventListener("arrowLeftKeyDown",this._keyPrevListener),this.el.addEventListener("arrowRightKeyDown",this._keyNextListener)),"both"!==i&&"y"!==i||(this.el.addEventListener("arrowUpKeyDown",this._keyPrevListener),this.el.addEventListener("arrowDownKeyDown",this._keyNextListener)),this.el.addEventListener("homeKeyDown",this._keyHomeListener),this.el.addEventListener("endKeyDown",this._keyEndListener),this.el.addEventListener("click",this._clickListener),this.el.addEventListener("focusExit",this._focusExitListener),this._observer.observe(this.el,{childList:!0,subtree:!0,attributeFilter:["aria-disabled","hidden"],attributes:!0,attributeOldValue:!0})}destroy(){this.el.removeEventListener("keydown",t),function(t){const e=r[t.id];e&&(e.removeEventListeners(),delete r[t.id])}(this.el),this.el.removeEventListener("arrowLeftKeyDown",this._keyPrevListener),this.el.removeEventListener("arrowRightKeyDown",this._keyNextListener),this.el.removeEventListener("arrowUpKeyDown",this._keyPrevListener),this.el.removeEventListener("arrowDownKeyDown",this._keyNextListener),this.el.removeEventListener("homeKeyDown",this._keyHomeListener),this.el.removeEventListener("endKeyDown",this._keyEndListener),this.el.removeEventListener("click",this._clickListener),this.el.removeEventListener("focusExit",this._focusExitListener),this._observer.disconnect()}}function T(t,e,n){const i=new O(t,e,n);return new I(t,i)}const D={autoInit:"interactive",autoReset:"current",wrap:!1,axis:"both"};function B(t,e){t.forEach((function(t,n){t.setAttribute("tabindex",n===e?"0":"-1")}))}function q(t){B(t.detail.items,t.detail.toIndex),this._el.dispatchEvent(new CustomEvent("rovingTabindexInit",{detail:t.detail}))}function F(t){const e=this.items,n=e[t.detail.fromIndex],i=e[t.detail.toIndex];n&&n.setAttribute("tabindex","-1"),i&&(i.setAttribute("tabindex","0"),i.focus()),this._el.dispatchEvent(new CustomEvent("rovingTabindexChange",{detail:t.detail}))}function R(t){B(this.items,t.detail.toIndex),this._el.dispatchEvent(new CustomEvent("rovingTabindexReset",{detail:t.detail}))}function N(t){B(this.items,t.detail.toIndex),this._el.dispatchEvent(new CustomEvent("rovingTabindexMutation",{detail:t.detail}))}class j{constructor(t){this._el=t,this._onMutationListener=N.bind(this),this._onChangeListener=F.bind(this),this._onInitListener=q.bind(this),this._onResetListener=R.bind(this),this._el.addEventListener("navigationModelMutation",this._onMutationListener),this._el.addEventListener("navigationModelChange",this._onChangeListener),this._el.addEventListener("navigationModelInit",this._onInitListener),this._el.addEventListener("navigationModelReset",this._onResetListener)}destroy(){this._el.removeEventListener("navigationModelMutation",this._onMutationListener),this._el.removeEventListener("navigationModelChange",this._onChangeListener),this._el.removeEventListener("navigationModelInit",this._onInitListener),this._el.removeEventListener("navigationModelReset",this._onResetListener)}}class K extends j{constructor(t,e,n){super(t),this._options=Object.assign({},D,n),this._itemSelector=e,this._navigationEmitter=T(t,e,{autoInit:void 0!==this._options.index?this._options.index:this._options.autoInit,autoReset:this._options.autoReset,wrap:this._options.wrap,axis:this._options.axis})}get index(){return this._navigationEmitter.model.index}set index(t){this._navigationEmitter.model.index=t}set wrap(t){this._navigationEmitter.model.options.wrap=t}get currentItem(){return this._navigationEmitter.model.currentItem}get items(){return this._navigationEmitter.model.items}reset(){this._navigationEmitter.model.reset()}destroy(){super.destroy(),this._navigationEmitter.destroy()}}function P(t,e,n){return new K(t,e,n)}const H=["a[href]","area[href]","button:not([disabled])","embed","iframe","input:not([disabled])","object","select:not([disabled])","textarea:not([disabled])","*[tabindex]","*[contenteditable]"].join();function W(t,e=!1,n){if(n){const i=requestAnimationFrame((()=>{n($(t,e))}));return()=>{cancelAnimationFrame(i)}}return $(t,e)}function $(t,e=!1){let n=Array.prototype.slice.call(t.querySelectorAll(H));return n=n.filter((function(t){return"none"!==window.getComputedStyle(t).display})),!0===e&&(n=n.filter((function(t){return"-1"!==t.getAttribute("tabindex")}))),n}const z={alwaysDoFocusManagement:!1,ariaControls:!0,autoCollapse:!1,collapseOnFocusOut:!1,collapseOnMouseOut:!1,collapseOnClickOut:!1,contentSelector:".expander__content",expandedClass:null,expandOnClick:!1,expandOnFocus:!1,expandOnHover:!1,focusManagement:null,hostSelector:".expander__host",simulateSpacebarClick:!1};function V(t){13!==t.keyCode&&32!==t.keyCode||(this._keyboardClickFlag=!0),32===t.keyCode&&!0===this.options.simulateSpacebarClick&&this.hostEl.click()}function G(){this._mouseClickFlag=!0}function U(){this._expandWasKeyboardClickActivated=this._keyboardClickFlag,this._expandWasMouseClickActivated=this._mouseClickFlag,this.expanded=!this.expanded}function X(){this._expandWasFocusActivated=!0,this.expanded=!0}function Y(){clearTimeout(this._mouseLeft),this._expandWasHoverActivated=!0,this.expanded=!0}function J(){this.expanded=!1}function Q(){clearTimeout(this._mouseLeft),this._mouseLeft=setTimeout((()=>{this.expanded=!1}),300)}function Z(t){!1===this.el.contains(t.target)&&(this.expanded=!1)}function tt(){this.documentClick=!0}function et(){this.documentClick=!1}function nt(t){!0===this.documentClick&&(this.documentClick=!1,!1===this.el.contains(t.target)&&(this.expanded=!1))}class it{constructor(t,e){this.options=Object.assign({},z,e),this.el=t,this.hostEl=t.querySelector(this.options.hostSelector),this.contentEl=t.querySelector(this.options.contentSelector),d(this.el),this._hostKeyDownListener=V.bind(this),this._hostMouseDownListener=G.bind(this),this._documentClickListener=Z.bind(this),this._documentTouchStartListener=tt.bind(this),this._documentTouchMoveListener=et.bind(this),this._documentTouchEndListener=nt.bind(this),this._hostClickListener=U.bind(this),this._hostFocusListener=X.bind(this),this._hostHoverListener=Y.bind(this),this._focusExitListener=J.bind(this),this._mouseLeaveListener=Q.bind(this),null===this.hostEl.getAttribute("aria-expanded")&&this.hostEl.setAttribute("aria-expanded","false"),!0===this.options.ariaControls&&(o(this.el,"expander"),this.contentEl.id=this.contentEl.id||`${this.el.id}-content`,this.hostEl.setAttribute("aria-controls",this.contentEl.id)),this.expandOnClick=this.options.expandOnClick,this.expandOnFocus=this.options.expandOnFocus,this.expandOnHover=this.options.expandOnHover,!1===this.options.autoCollapse&&(this.collapseOnClickOut=this.options.collapseOnClickOut,this.collapseOnFocusOut=this.options.collapseOnFocusOut,this.collapseOnMouseOut=this.options.collapseOnMouseOut)}set expandOnClick(t){!0===t?(this.hostEl.addEventListener("keydown",this._hostKeyDownListener),this.hostEl.addEventListener("mousedown",this._hostMouseDownListener),this.hostEl.addEventListener("click",this._hostClickListener),!0===this.options.autoCollapse&&(this.collapseOnClickOut=!0,this.collapseOnFocusOut=!0)):(this.hostEl.removeEventListener("click",this._hostClickListener),this.hostEl.removeEventListener("mousedown",this._hostMouseDownListener),this.hostEl.removeEventListener("keydown",this._hostKeyDownListener))}set expandOnFocus(t){!0===t?(this.hostEl.addEventListener("focus",this._hostFocusListener),!0===this.options.autoCollapse&&(this.collapseOnClickOut=!0,this.collapseOnFocusOut=!0)):this.hostEl.removeEventListener("focus",this._hostFocusListener)}set expandOnHover(t){!0===t?(this.hostEl.addEventListener("mouseenter",this._hostHoverListener),this.contentEl.addEventListener("mouseenter",this._hostHoverListener),!0===this.options.autoCollapse&&(this.collapseOnMouseOut=!0)):(this.hostEl.removeEventListener("mouseenter",this._hostHoverListener),this.contentEl.removeEventListener("mouseenter",this._hostHoverListener))}set collapseOnClickOut(t){!0===t?(document.addEventListener("click",this._documentClickListener),document.addEventListener("touchstart",this._documentTouchStartListener),document.addEventListener("touchmove",this._documentTouchMoveListener),document.addEventListener("touchend",this._documentTouchEndListener)):(document.removeEventListener("click",this._documentClickListener),document.removeEventListener("touchstart",this._documentTouchStartListener),document.removeEventListener("touchmove",this._documentTouchMoveListener),document.removeEventListener("touchend",this._documentTouchEndListener))}set collapseOnFocusOut(t){!0===t?this.el.addEventListener("focusExit",this._focusExitListener):this.el.removeEventListener("focusExit",this._focusExitListener)}set collapseOnMouseOut(t){!0===t?(this.el.addEventListener("mouseleave",this._mouseLeaveListener),this.contentEl.addEventListener("mouseleave",this._mouseLeaveListener)):(this.el.removeEventListener("mouseleave",this._mouseLeaveListener),this.contentEl.removeEventListener("mouseleave",this._mouseLeaveListener))}get expanded(){return"true"===this.hostEl.getAttribute("aria-expanded")}set expanded(t){!0===t&&!1===this.expanded&&(this.hostEl.setAttribute("aria-expanded","true"),this.options.expandedClass&&this.el.classList.add(this.options.expandedClass),(this._expandWasKeyboardClickActivated||this._expandWasMouseClickActivated&&this.options.alwaysDoFocusManagement)&&function(t,e){if("content"===t)e.setAttribute("tabindex","-1"),e.focus();else if("focusable"===t)W(e)[0].focus();else if("interactive"===t)W(e,!0)[0].focus();else if(null!==t){const n=e.querySelector(`#${t}`);n&&n.focus()}}(this.options.focusManagement,this.contentEl),this.el.dispatchEvent(new CustomEvent("expander-expand",{bubbles:!0,detail:this.contentEl}))),!1===t&&!0===this.expanded&&(this.hostEl.setAttribute("aria-expanded","false"),this.options.expandedClass&&this.el.classList.remove(this.options.expandedClass),this.el.dispatchEvent(new CustomEvent("expander-collapse",{bubbles:!0,detail:this.contentEl}))),this._expandWasKeyboardClickActivated=!1,this._expandWasMouseClickActivated=!1,this._expandWasFocusActivated=!1,this._expandWasHoverActivated=!1,this._keyboardClickFlag=!1,this._mouseClickFlag=!1}sleep(){!0!==this._destroyed&&(this.expandOnClick=!1,this.expandOnFocus=!1,this.expandOnHover=!1,this.collapseOnClickOut=!1,this.collapseOnFocusOut=!1,this.collapseOnMouseOut=!1)}destroy(){this.sleep(),this._destroyed=!0,this._hostKeyDownListener=null,this._hostMouseDownListener=null,this._documentClickListener=null,this._documentTouchStartListener=null,this._documentTouchMoveListener=null,this._documentTouchEndListener=null,this._hostClickListener=null,this._hostFocusListener=null,this._hostHoverListener=null,this._focusExitListener=null,this._mouseLeaveListener=null}}const st={labelElementAnimateModifier:"floating-label__label--animate",labelElementInlineModifier:"floating-label__label--inline",labelElementFocusModifier:"floating-label__label--focus",labelElementInvalidModifier:"floating-label__label--invalid",labelElementDisabledModifier:"floating-label__label--disabled",textboxElementBackgroundRGB:["rgb(255, 255, 255)","rgb(247, 247, 247)","rgb(245, 245, 245)","rgb(230, 32, 72)","rgb(254, 245, 246)"]};function ot(t,e){if(at(t)){t.style["min-width"]="";const n=t.offsetWidth;t.querySelector("option").text=e,!e&&n>t.offsetWidth&&(t.style["min-width"]=`${n}px`)}else e?t.setAttribute("placeholder",e):t.removeAttribute("placeholder")}function rt(){const t=lt(this.formControlEl);this.placeholder=function(t){if(at(t)){const e=t.querySelector("option");return e.value?null:e.text}if(t.hasAttribute("placeholder"))return t.getAttribute("placeholder")}(this.formControlEl)||this.placeholder;const e=function(t){if(at(t)){const e=t.querySelector("option");if(e.value)return;return!!e.text}return t.hasAttribute("placeholder")}(this.formControlEl,this.placeholder);this.placeholder&&t&&!e?ot(this.formControlEl,this.placeholder):!t&&e&&ot(this.formControlEl,""),ut(this.formControlEl)?this.labelEl.classList.add(this.options.labelElementInvalidModifier):this.labelEl.classList.remove(this.options.labelElementInvalidModifier),this.formControlEl.hasAttribute("disabled")?this.labelEl.classList.add(this.options.labelElementDisabledModifier):this.labelEl.classList.remove(this.options.labelElementDisabledModifier)}function lt(t){return document.activeElement===t}function at(t){return"SELECT"===t.tagName}function ct(t){return t.value.length>0}function ut(t){return t.hasAttribute("aria-invalid")&&"true"===t.getAttribute("aria-invalid")}function ht(t,e){if(!at(t)){const n=getComputedStyle(t).backgroundColor;return Array.isArray(e)?!e.includes(n):n!==e}return!1}function dt(){ct(this.formControlEl)||this.labelEl.classList.add(this.options.labelElementInlineModifier),this.labelEl.classList.remove(this.options.labelElementFocusModifier),ut(this.formControlEl)&&this.labelEl.classList.add(this.options.labelElementInvalidModifier),ot(this.formControlEl,"")}function mt(){this.labelEl.classList.add(this.options.labelElementAnimateModifier),this.labelEl.classList.add(this.options.labelElementFocusModifier),this.labelEl.classList.remove(this.options.labelElementInlineModifier),this.labelEl.classList.remove(this.options.labelElementInvalidModifier),this.placeholder&&ot(this.formControlEl,this.placeholder)}class bt{constructor(t,e){this.options=Object.assign({},st,e),this._observer=new MutationObserver(rt.bind(this)),this.rootEl=t,this.labelEl=this.rootEl.querySelector("label"),this.formControlEl=this.rootEl.querySelector("input,textarea,select"),this._onBlurListener=dt.bind(this),this._onFocusListener=mt.bind(this),this.formControlEl.addEventListener("blur",this._onBlurListener),this.formControlEl.addEventListener("focus",this._onFocusListener),ct(this.formControlEl)||ht(this.formControlEl,this.options.textboxElementBackgroundRGB)?at(this.formControlEl)||this.labelEl.classList.remove(this.options.labelElementInlineModifier):this.labelEl.classList.add(this.options.labelElementInlineModifier),lt(this.formControlEl)&&(this.labelEl.classList.add(this.options.labelElementFocusModifier),this.labelEl.classList.remove(this.options.labelElementInlineModifier)),rt.call(this),this._observer.observe(this.formControlEl,{childList:at(this.formControlEl),subtree:at(this.formControlEl),attributeFilter:["disabled","aria-invalid","placeholder","value"],attributes:!0})}destroy(){this._observer.disconnect()}refresh(){ct(this.formControlEl)||at(this.formControlEl)||ht(this.formControlEl,this.options.textboxElementBackgroundRGB)?this.labelEl.classList.remove(this.options.labelElementInlineModifier):this.labelEl.classList.add(this.options.labelElementInlineModifier),lt(this.formControlEl)&&(this.labelEl.classList.add(this.options.labelElementFocusModifier),this.labelEl.classList.remove(this.options.labelElementInlineModifier))}}function _t(t){t.keyCode>=32&&t.keyCode<=40&&t.preventDefault()}function ft(t){t.addEventListener("keydown",_t)}const pt={activeDescendantClassName:"active-descendant",autoInit:"none",autoReset:"none",autoScroll:!1,axis:"both",wrap:!1};function vt(t){const{items:e,toIndex:n}=t.detail,i=e[n];i&&(i.classList.add(this._options.activeDescendantClassName),this._focusEl.setAttribute("aria-activedescendant",i.id)),this._el.dispatchEvent(new CustomEvent("activeDescendantInit",{detail:t.detail}))}function Et(t){const{fromIndex:e,toIndex:n}=t.detail,i=this.items[e],s=this.items[n];i&&i.classList.remove(this._options.activeDescendantClassName),s&&(s.classList.add(this._options.activeDescendantClassName),this._focusEl.setAttribute("aria-activedescendant",s.id),this._options.autoScroll&&this._containerEl&&(this._containerEl.scrollTop=s.offsetTop-this._containerEl.offsetHeight/2)),this._el.dispatchEvent(new CustomEvent("activeDescendantChange",{detail:t.detail}))}function gt(t){const e=t.detail.toIndex,n=this._options.activeDescendantClassName;if(this.items.forEach((function(t){t.classList.remove(n)})),null!==e&&-1!==e){const t=this.items[e];t.classList.add(n),this._focusEl.setAttribute("aria-activedescendant",t.id)}else this._focusEl.removeAttribute("aria-activedescendant");this._el.dispatchEvent(new CustomEvent("activeDescendantReset",{detail:t.detail}))}function Lt(t){const{toIndex:e}=t.detail,n=this._options.activeDescendantClassName;this.items.forEach((function(t,i){o(t),i!==e?t.classList.remove(n):t.classList.add(n)})),this._el.dispatchEvent(new CustomEvent("activeDescendantMutation",{detail:t.detail}))}class xt{constructor(t){this._el=t,this._onMutationListener=Lt.bind(this),this._onChangeListener=Et.bind(this),this._onResetListener=gt.bind(this),this._onInitListener=vt.bind(this),this._el.addEventListener("navigationModelMutation",this._onMutationListener),this._el.addEventListener("navigationModelChange",this._onChangeListener),this._el.addEventListener("navigationModelReset",this._onResetListener),this._el.addEventListener("navigationModelInit",this._onInitListener)}destroy(){this._el.removeEventListener("navigationModelMutation",this._onMutationListener),this._el.removeEventListener("navigationModelChange",this._onChangeListener),this._el.removeEventListener("navigationModelReset",this._onResetListener),this._el.removeEventListener("navigationModelInit",this._onInitListener)}}class yt extends xt{constructor(t,e,n,i,s){super(t),this._options=Object.assign({},pt,s),this._focusEl=e,this._itemContainerEl=n,this._itemSelector=i,o(this._itemContainerEl),this._itemContainerEl!==this._focusEl&&e.setAttribute("aria-owns",this._itemContainerEl.id),this._navigationEmitter=T(t,i,{autoInit:this._options.autoInit,autoReset:this._options.autoReset,axis:this._options.axis,ignoreByDelegateSelector:this._options.ignoreByDelegateSelector,wrap:this._options.wrap}),this.items.forEach((function(t){o(t)}))}get index(){return this._navigationEmitter.model.index}set index(t){this._navigationEmitter.model.index=t}reset(){this._navigationEmitter.model.reset()}get currentItem(){return this._navigationEmitter.model.currentItem}get items(){return this._navigationEmitter.model.items}set wrap(t){this._navigationEmitter.model.options.wrap=t}destroy(){super.destroy(),this._navigationEmitter.destroy()}}const wt={activeDescendantClassName:"listbox__option--active",autoInit:"ariaSelectedOrInteractive",autoReset:"ariaSelectedOrInteractive",autoSelect:!0,customElementMode:!1,focusableElement:null,listboxOwnerElement:null,multiSelect:!1,useAriaChecked:!0,valueSelector:".listbox__value"};class kt{constructor(t,e){this._options=Object.assign({},wt,e),this.el=t,this._activeDescendantRootEl=this._options.listboxOwnerElement||this.el,"listbox"===t.getAttribute("role")?this._listboxEl=t:this._listboxEl=this.el.querySelector("[role=listbox]"),this._options.focusableElement||null!==this._listboxEl.getAttribute("tabindex")||this._listboxEl.setAttribute("tabindex","0"),ft(this.el),this._onKeyDownListener=Ct.bind(this),this._onClickListener=St.bind(this),this._onActiveDescendantChangeListener=Mt.bind(this),this._onMutationListener=At.bind(this),this.el.classList.add("listbox--js"),this._options.customElementMode||(this._mutationObserver=new MutationObserver(this._onMutationListener),this._observeMutations(),this._observeEvents()),this._activeDescendant=function(t,e,n,i,s){return new yt(t,e,n,"[role=option]",s)}(this._activeDescendantRootEl,this._options.focusableElement||this._listboxEl,this._listboxEl,0,{activeDescendantClassName:this._options.activeDescendantClassName,autoInit:this._options.autoInit,autoReset:this._options.autoReset,axis:"y"})}_observeMutations(){this._options.customElementMode||this._mutationObserver.observe(this._listboxEl,{attributeFilter:["aria-selected"],attributes:!0,childList:!0,subtree:!0})}_unobserveMutations(){this._options.customElementMode||this._mutationObserver.disconnect()}_observeEvents(){!0!==this._destroyed&&(this._activeDescendantRootEl.addEventListener("activeDescendantChange",this._onActiveDescendantChangeListener),this._listboxEl.addEventListener("keydown",this._onKeyDownListener),this._listboxEl.addEventListener("click",this._onClickListener))}_unobserveEvents(){this._listboxEl.removeEventListener("keydown",this._onKeyDownListener),this._listboxEl.removeEventListener("click",this._onClickListener),this._activeDescendantRootEl.removeEventListener("activeDescendantChange",this._onActiveDescendantChangeListener)}get index(){return this.items.findIndex((t=>"true"===t.getAttribute("aria-selected")))}get items(){return this._activeDescendant.items}select(t){this._unobserveMutations();const e=this.items[t];if(e&&"true"!==e.getAttribute("aria-disabled")){const e=this.items[t];let n;if(e.setAttribute("aria-selected","true"),!0===this._options.useAriaChecked&&e.setAttribute("aria-checked","true"),n=e.innerText,this._options.valueSelector){const t=e.querySelector(this._options.valueSelector);t&&(n=t.innerText)}this.el.dispatchEvent(new CustomEvent("makeup-listbox-change",{detail:{el:e,optionIndex:t,optionValue:n}}))}this._observeMutations()}unselect(t){this._unobserveMutations();const e=this.items[t];if(e&&"true"!==e.getAttribute("aria-disabled")){const e=this.items[t];e.setAttribute("aria-selected","false"),!0===this._options.useAriaChecked&&e.setAttribute("aria-checked","false")}this._observeMutations()}destroy(){this._destroyed=!0,this._unobserveMutations(),this._unobserveEvents(),this._onKeyDownListener=null,this._onClickListener=null,this._onActiveDescendantChangeListener=null,this._onMutationListener=null}}function Ct(t){const e=this._activeDescendant.currentItem;var n;13!==(n=t.keyCode)&&32!==n||"true"===e?.getAttribute("aria-selected")||(this.unselect(this.index),this.select(this._activeDescendant.index))}function St(t){const e=t.target.closest("[role=option]"),n=this.items.indexOf(e),i="true"===e.getAttribute("aria-selected");"true"===e.getAttribute("aria-disabled")||!1!==this._options.autoSelect||!1!==i||(this.unselect(this.index),this.select(n))}function Mt(t){const{fromIndex:e,toIndex:n}=t.detail;if(!0===this._options.autoSelect){const t=this.items[e],i=this.items[n];t&&this.unselect(e),i&&this.select(n)}}function At(t){for(const e of t)"attributes"===e.type&&this.el.dispatchEvent(new CustomEvent("makeup-listbox-mutation",{detail:{attributeName:e.attributeName}}))}const Ot={autoSelect:!0,collapseTimeout:150,customElementMode:!1};class It{constructor(t,e){this._options=Object.assign({},Ot,e),this._el=t,this._inputEl=this._el.querySelector("input"),this._listboxEl=this._el.querySelector(".combobox__listbox"),this._autocompleteType=this._inputEl.getAttribute("aria-autocomplete"),this._inputEl.setAttribute("autocomplete","off"),this._inputEl.setAttribute("role","combobox"),this._listboxEl.hidden=!1,this._listboxWidget=new kt(this._listboxEl,{activeDescendantClassName:"combobox__option--active",autoReset:-1,autoSelect:this._options.autoSelect,focusableElement:this._inputEl,listboxOwnerElement:this._el}),this._expander=new it(this._el,{collapseOnClickOut:!0,collapseOnFocusOut:!0,contentSelector:".combobox__listbox",expandedClass:"combobox--expanded",expandOnFocus:!0,hostSelector:"input"}),this._destroyed=!1,this._onInputFocusListener=Tt.bind(this),this._onListboxClickListener=Ft.bind(this),this._onListboxActiveDescendantChangeListener=Rt.bind(this),this._onTextboxKeyDownListener=Dt.bind(this),this._onTextboxInputListener=qt.bind(this),this._onTextboxClickListener=Bt.bind(this),this._onMutationListener=Nt.bind(this),this._el.classList.add("combobox--js"),this._options.customElementMode||(this._mutationObserver=new MutationObserver(this._onMutationListener),this._observeMutations(),this._observeEvents())}resetFilter(){this._listboxWidget._activeDescendant.reset(),this._listboxWidget.items.forEach((t=>t.hidden=!1))}_observeMutations(){this._options.customElementMode||this._mutationObserver.observe(this._inputEl,{attributes:!0,childList:!0,subtree:!0})}_unobserveMutations(){this._options.customElementMode||this._mutationObserver.disconnect()}_observeEvents(){!0!==this._destroyed&&(this._listboxEl.addEventListener("click",this._onListboxClickListener),this._listboxWidget._activeDescendantRootEl.addEventListener("activeDescendantChange",this._onListboxActiveDescendantChangeListener),this._inputEl.addEventListener("focus",this._onInputFocusListener),this._inputEl.addEventListener("keydown",this._onTextboxKeyDownListener),this._inputEl.addEventListener("input",this._onTextboxInputListener),this._inputEl.addEventListener("click",this._onTextboxClickListener))}_unobserveEvents(){this._listboxEl.removeEventListener("click",this._onListboxClickListener),this._listboxWidget._activeDescendantRootEl.removeEventListener("activeDescendantChange",this._onListboxActiveDescendantChangeListener),this._inputEl.removeEventListener("focus",this._onInputFocusListener),this._inputEl.removeEventListener("keydown",this._onTextboxKeyDownListener),this._inputEl.removeEventListener("input",this._onTextboxInputListener),this._inputEl.removeEventListener("click",this._onTextboxClickListener)}destroy(){this._destroyed=!0,this._unobserveMutations(),this._unobserveEvents(),this._onInputFocusListener=null,this._onListboxClickListener=null,this._onListboxActiveDesendanctChangeListener=null,this._onTextboxKeyDownListener=null,this._onTextboxInputListener=null,this._onTextboxClickListener=null,this._onMutationListener=null}}function Tt(){this.resetFilter()}function Dt(t){if(38!==t.keyCode&&40!==t.keyCode||t.preventDefault(),40===t.keyCode&&!1===this._expander.expanded&&(this._expander.expanded=!0),27===t.keyCode&&!0===this._expander.expanded&&(this._expander.expanded=!1,this._listboxWidget._activeDescendant.reset()),!1===this._options.autoSelect&&13===t.keyCode&&this._inputEl.getAttribute("aria-activedescendant")){t.preventDefault();const e=this;this._inputEl.value=this._listboxWidget.items[this._listboxWidget._activeDescendant.index].innerText,Kt(this._el,this._inputEl.value),this._listboxWidget._activeDescendant.reset(),setTimeout((function(){e._expander.expanded=!1,"list"===e._autocompleteType&&(0===e._inputEl.value.length?e.resetFilter():jt(e._inputEl.value,e._listboxWidget.items))}),this._options.collapseTimeout)}}function Bt(){!1===this._expander.expanded&&(this._expander.expanded=!0)}function qt(){!1===this._expander.expanded&&(this._expander.expanded=!0),"list"===this._autocompleteType&&(this._listboxWidget._activeDescendant.reset(),0===this._inputEl.value.length?this.resetFilter():jt(this._inputEl.value,this._listboxWidget.items))}function Ft(t){const e=this,n=t.target.closest("[role=option]"),i=this._listboxWidget.items.indexOf(n);console.log(i),void 0!==i&&(this._inputEl.value=this._listboxWidget.items[i].innerText,!1===this._options.autoSelect&&Kt(this._el,this._inputEl.value),setTimeout((function(){e._expander.expanded=!1}),this._options.collapseTimeout))}function Rt(t){!0===this._options.autoSelect&&(this._inputEl.value=this._listboxWidget.items[t.detail.toIndex].innerText,Kt(this._el,this._inputEl.value))}function Nt(t){for(const e of t)"attributes"===e.type&&this._el.dispatchEvent(new CustomEvent("makeup-combobox-mutation",{detail:{attributeName:e.attributeName}}))}function jt(t,e){const n=t.length,i=t.toLowerCase(),s=e.filter((t=>t.innerText.trim().substring(0,n).toLowerCase()===i)),o=e.filter((t=>t.innerText.trim().substring(0,n).toLowerCase()!==i));s.forEach((t=>t.hidden=!1)),o.forEach((t=>t.hidden=!0))}function Kt(t,e){t.dispatchEvent(new CustomEvent("makeup-combobox-change",{detail:{value:e}}))}const Pt={customElementMode:!1};class Ht{constructor(t,e,n){this._options=Object.assign({},Pt,n),this._el=t,this._el.setAttribute("aria-haspopup","dialog"),this._dialog=e,this._onClickListener=$t.bind(this),this._onDialogCloseListener=zt.bind(this),this._onMutationListener=Wt.bind(this),this._el.classList.add("dialog-button--js"),this._options.customElementMode||(this._mutationObserver=new MutationObserver(this._onMutationListener),this._observeMutations(),this._observeEvents())}_observeMutations(){this._options.customElementMode||this._mutationObserver.observe(this._el,{attributes:!0,childList:!1,subtree:!1})}_unobserveMutations(){this._options.customElementMode||this._mutationObserver.disconnect()}_observeEvents(){!0!==this._destroyed&&(this._el.addEventListener("click",this._onClickListener),this._dialog._el.addEventListener("dialog-close",this._onDialogCloseListener))}_unobserveEvents(){this._el.removeEventListener("click"),this._dialog._el.removeEventListener("dialog-close",this._onDialogCloseListener)}destroy(){this._destroyed=!0,this._unobserveMutations(),this._unobserveEvents(),this._onClickListener=null,this._onDialogCloseListener=null,this._onMutationListener=null}}function Wt(t){for(const e of t)"attributes"===e.type&&this._el.dispatchEvent(new CustomEvent("makeup-dialog-button-mutation",{detail:{attributeName:e.attributeName}}))}function $t(){this._dialog.open()}function zt(){!0===this._dialog.modal&&this._el.focus()}const Vt={autoSelect:!0,buttonLabelSelector:".btn__text",collapseTimeout:150,customElementMode:!1,listboxSelector:".listbox-button__listbox",floatingLabelSelector:".btn__floating-label",floatingLabelInline:"btn__floating-label--inline",floatingLabelAnimate:"btn__floating-label--animate",valueSelector:".listbox-button__value",buttonValueType:"text",listboxOptionIconSelector:".icon",listboxOptionAriaLabelSelector:null};class Gt{constructor(t,e){this._options=Object.assign({},Vt,e),this.el=t,this._buttonEl=this.el.querySelector("button"),this._buttonLabelEl=t.querySelector(this._options.buttonLabelSelector),this._buttonFloatingLabelEl=t.querySelector(this._options.floatingLabelSelector),this._buttonPrefix=this._buttonEl.dataset?.listboxButtonPrefix,this._listboxEl=this.el.querySelector(this._options.listboxSelector),this._onButtonFirstClickListener=Ut.bind(this),this._onListboxClickListener=Yt.bind(this),this._onListboxKeyDownListener=Xt.bind(this),this._onListboxInitListener=Jt.bind(this),this._onListboxChangeListener=Qt.bind(this),this._onMutationListener=Zt.bind(this),this._options.customElementMode||(this._mutationObserver=new MutationObserver(this._onMutationListener),this._observeMutations(),this._observeEvents()),this.listbox=new kt(this._listboxEl,{activeDescendantClassName:"listbox-button__option--active",autoReset:"ariaSelectedOrInteractive",autoSelect:this._options.autoSelect,valueSelector:this._options.valueSelector}),this._expander=new it(this.el,{alwaysDoFocusManagement:!0,collapseOnClick:!0,collapseOnClickOut:!0,collapseOnFocusOut:!0,contentSelector:this._options.listboxSelector,expandedClass:"listbox-button--expanded",expandOnClick:!0,focusManagement:"focusable",hostSelector:"button"}),this.el.classList.add("listbox-button--js"),this._buttonFloatingLabelEl&&(this._buttonLabelEl.innerText||this._buttonFloatingLabelEl.classList.add(this._options.floatingLabelInline))}_observeMutations(){this._options.customElementMode||this._mutationObserver.observe(this._buttonEl,{attributeFilter:["aria-expanded"],attributes:!0,childList:!1,subtree:!1})}_unobserveMutations(){this._options.customElementMode||this._mutationObserver.disconnect()}_unobserveEvents(){this._buttonEl.removeEventListener("click",this._onButtonFirstClickListener),this._listboxEl.removeEventListener("click",this._onListboxClickListener),this._listboxEl.removeEventListener("keydown",this._onListboxKeyDownListener),this._listboxEl.removeEventListener("makeup-listbox-init",this._onListboxInitListener),this._listboxEl.removeEventListener("makeup-listbox-change",this._onListboxChangeListener)}_observeEvents(){!0!==this._destroyed&&(this._buttonEl.addEventListener("click",this._onButtonFirstClickListener,{once:!0}),this._listboxEl.addEventListener("click",this._onListboxClickListener),this._listboxEl.addEventListener("keydown",this._onListboxKeyDownListener),this._listboxEl.addEventListener("makeup-listbox-init",this._onListboxInitListener),this._listboxEl.addEventListener("makeup-listbox-change",this._onListboxChangeListener))}collapse(){const t=this;setTimeout((function(){t._unobserveMutations(),t._expander.expanded=!1,t._observeMutations(),t._buttonEl.focus()}),this._options.collapseTimeout)}destroy(){this._destroyed=!0,this._unobserveEvents(),this._unobserveMutations(),this._onButtonFirstClickListener=null,this._onListboxClickListener=null,this._onListboxKeyDownListener=null,this._onListboxInitListener=null,this._onListboxChangeListener=null,this._onMutationListener=null}}function Ut(){this.listbox.el.hidden=!1}function Xt(t){13!==t.keyCode&&27!==t.keyCode&&32!==t.keyCode||this.collapse()}function Yt(){this.collapse()}function Jt(t){this.el.dispatchEvent(new CustomEvent("makeup-listbox-button-init",{detail:t.detail}))}function Qt(t){const e=t.detail.optionValue,{listboxOptionIconSelector:n,listboxOptionAriaLabelSelector:i,buttonValueType:s,floatingLabelAnimate:o,floatingLabelInline:r}=this._options,l=t.detail.el.querySelector(n).cloneNode(!0);let a=this._buttonPrefix?`${this._buttonPrefix}${e}`:e;if(l)switch(s){case"both":a=`${l.outerHTML} ${a}`;break;case"icon":this._buttonEl.setAttribute("aria-label",a),a=l.outerHTML}if(i){const e=t.detail.el.querySelector(i)?.innerText.trim();this._buttonEl.setAttribute("aria-label",this._buttonPrefix?`${this._buttonPrefix} ${e}`:e)}this._buttonLabelEl.innerHTML=a,this._buttonFloatingLabelEl&&(e?(this._buttonFloatingLabelEl.classList.add(o),this._buttonFloatingLabelEl.classList.remove(r)):this._buttonFloatingLabelEl.classList.add(r)),this.el.dispatchEvent(new CustomEvent("makeup-listbox-button-change",{detail:t.detail}))}function Zt(t){for(const e of t)"attributes"===e.type&&this.el.dispatchEvent(new CustomEvent("makeup-listbox-button-mutation",{detail:{attributeName:e.attributeName}}))}const te={customElementMode:!1,autoInit:"interactive",autoReset:"interactive"};class ee{constructor(t,e){this._options=Object.assign({},te,e),this.el=t,this._rovingTabIndex=P(this.el,"[role^=menuitem]",{autoInit:this._options.autoInit,autoReset:this._options.autoReset}),ft(this.el),this._onKeyDownListener=ie.bind(this),this._onClickListener=se.bind(this),this._onMutationListener=ne.bind(this),this.el.classList.add("menu--js"),this._options.customElementMode||(this._mutationObserver=new MutationObserver(this._onMutationListener),this._observeMutations(),this._observeEvents())}select(t){this._unobserveMutations();const e=this.items[t];switch(e.getAttribute("role")){case"menuitemcheckbox":!function(t,e){if("true"!==e.getAttribute("aria-disabled")){const n=e.dataset.makeupGroup;e.setAttribute("aria-checked","true"===e.getAttribute("aria-checked")?"false":"true"),t.dispatchEvent(new CustomEvent("makeup-menu-change",{detail:{el:e,checked:e.getAttribute("aria-checked"),group:n,value:e.innerText}}))}}(this.el,e);break;case"menuitemradio":!function(t,e){if("true"!==e.getAttribute("aria-disabled")){const n=e.dataset.makeupGroup,i=t.querySelector(`[data-makeup-group=${n}][aria-checked=true]`);i&&i.setAttribute("aria-checked","false"),i!==e&&(e.setAttribute("aria-checked","true"),t.dispatchEvent(new CustomEvent("makeup-menu-change",{detail:{el:e,group:n,value:e.innerText}})))}}(this.el,e);break;default:n=e,this.el.dispatchEvent(new CustomEvent("makeup-menu-select",{detail:{el:n,value:n.innerText}}))}var n;this._observeMutations()}get items(){return this._rovingTabIndex.items}get radioGroupNames(){const t=[...this.el.querySelectorAll("[role=menuitemradio][data-makeup-group]")];return[...new Set(t.map((t=>t.dataset.makeupGroup)))]}get checkboxGroupNames(){const t=[...this.el.querySelectorAll("[role=menuitemcheckbox][data-makeup-group]")];return[...new Set(t.map((t=>t.dataset.makeupGroup)))]}_observeMutations(){this._options.customElementMode||this._mutationObserver.observe(this.el,{attributeFilter:["aria-checked","aria-disabled"],attributes:!0,childList:!0,subtree:!0})}_unobserveMutations(){this._options.customElementMode||this._mutationObserver.disconnect()}_observeEvents(){!0!==this._destroyed&&(this.el.addEventListener("keydown",this._onKeyDownListener),this.el.addEventListener("click",this._onClickListener))}_unobserveEvents(){this.el.removeEventListener("keydown",this._onKeyDownListener),this.el.removeEventListener("click",this._onClickListener)}destroy(){this._destroyed=!0,this._unobserveMutations(),this._unobserveEvents(),this._onKeyDownListener=null,this._onClickListener=null,this._onMutationListener=null}}function ne(t){for(const e of t)"attributes"===e.type&&this.el.dispatchEvent(new CustomEvent("makeup-menu-mutation",{detail:{attributeName:e.attributeName}}))}function ie(t){this._unobserveMutations(),13===t.keyCode&&t.preventDefault(),13!==t.keyCode&&32!==t.keyCode||this.select(Array.from(this.items).indexOf(t.target)),this._observeMutations()}function se(t){const e=t.target.closest("[role^=menuitem]"),n=this.items.indexOf(e);-1!==n&&this.select(n)}const oe={customElementMode:!1,expandedClass:"menu-button--expanded",menuSelector:".menu-button__menu",buttonTextSelector:".btn__text",buttonValueType:"text",menuItemIconSelector:".icon",menuItemButtonAriaLabelSelector:null};class re{constructor(t,e){this._options=Object.assign({},oe,e),this.el=t,this._buttonEl=t.querySelector("button"),this._buttonEl.setAttribute("aria-haspopup","true"),this.menu=new ee(t.querySelector(this._options.menuSelector),{autoReset:"interactive"}),this._buttonPrefix=this._buttonEl.dataset?.makeupMenuButtonPrefix,this._buttonTextEl=this._buttonEl.querySelector(this._options.buttonTextSelector),this._expander=new it(t,{alwaysDoFocusManagement:!0,collapseOnClick:!0,collapseOnClickOut:!0,collapseOnFocusOut:!0,contentSelector:this._options.menuSelector,expandedClass:this._options.expandedClass,expandOnClick:!0,focusManagement:"focusable",hostSelector:"button"}),this._onButtonFirstClickListener=ae.bind(this),this._onMenuKeyDownListener=ce.bind(this),this._onMenuItemSelectListener=ue.bind(this),this._onMutationListener=le.bind(this),this.el.classList.add("menu-button--js"),this._options.customElementMode||(this._mutationObserver=new MutationObserver(this._onMutationListener),this._observeMutations(),this._observeEvents())}_observeMutations(){this._options.customElementMode||this._mutationObserver.observe(this.el,{attributeFilter:["aria-expanded","disabled"],attributes:!0,childList:!1,subtree:!1})}_unobserveMutations(){this._options.customElementMode||this._mutationObserver.disconnect()}_observeEvents(){!0!==this._destroyed&&(this._buttonEl.addEventListener("click",this._onButtonFirstClickListener,{once:!0}),this.menu.el.addEventListener("keydown",this._onMenuKeyDownListener),this.menu.el.addEventListener("makeup-menu-select",this._onMenuItemSelectListener),this.menu.el.addEventListener("makeup-menu-change",this._onMenuItemSelectListener))}_unobserveEvents(){this._buttonEl.removeEventListener("click",this._onButtonFirstClickListener),this.menu.el.removeEventListener("keydown",this._onMenuKeyDownListener),this.menu.el.removeEventListener("makeup-menu-select",this._onMenuItemSelectListener),this.menu.el.removeEventListener("makeup-menu-change",this._onMenuItemSelectListener)}destroy(){this._destroyed=!0,this._unobserveMutations(),this._unobserveEvents(),this._onButtonFirstClickListener=null,this._onMenuKeyDownListener=null,this._onMenuItemSelectListener=null,this._onMutationListener=null}}function le(t){for(const e of t)"attributes"===e.type&&this.el.dispatchEvent(new CustomEvent("makeup-menu-button-mutation",{detail:{attributeName:e.attributeName}}))}function ae(){this.menu.el.hidden=!1}function ce(t){27===t.keyCode&&(this._expander.expanded=!1,this._buttonEl.focus())}function ue(t){const e=this,{el:n}=t.detail;if(setTimeout((function(){e._expander.expanded=!1,e._buttonEl.focus()}),150),"menuitemradio"!==n.getAttribute("role"))return;const{menuItemIconSelector:i,menuItemButtonAriaLabelSelector:s,buttonValueType:o}=this._options,r=n.querySelector(i).cloneNode(!0),l=n.innerText.trim();let a=this._buttonPrefix?`${this._buttonPrefix} ${l}`:l;if(r)switch(o){case"both":a=`${r.outerHTML} ${a}`;break;case"icon":this._buttonEl.setAttribute("aria-label",a),a=r.outerHTML}if(s){const t=n.querySelector(s)?.innerText.trim();this._buttonEl.setAttribute("aria-label",this._buttonPrefix?`${this._buttonPrefix} ${t}`:t)}this._buttonTextEl.innerHTML=a}const he={bem:{control:"switch__control"},customElementMode:!1};class de{constructor(t,e){this._options=Object.assign({},he,e),this.el=t,this._onClickListener=be.bind(this),this._onKeyDownListener=me.bind(this),this._onMutationListener=_e.bind(this),this.disabled&&this._focusableElement.setAttribute("tabindex","-1"),this.el.classList.add("switch--js"),this._options.customElementMode||(this._mutationObserver=new MutationObserver(this._onMutationListener),this._observeMutations(),this._observeEvents())}_observeMutations(){this._options.customElementMode||this._mutationObserver.observe(this._focusableElement,{attributes:!0,childList:!1,subtree:!1})}_unobserveMutations(){this._options.customElementMode||this._mutationObserver.disconnect()}_observeEvents(){this._focusableElement.addEventListener("click",this._onClickListener),this._focusableElement.addEventListener("keydown",this._onKeyDownListener)}_unobserveEvents(){this._focusableElement.removeEventListener("click",this._onClickListener),this._focusableElement.removeEventListener("keydown",this._onKeyDownListener)}get _focusableElement(){return this.el.querySelector(`.${this._options.bem.control}`)}set checked(t){this._unobserveMutations(),this._focusableElement.setAttribute("aria-checked",t.toString()),this.el.dispatchEvent(new CustomEvent("makeup-switch-toggle",{composed:!0,detail:{on:this.checked}})),this._observeMutations()}get checked(){return"true"===this._focusableElement.getAttribute("aria-checked")}set disabled(t){this._unobserveMutations(),this._focusableElement.setAttribute("aria-disabled",t.toString()),this._focusableElement.setAttribute("tabindex",t?"-1":"0"),this._observeMutations()}get disabled(){return"true"===this._focusableElement.getAttribute("aria-disabled")}set labelledby(t){if(this._unobserveMutations(),this._focusableElement.setAttribute("aria-labelledby",t),this._options.customElementMode){const t=document.getElementById(this.labelledby);t&&""!==t.innerText&&(this.label=t.innerText)}this._observeMutations()}get labelledby(){return this._focusableElement.getAttribute("aria-labelledby")}get label(){return this._focusableElement.getAttribute("aria-label")}set label(t){this._unobserveMutations(),this._focusableElement.setAttribute("aria-label",t),this._observeMutations()}toggle(){this.checked=!this.checked}destroy(){this._unobserveMutations(),this._unobserveEvents(),this._onClickListener=null,this._onKeyDownListener=null,this._onMutationListener=null}}function me(t){if(!this.disabled)switch(t.keyCode){case 32:t.preventDefault(),this.toggle();break;case 37:this.checked=!1;break;case 39:this.checked=!0}}function be(){this.disabled||this.toggle()}function _e(t){for(const e of t)"attributes"===e.type&&this.el.dispatchEvent(new CustomEvent("makeup-switch-mutation",{detail:{attributeName:e.attributeName}}))}let fe,pe,ve,Ee,ge,Le,xe,ye,we;function ke(){ye.focus()}function Ce(){we.focus()}function Se(){return fe&&(pe=Me(pe),ve=Me(ve),Ee=Me(Ee),ge=Me(ge),Le=Me(Le),xe=Me(xe),fe.classList.remove("keyboard-trap--active"),fe.dispatchEvent(new CustomEvent("keyboardUntrap",{bubbles:!0})),fe=null),fe}function Me(t){const e=t.parentNode;return e?e.removeChild(t):t}const Ae=t=>1===t.nodeType&&"body"!==t.tagName.toLowerCase()&&"html"!==t.tagName.toLowerCase(),Oe=t=>1===t.nodeType&&"script"!==t.tagName.toLowerCase(),Ie=(t,e)=>t.concat(e);function Te(t,e=[]){const n=t.previousSibling;return n?(e.push(n),Te(n,e)):e}function De(t,e=[]){const n=t.nextSibling;return n?(e.push(n),De(n,e)):e}function Be(t){return Te(t).concat(De(t)).filter(Oe)}function qe(t,e=[]){const n=t.parentNode;return n?(e.push(n),qe(n,e)):e}function Fe(t){return qe(t).filter(Ae)}let Re,Ne,je;const Ke=t=>"svg"!==t.tagName.toLowerCase();function Pe(t,e){let n;return n=!1===e?We(t,"aria-hidden","false"):We(t,"hidden",!1),n}function He(t,e){let n;return n=!1===e?We(t,"aria-hidden","true"):We(t,"hidden",!0),n}function We(t,e,n){const i="boolean"==typeof n;return{el:t,attributeName:e,cleanValue:i?t[e]:t.getAttribute(e),dirtyValue:n,isProperty:i}}function $e(){Ne&&(je.forEach((t=>{var e;(e=t).cleanValue?!0===e.isProperty?e.el[e.attributeName]=e.cleanValue:e.el.setAttribute(e.attributeName,e.cleanValue):e.el.removeAttribute(e.attributeName)})),je=[],Re&&Re.setAttribute("role","main"),Ne.dispatchEvent(new CustomEvent("screenreaderUntrap",{bubbles:!0})),Ne=null)}const ze={useHiddenProperty:!1};const Ve={hoist:!1,useHiddenProperty:!1,wrap:!1},Ge={SCRIPT:"script",LINK:"link"};let Ue,Xe,Ye,Je=[];function Qe(t){return"body"===t.parentNode.tagName.toLowerCase()}function Ze(){return Ue&&(Se(),$e(),Ye&&([...Ye.children].forEach((t=>{if(t.tagName.toLowerCase()!==Ge.SCRIPT&&t.tagName!==Ge.LINK){const e=Je.shift();e>document.body.children.length?document.body.appendChild(t):document.body.insertBefore(t,document.body.children[e+1])}})),Ye.remove(),Ye=null,Je=[]),Xe&&(Xe.replaceWith(Ue),Xe=null),document.body.removeAttribute("data-makeup-modal"),Ue.removeAttribute("data-makeup-modal"),Ue.dispatchEvent(new CustomEvent("makeup-unmodal",{bubbles:!1})),Ue=null),Ue}function tn(t,e){const n=Object.assign({},Ve,e);return Ze(),Ue=t,n.hoist&&(Xe||Qe(Ue)||(Xe=document.createElement("div"),Xe.setAttribute("data-makeup-modal","placeholder"),Ue.parentElement.insertBefore(Xe,Ue),document.body.appendChild(Ue))),n.wrap&&!Ye&&Qe(Ue)&&(Ye=document.createElement("div"),Ye.setAttribute("data-makeup-modal","inert"),[...document.body.children].forEach(((t,e)=>{t!==Ue&&t.tagName.toLowerCase()!==Ge.SCRIPT&&t.tagName!==Ge.LINK&&(Ye.appendChild(t),Je.push(e))})),document.body.prepend(Ye)),function(t,e){$e();const n=Object.assign({},ze,e);Ne=t,Re=document.querySelector('main, [role="main"]'),Re&&Re.setAttribute("role","presentation");const i=Fe(Ne);let s=Be(Ne),o=function(t){return Fe(t).map((t=>Be(t))).reduce(Ie,[])}(Ne);!0===n.useHiddenProperty&&(s=s.filter(Ke),o=o.filter(Ke)),je=[Pe(Ne,n.useHiddenProperty)].concat(i.map((t=>Pe(t,n.useHiddenProperty)))).concat(s.map((t=>He(t,n.useHiddenProperty)))).concat(o.map((t=>He(t,n.useHiddenProperty)))),je.forEach((t=>{var e;!0===(e=t).isProperty?e.el[e.attributeName]=e.dirtyValue:e.el.setAttribute(e.attributeName,e.dirtyValue)})),Ne.dispatchEvent(new CustomEvent("screenreaderTrap",{bubbles:!0}))}(Ue,e),n.useHiddenProperty||function(t){pe?Se():(pe=function(){const t=document.createElement("div");return t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex","0"),t.className="keyboard-trap-boundary",t}(),ve=pe.cloneNode(),Ee=pe.cloneNode(),ge=pe.cloneNode(),Le=pe.cloneNode(),xe=pe.cloneNode(),pe.addEventListener("focus",ke),ve.addEventListener("focus",ke),Ee.addEventListener("focus",Ce),ge.addEventListener("focus",ke),Le.addEventListener("focus",Ce),xe.addEventListener("focus",Ce)),fe=t;const e="undefined"==typeof document?null:document.body,n=W(fe,!0);ye=n[0],we=n[n.length-1],e.insertBefore(pe,e.childNodes[0]),fe.parentNode.insertBefore(ve,fe),fe.insertBefore(Ee,fe.childNodes[0]),fe.appendChild(ge),fe.parentNode.insertBefore(Le,fe.nextElementSibling),e.appendChild(xe),fe.dispatchEvent(new CustomEvent("keyboardTrap",{bubbles:!0})),fe.classList.add("keyboard-trap--active")}(Ue),document.body.setAttribute("data-makeup-modal","true"),Ue.setAttribute("data-makeup-modal","widget"),Ue.dispatchEvent(new CustomEvent("makeup-modal",{bubbles:!1})),Ue}const en="transitionend",nn=/0m?s(?:, )?/g;function sn(t,e,n){let i,s,o=0;const r=t.classList,l="".concat(e,"-init");let a=function(t){let e,n;return window.requestAnimationFrame?(e=requestAnimationFrame((function(){e=requestAnimationFrame(t)})),n=cancelAnimationFrame):(e=setTimeout(t,26),n=clearTimeout),function(){e&&(n(e),e=void 0)}}((function(){t.addEventListener(en,u,!0),r.add(e),r.remove(l),s=on(t),a=void 0,0===s&&c()}));return r.add(l),c;function c(){i||(i=!0,t.removeEventListener(en,u,!0),a?(a(),r.remove(l)):r.remove(e))}function u(){++o===s&&(i=!0,t.removeEventListener(en,u,!0),r.remove(e),n&&n())}}function on(t){let e=window.getComputedStyle(t).transitionDuration.replace(nn,"")?1:0,n=t.firstElementChild;for(;n;)e+=on(n),n=n.nextElementSibling;return e}const rn={baseClass:"dialog",closeButtonSelector:".dialog__close",focusManagementIndex:0,modal:!1,quickDismiss:!0,transitionsModifier:"mask-fade"};class ln{constructor(t,e){this._options=Object.assign({},rn,e),this._el=t,!0===this._options.modal&&this._el.setAttribute("aria-modal","true"),this._windowEl=this._el.querySelector(this._options.windowSelector),this._closeButtonEl=this._el.querySelector(this._options.closeButtonSelector),this._hasTransitions=this._el.classList.contains(`${this._options.baseClass}--${this._options.transitionsModifier}`),this._onCloseButtonClickListener=dn.bind(this),this._onKeyDownListener=hn.bind(this),this._onOpenTransitionEndCallback=cn.bind(this),this._onCloseTransitionEndCallback=un.bind(this),this._el.classList.add(`${this._options.baseClass}--js`),this.hidden||(this.modal&&an(this),this._observeEvents())}get focusables(){return W(this._windowEl)}get modal(){return"true"===this._el.getAttribute("aria-modal")}get hidden(){return this._el.hidden}open(){this._show(),this._el.dispatchEvent(new CustomEvent("dialog-open"))}close(){this._hide(),this._el.dispatchEvent(new CustomEvent("dialog-close"))}_show(){this._hasTransitions?(this._cancelTransition&&this._cancelTransition(),this._cancelTransition=sn(this._el,`${this._options.baseClass}--show`,this._onOpenTransitionEndCallback)):(this.modal&&setTimeout((()=>an(this)),50),this._el.hidden=!1),this._observeEvents()}_hide(){this._hasTransitions?(this._cancelTransition&&this._cancelTransition(),this._cancelTransition=sn(this._el,`${this._options.baseClass}--hide`,this._onCloseTransitionEndCallback)):(this.modal&&Ze(),this._el.hidden=!0),this._autoDismissTimeout=null,this._unobserveEvents()}_observeEvents(){document.addEventListener("keydown",this._onKeyDownListener),this._closeButtonEl&&this._closeButtonEl.addEventListener("click",this._onCloseButtonClickListener)}_unobserveEvents(){this._el.removeEventListener("click",this._onCloseButtonClickListener),document.removeEventListener("keydown",this._onKeyDownListener),this._closeButtonEl&&this._closeButtonEl.addEventListener("click",this._onCloseButtonClickListener)}destroy(){this._destroyed=!0,this._unobserveEvents(),this._onCloseButtonClickListener=null,this._onKeyDownListener=null,this._onOpenTransitionEndCallback=null,this._onCloseTransitionEndCallback=null,this._autoDismissTimeout=null}}function an(t){const e=t._el.querySelector("[autofocus]");e?e.focus():t.focusables[t._options.focusManagementIndex].focus(),tn(t._el)}function cn(){this._el.hidden=!1,this._cancelTransition=void 0,this.modal&&an(this)}function un(){this.modal&&Ze(),this._el.hidden=!0,this._cancelTransition=void 0}function hn(t){!0===this._options.quickDismiss&&27===t.keyCode&&this.close()}function dn(){this.close()}const mn={baseClass:"lightbox-dialog",baseClassModifier:"",quickDismiss:!0,closeButtonSelector:".lightbox-dialog__close",windowSelector:".lightbox-dialog__window"};class bn extends ln{constructor(t,e={}){super(t,Object.assign({},mn,e,{modal:!0}))}_observeEvents(){super._observeEvents(),this._onClickListener=_n.bind(this),this._el.addEventListener("click",this._onClickListener)}_unobserveEvents(){super._unobserveEvents(),this._el.removeEventListener("click",this._onClickListener)}destroy(){super.destroy(),this._onClickListener=null}}function _n(t){!0===this._options.quickDismiss&&t.target===this._el&&this.close()}const fn={baseClass:"alert-dialog",baseClassModifier:"alert",quickDismiss:!1,acknowledgeButtonSelector:".alert-dialog__acknowledge",windowSelector:".alert-dialog__window"};class pn extends bn{constructor(t,e={}){super(t,Object.assign({},fn,e))}_observeEvents(){super._observeEvents(),this._acknowledgeButtonEl=this._el.querySelector(this._options.acknowledgeButtonSelector),this._onAcknowledgeButtonClickListener=vn.bind(this),this._acknowledgeButtonEl.addEventListener("click",this._onAcknowledgeButtonClickListener)}_unobserveEvents(){super._unobserveEvents(),this._acknowledgeButtonEl.removeEventListener("click",this._onAcknowledgeButtonClickListener)}acknowledge(){this._hide(),this._el.dispatchEvent(new CustomEvent("dialog-acknowledge"))}destroy(){super.destroy(),this._onAcknowledgeButtonClickListener=null}}function vn(){this.acknowledge()}const En={baseClass:"confirm-dialog",closeButtonSelector:".confirm-dialog__close",quickDismiss:!0,confirmButtonSelector:".confirm-dialog__confirm",focusManagementIndex:1,rejectButtonSelector:".confirm-dialog__reject",windowSelector:".confirm-dialog__window"};class gn extends bn{constructor(t,e={}){super(t,Object.assign({},En,e))}_observeEvents(){super._observeEvents(),this._confirmButtonEl=this._el.querySelector(this._options.confirmButtonSelector),this._rejectButtonEl=this._el.querySelector(this._options.rejectButtonSelector),this._onConfirmButtonClickListener=Ln.bind(this),this._onRejectButtonClickListener=xn.bind(this),this._confirmButtonEl.addEventListener("click",this._onConfirmButtonClickListener),this._rejectButtonEl.addEventListener("click",this._onRejectButtonClickListener)}_unobserveEvents(){super._unobserveEvents(),this._confirmButtonEl.removeEventListener("click",this._onConfirmButtonClickListener),this._rejectButtonEl.removeEventListener("click",this._onRejectButtonClickListener)}confirm(){this._hide(),this._el.dispatchEvent(new CustomEvent("dialog-confirm"))}reject(){this._hide(),this._el.dispatchEvent(new CustomEvent("dialog-reject"))}destroy(){super.destroy(),this._onConfirmButtonClickListener=null,this._onRejectButtonClickListener=null}}function Ln(){this.confirm()}function xn(){this.reject()}const yn={baseClass:"drawer-dialog",quickDismiss:!0,closeButtonSelector:".drawer-dialog__close",focusManagementIndex:1,resizeButtonSelector:".drawer-dialog__handle",windowSelector:".drawer-dialog__window"};class wn extends bn{constructor(t,e={}){super(t,Object.assign({},yn,e))}_observeEvents(){super._observeEvents(),this._resizeButtonEl=this._el.querySelector(this._options.resizeButtonSelector),this._onResizeButtonClickListener=kn.bind(this),this._resizeButtonEl.addEventListener("click",this._onResizeButtonClickListener)}_unobserveEvents(){super._unobserveEvents(),this._resizeButtonEl.removeEventListener("click",this._onResizeButtonClickListener)}resize(){this._el.querySelector(".drawer-dialog__window").classList.toggle("drawer-dialog__window--expanded"),this._el.dispatchEvent(new CustomEvent("dialog-resize"))}destroy(){super.destroy(),this._onResizeButtonClickListener=null}}function kn(){this.resize()}const Cn={baseClass:"fullscreen-dialog",quickDismiss:!1,closeButtonSelector:".fullscreen-dialog__close",transitionsModifier:"transition",windowSelector:".fullscreen-dialog__window"};class Sn extends ln{constructor(t,e={}){super(t,Object.assign({},Cn,e,{modal:!0}))}}const Mn={baseClass:"lightbox-dialog",baseClassModifier:"input",submitButtonSelector:".lightbox-dialog__submit",cancelButtonSelector:".lightbox-dialog__cancel",windowSelector:".lightbox-dialog__window"};class An extends bn{constructor(t,e={}){super(t,Object.assign({},Mn,e))}_observeEvents(){super._observeEvents(),this._submitButtonEl=this._el.querySelector(this._options.submitButtonSelector),this._cancelButtonEl=this._el.querySelector(this._options.cancelButtonSelector),this._onSubmitButtonClickListener=On.bind(this),this._onCancelButtonClickListener=In.bind(this),this._submitButtonEl.addEventListener("click",this._onSubmitButtonClickListener),this._cancelButtonEl.addEventListener("click",this._onCancelButtonClickListener)}_unobserveEvents(){super._unobserveEvents(),this._submitButtonEl.removeEventListener("click",this._onSubmitButtonClickListener),this._cancelButtonEl.removeEventListener("click",this._onCancelButtonClickListener)}submit(){this._hide(),this._el.dispatchEvent(new CustomEvent("dialog-submit"))}cancel(){this._hide(),this._el.dispatchEvent(new CustomEvent("dialog-cancel"))}destroy(){super.destroy(),this._onSubmitButtonClickListener=null,this._onCancelButtonClickListener=null}}function On(){this.submit()}function In(){this.cancel()}const Tn={baseClass:"panel-dialog",quickDismiss:!0,closeButtonSelector:".panel-dialog__close",doneButtonSelector:".panel-dialog__done",windowSelector:".panel-dialog__window",transitionsModifier:"mask-fade-slow"};class Dn extends bn{constructor(t,e={}){super(t,Object.assign({},Tn,e))}}const Bn={autoDismissTimer:6e3,baseClass:"snackbar-dialog",ctaButtonSelector:".snackbar-dialog__cta",transitionsModifier:"transition"};class qn extends ln{constructor(t,e={}){super(t,Object.assign({},Bn,e)),this._autoDismissTimeout=null}_show(){super._show(),this._autoDismissTimeout=setTimeout(((t=this)=>t.close()),this._options.autoDismissTimer)}_observeEvents(){super._observeEvents(),this._ctaEl=this._el.querySelector(this._options.ctaButtonSelector),this._ctaEl&&(this._onCtaClickListener=Fn.bind(this),this._ctaEl.addEventListener("click",this._onCtaClickListener))}_unobserveEvents(){super._unobserveEvents(),this._ctaEl&&this._ctaEl.removeEventListener("click",this._onCtaClickListener)}cta(){this._hide(),this._el.dispatchEvent(new CustomEvent("dialog-cta"))}destroy(){super.destroy(),this._onCtaClickListener=null}}function Fn(){this.cta()}const Rn={baseClass:"toast-dialog",closeButtonSelector:".toast-dialog__close",ctaButtonSelector:".toast-dialog__cta",transitionsModifier:"transition"};class Nn extends ln{constructor(t,e={}){super(t,Object.assign({},Rn,e))}_show(){super._show()}_observeEvents(){super._observeEvents(),this._ctaEl=this._el.querySelector(this._options.ctaButtonSelector),this._ctaEl&&(this._onCtaClickListener=jn.bind(this),this._ctaEl.addEventListener("click",this._onCtaClickListener))}_unobserveEvents(){super._unobserveEvents(),this._ctaEl&&this._ctaEl.removeEventListener("click",this._onCtaClickListener)}cta(){this._hide(),this._el.dispatchEvent(new CustomEvent("dialog-cta"))}destroy(){super.destroy(),this._onCtaClickListener=null}}function jn(){this.cta()}const Kn=Math.min,Pn=Math.max,Hn=Math.round,Wn=Math.floor,$n=t=>({x:t,y:t}),zn={left:"right",right:"left",bottom:"top",top:"bottom"},Vn={start:"end",end:"start"};function Gn(t,e,n){return Pn(t,Kn(e,n))}function Un(t,e){return"function"==typeof t?t(e):t}function Xn(t){return t.split("-")[0]}function Yn(t){return t.split("-")[1]}function Jn(t){return"x"===t?"y":"x"}function Qn(t){return"y"===t?"height":"width"}function Zn(t){return["top","bottom"].includes(Xn(t))?"y":"x"}function ti(t){return Jn(Zn(t))}function ei(t){return t.replace(/start|end/g,(t=>Vn[t]))}function ni(t){return t.replace(/left|right|bottom|top/g,(t=>zn[t]))}function ii(t){return"number"!=typeof t?function(t){return{top:0,right:0,bottom:0,left:0,...t}}(t):{top:t,right:t,bottom:t,left:t}}function si(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}function oi(t,e,n){let{reference:i,floating:s}=t;const o=Zn(e),r=ti(e),l=Qn(r),a=Xn(e),c="y"===o,u=i.x+i.width/2-s.width/2,h=i.y+i.height/2-s.height/2,d=i[l]/2-s[l]/2;let m;switch(a){case"top":m={x:u,y:i.y-s.height};break;case"bottom":m={x:u,y:i.y+i.height};break;case"right":m={x:i.x+i.width,y:h};break;case"left":m={x:i.x-s.width,y:h};break;default:m={x:i.x,y:i.y}}switch(Yn(e)){case"start":m[r]-=d*(n&&c?-1:1);break;case"end":m[r]+=d*(n&&c?-1:1)}return m}async function ri(t,e){var n;void 0===e&&(e={});const{x:i,y:s,platform:o,rects:r,elements:l,strategy:a}=t,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:h="floating",altBoundary:d=!1,padding:m=0}=Un(e,t),b=ii(m),_=l[d?"floating"===h?"reference":"floating":h],f=si(await o.getClippingRect({element:null==(n=await(null==o.isElement?void 0:o.isElement(_)))||n?_:_.contextElement||await(null==o.getDocumentElement?void 0:o.getDocumentElement(l.floating)),boundary:c,rootBoundary:u,strategy:a})),p="floating"===h?{...r.floating,x:i,y:s}:r.reference,v=await(null==o.getOffsetParent?void 0:o.getOffsetParent(l.floating)),E=await(null==o.isElement?void 0:o.isElement(v))&&await(null==o.getScale?void 0:o.getScale(v))||{x:1,y:1},g=si(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:p,offsetParent:v,strategy:a}):p);return{top:(f.top-g.top+b.top)/E.y,bottom:(g.bottom-f.bottom+b.bottom)/E.y,left:(f.left-g.left+b.left)/E.x,right:(g.right-f.right+b.right)/E.x}}function li(t){const e=Kn(...t.map((t=>t.left))),n=Kn(...t.map((t=>t.top)));return{x:e,y:n,width:Pn(...t.map((t=>t.right)))-e,height:Pn(...t.map((t=>t.bottom)))-n}}function ai(t){return hi(t)?(t.nodeName||"").toLowerCase():"#document"}function ci(t){var e;return(null==t||null==(e=t.ownerDocument)?void 0:e.defaultView)||window}function ui(t){var e;return null==(e=(hi(t)?t.ownerDocument:t.document)||window.document)?void 0:e.documentElement}function hi(t){return t instanceof Node||t instanceof ci(t).Node}function di(t){return t instanceof Element||t instanceof ci(t).Element}function mi(t){return t instanceof HTMLElement||t instanceof ci(t).HTMLElement}function bi(t){return"undefined"!=typeof ShadowRoot&&(t instanceof ShadowRoot||t instanceof ci(t).ShadowRoot)}function _i(t){const{overflow:e,overflowX:n,overflowY:i,display:s}=gi(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&!["inline","contents"].includes(s)}function fi(t){return["table","td","th"].includes(ai(t))}function pi(t){const e=vi(),n=gi(t);return"none"!==n.transform||"none"!==n.perspective||!!n.containerType&&"normal"!==n.containerType||!e&&!!n.backdropFilter&&"none"!==n.backdropFilter||!e&&!!n.filter&&"none"!==n.filter||["transform","perspective","filter"].some((t=>(n.willChange||"").includes(t)))||["paint","layout","strict","content"].some((t=>(n.contain||"").includes(t)))}function vi(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function Ei(t){return["html","body","#document"].includes(ai(t))}function gi(t){return ci(t).getComputedStyle(t)}function Li(t){return di(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function xi(t){if("html"===ai(t))return t;const e=t.assignedSlot||t.parentNode||bi(t)&&t.host||ui(t);return bi(e)?e.host:e}function yi(t){const e=xi(t);return Ei(e)?t.ownerDocument?t.ownerDocument.body:t.body:mi(e)&&_i(e)?e:yi(e)}function wi(t,e,n){var i;void 0===e&&(e=[]),void 0===n&&(n=!0);const s=yi(t),o=s===(null==(i=t.ownerDocument)?void 0:i.body),r=ci(s);return o?e.concat(r,r.visualViewport||[],_i(s)?s:[],r.frameElement&&n?wi(r.frameElement):[]):e.concat(s,wi(s,[],n))}function ki(t){const e=gi(t);let n=parseFloat(e.width)||0,i=parseFloat(e.height)||0;const s=mi(t),o=s?t.offsetWidth:n,r=s?t.offsetHeight:i,l=Hn(n)!==o||Hn(i)!==r;return l&&(n=o,i=r),{width:n,height:i,$:l}}function Ci(t){return di(t)?t:t.contextElement}function Si(t){const e=Ci(t);if(!mi(e))return $n(1);const n=e.getBoundingClientRect(),{width:i,height:s,$:o}=ki(e);let r=(o?Hn(n.width):n.width)/i,l=(o?Hn(n.height):n.height)/s;return r&&Number.isFinite(r)||(r=1),l&&Number.isFinite(l)||(l=1),{x:r,y:l}}const Mi=$n(0);function Ai(t){const e=ci(t);return vi()&&e.visualViewport?{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}:Mi}function Oi(t,e,n,i){void 0===e&&(e=!1),void 0===n&&(n=!1);const s=t.getBoundingClientRect(),o=Ci(t);let r=$n(1);e&&(i?di(i)&&(r=Si(i)):r=Si(t));const l=function(t,e,n){return void 0===e&&(e=!1),!(!n||e&&n!==ci(t))&&e}(o,n,i)?Ai(o):$n(0);let a=(s.left+l.x)/r.x,c=(s.top+l.y)/r.y,u=s.width/r.x,h=s.height/r.y;if(o){const t=ci(o),e=i&&di(i)?ci(i):i;let n=t,s=n.frameElement;for(;s&&i&&e!==n;){const t=Si(s),e=s.getBoundingClientRect(),i=gi(s),o=e.left+(s.clientLeft+parseFloat(i.paddingLeft))*t.x,r=e.top+(s.clientTop+parseFloat(i.paddingTop))*t.y;a*=t.x,c*=t.y,u*=t.x,h*=t.y,a+=o,c+=r,n=ci(s),s=n.frameElement}}return si({width:u,height:h,x:a,y:c})}const Ii=[":popover-open",":modal"];function Ti(t){return Ii.some((e=>{try{return t.matches(e)}catch(t){return!1}}))}function Di(t){return Oi(ui(t)).left+Li(t).scrollLeft}function Bi(t,e,n){let i;if("viewport"===e)i=function(t,e){const n=ci(t),i=ui(t),s=n.visualViewport;let o=i.clientWidth,r=i.clientHeight,l=0,a=0;if(s){o=s.width,r=s.height;const t=vi();(!t||t&&"fixed"===e)&&(l=s.offsetLeft,a=s.offsetTop)}return{width:o,height:r,x:l,y:a}}(t,n);else if("document"===e)i=function(t){const e=ui(t),n=Li(t),i=t.ownerDocument.body,s=Pn(e.scrollWidth,e.clientWidth,i.scrollWidth,i.clientWidth),o=Pn(e.scrollHeight,e.clientHeight,i.scrollHeight,i.clientHeight);let r=-n.scrollLeft+Di(t);const l=-n.scrollTop;return"rtl"===gi(i).direction&&(r+=Pn(e.clientWidth,i.clientWidth)-s),{width:s,height:o,x:r,y:l}}(ui(t));else if(di(e))i=function(t,e){const n=Oi(t,!0,"fixed"===e),i=n.top+t.clientTop,s=n.left+t.clientLeft,o=mi(t)?Si(t):$n(1);return{width:t.clientWidth*o.x,height:t.clientHeight*o.y,x:s*o.x,y:i*o.y}}(e,n);else{const n=Ai(t);i={...e,x:e.x-n.x,y:e.y-n.y}}return si(i)}function qi(t,e){const n=xi(t);return!(n===e||!di(n)||Ei(n))&&("fixed"===gi(n).position||qi(n,e))}function Fi(t,e,n){const i=mi(e),s=ui(e),o="fixed"===n,r=Oi(t,!0,o,e);let l={scrollLeft:0,scrollTop:0};const a=$n(0);if(i||!i&&!o)if(("body"!==ai(e)||_i(s))&&(l=Li(e)),i){const t=Oi(e,!0,o,e);a.x=t.x+e.clientLeft,a.y=t.y+e.clientTop}else s&&(a.x=Di(s));return{x:r.left+l.scrollLeft-a.x,y:r.top+l.scrollTop-a.y,width:r.width,height:r.height}}function Ri(t,e){return mi(t)&&"fixed"!==gi(t).position?e?e(t):t.offsetParent:null}function Ni(t,e){const n=ci(t);if(!mi(t)||Ti(t))return n;let i=Ri(t,e);for(;i&&fi(i)&&"static"===gi(i).position;)i=Ri(i,e);return i&&("html"===ai(i)||"body"===ai(i)&&"static"===gi(i).position&&!pi(i))?n:i||function(t){let e=xi(t);for(;mi(e)&&!Ei(e);){if(pi(e))return e;e=xi(e)}return null}(t)||n}const ji={convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{elements:e,rect:n,offsetParent:i,strategy:s}=t;const o="fixed"===s,r=ui(i),l=!!e&&Ti(e.floating);if(i===r||l&&o)return n;let a={scrollLeft:0,scrollTop:0},c=$n(1);const u=$n(0),h=mi(i);if((h||!h&&!o)&&(("body"!==ai(i)||_i(r))&&(a=Li(i)),mi(i))){const t=Oi(i);c=Si(i),u.x=t.x+i.clientLeft,u.y=t.y+i.clientTop}return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-a.scrollLeft*c.x+u.x,y:n.y*c.y-a.scrollTop*c.y+u.y}},getDocumentElement:ui,getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:i,strategy:s}=t;const o=[..."clippingAncestors"===n?function(t,e){const n=e.get(t);if(n)return n;let i=wi(t,[],!1).filter((t=>di(t)&&"body"!==ai(t))),s=null;const o="fixed"===gi(t).position;let r=o?xi(t):t;for(;di(r)&&!Ei(r);){const e=gi(r),n=pi(r);n||"fixed"!==e.position||(s=null),(o?!n&&!s:!n&&"static"===e.position&&s&&["absolute","fixed"].includes(s.position)||_i(r)&&!n&&qi(t,r))?i=i.filter((t=>t!==r)):s=e,r=xi(r)}return e.set(t,i),i}(e,this._c):[].concat(n),i],r=o[0],l=o.reduce(((t,n)=>{const i=Bi(e,n,s);return t.top=Pn(i.top,t.top),t.right=Kn(i.right,t.right),t.bottom=Kn(i.bottom,t.bottom),t.left=Pn(i.left,t.left),t}),Bi(e,r,s));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},getOffsetParent:Ni,getElementRects:async function(t){const e=this.getOffsetParent||Ni,n=this.getDimensions;return{reference:Fi(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,...await n(t.floating)}}},getClientRects:function(t){return Array.from(t.getClientRects())},getDimensions:function(t){const{width:e,height:n}=ki(t);return{width:e,height:n}},getScale:Si,isElement:di,isRTL:function(t){return"rtl"===gi(t).direction}};const Ki=function(t){return void 0===t&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:i,placement:s}=e,{mainAxis:o=!0,crossAxis:r=!1,limiter:l={fn:t=>{let{x:e,y:n}=t;return{x:e,y:n}}},...a}=Un(t,e),c={x:n,y:i},u=await ri(e,a),h=Zn(Xn(s)),d=Jn(h);let m=c[d],b=c[h];if(o){const t="y"===d?"bottom":"right";m=Gn(m+u["y"===d?"top":"left"],m,m-u[t])}if(r){const t="y"===h?"bottom":"right";b=Gn(b+u["y"===h?"top":"left"],b,b-u[t])}const _=l.fn({...e,[d]:m,[h]:b});return{..._,data:{x:_.x-n,y:_.y-i}}}}},Pi=function(t){return void 0===t&&(t={}),{name:"flip",options:t,async fn(e){var n,i;const{placement:s,middlewareData:o,rects:r,initialPlacement:l,platform:a,elements:c}=e,{mainAxis:u=!0,crossAxis:h=!0,fallbackPlacements:d,fallbackStrategy:m="bestFit",fallbackAxisSideDirection:b="none",flipAlignment:_=!0,...f}=Un(t,e);if(null!=(n=o.arrow)&&n.alignmentOffset)return{};const p=Xn(s),v=Xn(l)===l,E=await(null==a.isRTL?void 0:a.isRTL(c.floating)),g=d||(v||!_?[ni(l)]:function(t){const e=ni(t);return[ei(t),e,ei(e)]}(l));d||"none"===b||g.push(...function(t,e,n,i){const s=Yn(t);let o=function(t,e,n){const i=["left","right"],s=["right","left"],o=["top","bottom"],r=["bottom","top"];switch(t){case"top":case"bottom":return n?e?s:i:e?i:s;case"left":case"right":return e?o:r;default:return[]}}(Xn(t),"start"===n,i);return s&&(o=o.map((t=>t+"-"+s)),e&&(o=o.concat(o.map(ei)))),o}(l,_,b,E));const L=[l,...g],x=await ri(e,f),y=[];let w=(null==(i=o.flip)?void 0:i.overflows)||[];if(u&&y.push(x[p]),h){const t=function(t,e,n){void 0===n&&(n=!1);const i=Yn(t),s=ti(t),o=Qn(s);let r="x"===s?i===(n?"end":"start")?"right":"left":"start"===i?"bottom":"top";return e.reference[o]>e.floating[o]&&(r=ni(r)),[r,ni(r)]}(s,r,E);y.push(x[t[0]],x[t[1]])}if(w=[...w,{placement:s,overflows:y}],!y.every((t=>t<=0))){var k,C;const t=((null==(k=o.flip)?void 0:k.index)||0)+1,e=L[t];if(e)return{data:{index:t,overflows:w},reset:{placement:e}};let n=null==(C=w.filter((t=>t.overflows[0]<=0)).sort(((t,e)=>t.overflows[1]-e.overflows[1]))[0])?void 0:C.placement;if(!n)switch(m){case"bestFit":{var S;const t=null==(S=w.map((t=>[t.placement,t.overflows.filter((t=>t>0)).reduce(((t,e)=>t+e),0)])).sort(((t,e)=>t[1]-e[1]))[0])?void 0:S[0];t&&(n=t);break}case"initialPlacement":n=l}if(s!==n)return{reset:{placement:n}}}return{}}}},Hi=t=>({name:"arrow",options:t,async fn(e){const{x:n,y:i,placement:s,rects:o,platform:r,elements:l,middlewareData:a}=e,{element:c,padding:u=0}=Un(t,e)||{};if(null==c)return{};const h=ii(u),d={x:n,y:i},m=ti(s),b=Qn(m),_=await r.getDimensions(c),f="y"===m,p=f?"top":"left",v=f?"bottom":"right",E=f?"clientHeight":"clientWidth",g=o.reference[b]+o.reference[m]-d[m]-o.floating[b],L=d[m]-o.reference[m],x=await(null==r.getOffsetParent?void 0:r.getOffsetParent(c));let y=x?x[E]:0;y&&await(null==r.isElement?void 0:r.isElement(x))||(y=l.floating[E]||o.floating[b]);const w=g/2-L/2,k=y/2-_[b]/2-1,C=Kn(h[p],k),S=Kn(h[v],k),M=C,A=y-_[b]-S,O=y/2-_[b]/2+w,I=Gn(M,O,A),T=!a.arrow&&null!=Yn(s)&&O!==I&&o.reference[b]/2-(Ot.y-e.y)),n=[];let i=null;for(let t=0;ti.height/2?n.push([s]):n[n.length-1].push(s),i=s}return n.map((t=>si(li(t))))}(u),d=si(li(u)),m=ii(l),b=await o.getElementRects({reference:{getBoundingClientRect:function(){if(2===h.length&&h[0].left>h[1].right&&null!=a&&null!=c)return h.find((t=>a>t.left-m.left&&at.top-m.top&&c=2){if("y"===Zn(n)){const t=h[0],e=h[h.length-1],i="top"===Xn(n),s=t.top,o=e.bottom,r=i?t.left:e.left,l=i?t.right:e.right;return{top:s,bottom:o,left:r,right:l,width:l-r,height:o-s,x:r,y:s}}const t="left"===Xn(n),e=Pn(...h.map((t=>t.right))),i=Kn(...h.map((t=>t.left))),s=h.filter((n=>t?n.left===i:n.right===e)),o=s[0].top,r=s[s.length-1].bottom;return{top:o,bottom:r,left:i,right:e,width:e-i,height:r-o,x:i,y:o}}return d}},floating:i.floating,strategy:r});return s.reference.x!==b.reference.x||s.reference.y!==b.reference.y||s.reference.width!==b.reference.width||s.reference.height!==b.reference.height?{reset:{rects:b}}:{}}}};if(void 0!==window.URLSearchParams){const t=new URLSearchParams(location.search);t.has("debug")&&"1"===t.get("debug")&&document.querySelectorAll(".page-grid").forEach((t=>{t.classList.add("page-grid--debug")})),t.has("dark")&&"1"===t.get("dark")&&document.querySelector("body").classList.add("skin-experiment-dark-mode")}const $i=[];let zi;const Vi=t=>console.log(t.type,t.detail);document.getElementById("busy-button").addEventListener("click",(function(){const t=this;t.setAttribute("aria-label","Busy..."),t.innerHTML='\n \n \n \n \n \n ',window.setTimeout((function(){t.removeAttribute("aria-label"),t.innerHTML="Activate Spinner"}),2e3)})),document.querySelectorAll('.checkbox input[aria-checked="mixed"]').forEach((function(t){t.addEventListener("click",(function(){const t=!0===this.checked;this.setAttribute("aria-checked",t?"mixed":"false")}))})),document.querySelectorAll(".breadcrumbs").forEach((function(t){const e=t.offsetWidth,n=t.scrollWidth-e;n&&t.scroll(n,0)})),document.querySelectorAll(".expand-btn").forEach((function(t){t.addEventListener("click",(function(){const t="true"===this.getAttribute("aria-expanded");this.setAttribute("aria-expanded",!t)}))})),document.querySelectorAll(".filter-menu-button--form button").forEach((function(t){t.addEventListener("click",(function(){const t="true"===this.getAttribute("aria-expanded");this.setAttribute("aria-expanded",!t)}))})),document.querySelectorAll(".fake-menu-button").forEach((function(t){let e=".icon-btn";t.querySelector(".expand-btn")?e=".expand-btn":t.querySelector(".btn")&&(e=".btn"),$i.push(new it(t,{expandOnClick:!0,collapseOnFocusOut:!0,collapseOnClickOut:!0,contentSelector:".fake-menu-button__menu",focusManagement:"focusable",hostSelector:e}))})),document.querySelectorAll(".combobox").forEach((function(t){$i.push(new It(t)),t.addEventListener("makeup-combobox-change",Vi)})),document.querySelectorAll(".dialog-button").forEach((function(t){const e=t.dataset.makeupFor,n=document.getElementById(e),i=n.classList;let s;i.contains("confirm-dialog")?s=new gn(n):i.contains("alert-dialog")?s=new pn(n):i.contains("lightbox-dialog--input")?s=new An(n):i.contains("fullscreen-dialog")?s=new Sn(n):i.contains("snackbar-dialog")?s=new qn(n):i.contains("toast-dialog")?s=new Nn(n):i.contains("drawer-dialog")?s=new wn(n):i.contains("panel-dialog")?s=new Dn(n):i.contains("lightbox-dialog")&&(s=new bn(n)),$i.push(new Ht(t,s)),s._el.addEventListener("dialog-open",Vi),s._el.addEventListener("dialog-close",Vi),s._el.addEventListener("dialog-acknowledge",Vi),s._el.addEventListener("dialog-confirm",Vi),s._el.addEventListener("dialog-reject",Vi),s._el.addEventListener("dialog-cta",Vi)}));class Gi{constructor(t,e){this.messageContainerEl=t.querySelector(".progress-bar-expressive__messages"),this.messages=e,this.messageContainerEl&&this.messages&&(this.isInitialized=!0,this.nextMessageEl=t.querySelector('[aria-hidden="true"]'),this.currentMessageEl=t.querySelector('[role="status"]'),this.messageIndex=0,this.message=this.messages[this.messageIndex])}queueNextMessage(){this.isInitialized&&this.messages.length>1&&(this.messageIndex=(this.messageIndex+1)%this.messages.length,this.message=this.messages[this.messageIndex],this.nextMessageEl.innerText=this.messages[this.messageIndex],this.nextMessageEl.classList.add("progress-bar-expressive__message--in"),this.currentMessageEl.classList.add("progress-bar-expressive__message--out"),setTimeout(this.showMessage.bind(this),833))}showMessage(){this.isInitialized&&(this.currentMessageEl.innerText=this.message,this.currentMessageEl.classList.remove("progress-bar-expressive__message--out"),this.nextMessageEl.classList.remove("progress-bar-expressive__message--in"),setTimeout(this.queueNextMessage.bind(this),2e3))}}document.querySelectorAll(".progress-bar-expressive-messages-example").forEach((function(t){const e=new Gi(t,["Hang tight.","We're finishing your order.","Just another moment."]);e.isInitialized&&e.queueNextMessage()}));class Ui{constructor(t,e){this.host=t.querySelector(".".concat(e,"__host")),this.overlay=t.querySelector(".".concat(e,"__overlay")),this.arrowEl=t.querySelector(".".concat(e,"__pointer")),this.host&&this.overlay&&(this.isInitialized=!0)}init(){this.cleanup=function(t,e,n,i){void 0===i&&(i={});const{ancestorScroll:s=!0,ancestorResize:o=!0,elementResize:r="function"==typeof ResizeObserver,layoutShift:l="function"==typeof IntersectionObserver,animationFrame:a=!1}=i,c=Ci(t),u=s||o?[...c?wi(c):[],...wi(e)]:[];u.forEach((t=>{s&&t.addEventListener("scroll",n,{passive:!0}),o&&t.addEventListener("resize",n)}));const h=c&&l?function(t,e){let n,i=null;const s=ui(t);function o(){var t;clearTimeout(n),null==(t=i)||t.disconnect(),i=null}return function r(l,a){void 0===l&&(l=!1),void 0===a&&(a=1),o();const{left:c,top:u,width:h,height:d}=t.getBoundingClientRect();if(l||e(),!h||!d)return;const m={rootMargin:-Wn(u)+"px "+-Wn(s.clientWidth-(c+h))+"px "+-Wn(s.clientHeight-(u+d))+"px "+-Wn(c)+"px",threshold:Pn(0,Kn(1,a))||1};let b=!0;function _(t){const e=t[0].intersectionRatio;if(e!==a){if(!b)return r();e?r(!1,e):n=setTimeout((()=>{r(!1,1e-7)}),100)}b=!1}try{i=new IntersectionObserver(_,{...m,root:s.ownerDocument})}catch(t){i=new IntersectionObserver(_,m)}i.observe(t)}(!0),o}(c,n):null;let d,m=-1,b=null;r&&(b=new ResizeObserver((t=>{let[i]=t;i&&i.target===c&&b&&(b.unobserve(e),cancelAnimationFrame(m),m=requestAnimationFrame((()=>{var t;null==(t=b)||t.observe(e)}))),n()})),c&&!a&&b.observe(c),b.observe(e));let _=a?Oi(t):null;return a&&function e(){const i=Oi(t);!_||i.x===_.x&&i.y===_.y&&i.width===_.width&&i.height===_.height||n(),_=i,d=requestAnimationFrame(e)}(),n(),()=>{var t;u.forEach((t=>{s&&t.removeEventListener("scroll",n),o&&t.removeEventListener("resize",n)})),null==h||h(),null==(t=b)||t.disconnect(),b=null,a&&cancelAnimationFrame(d)}}(this.host,this.overlay,this.update.bind(this))}update(){var t;this.isInitialized&&((t,e,n)=>{const i=new Map,s={platform:ji,...n},o={...s.platform,_c:i};return(async(t,e,n)=>{const{placement:i="bottom",strategy:s="absolute",middleware:o=[],platform:r}=n,l=o.filter(Boolean),a=await(null==r.isRTL?void 0:r.isRTL(e));let c=await r.getElementRects({reference:t,floating:e,strategy:s}),{x:u,y:h}=oi(c,i,a),d=i,m={},b=0;for(let n=0;n{let{x:e,y:n,placement:i,middlewareData:s}=t;if(Object.assign(this.overlay.style,{left:"".concat(e,"px"),top:"".concat(n,"px")}),s.arrow){const{x:t,y:e}=s.arrow,n={top:"bottom",right:"left",bottom:"top",left:"right"}[i.split("-")[0]];Object.assign(this.arrowEl.style,{left:null!=t?"".concat(t,"px"):"",top:null!=e?"".concat(e,"px"):"",right:"",bottom:"",[n]:"-4px"})}}))}show(){this.host.setAttribute("aria-expanded","true"),this.init()}isExpanded(){return console.log(this.host,this.host.getAttribute("aria-expanded")),"true"===this.host.getAttribute("aria-expanded")}hide(){this.isExpanded()&&(this.host.setAttribute("aria-expanded","false"),this.cleanup&&this.cleanup())}}document.querySelectorAll(".tooltip").forEach((function(t){t.classList.contains("tooltip--js")||$i.push(new it(t,{contentSelector:".tooltip__overlay",collapseOnFocusOut:!0,collapseOnMouseOut:!0,expandOnFocus:!0,expandOnHover:!0,focusManagement:"focusable",hostSelector:".tooltip__host"}))})),document.querySelectorAll(".tooltip--js").forEach((function(t){const e=new Ui(t,"tooltip");e.isInitialized&&(["mouseenter","focus"].forEach((t=>{e.host.addEventListener(t,(()=>e.show()))})),["mouseleave","blur"].forEach((t=>{e.host.addEventListener(t,(()=>e.hide()))})))})),document.querySelectorAll(".infotip").forEach((function(t){if(t.classList.contains("infotip--js"))return;const e=t.querySelector("button"),n=".infotip__host";if(!t.querySelector(n))return;const i=new it(t,{contentSelector:".infotip__overlay",expandOnFocus:!1,expandOnClick:!0,hostSelector:n});t.querySelector(".infotip__close").addEventListener("click",(function(){i.expanded=!1,e.focus()}))})),document.querySelectorAll(".infotip--js").forEach((function(t){const e=new Ui(t,"infotip");if(!e.isInitialized)return;console.log("init",t),e.host.addEventListener("click",(()=>{e.isExpanded()?e.hide():e.show()}));const n=t.querySelector("button");t.querySelector(".infotip__close").addEventListener("click",(function(){n.focus(),e.isInitialized&&e.hide()}))})),document.querySelectorAll(".tourtip").forEach((function(t){t.classList.contains("tourtip--js")||t.querySelector(".tourtip__close").addEventListener("click",(function(){t.classList.remove("tourtip--expanded")}))})),document.querySelectorAll(".tourtip--js").forEach((function(t){const e=new Ui(t,"tourtip");e.isInitialized&&(e.init(),t.querySelector(".tourtip__close").addEventListener("click",(function(){t.classList.remove("tourtip--expanded"),e.hide()})))})),document.querySelectorAll(".floating-label").forEach((function(t){t.parentElement.classList.contains("phone-input")||$i.push(new bt(t))})),document.querySelectorAll(".progress-bar-toggle").forEach((function(t){const e=t.dataset.progressPlayButtonFor,n=document.getElementById(e),i=function(){const t=n.value+10;let e;e=t>100?100:t,n.value=e};t.addEventListener("click",(function(){zi?(clearInterval(zi),zi=null):(i(),zi=setInterval(i,1e3))}))})),document.querySelectorAll(".progress-bar-reset").forEach((function(t){const e=t.dataset.progressResetButtonFor,n=document.getElementById(e);t.addEventListener("click",(function(){zi&&(clearInterval(zi),zi=null),n.value=0}))})),document.querySelectorAll(".star-rating-select").forEach((function(t){t.addEventListener("change",(function(e){const n=e.target.value-1;t.querySelectorAll("input").forEach((function(t,e){t.classList.toggle("star-rating-select__control--filled",e{console.log(t.type,t.detail)}))})),document.querySelectorAll(".phone-input .listbox-button").forEach((function(t){const e={autoSelect:"true"===t.dataset.makeupAutoSelect,buttonLabelSelector:".btn__text",buttonValueType:"icon",listboxOptionIconSelector:".fflag",listboxOptionAriaLabelSelector:".listbox-button__value span"};$i.push(new Gt(t,e)),t.addEventListener("makeup-listbox-button-change",(e=>{var n;console.log(e.type,e.detail);const i=t.querySelector('.listbox-button__option[aria-selected="true"]');t.nextElementSibling.querySelector(".textbox > span").textContent="+".concat(null===(n=i.querySelector("span.fflag"))||void 0===n?void 0:n.dataset.countryCode)}))})),document.querySelectorAll(".menu-button").forEach((function(t){const e=new re(t,{menuSelector:".menu-button__menu",buttonTextSelector:".btn__text"});e.menu.el.addEventListener("makeup-menu-select",Vi),e.menu.el.addEventListener("makeup-menu-change",Vi)})),document.querySelectorAll(".filter-menu-button:not(.filter-menu-button--form)").forEach((function(t){const e=new re(t,{expandedClass:"filter-menu-button--expanded",menuSelector:".filter-menu-button__menu"});e.menu.el.addEventListener("makeup-menu-select",Vi),e.menu.el.addEventListener("makeup-menu-change",Vi)})),document.querySelectorAll(".menu").forEach((function(t){$i.push(new ee(t)),t.addEventListener("makeup-menu-select",Vi),t.addEventListener("makeup-menu-change",Vi)})),document.querySelectorAll(".filter-menu").forEach((function(t){$i.push(new ee(t)),t.addEventListener("makeup-menu-select",Vi),t.addEventListener("makeup-menu-change",Vi),t.addEventListener("makeup-menu-toggle",Vi)})),document.querySelectorAll(".segmented-buttons").forEach((function(t){const e=t.querySelectorAll("button");e.forEach((function(t){t.addEventListener("click",(function(){e.forEach((function(t){t.removeAttribute("aria-current")})),t.setAttribute("aria-current","true")}))}))})),document.querySelectorAll("input.switch__control").forEach((function(t){t.setAttribute("aria-checked",t.checked?"true":"false"),t.addEventListener("change",(function(t){t.target.setAttribute("aria-checked",t.target.checked?"true":"false")}))})),document.querySelectorAll(".switch:not(.switch--form)").forEach((function(t){$i.push(new de(t,{bem:{control:"switch__control"}})),t.addEventListener("makeup-switch-toggle",Vi)})),document.querySelectorAll(".toggle-button").forEach((function(t){t.closest(".toggle-button-group")||t.addEventListener("click",(function(){const t="true"===this.getAttribute("aria-pressed");this.setAttribute("aria-pressed",!t)}))})),function(){const t=".toggle-button",e="aria-pressed";document.querySelectorAll(".toggle-button-group").forEach((function(n){function i(t){const n="true"===t.getAttribute(e);t.setAttribute(e,!n)}function s(t){return t.getAttribute(e)&&"true"===t.getAttribute(e)}n.addEventListener("click",(function(e){const o=this.getAttribute("data-selection-type"),r=e.target;if(r.matches("button"))switch(o){case"single-optional":!function(e,n){if(s(e))return i(e);n.querySelectorAll(t).forEach((function(t){s(t)&&i(t)})),i(e)}(r,n);break;case"single-required":a=n,s(l=r)||(a.querySelectorAll(t).forEach((function(t){s(t)&&i(t)})),i(l));break;default:i(r)}var l,a}))}))}();const Xi=((t,e)=>{let n;return function(){for(var t=arguments.length,e=new Array(t),i=0;i{n=null,function(t,e){let n="off";const i=t.value.length,s=e.innerHTML.split(/([0-9]+)( \w+ )([0-9]+)/g);if(s.length<=1)return;s[1]=i;const o=s[3];e.innerHTML=s.join(""),i>=o&&(n="polite"),t.setAttribute("aria-live",n)}(...e)}),500)}})();document.querySelectorAll(".field").forEach((function(t){const e=t.querySelector("input,textarea"),n=e&&e.dataset.fieldCount;if(n){const i=t.querySelector("#".concat(n));e.addEventListener("keydown",Xi.bind(this,e,i))}})),document.querySelectorAll(".chips-combobox").forEach((function(t){const e=t.querySelector(".chips-combobox__items"),n=t.querySelector(".chips-combobox__combobox").querySelector(".combobox__options"),i="div.combobox__option",s="button.chip__button";t.addEventListener("click",(function(t){const o=t.target;if(o.matches(i)||o.matches(s)){if(o.matches(i)){const t=o.innerText.trim();n.removeChild(o),function(t){const n='\n
  • \n \n \n '.concat(t,'\n \n \n \n
  • \n ');e.insertAdjacentHTML("beforeend",n)}(t)}if(o.matches(s)){const t=o.previousElementSibling.innerText.trim(),i=o.closest("li");e.removeChild(i),function(t){const e='\n
    \n '.concat(t,"\n
    \n ");n.insertAdjacentHTML("beforeend",e)}(t)}}}))}))})(); //# sourceMappingURL=docs.min.js.map \ No newline at end of file diff --git a/docs/static/docs.min.js.map b/docs/static/docs.min.js.map index 16a5b6598..c20f41a01 100644 --- a/docs/static/docs.min.js.map +++ b/docs/static/docs.min.js.map @@ -1 +1 @@ -{"version":3,"file":"docs.min.js","mappings":"mBAiCA,SAASA,EAAUC,IA9BnB,SAAuBC,EAAKC,EAAIC,GAC9B,IAAKF,EAAIG,SAAU,CACjB,MAAMC,EAAMJ,EAAII,IAChB,OAAQA,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,WACL,IAAK,MACL,IAAK,OACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,YACHH,EAAGI,cAAc,IAAIC,aAjBIC,EAiBgC,GAAGH,OAASF,KAhBhEM,OAAO,GAAGC,cAAgBF,EAAIG,MAAM,GAgB6C,CACpFC,OAAQX,EACRY,SAAS,KAEX,MACF,IAAK,IACHX,EAAGI,cAAc,IAAIC,YAAY,cAAcJ,IAAgB,CAC7DS,OAAQX,EACRY,SAAS,KAEX,MACF,QACE,OAEN,CA/BF,IAAiCL,CAgCjC,CAEEM,CAAcd,EAAGe,KAAM,OACzB,CCnCA,MAAMC,EAAc,CAAC,EACfC,EAAgB,MAChBC,EAIN,SAA6BC,GAC3B,MAAMC,EAAU,6BAEVC,EAAWD,EADF,aAEf,IAAIE,EAAUF,EAAQG,EAAa,KACnC,IAAK,IAAIC,EAAI,EAAGA,EATwB,EASdA,IACxBF,GAAWD,EAASE,EAAa,KAEnC,OAAOD,CACT,CAbsBG,GACtB,SAASF,EAAaG,GACpB,OAAOC,KAAKC,MAAMD,KAAKE,SAAWH,EACpC,CAWA,SAAS,EAAYxB,EAAI4B,EAASb,GAChC,MACMZ,EAAM,GAAGyB,IADc,KAAXA,EAAgB,GAAK,MACHZ,IAKpC,OAJAF,EAAYX,GAAOW,EAAYX,IAAQ,EAClCH,EAAG6B,IACN7B,EAAG8B,aAAa,KAAM,GAAG3B,KAAOW,EAAYX,QAEvCH,EAAG6B,EACZ,CCvBA,MAAME,EAAoB,CAAC,EAC3B,SAASC,EAAYhC,EAAIiC,EAAaC,GACpClC,EAAGI,cAAc,IAAIC,YAAY,YAAa,CAC5CK,OAAQ,CAAEuB,cAAaC,aACvBvB,SAAS,IAEb,CACA,SAASwB,EAAkBrC,GACzB,MAAMsC,EAAkBtC,EAAEuC,QAEC,IADAxB,KAAKb,GAAGsC,SAASF,GAE1CvB,KAAK0B,oBAAsBH,GAE3BI,OAAOC,oBAAoB,OAAQ5B,KAAK6B,sBACxCC,SAASF,oBAAoB,UAAW5B,KAAK+B,2BAC7CZ,EAAYnB,KAAKb,GAAIa,KAAK0B,oBAAqBH,GAC/CvB,KAAK0B,oBAAsB,KAE/B,CACA,SAASM,IACPb,EAAYnB,KAAKb,GAAIa,KAAK0B,yBAAqB,EACjD,CACA,SAASO,IACPH,SAASI,iBAAiB,UAAWlC,KAAK+B,2BAC1CJ,OAAOO,iBAAiB,OAAQlC,KAAK6B,qBACvC,CACA,MAAMM,EACJ,WAAAC,CAAYjD,GACVa,KAAKb,GAAKA,EACVa,KAAK0B,oBAAsB,KAC3B1B,KAAKqC,wBAA0BJ,EAAgBK,KAAKtC,MACpDA,KAAK+B,0BAA4BT,EAAkBgB,KAAKtC,MACxDA,KAAK6B,qBAAuBG,EAAaM,KAAKtC,MAC9CA,KAAKb,GAAG+C,iBAAiB,UAAWlC,KAAKqC,wBAC3C,CACA,oBAAAE,GACEZ,OAAOC,oBAAoB,OAAQ5B,KAAK6B,sBACxCC,SAASF,oBAAoB,UAAW5B,KAAK+B,2BAC7C/B,KAAKb,GAAGyC,oBAAoB,UAAW5B,KAAKqC,wBAC9C,EAEF,SAASG,EAAarD,GACpB,IAAIsD,EAAc,KAMlB,OALA,EAAOtD,GACF+B,EAAkB/B,EAAG6B,MACxByB,EAAc,IAAIN,EAAiBhD,GACnC+B,EAAkB/B,EAAG6B,IAAMyB,GAEtBA,CACT,CChDA,MAAMC,EAAiB,CACrBC,KAAM,OACNC,SAAU,cACVC,UAAW,UACXC,yBAA0B,KAC1BC,MAAM,GAER,SAASC,EAAgB7D,GACvB,OAAQA,EAAG8D,QAA+C,SAArC9D,EAAG+D,aAAa,gBACvC,CACA,SAASC,EAAiBC,EAAOC,GAC/B,OAAOA,GAAS,GAAKA,EAAQD,EAAME,QAASN,EAAgBI,EAAMC,GACpE,CAIA,SAASE,EAAwBH,GAC/B,OAAOA,EAAMI,WAAWC,GAAST,EAAgBS,IACnD,CACA,SAASC,EAAuBN,GAC9B,OAAOA,EAAMO,QAPf,SAA4BP,GAC1B,OAAOA,EAAMQ,OAAOZ,EACtB,CAKuBa,CAAmBT,GAAOU,UAAU,GAC3D,CACA,SAASC,EAAqBX,EAAOY,EAAWC,GAC9C,OAAOb,EAAMI,WAAWC,GAAST,EAAgBS,IAASA,EAAKP,aAAac,KAAeC,GAC7F,CAIA,SAASC,EAAoCd,GAC3C,OAAOW,EAAqBX,EAAO,gBAAiB,OACtD,CACA,SAASe,EAA2BhF,EAAIiF,GACtC,OAA4C,OAArCA,EAAQtB,yBAAoC,IAAI3D,EAAGkF,iBAAiBD,EAAQtB,2BAA6B,EAClH,CAsCA,SAASwB,EAAwBC,EAAWnB,EAAOoB,GACjD,IAAInB,GAAS,EACb,OAAQkB,GACN,IAAK,OACHlB,EAAQ,KACR,MACF,IAAK,UACHA,EAAQmB,EACR,MACF,IAAK,cACHnB,EAAQE,EAAwBH,GAChC,MACF,IAAK,cACHC,EA3DN,SAA4CD,GAC1C,OAAOW,EAAqBX,EAAO,eAAgB,OACrD,CAyDcqB,CAAmCrB,GAC3C,MACF,IAAK,eACHC,EAAQa,EAAoCd,GAC5C,MACF,IAAK,4BACHC,EAAQa,EAAoCd,GAC5CC,GAAmB,IAAXA,EAAeE,EAAwBH,GAASC,EACxD,MACF,QACEA,EAA6B,iBAAdkB,GAAwC,OAAdA,EAAqBA,GAAa,EAE/E,OAAOlB,CACT,CAOA,SAASqB,EAAUzF,GACjB,MAAM0F,EAAyBR,EAA2BnE,KAAK4E,IAAK5E,KAAKoE,SACnC,IAAlCO,EAAuBrB,QAAiBqB,EAAuBE,SAAS5F,EAAEY,OAAO2B,UACnFxB,KAAKqD,MAzET,SAAoCD,EAAOC,EAAON,GAChD,IAAI+B,GAA0B,EAC9B,GAAc,OAAVzB,QACG,GA6DT,SAAiBD,EAAOC,GACtB,OAAOA,IAAUE,EAAwBH,EAC3C,CA/Da2B,CAAQ3B,EAAOC,IACX,IAATN,IACF+B,EAAyBpB,EAAuBN,QAE7C,CACL,IAAI3C,EAAI4C,EACR,OAAS5C,GAAK,GACZ,GAAIuC,EAAgBI,EAAM3C,IAAK,CAC7BqE,EAAyBrE,EACzB,KACF,CAEJ,CACA,OAAOqE,CACT,CAwDiBE,CAA2BhF,KAAKoD,MAAOpD,KAAKqD,MAAOrD,KAAKoE,QAAQrB,MAEjF,CACA,SAASkC,EAAUhG,GACjB,MAAM0F,EAAyBR,EAA2BnE,KAAK4E,IAAK5E,KAAKoE,SACnC,IAAlCO,EAAuBrB,QAAiBqB,EAAuBE,SAAS5F,EAAEY,OAAO2B,UACnFxB,KAAKqD,MA7DT,SAAgCD,EAAOC,EAAON,GAC5C,IAAImC,GAAsB,EAC1B,GAAc,OAAV7B,EACF6B,EAAqB3B,EAAwBH,QACxC,GA6CT,SAAeA,EAAOC,GACpB,OAAOA,IAAUK,EAAuBN,EAC1C,CA/Ca+B,CAAM/B,EAAOC,IACT,IAATN,IACFmC,EAAqB3B,EAAwBH,QAE1C,CACL,IAAI3C,EAAI4C,EACR,OAAS5C,EAAI2C,EAAME,QACjB,GAAIN,EAAgBI,EAAM3C,IAAK,CAC7ByE,EAAqBzE,EACrB,KACF,CAEJ,CACA,OAAOyE,CACT,CA2CiBE,CAAuBpF,KAAKoD,MAAOpD,KAAKqD,MAAOrD,KAAKoE,QAAQrB,MAE7E,CACA,SAASsC,EAAQpG,GACf,MAAMqG,EAAYtF,KAAK2D,QAAQ1E,EAAEuC,OAAO+D,QAAQvF,KAAKwF,gBACjDrC,EAAiBnD,KAAKoD,MAAOkC,KAC/BtF,KAAKqD,MAAQiC,EAEjB,CACA,SAASG,EAAUxG,GACjB,MAAM0F,EAAyBR,EAA2BnE,KAAK4E,IAAK5E,KAAKoE,SACnC,IAAlCO,EAAuBrB,QAAiBqB,EAAuBE,SAAS5F,EAAEY,OAAO2B,UACnFxB,KAAKqD,MAAQE,EAAwBvD,KAAKoD,OAE9C,CACA,SAASsC,EAASzG,GAChB,MAAM0F,EAAyBR,EAA2BnE,KAAK4E,IAAK5E,KAAKoE,SACnC,IAAlCO,EAAuBrB,QAAiBqB,EAAuBE,SAAS5F,EAAEY,OAAO2B,UACnFxB,KAAKqD,MAAQK,EAAuB1D,KAAKoD,OAE7C,CACA,SAASuC,IACwB,OAA3B3F,KAAKoE,QAAQvB,WACf7C,KAAK4F,OAET,CACA,SAASC,EAAW5G,GAClB,MAAM6G,EAAY9F,KAAKqD,MACvB,IAAI0C,EAAU/F,KAAKqD,MACnB,MAAM,WAAE2C,EAAU,cAAEC,EAAa,aAAEC,EAAY,OAAE1E,EAAM,KAAE2E,GAASlH,EAAE,GACvD,eAATkH,EACE3E,IAAWxB,KAAKoG,YACI,kBAAlBH,EACFF,EAAU/F,KAAKqD,MACY,WAAlB4C,IACTF,EAAUxC,EAAwBvD,KAAKoD,QAGzC2C,EAAU/F,KAAKqD,MAEC,cAAT8C,IACLD,EAAa5C,OAAS,GAAK,IAAI4C,GAAcrB,SAAS7E,KAAKqG,gBAC7DN,EAAUxC,EAAwBvD,KAAKoD,QAC9B8C,EAAa5C,OAAS,GAAK0C,EAAW1C,OAAS,KACxDyC,EAAU/F,KAAK2D,QAAQ3D,KAAKqG,kBAGhCrG,KAAKsG,OAASP,EACd/F,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,0BAA2B,CAChEM,SAAS,EACTD,OAAQ,CAAEiG,YAAWC,aAEzB,CACA,MAAMQ,EACJ,WAAAnE,CAAYjD,EAAIqH,EAAcC,GAC5BzG,KAAKoE,QAAUsC,OAAOC,OAAO,CAAC,EAAGjE,EAAgB+D,GACjDzG,KAAK4E,IAAMzF,EACXa,KAAKwF,cAAgBgB,CACvB,EAEF,MAAMI,UAA8BL,EAClC,WAAAnE,CAAYjD,EAAIqH,EAAcC,GAC5BI,MAAM1H,EAAIqH,EAAcC,GACxB,MAAMX,EAAY9F,KAAKsG,OACjBP,EAAUzB,EAAwBtE,KAAKoE,QAAQxB,SAAU5C,KAAKoD,MAAOpD,KAAKqD,OAChFrD,KAAKsG,OAASP,EACd/F,KAAKqG,eAAiBrG,KAAKoD,MAAM2C,GACjC/F,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,sBAAuB,CAC5DM,SAAS,EACTD,OAAQ,CACNiH,sBAAuB9G,KAAK+G,oBAC5BjB,YACA1C,MAAOpD,KAAKoD,MACZ2C,aAGN,CACA,eAAIK,GACF,OAAOpG,KAAKoD,MAAMpD,KAAKqD,MACzB,CACA,SAAID,GACF,MAAO,IAAIpD,KAAK4E,IAAIP,iBAAiB,GAAGrE,KAAKwF,iBAC/C,CACA,SAAInC,GACF,OAAOrD,KAAKsG,MACd,CACA,SAAIjD,CAAM0C,GACR,GAAIA,IAAY/F,KAAKqD,OAETF,EAAiBnD,KAAKoD,MAAO2C,GAClC,CACL,MAAMD,EAAY9F,KAAKqD,MACvBrD,KAAKqG,eAAiBrG,KAAKoD,MAAM2C,GACjC/F,KAAKsG,OAASP,EACd/F,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,wBAAyB,CAC9DM,SAAS,EACTD,OAAQ,CAAEiG,YAAWC,aAEzB,CACF,CACA,OAAApC,CAAQqD,GACN,OAAOhH,KAAKoD,MAAMO,QAAQqD,EAC5B,CACA,KAAApB,GACE,MAAME,EAAY9F,KAAKqD,MACjB0C,EAAUzB,EAAwBtE,KAAKoE,QAAQvB,UAAW7C,KAAKoD,MAAOpD,KAAKqD,OAC7E0C,IAAYD,IACd9F,KAAKsG,OAASP,EACd/F,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,uBAAwB,CAC7DM,SAAS,EACTD,OAAQ,CAAEiG,YAAWC,cAG3B,EAEF,MAAMkB,EACJ,WAAA7E,CAAYjD,EAAI+H,GACdlH,KAAKkH,MAAQA,EACblH,KAAKb,GAAKA,EACVa,KAAKmH,iBAAmBzC,EAAUpC,KAAK4E,GACvClH,KAAKoH,iBAAmBnC,EAAU3C,KAAK4E,GACvClH,KAAKqH,iBAAmB5B,EAAUnD,KAAK4E,GACvClH,KAAKsH,gBAAkB5B,EAASpD,KAAK4E,GACrClH,KAAKuH,eAAiBlC,EAAQ/C,KAAK4E,GACnClH,KAAKwH,mBAAqB7B,EAAYrD,KAAK4E,GAC3ClH,KAAKyH,UAAY,IAAIC,iBAAiB7B,EAAWvD,KAAK4E,IHzM1D,SAAoB/H,GAClBA,EAAG+C,iBAAiB,UAAWlD,EACjC,CGwMI,CAAsBgB,KAAKb,IAC3B,EAAyBa,KAAKb,IAC9B,MAAMwD,EAAOuE,EAAM9C,QAAQzB,KACd,SAATA,GAA4B,MAATA,IACrB3C,KAAKb,GAAG+C,iBAAiB,mBAAoBlC,KAAKmH,kBAClDnH,KAAKb,GAAG+C,iBAAiB,oBAAqBlC,KAAKoH,mBAExC,SAATzE,GAA4B,MAATA,IACrB3C,KAAKb,GAAG+C,iBAAiB,iBAAkBlC,KAAKmH,kBAChDnH,KAAKb,GAAG+C,iBAAiB,mBAAoBlC,KAAKoH,mBAEpDpH,KAAKb,GAAG+C,iBAAiB,cAAelC,KAAKqH,kBAC7CrH,KAAKb,GAAG+C,iBAAiB,aAAclC,KAAKsH,iBAC5CtH,KAAKb,GAAG+C,iBAAiB,QAASlC,KAAKuH,gBACvCvH,KAAKb,GAAG+C,iBAAiB,YAAalC,KAAKwH,oBAC3CxH,KAAKyH,UAAUE,QAAQ3H,KAAKb,GAAI,CAC9ByI,WAAW,EACXC,SAAS,EACTC,gBAAiB,CAAC,gBAAiB,UACnCC,YAAY,EACZC,mBAAmB,GAEvB,CACA,OAAAC,GAC2BjI,KAAKb,GH3N7ByC,oBAAoB,UAAW5C,GEKpC,SAAyBG,GACvB,MAAMsD,EAAcvB,EAAkB/B,EAAG6B,IACrCyB,IACFA,EAAYF,8BACLrB,EAAkB/B,EAAG6B,IAEhC,CCiNI,CAA4BhB,KAAKb,IACjCa,KAAKb,GAAGyC,oBAAoB,mBAAoB5B,KAAKmH,kBACrDnH,KAAKb,GAAGyC,oBAAoB,oBAAqB5B,KAAKoH,kBACtDpH,KAAKb,GAAGyC,oBAAoB,iBAAkB5B,KAAKmH,kBACnDnH,KAAKb,GAAGyC,oBAAoB,mBAAoB5B,KAAKoH,kBACrDpH,KAAKb,GAAGyC,oBAAoB,cAAe5B,KAAKqH,kBAChDrH,KAAKb,GAAGyC,oBAAoB,aAAc5B,KAAKsH,iBAC/CtH,KAAKb,GAAGyC,oBAAoB,QAAS5B,KAAKuH,gBAC1CvH,KAAKb,GAAGyC,oBAAoB,YAAa5B,KAAKwH,oBAC9CxH,KAAKyH,UAAUS,YACjB,EAEF,SAASC,EAAahJ,EAAIqH,EAAcC,GACtC,MAAMS,EAAQ,IAAIN,EAAsBzH,EAAIqH,EAAcC,GAC1D,OAAO,IAAIQ,EAAkB9H,EAAI+H,EACnC,CCxRA,MAAM,EAAiB,CACrBtE,SAAU,cACVC,UAAW,UACXE,MAAM,EACNJ,KAAM,QAER,SAASyF,EAAgBhF,EAAOiF,GAC9BjF,EAAMkF,SAAQ,SAASnJ,EAAIsB,GACzBtB,EAAG8B,aAAa,WAAYR,IAAM4H,EAAa,IAAM,KACvD,GACF,CACA,SAASE,EAAYtJ,GACnBmJ,EAAgBnJ,EAAEY,OAAOuD,MAAOnE,EAAEY,OAAOkG,SACzC/F,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,qBAAsB,CAAEK,OAAQZ,EAAEY,SAC3E,CACA,SAAS2I,EAAcvJ,GACrB,MAAMmE,EAAQpD,KAAKoD,MACbqF,EAAWrF,EAAMnE,EAAEY,OAAOiG,WAC1B4C,EAAStF,EAAMnE,EAAEY,OAAOkG,SAC1B0C,GACFA,EAASxH,aAAa,WAAY,MAEhCyH,IACFA,EAAOzH,aAAa,WAAY,KAChCyH,EAAOC,SAET3I,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,uBAAwB,CAAEK,OAAQZ,EAAEY,SAC7E,CACA,SAAS+I,EAAa3J,GACpBmJ,EAAgBpI,KAAKoD,MAAOnE,EAAEY,OAAOkG,SACrC/F,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,sBAAuB,CAAEK,OAAQZ,EAAEY,SAC5E,CACA,SAASgJ,EAAgB5J,GACvBmJ,EAAgBpI,KAAKoD,MAAOnE,EAAEY,OAAOkG,SACrC/F,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,yBAA0B,CAAEK,OAAQZ,EAAEY,SAC/E,CACA,MAAMiJ,EACJ,WAAA1G,CAAYjD,GACVa,KAAK4E,IAAMzF,EACXa,KAAK+I,oBAAsBF,EAAgBvG,KAAKtC,MAChDA,KAAKgJ,kBAAoBR,EAAclG,KAAKtC,MAC5CA,KAAKiJ,gBAAkBV,EAAYjG,KAAKtC,MACxCA,KAAKkJ,iBAAmBN,EAAatG,KAAKtC,MAC1CA,KAAK4E,IAAI1C,iBAAiB,0BAA2BlC,KAAK+I,qBAC1D/I,KAAK4E,IAAI1C,iBAAiB,wBAAyBlC,KAAKgJ,mBACxDhJ,KAAK4E,IAAI1C,iBAAiB,sBAAuBlC,KAAKiJ,iBACtDjJ,KAAK4E,IAAI1C,iBAAiB,uBAAwBlC,KAAKkJ,iBACzD,CACA,OAAAjB,GACEjI,KAAK4E,IAAIhD,oBAAoB,0BAA2B5B,KAAK+I,qBAC7D/I,KAAK4E,IAAIhD,oBAAoB,wBAAyB5B,KAAKgJ,mBAC3DhJ,KAAK4E,IAAIhD,oBAAoB,sBAAuB5B,KAAKiJ,iBACzDjJ,KAAK4E,IAAIhD,oBAAoB,uBAAwB5B,KAAKkJ,iBAC5D,EAEF,MAAMC,UAA6BL,EACjC,WAAA1G,CAAYjD,EAAIqH,EAAcC,GAC5BI,MAAM1H,GACNa,KAAKoJ,SAAW1C,OAAOC,OAAO,CAAC,EAAG,EAAgBF,GAClDzG,KAAKwF,cAAgBgB,EACrBxG,KAAKqJ,mBAAqB,EAA+BlK,EAAIqH,EAAc,CACzE5D,cAAkC,IAAxB5C,KAAKoJ,SAAS/F,MAAmBrD,KAAKoJ,SAAS/F,MAAQrD,KAAKoJ,SAASxG,SAC/EC,UAAW7C,KAAKoJ,SAASvG,UACzBE,KAAM/C,KAAKoJ,SAASrG,KACpBJ,KAAM3C,KAAKoJ,SAASzG,MAExB,CACA,SAAIU,GACF,OAAOrD,KAAKqJ,mBAAmBnC,MAAM7D,KACvC,CACA,SAAIA,CAAMiG,GACRtJ,KAAKqJ,mBAAmBnC,MAAM7D,MAAQiG,CACxC,CACA,QAAIvG,CAAKwG,GACPvJ,KAAKqJ,mBAAmBnC,MAAM9C,QAAQrB,KAAOwG,CAC/C,CACA,eAAInD,GACF,OAAOpG,KAAKqJ,mBAAmBnC,MAAMd,WACvC,CACA,SAAIhD,GACF,OAAOpD,KAAKqJ,mBAAmBnC,MAAM9D,KACvC,CACA,KAAAwC,GACE5F,KAAKqJ,mBAAmBnC,MAAMtB,OAChC,CACA,OAAAqC,GACEpB,MAAMoB,UACNjI,KAAKqJ,mBAAmBpB,SAC1B,EAEF,SAAS,EAAa9I,EAAIqH,EAAcC,GACtC,OAAO,IAAI0C,EAAqBhK,EAAIqH,EAAcC,EACpD,CC7FA,MAaM+C,EAbkB,CACtB,UACA,aACA,yBACA,QACA,SACA,wBACA,SACA,yBACA,2BACA,cACA,sBAE0CC,OAC5C,SAAS,EAAYtK,EAAIuK,GAAe,EAAOC,GAC7C,GAAIA,EAAU,CACZ,MAAMC,EAAUC,uBAAsB,KACpCF,EAASG,EAAc3K,EAAIuK,GAAc,IAE3C,MAAO,KACLK,qBAAqBH,EAAQ,CAEjC,CACA,OAAOE,EAAc3K,EAAIuK,EAC3B,CACA,SAASI,EAAc3K,EAAIuK,GAAe,GACxC,IAAIM,EAAeC,MAAMC,UAAUtK,MAAMuK,KAAKhL,EAAGkF,iBAAiBmF,IASlE,OARAQ,EAAeA,EAAapG,QAAO,SAASwG,GAC1C,MAAwD,SAAjDzI,OAAO0I,iBAAiBD,GAAaE,OAC9C,KACqB,IAAjBZ,IACFM,EAAeA,EAAapG,QAAO,SAASwG,GAC1C,MAAgD,OAAzCA,EAAYlH,aAAa,WAClC,KAEK8G,CACT,CCjCA,MAAM,EAAiB,CACrBO,yBAAyB,EACzBC,cAAc,EACdC,cAAc,EACdC,oBAAoB,EACpBC,oBAAoB,EACpBC,oBAAoB,EACpBC,gBAAiB,qBACjBC,cAAe,KACfC,eAAe,EACfC,eAAe,EACfC,eAAe,EACfC,gBAAiB,KACjBC,aAAc,kBACdC,uBAAuB,GAEzB,SAASC,EAAcpM,GACH,KAAdA,EAAEqM,SAAgC,KAAdrM,EAAEqM,UACxBtL,KAAKuL,oBAAqB,GAEV,KAAdtM,EAAEqM,UAAyD,IAAvCtL,KAAKoE,QAAQgH,uBACnCpL,KAAKwL,OAAOC,OAEhB,CACA,SAASC,IACP1L,KAAK2L,iBAAkB,CACzB,CACA,SAASC,IACP5L,KAAK6L,iCAAmC7L,KAAKuL,mBAC7CvL,KAAK8L,8BAAgC9L,KAAK2L,gBAC1C3L,KAAK+L,UAAY/L,KAAK+L,QACxB,CACA,SAASC,IACPhM,KAAKiM,0BAA2B,EAChCjM,KAAK+L,UAAW,CAClB,CACA,SAASG,IACPC,aAAanM,KAAKoM,YAClBpM,KAAKqM,0BAA2B,EAChCrM,KAAK+L,UAAW,CAClB,CACA,SAAS,IACP/L,KAAK+L,UAAW,CAClB,CACA,SAASO,IACPH,aAAanM,KAAKoM,YAClBpM,KAAKoM,WAAaG,YAAW,KAC3BvM,KAAK+L,UAAW,CAAK,GACpB,IACL,CACA,SAASS,EAAiBvN,IACW,IAA/Be,KAAKb,GAAGsC,SAASxC,EAAEuC,UACrBxB,KAAK+L,UAAW,EAEpB,CACA,SAASU,KACPzM,KAAK0M,eAAgB,CACvB,CACA,SAASC,KACP3M,KAAK0M,eAAgB,CACvB,CACA,SAASE,GAAoB3N,IACA,IAAvBe,KAAK0M,gBACP1M,KAAK0M,eAAgB,GACc,IAA/B1M,KAAKb,GAAGsC,SAASxC,EAAEuC,UACrBxB,KAAK+L,UAAW,GAGtB,CAgBA,MAAM,GACJ,WAAA3J,CAAYjD,EAAIsH,GACdzG,KAAKoE,QAAUsC,OAAOC,OAAO,CAAC,EAAG,EAAgBF,GACjDzG,KAAKb,GAAKA,EACVa,KAAKwL,OAASrM,EAAG0N,cAAc7M,KAAKoE,QAAQ+G,cAC5CnL,KAAK8M,UAAY3N,EAAG0N,cAAc7M,KAAKoE,QAAQyG,iBAC/C,EAAyB7K,KAAKb,IAC9Ba,KAAK+M,qBAAuB1B,EAAc/I,KAAKtC,MAC/CA,KAAKgN,uBAAyBtB,EAAgBpJ,KAAKtC,MACnDA,KAAKiN,uBAAyBT,EAAiBlK,KAAKtC,MACpDA,KAAKkN,4BAA8BT,GAAsBnK,KAAKtC,MAC9DA,KAAKmN,2BAA6BR,GAAqBrK,KAAKtC,MAC5DA,KAAKoN,0BAA4BR,GAAoBtK,KAAKtC,MAC1DA,KAAKqN,mBAAqBzB,EAAYtJ,KAAKtC,MAC3CA,KAAKsN,mBAAqBtB,EAAY1J,KAAKtC,MAC3CA,KAAKuN,mBAAqBrB,EAAY5J,KAAKtC,MAC3CA,KAAKwH,mBAAqB,EAAYlF,KAAKtC,MAC3CA,KAAKwN,oBAAsBlB,EAAahK,KAAKtC,MACK,OAA9CA,KAAKwL,OAAOtI,aAAa,kBAC3BlD,KAAKwL,OAAOvK,aAAa,gBAAiB,UAEV,IAA9BjB,KAAKoE,QAAQoG,eACf,EAAOxK,KAAKb,GAAI,YAChBa,KAAK8M,UAAU9L,GAAKhB,KAAK8M,UAAU9L,IAAM,GAAGhB,KAAKb,GAAG6B,aACpDhB,KAAKwL,OAAOvK,aAAa,gBAAiBjB,KAAK8M,UAAU9L,KAE3DhB,KAAK+K,cAAgB/K,KAAKoE,QAAQ2G,cAClC/K,KAAKgL,cAAgBhL,KAAKoE,QAAQ4G,cAClChL,KAAKiL,cAAgBjL,KAAKoE,QAAQ6G,eACA,IAA9BjL,KAAKoE,QAAQqG,eACfzK,KAAK4K,mBAAqB5K,KAAKoE,QAAQwG,mBACvC5K,KAAK0K,mBAAqB1K,KAAKoE,QAAQsG,mBACvC1K,KAAK2K,mBAAqB3K,KAAKoE,QAAQuG,mBAE3C,CACA,iBAAII,CAAc0C,IACH,IAATA,GACFzN,KAAKwL,OAAOtJ,iBAAiB,UAAWlC,KAAK+M,sBAC7C/M,KAAKwL,OAAOtJ,iBAAiB,YAAalC,KAAKgN,wBAC/ChN,KAAKwL,OAAOtJ,iBAAiB,QAASlC,KAAKqN,qBACT,IAA9BrN,KAAKoE,QAAQqG,eACfzK,KAAK4K,oBAAqB,EAC1B5K,KAAK0K,oBAAqB,KAG5B1K,KAAKwL,OAAO5J,oBAAoB,QAAS5B,KAAKqN,oBAC9CrN,KAAKwL,OAAO5J,oBAAoB,YAAa5B,KAAKgN,wBAClDhN,KAAKwL,OAAO5J,oBAAoB,UAAW5B,KAAK+M,sBAEpD,CACA,iBAAI/B,CAAcyC,IACH,IAATA,GACFzN,KAAKwL,OAAOtJ,iBAAiB,QAASlC,KAAKsN,qBACT,IAA9BtN,KAAKoE,QAAQqG,eACfzK,KAAK4K,oBAAqB,EAC1B5K,KAAK0K,oBAAqB,IAG5B1K,KAAKwL,OAAO5J,oBAAoB,QAAS5B,KAAKsN,mBAElD,CACA,iBAAIrC,CAAcwC,IACH,IAATA,GACFzN,KAAKwL,OAAOtJ,iBAAiB,aAAclC,KAAKuN,oBAChDvN,KAAK8M,UAAU5K,iBAAiB,aAAclC,KAAKuN,qBACjB,IAA9BvN,KAAKoE,QAAQqG,eACfzK,KAAK2K,oBAAqB,KAG5B3K,KAAKwL,OAAO5J,oBAAoB,aAAc5B,KAAKuN,oBACnDvN,KAAK8M,UAAUlL,oBAAoB,aAAc5B,KAAKuN,oBAE1D,CACA,sBAAI3C,CAAmB6C,IACR,IAATA,GACF3L,SAASI,iBAAiB,QAASlC,KAAKiN,wBACxCnL,SAASI,iBAAiB,aAAclC,KAAKkN,6BAC7CpL,SAASI,iBAAiB,YAAalC,KAAKmN,4BAC5CrL,SAASI,iBAAiB,WAAYlC,KAAKoN,6BAE3CtL,SAASF,oBAAoB,QAAS5B,KAAKiN,wBAC3CnL,SAASF,oBAAoB,aAAc5B,KAAKkN,6BAChDpL,SAASF,oBAAoB,YAAa5B,KAAKmN,4BAC/CrL,SAASF,oBAAoB,WAAY5B,KAAKoN,2BAElD,CACA,sBAAI1C,CAAmB+C,IACR,IAATA,EACFzN,KAAKb,GAAG+C,iBAAiB,YAAalC,KAAKwH,oBAE3CxH,KAAKb,GAAGyC,oBAAoB,YAAa5B,KAAKwH,mBAElD,CACA,sBAAImD,CAAmB8C,IACR,IAATA,GACFzN,KAAKb,GAAG+C,iBAAiB,aAAclC,KAAKwN,qBAC5CxN,KAAK8M,UAAU5K,iBAAiB,aAAclC,KAAKwN,uBAEnDxN,KAAKb,GAAGyC,oBAAoB,aAAc5B,KAAKwN,qBAC/CxN,KAAK8M,UAAUlL,oBAAoB,aAAc5B,KAAKwN,qBAE1D,CACA,YAAIzB,GACF,MAAqD,SAA9C/L,KAAKwL,OAAOtI,aAAa,gBAClC,CACA,YAAI6I,CAAS0B,IACE,IAATA,IAAmC,IAAlBzN,KAAK+L,WACxB/L,KAAKwL,OAAOvK,aAAa,gBAAiB,QACtCjB,KAAKoE,QAAQ0G,eACf9K,KAAKb,GAAGuO,UAAUC,IAAI3N,KAAKoE,QAAQ0G,gBAEjC9K,KAAK6L,kCAAoC7L,KAAK8L,+BAAiC9L,KAAKoE,QAAQmG,0BA9HtG,SAAqBW,EAAiB4B,GACpC,GAAwB,YAApB5B,EACF4B,EAAU7L,aAAa,WAAY,MACnC6L,EAAUnE,aACL,GAAwB,cAApBuC,EACT,EAAW4B,GAAW,GAAGnE,aACpB,GAAwB,gBAApBuC,EACT,EAAW4B,GAAW,GAAM,GAAGnE,aAC1B,GAAwB,OAApBuC,EAA0B,CACnC,MAAM/L,EAAK2N,EAAUD,cAAc,IAAI3B,KACnC/L,GACFA,EAAGwJ,OAEP,CACF,CAiHQiF,CAAY5N,KAAKoE,QAAQ8G,gBAAiBlL,KAAK8M,WAEjD9M,KAAKb,GAAGI,cAAc,IAAIC,YAAY,kBAAmB,CAAEM,SAAS,EAAMD,OAAQG,KAAK8M,eAE5E,IAATW,IAAoC,IAAlBzN,KAAK+L,WACzB/L,KAAKwL,OAAOvK,aAAa,gBAAiB,SACtCjB,KAAKoE,QAAQ0G,eACf9K,KAAKb,GAAGuO,UAAUG,OAAO7N,KAAKoE,QAAQ0G,eAExC9K,KAAKb,GAAGI,cAAc,IAAIC,YAAY,oBAAqB,CAAEM,SAAS,EAAMD,OAAQG,KAAK8M,cAE3F9M,KAAK6L,kCAAmC,EACxC7L,KAAK8L,+BAAgC,EACrC9L,KAAKiM,0BAA2B,EAChCjM,KAAKqM,0BAA2B,EAChCrM,KAAKuL,oBAAqB,EAC1BvL,KAAK2L,iBAAkB,CACzB,CACA,KAAAmC,IAC0B,IAApB9N,KAAK+N,aACP/N,KAAK+K,eAAgB,EACrB/K,KAAKgL,eAAgB,EACrBhL,KAAKiL,eAAgB,EACrBjL,KAAK4K,oBAAqB,EAC1B5K,KAAK0K,oBAAqB,EAC1B1K,KAAK2K,oBAAqB,EAE9B,CACA,OAAA1C,GACEjI,KAAK8N,QACL9N,KAAK+N,YAAa,EAClB/N,KAAK+M,qBAAuB,KAC5B/M,KAAKgN,uBAAyB,KAC9BhN,KAAKiN,uBAAyB,KAC9BjN,KAAKkN,4BAA8B,KACnClN,KAAKmN,2BAA6B,KAClCnN,KAAKoN,0BAA4B,KACjCpN,KAAKqN,mBAAqB,KAC1BrN,KAAKsN,mBAAqB,KAC1BtN,KAAKuN,mBAAqB,KAC1BvN,KAAKwH,mBAAqB,KAC1BxH,KAAKwN,oBAAsB,IAC7B,ECjPF,MAAM,GAAiB,CACrBQ,4BAA6B,iCAC7BC,2BAA4B,gCAC5BC,0BAA2B,+BAC3BC,4BAA6B,iCAC7BC,6BAA8B,kCAC9BC,4BAA6B,CAC3B,qBACA,qBACA,qBACA,mBACA,uBAWJ,SAASC,GAAeC,EAAetK,GACrC,GAAIuK,GAASD,GAAgB,CAC3BA,EAAcE,MAAM,aAAe,GACnC,MAAMC,EAAcH,EAAcI,YAClCJ,EAAc1B,cAAc,UAAU+B,KAAO3K,GACxCA,GAASyK,EAAcH,EAAcI,cACxCJ,EAAcE,MAAM,aAAe,GAAGC,MAE1C,MAAWzK,EACTsK,EAActN,aAAa,cAAegD,GAE1CsK,EAAcM,gBAAgB,cAElC,CAWA,SAAS,KACP,MAAMC,EAAeC,GAAU/O,KAAKuO,eACpCvO,KAAKgP,YAlCP,SAAwBT,GACtB,GAAIC,GAASD,GAAgB,CAC3B,MAAMU,EAAcV,EAAc1B,cAAc,UAChD,OAAQoC,EAAYhL,MAA2B,KAAnBgL,EAAYL,IAC1C,CAAO,GAAIL,EAAcW,aAAa,eACpC,OAAOX,EAAcrL,aAAa,cAEtC,CA2BqBiM,CAAenP,KAAKuO,gBAAkBvO,KAAKgP,YAC9D,MAAMI,EAbR,SAA6Bb,GAC3B,GAAIC,GAASD,GAAgB,CAC3B,MAAMU,EAAcV,EAAc1B,cAAc,UAChD,GAAMoC,EAAYhL,MAChB,OAEF,QAASgL,EAAYL,IACvB,CACA,OAAOL,EAAcW,aAAa,cACpC,CAI2BG,CAAoBrP,KAAKuO,cAAevO,KAAKgP,aAChEhP,KAAKgP,aAAeF,IAAiBM,EACzCd,GAAetO,KAAKuO,cAAevO,KAAKgP,cAC9BF,GAAgBM,GAC1Bd,GAAetO,KAAKuO,cAAe,IAEjCe,GAAUtP,KAAKuO,eACjBvO,KAAKuP,QAAQ7B,UAAUC,IAAI3N,KAAKoE,QAAQ+J,6BAExCnO,KAAKuP,QAAQ7B,UAAUG,OAAO7N,KAAKoE,QAAQ+J,6BAE9BnO,KAAKuO,cAgBPW,aAAa,YAfxBlP,KAAKuP,QAAQ7B,UAAUC,IAAI3N,KAAKoE,QAAQgK,8BAExCpO,KAAKuP,QAAQ7B,UAAUG,OAAO7N,KAAKoE,QAAQgK,6BAE/C,CACA,SAASW,GAAUR,GACjB,OAAOzM,SAAS0N,gBAAkBjB,CACpC,CACA,SAASC,GAASD,GAChB,MAAiC,WAA1BA,EAAckB,OACvB,CACA,SAASC,GAASC,GAChB,OAAOA,EAAM1L,MAAMX,OAAS,CAC9B,CAIA,SAASgM,GAAUK,GACjB,OAAOA,EAAMT,aAAa,iBAA0D,SAAvCS,EAAMzM,aAAa,eAClE,CACA,SAAS0M,GAAaD,EAAOE,GAC3B,IAAKrB,GAASmB,GAAQ,CACpB,MAAMG,EAAUzF,iBAAiBsF,GAAOI,gBACxC,OAAO9F,MAAM+F,QAAQH,IAAUA,EAAMhL,SAASiL,GAAWA,IAAYD,CACvE,CACA,OAAO,CACT,CACA,SAASI,KACFP,GAAS1P,KAAKuO,gBACjBvO,KAAKuP,QAAQ7B,UAAUC,IAAI3N,KAAKoE,QAAQ6J,4BAE1CjO,KAAKuP,QAAQ7B,UAAUG,OAAO7N,KAAKoE,QAAQ8J,2BACvCoB,GAAUtP,KAAKuO,gBACjBvO,KAAKuP,QAAQ7B,UAAUC,IAAI3N,KAAKoE,QAAQ+J,6BAE1CG,GAAetO,KAAKuO,cAAe,GACrC,CACA,SAAS2B,KACPlQ,KAAKuP,QAAQ7B,UAAUC,IAAI3N,KAAKoE,QAAQ4J,6BACxChO,KAAKuP,QAAQ7B,UAAUC,IAAI3N,KAAKoE,QAAQ8J,2BACxClO,KAAKuP,QAAQ7B,UAAUG,OAAO7N,KAAKoE,QAAQ6J,4BAC3CjO,KAAKuP,QAAQ7B,UAAUG,OAAO7N,KAAKoE,QAAQ+J,6BACvCnO,KAAKgP,aACPV,GAAetO,KAAKuO,cAAevO,KAAKgP,YAE5C,CACA,MAAMmB,GACJ,WAAA/N,CAAYjD,EAAIiR,GACdpQ,KAAKoE,QAAUsC,OAAOC,OAAO,CAAC,EAAG,GAAgByJ,GACjDpQ,KAAKyH,UAAY,IAAIC,iBAAiB,GAAWpF,KAAKtC,OACtDA,KAAKqQ,OAASlR,EACda,KAAKuP,QAAUvP,KAAKqQ,OAAOxD,cAAc,SACzC7M,KAAKuO,cAAgBvO,KAAKqQ,OAAOxD,cAAc,yBAC/C7M,KAAKsQ,gBAAkBL,GAAQ3N,KAAKtC,MACpCA,KAAKuQ,iBAAmBL,GAAS5N,KAAKtC,MACtCA,KAAKuO,cAAcrM,iBAAiB,OAAQlC,KAAKsQ,iBACjDtQ,KAAKuO,cAAcrM,iBAAiB,QAASlC,KAAKuQ,kBAC7Cb,GAAS1P,KAAKuO,gBAAmBqB,GAAa5P,KAAKuO,cAAevO,KAAKoE,QAAQiK,6BAExEG,GAASxO,KAAKuO,gBACxBvO,KAAKuP,QAAQ7B,UAAUG,OAAO7N,KAAKoE,QAAQ6J,4BAF3CjO,KAAKuP,QAAQ7B,UAAUC,IAAI3N,KAAKoE,QAAQ6J,4BAItCc,GAAU/O,KAAKuO,iBACjBvO,KAAKuP,QAAQ7B,UAAUC,IAAI3N,KAAKoE,QAAQ8J,2BACxClO,KAAKuP,QAAQ7B,UAAUG,OAAO7N,KAAKoE,QAAQ6J,6BAE7C,GAAW9D,KAAKnK,MAChBA,KAAKyH,UAAUE,QAAQ3H,KAAKuO,cAAe,CACzC3G,UAAW4G,GAASxO,KAAKuO,eACzB1G,QAAS2G,GAASxO,KAAKuO,eACvBzG,gBAAiB,CAAC,WAAY,eAAgB,cAAe,SAC7DC,YAAY,GAEhB,CACA,OAAAE,GACEjI,KAAKyH,UAAUS,YACjB,CACA,OAAAsI,GACMd,GAAS1P,KAAKuO,gBAAkBC,GAASxO,KAAKuO,gBAAkBqB,GAAa5P,KAAKuO,cAAevO,KAAKoE,QAAQiK,6BAChHrO,KAAKuP,QAAQ7B,UAAUG,OAAO7N,KAAKoE,QAAQ6J,4BAE3CjO,KAAKuP,QAAQ7B,UAAUC,IAAI3N,KAAKoE,QAAQ6J,4BAEtCc,GAAU/O,KAAKuO,iBACjBvO,KAAKuP,QAAQ7B,UAAUC,IAAI3N,KAAKoE,QAAQ8J,2BACxClO,KAAKuP,QAAQ7B,UAAUG,OAAO7N,KAAKoE,QAAQ6J,4BAE/C,ECpJF,SAAS,GAAUhP,GACbA,EAAEqM,SAAW,IAAMrM,EAAEqM,SAAW,IAClCrM,EAAEwR,gBAEN,CACA,SAAS,GAAItR,GACXA,EAAG+C,iBAAiB,UAAW,GACjC,CCLA,MAAM,GAAiB,CACrBwO,0BAA2B,oBAC3B9N,SAAU,OACVC,UAAW,OACX8N,YAAY,EACZhO,KAAM,OACNI,MAAM,GAER,SAAS,GAAY9D,GACnB,MAAM,MAAEmE,EAAK,QAAE2C,GAAY9G,EAAEY,OACvB+Q,EAASxN,EAAM2C,GACjB6K,IACFA,EAAOlD,UAAUC,IAAI3N,KAAKoJ,SAASsH,2BACnC1Q,KAAK6Q,SAAS5P,aAAa,wBAAyB2P,EAAO5P,KAE7DhB,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,uBAAwB,CAAEK,OAAQZ,EAAEY,SAC7E,CACA,SAAS,GAAcZ,GACrB,MAAM,UAAE6G,EAAS,QAAEC,GAAY9G,EAAEY,OAC3B4I,EAAWzI,KAAKoD,MAAM0C,GACtB4C,EAAS1I,KAAKoD,MAAM2C,GACtB0C,GACFA,EAASiF,UAAUG,OAAO7N,KAAKoJ,SAASsH,2BAEtChI,IACFA,EAAOgF,UAAUC,IAAI3N,KAAKoJ,SAASsH,2BACnC1Q,KAAK6Q,SAAS5P,aAAa,wBAAyByH,EAAO1H,IACvDhB,KAAKoJ,SAASuH,YAAc3Q,KAAK8Q,eACnC9Q,KAAK8Q,aAAaC,UAAYrI,EAAOsI,UAAYhR,KAAK8Q,aAAaG,aAAe,IAGtFjR,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,yBAA0B,CAAEK,OAAQZ,EAAEY,SAC/E,CACA,SAAS,GAAaZ,GACpB,MAAM8G,EAAU9G,EAAEY,OAAOkG,QACnBmL,EAAkBlR,KAAKoJ,SAASsH,0BAItC,GAHA1Q,KAAKoD,MAAMkF,SAAQ,SAASnJ,GAC1BA,EAAGuO,UAAUG,OAAOqD,EACtB,IACgB,OAAZnL,IAAiC,IAAbA,EAAgB,CACtC,MAAM6K,EAAS5Q,KAAKoD,MAAM2C,GAC1B6K,EAAOlD,UAAUC,IAAIuD,GACrBlR,KAAK6Q,SAAS5P,aAAa,wBAAyB2P,EAAO5P,GAC7D,MACEhB,KAAK6Q,SAAShC,gBAAgB,yBAEhC7O,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,wBAAyB,CAAEK,OAAQZ,EAAEY,SAC9E,CACA,SAAS,GAAgBZ,GACvB,MAAM,QAAE8G,GAAY9G,EAAEY,OAChB6Q,EAA4B1Q,KAAKoJ,SAASsH,0BAChD1Q,KAAKoD,MAAMkF,SAAQ,SAAS7E,EAAMJ,GAChC,EAAOI,GACHJ,IAAU0C,EACZtC,EAAKiK,UAAUG,OAAO6C,GAEtBjN,EAAKiK,UAAUC,IAAI+C,EAEvB,IACA1Q,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,2BAA4B,CAAEK,OAAQZ,EAAEY,SACjF,CACA,MAAMsR,GACJ,WAAA/O,CAAYjD,GACVa,KAAK4E,IAAMzF,EACXa,KAAK+I,oBAAsB,GAAgBzG,KAAKtC,MAChDA,KAAKgJ,kBAAoB,GAAc1G,KAAKtC,MAC5CA,KAAKkJ,iBAAmB,GAAa5G,KAAKtC,MAC1CA,KAAKiJ,gBAAkB,GAAY3G,KAAKtC,MACxCA,KAAK4E,IAAI1C,iBAAiB,0BAA2BlC,KAAK+I,qBAC1D/I,KAAK4E,IAAI1C,iBAAiB,wBAAyBlC,KAAKgJ,mBACxDhJ,KAAK4E,IAAI1C,iBAAiB,uBAAwBlC,KAAKkJ,kBACvDlJ,KAAK4E,IAAI1C,iBAAiB,sBAAuBlC,KAAKiJ,gBACxD,CACA,OAAAhB,GACEjI,KAAK4E,IAAIhD,oBAAoB,0BAA2B5B,KAAK+I,qBAC7D/I,KAAK4E,IAAIhD,oBAAoB,wBAAyB5B,KAAKgJ,mBAC3DhJ,KAAK4E,IAAIhD,oBAAoB,uBAAwB5B,KAAKkJ,kBAC1DlJ,KAAK4E,IAAIhD,oBAAoB,sBAAuB5B,KAAKiJ,gBAC3D,EAEF,MAAMmI,WAA+BD,GACnC,WAAA/O,CAAYjD,EAAIkS,EAASC,EAAiB9K,EAAcC,GACtDI,MAAM1H,GACNa,KAAKoJ,SAAW1C,OAAOC,OAAO,CAAC,EAAG,GAAgBF,GAClDzG,KAAK6Q,SAAWQ,EAChBrR,KAAKuR,iBAAmBD,EACxBtR,KAAKwF,cAAgBgB,EACrB,EAAOxG,KAAKuR,kBACRvR,KAAKuR,mBAAqBvR,KAAK6Q,UACjCQ,EAAQpQ,aAAa,YAAajB,KAAKuR,iBAAiBvQ,IAE1DhB,KAAKqJ,mBAAqB,EAA+BlK,EAAIqH,EAAc,CACzE5D,SAAU5C,KAAKoJ,SAASxG,SACxBC,UAAW7C,KAAKoJ,SAASvG,UACzBF,KAAM3C,KAAKoJ,SAASzG,KACpBG,yBAA0B9C,KAAKoJ,SAAStG,yBACxCC,KAAM/C,KAAKoJ,SAASrG,OAEtB/C,KAAKoD,MAAMkF,SAAQ,SAASsI,GAC1B,EAAOA,EACT,GACF,CACA,SAAIvN,GACF,OAAOrD,KAAKqJ,mBAAmBnC,MAAM7D,KACvC,CACA,SAAIA,CAAMiG,GACRtJ,KAAKqJ,mBAAmBnC,MAAM7D,MAAQiG,CACxC,CACA,KAAA1D,GACE5F,KAAKqJ,mBAAmBnC,MAAMtB,OAChC,CACA,eAAIQ,GACF,OAAOpG,KAAKqJ,mBAAmBnC,MAAMd,WACvC,CACA,SAAIhD,GACF,OAAOpD,KAAKqJ,mBAAmBnC,MAAM9D,KACvC,CACA,QAAIL,CAAKwG,GACPvJ,KAAKqJ,mBAAmBnC,MAAM9C,QAAQrB,KAAOwG,CAC/C,CACA,OAAAtB,GACEpB,MAAMoB,UACNjI,KAAKqJ,mBAAmBpB,SAC1B,EC3HF,MAAM,GAAiB,CACrByI,0BAA2B,0BAE3B9N,SAAU,4BACVC,UAAW,4BACX2O,YAAY,EAEZC,mBAAmB,EACnBC,iBAAkB,KAElBC,oBAAqB,KAErBC,aAAa,EAEbC,gBAAgB,EAEhBC,cAAe,mBAMjB,MAAM,GACJ,WAAA1P,CAAY2P,EAAUtL,GACpBzG,KAAKoJ,SAAW1C,OAAOC,OAAO,CAAC,EAAG,GAAgBF,GAClDzG,KAAKb,GAAK4S,EACV/R,KAAKgS,wBAA0BhS,KAAKoJ,SAASuI,qBAAuB3R,KAAKb,GACnC,YAAlC4S,EAAS7O,aAAa,QACxBlD,KAAKiS,WAAaF,EAElB/R,KAAKiS,WAAajS,KAAKb,GAAG0N,cAAc,kBAErC7M,KAAKoJ,SAASsI,kBAAiE,OAA7C1R,KAAKiS,WAAW/O,aAAa,aAClElD,KAAKiS,WAAWhR,aAAa,WAAY,KAE3C,GAAsBjB,KAAKb,IAC3Ba,KAAKkS,mBAAqBC,GAAW7P,KAAKtC,MAC1CA,KAAKoS,iBAAmBC,GAAS/P,KAAKtC,MACtCA,KAAKsS,kCAAoCC,GAA0BjQ,KAAKtC,MACxEA,KAAK+I,oBAAsByJ,GAAYlQ,KAAKtC,MAC5CA,KAAKb,GAAGuO,UAAUC,IAAI,eACjB3N,KAAKoJ,SAASqI,oBACjBzR,KAAKyS,kBAAoB,IAAI/K,iBAAiB1H,KAAK+I,qBACnD/I,KAAK0S,oBACL1S,KAAK2S,kBAEP3S,KAAK4S,kBD+ET,SAAsBzT,EAAIkS,EAASC,EAAiB9K,EAAcC,GAChE,OAAO,IAAI2K,GAAuBjS,EAAIkS,EAASC,EC5E3C,gBD4E0E7K,EAChF,CCjF6B,CACvBzG,KAAKgS,wBACLhS,KAAKoJ,SAASsI,kBAAoB1R,KAAKiS,WACvCjS,KAAKiS,WACL,EACA,CACEvB,0BAA2B1Q,KAAKoJ,SAASsH,0BACzC9N,SAAU5C,KAAKoJ,SAASxG,SACxBC,UAAW7C,KAAKoJ,SAASvG,UACzBF,KAAM,KAGZ,CACA,iBAAA+P,GACO1S,KAAKoJ,SAASqI,mBACjBzR,KAAKyS,kBAAkB9K,QAAQ3H,KAAKiS,WAAY,CAC9CnK,gBAAiB,CAAC,iBAClBC,YAAY,EACZH,WAAW,EACXC,SAAS,GAGf,CACA,mBAAAgL,GACO7S,KAAKoJ,SAASqI,mBACjBzR,KAAKyS,kBAAkBvK,YAE3B,CACA,cAAAyK,IAC0B,IAApB3S,KAAK+N,aACP/N,KAAKgS,wBAAwB9P,iBAAiB,yBAA0BlC,KAAKsS,mCAC7EtS,KAAKiS,WAAW/P,iBAAiB,UAAWlC,KAAKkS,oBACjDlS,KAAKiS,WAAW/P,iBAAiB,QAASlC,KAAKoS,kBAEnD,CACA,gBAAAU,GACE9S,KAAKiS,WAAWrQ,oBAAoB,UAAW5B,KAAKkS,oBACpDlS,KAAKiS,WAAWrQ,oBAAoB,QAAS5B,KAAKoS,kBAClDpS,KAAKgS,wBAAwBpQ,oBAAoB,yBAA0B5B,KAAKsS,kCAClF,CACA,SAAIjP,GACF,OAAOrD,KAAKoD,MAAMI,WAAWrE,GAA4C,SAArCA,EAAG+D,aAAa,kBACtD,CACA,SAAIE,GACF,OAAOpD,KAAK4S,kBAAkBxP,KAChC,CACA,MAAA2P,CAAO1P,GACLrD,KAAK6S,sBACL,MAAMjC,EAAS5Q,KAAKoD,MAAMC,GAC1B,GAAIuN,GAAmD,SAAzCA,EAAO1N,aAAa,iBAA6B,CAC7D,MAAM8P,EAAehT,KAAKoD,MAAMC,GAChC,IAAI4P,EAMJ,GALAD,EAAa/R,aAAa,gBAAiB,SACN,IAAjCjB,KAAKoJ,SAASyI,gBAChBmB,EAAa/R,aAAa,eAAgB,QAE5CgS,EAAcD,EAAaE,UACvBlT,KAAKoJ,SAAS0I,cAAe,CAC/B,MAAMA,EAAgBkB,EAAanG,cAAc7M,KAAKoJ,SAAS0I,eAC3DA,IACFmB,EAAcnB,EAAcoB,UAEhC,CACAlT,KAAKb,GAAGI,cACN,IAAIC,YAAY,wBAAyB,CACvCK,OAAQ,CACNV,GAAI6T,EACJG,YAAa9P,EACb4P,iBAIR,CACAjT,KAAK0S,mBACP,CACA,QAAAU,CAAS/P,GACPrD,KAAK6S,sBACL,MAAMjC,EAAS5Q,KAAKoD,MAAMC,GAC1B,GAAIuN,GAAmD,SAAzCA,EAAO1N,aAAa,iBAA6B,CAC7D,MAAM8P,EAAehT,KAAKoD,MAAMC,GAChC2P,EAAa/R,aAAa,gBAAiB,UACN,IAAjCjB,KAAKoJ,SAASyI,gBAChBmB,EAAa/R,aAAa,eAAgB,QAE9C,CACAjB,KAAK0S,mBACP,CACA,OAAAzK,GACEjI,KAAK+N,YAAa,EAClB/N,KAAK6S,sBACL7S,KAAK8S,mBACL9S,KAAKkS,mBAAqB,KAC1BlS,KAAKoS,iBAAmB,KACxBpS,KAAKsS,kCAAoC,KACzCtS,KAAK+I,oBAAsB,IAC7B,EAEF,SAASoJ,GAAWlT,GAClB,MAAMoU,EAAqBrT,KAAK4S,kBAAkBxM,YA7HpD,IAA2BkF,EACN,MADMA,EA8HHrM,EAAEqM,UA7Ha,KAAZA,GA6HiE,SAAtD+H,GAAoBnQ,aAAa,mBACnElD,KAAKoT,SAASpT,KAAKqD,OACnBrD,KAAK+S,OAAO/S,KAAK4S,kBAAkBvP,OAEvC,CACA,SAASgP,GAASpT,GAChB,MAAMqU,EAAOrU,EAAEuC,OAAO+D,QAAQ,iBACxBgO,EAAYvT,KAAKoD,MAAMO,QAAQ2P,GAC/BE,EAAyD,SAAvCF,EAAKpQ,aAAa,iBACqB,SAAvCoQ,EAAKpQ,aAAa,mBACW,IAA7BlD,KAAKoJ,SAASoI,aAA4C,IAApBgC,IAC5DxT,KAAKoT,SAASpT,KAAKqD,OACnBrD,KAAK+S,OAAOQ,GAEhB,CACA,SAAShB,GAA0BtT,GACjC,MAAM,UAAE6G,EAAS,QAAEC,GAAY9G,EAAEY,OACjC,IAAiC,IAA7BG,KAAKoJ,SAASoI,WAAqB,CACrC,MAAMiC,EAASzT,KAAKoD,MAAM0C,GACpBwN,EAAOtT,KAAKoD,MAAM2C,GACpB0N,GACFzT,KAAKoT,SAAStN,GAEZwN,GACFtT,KAAK+S,OAAOhN,EAEhB,CACF,CACA,SAASyM,GAAYkB,GACnB,IAAK,MAAMC,KAAYD,EACC,eAAlBC,EAASxN,MACXnG,KAAKb,GAAGI,cACN,IAAIC,YAAY,0BAA2B,CACzCK,OAAQ,CACNoG,cAAe0N,EAAS1N,iBAMpC,CCzLA,MAAM,GAAiB,CACrBuL,YAAY,EACZoC,gBAAiB,IACjBnC,mBAAmB,GAErB,MAAM,GACJ,WAAArP,CAAY2P,EAAUtL,GACpBzG,KAAKoJ,SAAW1C,OAAOC,OAAO,CAAC,EAAG,GAAgBF,GAClDzG,KAAK4E,IAAMmN,EACX/R,KAAK6T,SAAW7T,KAAK4E,IAAIiI,cAAc,SACvC7M,KAAKiS,WAAajS,KAAK4E,IAAIiI,cAAc,sBACzC7M,KAAK8T,kBAAoB9T,KAAK6T,SAAS3Q,aAAa,qBACpDlD,KAAK6T,SAAS5S,aAAa,eAAgB,OAC3CjB,KAAK6T,SAAS5S,aAAa,OAAQ,YACnCjB,KAAKiS,WAAWhP,QAAS,EACzBjD,KAAK+T,eAAiB,IAAI,GAAQ/T,KAAKiS,WAAY,CACjDvB,0BAA2B,2BAC3B7N,WAAY,EACZ2O,WAAYxR,KAAKoJ,SAASoI,WAC1BE,iBAAkB1R,KAAK6T,SACvBlC,oBAAqB3R,KAAK4E,MAE5B5E,KAAKgU,UAAY,IAAI,GAAShU,KAAK4E,IAAK,CACtCgG,oBAAoB,EACpBF,oBAAoB,EACpBG,gBAAiB,qBACjBC,cAAe,qBACfE,eAAe,EACfG,aAAc,UAEhBnL,KAAK+N,YAAa,EAClB/N,KAAKiU,sBAAwBC,GAAc5R,KAAKtC,MAChDA,KAAKmU,wBAA0BC,GAAgB9R,KAAKtC,MACpDA,KAAKqU,yCAA2CC,GAAiChS,KAAKtC,MACtFA,KAAKuU,0BAA4BC,GAAkBlS,KAAKtC,MACxDA,KAAKyU,wBAA0BC,GAAgBpS,KAAKtC,MACpDA,KAAK2U,wBAA0BC,GAAgBtS,KAAKtC,MACpDA,KAAK+I,oBAAsB,GAAYzG,KAAKtC,MAC5CA,KAAK4E,IAAI8I,UAAUC,IAAI,gBAClB3N,KAAKoJ,SAASqI,oBACjBzR,KAAKyS,kBAAoB,IAAI/K,iBAAiB1H,KAAK+I,qBACnD/I,KAAK0S,oBACL1S,KAAK2S,iBAET,CACA,WAAAkC,GACE7U,KAAK+T,eAAenB,kBAAkBhN,QACtC5F,KAAK+T,eAAe3Q,MAAMkF,SAASnJ,GAAOA,EAAG8D,QAAS,GACxD,CACA,iBAAAyP,GACO1S,KAAKoJ,SAASqI,mBACjBzR,KAAKyS,kBAAkB9K,QAAQ3H,KAAK6T,SAAU,CAC5C9L,YAAY,EACZH,WAAW,EACXC,SAAS,GAGf,CACA,mBAAAgL,GACO7S,KAAKoJ,SAASqI,mBACjBzR,KAAKyS,kBAAkBvK,YAE3B,CACA,cAAAyK,IAC0B,IAApB3S,KAAK+N,aACP/N,KAAKiS,WAAW/P,iBAAiB,QAASlC,KAAKmU,yBAC/CnU,KAAK+T,eAAe/B,wBAAwB9P,iBAC1C,yBACAlC,KAAKqU,0CAEPrU,KAAK6T,SAAS3R,iBAAiB,QAASlC,KAAKiU,uBAC7CjU,KAAK6T,SAAS3R,iBAAiB,UAAWlC,KAAKuU,2BAC/CvU,KAAK6T,SAAS3R,iBAAiB,QAASlC,KAAKyU,yBAC7CzU,KAAK6T,SAAS3R,iBAAiB,QAASlC,KAAK2U,yBAEjD,CACA,gBAAA7B,GACE9S,KAAKiS,WAAWrQ,oBAAoB,QAAS5B,KAAKmU,yBAClDnU,KAAK+T,eAAe/B,wBAAwBpQ,oBAC1C,yBACA5B,KAAKqU,0CAEPrU,KAAK6T,SAASjS,oBAAoB,QAAS5B,KAAKiU,uBAChDjU,KAAK6T,SAASjS,oBAAoB,UAAW5B,KAAKuU,2BAClDvU,KAAK6T,SAASjS,oBAAoB,QAAS5B,KAAKyU,yBAChDzU,KAAK6T,SAASjS,oBAAoB,QAAS5B,KAAK2U,wBAClD,CACA,OAAA1M,GACEjI,KAAK+N,YAAa,EAClB/N,KAAK6S,sBACL7S,KAAK8S,mBACL9S,KAAKiU,sBAAwB,KAC7BjU,KAAKmU,wBAA0B,KAC/BnU,KAAK8U,yCAA2C,KAChD9U,KAAKuU,0BAA4B,KACjCvU,KAAKyU,wBAA0B,KAC/BzU,KAAK2U,wBAA0B,KAC/B3U,KAAK+I,oBAAsB,IAC7B,EAEF,SAASmL,KACPlU,KAAK6U,aACP,CACA,SAASL,GAAkBvV,GAezB,GAdkB,KAAdA,EAAEqM,SAAgC,KAAdrM,EAAEqM,SACxBrM,EAAEwR,iBAEc,KAAdxR,EAAEqM,UAC4B,IAA5BtL,KAAKgU,UAAUjI,WACjB/L,KAAKgU,UAAUjI,UAAW,GAGZ,KAAd9M,EAAEqM,UAC4B,IAA5BtL,KAAKgU,UAAUjI,WACjB/L,KAAKgU,UAAUjI,UAAW,EAC1B/L,KAAK+T,eAAenB,kBAAkBhN,UAGT,IAA7B5F,KAAKoJ,SAASoI,YAAsC,KAAdvS,EAAEqM,SAAkBtL,KAAK6T,SAAS3Q,aAAa,yBAA0B,CACjHjE,EAAEwR,iBACF,MAAMsE,EAAS/U,KACfA,KAAK6T,SAAS5P,MAAQjE,KAAK+T,eAAe3Q,MAAMpD,KAAK+T,eAAenB,kBAAkBvP,OAAO6P,UAC7F8B,GAAqBhV,KAAK4E,IAAK5E,KAAK6T,SAAS5P,OAC7CjE,KAAK+T,eAAenB,kBAAkBhN,QACtC2G,YAAW,WACTwI,EAAOf,UAAUjI,UAAW,EACK,SAA7BgJ,EAAOjB,oBAC4B,IAAjCiB,EAAOlB,SAAS5P,MAAMX,OACxByR,EAAOF,cAEPI,GAAmBF,EAAOlB,SAAS5P,MAAO8Q,EAAOhB,eAAe3Q,OAGtE,GAAGpD,KAAKoJ,SAASwK,gBACnB,CACF,CACA,SAASgB,MACyB,IAA5B5U,KAAKgU,UAAUjI,WACjB/L,KAAKgU,UAAUjI,UAAW,EAE9B,CACA,SAAS2I,MACyB,IAA5B1U,KAAKgU,UAAUjI,WACjB/L,KAAKgU,UAAUjI,UAAW,GAEG,SAA3B/L,KAAK8T,oBACP9T,KAAK+T,eAAenB,kBAAkBhN,QACH,IAA/B5F,KAAK6T,SAAS5P,MAAMX,OACtBtD,KAAK6U,cAELI,GAAmBjV,KAAK6T,SAAS5P,MAAOjE,KAAK+T,eAAe3Q,OAGlE,CACA,SAASgR,GAAgBnV,GACvB,MAAM8V,EAAS/U,KACTgH,EAAU/H,EAAEuC,OAAO+D,QAAQ,iBAC3B2P,EAAYlV,KAAK+T,eAAe3Q,MAAMO,QAAQqD,GACpDmO,QAAQC,IAAIF,QACM,IAAdA,IACFlV,KAAK6T,SAAS5P,MAAQjE,KAAK+T,eAAe3Q,MAAM8R,GAAWhC,WAC1B,IAA7BlT,KAAKoJ,SAASoI,YAChBwD,GAAqBhV,KAAK4E,IAAK5E,KAAK6T,SAAS5P,OAE/CsI,YAAW,WACTwI,EAAOf,UAAUjI,UAAW,CAC9B,GAAG/L,KAAKoJ,SAASwK,iBAErB,CACA,SAASU,GAAiCrV,IACP,IAA7Be,KAAKoJ,SAASoI,aAChBxR,KAAK6T,SAAS5P,MAAQjE,KAAK+T,eAAe3Q,MAAMnE,EAAEY,OAAOkG,SAASmN,UAClE8B,GAAqBhV,KAAK4E,IAAK5E,KAAK6T,SAAS5P,OAEjD,CACA,SAAS,GAAYyP,GACnB,IAAK,MAAMC,KAAYD,EACC,eAAlBC,EAASxN,MACXnG,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,2BAA4B,CACjEK,OAAQ,CACNoG,cAAe0N,EAAS1N,iBAKlC,CACA,SAASgP,GAAmBhR,EAAOb,GACjC,MAAMiS,EAAWpR,EAAMX,OACjBgS,EAAerR,EAAMtE,cACrB4V,EAAenS,EAAMQ,QAAQzE,GAC1BA,EAAG+T,UAAUsC,OAAOC,UAAU,EAAGJ,GAAU1V,gBAAkB2V,IAEhEI,EAAiBtS,EAAMQ,QAAQzE,GAC5BA,EAAG+T,UAAUsC,OAAOC,UAAU,EAAGJ,GAAU1V,gBAAkB2V,IAEtEC,EAAajN,SAASnJ,GAAOA,EAAG8D,QAAS,IACzCyS,EAAepN,SAASnJ,GAAOA,EAAG8D,QAAS,GAC7C,CACA,SAAS+R,GAAqB7V,EAAI8E,GAChC9E,EAAGI,cAAc,IAAIC,YAAY,yBAA0B,CACzDK,OAAQ,CAAEoE,WAEd,CC5MA,MAAM,GAAiB,CACrBwN,mBAAmB,GAErB,MAAM,GACJ,WAAArP,CAAY2P,EAAU4D,EAAQlP,GAC5BzG,KAAKoJ,SAAW1C,OAAOC,OAAO,CAAC,EAAG,GAAgBF,GAClDzG,KAAK4E,IAAMmN,EACX/R,KAAK4E,IAAI3D,aAAa,gBAAiB,UACvCjB,KAAK4V,QAAUD,EACf3V,KAAKoS,iBAAmB,GAAS9P,KAAKtC,MACtCA,KAAK6V,uBAAyBC,GAAexT,KAAKtC,MAClDA,KAAK+I,oBAAsB,GAAYzG,KAAKtC,MAC5CA,KAAK4E,IAAI8I,UAAUC,IAAI,qBAClB3N,KAAKoJ,SAASqI,oBACjBzR,KAAKyS,kBAAoB,IAAI/K,iBAAiB1H,KAAK+I,qBACnD/I,KAAK0S,oBACL1S,KAAK2S,iBAET,CACA,iBAAAD,GACO1S,KAAKoJ,SAASqI,mBACjBzR,KAAKyS,kBAAkB9K,QAAQ3H,KAAK4E,IAAK,CACvCmD,YAAY,EACZH,WAAW,EACXC,SAAS,GAGf,CACA,mBAAAgL,GACO7S,KAAKoJ,SAASqI,mBACjBzR,KAAKyS,kBAAkBvK,YAE3B,CACA,cAAAyK,IAC0B,IAApB3S,KAAK+N,aACP/N,KAAK4E,IAAI1C,iBAAiB,QAASlC,KAAKoS,kBACxCpS,KAAK4V,QAAQhR,IAAI1C,iBAAiB,eAAgBlC,KAAK6V,wBAE3D,CACA,gBAAA/C,GACE9S,KAAK4E,IAAIhD,oBAAoB,SAC7B5B,KAAK4V,QAAQhR,IAAIhD,oBAAoB,eAAgB5B,KAAK6V,uBAC5D,CACA,OAAA5N,GACEjI,KAAK+N,YAAa,EAClB/N,KAAK6S,sBACL7S,KAAK8S,mBACL9S,KAAKoS,iBAAmB,KACxBpS,KAAK6V,uBAAyB,KAC9B7V,KAAK+I,oBAAsB,IAC7B,EAEF,SAAS,GAAY2K,GACnB,IAAK,MAAMC,KAAYD,EACC,eAAlBC,EAASxN,MACXnG,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,gCAAiC,CACtEK,OAAQ,CACNoG,cAAe0N,EAAS1N,iBAKlC,CACA,SAAS,KACPjG,KAAK4V,QAAQG,MACf,CACA,SAASD,MACoB,IAAvB9V,KAAK4V,QAAQI,OACfhW,KAAK4E,IAAI+D,OAEb,CCpEA,MAAM,GAAiB,CACrB6I,YAAY,EACZyE,oBAAqB,aACrBrC,gBAAiB,IACjBnC,mBAAmB,EACnByE,gBAAiB,2BACjBC,sBAAuB,uBACvBC,oBAAqB,8BACrBC,qBAAsB,+BACtBvE,cAAe,yBACfwE,gBAAiB,OAEjBC,0BAA2B,QAC3BC,+BAAgC,MAElC,MAAM,GACJ,WAAApU,CAAY2P,EAAUtL,GACpBzG,KAAKoJ,SAAW1C,OAAOC,OAAO,CAAC,EAAG,GAAgBF,GAClDzG,KAAKb,GAAK4S,EACV/R,KAAKyW,UAAYzW,KAAKb,GAAG0N,cAAc,UACvC7M,KAAK0W,eAAiB3E,EAASlF,cAAc7M,KAAKoJ,SAAS6M,qBAC3DjW,KAAK2W,uBAAyB5E,EAASlF,cAAc7M,KAAKoJ,SAAS+M,uBACnEnW,KAAK4W,cAAgB5W,KAAKyW,UAAUI,SAASC,oBAC7C9W,KAAKiS,WAAajS,KAAKb,GAAG0N,cAAc7M,KAAKoJ,SAAS8M,iBACtDlW,KAAK+W,4BAA8BC,GAAoB1U,KAAKtC,MAC5DA,KAAKmU,wBAA0B,GAAgB7R,KAAKtC,MACpDA,KAAKiX,0BAA4BC,GAAkB5U,KAAKtC,MACxDA,KAAKmX,uBAAyBC,GAAe9U,KAAKtC,MAClDA,KAAKqX,yBAA2BC,GAAiBhV,KAAKtC,MACtDA,KAAK+I,oBAAsB,GAAYzG,KAAKtC,MACvCA,KAAKoJ,SAASqI,oBACjBzR,KAAKyS,kBAAoB,IAAI/K,iBAAiB1H,KAAK+I,qBACnD/I,KAAK0S,oBACL1S,KAAK2S,kBAEP3S,KAAKuX,QAAU,IAAI,GAAQvX,KAAKiS,WAAY,CAC1CvB,0BAA2B,iCAC3B7N,UAAW,4BACX2O,WAAYxR,KAAKoJ,SAASoI,WAC1BM,cAAe9R,KAAKoJ,SAAS0I,gBAE/B9R,KAAKgU,UAAY,IAAI,GAAShU,KAAKb,GAAI,CACrCoL,yBAAyB,EACzBiN,iBAAiB,EACjB5M,oBAAoB,EACpBF,oBAAoB,EACpBG,gBAAiB7K,KAAKoJ,SAAS8M,gBAC/BpL,cAAe,2BACfC,eAAe,EACfG,gBAAiB,YACjBC,aAAc,WAEhBnL,KAAKb,GAAGuO,UAAUC,IAAI,sBAClB3N,KAAK2W,yBACF3W,KAAK0W,eAAexD,WACvBlT,KAAK2W,uBAAuBjJ,UAAUC,IAAI3N,KAAKoJ,SAASgN,qBAG9D,CACA,iBAAA1D,GACO1S,KAAKoJ,SAASqI,mBACjBzR,KAAKyS,kBAAkB9K,QAAQ3H,KAAKyW,UAAW,CAC7C3O,gBAAiB,CAAC,iBAClBC,YAAY,EACZH,WAAW,EACXC,SAAS,GAGf,CACA,mBAAAgL,GACO7S,KAAKoJ,SAASqI,mBACjBzR,KAAKyS,kBAAkBvK,YAE3B,CACA,gBAAA4K,GACE9S,KAAKyW,UAAU7U,oBAAoB,QAAS5B,KAAK+W,6BACjD/W,KAAKiS,WAAWrQ,oBAAoB,QAAS5B,KAAKmU,yBAClDnU,KAAKiS,WAAWrQ,oBAAoB,UAAW5B,KAAKiX,2BACpDjX,KAAKiS,WAAWrQ,oBAAoB,sBAAuB5B,KAAKmX,wBAChEnX,KAAKiS,WAAWrQ,oBAAoB,wBAAyB5B,KAAKqX,yBACpE,CACA,cAAA1E,IAC0B,IAApB3S,KAAK+N,aACP/N,KAAKyW,UAAUvU,iBAAiB,QAASlC,KAAK+W,4BAA6B,CAAEU,MAAM,IACnFzX,KAAKiS,WAAW/P,iBAAiB,QAASlC,KAAKmU,yBAC/CnU,KAAKiS,WAAW/P,iBAAiB,UAAWlC,KAAKiX,2BACjDjX,KAAKiS,WAAW/P,iBAAiB,sBAAuBlC,KAAKmX,wBAC7DnX,KAAKiS,WAAW/P,iBAAiB,wBAAyBlC,KAAKqX,0BAEnE,CACA,QAAAK,GACE,MAAM3C,EAAS/U,KACfuM,YAAW,WACTwI,EAAOlC,sBACPkC,EAAOf,UAAUjI,UAAW,EAC5BgJ,EAAOrC,oBACPqC,EAAO0B,UAAU9N,OACnB,GAAG3I,KAAKoJ,SAASwK,gBACnB,CACA,OAAA3L,GACEjI,KAAK+N,YAAa,EAClB/N,KAAK8S,mBACL9S,KAAK6S,sBACL7S,KAAK+W,4BAA8B,KACnC/W,KAAKmU,wBAA0B,KAC/BnU,KAAKiX,0BAA4B,KACjCjX,KAAKmX,uBAAyB,KAC9BnX,KAAKqX,yBAA2B,KAChCrX,KAAK+I,oBAAsB,IAC7B,EAEF,SAASiO,KACPhX,KAAKuX,QAAQpY,GAAG8D,QAAS,CAC3B,CACA,SAASiU,GAAkBjY,GACP,KAAdA,EAAEqM,SAAgC,KAAdrM,EAAEqM,SAAgC,KAAdrM,EAAEqM,SAC5CtL,KAAK0X,UAET,CACA,SAAS,KACP1X,KAAK0X,UACP,CACA,SAASN,GAAenY,GACtBe,KAAKb,GAAGI,cAAc,IAAIC,YAAY,6BAA8B,CAAEK,OAAQZ,EAAEY,SAClF,CACA,SAASyX,GAAiBrY,GACxB,MAAM0Y,EAAU1Y,EAAEY,OAAOoT,aACnB,0BACJsD,EAAyB,+BACzBC,EAA8B,gBAC9BF,EAAe,qBACfD,EAAoB,oBACpBD,GACEpW,KAAKoJ,SACHwO,EAAO3Y,EAAEY,OAAOV,GAAG0N,cAAc0J,GAA2BsB,WAAU,GAC5E,IAAIC,EAAa9X,KAAK4W,cAAgB,GAAG5W,KAAK4W,gBAAgBe,IAAYA,EAC1E,GAAIC,EACF,OAAQtB,GACN,IAAK,OACHwB,EAAa,GAAGF,EAAKG,mBAAmBD,WACxC,MACF,IAAK,OACH9X,KAAKyW,UAAUxV,aAAa,aAAc6W,GAC1CA,EAAaF,EAAKG,UAMxB,GAAIvB,EAAgC,CAClC,MAAMwB,EAAe/Y,EAAEY,OAAOV,GAAG0N,cAAc2J,IAAiCtD,UAAUsC,OAC1FxV,KAAKyW,UAAUxV,aACb,aACAjB,KAAK4W,cAAgB,GAAG5W,KAAK4W,iBAAiBoB,IAAiBA,EAEnE,CACAhY,KAAK0W,eAAeuB,UAAYH,EAC5B9X,KAAK2W,yBACHgB,GACF3X,KAAK2W,uBAAuBjJ,UAAUC,IAAI0I,GAC1CrW,KAAK2W,uBAAuBjJ,UAAUG,OAAOuI,IAE7CpW,KAAK2W,uBAAuBjJ,UAAUC,IAAIyI,IAG9CpW,KAAKb,GAAGI,cAAc,IAAIC,YAAY,+BAAgC,CAAEK,OAAQZ,EAAEY,SACpF,CACA,SAAS,GAAY6T,GACnB,IAAK,MAAMC,KAAYD,EACC,eAAlBC,EAASxN,MACXnG,KAAKb,GAAGI,cACN,IAAIC,YAAY,iCAAkC,CAChDK,OAAQ,CACNoG,cAAe0N,EAAS1N,iBAMpC,CCnLA,MAAM,GAAiB,CACrBwL,mBAAmB,EACnB7O,SAAU,cACVC,UAAW,eAEb,MAAM,GACJ,WAAAT,CAAY2P,EAAUtL,GACpBzG,KAAKoJ,SAAW1C,OAAOC,OAAO,CAAC,EAAG,GAAgBF,GAClDzG,KAAKb,GAAK4S,EACV/R,KAAKkY,gBAAkB,EAA4BlY,KAAKb,GAAI,mBAAoB,CAC9EyD,SAAU5C,KAAKoJ,SAASxG,SACxBC,UAAW7C,KAAKoJ,SAASvG,YAE3B,GAAsB7C,KAAKb,IAC3Ba,KAAKkS,mBAAqB,GAAW5P,KAAKtC,MAC1CA,KAAKoS,iBAAmB,GAAS9P,KAAKtC,MACtCA,KAAK+I,oBAAsB,GAAYzG,KAAKtC,MAC5CA,KAAKb,GAAGuO,UAAUC,IAAI,YACjB3N,KAAKoJ,SAASqI,oBACjBzR,KAAKyS,kBAAoB,IAAI/K,iBAAiB1H,KAAK+I,qBACnD/I,KAAK0S,oBACL1S,KAAK2S,iBAET,CACA,MAAAI,CAAO1P,GACLrD,KAAK6S,sBACL,MAAM1T,EAAKa,KAAKoD,MAAMC,GACtB,OAAQlE,EAAG+D,aAAa,SACtB,IAAK,oBA+FX,SAAiC6O,EAAUoG,GACzC,GAAiD,SAA7CA,EAAWjV,aAAa,iBAA6B,CACvD,MAAMkV,EAAYD,EAAWtB,QAAQwB,YACrCF,EAAWlX,aACT,eAC4C,SAA5CkX,EAAWjV,aAAa,gBAA6B,QAAU,QAEjE6O,EAASxS,cAAc,IAAIC,YAAY,qBAAsB,CAC3DK,OAAQ,CACNV,GAAIgZ,EACJG,QAASH,EAAWjV,aAAa,gBACjCqV,MAAOH,EACPnU,MAAOkU,EAAWjF,aAGxB,CACF,CA9GQsF,CAAwBxY,KAAKb,GAAIA,GACjC,MACF,IAAK,iBA6GX,SAA8B4S,EAAUoG,GACtC,GAAiD,SAA7CA,EAAWjV,aAAa,iBAA6B,CACvD,MAAMkV,EAAYD,EAAWtB,QAAQwB,YAC/BI,EAAY1G,EAASlF,cAAc,sBAAsBuL,yBAC3DK,GACFA,EAAUxX,aAAa,eAAgB,SAErCwX,IAAcN,IAChBA,EAAWlX,aAAa,eAAgB,QACxC8Q,EAASxS,cAAc,IAAIC,YAAY,qBAAsB,CAC3DK,OAAQ,CACNV,GAAIgZ,EACJI,MAAOH,EACPnU,MAAOkU,EAAWjF,cAI1B,CACF,CA9HQwF,CAAqB1Y,KAAKb,GAAIA,GAC9B,MACF,QAiF6BgZ,EAhFFhZ,EAATa,KAAKb,GAiFlBI,cAAc,IAAIC,YAAY,qBAAsB,CAC3DK,OAAQ,CACNV,GAAIgZ,EACJlU,MAAOkU,EAAWjF,cAJxB,IAAmCiF,EA7E/BnY,KAAK0S,mBACP,CACA,SAAItP,GACF,OAAOpD,KAAKkY,gBAAgB9U,KAC9B,CACA,mBAAIuV,GACF,MAAMC,EAAM,IAAI5Y,KAAKb,GAAGkF,iBAAiB,4CAEzC,MADmB,IAAI,IAAIwU,IAAID,EAAIE,KAAK3Z,GAAOA,EAAG0X,QAAQwB,eAE5D,CACA,sBAAIU,GACF,MAAMH,EAAM,IAAI5Y,KAAKb,GAAGkF,iBAAiB,+CAEzC,MADmB,IAAI,IAAIwU,IAAID,EAAIE,KAAK3Z,GAAOA,EAAG0X,QAAQwB,eAE5D,CACA,iBAAA3F,GACO1S,KAAKoJ,SAASqI,mBACjBzR,KAAKyS,kBAAkB9K,QAAQ3H,KAAKb,GAAI,CACtC2I,gBAAiB,CAAC,eAAgB,iBAClCC,YAAY,EACZH,WAAW,EACXC,SAAS,GAGf,CACA,mBAAAgL,GACO7S,KAAKoJ,SAASqI,mBACjBzR,KAAKyS,kBAAkBvK,YAE3B,CACA,cAAAyK,IAC0B,IAApB3S,KAAK+N,aACP/N,KAAKb,GAAG+C,iBAAiB,UAAWlC,KAAKkS,oBACzClS,KAAKb,GAAG+C,iBAAiB,QAASlC,KAAKoS,kBAE3C,CACA,gBAAAU,GACE9S,KAAKb,GAAGyC,oBAAoB,UAAW5B,KAAKkS,oBAC5ClS,KAAKb,GAAGyC,oBAAoB,QAAS5B,KAAKoS,iBAC5C,CACA,OAAAnK,GACEjI,KAAK+N,YAAa,EAClB/N,KAAK6S,sBACL7S,KAAK8S,mBACL9S,KAAKkS,mBAAqB,KAC1BlS,KAAKoS,iBAAmB,KACxBpS,KAAK+I,oBAAsB,IAC7B,EAEF,SAAS,GAAY2K,GACnB,IAAK,MAAMC,KAAYD,EACC,eAAlBC,EAASxN,MACXnG,KAAKb,GAAGI,cAAc,IAAIC,YAAY,uBAAwB,CAC5DK,OAAQ,CACNoG,cAAe0N,EAAS1N,iBAKlC,CACA,SAAS,GAAWhH,GAClBe,KAAK6S,sBACa,KAAd5T,EAAEqM,SACJrM,EAAEwR,iBAEc,KAAdxR,EAAEqM,SAAgC,KAAdrM,EAAEqM,SACxBtL,KAAK+S,OAAO9I,MAAM+O,KAAKhZ,KAAKoD,OAAOO,QAAQ1E,EAAEuC,SAE/CxB,KAAK0S,mBACP,CACA,SAAS,GAASzT,GAChB,MAAMkZ,EAAalZ,EAAEuC,OAAO+D,QAAQ,oBAC9BlC,EAAQrD,KAAKoD,MAAMO,QAAQwU,IAClB,IAAX9U,GACFrD,KAAK+S,OAAO1P,EAEhB,CClHA,MAAM,GAAiB,CACrBoO,mBAAmB,EACnB3G,cAAe,wBACfmO,aAAc,qBACdC,mBAAoB,aACpB5C,gBAAiB,OAEjB6C,qBAAsB,QACtBC,gCAAiC,MAEnC,MAAM,GACJ,WAAAhX,CAAY2P,EAAUtL,GACpBzG,KAAKoJ,SAAW1C,OAAOC,OAAO,CAAC,EAAG,GAAgBF,GAClDzG,KAAKb,GAAK4S,EACV/R,KAAKyW,UAAY1E,EAASlF,cAAc,UACxC7M,KAAKyW,UAAUxV,aAAa,gBAAiB,QAC7CjB,KAAKqZ,KAAO,IAAI,GAAKtH,EAASlF,cAAc7M,KAAKoJ,SAAS6P,cAAe,CACvEpW,UAAW,gBAEb7C,KAAK4W,cAAgB5W,KAAKyW,UAAUI,SAASyC,uBAC7CtZ,KAAKuZ,cAAgBvZ,KAAKyW,UAAU5J,cAAc7M,KAAKoJ,SAAS8P,oBAChElZ,KAAKgU,UAAY,IAAI,GAASjC,EAAU,CACtCxH,yBAAyB,EACzBiN,iBAAiB,EACjB5M,oBAAoB,EACpBF,oBAAoB,EACpBG,gBAAiB7K,KAAKoJ,SAAS6P,aAC/BnO,cAAe9K,KAAKoJ,SAAS0B,cAC7BC,eAAe,EACfG,gBAAiB,YACjBC,aAAc,WAEhBnL,KAAK+W,4BAA8B,GAAoBzU,KAAKtC,MAC5DA,KAAKwZ,uBAAyBC,GAAenX,KAAKtC,MAClDA,KAAK0Z,0BAA4BC,GAAkBrX,KAAKtC,MACxDA,KAAK+I,oBAAsB,GAAYzG,KAAKtC,MAC5CA,KAAKb,GAAGuO,UAAUC,IAAI,mBACjB3N,KAAKoJ,SAASqI,oBACjBzR,KAAKyS,kBAAoB,IAAI/K,iBAAiB1H,KAAK+I,qBACnD/I,KAAK0S,oBACL1S,KAAK2S,iBAET,CACA,iBAAAD,GACO1S,KAAKoJ,SAASqI,mBACjBzR,KAAKyS,kBAAkB9K,QAAQ3H,KAAKb,GAAI,CACtC2I,gBAAiB,CAAC,gBAAiB,YACnCC,YAAY,EACZH,WAAW,EACXC,SAAS,GAGf,CACA,mBAAAgL,GACO7S,KAAKoJ,SAASqI,mBACjBzR,KAAKyS,kBAAkBvK,YAE3B,CACA,cAAAyK,IAC0B,IAApB3S,KAAK+N,aACP/N,KAAKyW,UAAUvU,iBAAiB,QAASlC,KAAK+W,4BAA6B,CAAEU,MAAM,IACnFzX,KAAKqZ,KAAKla,GAAG+C,iBAAiB,UAAWlC,KAAKwZ,wBAC9CxZ,KAAKqZ,KAAKla,GAAG+C,iBAAiB,qBAAsBlC,KAAK0Z,2BACzD1Z,KAAKqZ,KAAKla,GAAG+C,iBAAiB,qBAAsBlC,KAAK0Z,2BAE7D,CACA,gBAAA5G,GACE9S,KAAKyW,UAAU7U,oBAAoB,QAAS5B,KAAK+W,6BACjD/W,KAAKqZ,KAAKla,GAAGyC,oBAAoB,UAAW5B,KAAKwZ,wBACjDxZ,KAAKqZ,KAAKla,GAAGyC,oBAAoB,qBAAsB5B,KAAK0Z,2BAC5D1Z,KAAKqZ,KAAKla,GAAGyC,oBAAoB,qBAAsB5B,KAAK0Z,0BAC9D,CACA,OAAAzR,GACEjI,KAAK+N,YAAa,EAClB/N,KAAK6S,sBACL7S,KAAK8S,mBACL9S,KAAK+W,4BAA8B,KACnC/W,KAAKwZ,uBAAyB,KAC9BxZ,KAAK0Z,0BAA4B,KACjC1Z,KAAK+I,oBAAsB,IAC7B,EAEF,SAAS,GAAY2K,GACnB,IAAK,MAAMC,KAAYD,EACC,eAAlBC,EAASxN,MACXnG,KAAKb,GAAGI,cACN,IAAIC,YAAY,8BAA+B,CAC7CK,OAAQ,CACNoG,cAAe0N,EAAS1N,iBAMpC,CACA,SAAS,KACPjG,KAAKqZ,KAAKla,GAAG8D,QAAS,CACxB,CACA,SAASwW,GAAexa,GACJ,KAAdA,EAAEqM,UACJtL,KAAKgU,UAAUjI,UAAW,EAC1B/L,KAAKyW,UAAU9N,QAEnB,CACA,SAASgR,GAAkB1a,GACzB,MAAM8V,EAAS/U,MACT,GAAEb,GAAOF,EAAEY,OAKjB,GAJA0M,YAAW,WACTwI,EAAOf,UAAUjI,UAAW,EAC5BgJ,EAAO0B,UAAU9N,OACnB,GAAG,KAC6B,kBAA5BxJ,EAAG+D,aAAa,QAClB,OAEF,MAAM,qBAAEiW,EAAoB,gCAAEC,EAA+B,gBAAE9C,GAAoBtW,KAAKoJ,SAClFwO,EAAOzY,EAAG0N,cAAcsM,GAAsBtB,WAAU,GACxDjJ,EAAOzP,EAAG+T,UAAUsC,OAC1B,IAAIsC,EAAa9X,KAAK4W,cAAgB,GAAG5W,KAAK4W,iBAAiBhI,IAASA,EACxE,GAAIgJ,EACF,OAAQtB,GACN,IAAK,OACHwB,EAAa,GAAGF,EAAKG,mBAAmBD,WACxC,MACF,IAAK,OACH9X,KAAKyW,UAAUxV,aAAa,aAAc6W,GAC1CA,EAAaF,EAAKG,UAMxB,GAAIqB,EAAiC,CACnC,MAAMpB,EAAe7Y,EAAG0N,cAAcuM,IAAkClG,UAAUsC,OAClFxV,KAAKyW,UAAUxV,aACb,aACAjB,KAAK4W,cAAgB,GAAG5W,KAAK4W,iBAAiBoB,IAAiBA,EAEnE,CACAhY,KAAKuZ,cAActB,UAAYH,CACjC,CC7IA,MAAM,GAAiB,CACrB8B,IAAK,CACHC,QAAS,mBAEXpI,mBAAmB,GAErB,MAAM,GACJ,WAAArP,CAAYjD,EAAIsH,GACdzG,KAAKoJ,SAAW1C,OAAOC,OAAO,CAAC,EAAG,GAAgBF,GAClDzG,KAAKb,GAAKA,EACVa,KAAKoS,iBAAmB,GAAS9P,KAAKtC,MACtCA,KAAKkS,mBAAqB,GAAW5P,KAAKtC,MAC1CA,KAAK+I,oBAAsB,GAAYzG,KAAKtC,MACxCA,KAAK8Z,UACP9Z,KAAK+Z,kBAAkB9Y,aAAa,WAAY,MAElDjB,KAAKb,GAAGuO,UAAUC,IAAI,cACjB3N,KAAKoJ,SAASqI,oBACjBzR,KAAKyS,kBAAoB,IAAI/K,iBAAiB1H,KAAK+I,qBACnD/I,KAAK0S,oBACL1S,KAAK2S,iBAET,CACA,iBAAAD,GACO1S,KAAKoJ,SAASqI,mBACjBzR,KAAKyS,kBAAkB9K,QAAQ3H,KAAK+Z,kBAAmB,CACrDhS,YAAY,EACZH,WAAW,EACXC,SAAS,GAGf,CACA,mBAAAgL,GACO7S,KAAKoJ,SAASqI,mBACjBzR,KAAKyS,kBAAkBvK,YAE3B,CACA,cAAAyK,GACE3S,KAAK+Z,kBAAkB7X,iBAAiB,QAASlC,KAAKoS,kBACtDpS,KAAK+Z,kBAAkB7X,iBAAiB,UAAWlC,KAAKkS,mBAC1D,CACA,gBAAAY,GACE9S,KAAK+Z,kBAAkBnY,oBAAoB,QAAS5B,KAAKoS,kBACzDpS,KAAK+Z,kBAAkBnY,oBAAoB,UAAW5B,KAAKkS,mBAC7D,CACA,qBAAI6H,GACF,OAAO/Z,KAAKb,GAAG0N,cAAc,IAAI7M,KAAKoJ,SAASwQ,IAAIC,UACrD,CACA,WAAIvB,CAAQ0B,GACVha,KAAK6S,sBACL7S,KAAK+Z,kBAAkB9Y,aAAa,eAAgB+Y,EAAUC,YAC9Dja,KAAKb,GAAGI,cAAc,IAAIC,YAAY,uBAAwB,CAC5D0a,UAAU,EACVra,OAAQ,CACNsa,GAAIna,KAAKsY,YAGbtY,KAAK0S,mBACP,CACA,WAAI4F,GACF,MAA+D,SAAxDtY,KAAK+Z,kBAAkB7W,aAAa,eAC7C,CACA,YAAI4W,CAASM,GACXpa,KAAK6S,sBACL7S,KAAK+Z,kBAAkB9Y,aAAa,gBAAiBmZ,EAAWH,YAChEja,KAAK+Z,kBAAkB9Y,aAAa,WAAYmZ,EAAa,KAAO,KACpEpa,KAAK0S,mBACP,CACA,YAAIoH,GACF,MAAgE,SAAzD9Z,KAAK+Z,kBAAkB7W,aAAa,gBAC7C,CACA,cAAImX,CAAWC,GAGb,GAFAta,KAAK6S,sBACL7S,KAAK+Z,kBAAkB9Y,aAAa,kBAAmBqZ,GACnDta,KAAKoJ,SAASqI,kBAAmB,CACnC,MAAM8I,EAAczY,SAAS0Y,eAAexa,KAAKqa,YAC7CE,GAAyC,KAA1BA,EAAYrH,YAC7BlT,KAAKya,MAAQF,EAAYrH,UAE7B,CACAlT,KAAK0S,mBACP,CACA,cAAI2H,GACF,OAAOra,KAAK+Z,kBAAkB7W,aAAa,kBAC7C,CACA,SAAIuX,GACF,OAAOza,KAAK+Z,kBAAkB7W,aAAa,aAC7C,CACA,SAAIuX,CAAMC,GACR1a,KAAK6S,sBACL7S,KAAK+Z,kBAAkB9Y,aAAa,aAAcyZ,GAClD1a,KAAK0S,mBACP,CACA,MAAAiI,GACE3a,KAAKsY,SAAWtY,KAAKsY,OACvB,CACA,OAAArQ,GACEjI,KAAK6S,sBACL7S,KAAK8S,mBACL9S,KAAKoS,iBAAmB,KACxBpS,KAAKkS,mBAAqB,KAC1BlS,KAAK+I,oBAAsB,IAC7B,EAEF,SAAS,GAAW9J,GAClB,IAAKe,KAAK8Z,SACR,OAAQ7a,EAAEqM,SACR,KAAK,GACHrM,EAAEwR,iBACFzQ,KAAK2a,SACL,MACF,KAAK,GACH3a,KAAKsY,SAAU,EACf,MACF,KAAK,GACHtY,KAAKsY,SAAU,EAMvB,CACA,SAAS,KACFtY,KAAK8Z,UACR9Z,KAAK2a,QAET,CACA,SAAS,GAAYjH,GACnB,IAAK,MAAMC,KAAYD,EACC,eAAlBC,EAASxN,MACXnG,KAAKb,GAAGI,cAAc,IAAIC,YAAY,yBAA0B,CAC9DK,OAAQ,CACNoG,cAAe0N,EAAS1N,iBAKlC,CCxIA,IAAI2U,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAQJ,SAASC,KACPF,GAAsBxS,OACxB,CACA,SAAS2S,KACPF,GAAqBzS,OACvB,CAeA,SAAS4S,KAYP,OAXIX,KACFC,GAAUW,GAAWX,IACrBC,GAAkBU,GAAWV,IAC7BC,GAAkBS,GAAWT,IAC7BC,GAAiBQ,GAAWR,IAC5BC,GAAiBO,GAAWP,IAC5BC,GAAUM,GAAWN,IACrBN,GAAUlN,UAAUG,OAAO,yBAC3B+M,GAAUrb,cAAc,IAAIC,YAAY,iBAAkB,CAAEM,SAAS,KACrE8a,GAAY,MAEPA,EACT,CACA,SAASY,GAAWrc,GAClB,MAAMsc,EAAStc,EAAGuc,WAClB,OAAOD,EAASA,EAAOE,YAAYxc,GAAMA,CAC3C,CCtDA,MAAMyc,GAAkBnY,GAA2B,IAAlBA,EAAKoY,UAAiD,SAA/BpY,EAAKgM,QAAQ9P,eAA2D,SAA/B8D,EAAKgM,QAAQ9P,cACxGmc,GAAiBrY,GAA2B,IAAlBA,EAAKoY,UAAiD,WAA/BpY,EAAKgM,QAAQ9P,cAC9Doc,GAAgB,CAACC,EAAGC,IAAMD,EAAEE,OAAOD,GACzC,SAASE,GAAoBhd,EAAIid,EAAW,IAC1C,MAAMC,EAAkBld,EAAGkd,gBAC3B,OAAKA,GAGLD,EAASE,KAAKD,GACPF,GAAoBE,EAAiBD,IAHnCA,CAIX,CACA,SAASG,GAAgBpd,EAAIid,EAAW,IACtC,MAAMI,EAAcrd,EAAGqd,YACvB,OAAKA,GAGLJ,EAASE,KAAKE,GACPD,GAAgBC,EAAaJ,IAH3BA,CAIX,CACA,SAASK,GAAYtd,GAEnB,OADoBgd,GAAoBhd,GAAI+c,OAAOK,GAAgBpd,IAChDyE,OAAOkY,GAC5B,CACA,SAASY,GAAgBvd,EAAIwd,EAAY,IACvC,MAAMC,EAAezd,EAAGuc,WACxB,OAAKkB,GAGLD,EAAUL,KAAKM,GACRF,GAAgBE,EAAcD,IAH5BA,CAIX,CACA,SAASE,GAAa1d,GACpB,OAAOud,GAAgBvd,GAAIyE,OAAOgY,GACpC,CChCA,IAAIkB,GACA,GACAC,GACJ,MAAMC,GAAavZ,GAAwC,QAA/BA,EAAKgM,QAAQ9P,cACzC,SAASsd,GAAgB9d,EAAI+d,GAC3B,IAAIC,EAMJ,OAJEA,GADwB,IAAtBD,EACgBE,GAAeje,EAAI,cAAe,SAElCie,GAAeje,EAAI,UAAU,GAE1Cge,CACT,CACA,SAASE,GAAgBle,EAAI+d,GAC3B,IAAIC,EAMJ,OAJEA,GADwB,IAAtBD,EACgBE,GAAeje,EAAI,cAAe,QAElCie,GAAeje,EAAI,UAAU,GAE1Cge,CACT,CACA,SAASC,GAAeje,EAAI8G,EAAeqX,GACzC,MAAMC,EAAmC,kBAAfD,EAC1B,MAAO,CACLne,KACA8G,gBACAuX,WAAYD,EAAape,EAAG8G,GAAiB9G,EAAG+D,aAAa+C,GAC7DqX,aACAC,aAEJ,CAmBA,SAAS,KACH,KACFR,GAAazU,SAAS7E,IAb1B,IAAsBga,KAa0Bha,GAZ9B+Z,YACiB,IAA3BC,EAAYF,WACdE,EAAYte,GAAGse,EAAYxX,eAAiBwX,EAAYD,WAExDC,EAAYte,GAAG8B,aAAawc,EAAYxX,cAAewX,EAAYD,YAGrEC,EAAYte,GAAG0P,gBAAgB4O,EAAYxX,cAKM,IACjD8W,GAAe,GACXD,IACFA,GAAO7b,aAAa,OAAQ,QAE9B,GAAU1B,cAAc,IAAIC,YAAY,qBAAsB,CAAEM,SAAS,KACzE,GAAY,KAEhB,CACA,MAAM,GAAiB,CACrBod,mBAAmB,GC7DrB,MAAM,GAAiB,CACrBQ,OAAO,EACPR,mBAAmB,EACnBna,MAAM,GAEF4a,GAAO,CACXC,OAAQ,SACRC,KAAM,QAER,IAAIC,GACAC,GACAC,GACAC,GAA0B,GAC9B,SAASC,GAAY/e,GACnB,MAA+C,SAAxCA,EAAGuc,WAAWjM,QAAQ9P,aAC/B,CA6CA,SAASwe,KAWP,OAVIL,KACF,KACA,KAnBEE,KACF,IAAIA,GAAeI,UAAU9V,SAAS+V,IACpC,GAAMA,EAAM5O,QAAQ9P,gBAAkBge,GAAKC,QAAUS,EAAM5O,UAAYkO,GAAKE,KAAO,CACjF,MAAMxa,EAAQ4a,GAAwBK,QAClCjb,EAAQvB,SAASyc,KAAKH,SAAS9a,OACjCxB,SAASyc,KAAKC,YAAYH,GAE1Bvc,SAASyc,KAAKE,aAAaJ,EAAOvc,SAASyc,KAAKH,SAAS/a,EAAQ,GAErE,KAEF2a,GAAenQ,SACfmQ,GAAiB,KACjBC,GAA0B,IAxCxBF,KACFA,GAAqBW,YAAYZ,IACjCC,GAAuB,MA+CvBjc,SAASyc,KAAK1P,gBAAgB,qBAC9BiP,GAAQjP,gBAAgB,qBACxBiP,GAAQve,cAAc,IAAIC,YAAY,iBAAkB,CAAEM,SAAS,KACnEge,GAAU,MAELA,EACT,CACA,SAAS9H,GAAM7W,EAAIiF,GACjB,MAAMgF,EAAW1C,OAAOC,OAAO,CAAC,EAAG,GAAgBvC,GAgBnD,OAfA+Z,KACAL,GAAU3e,EACNiK,EAASsU,QAtDRK,IAAyBG,GAAYJ,MACxCC,GAAuBjc,SAAS6c,cAAc,OAC9CZ,GAAqB9c,aAAa,oBAAqB,eACvD6c,GAAQc,cAAcH,aAAaV,GAAsBD,IACzDhc,SAASyc,KAAKC,YAAYV,MAqDxB1U,EAASrG,OAjDRib,IAAkBE,GAAYJ,MACjCE,GAAiBlc,SAAS6c,cAAc,OACxCX,GAAe/c,aAAa,oBAAqB,SACjD,IAAIa,SAASyc,KAAKH,UAAU9V,SAAQ,CAAC+V,EAAOhb,KACpCgb,IAAUP,IAAWO,EAAM5O,QAAQ9P,gBAAkBge,GAAKC,QAAUS,EAAM5O,UAAYkO,GAAKE,OAC/FG,GAAeQ,YAAYH,GAC3BJ,GAAwB3B,KAAKjZ,GAC/B,IAEFvB,SAASyc,KAAKM,QAAQb,KDuB1B,SAAc7e,EAAIsH,GAChB,KACA,MAAMrC,EAAUsC,OAAOC,OAAO,CAAC,EAAG,GAAgBF,GAClD,GAAYtH,EACZ2d,GAAShb,SAAS+K,cAAc,uBAC5BiQ,IACFA,GAAO7b,aAAa,OAAQ,gBAE9B,MAAM0b,EAAY,GAAkB,IACpC,IAAIP,EAAW,GAAiB,IAC5B0C,EDzCN,SAAgC3f,GAC9B,OAAO0d,GAAa1d,GAAI2Z,KAAKrV,GAASgZ,GAAYhZ,KAAOsb,OAAOhD,GAAe,GACjF,CCuC4B,CAA4B,KACpB,IAA9B3X,EAAQ8Y,oBACVd,EAAWA,EAASxY,OAAOoZ,IAC3B8B,EAAsBA,EAAoBlb,OAAOoZ,KAEnDD,GAAe,CAACE,GAAgB,GAAW7Y,EAAQ8Y,oBAAoBhB,OAAOS,EAAU7D,KAAKrV,GAASwZ,GAAgBxZ,EAAMW,EAAQ8Y,sBAAqBhB,OAAOE,EAAStD,KAAKrV,GAAS4Z,GAAgB5Z,EAAMW,EAAQ8Y,sBAAqBhB,OAAO4C,EAAoBhG,KAAKrV,GAAS4Z,GAAgB5Z,EAAMW,EAAQ8Y,sBACjTH,GAAazU,SAAS7E,IAhDxB,IAAsBga,GACW,KADXA,EAgDwBha,GA/C5B8Z,WACdE,EAAYte,GAAGse,EAAYxX,eAAiBwX,EAAYH,WAExDG,EAAYte,GAAG8B,aAAawc,EAAYxX,cAAewX,EAAYH,WA4CpB,IACjD,GAAU/d,cAAc,IAAIC,YAAY,mBAAoB,CAAEM,SAAS,IACzE,CCEE,CAAsBge,GAAS1Z,GAC1BgF,EAAS8T,mBH/BhB,SAAc/d,GACP0b,GAGHU,MAnCFV,GAdF,WACE,MAAMmE,EAAeld,SAAS6c,cAAc,OAI5C,OAHAK,EAAa/d,aAAa,cAAe,QACzC+d,EAAa/d,aAAa,WAAY,KACtC+d,EAAaC,UAAY,yBAClBD,CACT,CAQYE,GACVpE,GAAkBD,GAAQhD,YAC1BkD,GAAkBF,GAAQhD,YAC1BmD,GAAiBH,GAAQhD,YACzBoD,GAAiBJ,GAAQhD,YACzBqD,GAAUL,GAAQhD,YAClBgD,GAAQ3Y,iBAAiB,QAASmZ,IAClCP,GAAgB5Y,iBAAiB,QAASmZ,IAC1CN,GAAgB7Y,iBAAiB,QAASoZ,IAC1CN,GAAe9Y,iBAAiB,QAASmZ,IACzCJ,GAAe/Y,iBAAiB,QAASoZ,IACzCJ,GAAQhZ,iBAAiB,QAASoZ,KA0BlCV,GAAYzb,EACZ,MAAMof,EAA2B,oBAAbzc,SAA2B,KAAOA,SAASyc,KACzDY,EAAoB,EAAWvE,IAAW,GAChDO,GAAwBgE,EAAkB,GAC1C/D,GAAuB+D,EAAkBA,EAAkB7b,OAAS,GACpEib,EAAKE,aAAa5D,GAAS0D,EAAKa,WAAW,IAC3CxE,GAAUc,WAAW+C,aAAa3D,GAAiBF,IACnDA,GAAU6D,aAAa1D,GAAiBH,GAAUwE,WAAW,IAC7DxE,GAAU4D,YAAYxD,IACtBJ,GAAUc,WAAW+C,aAAaxD,GAAgBL,GAAUyE,oBAC5Dd,EAAKC,YAAYtD,IACjBN,GAAUrb,cAAc,IAAIC,YAAY,eAAgB,CAAEM,SAAS,KACnE8a,GAAUlN,UAAUC,IAAI,wBAE1B,CGYI,CAAkBmQ,IAEpBhc,SAASyc,KAAKtd,aAAa,oBAAqB,QAChD6c,GAAQ7c,aAAa,oBAAqB,UAC1C6c,GAAQve,cAAc,IAAIC,YAAY,eAAgB,CAAEM,SAAS,KAC1Dge,EACT,CC7FA,MAAMwB,GAAiB,gBACjBC,GAA2B,eACjC,SAASC,GAAWrgB,EAAIsgB,EAAWC,GACjC,IAAIC,EACAC,EACAC,EAAM,EACV,MAAMnS,EAAYvO,EAAGuO,UACfoS,EAAY,GAAG5D,OAAOuD,EAAW,SACvC,IAAIM,EA6CN,SAAmBC,GACjB,IAAIC,EACAF,EAUJ,OATIpe,OAAOkI,uBACToW,EAAQpW,uBAAsB,WAC5BoW,EAAQpW,sBAAsBmW,EAChC,IACAD,EAAchW,uBAEdkW,EAAQ1T,WAAWyT,EAAI,IACvBD,EAAc5T,cAET,WACD8T,IACFF,EAAYE,GACZA,OAAQ,EAEZ,CACF,CA/DoBC,EAAU,WAC1B/gB,EAAG+C,iBAAiBod,GAAgBa,GAAU,GAC9CzS,EAAUC,IAAI8R,GACd/R,EAAUG,OAAOiS,GACjBF,EAAUQ,GAAmBjhB,GAC7B4gB,OAAc,EACE,IAAZH,GACFS,GAEJ,IAEA,OADA3S,EAAUC,IAAImS,GACPO,EACP,SAASA,IACHV,IAGJA,GAAQ,EACRxgB,EAAGyC,oBAAoB0d,GAAgBa,GAAU,GAC7CJ,GACFA,IACArS,EAAUG,OAAOiS,IAEjBpS,EAAUG,OAAO4R,GAErB,CACA,SAASU,MACDN,IAAQD,IACZD,GAAQ,EACRxgB,EAAGyC,oBAAoB0d,GAAgBa,GAAU,GACjDzS,EAAUG,OAAO4R,GACbC,GACFA,IAGN,CACF,CACA,SAASU,GAAmBjhB,GAC1B,IAAImhB,EAAQ3e,OAAO0I,iBAAiBlL,GAAIohB,mBAAmBC,QAAQjB,GAA0B,IAAM,EAAI,EACnGlB,EAAQlf,EAAGshB,kBACf,KAAOpC,GACLiC,GAASF,GAAmB/B,GAC5BA,EAAQA,EAAMgB,mBAEhB,OAAOiB,CACT,CCjDA,MAAMI,GAAuB,CAC3BjB,UAAW,SACXkB,oBAAqB,iBACrBC,qBAAsB,EACtB5K,OAAO,EACP6K,cAAc,EACdC,oBAAqB,aAEvB,MAAM,GACJ,WAAA1e,CAAY2P,EAAUtL,GACpBzG,KAAKoJ,SAAW1C,OAAOC,OAAO,CAAC,EAAG+Z,GAAsBja,GACxDzG,KAAK4E,IAAMmN,GACiB,IAAxB/R,KAAKoJ,SAAS4M,OAChBhW,KAAK4E,IAAI3D,aAAa,aAAc,QAEtCjB,KAAK+gB,UAAY/gB,KAAK4E,IAAIiI,cAAc7M,KAAKoJ,SAAS4X,gBACtDhhB,KAAKihB,eAAiBjhB,KAAK4E,IAAIiI,cAAc7M,KAAKoJ,SAASuX,qBAC3D3gB,KAAKkhB,gBAAkBlhB,KAAK4E,IAAI8I,UAAUjM,SAAS,GAAGzB,KAAKoJ,SAASqW,cAAczf,KAAKoJ,SAAS0X,uBAChG9gB,KAAKmhB,4BAA8BC,GAAoB9e,KAAKtC,MAC5DA,KAAKkS,mBAAqB,GAAW5P,KAAKtC,MAC1CA,KAAKqhB,6BAA+BC,GAAqBhf,KAAKtC,MAC9DA,KAAKuhB,8BAAgCC,GAAsBlf,KAAKtC,MAChEA,KAAK4E,IAAI8I,UAAUC,IAAI,GAAG3N,KAAKoJ,SAASqW,iBACnCzf,KAAKiD,SACJjD,KAAKgW,OACPyL,GAAwBzhB,MAE1BA,KAAK2S,iBAET,CACA,cAAI+O,GACF,OAAO,EAAW1hB,KAAK+gB,UACzB,CACA,SAAI/K,GACF,MAA+C,SAAxChW,KAAK4E,IAAI1B,aAAa,aAC/B,CACA,UAAID,GACF,OAAOjD,KAAK4E,IAAI3B,MAClB,CACA,IAAA8S,GACE/V,KAAK2hB,QACL3hB,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,eACzC,CACA,KAAAoiB,GACE5hB,KAAK6hB,QACL7hB,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,gBACzC,CACA,KAAAmiB,GACM3hB,KAAKkhB,iBACHlhB,KAAK8hB,mBACP9hB,KAAK8hB,oBAEP9hB,KAAK8hB,kBAAoBtC,GAAWxf,KAAK4E,IAAK,GAAG5E,KAAKoJ,SAASqW,kBAAmBzf,KAAKqhB,gCAEnFrhB,KAAKgW,OACPzJ,YAAW,IAAMkV,GAAwBzhB,OAAO,IAElDA,KAAK4E,IAAI3B,QAAS,GAEpBjD,KAAK2S,gBACP,CACA,KAAAkP,GACM7hB,KAAKkhB,iBACHlhB,KAAK8hB,mBACP9hB,KAAK8hB,oBAEP9hB,KAAK8hB,kBAAoBtC,GAAWxf,KAAK4E,IAAK,GAAG5E,KAAKoJ,SAASqW,kBAAmBzf,KAAKuhB,iCAEnFvhB,KAAKgW,OACP,KAEFhW,KAAK4E,IAAI3B,QAAS,GAEpBjD,KAAK+hB,oBAAsB,KAC3B/hB,KAAK8S,kBACP,CACA,cAAAH,GACE7Q,SAASI,iBAAiB,UAAWlC,KAAKkS,oBACtClS,KAAKihB,gBACPjhB,KAAKihB,eAAe/e,iBAAiB,QAASlC,KAAKmhB,4BAEvD,CACA,gBAAArO,GACE9S,KAAK4E,IAAIhD,oBAAoB,QAAS5B,KAAKmhB,6BAC3Crf,SAASF,oBAAoB,UAAW5B,KAAKkS,oBACzClS,KAAKihB,gBACPjhB,KAAKihB,eAAe/e,iBAAiB,QAASlC,KAAKmhB,4BAEvD,CACA,OAAAlZ,GACEjI,KAAK+N,YAAa,EAClB/N,KAAK8S,mBACL9S,KAAKmhB,4BAA8B,KACnCnhB,KAAKkS,mBAAqB,KAC1BlS,KAAKqhB,6BAA+B,KACpCrhB,KAAKuhB,8BAAgC,KACrCvhB,KAAK+hB,oBAAsB,IAC7B,EAEF,SAASN,GAAwBO,GAC/B,MAAMC,EAAcD,EAAapd,IAAIiI,cAAc,eAC/CoV,EACFA,EAAYtZ,QAEZqZ,EAAaN,WAAWM,EAAa5Y,SAASwX,sBAAsBjY,QAEtE,GAAYqZ,EAAapd,IAC3B,CACA,SAAS0c,KACPthB,KAAK4E,IAAI3B,QAAS,EAClBjD,KAAK8hB,uBAAoB,EACrB9hB,KAAKgW,OACPyL,GAAwBzhB,KAE5B,CACA,SAASwhB,KACHxhB,KAAKgW,OACP,KAEFhW,KAAK4E,IAAI3B,QAAS,EAClBjD,KAAK8hB,uBAAoB,CAC3B,CACA,SAAS,GAAW7iB,IACiB,IAA/Be,KAAKoJ,SAASyX,cAAuC,KAAd5hB,EAAEqM,SAC3CtL,KAAK4hB,OAET,CACA,SAASR,KACPphB,KAAK4hB,OACP,CCnIA,MAAMM,GAAyB,CAC7BzC,UAAW,kBACX0C,kBAAmB,GACnBtB,cAAc,EACdF,oBAAqB,0BACrBK,eAAgB,4BAElB,MAAM,WAAoB,GACxB,WAAA5e,CAAYjD,EAAIsH,EAAkB,CAAC,GACjCI,MAAM1H,EAAIuH,OAAOC,OAAO,CAAC,EAAGub,GAAwBzb,EAAiB,CAAEuP,OAAO,IAChF,CACA,cAAArD,GACE9L,MAAM8L,iBACN3S,KAAKoS,iBAAmB,GAAS9P,KAAKtC,MACtCA,KAAK4E,IAAI1C,iBAAiB,QAASlC,KAAKoS,iBAC1C,CACA,gBAAAU,GACEjM,MAAMiM,mBACN9S,KAAK4E,IAAIhD,oBAAoB,QAAS5B,KAAKoS,iBAC7C,CACA,OAAAnK,GACEpB,MAAMoB,UACNjI,KAAKoS,iBAAmB,IAC1B,EAEF,SAAS,GAASnT,IACmB,IAA/Be,KAAKoJ,SAASyX,cAAyB5hB,EAAEuC,SAAWxB,KAAK4E,KAC3D5E,KAAK4hB,OAET,CC7BA,MAAMQ,GAAsB,CAC1B3C,UAAW,eACX0C,kBAAmB,QACnBtB,cAAc,EACdwB,0BAA2B,6BAC3BrB,eAAgB,yBAElB,MAAM,WAAoB,GACxB,WAAA5e,CAAYjD,EAAIsH,EAAkB,CAAC,GACjCI,MAAM1H,EAAIuH,OAAOC,OAAO,CAAC,EAAGyb,GAAqB3b,GACnD,CACA,cAAAkM,GACE9L,MAAM8L,iBACN3S,KAAKsiB,qBAAuBtiB,KAAK4E,IAAIiI,cAAc7M,KAAKoJ,SAASiZ,2BACjEriB,KAAKuiB,kCAAoCC,GAA0BlgB,KAAKtC,MACxEA,KAAKsiB,qBAAqBpgB,iBAAiB,QAASlC,KAAKuiB,kCAC3D,CACA,gBAAAzP,GACEjM,MAAMiM,mBACN9S,KAAKsiB,qBAAqB1gB,oBAAoB,QAAS5B,KAAKuiB,kCAC9D,CACA,WAAAE,GACEziB,KAAK6hB,QACL7hB,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,sBACzC,CACA,OAAAyI,GACEpB,MAAMoB,UACNjI,KAAKuiB,kCAAoC,IAC3C,EAEF,SAASC,KACPxiB,KAAKyiB,aACP,CChCA,MAAM,GAAiB,CACrBhD,UAAW,iBACXkB,oBAAqB,yBACrBE,cAAc,EACd6B,sBAAuB,2BACvB9B,qBAAsB,EACtB+B,qBAAsB,0BACtB3B,eAAgB,2BAElB,MAAM,WAAoB,GACxB,WAAA5e,CAAYjD,EAAIsH,EAAkB,CAAC,GACjCI,MAAM1H,EAAIuH,OAAOC,OAAO,CAAC,EAAG,GAAgBF,GAC9C,CACA,cAAAkM,GACE9L,MAAM8L,iBACN3S,KAAK4iB,iBAAmB5iB,KAAK4E,IAAIiI,cAAc7M,KAAKoJ,SAASsZ,uBAC7D1iB,KAAK6iB,gBAAkB7iB,KAAK4E,IAAIiI,cAAc7M,KAAKoJ,SAASuZ,sBAC5D3iB,KAAK8iB,8BAAgCC,GAAsBzgB,KAAKtC,MAChEA,KAAKgjB,6BAA+BC,GAAqB3gB,KAAKtC,MAC9DA,KAAK4iB,iBAAiB1gB,iBAAiB,QAASlC,KAAK8iB,+BACrD9iB,KAAK6iB,gBAAgB3gB,iBAAiB,QAASlC,KAAKgjB,6BACtD,CACA,gBAAAlQ,GACEjM,MAAMiM,mBACN9S,KAAK4iB,iBAAiBhhB,oBAAoB,QAAS5B,KAAK8iB,+BACxD9iB,KAAK6iB,gBAAgBjhB,oBAAoB,QAAS5B,KAAKgjB,6BACzD,CACA,OAAAE,GACEljB,KAAK6hB,QACL7hB,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,kBACzC,CACA,MAAA2jB,GACEnjB,KAAK6hB,QACL7hB,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,iBACzC,CACA,OAAAyI,GACEpB,MAAMoB,UACNjI,KAAK8iB,8BAAgC,KACrC9iB,KAAKgjB,6BAA+B,IACtC,EAEF,SAASD,KACP/iB,KAAKkjB,SACP,CACA,SAASD,KACPjjB,KAAKmjB,QACP,CC9CA,MAAMC,GAAuB,CAC3B3D,UAAW,gBACXoB,cAAc,EACdF,oBAAqB,wBACrBC,qBAAsB,EACtByC,qBAAsB,yBACtBrC,eAAgB,0BAElB,MAAM,WAAoB,GACxB,WAAA5e,CAAYjD,EAAIsH,EAAkB,CAAC,GACjCI,MAAM1H,EAAIuH,OAAOC,OAAO,CAAC,EAAGyc,GAAsB3c,GACpD,CACA,cAAAkM,GACE9L,MAAM8L,iBACN3S,KAAKsjB,gBAAkBtjB,KAAK4E,IAAIiI,cAAc7M,KAAKoJ,SAASia,sBAC5DrjB,KAAKujB,6BAA+BC,GAAqBlhB,KAAKtC,MAC9DA,KAAKsjB,gBAAgBphB,iBAAiB,QAASlC,KAAKujB,6BACtD,CACA,gBAAAzQ,GACEjM,MAAMiM,mBACN9S,KAAKsjB,gBAAgB1hB,oBAAoB,QAAS5B,KAAKujB,6BACzD,CACA,MAAAE,GACEzjB,KAAK4E,IAAIiI,cAAc,0BAA0Ba,UAAUiN,OAAO,mCAClE3a,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,iBACzC,CACA,OAAAyI,GACEpB,MAAMoB,UACNjI,KAAKujB,6BAA+B,IACtC,EAEF,SAASC,KACPxjB,KAAKyjB,QACP,CCjCA,MAAMC,GAA2B,CAC/BjE,UAAW,oBACXoB,cAAc,EACdF,oBAAqB,4BACrBG,oBAAqB,aACrBE,eAAgB,8BAElB,MAAM,WAAoB,GACxB,WAAA5e,CAAYjD,EAAIsH,EAAkB,CAAC,GACjCI,MAAM1H,EAAIuH,OAAOC,OAAO,CAAC,EAAG+c,GAA0Bjd,EAAiB,CAAEuP,OAAO,IAClF,ECVF,MAAM2N,GAAsB,CAC1BlE,UAAW,kBACX0C,kBAAmB,QACnByB,qBAAsB,2BACtBC,qBAAsB,2BACtB7C,eAAgB,4BAElB,MAAM,WAAoB,GACxB,WAAA5e,CAAYjD,EAAIsH,EAAkB,CAAC,GACjCI,MAAM1H,EAAIuH,OAAOC,OAAO,CAAC,EAAGgd,GAAqBld,GACnD,CACA,cAAAkM,GACE9L,MAAM8L,iBACN3S,KAAK8jB,gBAAkB9jB,KAAK4E,IAAIiI,cAAc7M,KAAKoJ,SAASwa,sBAC5D5jB,KAAK+jB,gBAAkB/jB,KAAK4E,IAAIiI,cAAc7M,KAAKoJ,SAASya,sBAC5D7jB,KAAKgkB,6BAA+BC,GAAqB3hB,KAAKtC,MAC9DA,KAAKkkB,6BAA+BC,GAAqB7hB,KAAKtC,MAC9DA,KAAK8jB,gBAAgB5hB,iBAAiB,QAASlC,KAAKgkB,8BACpDhkB,KAAK+jB,gBAAgB7hB,iBAAiB,QAASlC,KAAKkkB,6BACtD,CACA,gBAAApR,GACEjM,MAAMiM,mBACN9S,KAAK8jB,gBAAgBliB,oBAAoB,QAAS5B,KAAKgkB,8BACvDhkB,KAAK+jB,gBAAgBniB,oBAAoB,QAAS5B,KAAKkkB,6BACzD,CACA,MAAAE,GACEpkB,KAAK6hB,QACL7hB,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,iBACzC,CACA,MAAA6gB,GACErgB,KAAK6hB,QACL7hB,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,iBACzC,CACA,OAAAyI,GACEpB,MAAMoB,UACNjI,KAAKgkB,6BAA+B,KACpChkB,KAAKkkB,6BAA+B,IACtC,EAEF,SAASD,KACPjkB,KAAKokB,QACP,CACA,SAASD,KACPnkB,KAAKqgB,QACP,CC5CA,MAAMgE,GAAsB,CAC1B5E,UAAW,eACXoB,cAAc,EACdF,oBAAqB,uBACrB2D,mBAAoB,sBACpBtD,eAAgB,wBAChBF,oBAAqB,kBAEvB,MAAM,WAAoB,GACxB,WAAA1e,CAAYjD,EAAIsH,EAAkB,CAAC,GACjCI,MAAM1H,EAAIuH,OAAOC,OAAO,CAAC,EAAG0d,GAAqB5d,GACnD,ECXF,MAAM8d,GAAyB,CAC7BC,iBAAkB,IAClB/E,UAAW,kBACXgF,kBAAmB,wBACnB3D,oBAAqB,cAEvB,MAAM,WAAoB,GACxB,WAAA1e,CAAYjD,EAAIsH,EAAkB,CAAC,GACjCI,MAAM1H,EAAIuH,OAAOC,OAAO,CAAC,EAAG4d,GAAwB9d,IACpDzG,KAAK+hB,oBAAsB,IAC7B,CACA,KAAAJ,GACE9a,MAAM8a,QACN3hB,KAAK+hB,oBAAsBxV,YAAW,CAACwI,EAAS/U,OAAS+U,EAAO6M,SAAS5hB,KAAKoJ,SAASob,iBACzF,CACA,cAAA7R,GACE9L,MAAM8L,iBACN3S,KAAK0kB,OAAS1kB,KAAK4E,IAAIiI,cAAc7M,KAAKoJ,SAASqb,mBAC/CzkB,KAAK0kB,SACP1kB,KAAK2kB,oBAAsBC,GAAkBtiB,KAAKtC,MAClDA,KAAK0kB,OAAOxiB,iBAAiB,QAASlC,KAAK2kB,qBAE/C,CACA,gBAAA7R,GACEjM,MAAMiM,mBACF9S,KAAK0kB,QACP1kB,KAAK0kB,OAAO9iB,oBAAoB,QAAS5B,KAAK2kB,oBAElD,CACA,GAAAE,GACE7kB,KAAK6hB,QACL7hB,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,cACzC,CACA,OAAAyI,GACEpB,MAAMoB,UACNjI,KAAK2kB,oBAAsB,IAC7B,EAEF,SAASC,KACP5kB,KAAK6kB,KACP,CCxCA,MAAMC,GAAsB,CAC1BrF,UAAW,eACXkB,oBAAqB,uBACrB8D,kBAAmB,qBACnB3D,oBAAqB,cAEvB,MAAM,WAAoB,GACxB,WAAA1e,CAAYjD,EAAIsH,EAAkB,CAAC,GACjCI,MAAM1H,EAAIuH,OAAOC,OAAO,CAAC,EAAGme,GAAqBre,GACnD,CACA,KAAAkb,GACE9a,MAAM8a,OACR,CACA,cAAAhP,GACE9L,MAAM8L,iBACN3S,KAAK0kB,OAAS1kB,KAAK4E,IAAIiI,cAAc7M,KAAKoJ,SAASqb,mBAC/CzkB,KAAK0kB,SACP1kB,KAAK2kB,oBAAsB,GAAkBriB,KAAKtC,MAClDA,KAAK0kB,OAAOxiB,iBAAiB,QAASlC,KAAK2kB,qBAE/C,CACA,gBAAA7R,GACEjM,MAAMiM,mBACF9S,KAAK0kB,QACP1kB,KAAK0kB,OAAO9iB,oBAAoB,QAAS5B,KAAK2kB,oBAElD,CACA,GAAAE,GACE7kB,KAAK6hB,QACL7hB,KAAK4E,IAAIrF,cAAc,IAAIC,YAAY,cACzC,CACA,OAAAyI,GACEpB,MAAMoB,UACNjI,KAAK2kB,oBAAsB,IAC7B,EAEF,SAAS,KACP3kB,KAAK6kB,KACP,CClCA,MAGM,GAAMjkB,KAAKmkB,IACX,GAAMnkB,KAAKD,IACXqkB,GAAQpkB,KAAKokB,MACbnkB,GAAQD,KAAKC,MACbokB,GAAeC,IAAK,CACxBC,EAAGD,EACHE,EAAGF,IAECG,GAAkB,CACtBC,KAAM,QACNC,MAAO,OACPC,OAAQ,MACRC,IAAK,UAEDC,GAAuB,CAC3BC,MAAO,MACPC,IAAK,SAEP,SAASC,GAAMF,EAAO1hB,EAAO2hB,GAC3B,OAAO,GAAID,EAAO,GAAI1hB,EAAO2hB,GAC/B,CACA,SAAS,GAAS3hB,EAAO6hB,GACvB,MAAwB,mBAAV7hB,EAAuBA,EAAM6hB,GAAS7hB,CACtD,CACA,SAAS,GAAQ8hB,GACf,OAAOA,EAAUC,MAAM,KAAK,EAC9B,CACA,SAAS,GAAaD,GACpB,OAAOA,EAAUC,MAAM,KAAK,EAC9B,CACA,SAAS,GAAgBrjB,GACvB,MAAgB,MAATA,EAAe,IAAM,GAC9B,CACA,SAASsjB,GAActjB,GACrB,MAAgB,MAATA,EAAe,SAAW,OACnC,CACA,SAAS,GAAYojB,GACnB,MAAO,CAAC,MAAO,UAAUlhB,SAAS,GAAQkhB,IAAc,IAAM,GAChE,CACA,SAASG,GAAiBH,GACxB,OAAO,GAAgB,GAAYA,GACrC,CAkBA,SAAS,GAA8BA,GACrC,OAAOA,EAAUvF,QAAQ,cAAc2F,GAAaT,GAAqBS,IAC3E,CA6BA,SAASC,GAAqBL,GAC5B,OAAOA,EAAUvF,QAAQ,0BAA0B6F,GAAQhB,GAAgBgB,IAC7E,CAUA,SAASC,GAAiBC,GACxB,MAA0B,iBAAZA,EAVhB,SAA6BA,GAC3B,MAAO,CACLd,IAAK,EACLF,MAAO,EACPC,OAAQ,EACRF,KAAM,KACHiB,EAEP,CAEuCC,CAAoBD,GAAW,CAClEd,IAAKc,EACLhB,MAAOgB,EACPf,OAAQe,EACRjB,KAAMiB,EAEV,CACA,SAASE,GAAiBC,GACxB,MAAO,IACFA,EACHjB,IAAKiB,EAAKtB,EACVE,KAAMoB,EAAKvB,EACXI,MAAOmB,EAAKvB,EAAIuB,EAAKC,MACrBnB,OAAQkB,EAAKtB,EAAIsB,EAAKE,OAE1B,CC3HA,SAASC,GAA2BC,EAAMf,EAAWgB,GACnD,IAAI,UACFC,EAAS,SACTC,GACEH,EACJ,MAAMI,EAAW,GAAYnB,GACvBoB,EAAgBjB,GAAiBH,GACjCqB,EAAcnB,GAAckB,GAC5Bd,EAAO,GAAQN,GACfsB,EAA0B,MAAbH,EACbI,EAAUN,EAAU7B,EAAI6B,EAAUL,MAAQ,EAAIM,EAASN,MAAQ,EAC/DY,EAAUP,EAAU5B,EAAI4B,EAAUJ,OAAS,EAAIK,EAASL,OAAS,EACjEY,EAAcR,EAAUI,GAAe,EAAIH,EAASG,GAAe,EACzE,IAAIK,EACJ,OAAQpB,GACN,IAAK,MACHoB,EAAS,CACPtC,EAAGmC,EACHlC,EAAG4B,EAAU5B,EAAI6B,EAASL,QAE5B,MACF,IAAK,SACHa,EAAS,CACPtC,EAAGmC,EACHlC,EAAG4B,EAAU5B,EAAI4B,EAAUJ,QAE7B,MACF,IAAK,QACHa,EAAS,CACPtC,EAAG6B,EAAU7B,EAAI6B,EAAUL,MAC3BvB,EAAGmC,GAEL,MACF,IAAK,OACHE,EAAS,CACPtC,EAAG6B,EAAU7B,EAAI8B,EAASN,MAC1BvB,EAAGmC,GAEL,MACF,QACEE,EAAS,CACPtC,EAAG6B,EAAU7B,EACbC,EAAG4B,EAAU5B,GAGnB,OAAQ,GAAaW,IACnB,IAAK,QACH0B,EAAON,IAAkBK,GAAeT,GAAOM,GAAc,EAAI,GACjE,MACF,IAAK,MACHI,EAAON,IAAkBK,GAAeT,GAAOM,GAAc,EAAI,GAGrE,OAAOI,CACT,CAqGAC,eAAeC,GAAeC,EAAOxjB,GACnC,IAAIyjB,OACY,IAAZzjB,IACFA,EAAU,CAAC,GAEb,MAAM,EACJ+gB,EAAC,EACDC,EAAC,SACD0C,EAAQ,MACRC,EAAK,SACLC,EAAQ,SACRC,GACEL,GACE,SACJM,EAAW,oBAAmB,aAC9BC,EAAe,WAAU,eACzBC,EAAiB,WAAU,YAC3BC,GAAc,EAAK,QACnB9B,EAAU,GACR,GAASniB,EAASwjB,GAChBU,EAAgBhC,GAAiBC,GAEjCvf,EAAUghB,EAASK,EADa,aAAnBD,EAAgC,YAAc,WACbA,GAC9CG,EAAqB9B,SAAuBqB,EAASU,gBAAgB,CACzExhB,QAAiH,OAAtG6gB,QAAqD,MAAtBC,EAASW,eAAoB,EAASX,EAASW,UAAUzhB,MAAqB6gB,EAAgC7gB,EAAUA,EAAQ0hB,sBAAyD,MAA/BZ,EAASa,wBAA6B,EAASb,EAASa,mBAAmBX,EAASf,WACxRiB,WACAC,eACAF,cAEIvB,EAA0B,aAAnB0B,EAAgC,IACxCL,EAAMd,SACT9B,IACAC,KACE2C,EAAMf,UACJ4B,QAAkD,MAA5Bd,EAASe,qBAA0B,EAASf,EAASe,gBAAgBb,EAASf,WACpG6B,QAA4C,MAAtBhB,EAASW,eAAoB,EAASX,EAASW,UAAUG,WAA+C,MAArBd,EAASiB,cAAmB,EAASjB,EAASiB,SAASH,KAGlK,CACFzD,EAAG,EACHC,EAAG,GAEC4D,EAAoBvC,GAAiBqB,EAASmB,4DAA8DnB,EAASmB,sDAAsD,CAC/KjB,WACAtB,OACAkC,eACAX,aACGvB,GACL,MAAO,CACLjB,KAAM8C,EAAmB9C,IAAMuD,EAAkBvD,IAAM6C,EAAc7C,KAAOqD,EAAY1D,EACxFI,QAASwD,EAAkBxD,OAAS+C,EAAmB/C,OAAS8C,EAAc9C,QAAUsD,EAAY1D,EACpGE,MAAOiD,EAAmBjD,KAAO0D,EAAkB1D,KAAOgD,EAAchD,MAAQwD,EAAY3D,EAC5FI,OAAQyD,EAAkBzD,MAAQgD,EAAmBhD,MAAQ+C,EAAc/C,OAASuD,EAAY3D,EAEpG,CAmXA,SAAS+D,GAAgBnB,GACvB,MAAMoB,EAAO,MAAOpB,EAAMjP,KAAI4N,GAAQA,EAAKpB,QACrC8D,EAAO,MAAOrB,EAAMjP,KAAI4N,GAAQA,EAAKjB,OAG3C,MAAO,CACLN,EAAGgE,EACH/D,EAAGgE,EACHzC,MALW,MAAOoB,EAAMjP,KAAI4N,GAAQA,EAAKnB,SAK3B4D,EACdvC,OALW,MAAOmB,EAAMjP,KAAI4N,GAAQA,EAAKlB,UAK1B4D,EAEnB,CCllBA,SAASC,GAAYC,GACnB,OAAIC,GAAOD,IACDA,EAAKE,UAAY,IAAI7pB,cAKxB,WACT,CACA,SAAS8pB,GAAUH,GACjB,IAAII,EACJ,OAAgB,MAARJ,GAA8D,OAA7CI,EAAsBJ,EAAKK,oBAAyB,EAASD,EAAoBE,cAAgBjoB,MAC5H,CACA,SAASgnB,GAAmBW,GAC1B,IAAIxC,EACJ,OAA0F,OAAlFA,GAAQyC,GAAOD,GAAQA,EAAKK,cAAgBL,EAAKxnB,WAAaH,OAAOG,eAAoB,EAASglB,EAAK+C,eACjH,CACA,SAASN,GAAOtlB,GACd,OAAOA,aAAiB6lB,MAAQ7lB,aAAiBwlB,GAAUxlB,GAAO6lB,IACpE,CACA,SAASrB,GAAUxkB,GACjB,OAAOA,aAAiB8lB,SAAW9lB,aAAiBwlB,GAAUxlB,GAAO8lB,OACvE,CACA,SAASC,GAAc/lB,GACrB,OAAOA,aAAiBgmB,aAAehmB,aAAiBwlB,GAAUxlB,GAAOgmB,WAC3E,CACA,SAASC,GAAajmB,GAEpB,MAA0B,oBAAfkmB,aAGJlmB,aAAiBkmB,YAAclmB,aAAiBwlB,GAAUxlB,GAAOkmB,WAC1E,CACA,SAASC,GAAkBpjB,GACzB,MAAM,SACJqjB,EAAQ,UACRC,EAAS,UACTC,EAAS,QACTjgB,GACE,GAAiBtD,GACrB,MAAO,kCAAkCwjB,KAAKH,EAAWE,EAAYD,KAAe,CAAC,SAAU,YAAYzlB,SAASyF,EACtH,CACA,SAASmgB,GAAezjB,GACtB,MAAO,CAAC,QAAS,KAAM,MAAMnC,SAASwkB,GAAYriB,GACpD,CACA,SAAS0jB,GAAkB1jB,GACzB,MAAM2jB,EAASC,KACTC,EAAM,GAAiB7jB,GAG7B,MAAyB,SAAlB6jB,EAAIC,WAA4C,SAApBD,EAAIE,eAA2BF,EAAIG,eAAsC,WAAtBH,EAAIG,gBAAwCL,KAAWE,EAAII,gBAAwC,SAAvBJ,EAAII,iBAAuCN,KAAWE,EAAIjnB,QAAwB,SAAfinB,EAAIjnB,QAA8B,CAAC,YAAa,cAAe,UAAUsnB,MAAKjnB,IAAU4mB,EAAIM,YAAc,IAAItmB,SAASZ,MAAW,CAAC,QAAS,SAAU,SAAU,WAAWinB,MAAKjnB,IAAU4mB,EAAIO,SAAW,IAAIvmB,SAASZ,IAC7b,CAYA,SAAS2mB,KACP,QAAmB,oBAARS,MAAwBA,IAAIC,WAChCD,IAAIC,SAAS,0BAA2B,OACjD,CACA,SAASC,GAAsBjC,GAC7B,MAAO,CAAC,OAAQ,OAAQ,aAAazkB,SAASwkB,GAAYC,GAC5D,CACA,SAAS,GAAiBtiB,GACxB,OAAOyiB,GAAUziB,GAASqD,iBAAiBrD,EAC7C,CACA,SAASwkB,GAAcxkB,GACrB,OAAIyhB,GAAUzhB,GACL,CACLykB,WAAYzkB,EAAQykB,WACpB1a,UAAW/J,EAAQ+J,WAGhB,CACL0a,WAAYzkB,EAAQ0kB,YACpB3a,UAAW/J,EAAQ2kB,YAEvB,CACA,SAASC,GAActC,GACrB,GAA0B,SAAtBD,GAAYC,GACd,OAAOA,EAET,MAAMuC,EAENvC,EAAKwC,cAELxC,EAAK5N,YAELwO,GAAaZ,IAASA,EAAKyC,MAE3BpD,GAAmBW,GACnB,OAAOY,GAAa2B,GAAUA,EAAOE,KAAOF,CAC9C,CACA,SAASG,GAA2B1C,GAClC,MAAM5N,EAAakQ,GAActC,GACjC,OAAIiC,GAAsB7P,GACjB4N,EAAKK,cAAgBL,EAAKK,cAAcpL,KAAO+K,EAAK/K,KAEzDyL,GAActO,IAAe0O,GAAkB1O,GAC1CA,EAEFsQ,GAA2BtQ,EACpC,CACA,SAASuQ,GAAqB3C,EAAM4C,EAAMC,GACxC,IAAIC,OACS,IAATF,IACFA,EAAO,SAEe,IAApBC,IACFA,GAAkB,GAEpB,MAAME,EAAqBL,GAA2B1C,GAChDgD,EAASD,KAAuE,OAA9CD,EAAuB9C,EAAKK,oBAAyB,EAASyC,EAAqB7N,MACrHgO,EAAM9C,GAAU4C,GACtB,OAAIC,EACKJ,EAAKhQ,OAAOqQ,EAAKA,EAAIC,gBAAkB,GAAIpC,GAAkBiC,GAAsBA,EAAqB,GAAIE,EAAIE,cAAgBN,EAAkBF,GAAqBM,EAAIE,cAAgB,IAE7LP,EAAKhQ,OAAOmQ,EAAoBJ,GAAqBI,EAAoB,GAAIF,GACtF,CCvHA,SAASO,GAAiB1lB,GACxB,MAAM6jB,EAAM,GAAiB7jB,GAG7B,IAAI2f,EAAQgG,WAAW9B,EAAIlE,QAAU,EACjCC,EAAS+F,WAAW9B,EAAIjE,SAAW,EACvC,MAAMgG,EAAY5C,GAAchjB,GAC1B2H,EAAcie,EAAY5lB,EAAQ2H,YAAcgY,EAChD1V,EAAe2b,EAAY5lB,EAAQiK,aAAe2V,EAClDiG,EAAiB7H,GAAM2B,KAAWhY,GAAeqW,GAAM4B,KAAY3V,EAKzE,OAJI4b,IACFlG,EAAQhY,EACRiY,EAAS3V,GAEJ,CACL0V,QACAC,SACAkG,EAAGD,EAEP,CAEA,SAASE,GAAc/lB,GACrB,OAAQyhB,GAAUzhB,GAAoCA,EAAzBA,EAAQ0hB,cACvC,CAEA,SAASK,GAAS/hB,GAChB,MAAMgmB,EAAaD,GAAc/lB,GACjC,IAAKgjB,GAAcgD,GACjB,OAAO/H,GAAa,GAEtB,MAAMyB,EAAOsG,EAAWC,yBAClB,MACJtG,EAAK,OACLC,EAAM,EACNkG,GACEJ,GAAiBM,GACrB,IAAI7H,GAAK2H,EAAI9H,GAAM0B,EAAKC,OAASD,EAAKC,OAASA,EAC3CvB,GAAK0H,EAAI9H,GAAM0B,EAAKE,QAAUF,EAAKE,QAAUA,EAUjD,OANKzB,GAAM+H,OAAOC,SAAShI,KACzBA,EAAI,GAEDC,GAAM8H,OAAOC,SAAS/H,KACzBA,EAAI,GAEC,CACLD,IACAC,IAEJ,CAEA,MAAMgI,GAAyBnI,GAAa,GAC5C,SAASoI,GAAiBrmB,GACxB,MAAMulB,EAAM9C,GAAUziB,GACtB,OAAK4jB,MAAe2B,EAAIC,eAGjB,CACLrH,EAAGoH,EAAIC,eAAec,WACtBlI,EAAGmH,EAAIC,eAAexb,WAJfoc,EAMX,CAWA,SAASH,GAAsBjmB,EAASumB,EAAcC,EAAiB5E,QAChD,IAAjB2E,IACFA,GAAe,QAEO,IAApBC,IACFA,GAAkB,GAEpB,MAAMC,EAAazmB,EAAQimB,wBACrBD,EAAaD,GAAc/lB,GACjC,IAAI0mB,EAAQzI,GAAa,GACrBsI,IACE3E,EACEH,GAAUG,KACZ8E,EAAQ3E,GAASH,IAGnB8E,EAAQ3E,GAAS/hB,IAGrB,MAAM2mB,EA7BR,SAAgC3mB,EAAS4mB,EAASC,GAIhD,YAHgB,IAAZD,IACFA,GAAU,MAEPC,GAAwBD,GAAWC,IAAyBpE,GAAUziB,KAGpE4mB,CACT,CAqBwBE,CAAuBd,EAAYQ,EAAiB5E,GAAgByE,GAAiBL,GAAc/H,GAAa,GACtI,IAAIE,GAAKsI,EAAWnI,KAAOqI,EAAcxI,GAAKuI,EAAMvI,EAChDC,GAAKqI,EAAWhI,IAAMkI,EAAcvI,GAAKsI,EAAMtI,EAC/CuB,EAAQ8G,EAAW9G,MAAQ+G,EAAMvI,EACjCyB,EAAS6G,EAAW7G,OAAS8G,EAAMtI,EACvC,GAAI4H,EAAY,CACd,MAAMT,EAAM9C,GAAUuD,GAChBe,EAAYnF,GAAgBH,GAAUG,GAAgBa,GAAUb,GAAgBA,EACtF,IAAIoF,EAAazB,EACb0B,EAAgBD,EAAWvB,aAC/B,KAAOwB,GAAiBrF,GAAgBmF,IAAcC,GAAY,CAChE,MAAME,EAAcnF,GAASkF,GACvBE,EAAaF,EAAchB,wBAC3BpC,EAAM,GAAiBoD,GACvB3I,EAAO6I,EAAW7I,MAAQ2I,EAAcG,WAAazB,WAAW9B,EAAIwD,cAAgBH,EAAY/I,EAChGM,EAAM0I,EAAW1I,KAAOwI,EAAcK,UAAY3B,WAAW9B,EAAI0D,aAAeL,EAAY9I,EAClGD,GAAK+I,EAAY/I,EACjBC,GAAK8I,EAAY9I,EACjBuB,GAASuH,EAAY/I,EACrByB,GAAUsH,EAAY9I,EACtBD,GAAKG,EACLF,GAAKK,EACLuI,EAAavE,GAAUwE,GACvBA,EAAgBD,EAAWvB,YAC7B,CACF,CACA,OAAOhG,GAAiB,CACtBE,QACAC,SACAzB,IACAC,KAEJ,CAEA,MAAMoJ,GAAoB,CAAC,gBAAiB,UAC5C,SAASC,GAAWxH,GAClB,OAAOuH,GAAkBtD,MAAKwD,IAC5B,IACE,OAAOzH,EAAS0H,QAAQD,EAC1B,CAAE,MAAOzvB,GACP,OAAO,CACT,IAEJ,CA6CA,SAAS2vB,GAAoB5nB,GAG3B,OAAOimB,GAAsBtE,GAAmB3hB,IAAUse,KAAOkG,GAAcxkB,GAASykB,UAC1F,CAiEA,SAASoD,GAAkC7nB,EAAS8nB,EAAkB7G,GACpE,IAAIvB,EACJ,GAAyB,aAArBoI,EACFpI,EA7CJ,SAAyB1f,EAASihB,GAChC,MAAMsE,EAAM9C,GAAUziB,GAChB+nB,EAAOpG,GAAmB3hB,GAC1BwlB,EAAiBD,EAAIC,eAC3B,IAAI7F,EAAQoI,EAAKC,YACbpI,EAASmI,EAAKE,aACd9J,EAAI,EACJC,EAAI,EACR,GAAIoH,EAAgB,CAClB7F,EAAQ6F,EAAe7F,MACvBC,EAAS4F,EAAe5F,OACxB,MAAMsI,EAAsBtE,OACvBsE,GAAuBA,GAAoC,UAAbjH,KACjD9C,EAAIqH,EAAec,WACnBlI,EAAIoH,EAAexb,UAEvB,CACA,MAAO,CACL2V,QACAC,SACAzB,IACAC,IAEJ,CAsBW+J,CAAgBnoB,EAASihB,QAC3B,GAAyB,aAArB6G,EACTpI,EAlEJ,SAAyB1f,GACvB,MAAM+nB,EAAOpG,GAAmB3hB,GAC1BooB,EAAS5D,GAAcxkB,GACvBuX,EAAOvX,EAAQ2iB,cAAcpL,KAC7BoI,EAAQ,GAAIoI,EAAKM,YAAaN,EAAKC,YAAazQ,EAAK8Q,YAAa9Q,EAAKyQ,aACvEpI,EAAS,GAAImI,EAAKO,aAAcP,EAAKE,aAAc1Q,EAAK+Q,aAAc/Q,EAAK0Q,cACjF,IAAI9J,GAAKiK,EAAO3D,WAAamD,GAAoB5nB,GACjD,MAAMoe,GAAKgK,EAAOre,UAIlB,MAHyC,QAArC,GAAiBwN,GAAMgR,YACzBpK,GAAK,GAAI4J,EAAKC,YAAazQ,EAAKyQ,aAAerI,GAE1C,CACLA,QACAC,SACAzB,IACAC,IAEJ,CAiDWoK,CAAgB7G,GAAmB3hB,SACrC,GAAIyhB,GAAUqG,GACnBpI,EAvBJ,SAAoC1f,EAASihB,GAC3C,MAAMwF,EAAaR,GAAsBjmB,GAAS,EAAmB,UAAbihB,GAClDxC,EAAMgI,EAAWhI,IAAMze,EAAQsnB,UAC/BhJ,EAAOmI,EAAWnI,KAAOte,EAAQonB,WACjCV,EAAQ1D,GAAchjB,GAAW+hB,GAAS/hB,GAAWie,GAAa,GAKxE,MAAO,CACL0B,MALY3f,EAAQgoB,YAActB,EAAMvI,EAMxCyB,OALa5f,EAAQioB,aAAevB,EAAMtI,EAM1CD,EALQG,EAAOoI,EAAMvI,EAMrBC,EALQK,EAAMiI,EAAMtI,EAOxB,CAQWqK,CAA2BX,EAAkB7G,OAC/C,CACL,MAAM0F,EAAgBN,GAAiBrmB,GACvC0f,EAAO,IACFoI,EACH3J,EAAG2J,EAAiB3J,EAAIwI,EAAcxI,EACtCC,EAAG0J,EAAiB1J,EAAIuI,EAAcvI,EAE1C,CACA,OAAOqB,GAAiBC,EAC1B,CACA,SAASgJ,GAAyB1oB,EAAS2oB,GACzC,MAAMjU,EAAakQ,GAAc5kB,GACjC,QAAI0U,IAAeiU,IAAalH,GAAU/M,IAAe6P,GAAsB7P,MAG9B,UAA1C,GAAiBA,GAAYkU,UAAwBF,GAAyBhU,EAAYiU,GACnG,CA2EA,SAASE,GAA8B7oB,EAAS4hB,EAAcX,GAC5D,MAAM6H,EAA0B9F,GAAcpB,GACxCiB,EAAkBlB,GAAmBC,GACrCgF,EAAuB,UAAb3F,EACVvB,EAAOuG,GAAsBjmB,GAAS,EAAM4mB,EAAShF,GAC3D,IAAIwG,EAAS,CACX3D,WAAY,EACZ1a,UAAW,GAEb,MAAMgf,EAAU9K,GAAa,GAC7B,GAAI6K,IAA4BA,IAA4BlC,EAI1D,IAHkC,SAA9BvE,GAAYT,IAA4BwB,GAAkBP,MAC5DuF,EAAS5D,GAAc5C,IAErBkH,EAAyB,CAC3B,MAAME,EAAa/C,GAAsBrE,GAAc,EAAMgF,EAAShF,GACtEmH,EAAQ5K,EAAI6K,EAAW7K,EAAIyD,EAAawF,WACxC2B,EAAQ3K,EAAI4K,EAAW5K,EAAIwD,EAAa0F,SAC1C,MAAWzE,IACTkG,EAAQ5K,EAAIyJ,GAAoB/E,IAKpC,MAAO,CACL1E,EAHQuB,EAAKpB,KAAO8J,EAAO3D,WAAasE,EAAQ5K,EAIhDC,EAHQsB,EAAKjB,IAAM2J,EAAOre,UAAYgf,EAAQ3K,EAI9CuB,MAAOD,EAAKC,MACZC,OAAQF,EAAKE,OAEjB,CAEA,SAASqJ,GAAoBjpB,EAASkpB,GACpC,OAAKlG,GAAchjB,IAAmD,UAAvC,GAAiBA,GAAS4oB,SAGrDM,EACKA,EAASlpB,GAEXA,EAAQ4hB,aALN,IAMX,CAIA,SAASC,GAAgB7hB,EAASkpB,GAChC,MAAMvuB,EAAS8nB,GAAUziB,GACzB,IAAKgjB,GAAchjB,IAAYynB,GAAWznB,GACxC,OAAOrF,EAET,IAAIinB,EAAeqH,GAAoBjpB,EAASkpB,GAChD,KAAOtH,GAAgB6B,GAAe7B,IAA6D,WAA5C,GAAiBA,GAAcgH,UACpFhH,EAAeqH,GAAoBrH,EAAcsH,GAEnD,OAAItH,IAA+C,SAA9BS,GAAYT,IAA0D,SAA9BS,GAAYT,IAAwE,WAA5C,GAAiBA,GAAcgH,WAA0BlF,GAAkB9B,IACvKjnB,EAEFinB,GDvWT,SAA4B5hB,GAC1B,IAAImpB,EAAcvE,GAAc5kB,GAChC,KAAOgjB,GAAcmG,KAAiB5E,GAAsB4E,IAAc,CACxE,GAAIzF,GAAkByF,GACpB,OAAOA,EAEPA,EAAcvE,GAAcuE,EAEhC,CACA,OAAO,IACT,CC6VyBC,CAAmBppB,IAAYrF,CACxD,CAmBA,MAAMmmB,GAAW,CACfmB,sDAhSF,SAA+DnC,GAC7D,IAAI,SACFkB,EAAQ,KACRtB,EAAI,aACJkC,EAAY,SACZX,GACEnB,EACJ,MAAM8G,EAAuB,UAAb3F,EACV4B,EAAkBlB,GAAmBC,GACrCyH,IAAWrI,GAAWyG,GAAWzG,EAASf,UAChD,GAAI2B,IAAiBiB,GAAmBwG,GAAYzC,EAClD,OAAOlH,EAET,IAAI0I,EAAS,CACX3D,WAAY,EACZ1a,UAAW,GAET2c,EAAQzI,GAAa,GACzB,MAAM8K,EAAU9K,GAAa,GACvB6K,EAA0B9F,GAAcpB,GAC9C,IAAIkH,IAA4BA,IAA4BlC,MACxB,SAA9BvE,GAAYT,IAA4BwB,GAAkBP,MAC5DuF,EAAS5D,GAAc5C,IAErBoB,GAAcpB,IAAe,CAC/B,MAAMoH,EAAa/C,GAAsBrE,GACzC8E,EAAQ3E,GAASH,GACjBmH,EAAQ5K,EAAI6K,EAAW7K,EAAIyD,EAAawF,WACxC2B,EAAQ3K,EAAI4K,EAAW5K,EAAIwD,EAAa0F,SAC1C,CAEF,MAAO,CACL3H,MAAOD,EAAKC,MAAQ+G,EAAMvI,EAC1ByB,OAAQF,EAAKE,OAAS8G,EAAMtI,EAC5BD,EAAGuB,EAAKvB,EAAIuI,EAAMvI,EAAIiK,EAAO3D,WAAaiC,EAAMvI,EAAI4K,EAAQ5K,EAC5DC,EAAGsB,EAAKtB,EAAIsI,EAAMtI,EAAIgK,EAAOre,UAAY2c,EAAMtI,EAAI2K,EAAQ3K,EAE/D,EA4PEuD,mBAAkB,GAClBH,gBApHF,SAAyB1B,GACvB,IAAI,QACF9f,EAAO,SACPkhB,EAAQ,aACRC,EAAY,SACZF,GACEnB,EACJ,MACMwJ,EAAoB,IADoB,sBAAbpI,EAxCnC,SAAqClhB,EAASupB,GAC5C,MAAMC,EAAeD,EAAME,IAAIzpB,GAC/B,GAAIwpB,EACF,OAAOA,EAET,IAAI3E,EAASI,GAAqBjlB,EAAS,IAAI,GAAOpD,QAAOzE,GAAMspB,GAAUtpB,IAA2B,SAApBkqB,GAAYlqB,KAC5FuxB,EAAsC,KAC1C,MAAMC,EAAwD,UAAvC,GAAiB3pB,GAAS4oB,SACjD,IAAIO,EAAcQ,EAAiB/E,GAAc5kB,GAAWA,EAG5D,KAAOyhB,GAAU0H,KAAiB5E,GAAsB4E,IAAc,CACpE,MAAMS,EAAgB,GAAiBT,GACjCU,EAA0BnG,GAAkByF,GAC7CU,GAAsD,UAA3BD,EAAchB,WAC5Cc,EAAsC,OAEVC,GAAkBE,IAA4BH,GAAuCG,GAAsD,WAA3BD,EAAchB,UAA2Bc,GAAuC,CAAC,WAAY,SAAS7rB,SAAS6rB,EAAoCd,WAAaxF,GAAkB+F,KAAiBU,GAA2BnB,GAAyB1oB,EAASmpB,IAG5YtE,EAASA,EAAOjoB,QAAOktB,GAAYA,IAAaX,IAGhDO,EAAsCE,EAExCT,EAAcvE,GAAcuE,EAC9B,CAEA,OADAI,EAAMQ,IAAI/pB,EAAS6kB,GACZA,CACT,CAWsEmF,CAA4BhqB,EAAShH,KAAKixB,IAAM,GAAG/U,OAAOgM,GACtEC,GAClD+I,EAAwBZ,EAAkB,GAC1Ca,EAAeb,EAAkBvR,QAAO,CAACqS,EAAStC,KACtD,MAAMpI,EAAOmI,GAAkC7nB,EAAS8nB,EAAkB7G,GAK1E,OAJAmJ,EAAQ3L,IAAM,GAAIiB,EAAKjB,IAAK2L,EAAQ3L,KACpC2L,EAAQ7L,MAAQ,GAAImB,EAAKnB,MAAO6L,EAAQ7L,OACxC6L,EAAQ5L,OAAS,GAAIkB,EAAKlB,OAAQ4L,EAAQ5L,QAC1C4L,EAAQ9L,KAAO,GAAIoB,EAAKpB,KAAM8L,EAAQ9L,MAC/B8L,CAAO,GACbvC,GAAkC7nB,EAASkqB,EAAuBjJ,IACrE,MAAO,CACLtB,MAAOwK,EAAa5L,MAAQ4L,EAAa7L,KACzCsB,OAAQuK,EAAa3L,OAAS2L,EAAa1L,IAC3CN,EAAGgM,EAAa7L,KAChBF,EAAG+L,EAAa1L,IAEpB,EA6FEoD,mBACAwI,gBAtBsB3J,eAAgB4J,GACtC,MAAMC,EAAoBvxB,KAAK6oB,iBAAmBA,GAC5C2I,EAAkBxxB,KAAKyxB,cAC7B,MAAO,CACLzK,UAAW6I,GAA8ByB,EAAKtK,gBAAiBuK,EAAkBD,EAAKrK,UAAWqK,EAAKrJ,UACtGhB,SAAU,CACR9B,EAAG,EACHC,EAAG,WACOoM,EAAgBF,EAAKrK,WAGrC,EAYEyK,eA9PF,SAAwB1qB,GACtB,OAAOiD,MAAM+O,KAAKhS,EAAQ0qB,iBAC5B,EA6PED,cA9FF,SAAuBzqB,GACrB,MAAM,MACJ2f,EAAK,OACLC,GACE8F,GAAiB1lB,GACrB,MAAO,CACL2f,QACAC,SAEJ,EAsFEmC,YACAN,UAAS,GACTkJ,MAdF,SAAe3qB,GACb,MAA+C,QAAxC,GAAiBA,GAASuoB,SACnC,GA+KA,MAOM,GF+LQ,SAAUnrB,GAItB,YAHgB,IAAZA,IACFA,EAAU,CAAC,GAEN,CACLwtB,KAAM,QACNxtB,UACA,QAAM4b,CAAG4H,GACP,MAAM,EACJzC,EAAC,EACDC,EAAC,UACDW,GACE6B,GAEFiK,SAAUC,GAAgB,EAC1BC,UAAWC,GAAiB,EAAK,QACjCC,EAAU,CACRjS,GAAI8G,IACF,IAAI,EACF3B,EAAC,EACDC,GACE0B,EACJ,MAAO,CACL3B,IACAC,IACD,MAGF8M,GACD,GAAS9tB,EAASwjB,GAChBH,EAAS,CACbtC,IACAC,KAEIiF,QAAiB1C,GAAeC,EAAOsK,GACvCH,EAAY,GAAY,GAAQhM,IAChC8L,EAAW,GAAgBE,GACjC,IAAII,EAAgB1K,EAAOoK,GACvBO,EAAiB3K,EAAOsK,GAC5B,GAAID,EAAe,CACjB,MACMO,EAAuB,MAAbR,EAAmB,SAAW,QAG9CM,EAAgBtM,GAFJsM,EAAgB9H,EAFC,MAAbwH,EAAmB,MAAQ,QAIhBM,EADfA,EAAgB9H,EAASgI,GAEvC,CACA,GAAIL,EAAgB,CAClB,MACMK,EAAwB,MAAdN,EAAoB,SAAW,QAG/CK,EAAiBvM,GAFLuM,EAAiB/H,EAFC,MAAd0H,EAAoB,MAAQ,QAIhBK,EADhBA,EAAiB/H,EAASgI,GAExC,CACA,MAAMC,EAAgBL,EAAQjS,GAAG,IAC5B4H,EACH,CAACiK,GAAWM,EACZ,CAACJ,GAAYK,IAEf,MAAO,IACFE,EACHhB,KAAM,CACJnM,EAAGmN,EAAcnN,EAAIA,EACrBC,EAAGkN,EAAclN,EAAIA,GAG3B,EAEJ,EE1PM,GFtNO,SAAUhhB,GAIrB,YAHgB,IAAZA,IACFA,EAAU,CAAC,GAEN,CACLwtB,KAAM,OACNxtB,UACA,QAAM4b,CAAG4H,GACP,IAAI2K,EAAuBC,EAC3B,MAAM,UACJzM,EAAS,eACT0M,EAAc,MACd1K,EAAK,iBACL2K,EAAgB,SAChB5K,EAAQ,SACRE,GACEJ,GAEFiK,SAAUC,GAAgB,EAC1BC,UAAWC,GAAiB,EAC5BW,mBAAoBC,EAA2B,iBAC/CC,EAAmB,UAAS,0BAC5BC,EAA4B,OAAM,cAClCC,GAAgB,KACbb,GACD,GAAS9tB,EAASwjB,GAMtB,GAAsD,OAAjD2K,EAAwBE,EAAeO,QAAkBT,EAAsBU,gBAClF,MAAO,CAAC,EAEV,MAAM5M,EAAO,GAAQN,GACfmN,EAAkB,GAAQR,KAAsBA,EAChD3L,QAA+B,MAAlBe,EAAS6J,WAAgB,EAAS7J,EAAS6J,MAAM3J,EAASf,WACvE0L,EAAqBC,IAAgCM,IAAoBH,EAAgB,CAAC3M,GAAqBsM,ID3X3H,SAA+B3M,GAC7B,MAAMoN,EAAoB/M,GAAqBL,GAC/C,MAAO,CAAC,GAA8BA,GAAYoN,EAAmB,GAA8BA,GACrG,CCwXgJC,CAAsBV,IAC3JE,GAA6D,SAA9BE,GAClCH,EAAmBrW,QDrW3B,SAAmCyJ,EAAWgN,EAAexD,EAAWxI,GACtE,MAAMZ,EAAY,GAAaJ,GAC/B,IAAImG,EAnBN,SAAqB7F,EAAMgN,EAAStM,GAClC,MAAMuM,EAAK,CAAC,OAAQ,SACdC,EAAK,CAAC,QAAS,QACfC,EAAK,CAAC,MAAO,UACbC,EAAK,CAAC,SAAU,OACtB,OAAQpN,GACN,IAAK,MACL,IAAK,SACH,OAAIU,EAAYsM,EAAUE,EAAKD,EACxBD,EAAUC,EAAKC,EACxB,IAAK,OACL,IAAK,QACH,OAAOF,EAAUG,EAAKC,EACxB,QACE,MAAO,GAEb,CAGaC,CAAY,GAAQ3N,GAA0B,UAAdwJ,EAAuBxI,GAOlE,OANIZ,IACF+F,EAAOA,EAAKpT,KAAIuN,GAAQA,EAAO,IAAMF,IACjC4M,IACF7G,EAAOA,EAAKhQ,OAAOgQ,EAAKpT,IAAI,OAGzBoT,CACT,CC2VmCyH,CAA0BjB,EAAkBK,EAAeD,EAA2B/L,IAEnH,MAAM6M,EAAa,CAAClB,KAAqBC,GACnCtI,QAAiB1C,GAAeC,EAAOsK,GACvC2B,EAAY,GAClB,IAAIC,GAAiE,OAA/CtB,EAAuBC,EAAesB,WAAgB,EAASvB,EAAqBqB,YAAc,GAIxH,GAHI/B,GACF+B,EAAUvX,KAAK+N,EAAShE,IAEtB2L,EAAgB,CAClB,MAAMgC,EDpZd,SAA2BjO,EAAWgC,EAAOhB,QAC/B,IAARA,IACFA,GAAM,GAER,MAAMZ,EAAY,GAAaJ,GACzBoB,EAAgBjB,GAAiBH,GACjCziB,EAAS2iB,GAAckB,GAC7B,IAAI8M,EAAsC,MAAlB9M,EAAwBhB,KAAeY,EAAM,MAAQ,SAAW,QAAU,OAAuB,UAAdZ,EAAwB,SAAW,MAI9I,OAHI4B,EAAMf,UAAU1jB,GAAUykB,EAAMd,SAAS3jB,KAC3C2wB,EAAoB7N,GAAqB6N,IAEpC,CAACA,EAAmB7N,GAAqB6N,GAClD,CCwYsB,CAAkBlO,EAAWgC,EAAOhB,GAClD8M,EAAUvX,KAAK+N,EAAS2J,EAAM,IAAK3J,EAAS2J,EAAM,IACpD,CAOA,GANAF,EAAgB,IAAIA,EAAe,CACjC/N,YACA8N,eAIGA,EAAUK,OAAM7N,GAAQA,GAAQ,IAAI,CACvC,IAAI8N,EAAuBC,EAC3B,MAAMC,IAA+D,OAAhDF,EAAwB1B,EAAesB,WAAgB,EAASI,EAAsB9wB,QAAU,GAAK,EACpHixB,EAAgBV,EAAWS,GACjC,GAAIC,EAEF,MAAO,CACLhD,KAAM,CACJjuB,MAAOgxB,EACPR,UAAWC,GAEbluB,MAAO,CACLmgB,UAAWuO,IAOjB,IAAIC,EAAgJ,OAA9HH,EAAwBN,EAAclwB,QAAO4wB,GAAKA,EAAEX,UAAU,IAAM,IAAGY,MAAK,CAACzY,EAAGC,IAAMD,EAAE6X,UAAU,GAAK5X,EAAE4X,UAAU,KAAI,SAAc,EAASO,EAAsBrO,UAG1L,IAAKwO,EACH,OAAQ1B,GACN,IAAK,UACH,CACE,IAAI6B,EACJ,MAAM3O,EAAyM,OAA5L2O,EAAwBZ,EAAchb,KAAI0b,GAAK,CAACA,EAAEzO,UAAWyO,EAAEX,UAAUjwB,QAAOymB,GAAYA,EAAW,IAAGtL,QAAO,CAAC4V,EAAKtK,IAAasK,EAAMtK,GAAU,MAAKoK,MAAK,CAACzY,EAAGC,IAAMD,EAAE,GAAKC,EAAE,KAAI,SAAc,EAASyY,EAAsB,GACjP3O,IACFwO,EAAiBxO,GAEnB,KACF,CACF,IAAK,mBACHwO,EAAiB7B,EAIvB,GAAI3M,IAAcwO,EAChB,MAAO,CACL3uB,MAAO,CACLmgB,UAAWwO,GAInB,CACA,MAAO,CAAC,CACV,EAEJ,EEiIM,GFtaQnwB,IAAW,CACvBwtB,KAAM,QACNxtB,UACA,QAAM4b,CAAG4H,GACP,MAAM,EACJzC,EAAC,EACDC,EAAC,UACDW,EAAS,MACTgC,EAAK,SACLD,EAAQ,SACRE,EAAQ,eACRyK,GACE7K,GAEE,QACJ5gB,EAAO,QACPuf,EAAU,GACR,GAASniB,EAASwjB,IAAU,CAAC,EACjC,GAAe,MAAX5gB,EACF,MAAO,CAAC,EAEV,MAAMshB,EAAgBhC,GAAiBC,GACjCkB,EAAS,CACbtC,IACAC,KAEIziB,EAAOujB,GAAiBH,GACxBziB,EAAS2iB,GAActjB,GACvBiyB,QAAwB9M,EAAS2J,cAAczqB,GAC/C6tB,EAAmB,MAATlyB,EACVmyB,EAAUD,EAAU,MAAQ,OAC5BE,EAAUF,EAAU,SAAW,QAC/BG,EAAaH,EAAU,eAAiB,cACxCI,EAAUlN,EAAMf,UAAU1jB,GAAUykB,EAAMf,UAAUrkB,GAAQ8kB,EAAO9kB,GAAQolB,EAAMd,SAAS3jB,GAC1F4xB,EAAYzN,EAAO9kB,GAAQolB,EAAMf,UAAUrkB,GAC3CwyB,QAAuD,MAA5BrN,EAASe,qBAA0B,EAASf,EAASe,gBAAgB7hB,IACtG,IAAIouB,EAAaD,EAAoBA,EAAkBH,GAAc,EAGhEI,SAA6C,MAAtBtN,EAASW,eAAoB,EAASX,EAASW,UAAU0M,MACnFC,EAAapN,EAASf,SAAS+N,IAAejN,EAAMd,SAAS3jB,IAE/D,MAAM+xB,EAAoBJ,EAAU,EAAIC,EAAY,EAI9CI,EAAyBF,EAAa,EAAIR,EAAgBtxB,GAAU,EAAI,EACxEiyB,EAAa,GAAIjN,EAAcwM,GAAUQ,GACzCE,EAAa,GAAIlN,EAAcyM,GAAUO,GAIzCG,EAAQF,EACR50B,EAAMy0B,EAAaR,EAAgBtxB,GAAUkyB,EAC7CE,EAASN,EAAa,EAAIR,EAAgBtxB,GAAU,EAAI+xB,EACxDM,EAAS9P,GAAM4P,EAAOC,EAAQ/0B,GAM9Bi1B,GAAmBnD,EAAeO,OAAoC,MAA3B,GAAajN,IAAsB2P,IAAWC,GAAU5N,EAAMf,UAAU1jB,GAAU,GAAKoyB,EAASD,EAAQF,EAAaC,GAAcZ,EAAgBtxB,GAAU,EAAI,EAC5M2vB,EAAkB2C,EAAkBF,EAASD,EAAQC,EAASD,EAAQC,EAAS/0B,EAAM,EAC3F,MAAO,CACL,CAACgC,GAAO8kB,EAAO9kB,GAAQswB,EACvB3B,KAAM,CACJ,CAAC3uB,GAAOgzB,EACRE,aAAcH,EAASC,EAAS1C,KAC5B2C,GAAmB,CACrB3C,oBAGJrtB,MAAOgwB,EAEX,IEmWI,GFjCS,SAAUxxB,GAIvB,YAHgB,IAAZA,IACFA,EAAU,CAAC,GAEN,CACLwtB,KAAM,SACNxtB,UACA,QAAM4b,CAAG4H,GACP,MAAM,UACJ7B,EAAS,SACTiC,EAAQ,MACRD,EAAK,SACLD,EAAQ,SACRG,GACEL,GAIE,QACJrB,EAAU,EAAC,EACXpB,EAAC,EACDC,GACE,GAAShhB,EAASwjB,GAChBkO,EAAoB7rB,MAAM+O,WAAwC,MAA3B8O,EAAS4J,oBAAyB,EAAS5J,EAAS4J,eAAe1J,EAAShB,aAAgB,IACnI+O,EA5CZ,SAAwBhO,GACtB,MAAMiO,EAAcjO,EAAMnoB,QAAQ60B,MAAK,CAACzY,EAAGC,IAAMD,EAAEoJ,EAAInJ,EAAEmJ,IACnD6Q,EAAS,GACf,IAAIC,EAAW,KACf,IAAK,IAAIz1B,EAAI,EAAGA,EAAIu1B,EAAY1yB,OAAQ7C,IAAK,CAC3C,MAAMimB,EAAOsP,EAAYv1B,IACpBy1B,GAAYxP,EAAKtB,EAAI8Q,EAAS9Q,EAAI8Q,EAAStP,OAAS,EACvDqP,EAAO3Z,KAAK,CAACoK,IAEbuP,EAAOA,EAAO3yB,OAAS,GAAGgZ,KAAKoK,GAEjCwP,EAAWxP,CACb,CACA,OAAOuP,EAAOnd,KAAI4N,GAAQD,GAAiByC,GAAgBxC,KAC7D,CA8B0ByP,CAAeL,GAC7BM,EAAW3P,GAAiByC,GAAgB4M,IAC5CxN,EAAgBhC,GAAiBC,GAsDjC8P,QAAmBvO,EAASuJ,gBAAgB,CAChDrK,UAAW,CACTiG,sBAvDJ,WAEE,GAA2B,IAAvB8I,EAAYzyB,QAAgByyB,EAAY,GAAGzQ,KAAOyQ,EAAY,GAAGxQ,OAAc,MAALJ,GAAkB,MAALC,EAEzF,OAAO2Q,EAAYO,MAAK5P,GAAQvB,EAAIuB,EAAKpB,KAAOgD,EAAchD,MAAQH,EAAIuB,EAAKnB,MAAQ+C,EAAc/C,OAASH,EAAIsB,EAAKjB,IAAM6C,EAAc7C,KAAOL,EAAIsB,EAAKlB,OAAS8C,EAAc9C,UAAW4Q,EAI/L,GAAIL,EAAYzyB,QAAU,EAAG,CAC3B,GAA+B,MAA3B,GAAYyiB,GAAoB,CAClC,MAAMwQ,EAAYR,EAAY,GACxBS,EAAWT,EAAYA,EAAYzyB,OAAS,GAC5CmzB,EAA+B,QAAvB,GAAQ1Q,GAChBN,EAAM8Q,EAAU9Q,IAChBD,EAASgR,EAAShR,OAClBF,EAAOmR,EAAQF,EAAUjR,KAAOkR,EAASlR,KACzCC,EAAQkR,EAAQF,EAAUhR,MAAQiR,EAASjR,MAGjD,MAAO,CACLE,MACAD,SACAF,OACAC,QACAoB,MAPYpB,EAAQD,EAQpBsB,OAPapB,EAASC,EAQtBN,EAAGG,EACHF,EAAGK,EAEP,CACA,MAAMiR,EAAoC,SAAvB,GAAQ3Q,GACrB4Q,EAAW,MAAOZ,EAAYjd,KAAI4N,GAAQA,EAAKnB,SAC/CqR,EAAU,MAAOb,EAAYjd,KAAI4N,GAAQA,EAAKpB,QAC9CuR,EAAed,EAAYnyB,QAAO8iB,GAAQgQ,EAAahQ,EAAKpB,OAASsR,EAAUlQ,EAAKnB,QAAUoR,IAC9FlR,EAAMoR,EAAa,GAAGpR,IACtBD,EAASqR,EAAaA,EAAavzB,OAAS,GAAGkiB,OAKrD,MAAO,CACLC,MACAD,SACAF,KAPWsR,EAQXrR,MAPYoR,EAQZhQ,MARYgQ,EADDC,EAUXhQ,OAPapB,EAASC,EAQtBN,EAXWyR,EAYXxR,EAAGK,EAEP,CACA,OAAO2Q,CACT,GAKEnP,SAAUe,EAASf,SACnBgB,aAEF,OAAIF,EAAMf,UAAU7B,IAAMkR,EAAWrP,UAAU7B,GAAK4C,EAAMf,UAAU5B,IAAMiR,EAAWrP,UAAU5B,GAAK2C,EAAMf,UAAUL,QAAU0P,EAAWrP,UAAUL,OAASoB,EAAMf,UAAUJ,SAAWyP,EAAWrP,UAAUJ,OACnM,CACLhhB,MAAO,CACLmiB,MAAOsO,IAIN,CAAC,CACV,EAEJ,EGtsBA,QAA+BS,IAA3Bn1B,OAAOo1B,gBAA+B,CACxC,MAAMC,EAAe,IAAID,gBAAgBE,SAASC,QAC9CF,EAAaG,IAAI,UAA0C,MAA9BH,EAAavG,IAAI,UAChD3uB,SAASuC,iBAAiB,cAAciE,SAAQ8uB,IAC9CA,EAAgB1pB,UAAUC,IAAI,mBAAmB,IAGjDqpB,EAAaG,IAAI,SAAwC,MAA7BH,EAAavG,IAAI,SAC/C3uB,SAAS+K,cAAc,QAAQa,UAAUC,IAAI,4BAEjD,CACA,MAAM0pB,GAAc,GAsBpB,IAAIC,GACJ,MAAMC,GAAWt4B,GAAKkW,QAAQC,IAAInW,EAAEkH,KAAMlH,EAAEY,QAsC5CiC,SAAS0Y,eAAe,eAAetY,iBAAiB,SAAS,WAC/D,MAAMs1B,EAASx3B,KACfw3B,EAAOv2B,aAAa,aAAc,WAClCu2B,EAAOvf,UAAY,4VACnBtW,OAAO4K,YAAW,WAChBirB,EAAO3oB,gBAAgB,cACvB2oB,EAAOvf,UAAY,kBACrB,GAAG,IACL,IAGAnW,SAASuC,iBAAiB,yCAAyCiE,SAAQ,SAAUnJ,GACnFA,EAAG+C,iBAAiB,SAAS,WAC3B,MAAM8X,GAA6B,IAAjBha,KAAKsY,QACvBtY,KAAKiB,aAAa,eAAgB+Y,EAAY,QAAU,QAC1D,GACF,IAGAlY,SAASuC,iBAAiB,gBAAgBiE,SAAQ,SAAUnJ,GAC1D,MAAMwnB,EAAQxnB,EAAGwP,YAEX8oB,EADet4B,EAAGkwB,YACU1I,EAC9B8Q,GACFt4B,EAAGiwB,OAAOqI,EAAY,EAE1B,IAIA31B,SAASuC,iBAAiB,eAAeiE,SAAQ,SAAUnJ,GACzDA,EAAG+C,iBAAiB,SAAS,WAC3B,MAAMw1B,EAAoD,SAAvC13B,KAAKkD,aAAa,iBACrClD,KAAKiB,aAAa,iBAAkBy2B,EACtC,GACF,IACA51B,SAASuC,iBAAiB,oCAAoCiE,SAAQ,SAAUnJ,GAC9EA,EAAG+C,iBAAiB,SAAS,WAC3B,MAAMw1B,EAAoD,SAAvC13B,KAAKkD,aAAa,iBACrClD,KAAKiB,aAAa,iBAAkBy2B,EACtC,GACF,IAGA51B,SAASuC,iBAAiB,qBAAqBiE,SAAQ,SAAUyJ,GAC/D,IAAI5G,EAAe,YACf4G,EAASlF,cAAc,eACzB1B,EAAe,cACN4G,EAASlF,cAAc,UAChC1B,EAAe,QAEjBksB,GAAY/a,KAAK,IAAI,GAASvK,EAAU,CACtChH,eAAe,EACfL,oBAAoB,EACpBE,oBAAoB,EACpBC,gBAAiB,0BACjBK,gBAAiB,YACjBC,iBAEJ,IAGArJ,SAASuC,iBAAiB,aAAaiE,SAAQ,SAAUyJ,GACvDslB,GAAY/a,KAAK,IAAI,GAASvK,IAC9BA,EAAS7P,iBAAiB,yBAA0Bq1B,GACtD,IAGAz1B,SAASuC,iBAAiB,kBAAkBiE,SAAQ,SAAUnJ,GAC5D,MAAMw4B,EAAWx4B,EAAG0X,QAAQ+gB,UACtBC,EAAW/1B,SAAS0Y,eAAemd,GACnCG,EAAkBD,EAASnqB,UACjC,IAAIsU,EACA8V,EAAgBr2B,SAAS,kBAC3BugB,EAAe,IAAI,GAAc6V,GACxBC,EAAgBr2B,SAAS,gBAClCugB,EAAe,IAAI,GAAY6V,GACtBC,EAAgBr2B,SAAS,0BAClCugB,EAAe,IAAI,GAAY6V,GACtBC,EAAgBr2B,SAAS,qBAClCugB,EAAe,IAAI,GAAiB6V,GAC3BC,EAAgBr2B,SAAS,mBAClCugB,EAAe,IAAI,GAAe6V,GACzBC,EAAgBr2B,SAAS,gBAClCugB,EAAe,IAAI,GAAY6V,GACtBC,EAAgBr2B,SAAS,iBAClCugB,EAAe,IAAI,GAAa6V,GACvBC,EAAgBr2B,SAAS,gBAClCugB,EAAe,IAAI,GAAY6V,GACtBC,EAAgBr2B,SAAS,qBAClCugB,EAAe,IAAI,GAAe6V,IAEpCR,GAAY/a,KAAK,IAAI,GAAand,EAAI6iB,IACtCA,EAAapd,IAAI1C,iBAAiB,cAAeq1B,IACjDvV,EAAapd,IAAI1C,iBAAiB,eAAgBq1B,IAClDvV,EAAapd,IAAI1C,iBAAiB,qBAAsBq1B,IACxDvV,EAAapd,IAAI1C,iBAAiB,iBAAkBq1B,IACpDvV,EAAapd,IAAI1C,iBAAiB,gBAAiBq1B,IACnDvV,EAAapd,IAAI1C,iBAAiB,aAAcq1B,GAClD,IAIA,MAAMQ,GACJ,WAAA31B,CAAY2P,EAAUimB,GACpBh4B,KAAKi4B,mBAAqBlmB,EAASlF,cAAc,sCACjD7M,KAAKg4B,SAAWA,EACZh4B,KAAKi4B,oBAAsBj4B,KAAKg4B,WAClCh4B,KAAKk4B,eAAgB,EACrBl4B,KAAKm4B,cAAgBpmB,EAASlF,cAAc,wBAC5C7M,KAAKo4B,iBAAmBrmB,EAASlF,cAAc,mBAC/C7M,KAAKq4B,aAAe,EACpBr4B,KAAKs4B,QAAUt4B,KAAKg4B,SAASh4B,KAAKq4B,cAEtC,CACA,gBAAAE,GACMv4B,KAAKk4B,eAAiBl4B,KAAKg4B,SAAS10B,OAAS,IAC/CtD,KAAKq4B,cAAgBr4B,KAAKq4B,aAAe,GAAKr4B,KAAKg4B,SAAS10B,OAC5DtD,KAAKs4B,QAAUt4B,KAAKg4B,SAASh4B,KAAKq4B,cAClCr4B,KAAKm4B,cAAcjlB,UAAYlT,KAAKg4B,SAASh4B,KAAKq4B,cAClDr4B,KAAKm4B,cAAczqB,UAAUC,IAAI,wCACjC3N,KAAKo4B,iBAAiB1qB,UAAUC,IAAI,yCACpCpB,WAAWvM,KAAKw4B,YAAYl2B,KAAKtC,MAAO,KAE5C,CACA,WAAAw4B,GACMx4B,KAAKk4B,gBACPl4B,KAAKo4B,iBAAiBllB,UAAYlT,KAAKs4B,QACvCt4B,KAAKo4B,iBAAiB1qB,UAAUG,OAAO,yCACvC7N,KAAKm4B,cAAczqB,UAAUG,OAAO,wCACpCtB,WAAWvM,KAAKu4B,iBAAiBj2B,KAAKtC,MAAO,KAEjD,EAEF8B,SAASuC,iBAAiB,6CAA6CiE,SAAQ,SAAUyJ,GACvF,MAAM0mB,EAAwB,IAAIV,GAAsBhmB,EAAU,CAAC,cAAe,8BAA+B,yBAC7G0mB,EAAsBP,eACxBO,EAAsBF,kBAE1B,IACA,MAAMG,GACJ,WAAAt2B,CAAY2P,EAAUhR,GACpBf,KAAK+rB,KAAOha,EAASlF,cAAc,IAAIqP,OAAOnb,EAAQ,WACtDf,KAAK24B,QAAU5mB,EAASlF,cAAc,IAAIqP,OAAOnb,EAAQ,cACzDf,KAAK44B,QAAU7mB,EAASlF,cAAc,IAAIqP,OAAOnb,EAAQ,cACrDf,KAAK+rB,MAAQ/rB,KAAK24B,UACpB34B,KAAKk4B,eAAgB,EAEzB,CACA,IAAAW,GACE74B,KAAK84B,QD+ST,SAAoB9R,EAAWC,EAAU8R,EAAQ30B,QAC/B,IAAZA,IACFA,EAAU,CAAC,GAEb,MAAM,eACJ40B,GAAiB,EAAI,eACrBC,GAAiB,EAAI,cACrBC,EAA0C,mBAAnBC,eAA6B,YACpDC,EAA8C,mBAAzBC,qBAAmC,eACxDC,GAAiB,GACfl1B,EACEm1B,EAAcxM,GAAc/F,GAC5BrK,EAAYqc,GAAkBC,EAAiB,IAAKM,EAActN,GAAqBsN,GAAe,MAAQtN,GAAqBhF,IAAa,GACtJtK,EAAUrU,SAAQwoB,IAChBkI,GAAkBlI,EAAS5uB,iBAAiB,SAAU62B,EAAQ,CAC5DS,SAAS,IAEXP,GAAkBnI,EAAS5uB,iBAAiB,SAAU62B,EAAO,IAE/D,MAAMU,EAAYF,GAAeH,EArGnC,SAAqBpyB,EAAS0yB,GAC5B,IACIC,EADAC,EAAK,KAET,MAAMC,EAAOlR,GAAmB3hB,GAChC,SAAS8xB,IACP,IAAIgB,EACJ3tB,aAAawtB,GACC,OAAbG,EAAMF,IAAeE,EAAI5xB,aAC1B0xB,EAAK,IACP,CA8DA,OA7DA,SAASppB,EAAQupB,EAAMC,QACR,IAATD,IACFA,GAAO,QAES,IAAdC,IACFA,EAAY,GAEdlB,IACA,MAAM,KACJxT,EAAI,IACJG,EAAG,MACHkB,EAAK,OACLC,GACE5f,EAAQimB,wBAIZ,GAHK8M,GACHL,KAEG/S,IAAUC,EACb,OAEF,MAKMxiB,EAAU,CACd61B,YANep5B,GAAM4kB,GAIQ,OAHZ5kB,GAAMg5B,EAAK7K,aAAe1J,EAAOqB,IAGC,OAFjC9lB,GAAMg5B,EAAK5K,cAAgBxJ,EAAMmB,IAEuB,OAD1D/lB,GAAMykB,GACyE,KAG/F0U,UAAW,GAAI,EAAG,GAAI,EAAGA,KAAe,GAE1C,IAAIE,GAAgB,EACpB,SAASC,EAAcC,GACrB,MAAMC,EAAQD,EAAQ,GAAGE,kBACzB,GAAID,IAAUL,EAAW,CACvB,IAAKE,EACH,OAAO1pB,IAEJ6pB,EAKH7pB,GAAQ,EAAO6pB,GAJfV,EAAYptB,YAAW,KACrBiE,GAAQ,EAAO,KAAK,GACnB,IAIP,CACA0pB,GAAgB,CAClB,CAIA,IACEN,EAAK,IAAIP,qBAAqBc,EAAe,IACxC/1B,EAEHy1B,KAAMA,EAAKlQ,eAEf,CAAE,MAAO1qB,GACP26B,EAAK,IAAIP,qBAAqBc,EAAe/1B,EAC/C,CACAw1B,EAAGjyB,QAAQX,EACb,CACAwJ,EAAQ,GACDsoB,CACT,CA6BiDyB,CAAYhB,EAAaR,GAAU,KAClF,IAsBIyB,EAtBAC,GAAkB,EAClBC,EAAiB,KACjBxB,IACFwB,EAAiB,IAAIvB,gBAAerS,IAClC,IAAK6T,GAAc7T,EACf6T,GAAcA,EAAWn5B,SAAW+3B,GAAemB,IAGrDA,EAAeE,UAAU3T,GACzBld,qBAAqB0wB,GACrBA,EAAiB5wB,uBAAsB,KACrC,IAAIgxB,EACkC,OAArCA,EAAkBH,IAA2BG,EAAgBlzB,QAAQsf,EAAS,KAGnF8R,GAAQ,IAENQ,IAAgBD,GAClBoB,EAAe/yB,QAAQ4xB,GAEzBmB,EAAe/yB,QAAQsf,IAGzB,IAAI6T,EAAcxB,EAAiBrM,GAAsBjG,GAAa,KAatE,OAZIsS,GAGJ,SAASyB,IACP,MAAMC,EAAc/N,GAAsBjG,IACtC8T,GAAgBE,EAAY7V,IAAM2V,EAAY3V,GAAK6V,EAAY5V,IAAM0V,EAAY1V,GAAK4V,EAAYrU,QAAUmU,EAAYnU,OAASqU,EAAYpU,SAAWkU,EAAYlU,QACtKmS,IAEF+B,EAAcE,EACdR,EAAU3wB,sBAAsBkxB,EAClC,CATEA,GAUFhC,IACO,KACL,IAAIkC,EACJte,EAAUrU,SAAQwoB,IAChBkI,GAAkBlI,EAASlvB,oBAAoB,SAAUm3B,GACzDE,GAAkBnI,EAASlvB,oBAAoB,SAAUm3B,EAAO,IAErD,MAAbU,GAAqBA,IACkB,OAAtCwB,EAAmBP,IAA2BO,EAAiB/yB,aAChEwyB,EAAiB,KACbpB,GACFvvB,qBAAqBywB,EACvB,CAEJ,CCpXmBU,CAAWl7B,KAAK+rB,KAAM/rB,KAAK24B,QAAS34B,KAAK+4B,OAAOz2B,KAAKtC,MACtE,CACA,MAAA+4B,GHyhBa,IAAU30B,EGxhBjBpE,KAAKk4B,eDgbW,EAAClR,EAAWC,EAAU7iB,KAI5C,MAAMmsB,EAAQ,IAAI4K,IACZC,EAAgB,CACpBtT,eACG1jB,GAECi3B,EAAoB,IACrBD,EAActT,SACjBmJ,GAAIV,GAEN,MF9lBsB7I,OAAOV,EAAWC,EAAUqU,KAClD,MAAM,UACJvV,EAAY,SAAQ,SACpBkC,EAAW,WAAU,WACrBsT,EAAa,GAAE,SACfzT,GACEwT,EACEE,EAAkBD,EAAW33B,OAAO63B,SACpC1U,QAA+B,MAAlBe,EAAS6J,WAAgB,EAAS7J,EAAS6J,MAAM1K,IACpE,IAAIc,QAAcD,EAASuJ,gBAAgB,CACzCrK,YACAC,WACAgB,cAEE,EACF9C,EAAC,EACDC,GACEyB,GAA2BkB,EAAOhC,EAAWgB,GAC7C2U,EAAoB3V,EACpB0M,EAAiB,CAAC,EAClBkJ,EAAa,EACjB,IAAK,IAAIl7B,EAAI,EAAGA,EAAI+6B,EAAgBl4B,OAAQ7C,IAAK,CAC/C,MAAM,KACJmxB,EAAI,GACJ5R,GACEwb,EAAgB/6B,IAElB0kB,EAAGyW,EACHxW,EAAGyW,EAAK,KACRvK,EAAI,MACJ1rB,SACQoa,EAAG,CACXmF,IACAC,IACAsN,iBAAkB3M,EAClBA,UAAW2V,EACXzT,WACAwK,iBACA1K,QACAD,WACAE,SAAU,CACRhB,YACAC,cAGJ9B,EAAa,MAATyW,EAAgBA,EAAQzW,EAC5BC,EAAa,MAATyW,EAAgBA,EAAQzW,EAC5BqN,EAAiB,IACZA,EACH,CAACb,GAAO,IACHa,EAAeb,MACfN,IAGH1rB,GAAS+1B,GAAc,KACzBA,IACqB,iBAAV/1B,IACLA,EAAMmgB,YACR2V,EAAoB91B,EAAMmgB,WAExBngB,EAAMmiB,QACRA,GAAwB,IAAhBniB,EAAMmiB,YAAuBD,EAASuJ,gBAAgB,CAC5DrK,YACAC,WACAgB,aACGriB,EAAMmiB,SAGX5C,IACAC,KACEyB,GAA2BkB,EAAO2T,EAAmB3U,KAE3DtmB,GAAK,EAET,CACA,MAAO,CACL0kB,IACAC,IACAW,UAAW2V,EACXzT,WACAwK,iBACD,EE6gBMqJ,CAAkB9U,EAAWC,EAAU,IACzCmU,EACHtT,SAAUuT,GACV,EC/bE,CAAgBr7B,KAAK+rB,KAAM/rB,KAAK24B,QAAS,CACvC5S,UAAW,eACXwV,WAAY,EHqhBKn3B,EGrhBG,OHshBV,IAAZA,IACFA,EAAU,GAEL,CACLwtB,KAAM,SACNxtB,UACA,QAAM4b,CAAG4H,GACP,IAAImU,EAAuBxJ,EAC3B,MAAM,EACJpN,EAAC,EACDC,EAAC,UACDW,EAAS,eACT0M,GACE7K,EACEoU,QA7DZtU,eAAoCE,EAAOxjB,GACzC,MAAM,UACJ2hB,EAAS,SACT+B,EAAQ,SACRE,GACEJ,EACEb,QAA+B,MAAlBe,EAAS6J,WAAgB,EAAS7J,EAAS6J,MAAM3J,EAASf,WACvEZ,EAAO,GAAQN,GACfI,EAAY,GAAaJ,GACzBsB,EAAwC,MAA3B,GAAYtB,GACzBkW,EAAgB,CAAC,OAAQ,OAAOp3B,SAASwhB,IAAS,EAAI,EACtD6V,EAAiBnV,GAAOM,GAAc,EAAI,EAC1C8U,EAAW,GAAS/3B,EAASwjB,GACnC,IAAI,SACFiK,EAAQ,UACRE,EAAS,cACT5K,GACsB,iBAAbgV,EAAwB,CACjCtK,SAAUsK,EACVpK,UAAW,EACX5K,cAAe,MACb,CACF0K,SAAU,EACVE,UAAW,EACX5K,cAAe,QACZgV,GAKL,OAHIhW,GAAsC,iBAAlBgB,IACtB4K,EAA0B,QAAd5L,GAAuC,EAAjBgB,EAAqBA,GAElDE,EAAa,CAClBlC,EAAG4M,EAAYmK,EACf9W,EAAGyM,EAAWoK,GACZ,CACF9W,EAAG0M,EAAWoK,EACd7W,EAAG2M,EAAYmK,EAEnB,CAwB+BE,CAAqBxU,EAAOxjB,GAIrD,OAAI2hB,KAAkE,OAAlDgW,EAAwBtJ,EAAekD,aAAkB,EAASoG,EAAsBhW,YAAgE,OAAjDwM,EAAwBE,EAAeO,QAAkBT,EAAsBU,gBACjM,CAAC,EAEH,CACL9N,EAAGA,EAAI6W,EAAW7W,EAClBC,EAAGA,EAAI4W,EAAW5W,EAClBkM,KAAM,IACD0K,EACHjW,aAGN,IGnjB4B,KAAU,KAAQ,KAAS,GAAM,CACvD/e,QAAShH,KAAK44B,QACdrS,QAAS,QAEV8V,MAAKvV,IACN,IAAI,EACF3B,EAAC,EACDC,EAAC,UACDW,EAAS,eACT0M,GACE3L,EAKJ,GAJApgB,OAAOC,OAAO3G,KAAK24B,QAAQlqB,MAAO,CAChC6W,KAAM,GAAGpJ,OAAOiJ,EAAG,MACnBM,IAAK,GAAGvJ,OAAOkJ,EAAG,QAEhBqN,EAAeO,MAAO,CAExB,MACE7N,EAAGmX,EACHlX,EAAGmX,GACD9J,EAAeO,MACbwJ,EAAa,CACjB/W,IAAK,SACLF,MAAO,OACPC,OAAQ,MACRF,KAAM,SACNS,EAAUC,MAAM,KAAK,IACvBtf,OAAOC,OAAO3G,KAAK44B,QAAQnqB,MAAO,CAEhC6W,KAAgB,MAAVgX,EAAiB,GAAGpgB,OAAOogB,EAAQ,MAAQ,GAEjD7W,IAAe,MAAV8W,EAAiB,GAAGrgB,OAAOqgB,EAAQ,MAAQ,GAChDhX,MAAO,GACPC,OAAQ,GACR,CAACgX,GAAa,QAElB,IAGN,CACA,IAAAC,GACEz8B,KAAK+rB,KAAK9qB,aAAa,gBAAiB,QACxCjB,KAAK64B,MACP,CACA,UAAAnB,GAEE,OADAviB,QAAQC,IAAIpV,KAAK+rB,KAAM/rB,KAAK+rB,KAAK7oB,aAAa,kBACK,SAA5ClD,KAAK+rB,KAAK7oB,aAAa,gBAChC,CACA,IAAAw5B,GACM18B,KAAK03B,eACP13B,KAAK+rB,KAAK9qB,aAAa,gBAAiB,SACpCjB,KAAK84B,SAAS94B,KAAK84B,UAE3B,EAIFh3B,SAASuC,iBAAiB,YAAYiE,SAAQ,SAAUyJ,GAClDA,EAASrE,UAAUjM,SAAS,gBAGhC41B,GAAY/a,KAAK,IAAI,GAASvK,EAAU,CACtClH,gBAAiB,oBACjBH,oBAAoB,EACpBC,oBAAoB,EACpBK,eAAe,EACfC,eAAe,EACfC,gBAAiB,YACjBC,aAAc,mBAElB,IACArJ,SAASuC,iBAAiB,gBAAgBiE,SAAQ,SAAUyJ,GAC1D,MAEM4qB,EAAgB,IAAIjE,GAAc3mB,EAAU,WAC7C4qB,EAAczE,gBAHA,CAAC,aAAc,SAMvB5vB,SAAQs0B,IACjBD,EAAc5Q,KAAK7pB,iBAAiB06B,GAAO,IAAMD,EAAcF,QAAO,IANrD,CAAC,aAAc,QAQvBn0B,SAAQs0B,IACjBD,EAAc5Q,KAAK7pB,iBAAiB06B,GAAO,IAAMD,EAAcD,QAAO,IAE1E,IAGA56B,SAASuC,iBAAiB,YAAYiE,SAAQ,SAAUyJ,GACtD,GAAIA,EAASrE,UAAUjM,SAAS,eAC9B,OAEF,MAAMo7B,EAAgB9qB,EAASlF,cAAc,UACvC1B,EAAe,iBACrB,IAAK4G,EAASlF,cAAc1B,GAC1B,OAEF,MAAM4J,EAAS,IAAI,GAAShD,EAAU,CACpClH,gBAAiB,oBACjBG,eAAe,EACfD,eAAe,EACfI,iBAEF4G,EAASlF,cAAc,mBAAmB3K,iBAAiB,SAAS,WAClE6S,EAAOhJ,UAAW,EAClB8wB,EAAcl0B,OAChB,GACF,IACA7G,SAASuC,iBAAiB,gBAAgBiE,SAAQ,SAAUyJ,GAC1D,MAAM4qB,EAAgB,IAAIjE,GAAc3mB,EAAU,WAClD,IAAK4qB,EAAczE,cACjB,OAEF/iB,QAAQC,IAAI,OAAQrD,GACpB4qB,EAAc5Q,KAAK7pB,iBAAiB,SAAS,KACvCy6B,EAAcjF,aAChBiF,EAAcD,OAEdC,EAAcF,MAChB,IAEF,MAAMI,EAAgB9qB,EAASlF,cAAc,UAC7CkF,EAASlF,cAAc,mBAAmB3K,iBAAiB,SAAS,WAClE26B,EAAcl0B,QACVg0B,EAAczE,eAChByE,EAAcD,MAElB,GACF,IAGA56B,SAASuC,iBAAiB,YAAYiE,SAAQ,SAAUyJ,GAClDA,EAASrE,UAAUjM,SAAS,gBAGhCsQ,EAASlF,cAAc,mBAAmB3K,iBAAiB,SAAS,WAClE6P,EAASrE,UAAUG,OAAO,oBAC5B,GACF,IACA/L,SAASuC,iBAAiB,gBAAgBiE,SAAQ,SAAUyJ,GAC1D,MAAM4qB,EAAgB,IAAIjE,GAAc3mB,EAAU,WAC7C4qB,EAAczE,gBAGnByE,EAAc9D,OACd9mB,EAASlF,cAAc,mBAAmB3K,iBAAiB,SAAS,WAClE6P,EAASrE,UAAUG,OAAO,qBAC1B8uB,EAAcD,MAChB,IACF,IAGA56B,SAASuC,iBAAiB,mBAAmBiE,SAAQ,SAAUnJ,GACxCA,EAAGyf,cAAclR,UAAUjM,SAAS,gBAKzD41B,GAAY/a,KAAK,IAAI,GAAcnd,GACrC,IAGA2C,SAASuC,iBAAiB,wBAAwBiE,SAAQ,SAAUnJ,GAClE,MAAM29B,EAAa39B,EAAG0X,QAAQkmB,sBACxBC,EAAWl7B,SAAS0Y,eAAesiB,GACnCG,EAAc,WAClB,MACMC,EADQF,EAAS/4B,MACG,GAC1B,IAAIk5B,EAEFA,EADED,EAAY,IACN,IAEAA,EAEVF,EAAS/4B,MAAQk5B,CACnB,EACAh+B,EAAG+C,iBAAiB,SAAS,WACvBo1B,IACF8F,cAAc9F,IACdA,GAAsB,OAEtB2F,IACA3F,GAAsB+F,YAAYJ,EAAa,KAEnD,GACF,IAGAn7B,SAASuC,iBAAiB,uBAAuBiE,SAAQ,SAAUnJ,GACjE,MAAM29B,EAAa39B,EAAG0X,QAAQymB,uBACxBN,EAAWl7B,SAAS0Y,eAAesiB,GACzC39B,EAAG+C,iBAAiB,SAAS,WACvBo1B,KACF8F,cAAc9F,IACdA,GAAsB,MAExB0F,EAAS/4B,MAAQ,CACnB,GACF,IAGAnC,SAASuC,iBAAiB,uBAAuBiE,SAAQ,SAAUyJ,GACjEA,EAAS7P,iBAAiB,UAAU,SAAUjD,GAC5C,MAAMs+B,EAAgBt+B,EAAEuC,OAAOyC,MAAQ,EACvC8N,EAAS1N,iBAAiB,SAASiE,SAAQ,SAAUk1B,EAASn6B,GAC5Dm6B,EAAQ9vB,UAAUiN,OAAO,sCAAuCtX,EAAQk6B,EAC1E,GACF,GACF,IAGAz7B,SAASuC,iBAAiB,SAASiE,SAAQ,SAAUyJ,GACnD,EAA4BA,EAAU,aAAc,CAClDhP,MAAM,IAER,MAAM06B,EAAW1rB,EAAS1N,iBAAiB,cACrCq5B,EAAY3rB,EAAS1N,iBAAiB,mBAC5C,GAAuB0N,GACvBA,EAAS7P,iBAAiB,wBAAwB,SAAUjD,GAC1Dw+B,EAASx+B,EAAEY,OAAOiG,WAAW7E,aAAa,gBAAiB,SAC3Dw8B,EAASx+B,EAAEY,OAAOkG,SAAS9E,aAAa,gBAAiB,QACzDy8B,EAAUz+B,EAAEY,OAAOiG,WAAW7C,QAAS,EACvCy6B,EAAUz+B,EAAEY,OAAOkG,SAAS9C,QAAS,CACvC,IACA8O,EAAS1N,iBAAiB,cAAciE,SAAQ,SAAUnJ,GACxD,GAAuBA,EACzB,GACF,IACA2C,SAASuC,iBAAiB,YAAYiE,SAAQ,SAAUyJ,GACtDslB,GAAY/a,KAAK,IAAI,GAAQvK,EAAU,CACrCP,WAAkD,SAAtCO,EAAS8E,QAAQ8mB,oBAE/B5rB,EAAS7P,iBAAiB,wBAAyBq1B,GACrD,IACAz1B,SAASuC,iBAAiB,mBAAmBiE,SAAQ,SAAUyJ,GAE7D,GADqBA,EAAS6M,cAAclR,UAAUjM,SAAS,eAE7D,OAEF,MAAM2C,EAAU,CACdoN,WAAkD,SAAtCO,EAAS8E,QAAQ8mB,iBAC7B1nB,oBAAqB,aACrBE,sBAAuB,uBACvBC,oBAAqB,8BACrBC,qBAAsB,gCAExBghB,GAAY/a,KAAK,IAAI,GAAcvK,EAAU3N,IAC7C2N,EAAS7P,iBAAiB,gCAAgCjD,IACxDkW,QAAQC,IAAInW,EAAEkH,KAAMlH,EAAEY,OAAO,GAEjC,IACAiC,SAASuC,iBAAiB,gCAAgCiE,SAAQ,SAAUyJ,GAC1E,MAAM3N,EAAU,CACdoN,WAAkD,SAAtCO,EAAS8E,QAAQ8mB,iBAC7B1nB,oBAAqB,aACrBK,gBAAiB,OACjBC,0BAA2B,QAC3BC,+BAAgC,+BAElC6gB,GAAY/a,KAAK,IAAI,GAAcvK,EAAU3N,IAC7C2N,EAAS7P,iBAAiB,gCAAgCjD,IACxD,IAAI2+B,EACJzoB,QAAQC,IAAInW,EAAEkH,KAAMlH,EAAEY,QACtB,MAAMg+B,EAAiB9rB,EAASlF,cAAc,iDAC9CkF,EAASsN,mBAAmBxS,cAAc,mBAAmBixB,YAAc,IAAI5hB,OAA8E,QAAtE0hB,EAAwBC,EAAehxB,cAAc,mBAAmD,IAA1B+wB,OAAmC,EAASA,EAAsB/mB,QAAQknB,YAAY,GAE/P,IACAj8B,SAASuC,iBAAiB,gBAAgBiE,SAAQ,SAAUyJ,GAC1D,MAAMgD,EAAS,IAAI,GAAWhD,EAAU,CACtCkH,aAAc,qBACdC,mBAAoB,eAEtBnE,EAAOsE,KAAKla,GAAG+C,iBAAiB,qBAAsBq1B,IACtDxiB,EAAOsE,KAAKla,GAAG+C,iBAAiB,qBAAsBq1B,GACxD,IACAz1B,SAASuC,iBAAiB,sDAAsDiE,SAAQ,SAAUyJ,GAChG,MAAMgD,EAAS,IAAI,GAAWhD,EAAU,CACtCjH,cAAe,+BACfmO,aAAc,8BAEhBlE,EAAOsE,KAAKla,GAAG+C,iBAAiB,qBAAsBq1B,IACtDxiB,EAAOsE,KAAKla,GAAG+C,iBAAiB,qBAAsBq1B,GACxD,IACAz1B,SAASuC,iBAAiB,SAASiE,SAAQ,SAAUyJ,GACnDslB,GAAY/a,KAAK,IAAI,GAAKvK,IAC1BA,EAAS7P,iBAAiB,qBAAsBq1B,IAChDxlB,EAAS7P,iBAAiB,qBAAsBq1B,GAClD,IACAz1B,SAASuC,iBAAiB,gBAAgBiE,SAAQ,SAAUyJ,GAC1DslB,GAAY/a,KAAK,IAAI,GAAKvK,IAC1BA,EAAS7P,iBAAiB,qBAAsBq1B,IAChDxlB,EAAS7P,iBAAiB,qBAAsBq1B,IAChDxlB,EAAS7P,iBAAiB,qBAAsBq1B,GAClD,IAGAz1B,SAASuC,iBAAiB,sBAAsBiE,SAAQ,SAAUyJ,GAChE,MAAMisB,EAAUjsB,EAAS1N,iBAAiB,UAC1C25B,EAAQ11B,SAAQ,SAAU21B,GACxBA,EAAS/7B,iBAAiB,SAAS,WACjC87B,EAAQ11B,SAAQ,SAAUnJ,GACxBA,EAAG0P,gBAAgB,eACrB,IACAovB,EAASh9B,aAAa,eAAgB,OACxC,GACF,GACF,IAGAa,SAASuC,iBAAiB,yBAAyBiE,SAAQ,SAAUyJ,GACnEA,EAAS9Q,aAAa,eAAgB8Q,EAASuG,QAAU,OAAS,SAClEvG,EAAS7P,iBAAiB,UAAU,SAAUjD,GAC5CA,EAAEuC,OAAOP,aAAa,eAAgBhC,EAAEuC,OAAO8W,QAAU,OAAS,QACpE,GACF,IAGAxW,SAASuC,iBAAiB,8BAA8BiE,SAAQ,SAAUyJ,GACxEslB,GAAY/a,KAAK,IAAI,GAAOvK,EAAU,CACpC6H,IAAK,CACHC,QAAS,sBAGb9H,EAAS7P,iBAAiB,uBAAwBq1B,GACpD,IAGAz1B,SAASuC,iBAAiB,kBAAkBiE,SAAQ,SAAU41B,GACvCA,EAAe34B,QAAQ,yBAK5C24B,EAAeh8B,iBAAiB,SAAS,WACvC,MAAMi8B,EAAkD,SAAtCn+B,KAAKkD,aAAa,gBACpClD,KAAKiB,aAAa,gBAAiBk9B,EACrC,GACF,IAGA,WACE,MACEC,EAAmB,iBACnBC,EAAoB,eACtBv8B,SAASuC,iBAHqB,wBAGmBiE,SAAQ,SAAUg2B,GAiBjE,SAASC,EAAaC,GACpB,MAAML,EAAyD,SAA7CK,EAASt7B,aAAam7B,GACxCG,EAASv9B,aAAao9B,GAAoBF,EAC5C,CACA,SAASM,EAAiBD,GACxB,OAAOA,EAASt7B,aAAam7B,IAAmE,SAA7CG,EAASt7B,aAAam7B,EAC3E,CAtBAC,EAAoBp8B,iBAAiB,SAAS,SAAU06B,GACtD,MAAM8B,EAAiB1+B,KAAKkD,aAAa,uBACnCy7B,EAAY/B,EAAMp7B,OAExB,GAAKm9B,EAAUhQ,QAAQ,UACvB,OAAQ+P,GACN,IAAK,mBAoBT,SAAuCF,EAAUI,GAC/C,GAAIH,EAAiBD,GACnB,OAAOD,EAAaC,GAEtBI,EAAcv6B,iBAAiB+5B,GAAkB91B,SAAQ,SAAUu2B,GAC7DJ,EAAiBI,IACnBN,EAAaM,EAEjB,IACAN,EAAaC,EACf,CA7BMM,CAA8BH,EAAWL,GACzC,MACF,IAAK,kBA4ByCM,EA3BFN,EA6B1CG,EAFkCD,EA3BHG,KA8BnCC,EAAcv6B,iBAAiB+5B,GAAkB91B,SAAQ,SAAUu2B,GAE7DJ,EAAiBI,IACnBN,EAAaM,EAEjB,IACAN,EAAaC,IAnCT,MACF,QAYFD,EAXyBI,GAwB3B,IAAwCH,EAAUI,CAtBlD,GAiCF,GACD,CAtDD,GAwDA,MAAMG,GAtkBW,EAACC,EAAMC,KACtB,IAAIC,EAIJ,OAAO,WACL,IAAK,IAAIC,EAAOC,UAAU97B,OAAQ+7B,EAAO,IAAIp1B,MAAMk1B,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/ED,EAAKC,GAAQF,UAAUE,GAezBnzB,aAAa+yB,GAIbA,EAAU3yB,YAfI,KAEZ2yB,EAAU,KAyjBkB,SAAUK,EAASC,GACnD,IAAIC,EAAW,MACf,MAAMC,EAAiBH,EAAQt7B,MAAMX,OAE/BsL,EAAO4wB,EAAYvnB,UAAU+N,MAAM,4BACzC,GAAIpX,EAAKtL,QAAU,EACjB,OAEFsL,EAAK,GAAK8wB,EACV,MAAMC,EAAoB/wB,EAAK,GAC/B4wB,EAAYvnB,UAAYrJ,EAAKnF,KAAK,IAC9Bi2B,GAAkBC,IACpBF,EAAW,UAEbF,EAAQt+B,aAAa,YAAaw+B,EACpC,CArkBMT,IAAQK,EAAK,GAqkBhB,IA1jBD,CAAC,EA2iBsBO,GAgBzB99B,SAASuC,iBAAiB,UAAUiE,SAAQ,SAAUu3B,GACpD,MAAMN,EAAUM,EAAgBhzB,cAAc,kBACxC6yB,EAAiBH,GAAWA,EAAQ1oB,QAAQipB,WAClD,GAAIJ,EAAgB,CAClB,MAAMF,EAAcK,EAAgBhzB,cAAc,IAAIqP,OAAOwjB,IAC7DH,EAAQr9B,iBAAiB,UAAW68B,GAAiBz8B,KAAKtC,KAAMu/B,EAASC,GAC3E,CACF,IAIE19B,SAASuC,iBAAiB,mBAAmBiE,SAAQ,SAAUy3B,GAC7D,MAAMC,EAAeD,EAAgBlzB,cAAc,0BAEjDozB,EADaF,EAAgBlzB,cAAc,6BACZA,cAAc,sBAC7CqzB,EAA0B,uBAC1BC,EAAsB,sBACxBJ,EAAgB79B,iBAAiB,SAAS,SAAU06B,GAClD,MAAM+B,EAAY/B,EAAMp7B,OAGxB,GAAKm9B,EAAUhQ,QAAQuR,IAA6BvB,EAAUhQ,QAAQwR,GAAtE,CAGA,GAAIxB,EAAUhQ,QAAQuR,GAA0B,CAC9C,MAAME,EAAgBzB,EAAUzrB,UAAUsC,OAG1CyqB,EAAkBtkB,YAAYgjB,GAgBlC,SAAqB0B,GACnB,MAAMC,EAAY,kKAAwKpkB,OAAOmkB,EAAW,gcAC5ML,EAAaO,mBAAmB,YAAaD,EAC/C,CAlBIE,CAAYJ,EACd,CAIA,GAAIzB,EAAUhQ,QAAQwR,GAAsB,CAC1C,MAAMM,EAAY9B,EAAU+B,uBAAuBxtB,UAAUsC,OACvDmrB,EAAiBhC,EAAUp5B,QAAQ,MAGzCy6B,EAAarkB,YAAYglB,GAS7B,SAAyBC,GACvB,MAAMC,EAAgB,qFAAyF3kB,OAAO0kB,EAAmB,6CACzIX,EAAkBM,mBAAmB,YAAaM,EACpD,CAXIC,CAAgBL,EAClB,CApBkG,CAsBpG,GASF,G","sources":["webpack://@ebay/skin/./node_modules/makeup-key-emitter/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-next-id/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-exit-emitter/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-navigation-emitter/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-roving-tabindex/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-focusables/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-expander/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-floating-label/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-prevent-scroll-keys/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-active-descendant/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-listbox/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-combobox/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-dialog-button/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-listbox-button/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-menu/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-menu-button/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-switch/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-keyboard-trap/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-screenreader-trap/dist/mjs/util.js","webpack://@ebay/skin/./node_modules/makeup-screenreader-trap/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-modal/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-dialog/dist/mjs/transition.js","webpack://@ebay/skin/./node_modules/makeup-dialog/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-lightbox-dialog/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-alert-dialog/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-confirm-dialog/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-drawer-dialog/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-fullscreen-dialog/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-input-dialog/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-panel-dialog/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-snackbar-dialog/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/makeup-toast-dialog/dist/mjs/index.js","webpack://@ebay/skin/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://@ebay/skin/./node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://@ebay/skin/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","webpack://@ebay/skin/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://@ebay/skin/./docs/_babel/main.js"],"sourcesContent":["function uncapitalizeFirstLetter(str) {\n return str.charAt(0).toLowerCase() + str.slice(1);\n}\nfunction onKeyDownOrUp(evt, el, keyEventType) {\n if (!evt.shiftKey) {\n const key = evt.key;\n switch (key) {\n case \"Enter\":\n case \"Escape\":\n case \"PageUp\":\n case \"PageDown\":\n case \"End\":\n case \"Home\":\n case \"ArrowLeft\":\n case \"ArrowUp\":\n case \"ArrowRight\":\n case \"ArrowDown\":\n el.dispatchEvent(new CustomEvent(uncapitalizeFirstLetter(`${key}Key${keyEventType}`), {\n detail: evt,\n bubbles: true\n }));\n break;\n case \" \":\n el.dispatchEvent(new CustomEvent(`spacebarKey${keyEventType}`, {\n detail: evt,\n bubbles: true\n }));\n break;\n default:\n return;\n }\n }\n}\nfunction onKeyDown(e) {\n onKeyDownOrUp(e, this, \"Down\");\n}\nfunction onKeyUp(e) {\n onKeyDownOrUp(e, this, \"Up\");\n}\nfunction addKeyDown(el) {\n el.addEventListener(\"keydown\", onKeyDown);\n}\nfunction addKeyUp(el) {\n el.addEventListener(\"keyup\", onKeyUp);\n}\nfunction removeKeyDown(el) {\n el.removeEventListener(\"keydown\", onKeyDown);\n}\nfunction removeKeyUp(el) {\n el.removeEventListener(\"keyup\", onKeyUp);\n}\nfunction add(el) {\n addKeyDown(el);\n addKeyUp(el);\n}\nfunction remove(el) {\n removeKeyDown(el);\n removeKeyUp(el);\n}\nexport {\n add,\n addKeyDown,\n addKeyUp,\n remove,\n removeKeyDown,\n removeKeyUp\n};\n","const sequenceMap = {};\nconst defaultPrefix = \"nid\";\nconst randomPortion = createRandomPortion(3);\nfunction randomNumber(max) {\n return Math.floor(Math.random() * max);\n}\nfunction createRandomPortion(size) {\n const letters = \"abcdefghijklmnopqrstuvwxyz\";\n const digits = \"0123456789\";\n const allChars = letters + digits;\n let portion = letters[randomNumber(25)];\n for (let i = 1; i < size; i++) {\n portion += allChars[randomNumber(35)];\n }\n return portion;\n}\nfunction src_default(el, prefix = defaultPrefix) {\n const separator = prefix === \"\" ? \"\" : \"-\";\n const key = `${prefix}${separator}${randomPortion}`;\n sequenceMap[key] = sequenceMap[key] || 0;\n if (!el.id) {\n el.setAttribute(\"id\", `${key}-${sequenceMap[key]++}`);\n }\n return el.id;\n}\nexport {\n src_default as default\n};\n","import nextID from \"makeup-next-id\";\nconst focusExitEmitters = {};\nfunction doFocusExit(el, fromElement, toElement) {\n el.dispatchEvent(new CustomEvent(\"focusExit\", {\n detail: { fromElement, toElement },\n bubbles: false\n }));\n}\nfunction onDocumentFocusIn(e) {\n const newFocusElement = e.target;\n const targetIsDescendant = this.el.contains(newFocusElement);\n if (targetIsDescendant === true) {\n this.currentFocusElement = newFocusElement;\n } else {\n window.removeEventListener(\"blur\", this.onWindowBlurListener);\n document.removeEventListener(\"focusin\", this.onDocumentFocusInListener);\n doFocusExit(this.el, this.currentFocusElement, newFocusElement);\n this.currentFocusElement = null;\n }\n}\nfunction onWindowBlur() {\n doFocusExit(this.el, this.currentFocusElement, void 0);\n}\nfunction onWidgetFocusIn() {\n document.addEventListener(\"focusin\", this.onDocumentFocusInListener);\n window.addEventListener(\"blur\", this.onWindowBlurListener);\n}\nclass FocusExitEmitter {\n constructor(el) {\n this.el = el;\n this.currentFocusElement = null;\n this.onWidgetFocusInListener = onWidgetFocusIn.bind(this);\n this.onDocumentFocusInListener = onDocumentFocusIn.bind(this);\n this.onWindowBlurListener = onWindowBlur.bind(this);\n this.el.addEventListener(\"focusin\", this.onWidgetFocusInListener);\n }\n removeEventListeners() {\n window.removeEventListener(\"blur\", this.onWindowBlurListener);\n document.removeEventListener(\"focusin\", this.onDocumentFocusInListener);\n this.el.removeEventListener(\"focusin\", this.onWidgetFocusInListener);\n }\n}\nfunction addFocusExit(el) {\n let exitEmitter = null;\n nextID(el);\n if (!focusExitEmitters[el.id]) {\n exitEmitter = new FocusExitEmitter(el);\n focusExitEmitters[el.id] = exitEmitter;\n }\n return exitEmitter;\n}\nfunction removeFocusExit(el) {\n const exitEmitter = focusExitEmitters[el.id];\n if (exitEmitter) {\n exitEmitter.removeEventListeners();\n delete focusExitEmitters[el.id];\n }\n}\nexport {\n addFocusExit,\n removeFocusExit\n};\n","import * as KeyEmitter from \"makeup-key-emitter\";\nimport * as ExitEmitter from \"makeup-exit-emitter\";\nconst defaultOptions = {\n axis: \"both\",\n autoInit: \"interactive\",\n autoReset: \"current\",\n ignoreByDelegateSelector: null,\n wrap: false\n};\nfunction isItemNavigable(el) {\n return !el.hidden && el.getAttribute(\"aria-disabled\") !== \"true\";\n}\nfunction isIndexNavigable(items, index) {\n return index >= 0 && index < items.length ? isItemNavigable(items[index]) : false;\n}\nfunction findNavigableItems(items) {\n return items.filter(isItemNavigable);\n}\nfunction findFirstNavigableIndex(items) {\n return items.findIndex((item) => isItemNavigable(item));\n}\nfunction findLastNavigableIndex(items) {\n return items.indexOf(findNavigableItems(items).reverse()[0]);\n}\nfunction findIndexByAttribute(items, attribute, value) {\n return items.findIndex((item) => isItemNavigable(item) && item.getAttribute(attribute) === value);\n}\nfunction findFirstNavigableAriaCheckedIndex(items) {\n return findIndexByAttribute(items, \"aria-checked\", \"true\");\n}\nfunction findFirstNavigableAriaSelectedIndex(items) {\n return findIndexByAttribute(items, \"aria-selected\", \"true\");\n}\nfunction findIgnoredByDelegateItems(el, options) {\n return options.ignoreByDelegateSelector !== null ? [...el.querySelectorAll(options.ignoreByDelegateSelector)] : [];\n}\nfunction findPreviousNavigableIndex(items, index, wrap) {\n let previousNavigableIndex = -1;\n if (index === null) {\n } else if (atStart(items, index)) {\n if (wrap === true) {\n previousNavigableIndex = findLastNavigableIndex(items);\n }\n } else {\n let i = index;\n while (--i >= 0) {\n if (isItemNavigable(items[i])) {\n previousNavigableIndex = i;\n break;\n }\n }\n }\n return previousNavigableIndex;\n}\nfunction findNextNavigableIndex(items, index, wrap) {\n let nextNavigableIndex = -1;\n if (index === null) {\n nextNavigableIndex = findFirstNavigableIndex(items);\n } else if (atEnd(items, index)) {\n if (wrap === true) {\n nextNavigableIndex = findFirstNavigableIndex(items);\n }\n } else {\n let i = index;\n while (++i < items.length) {\n if (isItemNavigable(items[i])) {\n nextNavigableIndex = i;\n break;\n }\n }\n }\n return nextNavigableIndex;\n}\nfunction findIndexPositionByType(typeOrNum, items, currentIndex) {\n let index = -1;\n switch (typeOrNum) {\n case \"none\":\n index = null;\n break;\n case \"current\":\n index = currentIndex;\n break;\n case \"interactive\":\n index = findFirstNavigableIndex(items);\n break;\n case \"ariaChecked\":\n index = findFirstNavigableAriaCheckedIndex(items);\n break;\n case \"ariaSelected\":\n index = findFirstNavigableAriaSelectedIndex(items);\n break;\n case \"ariaSelectedOrInteractive\":\n index = findFirstNavigableAriaSelectedIndex(items);\n index = index === -1 ? findFirstNavigableIndex(items) : index;\n break;\n default:\n index = typeof typeOrNum === \"number\" || typeOrNum === null ? typeOrNum : -1;\n }\n return index;\n}\nfunction atStart(items, index) {\n return index === findFirstNavigableIndex(items);\n}\nfunction atEnd(items, index) {\n return index === findLastNavigableIndex(items);\n}\nfunction onKeyPrev(e) {\n const ignoredByDelegateItems = findIgnoredByDelegateItems(this._el, this.options);\n if (ignoredByDelegateItems.length === 0 || !ignoredByDelegateItems.includes(e.detail.target)) {\n this.index = findPreviousNavigableIndex(this.items, this.index, this.options.wrap);\n }\n}\nfunction onKeyNext(e) {\n const ignoredByDelegateItems = findIgnoredByDelegateItems(this._el, this.options);\n if (ignoredByDelegateItems.length === 0 || !ignoredByDelegateItems.includes(e.detail.target)) {\n this.index = findNextNavigableIndex(this.items, this.index, this.options.wrap);\n }\n}\nfunction onClick(e) {\n const itemIndex = this.indexOf(e.target.closest(this._itemSelector));\n if (isIndexNavigable(this.items, itemIndex)) {\n this.index = itemIndex;\n }\n}\nfunction onKeyHome(e) {\n const ignoredByDelegateItems = findIgnoredByDelegateItems(this._el, this.options);\n if (ignoredByDelegateItems.length === 0 || !ignoredByDelegateItems.includes(e.detail.target)) {\n this.index = findFirstNavigableIndex(this.items);\n }\n}\nfunction onKeyEnd(e) {\n const ignoredByDelegateItems = findIgnoredByDelegateItems(this._el, this.options);\n if (ignoredByDelegateItems.length === 0 || !ignoredByDelegateItems.includes(e.detail.target)) {\n this.index = findLastNavigableIndex(this.items);\n }\n}\nfunction onFocusExit() {\n if (this.options.autoReset !== null) {\n this.reset();\n }\n}\nfunction onMutation(e) {\n const fromIndex = this.index;\n let toIndex = this.index;\n const { addedNodes, attributeName, removedNodes, target, type } = e[0];\n if (type === \"attributes\") {\n if (target === this.currentItem) {\n if (attributeName === \"aria-disabled\") {\n toIndex = this.index;\n } else if (attributeName === \"hidden\") {\n toIndex = findFirstNavigableIndex(this.items);\n }\n } else {\n toIndex = this.index;\n }\n } else if (type === \"childList\") {\n if (removedNodes.length > 0 && [...removedNodes].includes(this._cachedElement)) {\n toIndex = findFirstNavigableIndex(this.items);\n } else if (removedNodes.length > 0 || addedNodes.length > 0) {\n toIndex = this.indexOf(this._cachedElement);\n }\n }\n this._index = toIndex;\n this._el.dispatchEvent(new CustomEvent(\"navigationModelMutation\", {\n bubbles: false,\n detail: { fromIndex, toIndex }\n }));\n}\nclass NavigationModel {\n constructor(el, itemSelector, selectedOptions) {\n this.options = Object.assign({}, defaultOptions, selectedOptions);\n this._el = el;\n this._itemSelector = itemSelector;\n }\n}\nclass LinearNavigationModel extends NavigationModel {\n constructor(el, itemSelector, selectedOptions) {\n super(el, itemSelector, selectedOptions);\n const fromIndex = this._index;\n const toIndex = findIndexPositionByType(this.options.autoInit, this.items, this.index);\n this._index = toIndex;\n this._cachedElement = this.items[toIndex];\n this._el.dispatchEvent(new CustomEvent(\"navigationModelInit\", {\n bubbles: false,\n detail: {\n firstInteractiveIndex: this.firstNavigableIndex,\n fromIndex,\n items: this.items,\n toIndex\n }\n }));\n }\n get currentItem() {\n return this.items[this.index];\n }\n get items() {\n return [...this._el.querySelectorAll(`${this._itemSelector}`)];\n }\n get index() {\n return this._index;\n }\n set index(toIndex) {\n if (toIndex === this.index) {\n return;\n } else if (!isIndexNavigable(this.items, toIndex)) {\n } else {\n const fromIndex = this.index;\n this._cachedElement = this.items[toIndex];\n this._index = toIndex;\n this._el.dispatchEvent(new CustomEvent(\"navigationModelChange\", {\n bubbles: false,\n detail: { fromIndex, toIndex }\n }));\n }\n }\n indexOf(element) {\n return this.items.indexOf(element);\n }\n reset() {\n const fromIndex = this.index;\n const toIndex = findIndexPositionByType(this.options.autoReset, this.items, this.index);\n if (toIndex !== fromIndex) {\n this._index = toIndex;\n this._el.dispatchEvent(new CustomEvent(\"navigationModelReset\", {\n bubbles: false,\n detail: { fromIndex, toIndex }\n }));\n }\n }\n}\nclass NavigationEmitter {\n constructor(el, model) {\n this.model = model;\n this.el = el;\n this._keyPrevListener = onKeyPrev.bind(model);\n this._keyNextListener = onKeyNext.bind(model);\n this._keyHomeListener = onKeyHome.bind(model);\n this._keyEndListener = onKeyEnd.bind(model);\n this._clickListener = onClick.bind(model);\n this._focusExitListener = onFocusExit.bind(model);\n this._observer = new MutationObserver(onMutation.bind(model));\n KeyEmitter.addKeyDown(this.el);\n ExitEmitter.addFocusExit(this.el);\n const axis = model.options.axis;\n if (axis === \"both\" || axis === \"x\") {\n this.el.addEventListener(\"arrowLeftKeyDown\", this._keyPrevListener);\n this.el.addEventListener(\"arrowRightKeyDown\", this._keyNextListener);\n }\n if (axis === \"both\" || axis === \"y\") {\n this.el.addEventListener(\"arrowUpKeyDown\", this._keyPrevListener);\n this.el.addEventListener(\"arrowDownKeyDown\", this._keyNextListener);\n }\n this.el.addEventListener(\"homeKeyDown\", this._keyHomeListener);\n this.el.addEventListener(\"endKeyDown\", this._keyEndListener);\n this.el.addEventListener(\"click\", this._clickListener);\n this.el.addEventListener(\"focusExit\", this._focusExitListener);\n this._observer.observe(this.el, {\n childList: true,\n subtree: true,\n attributeFilter: [\"aria-disabled\", \"hidden\"],\n attributes: true,\n attributeOldValue: true\n });\n }\n destroy() {\n KeyEmitter.removeKeyDown(this.el);\n ExitEmitter.removeFocusExit(this.el);\n this.el.removeEventListener(\"arrowLeftKeyDown\", this._keyPrevListener);\n this.el.removeEventListener(\"arrowRightKeyDown\", this._keyNextListener);\n this.el.removeEventListener(\"arrowUpKeyDown\", this._keyPrevListener);\n this.el.removeEventListener(\"arrowDownKeyDown\", this._keyNextListener);\n this.el.removeEventListener(\"homeKeyDown\", this._keyHomeListener);\n this.el.removeEventListener(\"endKeyDown\", this._keyEndListener);\n this.el.removeEventListener(\"click\", this._clickListener);\n this.el.removeEventListener(\"focusExit\", this._focusExitListener);\n this._observer.disconnect();\n }\n}\nfunction createLinear(el, itemSelector, selectedOptions) {\n const model = new LinearNavigationModel(el, itemSelector, selectedOptions);\n return new NavigationEmitter(el, model);\n}\nexport {\n createLinear\n};\n","import * as NavigationEmitter from \"makeup-navigation-emitter\";\nconst defaultOptions = {\n autoInit: \"interactive\",\n autoReset: \"current\",\n wrap: false,\n axis: \"both\"\n};\nfunction refreshTabindex(items, focusIndex) {\n items.forEach(function(el, i) {\n el.setAttribute(\"tabindex\", i === focusIndex ? \"0\" : \"-1\");\n });\n}\nfunction onModelInit(e) {\n refreshTabindex(e.detail.items, e.detail.toIndex);\n this._el.dispatchEvent(new CustomEvent(\"rovingTabindexInit\", { detail: e.detail }));\n}\nfunction onModelChange(e) {\n const items = this.items;\n const fromItem = items[e.detail.fromIndex];\n const toItem = items[e.detail.toIndex];\n if (fromItem) {\n fromItem.setAttribute(\"tabindex\", \"-1\");\n }\n if (toItem) {\n toItem.setAttribute(\"tabindex\", \"0\");\n toItem.focus();\n }\n this._el.dispatchEvent(new CustomEvent(\"rovingTabindexChange\", { detail: e.detail }));\n}\nfunction onModelReset(e) {\n refreshTabindex(this.items, e.detail.toIndex);\n this._el.dispatchEvent(new CustomEvent(\"rovingTabindexReset\", { detail: e.detail }));\n}\nfunction onModelMutation(e) {\n refreshTabindex(this.items, e.detail.toIndex);\n this._el.dispatchEvent(new CustomEvent(\"rovingTabindexMutation\", { detail: e.detail }));\n}\nclass RovingTabindex {\n constructor(el) {\n this._el = el;\n this._onMutationListener = onModelMutation.bind(this);\n this._onChangeListener = onModelChange.bind(this);\n this._onInitListener = onModelInit.bind(this);\n this._onResetListener = onModelReset.bind(this);\n this._el.addEventListener(\"navigationModelMutation\", this._onMutationListener);\n this._el.addEventListener(\"navigationModelChange\", this._onChangeListener);\n this._el.addEventListener(\"navigationModelInit\", this._onInitListener);\n this._el.addEventListener(\"navigationModelReset\", this._onResetListener);\n }\n destroy() {\n this._el.removeEventListener(\"navigationModelMutation\", this._onMutationListener);\n this._el.removeEventListener(\"navigationModelChange\", this._onChangeListener);\n this._el.removeEventListener(\"navigationModelInit\", this._onInitListener);\n this._el.removeEventListener(\"navigationModelReset\", this._onResetListener);\n }\n}\nclass LinearRovingTabindex extends RovingTabindex {\n constructor(el, itemSelector, selectedOptions) {\n super(el);\n this._options = Object.assign({}, defaultOptions, selectedOptions);\n this._itemSelector = itemSelector;\n this._navigationEmitter = NavigationEmitter.createLinear(el, itemSelector, {\n autoInit: this._options.index !== void 0 ? this._options.index : this._options.autoInit,\n autoReset: this._options.autoReset,\n wrap: this._options.wrap,\n axis: this._options.axis\n });\n }\n get index() {\n return this._navigationEmitter.model.index;\n }\n set index(newIndex) {\n this._navigationEmitter.model.index = newIndex;\n }\n set wrap(newWrap) {\n this._navigationEmitter.model.options.wrap = newWrap;\n }\n get currentItem() {\n return this._navigationEmitter.model.currentItem;\n }\n get items() {\n return this._navigationEmitter.model.items;\n }\n reset() {\n this._navigationEmitter.model.reset();\n }\n destroy() {\n super.destroy();\n this._navigationEmitter.destroy();\n }\n}\nfunction createLinear(el, itemSelector, selectedOptions) {\n return new LinearRovingTabindex(el, itemSelector, selectedOptions);\n}\nexport {\n createLinear\n};\n","const focusableElList = [\n \"a[href]\",\n \"area[href]\",\n \"button:not([disabled])\",\n \"embed\",\n \"iframe\",\n \"input:not([disabled])\",\n \"object\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"*[tabindex]\",\n \"*[contenteditable]\"\n];\nconst focusableElSelector = focusableElList.join();\nfunction src_default(el, keyboardOnly = false, callback) {\n if (callback) {\n const request = requestAnimationFrame(() => {\n callback(getFocusables(el, keyboardOnly));\n });\n return () => {\n cancelAnimationFrame(request);\n };\n }\n return getFocusables(el, keyboardOnly);\n}\nfunction getFocusables(el, keyboardOnly = false) {\n let focusableEls = Array.prototype.slice.call(el.querySelectorAll(focusableElSelector));\n focusableEls = focusableEls.filter(function(focusableEl) {\n return window.getComputedStyle(focusableEl).display !== \"none\";\n });\n if (keyboardOnly === true) {\n focusableEls = focusableEls.filter(function(focusableEl) {\n return focusableEl.getAttribute(\"tabindex\") !== \"-1\";\n });\n }\n return focusableEls;\n}\nexport {\n src_default as default\n};\n","import nextID from \"makeup-next-id\";\nimport * as ExitEmitter from \"makeup-exit-emitter\";\nimport focusables from \"makeup-focusables\";\nconst defaultOptions = {\n alwaysDoFocusManagement: false,\n ariaControls: true,\n autoCollapse: false,\n collapseOnFocusOut: false,\n collapseOnMouseOut: false,\n collapseOnClickOut: false,\n contentSelector: \".expander__content\",\n expandedClass: null,\n expandOnClick: false,\n expandOnFocus: false,\n expandOnHover: false,\n focusManagement: null,\n hostSelector: \".expander__host\",\n simulateSpacebarClick: false\n};\nfunction onHostKeyDown(e) {\n if (e.keyCode === 13 || e.keyCode === 32) {\n this._keyboardClickFlag = true;\n }\n if (e.keyCode === 32 && this.options.simulateSpacebarClick === true) {\n this.hostEl.click();\n }\n}\nfunction onHostMouseDown() {\n this._mouseClickFlag = true;\n}\nfunction onHostClick() {\n this._expandWasKeyboardClickActivated = this._keyboardClickFlag;\n this._expandWasMouseClickActivated = this._mouseClickFlag;\n this.expanded = !this.expanded;\n}\nfunction onHostFocus() {\n this._expandWasFocusActivated = true;\n this.expanded = true;\n}\nfunction onHostHover() {\n clearTimeout(this._mouseLeft);\n this._expandWasHoverActivated = true;\n this.expanded = true;\n}\nfunction onFocusExit() {\n this.expanded = false;\n}\nfunction onMouseLeave() {\n clearTimeout(this._mouseLeft);\n this._mouseLeft = setTimeout(() => {\n this.expanded = false;\n }, 300);\n}\nfunction _onDocumentClick(e) {\n if (this.el.contains(e.target) === false) {\n this.expanded = false;\n }\n}\nfunction _onDocumentTouchStart() {\n this.documentClick = true;\n}\nfunction _onDocumentTouchMove() {\n this.documentClick = false;\n}\nfunction _onDocumentTouchEnd(e) {\n if (this.documentClick === true) {\n this.documentClick = false;\n if (this.el.contains(e.target) === false) {\n this.expanded = false;\n }\n }\n}\nfunction manageFocus(focusManagement, contentEl) {\n if (focusManagement === \"content\") {\n contentEl.setAttribute(\"tabindex\", \"-1\");\n contentEl.focus();\n } else if (focusManagement === \"focusable\") {\n focusables(contentEl)[0].focus();\n } else if (focusManagement === \"interactive\") {\n focusables(contentEl, true)[0].focus();\n } else if (focusManagement !== null) {\n const el = contentEl.querySelector(`#${focusManagement}`);\n if (el) {\n el.focus();\n }\n }\n}\nclass src_default {\n constructor(el, selectedOptions) {\n this.options = Object.assign({}, defaultOptions, selectedOptions);\n this.el = el;\n this.hostEl = el.querySelector(this.options.hostSelector);\n this.contentEl = el.querySelector(this.options.contentSelector);\n ExitEmitter.addFocusExit(this.el);\n this._hostKeyDownListener = onHostKeyDown.bind(this);\n this._hostMouseDownListener = onHostMouseDown.bind(this);\n this._documentClickListener = _onDocumentClick.bind(this);\n this._documentTouchStartListener = _onDocumentTouchStart.bind(this);\n this._documentTouchMoveListener = _onDocumentTouchMove.bind(this);\n this._documentTouchEndListener = _onDocumentTouchEnd.bind(this);\n this._hostClickListener = onHostClick.bind(this);\n this._hostFocusListener = onHostFocus.bind(this);\n this._hostHoverListener = onHostHover.bind(this);\n this._focusExitListener = onFocusExit.bind(this);\n this._mouseLeaveListener = onMouseLeave.bind(this);\n if (this.hostEl.getAttribute(\"aria-expanded\") === null) {\n this.hostEl.setAttribute(\"aria-expanded\", \"false\");\n }\n if (this.options.ariaControls === true) {\n nextID(this.el, \"expander\");\n this.contentEl.id = this.contentEl.id || `${this.el.id}-content`;\n this.hostEl.setAttribute(\"aria-controls\", this.contentEl.id);\n }\n this.expandOnClick = this.options.expandOnClick;\n this.expandOnFocus = this.options.expandOnFocus;\n this.expandOnHover = this.options.expandOnHover;\n if (this.options.autoCollapse === false) {\n this.collapseOnClickOut = this.options.collapseOnClickOut;\n this.collapseOnFocusOut = this.options.collapseOnFocusOut;\n this.collapseOnMouseOut = this.options.collapseOnMouseOut;\n }\n }\n set expandOnClick(bool) {\n if (bool === true) {\n this.hostEl.addEventListener(\"keydown\", this._hostKeyDownListener);\n this.hostEl.addEventListener(\"mousedown\", this._hostMouseDownListener);\n this.hostEl.addEventListener(\"click\", this._hostClickListener);\n if (this.options.autoCollapse === true) {\n this.collapseOnClickOut = true;\n this.collapseOnFocusOut = true;\n }\n } else {\n this.hostEl.removeEventListener(\"click\", this._hostClickListener);\n this.hostEl.removeEventListener(\"mousedown\", this._hostMouseDownListener);\n this.hostEl.removeEventListener(\"keydown\", this._hostKeyDownListener);\n }\n }\n set expandOnFocus(bool) {\n if (bool === true) {\n this.hostEl.addEventListener(\"focus\", this._hostFocusListener);\n if (this.options.autoCollapse === true) {\n this.collapseOnClickOut = true;\n this.collapseOnFocusOut = true;\n }\n } else {\n this.hostEl.removeEventListener(\"focus\", this._hostFocusListener);\n }\n }\n set expandOnHover(bool) {\n if (bool === true) {\n this.hostEl.addEventListener(\"mouseenter\", this._hostHoverListener);\n this.contentEl.addEventListener(\"mouseenter\", this._hostHoverListener);\n if (this.options.autoCollapse === true) {\n this.collapseOnMouseOut = true;\n }\n } else {\n this.hostEl.removeEventListener(\"mouseenter\", this._hostHoverListener);\n this.contentEl.removeEventListener(\"mouseenter\", this._hostHoverListener);\n }\n }\n set collapseOnClickOut(bool) {\n if (bool === true) {\n document.addEventListener(\"click\", this._documentClickListener);\n document.addEventListener(\"touchstart\", this._documentTouchStartListener);\n document.addEventListener(\"touchmove\", this._documentTouchMoveListener);\n document.addEventListener(\"touchend\", this._documentTouchEndListener);\n } else {\n document.removeEventListener(\"click\", this._documentClickListener);\n document.removeEventListener(\"touchstart\", this._documentTouchStartListener);\n document.removeEventListener(\"touchmove\", this._documentTouchMoveListener);\n document.removeEventListener(\"touchend\", this._documentTouchEndListener);\n }\n }\n set collapseOnFocusOut(bool) {\n if (bool === true) {\n this.el.addEventListener(\"focusExit\", this._focusExitListener);\n } else {\n this.el.removeEventListener(\"focusExit\", this._focusExitListener);\n }\n }\n set collapseOnMouseOut(bool) {\n if (bool === true) {\n this.el.addEventListener(\"mouseleave\", this._mouseLeaveListener);\n this.contentEl.addEventListener(\"mouseleave\", this._mouseLeaveListener);\n } else {\n this.el.removeEventListener(\"mouseleave\", this._mouseLeaveListener);\n this.contentEl.removeEventListener(\"mouseleave\", this._mouseLeaveListener);\n }\n }\n get expanded() {\n return this.hostEl.getAttribute(\"aria-expanded\") === \"true\";\n }\n set expanded(bool) {\n if (bool === true && this.expanded === false) {\n this.hostEl.setAttribute(\"aria-expanded\", \"true\");\n if (this.options.expandedClass) {\n this.el.classList.add(this.options.expandedClass);\n }\n if (this._expandWasKeyboardClickActivated || this._expandWasMouseClickActivated && this.options.alwaysDoFocusManagement) {\n manageFocus(this.options.focusManagement, this.contentEl);\n }\n this.el.dispatchEvent(new CustomEvent(\"expander-expand\", { bubbles: true, detail: this.contentEl }));\n }\n if (bool === false && this.expanded === true) {\n this.hostEl.setAttribute(\"aria-expanded\", \"false\");\n if (this.options.expandedClass) {\n this.el.classList.remove(this.options.expandedClass);\n }\n this.el.dispatchEvent(new CustomEvent(\"expander-collapse\", { bubbles: true, detail: this.contentEl }));\n }\n this._expandWasKeyboardClickActivated = false;\n this._expandWasMouseClickActivated = false;\n this._expandWasFocusActivated = false;\n this._expandWasHoverActivated = false;\n this._keyboardClickFlag = false;\n this._mouseClickFlag = false;\n }\n sleep() {\n if (this._destroyed !== true) {\n this.expandOnClick = false;\n this.expandOnFocus = false;\n this.expandOnHover = false;\n this.collapseOnClickOut = false;\n this.collapseOnFocusOut = false;\n this.collapseOnMouseOut = false;\n }\n }\n destroy() {\n this.sleep();\n this._destroyed = true;\n this._hostKeyDownListener = null;\n this._hostMouseDownListener = null;\n this._documentClickListener = null;\n this._documentTouchStartListener = null;\n this._documentTouchMoveListener = null;\n this._documentTouchEndListener = null;\n this._hostClickListener = null;\n this._hostFocusListener = null;\n this._hostHoverListener = null;\n this._focusExitListener = null;\n this._mouseLeaveListener = null;\n }\n}\nexport {\n src_default as default\n};\n","const defaultOptions = {\n labelElementAnimateModifier: \"floating-label__label--animate\",\n labelElementInlineModifier: \"floating-label__label--inline\",\n labelElementFocusModifier: \"floating-label__label--focus\",\n labelElementInvalidModifier: \"floating-label__label--invalid\",\n labelElementDisabledModifier: \"floating-label__label--disabled\",\n textboxElementBackgroundRGB: [\n \"rgb(255, 255, 255)\",\n \"rgb(247, 247, 247)\",\n \"rgb(245, 245, 245)\",\n \"rgb(230, 32, 72)\",\n \"rgb(254, 245, 246)\"\n ]\n};\nfunction getPlaceHolder(formControlEl) {\n if (isSelect(formControlEl)) {\n const firstOption = formControlEl.querySelector(\"option\");\n return !firstOption.value ? firstOption.text : null;\n } else if (formControlEl.hasAttribute(\"placeholder\")) {\n return formControlEl.getAttribute(\"placeholder\");\n }\n}\nfunction setPlaceholder(formControlEl, value) {\n if (isSelect(formControlEl)) {\n formControlEl.style[\"min-width\"] = \"\";\n const beforeWidth = formControlEl.offsetWidth;\n formControlEl.querySelector(\"option\").text = value;\n if (!value && beforeWidth > formControlEl.offsetWidth) {\n formControlEl.style[\"min-width\"] = `${beforeWidth}px`;\n }\n } else if (value) {\n formControlEl.setAttribute(\"placeholder\", value);\n } else {\n formControlEl.removeAttribute(\"placeholder\");\n }\n}\nfunction checkForPlaceholder(formControlEl) {\n if (isSelect(formControlEl)) {\n const firstOption = formControlEl.querySelector(\"option\");\n if (!!firstOption.value) {\n return;\n }\n return !!firstOption.text;\n }\n return formControlEl.hasAttribute(\"placeholder\");\n}\nfunction onMutation() {\n const textboxFocus = isFocused(this.formControlEl);\n this.placeholder = getPlaceHolder(this.formControlEl) || this.placeholder;\n const placeholderCheck = checkForPlaceholder(this.formControlEl, this.placeholder);\n if (!!this.placeholder && textboxFocus && !placeholderCheck) {\n setPlaceholder(this.formControlEl, this.placeholder);\n } else if (!textboxFocus && placeholderCheck) {\n setPlaceholder(this.formControlEl, \"\");\n }\n if (isInvalid(this.formControlEl)) {\n this.labelEl.classList.add(this.options.labelElementInvalidModifier);\n } else {\n this.labelEl.classList.remove(this.options.labelElementInvalidModifier);\n }\n if (isDisabled(this.formControlEl)) {\n this.labelEl.classList.add(this.options.labelElementDisabledModifier);\n } else {\n this.labelEl.classList.remove(this.options.labelElementDisabledModifier);\n }\n}\nfunction isFocused(formControlEl) {\n return document.activeElement === formControlEl;\n}\nfunction isSelect(formControlEl) {\n return formControlEl.tagName === \"SELECT\";\n}\nfunction hasValue(input) {\n return input.value.length > 0;\n}\nfunction isDisabled(input) {\n return input.hasAttribute(\"disabled\");\n}\nfunction isInvalid(input) {\n return input.hasAttribute(\"aria-invalid\") && input.getAttribute(\"aria-invalid\") === \"true\";\n}\nfunction isAutofilled(input, color) {\n if (!isSelect(input)) {\n const bgColor = getComputedStyle(input).backgroundColor;\n return Array.isArray(color) ? !color.includes(bgColor) : bgColor !== color;\n }\n return false;\n}\nfunction _onBlur() {\n if (!hasValue(this.formControlEl)) {\n this.labelEl.classList.add(this.options.labelElementInlineModifier);\n }\n this.labelEl.classList.remove(this.options.labelElementFocusModifier);\n if (isInvalid(this.formControlEl)) {\n this.labelEl.classList.add(this.options.labelElementInvalidModifier);\n }\n setPlaceholder(this.formControlEl, \"\");\n}\nfunction _onFocus() {\n this.labelEl.classList.add(this.options.labelElementAnimateModifier);\n this.labelEl.classList.add(this.options.labelElementFocusModifier);\n this.labelEl.classList.remove(this.options.labelElementInlineModifier);\n this.labelEl.classList.remove(this.options.labelElementInvalidModifier);\n if (this.placeholder) {\n setPlaceholder(this.formControlEl, this.placeholder);\n }\n}\nclass src_default {\n constructor(el, userOptions) {\n this.options = Object.assign({}, defaultOptions, userOptions);\n this._observer = new MutationObserver(onMutation.bind(this));\n this.rootEl = el;\n this.labelEl = this.rootEl.querySelector(\"label\");\n this.formControlEl = this.rootEl.querySelector(\"input,textarea,select\");\n this._onBlurListener = _onBlur.bind(this);\n this._onFocusListener = _onFocus.bind(this);\n this.formControlEl.addEventListener(\"blur\", this._onBlurListener);\n this.formControlEl.addEventListener(\"focus\", this._onFocusListener);\n if (!hasValue(this.formControlEl) && !isAutofilled(this.formControlEl, this.options.textboxElementBackgroundRGB)) {\n this.labelEl.classList.add(this.options.labelElementInlineModifier);\n } else if (!isSelect(this.formControlEl)) {\n this.labelEl.classList.remove(this.options.labelElementInlineModifier);\n }\n if (isFocused(this.formControlEl)) {\n this.labelEl.classList.add(this.options.labelElementFocusModifier);\n this.labelEl.classList.remove(this.options.labelElementInlineModifier);\n }\n onMutation.call(this);\n this._observer.observe(this.formControlEl, {\n childList: isSelect(this.formControlEl),\n subtree: isSelect(this.formControlEl),\n attributeFilter: [\"disabled\", \"aria-invalid\", \"placeholder\", \"value\"],\n attributes: true\n });\n }\n destroy() {\n this._observer.disconnect();\n }\n refresh() {\n if (hasValue(this.formControlEl) || isSelect(this.formControlEl) || isAutofilled(this.formControlEl, this.options.textboxElementBackgroundRGB)) {\n this.labelEl.classList.remove(this.options.labelElementInlineModifier);\n } else {\n this.labelEl.classList.add(this.options.labelElementInlineModifier);\n }\n if (isFocused(this.formControlEl)) {\n this.labelEl.classList.add(this.options.labelElementFocusModifier);\n this.labelEl.classList.remove(this.options.labelElementInlineModifier);\n }\n }\n}\nexport {\n src_default as default\n};\n","function onKeyDown(e) {\n if (e.keyCode >= 32 && e.keyCode <= 40) {\n e.preventDefault();\n }\n}\nfunction add(el) {\n el.addEventListener(\"keydown\", onKeyDown);\n}\nfunction remove(el) {\n el.removeEventListener(\"keydown\", onKeyDown);\n}\nexport {\n add,\n remove\n};\n","import * as NavigationEmitter from \"makeup-navigation-emitter\";\nimport nextID from \"makeup-next-id\";\nconst defaultOptions = {\n activeDescendantClassName: \"active-descendant\",\n autoInit: \"none\",\n autoReset: \"none\",\n autoScroll: false,\n axis: \"both\",\n wrap: false\n};\nfunction onModelInit(e) {\n const { items, toIndex } = e.detail;\n const itemEl = items[toIndex];\n if (itemEl) {\n itemEl.classList.add(this._options.activeDescendantClassName);\n this._focusEl.setAttribute(\"aria-activedescendant\", itemEl.id);\n }\n this._el.dispatchEvent(new CustomEvent(\"activeDescendantInit\", { detail: e.detail }));\n}\nfunction onModelChange(e) {\n const { fromIndex, toIndex } = e.detail;\n const fromItem = this.items[fromIndex];\n const toItem = this.items[toIndex];\n if (fromItem) {\n fromItem.classList.remove(this._options.activeDescendantClassName);\n }\n if (toItem) {\n toItem.classList.add(this._options.activeDescendantClassName);\n this._focusEl.setAttribute(\"aria-activedescendant\", toItem.id);\n if (this._options.autoScroll && this._containerEl) {\n this._containerEl.scrollTop = toItem.offsetTop - this._containerEl.offsetHeight / 2;\n }\n }\n this._el.dispatchEvent(new CustomEvent(\"activeDescendantChange\", { detail: e.detail }));\n}\nfunction onModelReset(e) {\n const toIndex = e.detail.toIndex;\n const activeClassName = this._options.activeDescendantClassName;\n this.items.forEach(function(el) {\n el.classList.remove(activeClassName);\n });\n if (toIndex !== null && toIndex !== -1) {\n const itemEl = this.items[toIndex];\n itemEl.classList.add(activeClassName);\n this._focusEl.setAttribute(\"aria-activedescendant\", itemEl.id);\n } else {\n this._focusEl.removeAttribute(\"aria-activedescendant\");\n }\n this._el.dispatchEvent(new CustomEvent(\"activeDescendantReset\", { detail: e.detail }));\n}\nfunction onModelMutation(e) {\n const { toIndex } = e.detail;\n const activeDescendantClassName = this._options.activeDescendantClassName;\n this.items.forEach(function(item, index) {\n nextID(item);\n if (index !== toIndex) {\n item.classList.remove(activeDescendantClassName);\n } else {\n item.classList.add(activeDescendantClassName);\n }\n });\n this._el.dispatchEvent(new CustomEvent(\"activeDescendantMutation\", { detail: e.detail }));\n}\nclass ActiveDescendant {\n constructor(el) {\n this._el = el;\n this._onMutationListener = onModelMutation.bind(this);\n this._onChangeListener = onModelChange.bind(this);\n this._onResetListener = onModelReset.bind(this);\n this._onInitListener = onModelInit.bind(this);\n this._el.addEventListener(\"navigationModelMutation\", this._onMutationListener);\n this._el.addEventListener(\"navigationModelChange\", this._onChangeListener);\n this._el.addEventListener(\"navigationModelReset\", this._onResetListener);\n this._el.addEventListener(\"navigationModelInit\", this._onInitListener);\n }\n destroy() {\n this._el.removeEventListener(\"navigationModelMutation\", this._onMutationListener);\n this._el.removeEventListener(\"navigationModelChange\", this._onChangeListener);\n this._el.removeEventListener(\"navigationModelReset\", this._onResetListener);\n this._el.removeEventListener(\"navigationModelInit\", this._onInitListener);\n }\n}\nclass LinearActiveDescendant extends ActiveDescendant {\n constructor(el, focusEl, itemContainerEl, itemSelector, selectedOptions) {\n super(el);\n this._options = Object.assign({}, defaultOptions, selectedOptions);\n this._focusEl = focusEl;\n this._itemContainerEl = itemContainerEl;\n this._itemSelector = itemSelector;\n nextID(this._itemContainerEl);\n if (this._itemContainerEl !== this._focusEl) {\n focusEl.setAttribute(\"aria-owns\", this._itemContainerEl.id);\n }\n this._navigationEmitter = NavigationEmitter.createLinear(el, itemSelector, {\n autoInit: this._options.autoInit,\n autoReset: this._options.autoReset,\n axis: this._options.axis,\n ignoreByDelegateSelector: this._options.ignoreByDelegateSelector,\n wrap: this._options.wrap\n });\n this.items.forEach(function(itemEl) {\n nextID(itemEl);\n });\n }\n get index() {\n return this._navigationEmitter.model.index;\n }\n set index(newIndex) {\n this._navigationEmitter.model.index = newIndex;\n }\n reset() {\n this._navigationEmitter.model.reset();\n }\n get currentItem() {\n return this._navigationEmitter.model.currentItem;\n }\n get items() {\n return this._navigationEmitter.model.items;\n }\n set wrap(newWrap) {\n this._navigationEmitter.model.options.wrap = newWrap;\n }\n destroy() {\n super.destroy();\n this._navigationEmitter.destroy();\n }\n}\nfunction createLinear(el, focusEl, itemContainerEl, itemSelector, selectedOptions) {\n return new LinearActiveDescendant(el, focusEl, itemContainerEl, itemSelector, selectedOptions);\n}\nexport {\n createLinear\n};\n","import * as ActiveDescendant from \"makeup-active-descendant\";\nimport * as PreventScrollKeys from \"makeup-prevent-scroll-keys\";\nconst defaultOptions = {\n activeDescendantClassName: \"listbox__option--active\",\n // the classname applied to the current active desdcendant\n autoInit: \"ariaSelectedOrInteractive\",\n autoReset: \"ariaSelectedOrInteractive\",\n autoSelect: true,\n // when true, aria-checked state matches active-descendant\n customElementMode: false,\n focusableElement: null,\n // used in a combobox/datepicker scenario\n listboxOwnerElement: null,\n // used in a combobox/datepicker scenario\n multiSelect: false,\n // todo\n useAriaChecked: true,\n // doubles up on support for aria-selected to announce visible selected/checked state\n valueSelector: \".listbox__value\"\n // Selector to get value from\n};\nfunction isSpacebarOrEnter(keyCode) {\n return keyCode === 13 || keyCode === 32;\n}\nclass src_default {\n constructor(widgetEl, selectedOptions) {\n this._options = Object.assign({}, defaultOptions, selectedOptions);\n this.el = widgetEl;\n this._activeDescendantRootEl = this._options.listboxOwnerElement || this.el;\n if (widgetEl.getAttribute(\"role\") === \"listbox\") {\n this._listboxEl = widgetEl;\n } else {\n this._listboxEl = this.el.querySelector(\"[role=listbox]\");\n }\n if (!this._options.focusableElement && this._listboxEl.getAttribute(\"tabindex\") === null) {\n this._listboxEl.setAttribute(\"tabindex\", \"0\");\n }\n PreventScrollKeys.add(this.el);\n this._onKeyDownListener = _onKeyDown.bind(this);\n this._onClickListener = _onClick.bind(this);\n this._onActiveDescendantChangeListener = _onActiveDescendantChange.bind(this);\n this._onMutationListener = _onMutation.bind(this);\n this.el.classList.add(\"listbox--js\");\n if (!this._options.customElementMode) {\n this._mutationObserver = new MutationObserver(this._onMutationListener);\n this._observeMutations();\n this._observeEvents();\n }\n this._activeDescendant = ActiveDescendant.createLinear(\n this._activeDescendantRootEl,\n this._options.focusableElement || this._listboxEl,\n this._listboxEl,\n \"[role=option]\",\n {\n activeDescendantClassName: this._options.activeDescendantClassName,\n autoInit: this._options.autoInit,\n autoReset: this._options.autoReset,\n axis: \"y\"\n }\n );\n }\n _observeMutations() {\n if (!this._options.customElementMode) {\n this._mutationObserver.observe(this._listboxEl, {\n attributeFilter: [\"aria-selected\"],\n attributes: true,\n childList: true,\n subtree: true\n });\n }\n }\n _unobserveMutations() {\n if (!this._options.customElementMode) {\n this._mutationObserver.disconnect();\n }\n }\n _observeEvents() {\n if (this._destroyed !== true) {\n this._activeDescendantRootEl.addEventListener(\"activeDescendantChange\", this._onActiveDescendantChangeListener);\n this._listboxEl.addEventListener(\"keydown\", this._onKeyDownListener);\n this._listboxEl.addEventListener(\"click\", this._onClickListener);\n }\n }\n _unobserveEvents() {\n this._listboxEl.removeEventListener(\"keydown\", this._onKeyDownListener);\n this._listboxEl.removeEventListener(\"click\", this._onClickListener);\n this._activeDescendantRootEl.removeEventListener(\"activeDescendantChange\", this._onActiveDescendantChangeListener);\n }\n get index() {\n return this.items.findIndex((el) => el.getAttribute(\"aria-selected\") === \"true\");\n }\n get items() {\n return this._activeDescendant.items;\n }\n select(index) {\n this._unobserveMutations();\n const itemEl = this.items[index];\n if (itemEl && itemEl.getAttribute(\"aria-disabled\") !== \"true\") {\n const matchingItem = this.items[index];\n let optionValue;\n matchingItem.setAttribute(\"aria-selected\", \"true\");\n if (this._options.useAriaChecked === true) {\n matchingItem.setAttribute(\"aria-checked\", \"true\");\n }\n optionValue = matchingItem.innerText;\n if (this._options.valueSelector) {\n const valueSelector = matchingItem.querySelector(this._options.valueSelector);\n if (valueSelector) {\n optionValue = valueSelector.innerText;\n }\n }\n this.el.dispatchEvent(\n new CustomEvent(\"makeup-listbox-change\", {\n detail: {\n el: matchingItem,\n optionIndex: index,\n optionValue\n }\n })\n );\n }\n this._observeMutations();\n }\n unselect(index) {\n this._unobserveMutations();\n const itemEl = this.items[index];\n if (itemEl && itemEl.getAttribute(\"aria-disabled\") !== \"true\") {\n const matchingItem = this.items[index];\n matchingItem.setAttribute(\"aria-selected\", \"false\");\n if (this._options.useAriaChecked === true) {\n matchingItem.setAttribute(\"aria-checked\", \"false\");\n }\n }\n this._observeMutations();\n }\n destroy() {\n this._destroyed = true;\n this._unobserveMutations();\n this._unobserveEvents();\n this._onKeyDownListener = null;\n this._onClickListener = null;\n this._onActiveDescendantChangeListener = null;\n this._onMutationListener = null;\n }\n}\nfunction _onKeyDown(e) {\n const activeDescendantEl = this._activeDescendant.currentItem;\n if (isSpacebarOrEnter(e.keyCode) && activeDescendantEl?.getAttribute(\"aria-selected\") !== \"true\") {\n this.unselect(this.index);\n this.select(this._activeDescendant.index);\n }\n}\nfunction _onClick(e) {\n const toEl = e.target.closest(\"[role=option]\");\n const toElIndex = this.items.indexOf(toEl);\n const isTolElSelected = toEl.getAttribute(\"aria-selected\") === \"true\";\n const isTolElDisabled = toEl.getAttribute(\"aria-disabled\") === \"true\";\n if (!isTolElDisabled && this._options.autoSelect === false && isTolElSelected === false) {\n this.unselect(this.index);\n this.select(toElIndex);\n }\n}\nfunction _onActiveDescendantChange(e) {\n const { fromIndex, toIndex } = e.detail;\n if (this._options.autoSelect === true) {\n const fromEl = this.items[fromIndex];\n const toEl = this.items[toIndex];\n if (fromEl) {\n this.unselect(fromIndex);\n }\n if (toEl) {\n this.select(toIndex);\n }\n }\n}\nfunction _onMutation(mutationsList) {\n for (const mutation of mutationsList) {\n if (mutation.type === \"attributes\") {\n this.el.dispatchEvent(\n new CustomEvent(\"makeup-listbox-mutation\", {\n detail: {\n attributeName: mutation.attributeName\n }\n })\n );\n }\n }\n}\nexport {\n src_default as default\n};\n","import Expander from \"makeup-expander\";\nimport Listbox from \"makeup-listbox\";\nconst defaultOptions = {\n autoSelect: true,\n collapseTimeout: 150,\n customElementMode: false\n};\nclass src_default {\n constructor(widgetEl, selectedOptions) {\n this._options = Object.assign({}, defaultOptions, selectedOptions);\n this._el = widgetEl;\n this._inputEl = this._el.querySelector(\"input\");\n this._listboxEl = this._el.querySelector(\".combobox__listbox\");\n this._autocompleteType = this._inputEl.getAttribute(\"aria-autocomplete\");\n this._inputEl.setAttribute(\"autocomplete\", \"off\");\n this._inputEl.setAttribute(\"role\", \"combobox\");\n this._listboxEl.hidden = false;\n this._listboxWidget = new Listbox(this._listboxEl, {\n activeDescendantClassName: \"combobox__option--active\",\n autoReset: -1,\n autoSelect: this._options.autoSelect,\n focusableElement: this._inputEl,\n listboxOwnerElement: this._el\n });\n this._expander = new Expander(this._el, {\n collapseOnClickOut: true,\n collapseOnFocusOut: true,\n contentSelector: \".combobox__listbox\",\n expandedClass: \"combobox--expanded\",\n expandOnFocus: true,\n hostSelector: \"input\"\n });\n this._destroyed = false;\n this._onInputFocusListener = _onInputFocus.bind(this);\n this._onListboxClickListener = _onListboxClick.bind(this);\n this._onListboxActiveDescendantChangeListener = _onListboxActiveDescendantChange.bind(this);\n this._onTextboxKeyDownListener = _onTextboxKeyDown.bind(this);\n this._onTextboxInputListener = _onTextboxInput.bind(this);\n this._onTextboxClickListener = _onTextboxClick.bind(this);\n this._onMutationListener = _onMutation.bind(this);\n this._el.classList.add(\"combobox--js\");\n if (!this._options.customElementMode) {\n this._mutationObserver = new MutationObserver(this._onMutationListener);\n this._observeMutations();\n this._observeEvents();\n }\n }\n resetFilter() {\n this._listboxWidget._activeDescendant.reset();\n this._listboxWidget.items.forEach((el) => el.hidden = false);\n }\n _observeMutations() {\n if (!this._options.customElementMode) {\n this._mutationObserver.observe(this._inputEl, {\n attributes: true,\n childList: true,\n subtree: true\n });\n }\n }\n _unobserveMutations() {\n if (!this._options.customElementMode) {\n this._mutationObserver.disconnect();\n }\n }\n _observeEvents() {\n if (this._destroyed !== true) {\n this._listboxEl.addEventListener(\"click\", this._onListboxClickListener);\n this._listboxWidget._activeDescendantRootEl.addEventListener(\n \"activeDescendantChange\",\n this._onListboxActiveDescendantChangeListener\n );\n this._inputEl.addEventListener(\"focus\", this._onInputFocusListener);\n this._inputEl.addEventListener(\"keydown\", this._onTextboxKeyDownListener);\n this._inputEl.addEventListener(\"input\", this._onTextboxInputListener);\n this._inputEl.addEventListener(\"click\", this._onTextboxClickListener);\n }\n }\n _unobserveEvents() {\n this._listboxEl.removeEventListener(\"click\", this._onListboxClickListener);\n this._listboxWidget._activeDescendantRootEl.removeEventListener(\n \"activeDescendantChange\",\n this._onListboxActiveDescendantChangeListener\n );\n this._inputEl.removeEventListener(\"focus\", this._onInputFocusListener);\n this._inputEl.removeEventListener(\"keydown\", this._onTextboxKeyDownListener);\n this._inputEl.removeEventListener(\"input\", this._onTextboxInputListener);\n this._inputEl.removeEventListener(\"click\", this._onTextboxClickListener);\n }\n destroy() {\n this._destroyed = true;\n this._unobserveMutations();\n this._unobserveEvents();\n this._onInputFocusListener = null;\n this._onListboxClickListener = null;\n this._onListboxActiveDesendanctChangeListener = null;\n this._onTextboxKeyDownListener = null;\n this._onTextboxInputListener = null;\n this._onTextboxClickListener = null;\n this._onMutationListener = null;\n }\n}\nfunction _onInputFocus() {\n this.resetFilter();\n}\nfunction _onTextboxKeyDown(e) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n e.preventDefault();\n }\n if (e.keyCode === 40) {\n if (this._expander.expanded === false) {\n this._expander.expanded = true;\n }\n }\n if (e.keyCode === 27) {\n if (this._expander.expanded === true) {\n this._expander.expanded = false;\n this._listboxWidget._activeDescendant.reset();\n }\n }\n if (this._options.autoSelect === false && e.keyCode === 13 && this._inputEl.getAttribute(\"aria-activedescendant\")) {\n e.preventDefault();\n const widget = this;\n this._inputEl.value = this._listboxWidget.items[this._listboxWidget._activeDescendant.index].innerText;\n _dispatchChangeEvent(this._el, this._inputEl.value);\n this._listboxWidget._activeDescendant.reset();\n setTimeout(function() {\n widget._expander.expanded = false;\n if (widget._autocompleteType === \"list\") {\n if (widget._inputEl.value.length === 0) {\n widget.resetFilter();\n } else {\n _filterSuggestions(widget._inputEl.value, widget._listboxWidget.items);\n }\n }\n }, this._options.collapseTimeout);\n }\n}\nfunction _onTextboxClick() {\n if (this._expander.expanded === false) {\n this._expander.expanded = true;\n }\n}\nfunction _onTextboxInput() {\n if (this._expander.expanded === false) {\n this._expander.expanded = true;\n }\n if (this._autocompleteType === \"list\") {\n this._listboxWidget._activeDescendant.reset();\n if (this._inputEl.value.length === 0) {\n this.resetFilter();\n } else {\n _filterSuggestions(this._inputEl.value, this._listboxWidget.items);\n }\n }\n}\nfunction _onListboxClick(e) {\n const widget = this;\n const element = e.target.closest(\"[role=option]\");\n const indexData = this._listboxWidget.items.indexOf(element);\n console.log(indexData);\n if (indexData !== void 0) {\n this._inputEl.value = this._listboxWidget.items[indexData].innerText;\n if (this._options.autoSelect === false) {\n _dispatchChangeEvent(this._el, this._inputEl.value);\n }\n setTimeout(function() {\n widget._expander.expanded = false;\n }, this._options.collapseTimeout);\n }\n}\nfunction _onListboxActiveDescendantChange(e) {\n if (this._options.autoSelect === true) {\n this._inputEl.value = this._listboxWidget.items[e.detail.toIndex].innerText;\n _dispatchChangeEvent(this._el, this._inputEl.value);\n }\n}\nfunction _onMutation(mutationsList) {\n for (const mutation of mutationsList) {\n if (mutation.type === \"attributes\") {\n this._el.dispatchEvent(new CustomEvent(\"makeup-combobox-mutation\", {\n detail: {\n attributeName: mutation.attributeName\n }\n }));\n }\n }\n}\nfunction _filterSuggestions(value, items) {\n const numChars = value.length;\n const currentValue = value.toLowerCase();\n const matchedItems = items.filter((el) => {\n return el.innerText.trim().substring(0, numChars).toLowerCase() === currentValue;\n });\n const unmatchedItems = items.filter((el) => {\n return el.innerText.trim().substring(0, numChars).toLowerCase() !== currentValue;\n });\n matchedItems.forEach((el) => el.hidden = false);\n unmatchedItems.forEach((el) => el.hidden = true);\n}\nfunction _dispatchChangeEvent(el, value) {\n el.dispatchEvent(new CustomEvent(\"makeup-combobox-change\", {\n detail: { value }\n }));\n}\nexport {\n src_default as default\n};\n","const defaultOptions = {\n customElementMode: false\n};\nclass src_default {\n constructor(widgetEl, dialog, selectedOptions) {\n this._options = Object.assign({}, defaultOptions, selectedOptions);\n this._el = widgetEl;\n this._el.setAttribute(\"aria-haspopup\", \"dialog\");\n this._dialog = dialog;\n this._onClickListener = _onClick.bind(this);\n this._onDialogCloseListener = _onDialogClose.bind(this);\n this._onMutationListener = _onMutation.bind(this);\n this._el.classList.add(\"dialog-button--js\");\n if (!this._options.customElementMode) {\n this._mutationObserver = new MutationObserver(this._onMutationListener);\n this._observeMutations();\n this._observeEvents();\n }\n }\n _observeMutations() {\n if (!this._options.customElementMode) {\n this._mutationObserver.observe(this._el, {\n attributes: true,\n childList: false,\n subtree: false\n });\n }\n }\n _unobserveMutations() {\n if (!this._options.customElementMode) {\n this._mutationObserver.disconnect();\n }\n }\n _observeEvents() {\n if (this._destroyed !== true) {\n this._el.addEventListener(\"click\", this._onClickListener);\n this._dialog._el.addEventListener(\"dialog-close\", this._onDialogCloseListener);\n }\n }\n _unobserveEvents() {\n this._el.removeEventListener(\"click\");\n this._dialog._el.removeEventListener(\"dialog-close\", this._onDialogCloseListener);\n }\n destroy() {\n this._destroyed = true;\n this._unobserveMutations();\n this._unobserveEvents();\n this._onClickListener = null;\n this._onDialogCloseListener = null;\n this._onMutationListener = null;\n }\n}\nfunction _onMutation(mutationsList) {\n for (const mutation of mutationsList) {\n if (mutation.type === \"attributes\") {\n this._el.dispatchEvent(new CustomEvent(\"makeup-dialog-button-mutation\", {\n detail: {\n attributeName: mutation.attributeName\n }\n }));\n }\n }\n}\nfunction _onClick() {\n this._dialog.open();\n}\nfunction _onDialogClose() {\n if (this._dialog.modal === true) {\n this._el.focus();\n }\n}\nexport {\n src_default as default\n};\n","import Expander from \"makeup-expander\";\nimport Listbox from \"makeup-listbox\";\nconst defaultOptions = {\n autoSelect: true,\n buttonLabelSelector: \".btn__text\",\n collapseTimeout: 150,\n customElementMode: false,\n listboxSelector: \".listbox-button__listbox\",\n floatingLabelSelector: \".btn__floating-label\",\n floatingLabelInline: \"btn__floating-label--inline\",\n floatingLabelAnimate: \"btn__floating-label--animate\",\n valueSelector: \".listbox-button__value\",\n buttonValueType: \"text\",\n // [\"text\", \"icon\", \"both\"],\n listboxOptionIconSelector: \".icon\",\n listboxOptionAriaLabelSelector: null\n};\nclass src_default {\n constructor(widgetEl, selectedOptions) {\n this._options = Object.assign({}, defaultOptions, selectedOptions);\n this.el = widgetEl;\n this._buttonEl = this.el.querySelector(\"button\");\n this._buttonLabelEl = widgetEl.querySelector(this._options.buttonLabelSelector);\n this._buttonFloatingLabelEl = widgetEl.querySelector(this._options.floatingLabelSelector);\n this._buttonPrefix = this._buttonEl.dataset?.listboxButtonPrefix;\n this._listboxEl = this.el.querySelector(this._options.listboxSelector);\n this._onButtonFirstClickListener = _onButtonFirstClick.bind(this);\n this._onListboxClickListener = _onListboxClick.bind(this);\n this._onListboxKeyDownListener = _onListboxKeyDown.bind(this);\n this._onListboxInitListener = _onListboxInit.bind(this);\n this._onListboxChangeListener = _onListboxChange.bind(this);\n this._onMutationListener = _onMutation.bind(this);\n if (!this._options.customElementMode) {\n this._mutationObserver = new MutationObserver(this._onMutationListener);\n this._observeMutations();\n this._observeEvents();\n }\n this.listbox = new Listbox(this._listboxEl, {\n activeDescendantClassName: \"listbox-button__option--active\",\n autoReset: \"ariaSelectedOrInteractive\",\n autoSelect: this._options.autoSelect,\n valueSelector: this._options.valueSelector\n });\n this._expander = new Expander(this.el, {\n alwaysDoFocusManagement: true,\n collapseOnClick: true,\n collapseOnClickOut: true,\n collapseOnFocusOut: true,\n contentSelector: this._options.listboxSelector,\n expandedClass: \"listbox-button--expanded\",\n expandOnClick: true,\n focusManagement: \"focusable\",\n hostSelector: \"button\"\n });\n this.el.classList.add(\"listbox-button--js\");\n if (this._buttonFloatingLabelEl) {\n if (!this._buttonLabelEl.innerText) {\n this._buttonFloatingLabelEl.classList.add(this._options.floatingLabelInline);\n }\n }\n }\n _observeMutations() {\n if (!this._options.customElementMode) {\n this._mutationObserver.observe(this._buttonEl, {\n attributeFilter: [\"aria-expanded\"],\n attributes: true,\n childList: false,\n subtree: false\n });\n }\n }\n _unobserveMutations() {\n if (!this._options.customElementMode) {\n this._mutationObserver.disconnect();\n }\n }\n _unobserveEvents() {\n this._buttonEl.removeEventListener(\"click\", this._onButtonFirstClickListener);\n this._listboxEl.removeEventListener(\"click\", this._onListboxClickListener);\n this._listboxEl.removeEventListener(\"keydown\", this._onListboxKeyDownListener);\n this._listboxEl.removeEventListener(\"makeup-listbox-init\", this._onListboxInitListener);\n this._listboxEl.removeEventListener(\"makeup-listbox-change\", this._onListboxChangeListener);\n }\n _observeEvents() {\n if (this._destroyed !== true) {\n this._buttonEl.addEventListener(\"click\", this._onButtonFirstClickListener, { once: true });\n this._listboxEl.addEventListener(\"click\", this._onListboxClickListener);\n this._listboxEl.addEventListener(\"keydown\", this._onListboxKeyDownListener);\n this._listboxEl.addEventListener(\"makeup-listbox-init\", this._onListboxInitListener);\n this._listboxEl.addEventListener(\"makeup-listbox-change\", this._onListboxChangeListener);\n }\n }\n collapse() {\n const widget = this;\n setTimeout(function() {\n widget._unobserveMutations();\n widget._expander.expanded = false;\n widget._observeMutations();\n widget._buttonEl.focus();\n }, this._options.collapseTimeout);\n }\n destroy() {\n this._destroyed = true;\n this._unobserveEvents();\n this._unobserveMutations();\n this._onButtonFirstClickListener = null;\n this._onListboxClickListener = null;\n this._onListboxKeyDownListener = null;\n this._onListboxInitListener = null;\n this._onListboxChangeListener = null;\n this._onMutationListener = null;\n }\n}\nfunction _onButtonFirstClick() {\n this.listbox.el.hidden = false;\n}\nfunction _onListboxKeyDown(e) {\n if (e.keyCode === 13 || e.keyCode === 27 || e.keyCode === 32) {\n this.collapse();\n }\n}\nfunction _onListboxClick() {\n this.collapse();\n}\nfunction _onListboxInit(e) {\n this.el.dispatchEvent(new CustomEvent(\"makeup-listbox-button-init\", { detail: e.detail }));\n}\nfunction _onListboxChange(e) {\n const toValue = e.detail.optionValue;\n const {\n listboxOptionIconSelector,\n listboxOptionAriaLabelSelector,\n buttonValueType,\n floatingLabelAnimate,\n floatingLabelInline\n } = this._options;\n const icon = e.detail.el.querySelector(listboxOptionIconSelector).cloneNode(true);\n let btnContent = this._buttonPrefix ? `${this._buttonPrefix}${toValue}` : toValue;\n if (icon) {\n switch (buttonValueType) {\n case \"both\":\n btnContent = `${icon.outerHTML} ${btnContent}`;\n break;\n case \"icon\":\n this._buttonEl.setAttribute(\"aria-label\", btnContent);\n btnContent = icon.outerHTML;\n break;\n default:\n break;\n }\n }\n if (listboxOptionAriaLabelSelector) {\n const selectorText = e.detail.el.querySelector(listboxOptionAriaLabelSelector)?.innerText.trim();\n this._buttonEl.setAttribute(\n \"aria-label\",\n this._buttonPrefix ? `${this._buttonPrefix} ${selectorText}` : selectorText\n );\n }\n this._buttonLabelEl.innerHTML = btnContent;\n if (this._buttonFloatingLabelEl) {\n if (toValue) {\n this._buttonFloatingLabelEl.classList.add(floatingLabelAnimate);\n this._buttonFloatingLabelEl.classList.remove(floatingLabelInline);\n } else {\n this._buttonFloatingLabelEl.classList.add(floatingLabelInline);\n }\n }\n this.el.dispatchEvent(new CustomEvent(\"makeup-listbox-button-change\", { detail: e.detail }));\n}\nfunction _onMutation(mutationsList) {\n for (const mutation of mutationsList) {\n if (mutation.type === \"attributes\") {\n this.el.dispatchEvent(\n new CustomEvent(\"makeup-listbox-button-mutation\", {\n detail: {\n attributeName: mutation.attributeName\n }\n })\n );\n }\n }\n}\nexport {\n src_default as default\n};\n","import * as RovingTabIndex from \"makeup-roving-tabindex\";\nimport * as PreventScrollKeys from \"makeup-prevent-scroll-keys\";\nconst defaultOptions = {\n customElementMode: false,\n autoInit: \"interactive\",\n autoReset: \"interactive\"\n};\nclass src_default {\n constructor(widgetEl, selectedOptions) {\n this._options = Object.assign({}, defaultOptions, selectedOptions);\n this.el = widgetEl;\n this._rovingTabIndex = RovingTabIndex.createLinear(this.el, \"[role^=menuitem]\", {\n autoInit: this._options.autoInit,\n autoReset: this._options.autoReset\n });\n PreventScrollKeys.add(this.el);\n this._onKeyDownListener = _onKeyDown.bind(this);\n this._onClickListener = _onClick.bind(this);\n this._onMutationListener = _onMutation.bind(this);\n this.el.classList.add(\"menu--js\");\n if (!this._options.customElementMode) {\n this._mutationObserver = new MutationObserver(this._onMutationListener);\n this._observeMutations();\n this._observeEvents();\n }\n }\n select(index) {\n this._unobserveMutations();\n const el = this.items[index];\n switch (el.getAttribute(\"role\")) {\n case \"menuitemcheckbox\":\n _selectMenuItemCheckbox(this.el, el);\n break;\n case \"menuitemradio\":\n _selectMenuItemRadio(this.el, el);\n break;\n default:\n _selectMenuItem(this.el, el);\n break;\n }\n this._observeMutations();\n }\n get items() {\n return this._rovingTabIndex.items;\n }\n get radioGroupNames() {\n const els = [...this.el.querySelectorAll(\"[role=menuitemradio][data-makeup-group]\")];\n const groupNames = [...new Set(els.map((el) => el.dataset.makeupGroup))];\n return groupNames;\n }\n get checkboxGroupNames() {\n const els = [...this.el.querySelectorAll(\"[role=menuitemcheckbox][data-makeup-group]\")];\n const groupNames = [...new Set(els.map((el) => el.dataset.makeupGroup))];\n return groupNames;\n }\n _observeMutations() {\n if (!this._options.customElementMode) {\n this._mutationObserver.observe(this.el, {\n attributeFilter: [\"aria-checked\", \"aria-disabled\"],\n attributes: true,\n childList: true,\n subtree: true\n });\n }\n }\n _unobserveMutations() {\n if (!this._options.customElementMode) {\n this._mutationObserver.disconnect();\n }\n }\n _observeEvents() {\n if (this._destroyed !== true) {\n this.el.addEventListener(\"keydown\", this._onKeyDownListener);\n this.el.addEventListener(\"click\", this._onClickListener);\n }\n }\n _unobserveEvents() {\n this.el.removeEventListener(\"keydown\", this._onKeyDownListener);\n this.el.removeEventListener(\"click\", this._onClickListener);\n }\n destroy() {\n this._destroyed = true;\n this._unobserveMutations();\n this._unobserveEvents();\n this._onKeyDownListener = null;\n this._onClickListener = null;\n this._onMutationListener = null;\n }\n}\nfunction _onMutation(mutationsList) {\n for (const mutation of mutationsList) {\n if (mutation.type === \"attributes\") {\n this.el.dispatchEvent(new CustomEvent(\"makeup-menu-mutation\", {\n detail: {\n attributeName: mutation.attributeName\n }\n }));\n }\n }\n}\nfunction _onKeyDown(e) {\n this._unobserveMutations();\n if (e.keyCode === 13) {\n e.preventDefault();\n }\n if (e.keyCode === 13 || e.keyCode === 32) {\n this.select(Array.from(this.items).indexOf(e.target));\n }\n this._observeMutations();\n}\nfunction _onClick(e) {\n const menuItemEl = e.target.closest(\"[role^=menuitem]\");\n const index = this.items.indexOf(menuItemEl);\n if (index !== -1) {\n this.select(index);\n }\n}\nfunction _selectMenuItem(widgetEl, menuItemEl) {\n widgetEl.dispatchEvent(new CustomEvent(\"makeup-menu-select\", {\n detail: {\n el: menuItemEl,\n value: menuItemEl.innerText\n }\n }));\n}\nfunction _selectMenuItemCheckbox(widgetEl, menuItemEl) {\n if (menuItemEl.getAttribute(\"aria-disabled\") !== \"true\") {\n const groupName = menuItemEl.dataset.makeupGroup;\n menuItemEl.setAttribute(\n \"aria-checked\",\n menuItemEl.getAttribute(\"aria-checked\") === \"true\" ? \"false\" : \"true\"\n );\n widgetEl.dispatchEvent(new CustomEvent(\"makeup-menu-change\", {\n detail: {\n el: menuItemEl,\n checked: menuItemEl.getAttribute(\"aria-checked\"),\n group: groupName,\n value: menuItemEl.innerText\n }\n }));\n }\n}\nfunction _selectMenuItemRadio(widgetEl, menuItemEl) {\n if (menuItemEl.getAttribute(\"aria-disabled\") !== \"true\") {\n const groupName = menuItemEl.dataset.makeupGroup;\n const checkedEl = widgetEl.querySelector(`[data-makeup-group=${groupName}][aria-checked=true]`);\n if (checkedEl) {\n checkedEl.setAttribute(\"aria-checked\", \"false\");\n }\n if (checkedEl !== menuItemEl) {\n menuItemEl.setAttribute(\"aria-checked\", \"true\");\n widgetEl.dispatchEvent(new CustomEvent(\"makeup-menu-change\", {\n detail: {\n el: menuItemEl,\n group: groupName,\n value: menuItemEl.innerText\n }\n }));\n }\n }\n}\nexport {\n src_default as default\n};\n","import Expander from \"makeup-expander\";\nimport Menu from \"makeup-menu\";\nconst defaultOptions = {\n customElementMode: false,\n expandedClass: \"menu-button--expanded\",\n menuSelector: \".menu-button__menu\",\n buttonTextSelector: `.btn__text`,\n buttonValueType: \"text\",\n // [\"text\", \"icon\", \"both\"],\n menuItemIconSelector: \".icon\",\n menuItemButtonAriaLabelSelector: null\n};\nclass src_default {\n constructor(widgetEl, selectedOptions) {\n this._options = Object.assign({}, defaultOptions, selectedOptions);\n this.el = widgetEl;\n this._buttonEl = widgetEl.querySelector(\"button\");\n this._buttonEl.setAttribute(\"aria-haspopup\", \"true\");\n this.menu = new Menu(widgetEl.querySelector(this._options.menuSelector), {\n autoReset: \"interactive\"\n });\n this._buttonPrefix = this._buttonEl.dataset?.makeupMenuButtonPrefix;\n this._buttonTextEl = this._buttonEl.querySelector(this._options.buttonTextSelector);\n this._expander = new Expander(widgetEl, {\n alwaysDoFocusManagement: true,\n collapseOnClick: true,\n collapseOnClickOut: true,\n collapseOnFocusOut: true,\n contentSelector: this._options.menuSelector,\n expandedClass: this._options.expandedClass,\n expandOnClick: true,\n focusManagement: \"focusable\",\n hostSelector: \"button\"\n });\n this._onButtonFirstClickListener = _onButtonFirstClick.bind(this);\n this._onMenuKeyDownListener = _onMenuKeyDown.bind(this);\n this._onMenuItemSelectListener = _onMenuItemSelect.bind(this);\n this._onMutationListener = _onMutation.bind(this);\n this.el.classList.add(\"menu-button--js\");\n if (!this._options.customElementMode) {\n this._mutationObserver = new MutationObserver(this._onMutationListener);\n this._observeMutations();\n this._observeEvents();\n }\n }\n _observeMutations() {\n if (!this._options.customElementMode) {\n this._mutationObserver.observe(this.el, {\n attributeFilter: [\"aria-expanded\", \"disabled\"],\n attributes: true,\n childList: false,\n subtree: false\n });\n }\n }\n _unobserveMutations() {\n if (!this._options.customElementMode) {\n this._mutationObserver.disconnect();\n }\n }\n _observeEvents() {\n if (this._destroyed !== true) {\n this._buttonEl.addEventListener(\"click\", this._onButtonFirstClickListener, { once: true });\n this.menu.el.addEventListener(\"keydown\", this._onMenuKeyDownListener);\n this.menu.el.addEventListener(\"makeup-menu-select\", this._onMenuItemSelectListener);\n this.menu.el.addEventListener(\"makeup-menu-change\", this._onMenuItemSelectListener);\n }\n }\n _unobserveEvents() {\n this._buttonEl.removeEventListener(\"click\", this._onButtonFirstClickListener);\n this.menu.el.removeEventListener(\"keydown\", this._onMenuKeyDownListener);\n this.menu.el.removeEventListener(\"makeup-menu-select\", this._onMenuItemSelectListener);\n this.menu.el.removeEventListener(\"makeup-menu-change\", this._onMenuItemSelectListener);\n }\n destroy() {\n this._destroyed = true;\n this._unobserveMutations();\n this._unobserveEvents();\n this._onButtonFirstClickListener = null;\n this._onMenuKeyDownListener = null;\n this._onMenuItemSelectListener = null;\n this._onMutationListener = null;\n }\n}\nfunction _onMutation(mutationsList) {\n for (const mutation of mutationsList) {\n if (mutation.type === \"attributes\") {\n this.el.dispatchEvent(\n new CustomEvent(\"makeup-menu-button-mutation\", {\n detail: {\n attributeName: mutation.attributeName\n }\n })\n );\n }\n }\n}\nfunction _onButtonFirstClick() {\n this.menu.el.hidden = false;\n}\nfunction _onMenuKeyDown(e) {\n if (e.keyCode === 27) {\n this._expander.expanded = false;\n this._buttonEl.focus();\n }\n}\nfunction _onMenuItemSelect(e) {\n const widget = this;\n const { el } = e.detail;\n setTimeout(function() {\n widget._expander.expanded = false;\n widget._buttonEl.focus();\n }, 150);\n if (el.getAttribute(\"role\") !== \"menuitemradio\") {\n return;\n }\n const { menuItemIconSelector, menuItemButtonAriaLabelSelector, buttonValueType } = this._options;\n const icon = el.querySelector(menuItemIconSelector).cloneNode(true);\n const text = el.innerText.trim();\n let btnContent = this._buttonPrefix ? `${this._buttonPrefix} ${text}` : text;\n if (icon) {\n switch (buttonValueType) {\n case \"both\":\n btnContent = `${icon.outerHTML} ${btnContent}`;\n break;\n case \"icon\":\n this._buttonEl.setAttribute(\"aria-label\", btnContent);\n btnContent = icon.outerHTML;\n break;\n default:\n break;\n }\n }\n if (menuItemButtonAriaLabelSelector) {\n const selectorText = el.querySelector(menuItemButtonAriaLabelSelector)?.innerText.trim();\n this._buttonEl.setAttribute(\n \"aria-label\",\n this._buttonPrefix ? `${this._buttonPrefix} ${selectorText}` : selectorText\n );\n }\n this._buttonTextEl.innerHTML = btnContent;\n}\nexport {\n src_default as default\n};\n","const defaultOptions = {\n bem: {\n control: \"switch__control\"\n },\n customElementMode: false\n};\nclass src_default {\n constructor(el, selectedOptions) {\n this._options = Object.assign({}, defaultOptions, selectedOptions);\n this.el = el;\n this._onClickListener = _onClick.bind(this);\n this._onKeyDownListener = _onKeyDown.bind(this);\n this._onMutationListener = _onMutation.bind(this);\n if (this.disabled) {\n this._focusableElement.setAttribute(\"tabindex\", \"-1\");\n }\n this.el.classList.add(\"switch--js\");\n if (!this._options.customElementMode) {\n this._mutationObserver = new MutationObserver(this._onMutationListener);\n this._observeMutations();\n this._observeEvents();\n }\n }\n _observeMutations() {\n if (!this._options.customElementMode) {\n this._mutationObserver.observe(this._focusableElement, {\n attributes: true,\n childList: false,\n subtree: false\n });\n }\n }\n _unobserveMutations() {\n if (!this._options.customElementMode) {\n this._mutationObserver.disconnect();\n }\n }\n _observeEvents() {\n this._focusableElement.addEventListener(\"click\", this._onClickListener);\n this._focusableElement.addEventListener(\"keydown\", this._onKeyDownListener);\n }\n _unobserveEvents() {\n this._focusableElement.removeEventListener(\"click\", this._onClickListener);\n this._focusableElement.removeEventListener(\"keydown\", this._onKeyDownListener);\n }\n get _focusableElement() {\n return this.el.querySelector(`.${this._options.bem.control}`);\n }\n set checked(isChecked) {\n this._unobserveMutations();\n this._focusableElement.setAttribute(\"aria-checked\", isChecked.toString());\n this.el.dispatchEvent(new CustomEvent(\"makeup-switch-toggle\", {\n composed: true,\n detail: {\n on: this.checked\n }\n }));\n this._observeMutations();\n }\n get checked() {\n return this._focusableElement.getAttribute(\"aria-checked\") === \"true\";\n }\n set disabled(isDisabled) {\n this._unobserveMutations();\n this._focusableElement.setAttribute(\"aria-disabled\", isDisabled.toString());\n this._focusableElement.setAttribute(\"tabindex\", isDisabled ? \"-1\" : \"0\");\n this._observeMutations();\n }\n get disabled() {\n return this._focusableElement.getAttribute(\"aria-disabled\") === \"true\";\n }\n set labelledby(theId) {\n this._unobserveMutations();\n this._focusableElement.setAttribute(\"aria-labelledby\", theId);\n if (this._options.customElementMode) {\n const labellingEl = document.getElementById(this.labelledby);\n if (labellingEl && labellingEl.innerText !== \"\") {\n this.label = labellingEl.innerText;\n }\n }\n this._observeMutations();\n }\n get labelledby() {\n return this._focusableElement.getAttribute(\"aria-labelledby\");\n }\n get label() {\n return this._focusableElement.getAttribute(\"aria-label\");\n }\n set label(theLabel) {\n this._unobserveMutations();\n this._focusableElement.setAttribute(\"aria-label\", theLabel);\n this._observeMutations();\n }\n toggle() {\n this.checked = !this.checked;\n }\n destroy() {\n this._unobserveMutations();\n this._unobserveEvents();\n this._onClickListener = null;\n this._onKeyDownListener = null;\n this._onMutationListener = null;\n }\n}\nfunction _onKeyDown(e) {\n if (!this.disabled) {\n switch (e.keyCode) {\n case 32:\n e.preventDefault();\n this.toggle();\n break;\n case 37:\n this.checked = false;\n break;\n case 39:\n this.checked = true;\n break;\n default:\n break;\n }\n }\n}\nfunction _onClick() {\n if (!this.disabled) {\n this.toggle();\n }\n}\nfunction _onMutation(mutationsList) {\n for (const mutation of mutationsList) {\n if (mutation.type === \"attributes\") {\n this.el.dispatchEvent(new CustomEvent(\"makeup-switch-mutation\", {\n detail: {\n attributeName: mutation.attributeName\n }\n }));\n }\n }\n}\nexport {\n src_default as default\n};\n","import focusables from \"makeup-focusables\";\nlet trappedEl;\nlet topTrap;\nlet outerTrapBefore;\nlet innerTrapBefore;\nlet innerTrapAfter;\nlet outerTrapAfter;\nlet botTrap;\nlet firstFocusableElement;\nlet lastFocusableElement;\nfunction createTrapBoundary() {\n const trapBoundary = document.createElement(\"div\");\n trapBoundary.setAttribute(\"aria-hidden\", \"true\");\n trapBoundary.setAttribute(\"tabindex\", \"0\");\n trapBoundary.className = \"keyboard-trap-boundary\";\n return trapBoundary;\n}\nfunction setFocusToFirstFocusableElement() {\n firstFocusableElement.focus();\n}\nfunction setFocusToLastFocusableElement() {\n lastFocusableElement.focus();\n}\nfunction createTraps() {\n topTrap = createTrapBoundary();\n outerTrapBefore = topTrap.cloneNode();\n innerTrapBefore = topTrap.cloneNode();\n innerTrapAfter = topTrap.cloneNode();\n outerTrapAfter = topTrap.cloneNode();\n botTrap = topTrap.cloneNode();\n topTrap.addEventListener(\"focus\", setFocusToFirstFocusableElement);\n outerTrapBefore.addEventListener(\"focus\", setFocusToFirstFocusableElement);\n innerTrapBefore.addEventListener(\"focus\", setFocusToLastFocusableElement);\n innerTrapAfter.addEventListener(\"focus\", setFocusToFirstFocusableElement);\n outerTrapAfter.addEventListener(\"focus\", setFocusToLastFocusableElement);\n botTrap.addEventListener(\"focus\", setFocusToLastFocusableElement);\n}\nfunction untrap() {\n if (trappedEl) {\n topTrap = safeDetach(topTrap);\n outerTrapBefore = safeDetach(outerTrapBefore);\n innerTrapBefore = safeDetach(innerTrapBefore);\n innerTrapAfter = safeDetach(innerTrapAfter);\n outerTrapAfter = safeDetach(outerTrapAfter);\n botTrap = safeDetach(botTrap);\n trappedEl.classList.remove(\"keyboard-trap--active\");\n trappedEl.dispatchEvent(new CustomEvent(\"keyboardUntrap\", { bubbles: true }));\n trappedEl = null;\n }\n return trappedEl;\n}\nfunction safeDetach(el) {\n const parent = el.parentNode;\n return parent ? parent.removeChild(el) : el;\n}\nfunction trap(el) {\n if (!topTrap) {\n createTraps();\n } else {\n untrap();\n }\n trappedEl = el;\n const body = typeof document === \"undefined\" ? null : document.body;\n const focusableElements = focusables(trappedEl, true);\n firstFocusableElement = focusableElements[0];\n lastFocusableElement = focusableElements[focusableElements.length - 1];\n body.insertBefore(topTrap, body.childNodes[0]);\n trappedEl.parentNode.insertBefore(outerTrapBefore, trappedEl);\n trappedEl.insertBefore(innerTrapBefore, trappedEl.childNodes[0]);\n trappedEl.appendChild(innerTrapAfter);\n trappedEl.parentNode.insertBefore(outerTrapAfter, trappedEl.nextElementSibling);\n body.appendChild(botTrap);\n trappedEl.dispatchEvent(new CustomEvent(\"keyboardTrap\", { bubbles: true }));\n trappedEl.classList.add(\"keyboard-trap--active\");\n return trappedEl;\n}\nfunction refresh() {\n if (topTrap && trappedEl) {\n let focusableElements = focusables(trappedEl, true);\n focusableElements = focusableElements.filter(function(el) {\n return !el.classList.contains(\"keyboard-trap-boundary\");\n });\n firstFocusableElement = focusableElements[0];\n lastFocusableElement = focusableElements[focusableElements.length - 1];\n }\n}\nexport {\n refresh,\n trap,\n untrap\n};\n","const filterAncestor = (item) => item.nodeType === 1 && item.tagName.toLowerCase() !== \"body\" && item.tagName.toLowerCase() !== \"html\";\nconst filterSibling = (item) => item.nodeType === 1 && item.tagName.toLowerCase() !== \"script\";\nconst flattenArrays = (a, b) => a.concat(b);\nfunction getPreviousSiblings(el, siblings = []) {\n const previousSibling = el.previousSibling;\n if (!previousSibling) {\n return siblings;\n }\n siblings.push(previousSibling);\n return getPreviousSiblings(previousSibling, siblings);\n}\nfunction getNextSiblings(el, siblings = []) {\n const nextSibling = el.nextSibling;\n if (!nextSibling) {\n return siblings;\n }\n siblings.push(nextSibling);\n return getNextSiblings(nextSibling, siblings);\n}\nfunction getSiblings(el) {\n const allSiblings = getPreviousSiblings(el).concat(getNextSiblings(el));\n return allSiblings.filter(filterSibling);\n}\nfunction getAllAncestors(el, ancestors = []) {\n const nextAncestor = el.parentNode;\n if (!nextAncestor) {\n return ancestors;\n }\n ancestors.push(nextAncestor);\n return getAllAncestors(nextAncestor, ancestors);\n}\nfunction getAncestors(el) {\n return getAllAncestors(el).filter(filterAncestor);\n}\nfunction getSiblingsOfAncestors(el) {\n return getAncestors(el).map((item) => getSiblings(item)).reduce(flattenArrays, []);\n}\nexport {\n getAncestors,\n getSiblings,\n getSiblingsOfAncestors\n};\n","import * as util from \"./util.js\";\nlet mainEl;\nlet trappedEl;\nlet dirtyObjects;\nconst filterSvg = (item) => item.tagName.toLowerCase() !== \"svg\";\nfunction showElementPrep(el, useHiddenProperty) {\n let preparedElement;\n if (useHiddenProperty === false) {\n preparedElement = prepareElement(el, \"aria-hidden\", \"false\");\n } else {\n preparedElement = prepareElement(el, \"hidden\", false);\n }\n return preparedElement;\n}\nfunction hideElementPrep(el, useHiddenProperty) {\n let preparedElement;\n if (useHiddenProperty === false) {\n preparedElement = prepareElement(el, \"aria-hidden\", \"true\");\n } else {\n preparedElement = prepareElement(el, \"hidden\", true);\n }\n return preparedElement;\n}\nfunction prepareElement(el, attributeName, dirtyValue) {\n const isProperty = typeof dirtyValue === \"boolean\";\n return {\n el,\n attributeName,\n cleanValue: isProperty ? el[attributeName] : el.getAttribute(attributeName),\n dirtyValue,\n isProperty\n };\n}\nfunction dirtyElement(preparedObj) {\n if (preparedObj.isProperty === true) {\n preparedObj.el[preparedObj.attributeName] = preparedObj.dirtyValue;\n } else {\n preparedObj.el.setAttribute(preparedObj.attributeName, preparedObj.dirtyValue);\n }\n}\nfunction cleanElement(preparedObj) {\n if (preparedObj.cleanValue) {\n if (preparedObj.isProperty === true) {\n preparedObj.el[preparedObj.attributeName] = preparedObj.cleanValue;\n } else {\n preparedObj.el.setAttribute(preparedObj.attributeName, preparedObj.cleanValue);\n }\n } else {\n preparedObj.el.removeAttribute(preparedObj.attributeName);\n }\n}\nfunction untrap() {\n if (trappedEl) {\n dirtyObjects.forEach((item) => cleanElement(item));\n dirtyObjects = [];\n if (mainEl) {\n mainEl.setAttribute(\"role\", \"main\");\n }\n trappedEl.dispatchEvent(new CustomEvent(\"screenreaderUntrap\", { bubbles: true }));\n trappedEl = null;\n }\n}\nconst defaultOptions = {\n useHiddenProperty: false\n};\nfunction trap(el, selectedOptions) {\n untrap();\n const options = Object.assign({}, defaultOptions, selectedOptions);\n trappedEl = el;\n mainEl = document.querySelector('main, [role=\"main\"]');\n if (mainEl) {\n mainEl.setAttribute(\"role\", \"presentation\");\n }\n const ancestors = util.getAncestors(trappedEl);\n let siblings = util.getSiblings(trappedEl);\n let siblingsOfAncestors = util.getSiblingsOfAncestors(trappedEl);\n if (options.useHiddenProperty === true) {\n siblings = siblings.filter(filterSvg);\n siblingsOfAncestors = siblingsOfAncestors.filter(filterSvg);\n }\n dirtyObjects = [showElementPrep(trappedEl, options.useHiddenProperty)].concat(ancestors.map((item) => showElementPrep(item, options.useHiddenProperty))).concat(siblings.map((item) => hideElementPrep(item, options.useHiddenProperty))).concat(siblingsOfAncestors.map((item) => hideElementPrep(item, options.useHiddenProperty)));\n dirtyObjects.forEach((item) => dirtyElement(item));\n trappedEl.dispatchEvent(new CustomEvent(\"screenreaderTrap\", { bubbles: true }));\n}\nexport {\n trap,\n untrap\n};\n","import * as keyboardTrap from \"makeup-keyboard-trap\";\nimport * as screenreaderTrap from \"makeup-screenreader-trap\";\nconst defaultOptions = {\n hoist: false,\n useHiddenProperty: false,\n wrap: false\n};\nconst tags = {\n SCRIPT: \"script\",\n LINK: \"link\"\n};\nlet modalEl;\nlet hoistedPlaceholderEl;\nlet inertContentEl;\nlet originalPositionIndexes = [];\nfunction isRootLevel(el) {\n return el.parentNode.tagName.toLowerCase() === \"body\";\n}\nfunction unhoist() {\n if (hoistedPlaceholderEl) {\n hoistedPlaceholderEl.replaceWith(modalEl);\n hoistedPlaceholderEl = null;\n }\n}\nfunction hoist() {\n if (!hoistedPlaceholderEl && !isRootLevel(modalEl)) {\n hoistedPlaceholderEl = document.createElement(\"div\");\n hoistedPlaceholderEl.setAttribute(\"data-makeup-modal\", \"placeholder\");\n modalEl.parentElement.insertBefore(hoistedPlaceholderEl, modalEl);\n document.body.appendChild(modalEl);\n }\n}\nfunction wrap() {\n if (!inertContentEl && isRootLevel(modalEl)) {\n inertContentEl = document.createElement(\"div\");\n inertContentEl.setAttribute(\"data-makeup-modal\", \"inert\");\n [...document.body.children].forEach((child, index) => {\n if (!(child === modalEl || child.tagName.toLowerCase() === tags.SCRIPT || child.tagName === tags.LINK)) {\n inertContentEl.appendChild(child);\n originalPositionIndexes.push(index);\n }\n });\n document.body.prepend(inertContentEl);\n }\n}\nfunction unwrap() {\n if (inertContentEl) {\n [...inertContentEl.children].forEach((child) => {\n if (!(child.tagName.toLowerCase() === tags.SCRIPT || child.tagName === tags.LINK)) {\n const index = originalPositionIndexes.shift();\n if (index > document.body.children.length) {\n document.body.appendChild(child);\n } else {\n document.body.insertBefore(child, document.body.children[index + 1]);\n }\n }\n });\n inertContentEl.remove();\n inertContentEl = null;\n originalPositionIndexes = [];\n }\n}\nfunction unmodal() {\n if (modalEl) {\n keyboardTrap.untrap(modalEl);\n screenreaderTrap.untrap(modalEl);\n unwrap();\n unhoist();\n document.body.removeAttribute(\"data-makeup-modal\");\n modalEl.removeAttribute(\"data-makeup-modal\");\n modalEl.dispatchEvent(new CustomEvent(\"makeup-unmodal\", { bubbles: false }));\n modalEl = null;\n }\n return modalEl;\n}\nfunction modal(el, options) {\n const _options = Object.assign({}, defaultOptions, options);\n unmodal();\n modalEl = el;\n if (_options.hoist) {\n hoist();\n }\n if (_options.wrap) {\n wrap();\n }\n screenreaderTrap.trap(modalEl, options);\n if (!_options.useHiddenProperty) {\n keyboardTrap.trap(modalEl);\n }\n document.body.setAttribute(\"data-makeup-modal\", \"true\");\n modalEl.setAttribute(\"data-makeup-modal\", \"widget\");\n modalEl.dispatchEvent(new CustomEvent(\"makeup-modal\", { bubbles: false }));\n return modalEl;\n}\nexport {\n modal,\n unmodal\n};\n","const TRANSITION_END = \"transitionend\";\nconst IMMEDIATE_TRANSITION_REG = /0m?s(?:, )?/g;\nfunction transition(el, baseClass, cb) {\n let ended;\n let pending;\n let ran = 0;\n const classList = el.classList;\n const initClass = \"\".concat(baseClass, \"-init\");\n let cancelFrame = nextFrame(function() {\n el.addEventListener(TRANSITION_END, listener, true);\n classList.add(baseClass);\n classList.remove(initClass);\n pending = getTransitionCount(el);\n cancelFrame = void 0;\n if (pending === 0) {\n cancel();\n }\n });\n classList.add(initClass);\n return cancel;\n function cancel() {\n if (ended) {\n return;\n }\n ended = true;\n el.removeEventListener(TRANSITION_END, listener, true);\n if (cancelFrame) {\n cancelFrame();\n classList.remove(initClass);\n } else {\n classList.remove(baseClass);\n }\n }\n function listener() {\n if (++ran === pending) {\n ended = true;\n el.removeEventListener(TRANSITION_END, listener, true);\n classList.remove(baseClass);\n if (cb) {\n cb();\n }\n }\n }\n}\nfunction getTransitionCount(el) {\n let count = window.getComputedStyle(el).transitionDuration.replace(IMMEDIATE_TRANSITION_REG, \"\") ? 1 : 0;\n let child = el.firstElementChild;\n while (child) {\n count += getTransitionCount(child);\n child = child.nextElementSibling;\n }\n return count;\n}\nfunction nextFrame(fn) {\n let frame;\n let cancelFrame;\n if (window.requestAnimationFrame) {\n frame = requestAnimationFrame(function() {\n frame = requestAnimationFrame(fn);\n });\n cancelFrame = cancelAnimationFrame;\n } else {\n frame = setTimeout(fn, 26);\n cancelFrame = clearTimeout;\n }\n return function() {\n if (frame) {\n cancelFrame(frame);\n frame = void 0;\n }\n };\n}\nexport {\n transition as default\n};\n","import * as Modal from \"makeup-modal\";\nimport focusables from \"makeup-focusables\";\nimport transition from \"./transition.js\";\nconst defaultDialogOptions = {\n baseClass: \"dialog\",\n closeButtonSelector: \".dialog__close\",\n focusManagementIndex: 0,\n modal: false,\n quickDismiss: true,\n transitionsModifier: \"mask-fade\"\n};\nclass src_default {\n constructor(widgetEl, selectedOptions) {\n this._options = Object.assign({}, defaultDialogOptions, selectedOptions);\n this._el = widgetEl;\n if (this._options.modal === true) {\n this._el.setAttribute(\"aria-modal\", \"true\");\n }\n this._windowEl = this._el.querySelector(this._options.windowSelector);\n this._closeButtonEl = this._el.querySelector(this._options.closeButtonSelector);\n this._hasTransitions = this._el.classList.contains(`${this._options.baseClass}--${this._options.transitionsModifier}`);\n this._onCloseButtonClickListener = _onCloseButtonClick.bind(this);\n this._onKeyDownListener = _onKeyDown.bind(this);\n this._onOpenTransitionEndCallback = _onOpenTransitionEnd.bind(this);\n this._onCloseTransitionEndCallback = _onCloseTransitionEnd.bind(this);\n this._el.classList.add(`${this._options.baseClass}--js`);\n if (!this.hidden) {\n if (this.modal) {\n _doModalFocusManagement(this);\n }\n this._observeEvents();\n }\n }\n get focusables() {\n return focusables(this._windowEl);\n }\n get modal() {\n return this._el.getAttribute(\"aria-modal\") === \"true\";\n }\n get hidden() {\n return this._el.hidden;\n }\n open() {\n this._show();\n this._el.dispatchEvent(new CustomEvent(\"dialog-open\"));\n }\n close() {\n this._hide();\n this._el.dispatchEvent(new CustomEvent(\"dialog-close\"));\n }\n _show() {\n if (this._hasTransitions) {\n if (this._cancelTransition) {\n this._cancelTransition();\n }\n this._cancelTransition = transition(this._el, `${this._options.baseClass}--show`, this._onOpenTransitionEndCallback);\n } else {\n if (this.modal) {\n setTimeout(() => _doModalFocusManagement(this), 50);\n }\n this._el.hidden = false;\n }\n this._observeEvents();\n }\n _hide() {\n if (this._hasTransitions) {\n if (this._cancelTransition) {\n this._cancelTransition();\n }\n this._cancelTransition = transition(this._el, `${this._options.baseClass}--hide`, this._onCloseTransitionEndCallback);\n } else {\n if (this.modal) {\n Modal.unmodal();\n }\n this._el.hidden = true;\n }\n this._autoDismissTimeout = null;\n this._unobserveEvents();\n }\n _observeEvents() {\n document.addEventListener(\"keydown\", this._onKeyDownListener);\n if (this._closeButtonEl) {\n this._closeButtonEl.addEventListener(\"click\", this._onCloseButtonClickListener);\n }\n }\n _unobserveEvents() {\n this._el.removeEventListener(\"click\", this._onCloseButtonClickListener);\n document.removeEventListener(\"keydown\", this._onKeyDownListener);\n if (this._closeButtonEl) {\n this._closeButtonEl.addEventListener(\"click\", this._onCloseButtonClickListener);\n }\n }\n destroy() {\n this._destroyed = true;\n this._unobserveEvents();\n this._onCloseButtonClickListener = null;\n this._onKeyDownListener = null;\n this._onOpenTransitionEndCallback = null;\n this._onCloseTransitionEndCallback = null;\n this._autoDismissTimeout = null;\n }\n}\nfunction _doModalFocusManagement(dialogWidget) {\n const autoFocusEl = dialogWidget._el.querySelector(\"[autofocus]\");\n if (autoFocusEl) {\n autoFocusEl.focus();\n } else {\n dialogWidget.focusables[dialogWidget._options.focusManagementIndex].focus();\n }\n Modal.modal(dialogWidget._el);\n}\nfunction _onOpenTransitionEnd() {\n this._el.hidden = false;\n this._cancelTransition = void 0;\n if (this.modal) {\n _doModalFocusManagement(this);\n }\n}\nfunction _onCloseTransitionEnd() {\n if (this.modal) {\n Modal.unmodal();\n }\n this._el.hidden = true;\n this._cancelTransition = void 0;\n}\nfunction _onKeyDown(e) {\n if (this._options.quickDismiss === true && e.keyCode === 27) {\n this.close();\n }\n}\nfunction _onCloseButtonClick() {\n this.close();\n}\nexport {\n src_default as default\n};\n","import Dialog from \"makeup-dialog\";\nconst defaultLightboxOptions = {\n baseClass: \"lightbox-dialog\",\n baseClassModifier: \"\",\n quickDismiss: true,\n closeButtonSelector: \".lightbox-dialog__close\",\n windowSelector: \".lightbox-dialog__window\"\n};\nclass src_default extends Dialog {\n constructor(el, selectedOptions = {}) {\n super(el, Object.assign({}, defaultLightboxOptions, selectedOptions, { modal: true }));\n }\n _observeEvents() {\n super._observeEvents();\n this._onClickListener = _onClick.bind(this);\n this._el.addEventListener(\"click\", this._onClickListener);\n }\n _unobserveEvents() {\n super._unobserveEvents();\n this._el.removeEventListener(\"click\", this._onClickListener);\n }\n destroy() {\n super.destroy();\n this._onClickListener = null;\n }\n}\nfunction _onClick(e) {\n if (this._options.quickDismiss === true && e.target === this._el) {\n this.close();\n }\n}\nexport {\n src_default as default\n};\n","import Lightbox from \"makeup-lightbox-dialog\";\nconst defaultAlertOptions = {\n baseClass: \"alert-dialog\",\n baseClassModifier: \"alert\",\n quickDismiss: false,\n acknowledgeButtonSelector: \".alert-dialog__acknowledge\",\n windowSelector: \".alert-dialog__window\"\n};\nclass src_default extends Lightbox {\n constructor(el, selectedOptions = {}) {\n super(el, Object.assign({}, defaultAlertOptions, selectedOptions));\n }\n _observeEvents() {\n super._observeEvents();\n this._acknowledgeButtonEl = this._el.querySelector(this._options.acknowledgeButtonSelector);\n this._onAcknowledgeButtonClickListener = _onAcknowledgeButtonClick.bind(this);\n this._acknowledgeButtonEl.addEventListener(\"click\", this._onAcknowledgeButtonClickListener);\n }\n _unobserveEvents() {\n super._unobserveEvents();\n this._acknowledgeButtonEl.removeEventListener(\"click\", this._onAcknowledgeButtonClickListener);\n }\n acknowledge() {\n this._hide();\n this._el.dispatchEvent(new CustomEvent(\"dialog-acknowledge\"));\n }\n destroy() {\n super.destroy();\n this._onAcknowledgeButtonClickListener = null;\n }\n}\nfunction _onAcknowledgeButtonClick() {\n this.acknowledge();\n}\nexport {\n src_default as default\n};\n","import Lightbox from \"makeup-lightbox-dialog\";\nconst defaultOptions = {\n baseClass: \"confirm-dialog\",\n closeButtonSelector: \".confirm-dialog__close\",\n quickDismiss: true,\n confirmButtonSelector: \".confirm-dialog__confirm\",\n focusManagementIndex: 1,\n rejectButtonSelector: \".confirm-dialog__reject\",\n windowSelector: \".confirm-dialog__window\"\n};\nclass src_default extends Lightbox {\n constructor(el, selectedOptions = {}) {\n super(el, Object.assign({}, defaultOptions, selectedOptions));\n }\n _observeEvents() {\n super._observeEvents();\n this._confirmButtonEl = this._el.querySelector(this._options.confirmButtonSelector);\n this._rejectButtonEl = this._el.querySelector(this._options.rejectButtonSelector);\n this._onConfirmButtonClickListener = _onConfirmButtonClick.bind(this);\n this._onRejectButtonClickListener = _onRejectButtonClick.bind(this);\n this._confirmButtonEl.addEventListener(\"click\", this._onConfirmButtonClickListener);\n this._rejectButtonEl.addEventListener(\"click\", this._onRejectButtonClickListener);\n }\n _unobserveEvents() {\n super._unobserveEvents();\n this._confirmButtonEl.removeEventListener(\"click\", this._onConfirmButtonClickListener);\n this._rejectButtonEl.removeEventListener(\"click\", this._onRejectButtonClickListener);\n }\n confirm() {\n this._hide();\n this._el.dispatchEvent(new CustomEvent(\"dialog-confirm\"));\n }\n reject() {\n this._hide();\n this._el.dispatchEvent(new CustomEvent(\"dialog-reject\"));\n }\n destroy() {\n super.destroy();\n this._onConfirmButtonClickListener = null;\n this._onRejectButtonClickListener = null;\n }\n}\nfunction _onConfirmButtonClick() {\n this.confirm();\n}\nfunction _onRejectButtonClick() {\n this.reject();\n}\nexport {\n src_default as default\n};\n","import Lightbox from \"makeup-lightbox-dialog\";\nconst defaultDrawerOptions = {\n baseClass: \"drawer-dialog\",\n quickDismiss: true,\n closeButtonSelector: \".drawer-dialog__close\",\n focusManagementIndex: 1,\n resizeButtonSelector: \".drawer-dialog__handle\",\n windowSelector: \".drawer-dialog__window\"\n};\nclass src_default extends Lightbox {\n constructor(el, selectedOptions = {}) {\n super(el, Object.assign({}, defaultDrawerOptions, selectedOptions));\n }\n _observeEvents() {\n super._observeEvents();\n this._resizeButtonEl = this._el.querySelector(this._options.resizeButtonSelector);\n this._onResizeButtonClickListener = _onResizeButtonClick.bind(this);\n this._resizeButtonEl.addEventListener(\"click\", this._onResizeButtonClickListener);\n }\n _unobserveEvents() {\n super._unobserveEvents();\n this._resizeButtonEl.removeEventListener(\"click\", this._onResizeButtonClickListener);\n }\n resize() {\n this._el.querySelector(\".drawer-dialog__window\").classList.toggle(\"drawer-dialog__window--expanded\");\n this._el.dispatchEvent(new CustomEvent(\"dialog-resize\"));\n }\n destroy() {\n super.destroy();\n this._onResizeButtonClickListener = null;\n }\n}\nfunction _onResizeButtonClick() {\n this.resize();\n}\nexport {\n src_default as default\n};\n","import Dialog from \"makeup-dialog\";\nconst defaultFullscreenOptions = {\n baseClass: \"fullscreen-dialog\",\n quickDismiss: false,\n closeButtonSelector: \".fullscreen-dialog__close\",\n transitionsModifier: \"transition\",\n windowSelector: \".fullscreen-dialog__window\"\n};\nclass src_default extends Dialog {\n constructor(el, selectedOptions = {}) {\n super(el, Object.assign({}, defaultFullscreenOptions, selectedOptions, { modal: true }));\n }\n}\nexport {\n src_default as default\n};\n","import Lightbox from \"makeup-lightbox-dialog\";\nconst defaultInputOptions = {\n baseClass: \"lightbox-dialog\",\n baseClassModifier: \"input\",\n submitButtonSelector: \".lightbox-dialog__submit\",\n cancelButtonSelector: \".lightbox-dialog__cancel\",\n windowSelector: \".lightbox-dialog__window\"\n};\nclass src_default extends Lightbox {\n constructor(el, selectedOptions = {}) {\n super(el, Object.assign({}, defaultInputOptions, selectedOptions));\n }\n _observeEvents() {\n super._observeEvents();\n this._submitButtonEl = this._el.querySelector(this._options.submitButtonSelector);\n this._cancelButtonEl = this._el.querySelector(this._options.cancelButtonSelector);\n this._onSubmitButtonClickListener = _onSubmitButtonClick.bind(this);\n this._onCancelButtonClickListener = _onCancelButtonClick.bind(this);\n this._submitButtonEl.addEventListener(\"click\", this._onSubmitButtonClickListener);\n this._cancelButtonEl.addEventListener(\"click\", this._onCancelButtonClickListener);\n }\n _unobserveEvents() {\n super._unobserveEvents();\n this._submitButtonEl.removeEventListener(\"click\", this._onSubmitButtonClickListener);\n this._cancelButtonEl.removeEventListener(\"click\", this._onCancelButtonClickListener);\n }\n submit() {\n this._hide();\n this._el.dispatchEvent(new CustomEvent(\"dialog-submit\"));\n }\n cancel() {\n this._hide();\n this._el.dispatchEvent(new CustomEvent(\"dialog-cancel\"));\n }\n destroy() {\n super.destroy();\n this._onSubmitButtonClickListener = null;\n this._onCancelButtonClickListener = null;\n }\n}\nfunction _onSubmitButtonClick() {\n this.submit();\n}\nfunction _onCancelButtonClick() {\n this.cancel();\n}\nexport {\n src_default as default\n};\n","import Lightbox from \"makeup-lightbox-dialog\";\nconst defaultPanelOptions = {\n baseClass: \"panel-dialog\",\n quickDismiss: true,\n closeButtonSelector: \".panel-dialog__close\",\n doneButtonSelector: \".panel-dialog__done\",\n windowSelector: \".panel-dialog__window\",\n transitionsModifier: \"mask-fade-slow\"\n};\nclass src_default extends Lightbox {\n constructor(el, selectedOptions = {}) {\n super(el, Object.assign({}, defaultPanelOptions, selectedOptions));\n }\n}\nexport {\n src_default as default\n};\n","import Dialog from \"makeup-dialog\";\nconst defaultSnackbarOptions = {\n autoDismissTimer: 6e3,\n baseClass: \"snackbar-dialog\",\n ctaButtonSelector: \".snackbar-dialog__cta\",\n transitionsModifier: \"transition\"\n};\nclass src_default extends Dialog {\n constructor(el, selectedOptions = {}) {\n super(el, Object.assign({}, defaultSnackbarOptions, selectedOptions));\n this._autoDismissTimeout = null;\n }\n _show() {\n super._show();\n this._autoDismissTimeout = setTimeout((widget = this) => widget.close(), this._options.autoDismissTimer);\n }\n _observeEvents() {\n super._observeEvents();\n this._ctaEl = this._el.querySelector(this._options.ctaButtonSelector);\n if (this._ctaEl) {\n this._onCtaClickListener = _onCtaButtonClick.bind(this);\n this._ctaEl.addEventListener(\"click\", this._onCtaClickListener);\n }\n }\n _unobserveEvents() {\n super._unobserveEvents();\n if (this._ctaEl) {\n this._ctaEl.removeEventListener(\"click\", this._onCtaClickListener);\n }\n }\n cta() {\n this._hide();\n this._el.dispatchEvent(new CustomEvent(\"dialog-cta\"));\n }\n destroy() {\n super.destroy();\n this._onCtaClickListener = null;\n }\n}\nfunction _onCtaButtonClick() {\n this.cta();\n}\nexport {\n src_default as default\n};\n","import Dialog from \"makeup-dialog\";\nconst defaultToastOptions = {\n baseClass: \"toast-dialog\",\n closeButtonSelector: \".toast-dialog__close\",\n ctaButtonSelector: \".toast-dialog__cta\",\n transitionsModifier: \"transition\"\n};\nclass src_default extends Dialog {\n constructor(el, selectedOptions = {}) {\n super(el, Object.assign({}, defaultToastOptions, selectedOptions));\n }\n _show() {\n super._show();\n }\n _observeEvents() {\n super._observeEvents();\n this._ctaEl = this._el.querySelector(this._options.ctaButtonSelector);\n if (this._ctaEl) {\n this._onCtaClickListener = _onCtaButtonClick.bind(this);\n this._ctaEl.addEventListener(\"click\", this._onCtaClickListener);\n }\n }\n _unobserveEvents() {\n super._unobserveEvents();\n if (this._ctaEl) {\n this._ctaEl.removeEventListener(\"click\", this._onCtaClickListener);\n }\n }\n cta() {\n this._hide();\n this._el.dispatchEvent(new CustomEvent(\"dialog-cta\"));\n }\n destroy() {\n super.destroy();\n this._onCtaClickListener = null;\n }\n}\nfunction _onCtaButtonClick() {\n this.cta();\n}\nexport {\n src_default as default\n};\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isWebKit };\n","import { rectToClientRect, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { detectOverflow, offset } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = currentWin.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = currentWin.frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(floating) {\n return topLayerSelectors.some(selector => {\n try {\n return floating.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const x = rect.left + scroll.scrollLeft - offsets.x;\n const y = rect.top + scroll.scrollTop - offsets.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element) || isTopLayer(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(data.floating))\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle