%PDF- %PDF-
Direktori : /home/opti/public_html/ncf/static/js/ |
Current File : /home/opti/public_html/ncf/static/js/57.3f1b4f27.chunk.js.map |
{"version":3,"sources":["../node_modules/swiper/esm/components/pagination/pagination.js","../../../src/hooks/use-focus-trap.ts","../../../src/hooks/use-inert-others.ts","../../../src/internal/portal-force-root.tsx","../../../../src/components/portal/portal.tsx","../../../../src/components/description/description.tsx","../../../src/internal/stack-context.tsx","../../../../src/components/dialog/dialog.tsx"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","Pagination","update","swiper","rtl","params","pagination","el","$el","current","slidesLength","virtual","enabled","slides","total","loop","Math","ceil","loopedSlides","slidesPerGroup","snapGrid","activeIndex","paginationType","snapIndex","type","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","eq","isHorizontal","css","dynamicMainBullets","undefined","previousIndex","dynamicBulletIndex","min","removeClass","bulletActiveClass","each","bullet","$bullet","$","bulletIndex","index","addClass","prev","next","$firstDisplayedBullet","$lastDisplayedBullet","_i","dynamicBulletsLength","bulletsOffset","offsetProp","find","classesToSelector","currentClass","text","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","transform","transition","speed","renderCustom","html","emit","watchOverflow","isLocked","lockClass","render","paginationHTML","numberOfBullets","freeMode","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","init","createElementIfNotDefined","createElements","uniqueNavElements","clickable","clickableClass","modifierClass","progressbarOppositeClass","on","e","preventDefault","slideTo","extend","destroy","hiddenClass","off","name","hideOnClick","number","create","bindModuleMethods","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","click","targetEl","hasClass","navigation","nextEl","prevEl","toggleClass","Features","useFocusTrap","container","features","All","initialFocus","containers","restoreElement","useRef","window","document","previousActiveElement","mounted","useIsMounted","featuresRestoreFocus","Boolean","featuresInitialFocus","useEffect","focusElement","activeElement","focusIn","Focus","FocusResult","Error","useWindowEvent","event","Keys","allContainers","Set","previous","toElement","contains","interactables","originals","inert","element","restore","original","ForcePortalRootContext","createContext","ForcePortalRoot","props","value","force","usePortalTarget","forceInRoot","useContext","groupTarget","useState","existingRoot","root","setTarget","DEFAULT_PORTAL_TAG","Portal","passthroughProps","ready","useServerHandoffComplete","useIsoMorphicEffect","createPortal","defaultTag","DEFAULT_GROUP_TAG","PortalGroupContext","DescriptionContext","useDescriptionContext","context","err","StackMessage","StackContext","StackProvider","children","onUpdate","parentUpdate","notify","useCallback","args","DialogStates","ActionTypes","reducers","state","action","titleId","id","DialogContext","useDialogContext","component","Dialog","stateReducer","match","DialogRenderFeatures","DialogRoot","forwardRefWithAs","open","onClose","rest","nestedDialogCount","setNestedDialogCount","usesOpenClosedState","useOpenClosed","State","internalDialogRef","dialogRef","useSyncRefs","hasOpen","hasOnClose","dialogState","visible","useReducer","descriptionId","dispatch","close","setTitleId","hasNestedDialogs","hasParentDialog","position","parent","FocusTrapFeatures","leaf","child","interactable","useInertOthers","overflow","paddingRight","scrollbarWidth","observer","IntersectionObserver","entries","entry","descriptionIds","setDescriptionIds","useMemo","register","existing","clone","idx","contextBag","slot","useDescriptions","describedby","DescriptionProvider","useId","Open","propsWeControl","ref","role","onClick","onKeyDown","message","count","React","Overlay","overlayRef","handleClick","isDisabledReactIssue7711","Title","Description","passThroughProps"],"mappings":"mHAAA,+BAASA,IAA2Q,OAA9PA,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAIhT,IAAIS,EAAa,CACfC,OAAQ,WAEN,IAAIC,EAASH,KACTI,EAAMD,EAAOC,IACbC,EAASF,EAAOE,OAAOC,WAC3B,GAAKD,EAAOE,IAAOJ,EAAOG,WAAWC,IAAOJ,EAAOG,WAAWE,KAAwC,IAAjCL,EAAOG,WAAWE,IAAIf,OAA3F,CACA,IAGIgB,EAHAC,EAAeP,EAAOQ,SAAWR,EAAOE,OAAOM,QAAQC,QAAUT,EAAOQ,QAAQE,OAAOpB,OAASU,EAAOU,OAAOpB,OAC9Ge,EAAML,EAAOG,WAAWE,IAGxBM,EAAQX,EAAOE,OAAOU,KAAOC,KAAKC,MAAMP,EAAqC,EAAtBP,EAAOe,cAAoBf,EAAOE,OAAOc,gBAAkBhB,EAAOiB,SAAS3B,OAkBtI,GAhBIU,EAAOE,OAAOU,OAChBN,EAAUO,KAAKC,MAAMd,EAAOkB,YAAclB,EAAOe,cAAgBf,EAAOE,OAAOc,iBAEjET,EAAe,EAA0B,EAAtBP,EAAOe,eACtCT,GAAWC,EAAqC,EAAtBP,EAAOe,cAG/BT,EAAUK,EAAQ,IAAGL,GAAWK,GAChCL,EAAU,GAAsC,YAAjCN,EAAOE,OAAOiB,iBAA8Bb,EAAUK,EAAQL,IAEjFA,EADqC,qBAArBN,EAAOoB,UACbpB,EAAOoB,UAEPpB,EAAOkB,aAAe,EAId,YAAhBhB,EAAOmB,MAAsBrB,EAAOG,WAAWmB,SAAWtB,EAAOG,WAAWmB,QAAQhC,OAAS,EAAG,CAClG,IACIiC,EACAC,EACAC,EAHAH,EAAUtB,EAAOG,WAAWmB,QA0BhC,GArBIpB,EAAOwB,iBACT1B,EAAOG,WAAWwB,WAAaL,EAAQM,GAAG,GAAG5B,EAAO6B,eAAiB,aAAe,gBAAe,GACnGxB,EAAIyB,IAAI9B,EAAO6B,eAAiB,QAAU,SAAU7B,EAAOG,WAAWwB,YAAczB,EAAO6B,mBAAqB,GAAK,MAEjH7B,EAAO6B,mBAAqB,QAA8BC,IAAzBhC,EAAOiC,gBAC1CjC,EAAOG,WAAW+B,oBAAsB5B,EAAUN,EAAOiC,cAErDjC,EAAOG,WAAW+B,mBAAqBhC,EAAO6B,mBAAqB,EACrE/B,EAAOG,WAAW+B,mBAAqBhC,EAAO6B,mBAAqB,EAC1D/B,EAAOG,WAAW+B,mBAAqB,IAChDlC,EAAOG,WAAW+B,mBAAqB,IAI3CX,EAAajB,EAAUN,EAAOG,WAAW+B,mBAEzCT,IADAD,EAAYD,GAAcV,KAAKsB,IAAIb,EAAQhC,OAAQY,EAAO6B,oBAAsB,IACxDR,GAAc,GAGxCD,EAAQc,YAAYlC,EAAOmC,kBAAoB,IAAMnC,EAAOmC,kBAAoB,SAAWnC,EAAOmC,kBAAoB,cAAgBnC,EAAOmC,kBAAoB,SAAWnC,EAAOmC,kBAAoB,cAAgBnC,EAAOmC,kBAAoB,SAE9OhC,EAAIf,OAAS,EACfgC,EAAQgB,MAAK,SAAUC,GACrB,IAAIC,EAAUC,YAAEF,GACZG,EAAcF,EAAQG,QAEtBD,IAAgBpC,GAClBkC,EAAQI,SAAS1C,EAAOmC,mBAGtBnC,EAAOwB,iBACLgB,GAAenB,GAAcmB,GAAelB,GAC9CgB,EAAQI,SAAS1C,EAAOmC,kBAAoB,SAG1CK,IAAgBnB,GAClBiB,EAAQK,OAAOD,SAAS1C,EAAOmC,kBAAoB,SAASQ,OAAOD,SAAS1C,EAAOmC,kBAAoB,cAGrGK,IAAgBlB,GAClBgB,EAAQM,OAAOF,SAAS1C,EAAOmC,kBAAoB,SAASS,OAAOF,SAAS1C,EAAOmC,kBAAoB,sBAIxG,CACL,IAAIG,EAAUlB,EAAQM,GAAGtB,GACrBoC,EAAcF,EAAQG,QAG1B,GAFAH,EAAQI,SAAS1C,EAAOmC,mBAEpBnC,EAAOwB,eAAgB,CAIzB,IAHA,IAAIqB,EAAwBzB,EAAQM,GAAGL,GACnCyB,EAAuB1B,EAAQM,GAAGJ,GAE7BpC,EAAImC,EAAYnC,GAAKoC,EAAWpC,GAAK,EAC5CkC,EAAQM,GAAGxC,GAAGwD,SAAS1C,EAAOmC,kBAAoB,SAGpD,GAAIrC,EAAOE,OAAOU,KAChB,GAAI8B,GAAepB,EAAQhC,OAASY,EAAO6B,mBAAoB,CAC7D,IAAK,IAAIkB,EAAK/C,EAAO6B,mBAAoBkB,GAAM,EAAGA,GAAM,EACtD3B,EAAQM,GAAGN,EAAQhC,OAAS2D,GAAIL,SAAS1C,EAAOmC,kBAAoB,SAGtEf,EAAQM,GAAGN,EAAQhC,OAASY,EAAO6B,mBAAqB,GAAGa,SAAS1C,EAAOmC,kBAAoB,cAE/FU,EAAsBF,OAAOD,SAAS1C,EAAOmC,kBAAoB,SAASQ,OAAOD,SAAS1C,EAAOmC,kBAAoB,cACrHW,EAAqBF,OAAOF,SAAS1C,EAAOmC,kBAAoB,SAASS,OAAOF,SAAS1C,EAAOmC,kBAAoB,mBAGtHU,EAAsBF,OAAOD,SAAS1C,EAAOmC,kBAAoB,SAASQ,OAAOD,SAAS1C,EAAOmC,kBAAoB,cACrHW,EAAqBF,OAAOF,SAAS1C,EAAOmC,kBAAoB,SAASS,OAAOF,SAAS1C,EAAOmC,kBAAoB,eAK1H,GAAInC,EAAOwB,eAAgB,CACzB,IAAIwB,EAAuBrC,KAAKsB,IAAIb,EAAQhC,OAAQY,EAAO6B,mBAAqB,GAC5EoB,GAAiBnD,EAAOG,WAAWwB,WAAauB,EAAuBlD,EAAOG,WAAWwB,YAAc,EAAIF,EAAWzB,EAAOG,WAAWwB,WACxIyB,EAAanD,EAAM,QAAU,OACjCqB,EAAQQ,IAAI9B,EAAO6B,eAAiBuB,EAAa,MAAOD,EAAgB,OAS5E,GALoB,aAAhBjD,EAAOmB,OACThB,EAAIgD,KAAKC,YAAkBpD,EAAOqD,eAAeC,KAAKtD,EAAOuD,sBAAsBnD,EAAU,IAC7FD,EAAIgD,KAAKC,YAAkBpD,EAAOwD,aAAaF,KAAKtD,EAAOyD,oBAAoBhD,KAG7D,gBAAhBT,EAAOmB,KAAwB,CACjC,IAAIuC,EAGFA,EADE1D,EAAO2D,oBACc7D,EAAO6B,eAAiB,WAAa,aAErC7B,EAAO6B,eAAiB,aAAe,WAGhE,IAAIiC,GAASxD,EAAU,GAAKK,EACxBoD,EAAS,EACTC,EAAS,EAEgB,eAAzBJ,EACFG,EAASD,EAETE,EAASF,EAGXzD,EAAIgD,KAAKC,YAAkBpD,EAAO+D,uBAAuBC,UAAU,6BAA+BH,EAAS,YAAcC,EAAS,KAAKG,WAAWnE,EAAOE,OAAOkE,OAG9I,WAAhBlE,EAAOmB,MAAqBnB,EAAOmE,cACrChE,EAAIiE,KAAKpE,EAAOmE,aAAarE,EAAQM,EAAU,EAAGK,IAClDX,EAAOuE,KAAK,mBAAoBlE,EAAI,KAEpCL,EAAOuE,KAAK,mBAAoBlE,EAAI,IAGlCL,EAAOE,OAAOsE,eAAiBxE,EAAOS,SACxCJ,EAAIL,EAAOyE,SAAW,WAAa,eAAevE,EAAOwE,aAG7DC,OAAQ,WAEN,IAAI3E,EAASH,KACTK,EAASF,EAAOE,OAAOC,WAC3B,GAAKD,EAAOE,IAAOJ,EAAOG,WAAWC,IAAOJ,EAAOG,WAAWE,KAAwC,IAAjCL,EAAOG,WAAWE,IAAIf,OAA3F,CACA,IAAIiB,EAAeP,EAAOQ,SAAWR,EAAOE,OAAOM,QAAQC,QAAUT,EAAOQ,QAAQE,OAAOpB,OAASU,EAAOU,OAAOpB,OAC9Ge,EAAML,EAAOG,WAAWE,IACxBuE,EAAiB,GAErB,GAAoB,YAAhB1E,EAAOmB,KAAoB,CAC7B,IAAIwD,EAAkB7E,EAAOE,OAAOU,KAAOC,KAAKC,MAAMP,EAAqC,EAAtBP,EAAOe,cAAoBf,EAAOE,OAAOc,gBAAkBhB,EAAOiB,SAAS3B,OAE5IU,EAAOE,OAAO4E,WAAa9E,EAAOE,OAAOU,MAAQiE,EAAkBtE,IACrEsE,EAAkBtE,GAGpB,IAAK,IAAInB,EAAI,EAAGA,EAAIyF,EAAiBzF,GAAK,EACpCc,EAAO6E,aACTH,GAAkB1E,EAAO6E,aAAapF,KAAKK,EAAQZ,EAAGc,EAAO8E,aAE7DJ,GAAkB,IAAM1E,EAAO+E,cAAgB,WAAc/E,EAAO8E,YAAc,OAAU9E,EAAO+E,cAAgB,IAIvH5E,EAAIiE,KAAKM,GACT5E,EAAOG,WAAWmB,QAAUjB,EAAIgD,KAAKC,YAAkBpD,EAAO8E,cAG5C,aAAhB9E,EAAOmB,OAEPuD,EADE1E,EAAOgF,eACQhF,EAAOgF,eAAevF,KAAKK,EAAQE,EAAOqD,aAAcrD,EAAOwD,YAE/D,gBAAmBxD,EAAOqD,aAA1B,4BAAoFrD,EAAOwD,WAAa,YAG3HrD,EAAIiE,KAAKM,IAGS,gBAAhB1E,EAAOmB,OAEPuD,EADE1E,EAAOiF,kBACQjF,EAAOiF,kBAAkBxF,KAAKK,EAAQE,EAAO+D,sBAE7C,gBAAmB/D,EAAO+D,qBAAuB,YAGpE5D,EAAIiE,KAAKM,IAGS,WAAhB1E,EAAOmB,MACTrB,EAAOuE,KAAK,mBAAoBvE,EAAOG,WAAWE,IAAI,MAG1D+E,KAAM,WACJ,IAAIpF,EAASH,KACbG,EAAOE,OAAOC,WAAakF,YAA0BrF,EAAOK,IAAKL,EAAOE,OAAOC,WAAYH,EAAOE,OAAOoF,eAAgB,CACvHlF,GAAI,sBAEN,IAAIF,EAASF,EAAOE,OAAOC,WAC3B,GAAKD,EAAOE,GAAZ,CACA,IAAIC,EAAMoC,YAAEvC,EAAOE,IACA,IAAfC,EAAIf,SAEJU,EAAOE,OAAOqF,mBAA0C,kBAAdrF,EAAOE,IAAmBC,EAAIf,OAAS,IACnFe,EAAML,EAAOK,IAAIgD,KAAKnD,EAAOE,KAGX,YAAhBF,EAAOmB,MAAsBnB,EAAOsF,WACtCnF,EAAIuC,SAAS1C,EAAOuF,gBAGtBpF,EAAIuC,SAAS1C,EAAOwF,cAAgBxF,EAAOmB,MAEvB,YAAhBnB,EAAOmB,MAAsBnB,EAAOwB,iBACtCrB,EAAIuC,SAAS,GAAK1C,EAAOwF,cAAgBxF,EAAOmB,KAAO,YACvDrB,EAAOG,WAAW+B,mBAAqB,EAEnChC,EAAO6B,mBAAqB,IAC9B7B,EAAO6B,mBAAqB,IAIZ,gBAAhB7B,EAAOmB,MAA0BnB,EAAO2D,qBAC1CxD,EAAIuC,SAAS1C,EAAOyF,0BAGlBzF,EAAOsF,WACTnF,EAAIuF,GAAG,QAAStC,YAAkBpD,EAAO8E,cAAc,SAAiBa,GACtEA,EAAEC,iBACF,IAAInD,EAAQF,YAAE5C,MAAM8C,QAAU3C,EAAOE,OAAOc,eACxChB,EAAOE,OAAOU,OAAM+B,GAAS3C,EAAOe,cACxCf,EAAO+F,QAAQpD,MAInBqD,YAAOhG,EAAOG,WAAY,CACxBE,IAAKA,EACLD,GAAIC,EAAI,KAGLL,EAAOS,SACVJ,EAAIuC,SAAS1C,EAAOwE,cAGxBuB,QAAS,WACP,IAAIjG,EAASH,KACTK,EAASF,EAAOE,OAAOC,WAC3B,GAAKD,EAAOE,IAAOJ,EAAOG,WAAWC,IAAOJ,EAAOG,WAAWE,KAAwC,IAAjCL,EAAOG,WAAWE,IAAIf,OAA3F,CACA,IAAIe,EAAML,EAAOG,WAAWE,IAC5BA,EAAI+B,YAAYlC,EAAOgG,aACvB7F,EAAI+B,YAAYlC,EAAOwF,cAAgBxF,EAAOmB,MAC1CrB,EAAOG,WAAWmB,SAAStB,EAAOG,WAAWmB,QAAQc,YAAYlC,EAAOmC,mBAExEnC,EAAOsF,WACTnF,EAAI8F,IAAI,QAAS7C,YAAkBpD,EAAO8E,iBAIjC,KACboB,KAAM,aACNlG,OAAQ,CACNC,WAAY,CACVC,GAAI,KACJ6E,cAAe,OACfO,WAAW,EACXa,aAAa,EACbtB,aAAc,KACdI,kBAAmB,KACnBD,eAAgB,KAChBb,aAAc,KACdR,qBAAqB,EACrBxC,KAAM,UAENK,gBAAgB,EAChBK,mBAAoB,EACpB0B,sBAAuB,SAA+B6C,GACpD,OAAOA,GAET3C,oBAAqB,SAA6B2C,GAChD,OAAOA,GAETtB,YAAa,2BACb3C,kBAAmB,kCACnBqD,cAAe,qBAEfnC,aAAc,4BACdG,WAAY,0BACZwC,YAAa,2BACbjC,qBAAsB,qCACtB0B,yBAA0B,yCAC1BF,eAAgB,8BAEhBf,UAAW,2BAGf6B,OAAQ,WAENC,YADa3G,KACa,CACxBM,WAAYnB,EAAS,CACnBkD,mBAAoB,GACnBpC,MAGP8F,GAAI,CACFR,KAAM,SAAcpF,GAClBA,EAAOG,WAAWiF,OAClBpF,EAAOG,WAAWwE,SAClB3E,EAAOG,WAAWJ,UAEpB0G,kBAAmB,SAA2BzG,IACxCA,EAAOE,OAAOU,MAEqB,qBAArBZ,EAAOoB,YADvBpB,EAAOG,WAAWJ,UAKtB2G,gBAAiB,SAAyB1G,GACnCA,EAAOE,OAAOU,MACjBZ,EAAOG,WAAWJ,UAGtB4G,mBAAoB,SAA4B3G,GAC1CA,EAAOE,OAAOU,OAChBZ,EAAOG,WAAWwE,SAClB3E,EAAOG,WAAWJ,WAGtB6G,qBAAsB,SAA8B5G,GAC7CA,EAAOE,OAAOU,OACjBZ,EAAOG,WAAWwE,SAClB3E,EAAOG,WAAWJ,WAGtBkG,QAAS,SAAiBjG,GACxBA,EAAOG,WAAW8F,WAEpB,iBAAkB,SAAuBjG,GACvC,IAAIK,EAAML,EAAOG,WAAWE,IAExBA,GACFA,EAAIL,EAAOS,QAAU,cAAgB,YAAYT,EAAOE,OAAOC,WAAWuE,YAG9EmC,MAAO,SAAe7G,EAAQ6F,GAC5B,IAAIiB,EAAWjB,EAAE1G,OAEjB,GAAIa,EAAOE,OAAOC,WAAWC,IAAMJ,EAAOE,OAAOC,WAAWkG,aAAerG,EAAOG,WAAWE,IAAIf,OAAS,IAAMmD,YAAEqE,GAAUC,SAAS/G,EAAOE,OAAOC,WAAW6E,aAAc,CAC1K,GAAIhF,EAAOgH,aAAehH,EAAOgH,WAAWC,QAAUH,IAAa9G,EAAOgH,WAAWC,QAAUjH,EAAOgH,WAAWE,QAAUJ,IAAa9G,EAAOgH,WAAWE,QAAS,QAGlJ,IAFFlH,EAAOG,WAAWE,IAAI0G,SAAS/G,EAAOE,OAAOC,WAAW+F,aAGrElG,EAAOuE,KAAK,kBAEZvE,EAAOuE,KAAK,kBAGdvE,EAAOG,WAAWE,IAAI8G,YAAYnH,EAAOE,OAAOC,WAAW+F,kB,uEC3WvDkB,E,8GAoBIC,EACdC,EACAC,oBAAqBH,EAASI,K,iBAO1B,KALFC,iBACAC,eAMEC,EAAiBC,iBACD,qBAAXC,OAA0BC,SAAjC,cADF,MAGIC,EAAwBH,iBAA5B,MACII,EAAUC,cAEVC,EAAuBC,QAAQZ,EAAWH,EAA9C,cACIgB,EAAuBD,QAAQZ,EAAWH,EAA9C,cAGAiB,qBAAU,WACR,IAEAV,UAAyBG,SAAzBH,iBACC,CAJHU,IAOAA,qBAAU,WACR,KAEA,OAAO,WACLC,YAAaX,EAAbW,SACAX,kBAED,CAPHU,IAUAA,qBAAU,WACR,MACKf,EAAL,SAEA,IAAIiB,EAAgBT,SAApB,cAEA,SAAIL,OAAJ,EAAIA,EAAJ,SACE,IAAI,MAAAA,OAAA,EAAAA,EAAA,WAAJ,EAA6C,YAC3CM,kBAGG,GAAIT,mBAAJ,GAA+C,YACpDS,aAKF,SAAIN,OAAJ,EAAIA,EAAJ,QACEa,YAAab,EAAba,cAEA,GAAIE,YAAQlB,EAAD,QAAoBmB,IAA3BD,SAA4CE,IAAhD,MACE,MAAM,IAAIC,MAAV,4DAIJZ,UAAgCD,SAAhCC,iBACC,CAACT,EAAWG,EA1BfY,IA6BAO,YAAe,WAAW,SAAAC,GAClBtB,EAAWH,EAAjB,SAEKE,EAAL,SACIuB,QAAcC,IAAlB,MAEAD,mBAGEL,YACElB,EADK,SAEJuB,WAAiBJ,IAAjBI,SAAkCJ,IAAnC,MAAiDA,IAFnDD,cAGME,IAJR,UAMEX,UAAgCD,SAAhCC,mBAKJa,YAAe,SAEb,SAAAC,GACE,GAAMtB,EAAWH,EAAjB,WAEA,IAAI2B,EAAgB,IAAIC,IAAJ,MAAQtB,OAAR,EAAQA,EAA5B,SAGA,GAFAqB,SAEKA,EAAL,MAEA,IAAIE,EAAWlB,EAAf,QACA,MACKC,EAAL,SAEA,IAAIkB,EAAYL,EAAhB,OAEIK,GAAaA,aAAjB,aAiBN,SAAkBxB,EAAlB,GACE,0CAAkC,OAChC,YADgC,QAChC,gBAAIJ,WAAJ,GAA0C,OAAO,EAGnD,SArBW6B,CAASJ,EAAd,IACEF,mBACAA,oBACAP,iBAEAP,YACAO,gBAGFA,YAAaP,EAAbO,eA1BNM,IA1GF,SAAYxB,GAEVA,mBAGAA,mCAGAA,yBAGAA,6BAGAA,oCAGAA,kBAjBF,CAAYA,MAAZ,K,YCTIgC,EAAgB,IAApB,IACIC,EAAY,IAAhB,IAEA,SAASC,EAAMC,GACbA,qCAEAA,WAGF,SAASC,EAAQD,GACf,IAAIE,EAAWJ,MAAf,GACA,IAEA,OAAII,iBAAkCF,kBAAtC,eACKA,6BAAoCE,EAApCF,gBAELA,QAAgBE,EAAhBF,OCXF,IAAIG,EAAyBC,yBAA7B,G,SAWgBC,EAAgBC,GAC9B,OACE,kBAACH,EAAD,UAAiCI,MAAOD,EAAME,OAC3CF,EAFL,U,YCDF,SAASG,IACP,IAAIC,EDTGC,qBAAP,GCUIC,EAAcD,qBAAlB,G,EAC0BE,oBAAS,WAEjC,IAAKH,GAAL,OAAoBE,EAAsB,OAAO,KAGjD,wBAAWtC,OAAwB,OAAO,KAC1C,IAAIwC,EAAevC,wBAAnB,0BACA,KAAkB,OAAOuC,EAEzB,IAAIC,EAAOxC,uBAAX,OAEA,OADAwC,8CACOxC,0BAAP,MAXG3I,OAAQoL,OAoBb,OANAlC,qBAAU,WACR,GACA,OAAI8B,GACJI,EAAUJ,EAAVI,WACC,CAACJ,EAAaI,EAJjBlC,IAMA,EAKF,IAAImC,EAAJ,W,SAGgBC,EACdZ,GAEA,IAAIa,EAAJ,EACIvL,EAAS6K,IACRT,EAAWa,oBAAgC,iBAC5B,qBAAXvC,OAAyB,KAAOC,uBADO,UAA3CyB,GAIDoB,EAAQC,cAoBZ,OAlBAC,aAAoB,WAClB,MACA,EAIA,OAFA1L,iBAEO,WAM8B,MALnC,IACA,IAEAA,iBAEIA,qBAAJ,IACE,SAAAA,EAAA,8BAAAA,SAGH,CAACA,EAhBJ0L,IAkBA,GAEQ1L,GAAD,EAEH2L,uBACEnG,YAAO,CAAEkF,MAAF,EAA2BkB,WAA3B,EAA2D3E,KAAM,WAH9E,GAFmB,KAYrB,IAAI4E,EAAJ,WAGIC,EAAqBtB,wBAAzB,MAsBAc,QApBA,Y,IAKQtL,EAAgC0K,EAAhC1K,OAAWuL,cAAqBb,cAEtC,OACE,kBAACoB,EAAD,UAA6BnB,MAAO3K,GACjCwF,YAAO,CACNkF,MADM,EAENkB,WAFM,EAGN3E,KAAM,oBCnFd,IAAI8E,EAAqBvB,wBAAzB,MAIA,SAASwB,IACP,IAAIC,EAAUlB,qBAAd,GACA,UAAIkB,EAAkB,CACpB,IAAIC,EAAM,IAAI1C,MAAd,iFAIA,MADIA,MAAJ,mBAA6BA,6BAC7B,EAEF,S,IClBU2C,E,ECiBZ,EASA,E,OD7BIC,EAAe5B,yBAAwB,e,SAY3B6B,K,IACdC,aACAC,aACArK,SACAkI,YAOIoC,EAdGzB,qBAAP,GAgBI0B,EAASC,uBACX,W,2BAAIC,6CAEFJ,2BAGAC,oBAEF,CAACA,EARH,IAgBA,OALAd,aAAoB,WAElB,OADAe,EAAON,EAAD,MAANM,GACO,kBAAMA,EAAON,EAAD,SAAZ,MACN,CAACM,EAAQvK,EAHZwJ,IAKO,kBAACU,EAAD,UAAuBzB,MAAO8B,GAArC,GAxCFL,6BAEA,SAAYD,GACVA,iBACAA,uBAFF,CAAYA,MAAZ,KCiBA,SAAKS,GACHA,mBACAA,uBAFF,CAAKA,MAAL,KASA,SAAKC,GACHA,+BADF,CAAKA,MAAL,KAMA,IAAIC,IAAQ,MAMTD,EANS,0BAOR,OAAIE,YAAkBC,EAAtB,GAAwCD,EACxC,kBAAmBE,QAASD,EAAOE,MARvC,GAYIC,EAAgB3C,wBAApB,MAaA,SAAS4C,EAAiBC,GACxB,IAAIpB,EAAUlB,qBAAd,GACA,UAAIkB,EAAkB,CACpB,IAAIC,EAAM,IAAI1C,MAAM,IAAV,8BAAmD8D,EAAnD,YAAV,kBAEA,MADI9D,MAAJ,mBAA6BA,6BAC7B,EAEF,SAGF,SAAS+D,EAAaR,EAAtB,GACE,OAAOS,YAAMR,EAAD,SAAZ,GAbFG,8BAkBA,IAYIM,EAAuBxF,mBAA0BA,IAArD,OAEIyF,EAAaC,aAAiB,c,IAewB,EAJlDC,EAAyClD,EAAzCkD,KAAMC,EAAmCnD,EAAnCmD,QAASvF,EAA0BoC,EAA1BpC,aAAiBwF,cAASpD,qC,EACCO,mBAAS,GAApD8C,OAAmBC,OAEpBC,EAAsBC,mBACtBN,OAAJ,OAA0BK,IAExBL,EAAOJ,YAAMS,IAAD,MACTE,IADS,WAETA,IAFS,WAAZP,KAMF,IAAIrF,EAAaE,iBAAkD,IAAnE,KACI2F,EAAoB3F,iBAAxB,MACI4F,EAAYC,YAAYF,EAA5B,GAGIG,EAAU7D,0BAAd,OAA8CuD,EAC1CO,EAAa9D,iBAAjB,WACA,IAAK6D,IAAL,EACE,MAAM,IAAI/E,MAAV,kFAKF,MACE,MAAM,IAAIA,MAAV,8EAKF,MACE,MAAM,IAAIA,MAAV,8EAKF,sBAAWoE,EACT,MAAM,IAAIpE,MAAM,0FAAhB,GAKF,uBAAWqE,EACT,MAAM,IAAIrE,MAAM,8FAAhB,GAIF,IAAIiF,EAAcb,EAAOhB,EAAH,KAAuBA,EAA7C,OACI8B,EACF,OAAIT,EACKA,IAAwBE,IAA/B,KAGKM,IAAgB7B,EAAvB,K,EAGsB+B,qBAAWpB,EAAc,CAC/CN,QAD+C,KAE/C2B,cAAe,OAFZ7B,OAAO8B,OAKRC,EAAQpC,uBAAY,kBAAMmB,GAAN,KAAsB,CAA9C,IAEIkB,EAAarC,uBACf,mBAAuBmC,EAAS,CAAE3M,KAAM2K,EAAR,WAAgCK,SAChE,CAFF,IAMI5L,EADQmK,eACWgD,IAAgB7B,EAAvC,KACIoC,EAAmBjB,EAAvB,EACIkB,EAAJ,OAAsBlE,wBAIlBmE,GAAYF,EAAhB,SAAmC,OAEnC9G,EAAa,EAEX5G,EACIkM,YAAM0B,GAAU,CACdC,OAAQC,EADM,aAEdC,KAAMD,EAAkB/G,MAE1B+G,EAPM,KAQV,CAAE9G,aAAF,EAAgBC,e,SLrLlBJ,EACA7G,mBAAmB,GAEnBoK,aAAoB,WAClB,MACKvD,EAAL,SAEA,IAAIiC,EAAUjC,EAAd,QAGA8B,SAGA,wBAAqBC,EAArB,uBAAuC,KAA9BI,EAA8B,QACjCA,WAAJ,KACED,KACAH,EAAS,OAATA,IA0BJ,OArBAvB,+CAA8C,SAAA2G,GAC5C,GAAMA,aAAN,aAGA,0CAAwC,KAA/BC,EAA+B,QACtC,GAAID,WAAJ,GAAkC,OAIpC,IAAIrF,SACFC,QAAqB,CACnB,cAAeoF,eADI,eAGnBnF,MAAOmF,EAAMnF,QAIfA,UAIG,WAML,GAJAF,EAAa,OAAbA,GAIIA,OAAJ,EAEEtB,+CAA8C,SAAA2G,GAC5C,GAAMA,aAAN,cAGIpF,MAAJ,IAGA,0CAAwC,KAA/BqF,EAA+B,QACtC,GAAID,WAAJ,GAAkC,OAGpCpF,QAAqB,CACnB,cAAeoF,eADI,eAGnBnF,MAAOmF,EAAMnF,QAIfA,cAGF,wBAAoBD,EAApB,uBAAsC,KAA7BE,EAA6B,QAEpCC,EAFoC,GAKpCH,EAAS,OAATA,QAIL,CA7EHwB,IKoLA8D,CAAepB,IAAmBY,GAAmB1N,GAGrDmI,YAAe,aAAa,SAAAC,G,MACtB1J,EAAS0J,EAAb,OAEI+E,IAAgB7B,EAApB,OACA,IACA,SAAIwB,EAAJ,gBAAIA,WAAJ,KAEAU,QAIF5F,qBAAU,WACR,GAAIuF,IAAgB7B,EAApB,OACA,GAEA,IAAI6C,EAAW9G,+BAAf,SACI+G,EAAe/G,+BAAnB,aAEIgH,EAAiBjH,kBAAoBC,yBAAzC,YAKA,OAHAA,iDACAA,4CAAiDgH,EAAjDhH,KAEO,WACLA,0CACAA,kDAED,CAAC8F,EAhBJvF,IAmBAA,qBAAU,WACR,GAAIuF,IAAgB7B,EAApB,MACKwB,EAAL,SAEA,IAAIwB,EAAW,IAAIC,sBAAqB,SAAAC,GACtC,0CAA2B,KAAlBC,EAAkB,QAEvBA,gCACAA,wBADAA,IAEAA,4BAHF,IAIEA,6BAEAjB,QAON,OAFAc,UAAiBxB,EAAjBwB,SAEO,kBAAMA,EAAN,iBACN,CAACnB,EAAaL,EApBjBlF,I,wBF9L0C+B,mBAAQ,IAA7C+E,OAAgBC,OAErB,MAAO,CAELD,WAA4BA,OAA5BA,UAFK,EAKLE,mBAAQ,WACN,OAAO,SAA6BxF,GAClC,IAAIyF,EAAWzD,uBAAY,YAGzB,OAFAuD,GAAkB,SAAAG,GAAQ,0BAEnB,kBACLH,GAAkB,SAAAG,GAChB,IAAIC,EAAQD,EAAZ,QACIE,EAAMD,UAAV,GAEA,OADA,IAAIC,GAAYD,cAChB,QARN,IAYIE,EAAaL,mBACf,iBAAO,CAAEC,SAAF,EAAYK,KAAM9F,EAAlB,KAA8BzD,KAAMyD,EAApC,KAAgDA,MAAOA,EAAMA,SACpE,CAACyF,EAAUzF,EAAX,KAAuBA,EAAvB,KAAmCA,EAFrC,QAKA,OACE,kBAACqB,EAAD,UAA6BpB,MAAO4F,GACjC7F,EAFL,aAMD,CA9BL,KEkNyC+F,GAApCC,SAAaC,SAEdzD,GAAK,qBAAqB0D,cAE1BL,GAAaL,mBACf,iBAAM,CAAC,CAAEzB,YAAF,EAAeK,MAAf,EAAsBC,cAA7B,KACA,CAACN,EAAa1B,EAAO+B,EAFvB,IAKI0B,GAAON,mBAA6B,iBAAO,CAAEtC,KAAMa,IAAgB7B,EAAaiE,QAAS,CAA7F,IAIIC,GAAiB,CACnBC,IADmB,EAEnB7D,GAFmB,GAGnB8D,KAHmB,SAInB,aAAcvC,IAAgB7B,EAAhB6B,WAJK,EAKnB,kBAAmB1B,EALA,QAMnB,mBANmB,GAOnBkE,QAPmB,YAQjBvH,qBAIFwH,UAZmB,YAabxH,QAAcC,IAAlB,QACI8E,IAAgB7B,EAApB,OACA,IACAlD,mBACAA,oBACAoF,QAGAvD,GAAJ,EAEA,OACE,qBACErJ,KAAK,SACLkI,QAASgE,EACT7B,SAAUG,uBAAY,gB,MACpB,WAAIxK,GAEJsL,YAAM2D,IAAD,MACFhF,EADE,gBAED5D,iBACAyF,GAAqB,SAAAoD,GAAK,OAAIA,EAAJ,MAHzB,EAKFjF,EALE,mBAMD5D,iBACAyF,GAAqB,SAAAoD,GAAK,OAAIA,EAAJ,MAP9B5D,MAHmB,KAerB,qBAAiB5C,OAAO,GACtByG,yBACE,kBAAClE,EAAD,UAAwBxC,MAAO4F,IAC7B,kBAACjF,EAAD,OAActL,OAAQoO,GACpB,qBAAiBxD,OAAO,GACtB,sBAAqB4F,KAAMA,GAAMvJ,KAAK,sBACnCzB,YAAO,CACNkF,MAAO,OAAF,IAAE,CAAF,MADC,IAEN8F,KAFM,GAGN5E,WAxOpB,MAyOoBxD,SAJM,EAKNsG,QALM,EAMNzH,KAAM,qBAoBtBqK,EAAU3D,aAAiB,SAAS2D,EAAT,K,MAGElE,EAAiB,CAACE,EAAD,YAAqBgE,EAArB,WAAD,M,GAAxC7C,gBAAaK,UAChByC,EAAajD,YAAjB,GAEIpB,EAAK,6BAA6B0D,cAElCY,EAAc9E,uBAChB,YACE,GAAI+E,YAAyB/H,EAA7B,eAAmD,OAAOA,EAAP,iBACnDA,mBACAA,oBACAoF,MAEF,CAPF,IAUI0B,EAAON,mBAA8B,iBAAO,CAAEtC,KAAMa,IAAgB7B,EAAaiE,QAAS,CAA9F,IAGIC,EAAiB,CACnBC,IADmB,EAEnB7D,GAFmB,EAGnB,eAHmB,EAInB+D,QAASO,GAEPjG,EAAJ,EAEA,OAAO/F,YAAO,CACZkF,MAAO,OAAF,IAAE,CAAF,KADO,GAEZ8F,KAFY,EAGZ5E,WAtCJ,MAuCI3E,KAAM,sB,IAwCCqG,EAASxN,OAAA,SAA0B,CAAEwR,QAAF,EAAWI,MA5BzD,SAASA,EAAT,G,MAGsCtE,EAAiB,CAACE,EAAD,YAAqBoE,EAArB,WAAD,M,GAA7CjD,gBAAaM,eAEhB7B,EAAK,2BAA2B0D,cAEpC1H,qBAAU,WAER,OADA6F,KACO,kBAAMA,EAAN,SACN,CAAC7B,EAHJhE,IAKA,IAAIsH,EAAON,mBAA4B,iBAAO,CAAEtC,KAAMa,IAAgB7B,EAAaiE,QAAS,CAA5F,IAGIC,EAAiB,CAAE5D,MACnB3B,EAAJ,EAEA,OAAO/F,YAAO,CACZkF,MAAO,OAAF,IAAE,CAAF,KADO,GAEZ8F,KAFY,EAGZ5E,WA3BJ,KA4BI3E,KAAM,kBAMsD0K,Y,SFzU9DjH,GAEA,IAAIuB,EAAUD,IACVkB,EAAK,0BAA0B0D,cAEnClF,aAAoB,kBAAMO,WAAN,KAA4B,CAACiB,EAAIjB,EAArDP,WAEA,IAAIkG,EAAJ,EACId,EAAiB,OAAH,IAAG,CAAH,GAAQ7E,EAAR,OAAuBiB,OAEzC,OAAO1H,YAAO,CACZkF,MAAO,OAAF,IAAE,CAAF,KADO,GAEZ8F,KAAMvE,QAFM,GAGZL,WAlBJ,IAmBI3E,KAAMgF,QAAgB","file":"static/js/57.3f1b4f27.chunk.js","sourcesContent":["function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, classesToSelector, createElementIfNotDefined } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\"></\" + params.bulletElement + \">\";\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"<span class=\\\"\" + params.currentClass + \"\\\"></span>\" + ' / ' + (\"<span class=\\\"\" + params.totalClass + \"\\\"></span>\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"<span class=\\\"\" + params.progressbarFillClass + \"\\\"></span>\";\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n swiper.params.pagination = createElementIfNotDefined(swiper.$el, swiper.params.pagination, swiper.params.createElements, {\n el: 'swiper-pagination'\n });\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.pagination.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n },\n click: function click(swiper, e) {\n var targetEl = e.target;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","import {\n useRef,\n // Types\n MutableRefObject,\n useEffect,\n} from 'react'\n\nimport { Keys } from '../components/keyboard'\nimport { focusElement, focusIn, Focus, FocusResult } from '../utils/focus-management'\nimport { useWindowEvent } from './use-window-event'\nimport { useIsMounted } from './use-is-mounted'\n\nexport enum Features {\n /** No features enabled for the `useFocusTrap` hook. */\n None = 1 << 0,\n\n /** Ensure that we move focus initially into the container. */\n InitialFocus = 1 << 1,\n\n /** Ensure that pressing `Tab` and `Shift+Tab` is trapped within the container. */\n TabLock = 1 << 2,\n\n /** Ensure that programmatically moving focus outside of the container is disallowed. */\n FocusLock = 1 << 3,\n\n /** Ensure that we restore the focus when unmounting the component that uses this `useFocusTrap` hook. */\n RestoreFocus = 1 << 4,\n\n /** Enable all features. */\n All = InitialFocus | TabLock | FocusLock | RestoreFocus,\n}\n\nexport function useFocusTrap(\n container: MutableRefObject<HTMLElement | null>,\n features: Features = Features.All,\n {\n initialFocus,\n containers,\n }: {\n initialFocus?: MutableRefObject<HTMLElement | null>\n containers?: MutableRefObject<Set<MutableRefObject<HTMLElement | null>>>\n } = {}\n) {\n let restoreElement = useRef<HTMLElement | null>(\n typeof window !== 'undefined' ? (document.activeElement as HTMLElement) : null\n )\n let previousActiveElement = useRef<HTMLElement | null>(null)\n let mounted = useIsMounted()\n\n let featuresRestoreFocus = Boolean(features & Features.RestoreFocus)\n let featuresInitialFocus = Boolean(features & Features.InitialFocus)\n\n // Capture the currently focused element, before we enable the focus trap.\n useEffect(() => {\n if (!featuresRestoreFocus) return\n\n restoreElement.current = document.activeElement as HTMLElement\n }, [featuresRestoreFocus])\n\n // Restore the focus when we unmount the component.\n useEffect(() => {\n if (!featuresRestoreFocus) return\n\n return () => {\n focusElement(restoreElement.current)\n restoreElement.current = null\n }\n }, [featuresRestoreFocus])\n\n // Handle initial focus\n useEffect(() => {\n if (!featuresInitialFocus) return\n if (!container.current) return\n\n let activeElement = document.activeElement as HTMLElement\n\n if (initialFocus?.current) {\n if (initialFocus?.current === activeElement) {\n previousActiveElement.current = activeElement\n return // Initial focus ref is already the active element\n }\n } else if (container.current.contains(activeElement)) {\n previousActiveElement.current = activeElement\n return // Already focused within Dialog\n }\n\n // Try to focus the initialFocus ref\n if (initialFocus?.current) {\n focusElement(initialFocus.current)\n } else {\n if (focusIn(container.current, Focus.First) === FocusResult.Error) {\n throw new Error('There are no focusable elements inside the <FocusTrap />')\n }\n }\n\n previousActiveElement.current = document.activeElement as HTMLElement\n }, [container, initialFocus, featuresInitialFocus])\n\n // Handle `Tab` & `Shift+Tab` keyboard events\n useWindowEvent('keydown', event => {\n if (!(features & Features.TabLock)) return\n\n if (!container.current) return\n if (event.key !== Keys.Tab) return\n\n event.preventDefault()\n\n if (\n focusIn(\n container.current,\n (event.shiftKey ? Focus.Previous : Focus.Next) | Focus.WrapAround\n ) === FocusResult.Success\n ) {\n previousActiveElement.current = document.activeElement as HTMLElement\n }\n })\n\n // Prevent programmatically escaping the container\n useWindowEvent(\n 'focus',\n event => {\n if (!(features & Features.FocusLock)) return\n\n let allContainers = new Set(containers?.current)\n allContainers.add(container)\n\n if (!allContainers.size) return\n\n let previous = previousActiveElement.current\n if (!previous) return\n if (!mounted.current) return\n\n let toElement = event.target as HTMLElement | null\n\n if (toElement && toElement instanceof HTMLElement) {\n if (!contains(allContainers, toElement)) {\n event.preventDefault()\n event.stopPropagation()\n focusElement(previous)\n } else {\n previousActiveElement.current = toElement\n focusElement(toElement)\n }\n } else {\n focusElement(previousActiveElement.current)\n }\n },\n true\n )\n}\n\nfunction contains(containers: Set<MutableRefObject<HTMLElement | null>>, element: HTMLElement) {\n for (let container of containers) {\n if (container.current?.contains(element)) return true\n }\n\n return false\n}\n","import { MutableRefObject } from 'react'\nimport { useIsoMorphicEffect } from './use-iso-morphic-effect'\n\nlet interactables = new Set<HTMLElement>()\nlet originals = new Map<HTMLElement, { 'aria-hidden': string | null; inert: boolean }>()\n\nfunction inert(element: HTMLElement) {\n element.setAttribute('aria-hidden', 'true')\n // @ts-expect-error `inert` does not exist on HTMLElement (yet!)\n element.inert = true\n}\n\nfunction restore(element: HTMLElement) {\n let original = originals.get(element)\n if (!original) return\n\n if (original['aria-hidden'] === null) element.removeAttribute('aria-hidden')\n else element.setAttribute('aria-hidden', original['aria-hidden'])\n // @ts-expect-error `inert` does not exist on HTMLElement (yet!)\n element.inert = original.inert\n}\n\nexport function useInertOthers<TElement extends HTMLElement>(\n container: MutableRefObject<TElement | null>,\n enabled: boolean = true\n) {\n useIsoMorphicEffect(() => {\n if (!enabled) return\n if (!container.current) return\n\n let element = container.current\n\n // Mark myself as an interactable element\n interactables.add(element)\n\n // Restore elements that now contain an interactable child\n for (let original of originals.keys()) {\n if (original.contains(element)) {\n restore(original)\n originals.delete(original)\n }\n }\n\n // Collect direct children of the body\n document.querySelectorAll('body > *').forEach(child => {\n if (!(child instanceof HTMLElement)) return // Skip non-HTMLElements\n\n // Skip the interactables, and the parents of the interactables\n for (let interactable of interactables) {\n if (child.contains(interactable)) return\n }\n\n // Keep track of the elements\n if (interactables.size === 1) {\n originals.set(child, {\n 'aria-hidden': child.getAttribute('aria-hidden'),\n // @ts-expect-error `inert` does not exist on HTMLElement (yet!)\n inert: child.inert,\n })\n\n // Mutate the element\n inert(child)\n }\n })\n\n return () => {\n // Inert is disabled on the current element\n interactables.delete(element)\n\n // We still have interactable elements, therefore this one and its parent\n // will become inert as well.\n if (interactables.size > 0) {\n // Collect direct children of the body\n document.querySelectorAll('body > *').forEach(child => {\n if (!(child instanceof HTMLElement)) return // Skip non-HTMLElements\n\n // Skip already inert parents\n if (originals.has(child)) return\n\n // Skip the interactables, and the parents of the interactables\n for (let interactable of interactables) {\n if (child.contains(interactable)) return\n }\n\n originals.set(child, {\n 'aria-hidden': child.getAttribute('aria-hidden'),\n // @ts-expect-error `inert` does not exist on HTMLElement (yet!)\n inert: child.inert,\n })\n\n // Mutate the element\n inert(child)\n })\n } else {\n for (let element of originals.keys()) {\n // Restore\n restore(element)\n\n // Cleanup\n originals.delete(element)\n }\n }\n }\n }, [enabled])\n}\n","import React, {\n createContext,\n useContext,\n\n // Types\n ReactNode,\n} from 'react'\n\nlet ForcePortalRootContext = createContext(false)\n\nexport function usePortalRoot() {\n return useContext(ForcePortalRootContext)\n}\n\ninterface ForcePortalRootProps {\n force: boolean\n children: ReactNode\n}\n\nexport function ForcePortalRoot(props: ForcePortalRootProps) {\n return (\n <ForcePortalRootContext.Provider value={props.force}>\n {props.children}\n </ForcePortalRootContext.Provider>\n )\n}\n","import React, {\n Fragment,\n createContext,\n useContext,\n useEffect,\n useState,\n\n // Types\n ElementType,\n MutableRefObject,\n} from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { Props } from '../../types'\nimport { render } from '../../utils/render'\nimport { useIsoMorphicEffect } from '../../hooks/use-iso-morphic-effect'\nimport { usePortalRoot } from '../../internal/portal-force-root'\nimport { useServerHandoffComplete } from '../../hooks/use-server-handoff-complete'\n\nfunction usePortalTarget(): HTMLElement | null {\n let forceInRoot = usePortalRoot()\n let groupTarget = useContext(PortalGroupContext)\n let [target, setTarget] = useState(() => {\n // Group context is used, but still null\n if (!forceInRoot && groupTarget !== null) return null\n\n // No group context is used, let's create a default portal root\n if (typeof window === 'undefined') return null\n let existingRoot = document.getElementById('headlessui-portal-root')\n if (existingRoot) return existingRoot\n\n let root = document.createElement('div')\n root.setAttribute('id', 'headlessui-portal-root')\n return document.body.appendChild(root)\n })\n\n useEffect(() => {\n if (forceInRoot) return\n if (groupTarget === null) return\n setTarget(groupTarget.current)\n }, [groupTarget, setTarget, forceInRoot])\n\n return target\n}\n\n// ---\n\nlet DEFAULT_PORTAL_TAG = Fragment\ninterface PortalRenderPropArg {}\n\nexport function Portal<TTag extends ElementType = typeof DEFAULT_PORTAL_TAG>(\n props: Props<TTag, PortalRenderPropArg>\n) {\n let passthroughProps = props\n let target = usePortalTarget()\n let [element] = useState<HTMLDivElement | null>(() =>\n typeof window === 'undefined' ? null : document.createElement('div')\n )\n\n let ready = useServerHandoffComplete()\n\n useIsoMorphicEffect(() => {\n if (!target) return\n if (!element) return\n\n target.appendChild(element)\n\n return () => {\n if (!target) return\n if (!element) return\n\n target.removeChild(element)\n\n if (target.childNodes.length <= 0) {\n target.parentElement?.removeChild(target)\n }\n }\n }, [target, element])\n\n if (!ready) return null\n\n return !target || !element\n ? null\n : createPortal(\n render({ props: passthroughProps, defaultTag: DEFAULT_PORTAL_TAG, name: 'Portal' }),\n element\n )\n}\n\n// ---\n\nlet DEFAULT_GROUP_TAG = Fragment\ninterface GroupRenderPropArg {}\n\nlet PortalGroupContext = createContext<MutableRefObject<HTMLElement | null> | null>(null)\n\nfunction Group<TTag extends ElementType = typeof DEFAULT_GROUP_TAG>(\n props: Props<TTag, GroupRenderPropArg> & {\n target: MutableRefObject<HTMLElement | null>\n }\n) {\n let { target, ...passthroughProps } = props\n\n return (\n <PortalGroupContext.Provider value={target}>\n {render({\n props: passthroughProps,\n defaultTag: DEFAULT_GROUP_TAG,\n name: 'Popover.Group',\n })}\n </PortalGroupContext.Provider>\n )\n}\n\n// ---\n\nPortal.Group = Group\n","import React, {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n\n // Types\n ElementType,\n ReactNode,\n} from 'react'\n\nimport { Props } from '../../types'\nimport { useId } from '../../hooks/use-id'\nimport { render } from '../../utils/render'\nimport { useIsoMorphicEffect } from '../../hooks/use-iso-morphic-effect'\n\n// ---\n\ninterface SharedData {\n slot?: {}\n name?: string\n props?: {}\n}\n\nlet DescriptionContext = createContext<\n ({ register(value: string): () => void } & SharedData) | null\n>(null)\n\nfunction useDescriptionContext() {\n let context = useContext(DescriptionContext)\n if (context === null) {\n let err = new Error(\n 'You used a <Description /> component, but it is not inside a relevant parent.'\n )\n if (Error.captureStackTrace) Error.captureStackTrace(err, useDescriptionContext)\n throw err\n }\n return context\n}\n\ninterface DescriptionProviderProps extends SharedData {\n children: ReactNode\n}\n\nexport function useDescriptions(): [\n string | undefined,\n (props: DescriptionProviderProps) => JSX.Element\n] {\n let [descriptionIds, setDescriptionIds] = useState<string[]>([])\n\n return [\n // The actual id's as string or undefined\n descriptionIds.length > 0 ? descriptionIds.join(' ') : undefined,\n\n // The provider component\n useMemo(() => {\n return function DescriptionProvider(props: DescriptionProviderProps) {\n let register = useCallback((value: string) => {\n setDescriptionIds(existing => [...existing, value])\n\n return () =>\n setDescriptionIds(existing => {\n let clone = existing.slice()\n let idx = clone.indexOf(value)\n if (idx !== -1) clone.splice(idx, 1)\n return clone\n })\n }, [])\n\n let contextBag = useMemo(\n () => ({ register, slot: props.slot, name: props.name, props: props.props }),\n [register, props.slot, props.name, props.props]\n )\n\n return (\n <DescriptionContext.Provider value={contextBag}>\n {props.children}\n </DescriptionContext.Provider>\n )\n }\n }, [setDescriptionIds]),\n ]\n}\n\n// ---\n\nlet DEFAULT_DESCRIPTION_TAG = 'p' as const\ninterface DescriptionRenderPropArg {}\ntype DescriptionPropsWeControl = 'id'\n\nexport function Description<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG>(\n props: Props<TTag, DescriptionRenderPropArg, DescriptionPropsWeControl>\n) {\n let context = useDescriptionContext()\n let id = `headlessui-description-${useId()}`\n\n useIsoMorphicEffect(() => context.register(id), [id, context.register])\n\n let passThroughProps = props\n let propsWeControl = { ...context.props, id }\n\n return render({\n props: { ...passThroughProps, ...propsWeControl },\n slot: context.slot || {},\n defaultTag: DEFAULT_DESCRIPTION_TAG,\n name: context.name || 'Description',\n })\n}\n","import React, {\n createContext,\n useCallback,\n useContext,\n\n // Types\n MutableRefObject,\n ReactNode,\n} from 'react'\nimport { useIsoMorphicEffect } from '../hooks/use-iso-morphic-effect'\n\ntype OnUpdate = (\n message: StackMessage,\n type: string,\n element: MutableRefObject<HTMLElement | null>\n) => void\n\nlet StackContext = createContext<OnUpdate>(() => {})\nStackContext.displayName = 'StackContext'\n\nexport enum StackMessage {\n Add,\n Remove,\n}\n\nexport function useStackContext() {\n return useContext(StackContext)\n}\n\nexport function StackProvider({\n children,\n onUpdate,\n type,\n element,\n}: {\n children: ReactNode\n onUpdate?: OnUpdate\n type: string\n element: MutableRefObject<HTMLElement | null>\n}) {\n let parentUpdate = useStackContext()\n\n let notify = useCallback(\n (...args: Parameters<OnUpdate>) => {\n // Notify our layer\n onUpdate?.(...args)\n\n // Notify the parent\n parentUpdate(...args)\n },\n [parentUpdate, onUpdate]\n )\n\n useIsoMorphicEffect(() => {\n notify(StackMessage.Add, type, element)\n return () => notify(StackMessage.Remove, type, element)\n }, [notify, type, element])\n\n return <StackContext.Provider value={notify}>{children}</StackContext.Provider>\n}\n","// WAI-ARIA: https://www.w3.org/TR/wai-aria-practices-1.2/#dialog_modal\nimport React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n\n // Types\n ContextType,\n ElementType,\n MouseEvent as ReactMouseEvent,\n KeyboardEvent as ReactKeyboardEvent,\n MutableRefObject,\n Ref,\n useState,\n} from 'react'\n\nimport { Props } from '../../types'\nimport { match } from '../../utils/match'\nimport { forwardRefWithAs, render, Features, PropsForFeatures } from '../../utils/render'\nimport { useSyncRefs } from '../../hooks/use-sync-refs'\nimport { Keys } from '../keyboard'\nimport { isDisabledReactIssue7711 } from '../../utils/bugs'\nimport { useId } from '../../hooks/use-id'\nimport { useFocusTrap, Features as FocusTrapFeatures } from '../../hooks/use-focus-trap'\nimport { useInertOthers } from '../../hooks/use-inert-others'\nimport { Portal } from '../../components/portal/portal'\nimport { ForcePortalRoot } from '../../internal/portal-force-root'\nimport { Description, useDescriptions } from '../description/description'\nimport { useWindowEvent } from '../../hooks/use-window-event'\nimport { useOpenClosed, State } from '../../internal/open-closed'\nimport { useServerHandoffComplete } from '../../hooks/use-server-handoff-complete'\nimport { StackProvider, StackMessage } from '../../internal/stack-context'\n\nenum DialogStates {\n Open,\n Closed,\n}\n\ninterface StateDefinition {\n titleId: string | null\n}\n\nenum ActionTypes {\n SetTitleId,\n}\n\ntype Actions = { type: ActionTypes.SetTitleId; id: string | null }\n\nlet reducers: {\n [P in ActionTypes]: (\n state: StateDefinition,\n action: Extract<Actions, { type: P }>\n ) => StateDefinition\n} = {\n [ActionTypes.SetTitleId](state, action) {\n if (state.titleId === action.id) return state\n return { ...state, titleId: action.id }\n },\n}\n\nlet DialogContext = createContext<\n | [\n {\n dialogState: DialogStates\n close(): void\n setTitleId(id: string | null): void\n },\n StateDefinition\n ]\n | null\n>(null)\nDialogContext.displayName = 'DialogContext'\n\nfunction useDialogContext(component: string) {\n let context = useContext(DialogContext)\n if (context === null) {\n let err = new Error(`<${component} /> is missing a parent <${Dialog.displayName} /> component.`)\n if (Error.captureStackTrace) Error.captureStackTrace(err, useDialogContext)\n throw err\n }\n return context\n}\n\nfunction stateReducer(state: StateDefinition, action: Actions) {\n return match(action.type, reducers, state, action)\n}\n\n// ---\n\nlet DEFAULT_DIALOG_TAG = 'div' as const\ninterface DialogRenderPropArg {\n open: boolean\n}\ntype DialogPropsWeControl =\n | 'id'\n | 'role'\n | 'aria-modal'\n | 'aria-describedby'\n | 'aria-labelledby'\n | 'onClick'\n\nlet DialogRenderFeatures = Features.RenderStrategy | Features.Static\n\nlet DialogRoot = forwardRefWithAs(function Dialog<\n TTag extends ElementType = typeof DEFAULT_DIALOG_TAG\n>(\n props: Props<TTag, DialogRenderPropArg, DialogPropsWeControl> &\n PropsForFeatures<typeof DialogRenderFeatures> & {\n open?: boolean\n onClose(value: boolean): void\n initialFocus?: MutableRefObject<HTMLElement | null>\n },\n ref: Ref<HTMLDivElement>\n) {\n let { open, onClose, initialFocus, ...rest } = props\n let [nestedDialogCount, setNestedDialogCount] = useState(0)\n\n let usesOpenClosedState = useOpenClosed()\n if (open === undefined && usesOpenClosedState !== null) {\n // Update the `open` prop based on the open closed state\n open = match(usesOpenClosedState, {\n [State.Open]: true,\n [State.Closed]: false,\n })\n }\n\n let containers = useRef<Set<MutableRefObject<HTMLElement | null>>>(new Set())\n let internalDialogRef = useRef<HTMLDivElement | null>(null)\n let dialogRef = useSyncRefs(internalDialogRef, ref)\n\n // Validations\n let hasOpen = props.hasOwnProperty('open') || usesOpenClosedState !== null\n let hasOnClose = props.hasOwnProperty('onClose')\n if (!hasOpen && !hasOnClose) {\n throw new Error(\n `You have to provide an \\`open\\` and an \\`onClose\\` prop to the \\`Dialog\\` component.`\n )\n }\n\n if (!hasOpen) {\n throw new Error(\n `You provided an \\`onClose\\` prop to the \\`Dialog\\`, but forgot an \\`open\\` prop.`\n )\n }\n\n if (!hasOnClose) {\n throw new Error(\n `You provided an \\`open\\` prop to the \\`Dialog\\`, but forgot an \\`onClose\\` prop.`\n )\n }\n\n if (typeof open !== 'boolean') {\n throw new Error(\n `You provided an \\`open\\` prop to the \\`Dialog\\`, but the value is not a boolean. Received: ${open}`\n )\n }\n\n if (typeof onClose !== 'function') {\n throw new Error(\n `You provided an \\`onClose\\` prop to the \\`Dialog\\`, but the value is not a function. Received: ${onClose}`\n )\n }\n let dialogState = open ? DialogStates.Open : DialogStates.Closed\n let visible = (() => {\n if (usesOpenClosedState !== null) {\n return usesOpenClosedState === State.Open\n }\n\n return dialogState === DialogStates.Open\n })()\n\n let [state, dispatch] = useReducer(stateReducer, {\n titleId: null,\n descriptionId: null,\n } as StateDefinition)\n\n let close = useCallback(() => onClose(false), [onClose])\n\n let setTitleId = useCallback(\n (id: string | null) => dispatch({ type: ActionTypes.SetTitleId, id }),\n [dispatch]\n )\n\n let ready = useServerHandoffComplete()\n let enabled = ready && dialogState === DialogStates.Open\n let hasNestedDialogs = nestedDialogCount > 1 // 1 is the current dialog\n let hasParentDialog = useContext(DialogContext) !== null\n\n // If there are multiple dialogs, then you can be the root, the leaf or one\n // in between. We only care abou whether you are the top most one or not.\n let position = !hasNestedDialogs ? 'leaf' : 'parent'\n\n useFocusTrap(\n internalDialogRef,\n enabled\n ? match(position, {\n parent: FocusTrapFeatures.RestoreFocus,\n leaf: FocusTrapFeatures.All,\n })\n : FocusTrapFeatures.None,\n { initialFocus, containers }\n )\n useInertOthers(internalDialogRef, hasNestedDialogs ? enabled : false)\n\n // Handle outside click\n useWindowEvent('mousedown', event => {\n let target = event.target as HTMLElement\n\n if (dialogState !== DialogStates.Open) return\n if (hasNestedDialogs) return\n if (internalDialogRef.current?.contains(target)) return\n\n close()\n })\n\n // Scroll lock\n useEffect(() => {\n if (dialogState !== DialogStates.Open) return\n if (hasParentDialog) return\n\n let overflow = document.documentElement.style.overflow\n let paddingRight = document.documentElement.style.paddingRight\n\n let scrollbarWidth = window.innerWidth - document.documentElement.clientWidth\n\n document.documentElement.style.overflow = 'hidden'\n document.documentElement.style.paddingRight = `${scrollbarWidth}px`\n\n return () => {\n document.documentElement.style.overflow = overflow\n document.documentElement.style.paddingRight = paddingRight\n }\n }, [dialogState, hasParentDialog])\n\n // Trigger close when the FocusTrap gets hidden\n useEffect(() => {\n if (dialogState !== DialogStates.Open) return\n if (!internalDialogRef.current) return\n\n let observer = new IntersectionObserver(entries => {\n for (let entry of entries) {\n if (\n entry.boundingClientRect.x === 0 &&\n entry.boundingClientRect.y === 0 &&\n entry.boundingClientRect.width === 0 &&\n entry.boundingClientRect.height === 0\n ) {\n close()\n }\n }\n })\n\n observer.observe(internalDialogRef.current)\n\n return () => observer.disconnect()\n }, [dialogState, internalDialogRef, close])\n\n let [describedby, DescriptionProvider] = useDescriptions()\n\n let id = `headlessui-dialog-${useId()}`\n\n let contextBag = useMemo<ContextType<typeof DialogContext>>(\n () => [{ dialogState, close, setTitleId }, state],\n [dialogState, state, close, setTitleId]\n )\n\n let slot = useMemo<DialogRenderPropArg>(() => ({ open: dialogState === DialogStates.Open }), [\n dialogState,\n ])\n\n let propsWeControl = {\n ref: dialogRef,\n id,\n role: 'dialog',\n 'aria-modal': dialogState === DialogStates.Open ? true : undefined,\n 'aria-labelledby': state.titleId,\n 'aria-describedby': describedby,\n onClick(event: ReactMouseEvent) {\n event.stopPropagation()\n },\n\n // Handle `Escape` to close\n onKeyDown(event: ReactKeyboardEvent) {\n if (event.key !== Keys.Escape) return\n if (dialogState !== DialogStates.Open) return\n if (hasNestedDialogs) return\n event.preventDefault()\n event.stopPropagation()\n close()\n },\n }\n let passthroughProps = rest\n\n return (\n <StackProvider\n type=\"Dialog\"\n element={internalDialogRef}\n onUpdate={useCallback((message, type, element) => {\n if (type !== 'Dialog') return\n\n match(message, {\n [StackMessage.Add]() {\n containers.current.add(element)\n setNestedDialogCount(count => count + 1)\n },\n [StackMessage.Remove]() {\n containers.current.add(element)\n setNestedDialogCount(count => count - 1)\n },\n })\n }, [])}\n >\n <ForcePortalRoot force={true}>\n <Portal>\n <DialogContext.Provider value={contextBag}>\n <Portal.Group target={internalDialogRef}>\n <ForcePortalRoot force={false}>\n <DescriptionProvider slot={slot} name=\"Dialog.Description\">\n {render({\n props: { ...passthroughProps, ...propsWeControl },\n slot,\n defaultTag: DEFAULT_DIALOG_TAG,\n features: DialogRenderFeatures,\n visible,\n name: 'Dialog',\n })}\n </DescriptionProvider>\n </ForcePortalRoot>\n </Portal.Group>\n </DialogContext.Provider>\n </Portal>\n </ForcePortalRoot>\n </StackProvider>\n )\n})\n\n// ---\n\nlet DEFAULT_OVERLAY_TAG = 'div' as const\ninterface OverlayRenderPropArg {\n open: boolean\n}\ntype OverlayPropsWeControl = 'id' | 'aria-hidden' | 'onClick'\n\nlet Overlay = forwardRefWithAs(function Overlay<\n TTag extends ElementType = typeof DEFAULT_OVERLAY_TAG\n>(props: Props<TTag, OverlayRenderPropArg, OverlayPropsWeControl>, ref: Ref<HTMLDivElement>) {\n let [{ dialogState, close }] = useDialogContext([Dialog.displayName, Overlay.name].join('.'))\n let overlayRef = useSyncRefs(ref)\n\n let id = `headlessui-dialog-overlay-${useId()}`\n\n let handleClick = useCallback(\n (event: ReactMouseEvent) => {\n if (isDisabledReactIssue7711(event.currentTarget)) return event.preventDefault()\n event.preventDefault()\n event.stopPropagation()\n close()\n },\n [close]\n )\n\n let slot = useMemo<OverlayRenderPropArg>(() => ({ open: dialogState === DialogStates.Open }), [\n dialogState,\n ])\n let propsWeControl = {\n ref: overlayRef,\n id,\n 'aria-hidden': true,\n onClick: handleClick,\n }\n let passthroughProps = props\n\n return render({\n props: { ...passthroughProps, ...propsWeControl },\n slot,\n defaultTag: DEFAULT_OVERLAY_TAG,\n name: 'Dialog.Overlay',\n })\n})\n\n// ---\n\nlet DEFAULT_TITLE_TAG = 'h2' as const\ninterface TitleRenderPropArg {\n open: boolean\n}\ntype TitlePropsWeControl = 'id'\n\nfunction Title<TTag extends ElementType = typeof DEFAULT_TITLE_TAG>(\n props: Props<TTag, TitleRenderPropArg, TitlePropsWeControl>\n) {\n let [{ dialogState, setTitleId }] = useDialogContext([Dialog.displayName, Title.name].join('.'))\n\n let id = `headlessui-dialog-title-${useId()}`\n\n useEffect(() => {\n setTitleId(id)\n return () => setTitleId(null)\n }, [id, setTitleId])\n\n let slot = useMemo<TitleRenderPropArg>(() => ({ open: dialogState === DialogStates.Open }), [\n dialogState,\n ])\n let propsWeControl = { id }\n let passthroughProps = props\n\n return render({\n props: { ...passthroughProps, ...propsWeControl },\n slot,\n defaultTag: DEFAULT_TITLE_TAG,\n name: 'Dialog.Title',\n })\n}\n\n// ---\n\nexport let Dialog = Object.assign(DialogRoot, { Overlay, Title, Description })\n"],"sourceRoot":""}