aiber-martin/www/26-es5.js.map
Martin Donnelly a4b8625d0f init
2020-12-17 16:23:12 +00:00

1 line
72 KiB
Plaintext

{"version":3,"sources":["webpack:///node_modules/@ionic/core/dist/esm/ion-refresher_2.entry.js"],"names":["getRefresherAnimationType","contentEl","previousSibling","previousElementSibling","hasHeader","tagName","createPullingAnimation","type","pullingSpinner","createScaleAnimation","createTranslateAnimation","createBaseAnimation","pullingRefresherIcon","spinner","querySelector","circle","shadowRoot","spinnerArrowContainer","arrowContainer","arrow","baseAnimation","duration","easing","spinnerArrowContainerAnimation","addElement","keyframes","offset","opacity","circleInnerAnimation","strokeDasharray","circleOuterAnimation","transform","arrowContainerAnimation","arrowAnimation","addAnimation","height","clientHeight","spinnerAnimation","createSnapBackAnimation","fromTo","setSpinnerOpacity","style","setProperty","toString","handleScrollWhilePulling","ticks","currentTickToShow","forEach","el","i","handleScrollWhileRefreshing","lastVelocityY","translateElement","value","Promise","resolve","trans","transitionEndAsync","undefined","removeProperty","shouldUseNativeRefresher","referenceEl","mode","refreshingSpinner","webkitOverflowScrolling","expectedDuration","transitionEnd","callback","unRegTrans","animationTimeout","opts","passive","ANIMATION_FALLBACK_TIMEOUT","unregister","onTransitionEnd","ev","target","addEventListener","setTimeout","clearTimeout","removeEventListener","refresherIosCss","refresherMdCss","Refresher","hostRef","ionRefresh","ionPull","ionStart","appliedStyles","didStart","progress","pointerDown","needsCompletion","didRefresh","animations","nativeRefresher","state","pullMin","pullMax","closeDuration","snapbackDuration","pullFactor","disabled","gesture","enable","useNativeRefresher","closest","setupNativeRefresher","destroyNativeRefresher","scrollEl","scrollListenerCallback","ani","destroy","elementToTransform","querySelectorAll","MAX_PULL","NUM_TICKS","length","scrollTop","refresherHeight","ratio","emit","Math","abs","pullAmount","floor","shouldShowRefreshingSpinner","beginRefresh","createGesture","gestureName","gesturePriority","direction","threshold","onStart","onMove","velocityY","onEnd","resetNativeRefresher","disabledChanged","refreshingCircle","canStart","data","animation","cancelled","animationType","progressStart","push","deltaY","progressStep","progressEnd","onFinish","snapBackAnimation","play","componentOnReady","setupiOSNativeRefresher","setupMDNativeRefresher","checkNativeRefresher","getAttribute","console","error","getScrollElement","backgroundContentEl","close","detail","event","touches","Number","isNaN","setCss","scrollHostScrollTop","cancelable","preventDefault","cancel","complete","bind","delay","y","overflowVisible","scrollStyle","backgroundStyle","transitionDuration","transitionDelay","overflow","slot","ios","md","RefresherContent","pullingIcon","overflowRefresher","get","hasSpinner","name","paused","icon","lazy","pullingText","innerHTML","refreshingText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AASA,UAAMA,yBAAyB,GAAG,SAA5BA,yBAA4B,CAACC,SAAD,EAAe;AAC7C,YAAMC,eAAe,GAAGD,SAAS,CAACE,sBAAlC;AACA,YAAMC,SAAS,GAAGF,eAAe,KAAK,IAApB,IAA4BA,eAAe,CAACG,OAAhB,KAA4B,YAA1E;AACA,eAAOD,SAAS,GAAG,WAAH,GAAiB,OAAjC;AACH,OAJD;;AAKA,UAAME,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,IAAD,EAAOC,cAAP,EAA0B;AACrD,eAAOD,IAAI,KAAK,OAAT,GAAmBE,oBAAoB,CAACD,cAAD,CAAvC,GAA0DE,wBAAwB,CAACF,cAAD,CAAzF;AACH,OAFD;;AAGA,UAAMG,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,oBAAD,EAA0B;AAClD,YAAMC,OAAO,GAAGD,oBAAoB,CAACE,aAArB,CAAmC,aAAnC,CAAhB;AACA,YAAMC,MAAM,GAAGF,OAAO,CAACG,UAAR,CAAmBF,aAAnB,CAAiC,QAAjC,CAAf;AACA,YAAMG,qBAAqB,GAAGL,oBAAoB,CAACE,aAArB,CAAmC,0BAAnC,CAA9B;AACA,YAAMI,cAAc,GAAGN,oBAAoB,CAACE,aAArB,CAAmC,kBAAnC,CAAvB;AACA,YAAMK,KAAK,GAAID,cAAD,GAAmBA,cAAc,CAACJ,aAAf,CAA6B,UAA7B,CAAnB,GAA8D,IAA5E;AACA,YAAMM,aAAa,GAAG,mEACjBC,QADiB,CACR,IADQ,EAEjBC,MAFiB,CAEV,UAFU,CAAtB;AAGA,YAAMC,8BAA8B,GAAG,mEAClCC,UADkC,CACvBP,qBADuB,EAElCQ,SAFkC,CAExB,CACX;AAAEC,gBAAM,EAAE,CAAV;AAAaC,iBAAO,EAAE;AAAtB,SADW,EAEX;AAAED,gBAAM,EAAE,IAAV;AAAgBC,iBAAO,EAAE;AAAzB,SAFW,EAGX;AAAED,gBAAM,EAAE,IAAV;AAAgBC,iBAAO,EAAE;AAAzB,SAHW,EAIX;AAAED,gBAAM,EAAE,CAAV;AAAaC,iBAAO,EAAE;AAAtB,SAJW,CAFwB,CAAvC;AAQA,YAAMC,oBAAoB,GAAG,mEACxBJ,UADwB,CACbT,MADa,EAExBU,SAFwB,CAEd,CACX;AAAEC,gBAAM,EAAE,CAAV;AAAaG,yBAAe,EAAE;AAA9B,SADW,EAEX;AAAEH,gBAAM,EAAE,IAAV;AAAgBG,yBAAe,EAAE;AAAjC,SAFW,EAGX;AAAEH,gBAAM,EAAE,IAAV;AAAgBG,yBAAe,EAAE;AAAjC,SAHW,EAIX;AAAEH,gBAAM,EAAE,CAAV;AAAaG,yBAAe,EAAE;AAA9B,SAJW,CAFc,CAA7B;AAQA,YAAMC,oBAAoB,GAAG,mEACxBN,UADwB,CACbX,OADa,EAExBY,SAFwB,CAEd,CACX;AAAEC,gBAAM,EAAE,CAAV;AAAaK,mBAAS,EAAE;AAAxB,SADW,EAEX;AAAEL,gBAAM,EAAE,CAAV;AAAaK,mBAAS,EAAE;AAAxB,SAFW,CAFc,CAA7B;AAMA;;;;;;AAKA,YAAIb,cAAc,IAAIC,KAAtB,EAA6B;AACzB,cAAMa,uBAAuB,GAAG,mEAC3BR,UAD2B,CAChBN,cADgB,EAE3BO,SAF2B,CAEjB,CACX;AAAEC,kBAAM,EAAE,CAAV;AAAaK,qBAAS,EAAE;AAAxB,WADW,EAEX;AAAEL,kBAAM,EAAE,IAAV;AAAgBK,qBAAS,EAAE;AAA3B,WAFW,EAGX;AAAEL,kBAAM,EAAE,IAAV;AAAgBK,qBAAS,EAAE;AAA3B,WAHW,EAIX;AAAEL,kBAAM,EAAE,CAAV;AAAaK,qBAAS,EAAE;AAAxB,WAJW,CAFiB,CAAhC;AAQA,cAAME,cAAc,GAAG,mEAClBT,UADkB,CACPL,KADO,EAElBM,SAFkB,CAER,CACX;AAAEC,kBAAM,EAAE,CAAV;AAAaK,qBAAS,EAAE;AAAxB,WADW,EAEX;AAAEL,kBAAM,EAAE,IAAV;AAAgBK,qBAAS,EAAE;AAA3B,WAFW,EAGX;AAAEL,kBAAM,EAAE,IAAV;AAAgBK,qBAAS,EAAE;AAA3B,WAHW,EAIX;AAAEL,kBAAM,EAAE,CAAV;AAAaK,qBAAS,EAAE;AAAxB,WAJW,CAFQ,CAAvB;AAQAX,uBAAa,CAACc,YAAd,CAA2B,CAACF,uBAAD,EAA0BC,cAA1B,CAA3B;AACH;;AACD,eAAOb,aAAa,CAACc,YAAd,CAA2B,CAACX,8BAAD,EAAiCK,oBAAjC,EAAuDE,oBAAvD,CAA3B,CAAP;AACH,OAxDD;;AAyDA,UAAMrB,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACG,oBAAD,EAA0B;AACnD,YAAMuB,MAAM,GAAGvB,oBAAoB,CAACwB,YAApC;AACA,YAAMC,gBAAgB,GAAG,mEACpBb,UADoB,CACTZ,oBADS,EAEpBa,SAFoB,CAEV,CACX;AAAEC,gBAAM,EAAE,CAAV;AAAaK,mBAAS,iCAA0BI,MAAM,GAAG,EAAnC;AAAtB,SADW,EAEX;AAAET,gBAAM,EAAE,CAAV;AAAaK,mBAAS,EAAE;AAAxB,SAFW,CAFU,CAAzB;AAMA,eAAOpB,mBAAmB,CAACC,oBAAD,CAAnB,CAA0CsB,YAA1C,CAAuD,CAACG,gBAAD,CAAvD,CAAP;AACH,OATD;;AAUA,UAAM3B,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACE,oBAAD,EAA0B;AACvD,YAAMuB,MAAM,GAAGvB,oBAAoB,CAACwB,YAApC;AACA,YAAMC,gBAAgB,GAAG,mEACpBb,UADoB,CACTZ,oBADS,EAEpBa,SAFoB,CAEV,CACX;AAAEC,gBAAM,EAAE,CAAV;AAAaK,mBAAS,wBAAiBI,MAAM,GAAG,EAA1B;AAAtB,SADW,EAEX;AAAET,gBAAM,EAAE,CAAV;AAAaK,mBAAS,EAAE;AAAxB,SAFW,CAFU,CAAzB;AAMA,eAAOpB,mBAAmB,CAACC,oBAAD,CAAnB,CAA0CsB,YAA1C,CAAuD,CAACG,gBAAD,CAAvD,CAAP;AACH,OATD;;AAUA,UAAMC,uBAAuB,GAAG,SAA1BA,uBAA0B,CAAC1B,oBAAD,EAA0B;AACtD,eAAO,mEACFS,QADE,CACO,GADP,EAEFG,UAFE,CAESZ,oBAFT,EAGF2B,MAHE,CAGK,WAHL,EAGkB,2DAHlB,EAG+E,iBAH/E,CAAP;AAIH,OALD,C,CAMA;AACA;;;AACA,UAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAC3B,OAAD,EAAUc,OAAV,EAAsB;AAC5Cd,eAAO,CAAC4B,KAAR,CAAcC,WAAd,CAA0B,SAA1B,EAAqCf,OAAO,CAACgB,QAAR,EAArC;AACH,OAFD;;AAGA,UAAMC,wBAAwB,GAAG,SAA3BA,wBAA2B,CAAC/B,OAAD,EAAUgC,KAAV,EAAiBlB,OAAjB,EAA0BmB,iBAA1B,EAAgD;AAC7E,qEAAU,YAAM;AACZN,2BAAiB,CAAC3B,OAAD,EAAUc,OAAV,CAAjB;AACAkB,eAAK,CAACE,OAAN,CAAc,UAACC,EAAD,EAAKC,CAAL;AAAA,mBAAWD,EAAE,CAACP,KAAH,CAASC,WAAT,CAAqB,SAArB,EAAiCO,CAAC,IAAIH,iBAAN,GAA2B,MAA3B,GAAoC,GAApE,CAAX;AAAA,WAAd;AACH,SAHD;AAIH,OALD;;AAMA,UAAMI,2BAA2B,GAAG,SAA9BA,2BAA8B,CAACrC,OAAD,EAAUsC,aAAV,EAA4B;AAC5D,qEAAU,YAAM;AACZ;AACAtC,iBAAO,CAAC4B,KAAR,CAAcC,WAAd,CAA0B,gCAA1B,EAA6DS,aAAa,IAAI,GAAlB,GAAyB,MAAzB,GAAkC,IAA9F;AACAtC,iBAAO,CAAC4B,KAAR,CAAcC,WAAd,CAA0B,SAA1B,EAAqC,GAArC;AACH,SAJD;AAKH,OAND;;AAOA,UAAMU,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACJ,EAAD,EAAKK,KAAL,EAAe;AACpC,YAAI,CAACL,EAAL,EAAS;AACL,iBAAOM,OAAO,CAACC,OAAR,EAAP;AACH;;AACD,YAAMC,KAAK,GAAGC,kBAAkB,CAACT,EAAD,EAAK,GAAL,CAAhC;AACA,qEAAU,YAAM;AACZA,YAAE,CAACP,KAAH,CAASC,WAAT,CAAqB,YAArB,EAAmC,mBAAnC;;AACA,cAAIW,KAAK,KAAKK,SAAd,EAAyB;AACrBV,cAAE,CAACP,KAAH,CAASkB,cAAT,CAAwB,WAAxB;AACH,WAFD,MAGK;AACDX,cAAE,CAACP,KAAH,CAASC,WAAT,CAAqB,WAArB,6BAAsDW,KAAtD;AACH;AACJ,SARD;AASA,eAAOG,KAAP;AACH,OAfD,C,CAgBA;AACA;;;AACA,UAAMI,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,WAAD,EAAcC,IAAd,EAAuB;AACpD,YAAMtD,cAAc,GAAGqD,WAAW,CAAC/C,aAAZ,CAA0B,sDAA1B,CAAvB;AACA,YAAMiD,iBAAiB,GAAGF,WAAW,CAAC/C,aAAZ,CAA0B,yDAA1B,CAA1B;AACA,eAAQN,cAAc,KAAK,IAAnB,IACJuD,iBAAiB,KAAK,IADlB,KAEFD,IAAI,KAAK,KAAT,IAAkB,oEAAW,QAAX,CAAlB,IAA0CD,WAAW,CAACpB,KAAZ,CAAkBuB,uBAAlB,KAA8CN,SAAzF,IACGI,IAAI,KAAK,IAHT,CAAR;AAIH,OAPD;;AAQA,UAAML,kBAAkB,GAAG,SAArBA,kBAAqB,CAACT,EAAD,EAA8B;AAAA,YAAzBiB,gBAAyB,uEAAN,CAAM;AACrD,eAAO,IAAIX,OAAJ,CAAY,UAAAC,OAAO,EAAI;AAC1BW,uBAAa,CAAClB,EAAD,EAAKiB,gBAAL,EAAuBV,OAAvB,CAAb;AACH,SAFM,CAAP;AAGH,OAJD;;AAKA,UAAMW,aAAa,GAAG,SAAhBA,aAAgB,CAAClB,EAAD,EAAwC;AAAA,YAAnCiB,gBAAmC,uEAAhB,CAAgB;AAAA,YAAbE,QAAa;AAC1D,YAAIC,UAAJ;AACA,YAAIC,gBAAJ;AACA,YAAMC,IAAI,GAAG;AAAEC,iBAAO,EAAE;AAAX,SAAb;AACA,YAAMC,0BAA0B,GAAG,GAAnC;;AACA,YAAMC,UAAU,GAAG,SAAbA,UAAa,GAAM;AACrB,cAAIL,UAAJ,EAAgB;AACZA,sBAAU;AACb;AACJ,SAJD;;AAKA,YAAMM,eAAe,GAAG,SAAlBA,eAAkB,CAACC,EAAD,EAAQ;AAC5B,cAAIA,EAAE,KAAKjB,SAAP,IAAoBV,EAAE,KAAK2B,EAAE,CAACC,MAAlC,EAA0C;AACtCH,sBAAU;AACVN,oBAAQ,CAACQ,EAAD,CAAR;AACH;AACJ,SALD;;AAMA,YAAI3B,EAAJ,EAAQ;AACJA,YAAE,CAAC6B,gBAAH,CAAoB,qBAApB,EAA2CH,eAA3C,EAA4DJ,IAA5D;AACAtB,YAAE,CAAC6B,gBAAH,CAAoB,eAApB,EAAqCH,eAArC,EAAsDJ,IAAtD;AACAD,0BAAgB,GAAGS,UAAU,CAACJ,eAAD,EAAkBT,gBAAgB,GAAGO,0BAArC,CAA7B;;AACAJ,oBAAU,GAAG,sBAAM;AACf,gBAAIC,gBAAJ,EAAsB;AAClBU,0BAAY,CAACV,gBAAD,CAAZ;AACAA,8BAAgB,GAAGX,SAAnB;AACH;;AACDV,cAAE,CAACgC,mBAAH,CAAuB,qBAAvB,EAA8CN,eAA9C,EAA+DJ,IAA/D;AACAtB,cAAE,CAACgC,mBAAH,CAAuB,eAAvB,EAAwCN,eAAxC,EAAyDJ,IAAzD;AACH,WAPD;AAQH;;AACD,eAAOG,UAAP;AACH,OA9BD;;AAgCA,UAAMQ,eAAe,GAAG,qwJAAxB;AAEA,UAAMC,cAAc,GAAG,m5KAAvB;;AAEA,UAAMC,SAAS;AACX,2BAAYC,OAAZ,EAAqB;AAAA;;AACjB,uEAAiB,IAAjB,EAAuBA,OAAvB;AACA,eAAKC,UAAL,GAAkB,6DAAY,IAAZ,EAAkB,YAAlB,EAAgC,CAAhC,CAAlB;AACA,eAAKC,OAAL,GAAe,6DAAY,IAAZ,EAAkB,SAAlB,EAA6B,CAA7B,CAAf;AACA,eAAKC,QAAL,GAAgB,6DAAY,IAAZ,EAAkB,UAAlB,EAA8B,CAA9B,CAAhB;AACA,eAAKC,aAAL,GAAqB,KAArB;AACA,eAAKC,QAAL,GAAgB,KAAhB;AACA,eAAKC,QAAL,GAAgB,CAAhB;AACA,eAAKC,WAAL,GAAmB,KAAnB;AACA,eAAKC,eAAL,GAAuB,KAAvB;AACA,eAAKC,UAAL,GAAkB,KAAlB;AACA,eAAK1C,aAAL,GAAqB,CAArB;AACA,eAAK2C,UAAL,GAAkB,EAAlB;AACA,eAAKC,eAAL,GAAuB,KAAvB;AACA;;;;;;;;;;;AAUA,eAAKC,KAAL,GAAa;AAAE;AAAf;AACA;;;;;;;AAMA,eAAKC,OAAL,GAAe,EAAf;AACA;;;;;;;;AAOA,eAAKC,OAAL,GAAe,KAAKD,OAAL,GAAe,EAA9B;AACA;;;;;;AAKA,eAAKE,aAAL,GAAqB,OAArB;AACA;;;;;;AAKA,eAAKC,gBAAL,GAAwB,OAAxB;AACA;;;;;;;;;;;;;;;AAcA,eAAKC,UAAL,GAAkB,CAAlB;AACA;;;;AAGA,eAAKC,QAAL,GAAgB,KAAhB;AACH;;AAxEU;AAAA;AAAA,4CAyEO;AACd,gBAAI,KAAKC,OAAT,EAAkB;AACd,mBAAKA,OAAL,CAAaC,MAAb,CAAoB,CAAC,KAAKF,QAA1B;AACH;AACJ;AA7EU;AAAA;AAAA,iDA8EY;AACnB,gBAAMG,kBAAkB,GAAG7C,wBAAwB,CAAC,KAAKZ,EAAN,EAAU,oEAAW,IAAX,CAAV,CAAnD;;AACA,gBAAIyD,kBAAkB,IAAI,CAAC,KAAKV,eAAhC,EAAiD;AAC7C,kBAAM9F,SAAS,GAAG,KAAK+C,EAAL,CAAQ0D,OAAR,CAAgB,aAAhB,CAAlB;AACA,mBAAKC,oBAAL,CAA0B1G,SAA1B;AACH,aAHD,MAIK,IAAI,CAACwG,kBAAL,EAAyB;AAC1B,mBAAKG,sBAAL;AACH;AACJ;AAvFU;AAAA;AAAA,mDAwFc;AACrB,gBAAI,KAAKC,QAAL,IAAiB,KAAKC,sBAA1B,EAAkD;AAC9C,mBAAKD,QAAL,CAAc7B,mBAAd,CAAkC,QAAlC,EAA4C,KAAK8B,sBAAjD;AACA,mBAAKA,sBAAL,GAA8BpD,SAA9B;AACH;;AACD,iBAAKqC,eAAL,GAAuB,KAAvB;AACH;AA9FU;AAAA;AAAA;AAAA,iHA+FgB/C,EA/FhB,EA+FoBgD,KA/FpB;AAAA;AAAA;AAAA;AAAA;AAgGP,2BAAKA,KAAL,GAAaA,KAAb;;AAhGO,4BAiGH,oEAAW,IAAX,MAAqB,KAjGlB;AAAA;AAAA;AAAA;;AAAA;AAAA,6BAkGG5C,gBAAgB,CAACJ,EAAD,EAAKU,SAAL,CAlGnB;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,6BAqGGD,kBAAkB,CAAC,KAAKT,EAAL,CAAQlC,aAAR,CAAsB,4BAAtB,CAAD,EAAsD,GAAtD,CArGrB;;AAAA;AAuGP,2BAAK+E,UAAL,GAAkB,KAAlB;AACA,2BAAKD,eAAL,GAAuB,KAAvB;AACA,2BAAKD,WAAL,GAAmB,KAAnB;AACA,2BAAKG,UAAL,CAAgB/C,OAAhB,CAAwB,UAAAgE,GAAG;AAAA,+BAAIA,GAAG,CAACC,OAAJ,EAAJ;AAAA,uBAA3B;AACA,2BAAKlB,UAAL,GAAkB,EAAlB;AACA,2BAAKJ,QAAL,GAAgB,CAAhB;AACA,2BAAKM,KAAL,GAAa;AAAE;AAAf;;AA7GO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qHA+GmBxF,cA/GnB,EA+GmCuD,iBA/GnC;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAgHP,2BAAKkD,kBAAL,GAA0B,KAAKJ,QAA/B;AACMhE,2BAjHC,GAiHOrC,cAAc,CAACQ,UAAf,CAA0BkG,gBAA1B,CAA2C,KAA3C,CAjHP;AAkHDC,8BAlHC,GAkHU,KAAKN,QAAL,CAAczE,YAAd,GAA6B,IAlHvC;AAmHDgF,+BAnHC,GAmHWvE,KAAK,CAACwE,MAnHjB;AAoHP,mFAAU;AAAA,+BAAMxE,KAAK,CAACE,OAAN,CAAc,UAAAC,EAAE;AAAA,iCAAIA,EAAE,CAACP,KAAH,CAASC,WAAT,CAAqB,WAArB,EAAkC,MAAlC,CAAJ;AAAA,yBAAhB,CAAN;AAAA,uBAAV;;AACA,2BAAKoE,sBAAL,GAA8B,YAAM;AAChC;AACA,4BAAI,CAAC,KAAI,CAACnB,WAAN,IAAqB,KAAI,CAACK,KAAL,KAAe;AAAE;AAA1C,0BAA0D;AACtD;AACH;;AACD,qFAAS,YAAM;AACX;AACA,8BAAMsB,SAAS,GAAG,KAAI,CAACT,QAAL,CAAcS,SAAhC;AACA,8BAAMC,eAAe,GAAG,KAAI,CAACvE,EAAL,CAAQZ,YAAhC;;AACA,8BAAIkF,SAAS,GAAG,CAAhB,EAAmB;AACf;;;;AAIA,gCAAI,KAAI,CAACtB,KAAL,KAAe;AAAE;AAArB,8BAAuC;AACnC,oCAAMwB,KAAK,GAAG,+DAAM,CAAN,EAASF,SAAS,IAAIC,eAAe,GAAG,GAAtB,CAAlB,EAA8C,CAA9C,CAAd;AACA,6FAAU;AAAA,yCAAM/E,iBAAiB,CAACuB,iBAAD,EAAoB,IAAIyD,KAAxB,CAAvB;AAAA,iCAAV;AACA;AACH;;AACD,yFAAU;AAAA,qCAAMhF,iBAAiB,CAAChC,cAAD,EAAiB,CAAjB,CAAvB;AAAA,6BAAV;AACA;AACH;;AACD,8BAAI,KAAI,CAACmF,WAAT,EAAsB;AAClB,gCAAI,CAAC,KAAI,CAACF,QAAV,EAAoB;AAChB,mCAAI,CAACA,QAAL,GAAgB,IAAhB;;AACA,mCAAI,CAACF,QAAL,CAAckC,IAAd;AACH,6BAJiB,CAKlB;;;AACA,gCAAI,KAAI,CAAC9B,WAAT,EAAsB;AAClB,mCAAI,CAACL,OAAL,CAAamC,IAAb;AACH;AACJ,2BA1BU,CA2BX;;;AACA,8BAAM9F,OAAO,GAAG,+DAAM,CAAN,EAAS+F,IAAI,CAACC,GAAL,CAASL,SAAT,IAAsBC,eAA/B,EAAgD,IAAhD,CAAhB;AACA,8BAAMK,UAAU,GAAG,KAAI,CAAClC,QAAL,GAAgB,+DAAM,CAAN,EAAS,CAACgC,IAAI,CAACC,GAAL,CAASL,SAAT,IAAsB,EAAvB,IAA6BH,QAAtC,EAAgD,CAAhD,CAAnC;AACA,8BAAMrE,iBAAiB,GAAG,+DAAM,CAAN,EAAS4E,IAAI,CAACG,KAAL,CAAWD,UAAU,GAAGR,SAAxB,CAAT,EAA6CA,SAAS,GAAG,CAAzD,CAA1B;AACA,8BAAMU,2BAA2B,GAAG,KAAI,CAAC9B,KAAL,KAAe;AAAE;AAAjB,6BAAqClD,iBAAiB,KAAKsE,SAAS,GAAG,CAA3G;;AACA,8BAAIU,2BAAJ,EAAiC;AAC7B,gCAAI,KAAI,CAACnC,WAAT,EAAsB;AAClBzC,yDAA2B,CAACa,iBAAD,EAAoB,KAAI,CAACZ,aAAzB,CAA3B;AACH;;AACD,gCAAI,CAAC,KAAI,CAAC0C,UAAV,EAAsB;AAClB,mCAAI,CAACkC,YAAL;;AACA,mCAAI,CAAClC,UAAL,GAAkB,IAAlB;AACA,4FAAa;AAAEpD,qCAAK,EAAE;AAAT,+BAAb;AACA;;;;;AAIA,kCAAI,CAAC,KAAI,CAACkD,WAAV,EAAuB;AACnBvC,gDAAgB,CAAC,KAAI,CAAC6D,kBAAN,YAA6BM,eAA7B,QAAhB;AACH;AACJ;AACJ,2BAhBD,MAiBK;AACD,iCAAI,CAACvB,KAAL,GAAa;AAAE;AAAf;AACApD,oDAAwB,CAACpC,cAAD,EAAiBqC,KAAjB,EAAwBlB,OAAxB,EAAiCmB,iBAAjC,CAAxB;AACH;AACJ,yBArDD;AAsDH,uBA3DD;;AA4DA,2BAAK+D,QAAL,CAAchC,gBAAd,CAA+B,QAA/B,EAAyC,KAAKiC,sBAA9C;AAjLO;AAAA,6BAkLe;AAAA;AAAA,+EAlLf;;AAAA;AAkLP,2BAAKP,OAlLE,kBAkL8CyB,aAlL9C,CAkL4D;AAC/DhF,0BAAE,EAAE,KAAK6D,QADsD;AAE/DoB,mCAAW,EAAE,WAFkD;AAG/DC,uCAAe,EAAE,EAH8C;AAI/DC,iCAAS,EAAE,GAJoD;AAK/DC,iCAAS,EAAE,CALoD;AAM/DC,+BAAO,EAAE,mBAAM;AACX,+BAAI,CAAC1C,WAAL,GAAmB,IAAnB;;AACA,8BAAI,CAAC,KAAI,CAACE,UAAV,EAAsB;AAClBzC,4CAAgB,CAAC,KAAI,CAAC6D,kBAAN,EAA0B,KAA1B,CAAhB;AACH;AACJ,yBAX8D;AAY/DqB,8BAAM,EAAE,gBAAA3D,EAAE,EAAI;AACV,+BAAI,CAACxB,aAAL,GAAqBwB,EAAE,CAAC4D,SAAxB;AACH,yBAd8D;AAe/DC,6BAAK,EAAE,iBAAM;AACT,+BAAI,CAAC7C,WAAL,GAAmB,KAAnB;AACA,+BAAI,CAACF,QAAL,GAAgB,KAAhB;;AACA,8BAAI,KAAI,CAACG,eAAT,EAA0B;AACtB,iCAAI,CAAC6C,oBAAL,CAA0B,KAAI,CAACxB,kBAA/B,EAAmD;AAAG;AAAtD;;AACA,iCAAI,CAACrB,eAAL,GAAuB,KAAvB;AACH,2BAHD,MAIK,IAAI,KAAI,CAACC,UAAT,EAAqB;AACtB,yFAAS;AAAA,qCAAMzC,gBAAgB,CAAC,KAAI,CAAC6D,kBAAN,YAA6B,KAAI,CAACjE,EAAL,CAAQZ,YAArC,QAAtB;AAAA,6BAAT;AACH;AACJ;AAzB8D,uBAlL5D;AA6MP,2BAAKsG,eAAL;;AA7MO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oHA+MkBzI,SA/MlB,EA+M6BO,cA/M7B,EA+M6CuD,iBA/M7C;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAgNDhD,4BAhNC,GAgNQ,+DAAeP,cAAf,EAA+BM,aAA/B,CAA6C,QAA7C,CAhNR;AAiNDF,0CAjNC,GAiNsB,KAAKoC,EAAL,CAAQlC,aAAR,CAAsB,+CAAtB,CAjNtB;AAkND6H,sCAlNC,GAkNkB,+DAAe5E,iBAAf,EAAkCjD,aAAlC,CAAgD,QAAhD,CAlNlB;;AAmNP,0BAAIC,MAAM,KAAK,IAAX,IAAmB4H,gBAAgB,KAAK,IAA5C,EAAkD;AAC9C,qFAAU,YAAM;AACZ5H,gCAAM,CAAC0B,KAAP,CAAaC,WAAb,CAAyB,WAAzB,EAAsC,MAAtC,EADY,CAEZ;;AACAqB,2CAAiB,CAACtB,KAAlB,CAAwBC,WAAxB,CAAoC,iBAApC,EAAuD,QAAvD;AACAiG,0CAAgB,CAAClG,KAAjB,CAAuBC,WAAvB,CAAmC,iBAAnC,EAAsD,QAAtD;AACH,yBALD;AAMH;;AA1NM;AAAA,6BA2Ne;AAAA;AAAA,+EA3Nf;;AAAA;AA2NP,2BAAK6D,OA3NE,kBA2N8CyB,aA3N9C,CA2N4D;AAC/DhF,0BAAE,EAAE,KAAK6D,QADsD;AAE/DoB,mCAAW,EAAE,WAFkD;AAG/DC,uCAAe,EAAE,EAH8C;AAI/DC,iCAAS,EAAE,GAJoD;AAK/DC,iCAAS,EAAE,CALoD;AAM/DQ,gCAAQ,EAAE;AAAA,iCAAM,MAAI,CAAC5C,KAAL,KAAe;AAAE;AAAjB,6BAAqC,MAAI,CAACA,KAAL,KAAe;AAAG;AAAvD,6BAA2E,MAAI,CAACa,QAAL,CAAcS,SAAd,KAA4B,CAA7G;AAAA,yBANqD;AAO/De,+BAAO,EAAE,iBAAC1D,EAAD,EAAQ;AACbA,4BAAE,CAACkE,IAAH,GAAU;AAAEC,qCAAS,EAAEpF,SAAb;AAAwB+B,oCAAQ,EAAE,KAAlC;AAAyCsD,qCAAS,EAAE;AAApD,2BAAV;AACH,yBAT8D;AAU/DT,8BAAM,EAAE,gBAAC3D,EAAD,EAAQ;AACZ,8BAAKA,EAAE,CAAC4D,SAAH,GAAe,CAAf,IAAoB,MAAI,CAAC7C,QAAL,KAAkB,CAAtC,IAA2C,CAACf,EAAE,CAACkE,IAAH,CAAQpD,QAArD,IAAkEd,EAAE,CAACkE,IAAH,CAAQE,SAA9E,EAAyF;AACrFpE,8BAAE,CAACkE,IAAH,CAAQE,SAAR,GAAoB,IAApB;AACA;AACH;;AACD,8BAAI,CAACpE,EAAE,CAACkE,IAAH,CAAQpD,QAAb,EAAuB;AACnBd,8BAAE,CAACkE,IAAH,CAAQpD,QAAR,GAAmB,IAAnB;AACA,kCAAI,CAACO,KAAL,GAAa;AAAE;AAAf;AACA,yFAAU,YAAM;AACZ,kCAAMgD,aAAa,GAAGhJ,yBAAyB,CAACC,SAAD,CAA/C;AACA,kCAAM6I,SAAS,GAAGxI,sBAAsB,CAAC0I,aAAD,EAAgBpI,oBAAhB,CAAxC;AACA+D,gCAAE,CAACkE,IAAH,CAAQC,SAAR,GAAoBA,SAApB;;AACA,oCAAI,CAACjC,QAAL,CAAcpE,KAAd,CAAoBC,WAApB,CAAgC,YAAhC,EAA8C,QAA9C;;AACAoG,uCAAS,CAACG,aAAV,CAAwB,KAAxB,EAA+B,CAA/B;;AACA,oCAAI,CAAC1D,QAAL,CAAckC,IAAd;;AACA,oCAAI,CAAC3B,UAAL,CAAgBoD,IAAhB,CAAqBJ,SAArB;AACH,6BARD;AASA;AACH,2BAlBW,CAmBZ;;;AACA,gCAAI,CAACpD,QAAL,GAAgB,+DAAM,CAAN,EAAUf,EAAE,CAACwE,MAAH,GAAY,GAAb,GAAoB,GAA7B,EAAkC,CAAlC,CAAhB;AACAxE,4BAAE,CAACkE,IAAH,CAAQC,SAAR,CAAkBM,YAAlB,CAA+B,MAAI,CAAC1D,QAApC;;AACA,gCAAI,CAACJ,OAAL,CAAamC,IAAb;AACH,yBAjC8D;AAkC/De,6BAAK,EAAE,eAAC7D,EAAD,EAAQ;AACX,8BAAI,CAACA,EAAE,CAACkE,IAAH,CAAQpD,QAAb,EAAuB;AACnB;AACH;;AACD,uFAAU;AAAA,mCAAM,MAAI,CAACoB,QAAL,CAAcpE,KAAd,CAAoBkB,cAApB,CAAmC,YAAnC,CAAN;AAAA,2BAAV;;AACA,8BAAI,MAAI,CAAC+B,QAAL,IAAiB,GAArB,EAA0B;AACtB,kCAAI,CAACa,OAAL,CAAaC,MAAb,CAAoB,KAApB;;AACA7B,8BAAE,CAACkE,IAAH,CAAQC,SAAR,CACKO,WADL,CACiB,CADjB,EACoB,MAAI,CAAC3D,QADzB,EACmC,GADnC,EAEK4D,QAFL,CAEc,YAAM;AAChB,oCAAI,CAACxD,UAAL,CAAgB/C,OAAhB,CAAwB,UAAAgE,GAAG;AAAA,uCAAIA,GAAG,CAACC,OAAJ,EAAJ;AAAA,+BAA3B;;AACA,oCAAI,CAAClB,UAAL,GAAkB,EAAlB;;AACA,oCAAI,CAACS,OAAL,CAAaC,MAAb,CAAoB,IAApB;;AACA,oCAAI,CAACR,KAAL,GAAa;AAAE;AAAf;AACH,6BAPD;AAQA;AACH;;AACD,8BAAMN,QAAQ,GAAG,oEAAwB,CAAC,CAAD,EAAI,CAAJ,CAAxB,EAAgC,CAAC,CAAD,EAAI,CAAJ,CAAhC,EAAwC,CAAC,CAAD,EAAI,CAAJ,CAAxC,EAAgD,CAAC,CAAD,EAAI,CAAJ,CAAhD,EAAwD,MAAI,CAACA,QAA7D,EAAuE,CAAvE,CAAjB;AACA,8BAAM6D,iBAAiB,GAAGjH,uBAAuB,CAAC1B,oBAAD,CAAjD;;AACA,gCAAI,CAACkF,UAAL,CAAgBoD,IAAhB,CAAqBK,iBAArB;;AACA,6JAAU;AAAA;AAAA;AAAA;AAAA;AACN3I,wDAAoB,CAAC6B,KAArB,CAA2BC,WAA3B,CAAuC,mCAAvC,YAAgFgD,QAAQ,GAAG,GAA3F;AACAf,sCAAE,CAACkE,IAAH,CAAQC,SAAR,CAAkBO,WAAlB;AAFM;AAAA,2CAGAE,iBAAiB,CAACC,IAAlB,EAHA;;AAAA;AAIN,0CAAI,CAACzB,YAAL;;AACApD,sCAAE,CAACkE,IAAH,CAAQC,SAAR,CAAkB9B,OAAlB;;AALM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAV;AAOH;AA7D8D,uBA3N5D;AA0RP,2BAAK0B,eAAL;;AA1RO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kHA4RgBzI,SA5RhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BA6RH,KAAK6G,sBAAL,IAA+B,CAAC7G,SAAhC,IAA6C,KAAK8F,eAAlD,IAAqE,CAAC,KAAKc,QA7RxE;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAgSP,2BAAKd,eAAL,GAAuB,IAAvB;AACMvF,oCAjSC,GAiSgB,KAAKwC,EAAL,CAAQlC,aAAR,CAAsB,sDAAtB,CAjShB;AAkSDiD,uCAlSC,GAkSmB,KAAKf,EAAL,CAAQlC,aAAR,CAAsB,yDAAtB,CAlSnB;AAAA;AAAA,6BAmSDb,SAAS,CAACwJ,gBAAV,EAnSC;;AAAA;AAoSP,0BAAI,oEAAW,IAAX,MAAqB,KAAzB,EAAgC;AAC5B,6BAAKC,uBAAL,CAA6BlJ,cAA7B,EAA6CuD,iBAA7C;AACH,uBAFD,MAGK;AACD,6BAAK4F,sBAAL,CAA4B1J,SAA5B,EAAuCO,cAAvC,EAAuDuD,iBAAvD;AACH;;AAzSM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,+CA2SU;AACjB,iBAAK6F,oBAAL;AACH;AA7SU;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BA+SH,KAAK5G,EAAL,CAAQ6G,YAAR,CAAqB,MAArB,MAAiC,OA/S9B;AAAA;AAAA;AAAA;;AAgTHC,6BAAO,CAACC,KAAR,CAAc,iDAAd;AAhTG;;AAAA;AAmTD9J,+BAnTC,GAmTW,KAAK+C,EAAL,CAAQ0D,OAAR,CAAgB,aAAhB,CAnTX;;AAAA,0BAoTFzG,SApTE;AAAA;AAAA;AAAA;;AAqTH6J,6BAAO,CAACC,KAAR,CAAc,sDAAd;AArTG;;AAAA;AAAA;AAAA,6BAwTe9J,SAAS,CAAC+J,gBAAV,EAxTf;;AAAA;AAwTP,2BAAKnD,QAxTE;AAyTP,2BAAKoD,mBAAL,GAA2B,+DAAehK,SAAf,EAA0Ba,aAA1B,CAAwC,qBAAxC,CAA3B;;AAzTO,2BA0TH8C,wBAAwB,CAAC,KAAKZ,EAAN,EAAU,oEAAW,IAAX,CAAV,CA1TrB;AAAA;AAAA;AAAA;;AA2TH,2BAAK2D,oBAAL,CAA0B1G,SAA1B;AA3TG;AAAA;;AAAA;AAAA;AAAA,6BA8TmB;AAAA;AAAA,+EA9TnB;;AAAA;AA8TH,2BAAKsG,OA9TF,kBA8TkDyB,aA9TlD,CA8TgE;AAC/DhF,0BAAE,EAAE/C,SAD2D;AAE/DgI,mCAAW,EAAE,WAFkD;AAG/DC,uCAAe,EAAE,EAH8C;AAI/DC,iCAAS,EAAE,GAJoD;AAK/DC,iCAAS,EAAE,EALoD;AAM/D7D,+BAAO,EAAE,KANsD;AAO/DqE,gCAAQ,EAAE;AAAA,iCAAM,MAAI,CAACA,QAAL,EAAN;AAAA,yBAPqD;AAQ/DP,+BAAO,EAAE;AAAA,iCAAM,MAAI,CAACA,OAAL,EAAN;AAAA,yBARsD;AAS/DC,8BAAM,EAAE,gBAAA3D,EAAE;AAAA,iCAAI,MAAI,CAAC2D,MAAL,CAAY3D,EAAZ,CAAJ;AAAA,yBATqD;AAU/D6D,6BAAK,EAAE;AAAA,iCAAM,MAAI,CAACA,KAAL,EAAN;AAAA;AAVwD,uBA9ThE;AA0UH,2BAAKE,eAAL;;AA1UG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,iDA6UY;AACnB,iBAAK9B,sBAAL;AACA,iBAAKC,QAAL,GAAgBnD,SAAhB;;AACA,gBAAI,KAAK6C,OAAT,EAAkB;AACd,mBAAKA,OAAL,CAAaS,OAAb;AACA,mBAAKT,OAAL,GAAe7C,SAAf;AACH;AACJ;AACD;;;;;;;;;;AArVW;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AA+VP,0BAAI,KAAKqC,eAAT,EAA0B;AACtB,6BAAKH,eAAL,GAAuB,IAAvB,CADsB,CAEtB;;AACA,4BAAI,CAAC,KAAKD,WAAV,EAAuB;AACnB,yFAAI;AAAA,mCAAM,+DAAI;AAAA,qCAAM,MAAI,CAAC8C,oBAAL,CAA0B,MAAI,CAACxB,kBAA/B,EAAmD;AAAG;AAAtD,+BAAN;AAAA,6BAAJ,CAAN;AAAA,2BAAJ;AACH;AACJ,uBAND,MAOK;AACD,6BAAKiD,KAAL,CAAW;AAAG;AAAd,0BAAgC,OAAhC;AACH;;AAxWM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AA0WX;;;;AA1WW;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AA8WP,0BAAI,KAAKnE,eAAT,EAA0B;AACtB;AACA,4BAAI,CAAC,KAAKJ,WAAV,EAAuB;AACnB,yFAAI;AAAA,mCAAM,+DAAI;AAAA,qCAAM,MAAI,CAAC8C,oBAAL,CAA0B,MAAI,CAACxB,kBAA/B,EAAmD;AAAG;AAAtD,+BAAN;AAAA,6BAAJ,CAAN;AAAA,2BAAJ;AACH;AACJ,uBALD,MAMK;AACD,6BAAKiD,KAAL,CAAW;AAAG;AAAd,0BAAgC,EAAhC;AACH;;AAtXM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAwXX;;;;;;;;;;AAxXW;AAAA;AAAA,wCAiYG;AACV,mBAAO5G,OAAO,CAACC,OAAR,CAAgB,KAAKmC,QAArB,CAAP;AACH;AAnYU;AAAA;AAAA,qCAoYA;AACP,gBAAI,CAAC,KAAKmB,QAAV,EAAoB;AAChB,qBAAO,KAAP;AACH;;AACD,gBAAI,KAAKb,KAAL,KAAe;AAAE;AAArB,cAAqC;AACjC,uBAAO,KAAP;AACH,eANM,CAOP;AACA;;;AACA,gBAAI,KAAKa,QAAL,CAAcS,SAAd,GAA0B,CAA9B,EAAiC;AAC7B,qBAAO,KAAP;AACH;;AACD,mBAAO,IAAP;AACH;AAjZU;AAAA;AAAA,oCAkZD;AACN,iBAAK5B,QAAL,GAAgB,CAAhB;AACA,iBAAKM,KAAL,GAAa;AAAE;AAAf;AACH;AArZU;AAAA;AAAA,iCAsZJmE,MAtZI,EAsZI;AACX,gBAAI,CAAC,KAAKtD,QAAV,EAAoB;AAChB;AACH,aAHU,CAIX;AACA;AACA;AACA;;;AACA,gBAAMlC,EAAE,GAAGwF,MAAM,CAACC,KAAlB;;AACA,gBAAIzF,EAAE,CAAC0F,OAAH,IAAc1F,EAAE,CAAC0F,OAAH,CAAWhD,MAAX,GAAoB,CAAtC,EAAyC;AACrC;AACH,aAXU,CAYX;AACA;AACA;;;AACA,gBAAI,CAAC,KAAKrB,KAAL,GAAa;AAAG;AAAjB,kBAAmC,CAAvC,EAA0C;AACtC;AACH;;AACD,gBAAMK,UAAU,GAAIiE,MAAM,CAACC,KAAP,CAAa,KAAKlE,UAAlB,KAAiC,KAAKA,UAAL,GAAkB,CAApD,GAAyD,CAAzD,GAA6D,KAAKA,UAArF;AACA,gBAAM8C,MAAM,GAAGgB,MAAM,CAAChB,MAAP,GAAgB9C,UAA/B,CAnBW,CAoBX;AACA;;AACA,gBAAI8C,MAAM,IAAI,CAAd,EAAiB;AACb;AACA;AACA,mBAAKzD,QAAL,GAAgB,CAAhB;AACA,mBAAKM,KAAL,GAAa;AAAE;AAAf;;AACA,kBAAI,KAAKR,aAAT,EAAwB;AACpB;AACA,qBAAKgF,MAAL,CAAY,CAAZ,EAAe,EAAf,EAAmB,KAAnB,EAA0B,EAA1B;AACA;AACH;;AACD;AACH;;AACD,gBAAI,KAAKxE,KAAL,KAAe;AAAE;AAArB,cAAqC;AACjC;AACA;AACA,oBAAMyE,mBAAmB,GAAG,KAAK5D,QAAL,CAAcS,SAA1C,CAHiC,CAIjC;AACA;;AACA,oBAAImD,mBAAmB,GAAG,CAA1B,EAA6B;AACzB,uBAAK/E,QAAL,GAAgB,CAAhB;AACA;AACH,iBATgC,CAUjC;;;AACA,qBAAKM,KAAL,GAAa;AAAE;AAAf;AACH,eA9CU,CA+CX;;;AACA,gBAAIrB,EAAE,CAAC+F,UAAP,EAAmB;AACf/F,gBAAE,CAACgG,cAAH;AACH,aAlDU,CAmDX;AACA;;;AACA,iBAAKH,MAAL,CAAYrB,MAAZ,EAAoB,KAApB,EAA2B,IAA3B,EAAiC,EAAjC;;AACA,gBAAIA,MAAM,KAAK,CAAf,EAAkB;AACd;AACA,mBAAKzD,QAAL,GAAgB,CAAhB;AACA;AACH;;AACD,gBAAMO,OAAO,GAAG,KAAKA,OAArB,CA3DW,CA4DX;;AACA,iBAAKP,QAAL,GAAgByD,MAAM,GAAGlD,OAAzB,CA7DW,CA8DX;;AACA,gBAAI,CAAC,KAAKR,QAAV,EAAoB;AAChB,mBAAKA,QAAL,GAAgB,IAAhB;AACA,mBAAKF,QAAL,CAAckC,IAAd;AACH,aAlEU,CAmEX;;;AACA,iBAAKnC,OAAL,CAAamC,IAAb,GApEW,CAqEX;;AACA,gBAAI0B,MAAM,GAAGlD,OAAb,EAAsB;AAClB;AACA,mBAAKD,KAAL,GAAa;AAAE;AAAf;AACA;AACH;;AACD,gBAAImD,MAAM,GAAG,KAAKjD,OAAlB,EAA2B;AACvB;AACA,mBAAK6B,YAAL;AACA;AACH,aA/EU,CAgFX;AACA;AACA;;;AACA,iBAAK/B,KAAL,GAAa;AAAE;AAAf;AACA;AACH;AA3eU;AAAA;AAAA,kCA4eH;AACJ;AACA,gBAAI,KAAKA,KAAL,KAAe;AAAE;AAArB,cAAkC;AAC9B;AACA,qBAAK+B,YAAL;AACH,eAHD,MAIK,IAAI,KAAK/B,KAAL,KAAe;AAAE;AAArB,cAAoC;AACrC;AACA;AACA;AACA;AACA,qBAAK4E,MAAL;AACH;AACJ;AAzfU;AAAA;AAAA,yCA0fI;AACX;AACA;AACA,iBAAK5E,KAAL,GAAa;AAAE;AAAf,aAHW,CAIX;;AACA,iBAAKwE,MAAL,CAAY,KAAKvE,OAAjB,EAA0B,KAAKG,gBAA/B,EAAiD,IAAjD,EAAuD,EAAvD,EALW,CAMX;AACA;;AACA,iBAAKf,UAAL,CAAgBoC,IAAhB,CAAqB;AACjBoD,sBAAQ,EAAE,KAAKA,QAAL,CAAcC,IAAd,CAAmB,IAAnB;AADO,aAArB;AAGH;AArgBU;AAAA;AAAA,gCAsgBL9E,KAtgBK,EAsgBE+E,KAtgBF,EAsgBS;AAAA;;AAChB;AACAjG,sBAAU,CAAC,YAAM;AACb,oBAAI,CAACkB,KAAL,GAAa;AAAE;AAAf;AACA,oBAAI,CAACN,QAAL,GAAgB,CAAhB;AACA,oBAAI,CAACD,QAAL,GAAgB,KAAhB;;AACA,oBAAI,CAAC+E,MAAL,CAAY,CAAZ,EAAe,KAAf,EAAsB,KAAtB,EAA6B,EAA7B;AACH,aALS,EAKP,GALO,CAAV,CAFgB,CAQhB;AACA;;AACA,iBAAKxE,KAAL,GAAaA,KAAb;AACA,iBAAKwE,MAAL,CAAY,CAAZ,EAAe,KAAKrE,aAApB,EAAmC,IAAnC,EAAyC4E,KAAzC,EAXgB,CAYhB;AACH;AAnhBU;AAAA;AAAA,iCAohBJC,CAphBI,EAohBD3J,QAphBC,EAohBS4J,eAphBT,EAohB0BF,KAphB1B,EAohBiC;AAAA;;AACxC,gBAAI,KAAKhF,eAAT,EAA0B;AACtB;AACH;;AACD,iBAAKP,aAAL,GAAsBwF,CAAC,GAAG,CAA1B;AACA,yEAAU,YAAM;AACZ,kBAAI,MAAI,CAACnE,QAAL,IAAiB,MAAI,CAACoD,mBAA1B,EAA+C;AAC3C,oBAAMiB,WAAW,GAAG,MAAI,CAACrE,QAAL,CAAcpE,KAAlC;AACA,oBAAM0I,eAAe,GAAG,MAAI,CAAClB,mBAAL,CAAyBxH,KAAjD;AACAyI,2BAAW,CAACnJ,SAAZ,GAAwBoJ,eAAe,CAACpJ,SAAhB,GAA8BiJ,CAAC,GAAG,CAAL,wBAAwBA,CAAxB,2BAAiD,EAAtG;AACAE,2BAAW,CAACE,kBAAZ,GAAiCD,eAAe,CAACC,kBAAhB,GAAqC/J,QAAtE;AACA6J,2BAAW,CAACG,eAAZ,GAA8BF,eAAe,CAACE,eAAhB,GAAkCN,KAAhE;AACAG,2BAAW,CAACI,QAAZ,GAAwBL,eAAe,GAAG,QAAH,GAAc,EAArD;AACH;AACJ,aATD;AAUH;AAniBU;AAAA;AAAA,mCAoiBF;AAAA;;AACL,gBAAMnH,IAAI,GAAG,oEAAW,IAAX,CAAb;AACA,mBAAQ,6DAAE,oDAAF,EAAQ;AAAEyH,kBAAI,EAAE,OAAR;AAAiB,6DACxBzH,IADwB,EACjB,IADiB,+CAGXA,IAHW,GAGF,IAHE,2BAIzB,kBAJyB,EAIL,KAAKiC,eAJA,2BAKzB,kBALyB,EAKL,KAAKC,KAAL,KAAe,CALV,2BAMzB,mBANyB,EAMJ,KAAKA,KAAL,KAAe,CANX,2BAOzB,iBAPyB,EAON,KAAKA,KAAL,KAAe,CAPT,2BAQzB,sBARyB,EAQD,KAAKA,KAAL,KAAe,CARd,2BASzB,sBATyB,EASD,KAAKA,KAAL,KAAe,EATd,2BAUzB,sBAVyB,EAUD,KAAKA,KAAL,KAAe,EAVd;AAAjB,aAAR,CAAR;AAYH;AAljBU;AAAA;AAAA,8BAmjBF;AAAE,mBAAO,6DAAW,IAAX,CAAP;AAA0B;AAnjB1B;AAAA;AAAA,8BAojBW;AAAE,mBAAO;AAC3B,0BAAY,CAAC,iBAAD;AADe,aAAP;AAEpB;AAtjBO;;AAAA;AAAA,SAAf;;AAwjBAb,eAAS,CAAC1C,KAAV,GAAkB;AACd+I,WAAG,EAAEvG,eADS;AAEdwG,UAAE,EAAEvG;AAFU,OAAlB;;AAKA,UAAMwG,gBAAgB;AAClB,kCAAYtG,OAAZ,EAAqB;AAAA;;AACjB,uEAAiB,IAAjB,EAAuBA,OAAvB;AACH;;AAHiB;AAAA;AAAA,8CAIE;AAChB,gBAAI,KAAKuG,WAAL,KAAqBjI,SAAzB,EAAoC;AAChC,kBAAMI,IAAI,GAAG,oEAAW,IAAX,CAAb;AACA,kBAAM8H,iBAAiB,GAAG,KAAK5I,EAAL,CAAQP,KAAR,CAAcuB,uBAAd,KAA0CN,SAA1C,GAAsD,OAAtD,GAAgE,YAA1F;AACA,mBAAKiI,WAAL,GAAmB,4DAAOE,GAAP,CAAW,gBAAX,EAA6B/H,IAAI,KAAK,KAAT,IAAkB,oEAAW,QAAX,CAAlB,GAAyC,4DAAO+H,GAAP,CAAW,SAAX,EAAsBD,iBAAtB,CAAzC,GAAoF,UAAjH,CAAnB;AACH;;AACD,gBAAI,KAAK7H,iBAAL,KAA2BL,SAA/B,EAA0C;AACtC,kBAAMI,KAAI,GAAG,oEAAW,IAAX,CAAb;;AACA,mBAAKC,iBAAL,GAAyB,4DAAO8H,GAAP,CAAW,mBAAX,EAAgC,4DAAOA,GAAP,CAAW,SAAX,EAAsB/H,KAAI,KAAK,KAAT,GAAiB,OAAjB,GAA2B,UAAjD,CAAhC,CAAzB;AACH;AACJ;AAdiB;AAAA;AAAA,mCAeT;AACL,gBAAM6H,WAAW,GAAG,KAAKA,WAAzB;AACA,gBAAMG,UAAU,GAAGH,WAAW,IAAI,IAAf,IAAuB,+DAASA,WAAT,MAA0BjI,SAApE;AACA,gBAAMI,IAAI,GAAG,oEAAW,IAAX,CAAb;AACA,mBAAQ,6DAAE,oDAAF,EAAQ;AAAE,uBAAOA;AAAT,aAAR,EAAyB,6DAAE,KAAF,EAAS;AAAE,uBAAO;AAAT,aAAT,EAAyC,KAAK6H,WAAL,IAAoBG,UAApB,IACtE,6DAAE,KAAF,EAAS;AAAE,uBAAO;AAAT,aAAT,EAA8C,6DAAE,KAAF,EAAS;AAAE,uBAAO;AAAT,aAAT,EAA+C,6DAAE,aAAF,EAAiB;AAAEC,kBAAI,EAAE,KAAKJ,WAAb;AAA0BK,oBAAM,EAAE;AAAlC,aAAjB,CAA/C,EAA2GlI,IAAI,KAAK,IAAT,IAAiB,KAAK6H,WAAL,KAAqB,UAAtC,IACrJ,6DAAE,KAAF,EAAS;AAAE,uBAAO;AAAT,aAAT,EAAuC,6DAAE,UAAF,EAAc;AAAEI,kBAAI,EAAE;AAAR,aAAd,CAAvC,CAD0C,CAA9C,CAD6B,EAE8D,KAAKJ,WAAL,IAAoB,CAACG,UAArB,IAC3F,6DAAE,KAAF,EAAS;AAAE,uBAAO;AAAT,aAAT,EAA8C,6DAAE,UAAF,EAAc;AAAEG,kBAAI,EAAE,KAAKN,WAAb;AAA0BO,kBAAI,EAAE;AAAhC,aAAd,CAA9C,CAH6B,EAG0E,KAAKC,WAAL,IACvG,6DAAE,KAAF,EAAS;AAAE,uBAAO,wBAAT;AAAmCC,uBAAS,EAAE,6DAAkB,KAAKD,WAAvB;AAA9C,aAAT,CAJ6B,CAAzB,EAI4F,6DAAE,KAAF,EAAS;AAAE,uBAAO;AAAT,aAAT,EAA4C,KAAKpI,iBAAL,IAC5I,6DAAE,KAAF,EAAS;AAAE,uBAAO;AAAT,aAAT,EAAiD,6DAAE,aAAF,EAAiB;AAAEgI,kBAAI,EAAE,KAAKhI;AAAb,aAAjB,CAAjD,CADgG,EACM,KAAKsI,cAAL,IACtG,6DAAE,KAAF,EAAS;AAAE,uBAAO,2BAAT;AAAsCD,uBAAS,EAAE,6DAAkB,KAAKC,cAAvB;AAAjD,aAAT,CAFgG,CAJ5F,CAAR;AAOH;AA1BiB;AAAA;AAAA,8BA2BT;AAAE,mBAAO,6DAAW,IAAX,CAAP;AAA0B;AA3BnB;;AAAA;AAAA,SAAtB","file":"26-es5.js","sourcesContent":["import { c as writeTask, r as registerInstance, e as createEvent, f as readTask, h, i as getElement, H as Host } from './index-92848855.js';\nimport { i as isPlatform, b as getIonMode, c as config } from './ionic-global-23e7365a.js';\nimport { c as clamp, g as getElementRoot, r as raf } from './helpers-5c745fbd.js';\nimport { c as createAnimation } from './animation-a635a2fc.js';\nimport { g as getTimeGivenProgression } from './cubic-bezier-685f606a.js';\nimport { s as sanitizeDOMString } from './index-79d74e0b.js';\nimport { d as hapticImpact } from './haptic-7b8ba70a.js';\nimport { S as SPINNERS } from './spinner-configs-c78e170e.js';\n\nconst getRefresherAnimationType = (contentEl) => {\n const previousSibling = contentEl.previousElementSibling;\n const hasHeader = previousSibling !== null && previousSibling.tagName === 'ION-HEADER';\n return hasHeader ? 'translate' : 'scale';\n};\nconst createPullingAnimation = (type, pullingSpinner) => {\n return type === 'scale' ? createScaleAnimation(pullingSpinner) : createTranslateAnimation(pullingSpinner);\n};\nconst createBaseAnimation = (pullingRefresherIcon) => {\n const spinner = pullingRefresherIcon.querySelector('ion-spinner');\n const circle = spinner.shadowRoot.querySelector('circle');\n const spinnerArrowContainer = pullingRefresherIcon.querySelector('.spinner-arrow-container');\n const arrowContainer = pullingRefresherIcon.querySelector('.arrow-container');\n const arrow = (arrowContainer) ? arrowContainer.querySelector('ion-icon') : null;\n const baseAnimation = createAnimation()\n .duration(1000)\n .easing('ease-out');\n const spinnerArrowContainerAnimation = createAnimation()\n .addElement(spinnerArrowContainer)\n .keyframes([\n { offset: 0, opacity: '0.3' },\n { offset: 0.45, opacity: '0.3' },\n { offset: 0.55, opacity: '1' },\n { offset: 1, opacity: '1' }\n ]);\n const circleInnerAnimation = createAnimation()\n .addElement(circle)\n .keyframes([\n { offset: 0, strokeDasharray: '1px, 200px' },\n { offset: 0.20, strokeDasharray: '1px, 200px' },\n { offset: 0.55, strokeDasharray: '100px, 200px' },\n { offset: 1, strokeDasharray: '100px, 200px' }\n ]);\n const circleOuterAnimation = createAnimation()\n .addElement(spinner)\n .keyframes([\n { offset: 0, transform: 'rotate(-90deg)' },\n { offset: 1, transform: 'rotate(210deg)' }\n ]);\n /**\n * Only add arrow animation if present\n * this allows users to customize the spinners\n * without errors being thrown\n */\n if (arrowContainer && arrow) {\n const arrowContainerAnimation = createAnimation()\n .addElement(arrowContainer)\n .keyframes([\n { offset: 0, transform: 'rotate(0deg)' },\n { offset: 0.30, transform: 'rotate(0deg)' },\n { offset: 0.55, transform: 'rotate(280deg)' },\n { offset: 1, transform: 'rotate(400deg)' }\n ]);\n const arrowAnimation = createAnimation()\n .addElement(arrow)\n .keyframes([\n { offset: 0, transform: 'translateX(2px) scale(0)' },\n { offset: 0.30, transform: 'translateX(2px) scale(0)' },\n { offset: 0.55, transform: 'translateX(-1.5px) scale(1)' },\n { offset: 1, transform: 'translateX(-1.5px) scale(1)' }\n ]);\n baseAnimation.addAnimation([arrowContainerAnimation, arrowAnimation]);\n }\n return baseAnimation.addAnimation([spinnerArrowContainerAnimation, circleInnerAnimation, circleOuterAnimation]);\n};\nconst createScaleAnimation = (pullingRefresherIcon) => {\n const height = pullingRefresherIcon.clientHeight;\n const spinnerAnimation = createAnimation()\n .addElement(pullingRefresherIcon)\n .keyframes([\n { offset: 0, transform: `scale(0) translateY(-${height + 20}px)` },\n { offset: 1, transform: 'scale(1) translateY(100px)' }\n ]);\n return createBaseAnimation(pullingRefresherIcon).addAnimation([spinnerAnimation]);\n};\nconst createTranslateAnimation = (pullingRefresherIcon) => {\n const height = pullingRefresherIcon.clientHeight;\n const spinnerAnimation = createAnimation()\n .addElement(pullingRefresherIcon)\n .keyframes([\n { offset: 0, transform: `translateY(-${height + 20}px)` },\n { offset: 1, transform: 'translateY(100px)' }\n ]);\n return createBaseAnimation(pullingRefresherIcon).addAnimation([spinnerAnimation]);\n};\nconst createSnapBackAnimation = (pullingRefresherIcon) => {\n return createAnimation()\n .duration(125)\n .addElement(pullingRefresherIcon)\n .fromTo('transform', 'translateY(var(--ion-pulling-refresher-translate, 100px))', 'translateY(0px)');\n};\n// iOS Native Refresher\n// -----------------------------\nconst setSpinnerOpacity = (spinner, opacity) => {\n spinner.style.setProperty('opacity', opacity.toString());\n};\nconst handleScrollWhilePulling = (spinner, ticks, opacity, currentTickToShow) => {\n writeTask(() => {\n setSpinnerOpacity(spinner, opacity);\n ticks.forEach((el, i) => el.style.setProperty('opacity', (i <= currentTickToShow) ? '0.99' : '0'));\n });\n};\nconst handleScrollWhileRefreshing = (spinner, lastVelocityY) => {\n writeTask(() => {\n // If user pulls down quickly, the spinner should spin faster\n spinner.style.setProperty('--refreshing-rotation-duration', (lastVelocityY >= 1.0) ? '0.5s' : '2s');\n spinner.style.setProperty('opacity', '1');\n });\n};\nconst translateElement = (el, value) => {\n if (!el) {\n return Promise.resolve();\n }\n const trans = transitionEndAsync(el, 200);\n writeTask(() => {\n el.style.setProperty('transition', '0.2s all ease-out');\n if (value === undefined) {\n el.style.removeProperty('transform');\n }\n else {\n el.style.setProperty('transform', `translate3d(0px, ${value}, 0px)`);\n }\n });\n return trans;\n};\n// Utils\n// -----------------------------\nconst shouldUseNativeRefresher = (referenceEl, mode) => {\n const pullingSpinner = referenceEl.querySelector('ion-refresher-content .refresher-pulling ion-spinner');\n const refreshingSpinner = referenceEl.querySelector('ion-refresher-content .refresher-refreshing ion-spinner');\n return (pullingSpinner !== null &&\n refreshingSpinner !== null &&\n ((mode === 'ios' && isPlatform('mobile') && referenceEl.style.webkitOverflowScrolling !== undefined) ||\n mode === 'md'));\n};\nconst transitionEndAsync = (el, expectedDuration = 0) => {\n return new Promise(resolve => {\n transitionEnd(el, expectedDuration, resolve);\n });\n};\nconst transitionEnd = (el, expectedDuration = 0, callback) => {\n let unRegTrans;\n let animationTimeout;\n const opts = { passive: true };\n const ANIMATION_FALLBACK_TIMEOUT = 500;\n const unregister = () => {\n if (unRegTrans) {\n unRegTrans();\n }\n };\n const onTransitionEnd = (ev) => {\n if (ev === undefined || el === ev.target) {\n unregister();\n callback(ev);\n }\n };\n if (el) {\n el.addEventListener('webkitTransitionEnd', onTransitionEnd, opts);\n el.addEventListener('transitionend', onTransitionEnd, opts);\n animationTimeout = setTimeout(onTransitionEnd, expectedDuration + ANIMATION_FALLBACK_TIMEOUT);\n unRegTrans = () => {\n if (animationTimeout) {\n clearTimeout(animationTimeout);\n animationTimeout = undefined;\n }\n el.removeEventListener('webkitTransitionEnd', onTransitionEnd, opts);\n el.removeEventListener('transitionend', onTransitionEnd, opts);\n };\n }\n return unregister;\n};\n\nconst refresherIosCss = \"ion-refresher{left:0;top:0;display:none;position:absolute;width:100%;height:60px;pointer-events:none;z-index:-1}[dir=rtl] ion-refresher,:host-context([dir=rtl]) ion-refresher{left:unset;right:unset;right:0}ion-refresher.refresher-active{display:block}ion-refresher-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.refresher-pulling,.refresher-refreshing{display:none;width:100%}.refresher-pulling-icon,.refresher-refreshing-icon{-webkit-transform-origin:center;transform-origin:center;-webkit-transition:200ms;transition:200ms;font-size:30px;text-align:center}[dir=rtl] .refresher-pulling-icon,:host-context([dir=rtl]) .refresher-pulling-icon,[dir=rtl] .refresher-refreshing-icon,:host-context([dir=rtl]) .refresher-refreshing-icon{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}.refresher-pulling-text,.refresher-refreshing-text{font-size:16px;text-align:center}ion-refresher-content .arrow-container{display:none}.refresher-pulling ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.refresher-refreshing ion-refresher-content .refresher-refreshing{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-completing ion-refresher-content .refresher-refreshing{display:block}.refresher-completing ion-refresher-content .refresher-refreshing-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-native .refresher-pulling-text,.refresher-native .refresher-refreshing-text{display:none}.refresher-ios .refresher-pulling-icon,.refresher-ios .refresher-refreshing-icon{color:var(--ion-text-color, #000)}.refresher-ios .refresher-pulling-text,.refresher-ios .refresher-refreshing-text{color:var(--ion-text-color, #000)}.refresher-ios .refresher-refreshing .spinner-lines-ios line,.refresher-ios .refresher-refreshing .spinner-lines-small-ios line,.refresher-ios .refresher-refreshing .spinner-crescent circle{stroke:var(--ion-text-color, #000)}.refresher-ios .refresher-refreshing .spinner-bubbles circle,.refresher-ios .refresher-refreshing .spinner-circles circle,.refresher-ios .refresher-refreshing .spinner-dots circle{fill:var(--ion-text-color, #000)}ion-refresher.refresher-native{display:block;z-index:1}ion-refresher.refresher-native ion-spinner{margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){ion-refresher.refresher-native ion-spinner{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}.refresher-native .refresher-refreshing ion-spinner{--refreshing-rotation-duration:2s;display:none;-webkit-animation:var(--refreshing-rotation-duration) ease-out refresher-rotate forwards;animation:var(--refreshing-rotation-duration) ease-out refresher-rotate forwards}.refresher-native .refresher-refreshing{display:none;-webkit-animation:250ms linear refresher-pop forwards;animation:250ms linear refresher-pop forwards}.refresher-native.refresher-refreshing .refresher-pulling ion-spinner,.refresher-native.refresher-completing .refresher-pulling ion-spinner{display:none}.refresher-native.refresher-refreshing .refresher-refreshing ion-spinner,.refresher-native.refresher-completing .refresher-refreshing ion-spinner{display:block}.refresher-native.refresher-pulling .refresher-pulling ion-spinner{display:block}.refresher-native.refresher-pulling .refresher-refreshing ion-spinner{display:none}@-webkit-keyframes refresher-pop{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}50%{-webkit-transform:scale(1.2);transform:scale(1.2);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes refresher-pop{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}50%{-webkit-transform:scale(1.2);transform:scale(1.2);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes refresher-rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}@keyframes refresher-rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}\";\n\nconst refresherMdCss = \"ion-refresher{left:0;top:0;display:none;position:absolute;width:100%;height:60px;pointer-events:none;z-index:-1}[dir=rtl] ion-refresher,:host-context([dir=rtl]) ion-refresher{left:unset;right:unset;right:0}ion-refresher.refresher-active{display:block}ion-refresher-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.refresher-pulling,.refresher-refreshing{display:none;width:100%}.refresher-pulling-icon,.refresher-refreshing-icon{-webkit-transform-origin:center;transform-origin:center;-webkit-transition:200ms;transition:200ms;font-size:30px;text-align:center}[dir=rtl] .refresher-pulling-icon,:host-context([dir=rtl]) .refresher-pulling-icon,[dir=rtl] .refresher-refreshing-icon,:host-context([dir=rtl]) .refresher-refreshing-icon{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}.refresher-pulling-text,.refresher-refreshing-text{font-size:16px;text-align:center}ion-refresher-content .arrow-container{display:none}.refresher-pulling ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.refresher-refreshing ion-refresher-content .refresher-refreshing{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-completing ion-refresher-content .refresher-refreshing{display:block}.refresher-completing ion-refresher-content .refresher-refreshing-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-native .refresher-pulling-text,.refresher-native .refresher-refreshing-text{display:none}.refresher-md .refresher-pulling-icon,.refresher-md .refresher-refreshing-icon{color:var(--ion-text-color, #000)}.refresher-md .refresher-pulling-text,.refresher-md .refresher-refreshing-text{color:var(--ion-text-color, #000)}.refresher-md .refresher-refreshing .spinner-lines-md line,.refresher-md .refresher-refreshing .spinner-lines-small-md line,.refresher-md .refresher-refreshing .spinner-crescent circle{stroke:var(--ion-text-color, #000)}.refresher-md .refresher-refreshing .spinner-bubbles circle,.refresher-md .refresher-refreshing .spinner-circles circle,.refresher-md .refresher-refreshing .spinner-dots circle{fill:var(--ion-text-color, #000)}ion-refresher.refresher-native{display:block;z-index:1}ion-refresher.refresher-native ion-spinner{margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;width:24px;height:24px;color:var(--ion-color-primary, #3880ff)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){ion-refresher.refresher-native ion-spinner{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}ion-refresher.refresher-native .spinner-arrow-container{display:inherit}ion-refresher.refresher-native .arrow-container{display:block;position:absolute;width:24px;height:24px}ion-refresher.refresher-native .arrow-container ion-icon{margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;left:0;right:0;bottom:-4px;position:absolute;color:var(--ion-color-primary, #3880ff);font-size:12px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){ion-refresher.refresher-native .arrow-container ion-icon{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}ion-refresher.refresher-native.refresher-pulling ion-refresher-content .refresher-pulling,ion-refresher.refresher-native.refresher-ready ion-refresher-content .refresher-pulling{display:-ms-flexbox;display:flex}ion-refresher.refresher-native.refresher-refreshing ion-refresher-content .refresher-refreshing,ion-refresher.refresher-native.refresher-completing ion-refresher-content .refresher-refreshing,ion-refresher.refresher-native.refresher-cancelling ion-refresher-content .refresher-refreshing{display:-ms-flexbox;display:flex}ion-refresher.refresher-native .refresher-pulling-icon{-webkit-transform:translateY(calc(-100% - 10px));transform:translateY(calc(-100% - 10px))}ion-refresher.refresher-native .refresher-pulling-icon,ion-refresher.refresher-native .refresher-refreshing-icon{margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;border-radius:100%;padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;display:-ms-flexbox;display:flex;border:1px solid #ececec;background:white;-webkit-box-shadow:0px 1px 6px rgba(0, 0, 0, 0.1);box-shadow:0px 1px 6px rgba(0, 0, 0, 0.1)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){ion-refresher.refresher-native .refresher-pulling-icon,ion-refresher.refresher-native .refresher-refreshing-icon{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){ion-refresher.refresher-native .refresher-pulling-icon,ion-refresher.refresher-native .refresher-refreshing-icon{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}\";\n\nconst Refresher = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.ionRefresh = createEvent(this, \"ionRefresh\", 7);\n this.ionPull = createEvent(this, \"ionPull\", 7);\n this.ionStart = createEvent(this, \"ionStart\", 7);\n this.appliedStyles = false;\n this.didStart = false;\n this.progress = 0;\n this.pointerDown = false;\n this.needsCompletion = false;\n this.didRefresh = false;\n this.lastVelocityY = 0;\n this.animations = [];\n this.nativeRefresher = false;\n /**\n * The current state which the refresher is in. The refresher's states include:\n *\n * - `inactive` - The refresher is not being pulled down or refreshing and is currently hidden.\n * - `pulling` - The user is actively pulling down the refresher, but has not reached the point yet that if the user lets go, it'll refresh.\n * - `cancelling` - The user pulled down the refresher and let go, but did not pull down far enough to kick off the `refreshing` state. After letting go, the refresher is in the `cancelling` state while it is closing, and will go back to the `inactive` state once closed.\n * - `ready` - The user has pulled down the refresher far enough that if they let go, it'll begin the `refreshing` state.\n * - `refreshing` - The refresher is actively waiting on the async operation to end. Once the refresh handler calls `complete()` it will begin the `completing` state.\n * - `completing` - The `refreshing` state has finished and the refresher is in the way of closing itself. Once closed, the refresher will go back to the `inactive` state.\n */\n this.state = 1 /* Inactive */;\n /**\n * The minimum distance the user must pull down until the\n * refresher will go into the `refreshing` state.\n * Does not apply when the refresher content uses a spinner,\n * enabling the native refresher.\n */\n this.pullMin = 60;\n /**\n * The maximum distance of the pull until the refresher\n * will automatically go into the `refreshing` state.\n * Defaults to the result of `pullMin + 60`.\n * Does not apply when the refresher content uses a spinner,\n * enabling the native refresher.\n */\n this.pullMax = this.pullMin + 60;\n /**\n * Time it takes to close the refresher.\n * Does not apply when the refresher content uses a spinner,\n * enabling the native refresher.\n */\n this.closeDuration = '280ms';\n /**\n * Time it takes the refresher to to snap back to the `refreshing` state.\n * Does not apply when the refresher content uses a spinner,\n * enabling the native refresher.\n */\n this.snapbackDuration = '280ms';\n /**\n * How much to multiply the pull speed by. To slow the pull animation down,\n * pass a number less than `1`. To speed up the pull, pass a number greater\n * than `1`. The default value is `1` which is equal to the speed of the cursor.\n * If a negative value is passed in, the factor will be `1` instead.\n *\n * For example: If the value passed is `1.2` and the content is dragged by\n * `10` pixels, instead of `10` pixels the content will be pulled by `12` pixels\n * (an increase of 20 percent). If the value passed is `0.8`, the dragged amount\n * will be `8` pixels, less than the amount the cursor has moved.\n *\n * Does not apply when the refresher content uses a spinner,\n * enabling the native refresher.\n */\n this.pullFactor = 1;\n /**\n * If `true`, the refresher will be hidden.\n */\n this.disabled = false;\n }\n disabledChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n }\n checkNativeRefresher() {\n const useNativeRefresher = shouldUseNativeRefresher(this.el, getIonMode(this));\n if (useNativeRefresher && !this.nativeRefresher) {\n const contentEl = this.el.closest('ion-content');\n this.setupNativeRefresher(contentEl);\n }\n else if (!useNativeRefresher) {\n this.destroyNativeRefresher();\n }\n }\n destroyNativeRefresher() {\n if (this.scrollEl && this.scrollListenerCallback) {\n this.scrollEl.removeEventListener('scroll', this.scrollListenerCallback);\n this.scrollListenerCallback = undefined;\n }\n this.nativeRefresher = false;\n }\n async resetNativeRefresher(el, state) {\n this.state = state;\n if (getIonMode(this) === 'ios') {\n await translateElement(el, undefined);\n }\n else {\n await transitionEndAsync(this.el.querySelector('.refresher-refreshing-icon'), 200);\n }\n this.didRefresh = false;\n this.needsCompletion = false;\n this.pointerDown = false;\n this.animations.forEach(ani => ani.destroy());\n this.animations = [];\n this.progress = 0;\n this.state = 1 /* Inactive */;\n }\n async setupiOSNativeRefresher(pullingSpinner, refreshingSpinner) {\n this.elementToTransform = this.scrollEl;\n const ticks = pullingSpinner.shadowRoot.querySelectorAll('svg');\n const MAX_PULL = this.scrollEl.clientHeight * 0.16;\n const NUM_TICKS = ticks.length;\n writeTask(() => ticks.forEach(el => el.style.setProperty('animation', 'none')));\n this.scrollListenerCallback = () => {\n // If pointer is not on screen or refresher is not active, ignore scroll\n if (!this.pointerDown && this.state === 1 /* Inactive */) {\n return;\n }\n readTask(() => {\n // PTR should only be active when overflow scrolling at the top\n const scrollTop = this.scrollEl.scrollTop;\n const refresherHeight = this.el.clientHeight;\n if (scrollTop > 0) {\n /**\n * If refresher is refreshing and user tries to scroll\n * progressively fade refresher out/in\n */\n if (this.state === 8 /* Refreshing */) {\n const ratio = clamp(0, scrollTop / (refresherHeight * 0.5), 1);\n writeTask(() => setSpinnerOpacity(refreshingSpinner, 1 - ratio));\n return;\n }\n writeTask(() => setSpinnerOpacity(pullingSpinner, 0));\n return;\n }\n if (this.pointerDown) {\n if (!this.didStart) {\n this.didStart = true;\n this.ionStart.emit();\n }\n // emit \"pulling\" on every move\n if (this.pointerDown) {\n this.ionPull.emit();\n }\n }\n // delay showing the next tick marks until user has pulled 30px\n const opacity = clamp(0, Math.abs(scrollTop) / refresherHeight, 0.99);\n const pullAmount = this.progress = clamp(0, (Math.abs(scrollTop) - 30) / MAX_PULL, 1);\n const currentTickToShow = clamp(0, Math.floor(pullAmount * NUM_TICKS), NUM_TICKS - 1);\n const shouldShowRefreshingSpinner = this.state === 8 /* Refreshing */ || currentTickToShow === NUM_TICKS - 1;\n if (shouldShowRefreshingSpinner) {\n if (this.pointerDown) {\n handleScrollWhileRefreshing(refreshingSpinner, this.lastVelocityY);\n }\n if (!this.didRefresh) {\n this.beginRefresh();\n this.didRefresh = true;\n hapticImpact({ style: 'light' });\n /**\n * Translate the content element otherwise when pointer is removed\n * from screen the scroll content will bounce back over the refresher\n */\n if (!this.pointerDown) {\n translateElement(this.elementToTransform, `${refresherHeight}px`);\n }\n }\n }\n else {\n this.state = 2 /* Pulling */;\n handleScrollWhilePulling(pullingSpinner, ticks, opacity, currentTickToShow);\n }\n });\n };\n this.scrollEl.addEventListener('scroll', this.scrollListenerCallback);\n this.gesture = (await import('./index-eea61379.js')).createGesture({\n el: this.scrollEl,\n gestureName: 'refresher',\n gesturePriority: 10,\n direction: 'y',\n threshold: 5,\n onStart: () => {\n this.pointerDown = true;\n if (!this.didRefresh) {\n translateElement(this.elementToTransform, '0px');\n }\n },\n onMove: ev => {\n this.lastVelocityY = ev.velocityY;\n },\n onEnd: () => {\n this.pointerDown = false;\n this.didStart = false;\n if (this.needsCompletion) {\n this.resetNativeRefresher(this.elementToTransform, 32 /* Completing */);\n this.needsCompletion = false;\n }\n else if (this.didRefresh) {\n readTask(() => translateElement(this.elementToTransform, `${this.el.clientHeight}px`));\n }\n },\n });\n this.disabledChanged();\n }\n async setupMDNativeRefresher(contentEl, pullingSpinner, refreshingSpinner) {\n const circle = getElementRoot(pullingSpinner).querySelector('circle');\n const pullingRefresherIcon = this.el.querySelector('ion-refresher-content .refresher-pulling-icon');\n const refreshingCircle = getElementRoot(refreshingSpinner).querySelector('circle');\n if (circle !== null && refreshingCircle !== null) {\n writeTask(() => {\n circle.style.setProperty('animation', 'none');\n // This lines up the animation on the refreshing spinner with the pulling spinner\n refreshingSpinner.style.setProperty('animation-delay', '-655ms');\n refreshingCircle.style.setProperty('animation-delay', '-655ms');\n });\n }\n this.gesture = (await import('./index-eea61379.js')).createGesture({\n el: this.scrollEl,\n gestureName: 'refresher',\n gesturePriority: 10,\n direction: 'y',\n threshold: 5,\n canStart: () => this.state !== 8 /* Refreshing */ && this.state !== 32 /* Completing */ && this.scrollEl.scrollTop === 0,\n onStart: (ev) => {\n ev.data = { animation: undefined, didStart: false, cancelled: false };\n },\n onMove: (ev) => {\n if ((ev.velocityY < 0 && this.progress === 0 && !ev.data.didStart) || ev.data.cancelled) {\n ev.data.cancelled = true;\n return;\n }\n if (!ev.data.didStart) {\n ev.data.didStart = true;\n this.state = 2 /* Pulling */;\n writeTask(() => {\n const animationType = getRefresherAnimationType(contentEl);\n const animation = createPullingAnimation(animationType, pullingRefresherIcon);\n ev.data.animation = animation;\n this.scrollEl.style.setProperty('--overflow', 'hidden');\n animation.progressStart(false, 0);\n this.ionStart.emit();\n this.animations.push(animation);\n });\n return;\n }\n // Since we are using an easing curve, slow the gesture tracking down a bit\n this.progress = clamp(0, (ev.deltaY / 180) * 0.5, 1);\n ev.data.animation.progressStep(this.progress);\n this.ionPull.emit();\n },\n onEnd: (ev) => {\n if (!ev.data.didStart) {\n return;\n }\n writeTask(() => this.scrollEl.style.removeProperty('--overflow'));\n if (this.progress <= 0.4) {\n this.gesture.enable(false);\n ev.data.animation\n .progressEnd(0, this.progress, 500)\n .onFinish(() => {\n this.animations.forEach(ani => ani.destroy());\n this.animations = [];\n this.gesture.enable(true);\n this.state = 1 /* Inactive */;\n });\n return;\n }\n const progress = getTimeGivenProgression([0, 0], [0, 0], [1, 1], [1, 1], this.progress)[0];\n const snapBackAnimation = createSnapBackAnimation(pullingRefresherIcon);\n this.animations.push(snapBackAnimation);\n writeTask(async () => {\n pullingRefresherIcon.style.setProperty('--ion-pulling-refresher-translate', `${(progress * 100)}px`);\n ev.data.animation.progressEnd();\n await snapBackAnimation.play();\n this.beginRefresh();\n ev.data.animation.destroy();\n });\n }\n });\n this.disabledChanged();\n }\n async setupNativeRefresher(contentEl) {\n if (this.scrollListenerCallback || !contentEl || this.nativeRefresher || !this.scrollEl) {\n return;\n }\n this.nativeRefresher = true;\n const pullingSpinner = this.el.querySelector('ion-refresher-content .refresher-pulling ion-spinner');\n const refreshingSpinner = this.el.querySelector('ion-refresher-content .refresher-refreshing ion-spinner');\n await contentEl.componentOnReady();\n if (getIonMode(this) === 'ios') {\n this.setupiOSNativeRefresher(pullingSpinner, refreshingSpinner);\n }\n else {\n this.setupMDNativeRefresher(contentEl, pullingSpinner, refreshingSpinner);\n }\n }\n componentDidUpdate() {\n this.checkNativeRefresher();\n }\n async connectedCallback() {\n if (this.el.getAttribute('slot') !== 'fixed') {\n console.error('Make sure you use: <ion-refresher slot=\"fixed\">');\n return;\n }\n const contentEl = this.el.closest('ion-content');\n if (!contentEl) {\n console.error('<ion-refresher> must be used inside an <ion-content>');\n return;\n }\n this.scrollEl = await contentEl.getScrollElement();\n this.backgroundContentEl = getElementRoot(contentEl).querySelector('#background-content');\n if (shouldUseNativeRefresher(this.el, getIonMode(this))) {\n this.setupNativeRefresher(contentEl);\n }\n else {\n this.gesture = (await import('./index-eea61379.js')).createGesture({\n el: contentEl,\n gestureName: 'refresher',\n gesturePriority: 10,\n direction: 'y',\n threshold: 20,\n passive: false,\n canStart: () => this.canStart(),\n onStart: () => this.onStart(),\n onMove: ev => this.onMove(ev),\n onEnd: () => this.onEnd(),\n });\n this.disabledChanged();\n }\n }\n disconnectedCallback() {\n this.destroyNativeRefresher();\n this.scrollEl = undefined;\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n /**\n * Call `complete()` when your async operation has completed.\n * For example, the `refreshing` state is while the app is performing\n * an asynchronous operation, such as receiving more data from an\n * AJAX request. Once the data has been received, you then call this\n * method to signify that the refreshing has completed and to close\n * the refresher. This method also changes the refresher's state from\n * `refreshing` to `completing`.\n */\n async complete() {\n if (this.nativeRefresher) {\n this.needsCompletion = true;\n // Do not reset scroll el until user removes pointer from screen\n if (!this.pointerDown) {\n raf(() => raf(() => this.resetNativeRefresher(this.elementToTransform, 32 /* Completing */)));\n }\n }\n else {\n this.close(32 /* Completing */, '120ms');\n }\n }\n /**\n * Changes the refresher's state from `refreshing` to `cancelling`.\n */\n async cancel() {\n if (this.nativeRefresher) {\n // Do not reset scroll el until user removes pointer from screen\n if (!this.pointerDown) {\n raf(() => raf(() => this.resetNativeRefresher(this.elementToTransform, 16 /* Cancelling */)));\n }\n }\n else {\n this.close(16 /* Cancelling */, '');\n }\n }\n /**\n * A number representing how far down the user has pulled.\n * The number `0` represents the user hasn't pulled down at all. The\n * number `1`, and anything greater than `1`, represents that the user\n * has pulled far enough down that when they let go then the refresh will\n * happen. If they let go and the number is less than `1`, then the\n * refresh will not happen, and the content will return to it's original\n * position.\n */\n getProgress() {\n return Promise.resolve(this.progress);\n }\n canStart() {\n if (!this.scrollEl) {\n return false;\n }\n if (this.state !== 1 /* Inactive */) {\n return false;\n }\n // if the scrollTop is greater than zero then it's\n // not possible to pull the content down yet\n if (this.scrollEl.scrollTop > 0) {\n return false;\n }\n return true;\n }\n onStart() {\n this.progress = 0;\n this.state = 1 /* Inactive */;\n }\n onMove(detail) {\n if (!this.scrollEl) {\n return;\n }\n // this method can get called like a bazillion times per second,\n // so it's built to be as efficient as possible, and does its\n // best to do any DOM read/writes only when absolutely necessary\n // if multi-touch then get out immediately\n const ev = detail.event;\n if (ev.touches && ev.touches.length > 1) {\n return;\n }\n // do nothing if it's actively refreshing\n // or it's in the way of closing\n // or this was never a startY\n if ((this.state & 56 /* _BUSY_ */) !== 0) {\n return;\n }\n const pullFactor = (Number.isNaN(this.pullFactor) || this.pullFactor < 0) ? 1 : this.pullFactor;\n const deltaY = detail.deltaY * pullFactor;\n // don't bother if they're scrolling up\n // and have not already started dragging\n if (deltaY <= 0) {\n // the current Y is higher than the starting Y\n // so they scrolled up enough to be ignored\n this.progress = 0;\n this.state = 1 /* Inactive */;\n if (this.appliedStyles) {\n // reset the styles only if they were applied\n this.setCss(0, '', false, '');\n return;\n }\n return;\n }\n if (this.state === 1 /* Inactive */) {\n // this refresh is not already actively pulling down\n // get the content's scrollTop\n const scrollHostScrollTop = this.scrollEl.scrollTop;\n // if the scrollTop is greater than zero then it's\n // not possible to pull the content down yet\n if (scrollHostScrollTop > 0) {\n this.progress = 0;\n return;\n }\n // content scrolled all the way to the top, and dragging down\n this.state = 2 /* Pulling */;\n }\n // prevent native scroll events\n if (ev.cancelable) {\n ev.preventDefault();\n }\n // the refresher is actively pulling at this point\n // move the scroll element within the content element\n this.setCss(deltaY, '0ms', true, '');\n if (deltaY === 0) {\n // don't continue if there's no delta yet\n this.progress = 0;\n return;\n }\n const pullMin = this.pullMin;\n // set pull progress\n this.progress = deltaY / pullMin;\n // emit \"start\" if it hasn't started yet\n if (!this.didStart) {\n this.didStart = true;\n this.ionStart.emit();\n }\n // emit \"pulling\" on every move\n this.ionPull.emit();\n // do nothing if the delta is less than the pull threshold\n if (deltaY < pullMin) {\n // ensure it stays in the pulling state, cuz its not ready yet\n this.state = 2 /* Pulling */;\n return;\n }\n if (deltaY > this.pullMax) {\n // they pulled farther than the max, so kick off the refresh\n this.beginRefresh();\n return;\n }\n // pulled farther than the pull min!!\n // it is now in the `ready` state!!\n // if they let go then it'll refresh, kerpow!!\n this.state = 4 /* Ready */;\n return;\n }\n onEnd() {\n // only run in a zone when absolutely necessary\n if (this.state === 4 /* Ready */) {\n // they pulled down far enough, so it's ready to refresh\n this.beginRefresh();\n }\n else if (this.state === 2 /* Pulling */) {\n // they were pulling down, but didn't pull down far enough\n // set the content back to it's original location\n // and close the refresher\n // set that the refresh is actively cancelling\n this.cancel();\n }\n }\n beginRefresh() {\n // assumes we're already back in a zone\n // they pulled down far enough, so it's ready to refresh\n this.state = 8 /* Refreshing */;\n // place the content in a hangout position while it thinks\n this.setCss(this.pullMin, this.snapbackDuration, true, '');\n // emit \"refresh\" because it was pulled down far enough\n // and they let go to begin refreshing\n this.ionRefresh.emit({\n complete: this.complete.bind(this)\n });\n }\n close(state, delay) {\n // create fallback timer incase something goes wrong with transitionEnd event\n setTimeout(() => {\n this.state = 1 /* Inactive */;\n this.progress = 0;\n this.didStart = false;\n this.setCss(0, '0ms', false, '');\n }, 600);\n // reset set the styles on the scroll element\n // set that the refresh is actively cancelling/completing\n this.state = state;\n this.setCss(0, this.closeDuration, true, delay);\n // TODO: stop gesture\n }\n setCss(y, duration, overflowVisible, delay) {\n if (this.nativeRefresher) {\n return;\n }\n this.appliedStyles = (y > 0);\n writeTask(() => {\n if (this.scrollEl && this.backgroundContentEl) {\n const scrollStyle = this.scrollEl.style;\n const backgroundStyle = this.backgroundContentEl.style;\n scrollStyle.transform = backgroundStyle.transform = ((y > 0) ? `translateY(${y}px) translateZ(0px)` : '');\n scrollStyle.transitionDuration = backgroundStyle.transitionDuration = duration;\n scrollStyle.transitionDelay = backgroundStyle.transitionDelay = delay;\n scrollStyle.overflow = (overflowVisible ? 'hidden' : '');\n }\n });\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { slot: \"fixed\", class: {\n [mode]: true,\n // Used internally for styling\n [`refresher-${mode}`]: true,\n 'refresher-native': this.nativeRefresher,\n 'refresher-active': this.state !== 1 /* Inactive */,\n 'refresher-pulling': this.state === 2 /* Pulling */,\n 'refresher-ready': this.state === 4 /* Ready */,\n 'refresher-refreshing': this.state === 8 /* Refreshing */,\n 'refresher-cancelling': this.state === 16 /* Cancelling */,\n 'refresher-completing': this.state === 32 /* Completing */,\n } }));\n }\n get el() { return getElement(this); }\n static get watchers() { return {\n \"disabled\": [\"disabledChanged\"]\n }; }\n};\nRefresher.style = {\n ios: refresherIosCss,\n md: refresherMdCss\n};\n\nconst RefresherContent = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n }\n componentWillLoad() {\n if (this.pullingIcon === undefined) {\n const mode = getIonMode(this);\n const overflowRefresher = this.el.style.webkitOverflowScrolling !== undefined ? 'lines' : 'arrow-down';\n this.pullingIcon = config.get('refreshingIcon', mode === 'ios' && isPlatform('mobile') ? config.get('spinner', overflowRefresher) : 'circular');\n }\n if (this.refreshingSpinner === undefined) {\n const mode = getIonMode(this);\n this.refreshingSpinner = config.get('refreshingSpinner', config.get('spinner', mode === 'ios' ? 'lines' : 'circular'));\n }\n }\n render() {\n const pullingIcon = this.pullingIcon;\n const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;\n const mode = getIonMode(this);\n return (h(Host, { class: mode }, h(\"div\", { class: \"refresher-pulling\" }, this.pullingIcon && hasSpinner &&\n h(\"div\", { class: \"refresher-pulling-icon\" }, h(\"div\", { class: \"spinner-arrow-container\" }, h(\"ion-spinner\", { name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' &&\n h(\"div\", { class: \"arrow-container\" }, h(\"ion-icon\", { name: \"caret-back-sharp\" })))), this.pullingIcon && !hasSpinner &&\n h(\"div\", { class: \"refresher-pulling-icon\" }, h(\"ion-icon\", { icon: this.pullingIcon, lazy: false })), this.pullingText &&\n h(\"div\", { class: \"refresher-pulling-text\", innerHTML: sanitizeDOMString(this.pullingText) })), h(\"div\", { class: \"refresher-refreshing\" }, this.refreshingSpinner &&\n h(\"div\", { class: \"refresher-refreshing-icon\" }, h(\"ion-spinner\", { name: this.refreshingSpinner })), this.refreshingText &&\n h(\"div\", { class: \"refresher-refreshing-text\", innerHTML: sanitizeDOMString(this.refreshingText) }))));\n }\n get el() { return getElement(this); }\n};\n\nexport { Refresher as ion_refresher, RefresherContent as ion_refresher_content };\n"]}