{"version":3,"sources":["webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/directives/click-outside/index.ts","webpack:///../../../src/directives/touch/index.ts","webpack:///../../../src/directives/resize/index.ts"],"names":["DELAY_RIPPLE","transform","el","value","style","webkitTransform","isTouchEvent","e","constructor","name","isKeyboardEvent","calculate","localX","localY","offset","getBoundingClientRect","target","touches","length","clientX","left","clientY","top","radius","scale","_ripple","circle","clientWidth","center","Math","sqrt","clientHeight","centerX","centerY","x","y","ripples","show","enabled","container","document","createElement","animation","appendChild","className","class","size","width","height","computed","window","getComputedStyle","position","dataset","previousPosition","classList","add","activated","String","performance","now","setTimeout","remove","hide","getElementsByClassName","isHiding","diff","Number","delay","max","parentNode","removeChild","isRippleEnabled","rippleShow","element","currentTarget","touched","rippleStop","isTouch","centered","showTimerCommit","showTimer","rippleHide","clearTimeout","type","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyCode","keyCodes","enter","space","keyboardRippleHide","focusRippleHide","updateRipple","binding","wasEnabled","addEventListener","passive","removeListeners","removeEventListener","directive","node","unbind","update","oldValue","Ripple","bind","inserted","vnode","modifiers","handler","options","observer","IntersectionObserver","entries","_observe","_a","context","_uid","isIntersecting","some","entry","quiet","init","once","Object","observe","unobserve","Intersect","defaultConditional","checkEvent","checkIsActive","root","attachedRoot","ShadowRoot","host","elements","include","push","contains","isActive","closeConditional","_clickOutside","lastMousedownWasOutside","handleShadow","callback","ClickOutside","onClick","onMousedown","app","handleGesture","wrapper","touchstartX","touchendX","touchstartY","touchendY","dirRatio","minDistance","offsetX","offsetY","abs","right","up","down","touchstart","event","touch","changedTouches","start","assign","touchend","end","touchmove","touchmoveX","touchmoveY","move","createHandlers","parent","parentElement","handlers","_touchHandlers","keys","forEach","eventName","Touch","_onResize","Resize"],"mappings":"gHAAA,0BAYA,MAAMA,EAAe,GAErB,SAASC,EAAWC,EAAiBC,GACnCD,EAAGE,MAAMH,UAAYE,EACrBD,EAAGE,MAAMC,gBAAkBF,EAS7B,SAASG,EAAcC,GACrB,MAA8B,eAAvBA,EAAEC,YAAYC,KAGvB,SAASC,EAAiBH,GACxB,MAA8B,kBAAvBA,EAAEC,YAAYC,KAGvB,MAAME,EAAY,CAChBJ,EACAL,EACAC,EAAuB,MAEvB,IAAIS,EAAS,EACTC,EAAS,EAEb,IAAKH,EAAgBH,GAAI,CACvB,MAAMO,EAASZ,EAAGa,wBACZC,EAASV,EAAaC,GAAKA,EAAEU,QAAQV,EAAEU,QAAQC,OAAS,GAAKX,EAEnEK,EAASI,EAAOG,QAAUL,EAAOM,KACjCP,EAASG,EAAOK,QAAUP,EAAOQ,IAGnC,IAAIC,EAAS,EACTC,EAAQ,GACRtB,EAAGuB,SAAWvB,EAAGuB,QAAQC,QAC3BF,EAAQ,IACRD,EAASrB,EAAGyB,YAAc,EAC1BJ,EAASpB,EAAMyB,OAASL,EAASA,EAASM,KAAKC,MAAMlB,EAASW,IAAW,GAAKV,EAASU,IAAW,GAAK,GAEvGA,EAASM,KAAKC,KAAK5B,EAAGyB,aAAe,EAAIzB,EAAG6B,cAAgB,GAAK,EAGnE,MAAMC,GAAc9B,EAAGyB,YAAwB,EAATJ,GAAe,EAArC,KACVU,GAAc/B,EAAG6B,aAAyB,EAATR,GAAe,EAAtC,KAEVW,EAAI/B,EAAMyB,OAASI,EAAapB,EAASW,EAAZ,KAC7BY,EAAIhC,EAAMyB,OAASK,EAAapB,EAASU,EAAZ,KAEnC,MAAO,CAAEA,SAAQC,QAAOU,IAAGC,IAAGH,UAASC,YAGnCG,EAAU,CAEdC,KACE9B,EACAL,EACAC,EAAuB,IAEvB,IAAKD,EAAGuB,UAAYvB,EAAGuB,QAAQa,QAC7B,OAGF,MAAMC,EAAYC,SAASC,cAAc,QACnCC,EAAYF,SAASC,cAAc,QAEzCF,EAAUI,YAAYD,GACtBH,EAAUK,UAAY,sBAElBzC,EAAM0C,QACRN,EAAUK,WAAa,IAAIzC,EAAM0C,OAGnC,MAAM,OAAEtB,EAAF,MAAUC,EAAV,EAAiBU,EAAjB,EAAoBC,EAApB,QAAuBH,EAAvB,QAAgCC,GAAYtB,EAAUJ,EAAGL,EAAIC,GAE7D2C,EAAmB,EAATvB,EAAH,KACbmB,EAAUE,UAAY,sBACtBF,EAAUtC,MAAM2C,MAAQD,EACxBJ,EAAUtC,MAAM4C,OAASF,EAEzB5C,EAAGyC,YAAYJ,GAEf,MAAMU,EAAWC,OAAOC,iBAAiBjD,GACrC+C,GAAkC,WAAtBA,EAASG,WACvBlD,EAAGE,MAAMgD,SAAW,WACpBlD,EAAGmD,QAAQC,iBAAmB,UAGhCZ,EAAUa,UAAUC,IAAI,8BACxBd,EAAUa,UAAUC,IAAI,gCACxBvD,EAAUyC,EAAW,aAAaR,MAAMC,cAAcX,KAASA,KAASA,MACxEkB,EAAUW,QAAQI,UAAYC,OAAOC,YAAYC,OAEjDC,WAAW,KACTnB,EAAUa,UAAUO,OAAO,8BAC3BpB,EAAUa,UAAUC,IAAI,2BACxBvD,EAAUyC,EAAW,aAAaV,MAAYC,sBAC7C,IAGL8B,KAAM7D,GACJ,IAAKA,IAAOA,EAAGuB,UAAYvB,EAAGuB,QAAQa,QAAS,OAE/C,MAAMF,EAAUlC,EAAG8D,uBAAuB,uBAE1C,GAAuB,IAAnB5B,EAAQlB,OAAc,OAC1B,MAAMwB,EAAYN,EAAQA,EAAQlB,OAAS,GAE3C,GAAIwB,EAAUW,QAAQY,SAAU,OAC3BvB,EAAUW,QAAQY,SAAW,OAElC,MAAMC,EAAOP,YAAYC,MAAQO,OAAOzB,EAAUW,QAAQI,WACpDW,EAAQvC,KAAKwC,IAAI,IAAMH,EAAM,GAEnCL,WAAW,KACTnB,EAAUa,UAAUO,OAAO,2BAC3BpB,EAAUa,UAAUC,IAAI,4BAExBK,WAAW,KACT,MAAMzB,EAAUlC,EAAG8D,uBAAuB,uBACnB,IAAnB5B,EAAQlB,QAAgBhB,EAAGmD,QAAQC,mBACrCpD,EAAGE,MAAMgD,SAAWlD,EAAGmD,QAAQC,wBACxBpD,EAAGmD,QAAQC,kBAGpBZ,EAAU4B,YAAcpE,EAAGqE,YAAY7B,EAAU4B,aAChD,MACFF,KAIP,SAASI,EAAiBrE,GACxB,MAAwB,qBAAVA,KAA2BA,EAG3C,SAASsE,EAAYlE,GACnB,MAAMJ,EAAuB,GACvBuE,EAAUnE,EAAEoE,cAElB,GAAKD,GAAYA,EAAQjD,UAAWiD,EAAQjD,QAAQmD,UAAWrE,EAAEsE,WAAjE,CAKA,GAFAtE,EAAEsE,YAAa,EAEXvE,EAAaC,GACfmE,EAAQjD,QAAQmD,SAAU,EAC1BF,EAAQjD,QAAQqD,SAAU,OAM1B,GAAIJ,EAAQjD,QAAQqD,QAAS,OAO/B,GALA3E,EAAMyB,OAAS8C,EAAQjD,QAAQsD,UAAYrE,EAAgBH,GACvDmE,EAAQjD,QAAQoB,QAClB1C,EAAM0C,MAAQ6B,EAAQjD,QAAQoB,OAG5BvC,EAAaC,GAAI,CAEnB,GAAImE,EAAQjD,QAAQuD,gBAAiB,OAErCN,EAAQjD,QAAQuD,gBAAkB,KAChC5C,EAAQC,KAAK9B,EAAGmE,EAASvE,IAE3BuE,EAAQjD,QAAQwD,UAAY/B,OAAOW,WAAW,KACxCa,GAAWA,EAAQjD,SAAWiD,EAAQjD,QAAQuD,kBAChDN,EAAQjD,QAAQuD,kBAChBN,EAAQjD,QAAQuD,gBAAkB,OAEnChF,QAEHoC,EAAQC,KAAK9B,EAAGmE,EAASvE,IAI7B,SAAS+E,EAAY3E,GACnB,MAAMmE,EAAUnE,EAAEoE,cAClB,GAAKD,GAAYA,EAAQjD,QAAzB,CAMA,GAJAyB,OAAOiC,aAAaT,EAAQjD,QAAQwD,WAIrB,aAAX1E,EAAE6E,MAAuBV,EAAQjD,QAAQuD,gBAQ3C,OAPAN,EAAQjD,QAAQuD,kBAChBN,EAAQjD,QAAQuD,gBAAkB,UAGlCN,EAAQjD,QAAQwD,UAAYpB,WAAW,KACrCqB,EAAW3E,MAKf2C,OAAOW,WAAW,KACZa,EAAQjD,UACViD,EAAQjD,QAAQmD,SAAU,KAG9BxC,EAAQ2B,KAAKW,IAGf,SAASW,EAAkB9E,GACzB,MAAMmE,EAAUnE,EAAEoE,cAEbD,GAAYA,EAAQjD,UAErBiD,EAAQjD,QAAQuD,kBAClBN,EAAQjD,QAAQuD,gBAAkB,MAGpC9B,OAAOiC,aAAaT,EAAQjD,QAAQwD,YAGtC,IAAIK,GAAiB,EAErB,SAASC,EAAoBhF,GACtB+E,GAAmB/E,EAAEiF,UAAYC,OAASC,OAASnF,EAAEiF,UAAYC,OAASE,QAC7EL,GAAiB,EACjBb,EAAWlE,IAIf,SAASqF,EAAoBrF,GAC3B+E,GAAiB,EACjBJ,EAAW3E,GAGb,SAASsF,EAAiBtF,IACD,IAAnB+E,IACFA,GAAiB,EACjBJ,EAAW3E,IAIf,SAASuF,EAAc5F,EAAiB6F,EAAyBC,GAC/D,MAAM1D,EAAUkC,EAAgBuB,EAAQ5F,OACnCmC,GACHF,EAAQ2B,KAAK7D,GAEfA,EAAGuB,QAAUvB,EAAGuB,SAAW,GAC3BvB,EAAGuB,QAAQa,QAAUA,EACrB,MAAMnC,EAAQ4F,EAAQ5F,OAAS,GAC3BA,EAAMyB,SACR1B,EAAGuB,QAAQsD,UAAW,GAEpB5E,EAAM0C,QACR3C,EAAGuB,QAAQoB,MAAQkD,EAAQ5F,MAAM0C,OAE/B1C,EAAMuB,SACRxB,EAAGuB,QAAQC,OAASvB,EAAMuB,QAExBY,IAAY0D,GACd9F,EAAG+F,iBAAiB,aAAcxB,EAAY,CAAEyB,SAAS,IACzDhG,EAAG+F,iBAAiB,WAAYf,EAAY,CAAEgB,SAAS,IACvDhG,EAAG+F,iBAAiB,YAAaZ,EAAkB,CAAEa,SAAS,IAC9DhG,EAAG+F,iBAAiB,cAAef,GAEnChF,EAAG+F,iBAAiB,YAAaxB,GACjCvE,EAAG+F,iBAAiB,UAAWf,GAC/BhF,EAAG+F,iBAAiB,aAAcf,GAElChF,EAAG+F,iBAAiB,UAAWV,GAC/BrF,EAAG+F,iBAAiB,QAASL,GAE7B1F,EAAG+F,iBAAiB,OAAQJ,GAG5B3F,EAAG+F,iBAAiB,YAAaf,EAAY,CAAEgB,SAAS,MAC9C5D,GAAW0D,GACrBG,EAAgBjG,GAIpB,SAASiG,EAAiBjG,GACxBA,EAAGkG,oBAAoB,YAAa3B,GACpCvE,EAAGkG,oBAAoB,aAAc3B,GACrCvE,EAAGkG,oBAAoB,WAAYlB,GACnChF,EAAGkG,oBAAoB,YAAaf,GACpCnF,EAAGkG,oBAAoB,cAAelB,GACtChF,EAAGkG,oBAAoB,UAAWlB,GAClChF,EAAGkG,oBAAoB,aAAclB,GACrChF,EAAGkG,oBAAoB,UAAWb,GAClCrF,EAAGkG,oBAAoB,QAASR,GAChC1F,EAAGkG,oBAAoB,YAAalB,GACpChF,EAAGkG,oBAAoB,OAAQP,GAGjC,SAASQ,EAAWnG,EAAiB6F,EAAyBO,GAC5DR,EAAa5F,EAAI6F,GAAS,GAc5B,SAASQ,EAAQrG,UACRA,EAAGuB,QACV0E,EAAgBjG,GAGlB,SAASsG,EAAQtG,EAAiB6F,GAChC,GAAIA,EAAQ5F,QAAU4F,EAAQU,SAC5B,OAGF,MAAMT,EAAaxB,EAAgBuB,EAAQU,UAC3CX,EAAa5F,EAAI6F,EAASC,GAGrB,MAAMU,EAAS,CACpBC,KAAMN,EACNE,SACAC,UAGaE,U,oCCpUf,SAASE,EAAU1G,EAAiB6F,EAAgCc,GAClE,GAAsB,qBAAX3D,UAA4B,yBAA0BA,QAAS,OAE1E,MAAM4D,EAAYf,EAAQe,WAAa,GACjC3G,EAAQ4F,EAAQ5F,OAChB,QAAE4G,EAAF,QAAWC,GAA6B,kBAAV7G,EAChCA,EACA,CAAE4G,QAAS5G,EAAO6G,QAAS,IACzBC,EAAW,IAAIC,qBAAqB,CACxCC,EAAuC,GACvCF,K,MAEA,MAAMG,EAAsB,QAAX,EAAAlH,EAAGkH,gBAAQC,WAAA,EAAAA,EAAGR,EAAMS,QAASC,MAC9C,IAAKH,EAAU,OAEf,MAAMI,EAAiBL,EAAQM,KAAKC,GAASA,EAAMF,iBAKjDT,GACGD,EAAUa,QACXP,EAASQ,MAERd,EAAUe,OACXL,IACAJ,EAASQ,MAGXb,EAAQI,EAASF,EAAUO,GAGzBA,GAAkBV,EAAUe,KAAMtB,EAAOrG,EAAI6F,EAASc,GACrDO,EAASQ,MAAO,GACpBZ,GAEH9G,EAAGkH,SAAWU,OAAO5H,EAAGkH,UACxBlH,EAAGkH,SAAUP,EAAMS,QAASC,MAAQ,CAAEK,MAAM,EAAOX,YAEnDA,EAASc,QAAQ7H,GAGnB,SAASqG,EAAQrG,EAAiB6F,EAAgCc,G,MAChE,MAAMkB,EAAqB,QAAX,EAAA7H,EAAGkH,gBAAQC,WAAA,EAAAA,EAAGR,EAAMS,QAASC,MACxCQ,IAELA,EAAQd,SAASe,UAAU9H,UACpBA,EAAGkH,SAAUP,EAAMS,QAASC,OAG9B,MAAMU,EAAY,CACvBrB,WACAL,UAGa0B,U,4DC1Df,SAASC,IACP,OAAO,EAGT,SAASC,EAAY5H,EAAiBL,EAAiB6F,GAKrD,IAAKxF,IAAmC,IAA9B6H,EAAc7H,EAAGwF,GAAoB,OAAO,EAKtD,MAAMsC,EAAOC,eAAapI,GAC1B,GACwB,qBAAfqI,YACPF,aAAgBE,YAChBF,EAAKG,OAASjI,EAAES,OAChB,OAAO,EAIT,MAAMyH,GAAsC,kBAAlB1C,EAAQ5F,OAAsB4F,EAAQ5F,MAAMuI,SAApD,KAAuE,OASzF,OAPAD,EAASE,KAAKzI,IAONuI,EAAShB,KAAKvH,GAAMA,EAAG0I,SAASrI,EAAES,SAG5C,SAASoH,EAAe7H,EAAiBwF,GACvC,MAAM8C,EAAqC,kBAAlB9C,EAAQ5F,OAAsB4F,EAAQ5F,MAAM2I,kBAAqBZ,EAE1F,OAAOW,EAAStI,GAGlB,SAAS8F,EAAW9F,EAAiBL,EAAiB6F,GACpD,MAAMgB,EAAmC,oBAAlBhB,EAAQ5F,MAAuB4F,EAAQ5F,MAAQ4F,EAAQ5F,MAAO4G,QAErF7G,EAAG6I,cAAeC,yBAA2Bb,EAAW5H,EAAGL,EAAI6F,IAAYlC,WAAW,KACpFuE,EAAc7H,EAAGwF,IAAYgB,GAAWA,EAAQxG,IAC/C,GAGL,SAAS0I,EAAc/I,EAAiBgJ,GACtC,MAAMb,EAAOC,eAAapI,GAE1BgJ,EAAS1G,UAEiB,qBAAf+F,YAA8BF,aAAgBE,YACvDW,EAASb,GAIN,MAAMc,EAAe,CAM1BvC,SAAU1G,EAAiB6F,EAAgCc,GACzD,MAAMuC,EAAW7I,GAAa8F,EAAU9F,EAAmBL,EAAI6F,GACzDsD,EAAe9I,IACnBL,EAAG6I,cAAeC,wBAA0Bb,EAAW5H,EAAmBL,EAAI6F,IAGhFkD,EAAa/I,EAAKoJ,IAChBA,EAAIrD,iBAAiB,QAASmD,GAAS,GACvCE,EAAIrD,iBAAiB,YAAaoD,GAAa,KAG5CnJ,EAAG6I,gBACN7I,EAAG6I,cAAgB,CACjBC,yBAAyB,IAI7B9I,EAAG6I,cAAclC,EAAMS,QAASC,MAAQ,CACtC6B,UACAC,gBAIJ9C,OAAQrG,EAAiB6F,EAAgCc,GAClD3G,EAAG6I,gBAERE,EAAa/I,EAAKoJ,I,MAChB,IAAKA,KAAwB,QAAhB,EAAApJ,EAAG6I,qBAAa1B,WAAA,EAAAA,EAAGR,EAAMS,QAASC,OAAO,OAEtD,MAAM,QAAE6B,EAAF,YAAWC,GAAgBnJ,EAAG6I,cAAclC,EAAMS,QAASC,MAEjE+B,EAAIlD,oBAAoB,QAASgD,GAAS,GAC1CE,EAAIlD,oBAAoB,YAAaiD,GAAa,YAG7CnJ,EAAG6I,cAAclC,EAAMS,QAASC,SAI5B4B,U,kCCrHf,gBAaA,MAAMI,EAAiBC,IACrB,MAAM,YAAEC,EAAF,UAAeC,EAAf,YAA0BC,EAA1B,UAAuCC,GAAcJ,EACrDK,EAAW,GACXC,EAAc,GACpBN,EAAQO,QAAUL,EAAYD,EAC9BD,EAAQQ,QAAUJ,EAAYD,EAE1B9H,KAAKoI,IAAIT,EAAQQ,SAAWH,EAAWhI,KAAKoI,IAAIT,EAAQO,WAC1DP,EAAQpI,MAASsI,EAAYD,EAAcK,GAAgBN,EAAQpI,KAAKoI,GACxEA,EAAQU,OAAUR,EAAYD,EAAcK,GAAgBN,EAAQU,MAAMV,IAGxE3H,KAAKoI,IAAIT,EAAQO,SAAWF,EAAWhI,KAAKoI,IAAIT,EAAQQ,WAC1DR,EAAQW,IAAOP,EAAYD,EAAcG,GAAgBN,EAAQW,GAAGX,GACpEA,EAAQY,MAASR,EAAYD,EAAcG,GAAgBN,EAAQY,KAAKZ,KAI5E,SAASa,EAAYC,EAAmBd,GACtC,MAAMe,EAAQD,EAAME,eAAe,GACnChB,EAAQC,YAAcc,EAAMpJ,QAC5BqI,EAAQG,YAAcY,EAAMlJ,QAE5BmI,EAAQiB,OACNjB,EAAQiB,MAAM3C,OAAO4C,OAAOJ,EAAOd,IAGvC,SAASmB,EAAUL,EAAmBd,GACpC,MAAMe,EAAQD,EAAME,eAAe,GACnChB,EAAQE,UAAYa,EAAMpJ,QAC1BqI,EAAQI,UAAYW,EAAMlJ,QAE1BmI,EAAQoB,KACNpB,EAAQoB,IAAI9C,OAAO4C,OAAOJ,EAAOd,IAEnCD,EAAcC,GAGhB,SAASqB,EAAWP,EAAmBd,GACrC,MAAMe,EAAQD,EAAME,eAAe,GACnChB,EAAQsB,WAAaP,EAAMpJ,QAC3BqI,EAAQuB,WAAaR,EAAMlJ,QAE3BmI,EAAQwB,MAAQxB,EAAQwB,KAAKlD,OAAO4C,OAAOJ,EAAOd,IAGpD,SAASyB,EAAgB9K,GACvB,MAAMqJ,EAAU,CACdC,YAAa,EACbE,YAAa,EACbD,UAAW,EACXE,UAAW,EACXkB,WAAY,EACZC,WAAY,EACZhB,QAAS,EACTC,QAAS,EACT5I,KAAMjB,EAAMiB,KACZ8I,MAAO/J,EAAM+J,MACbC,GAAIhK,EAAMgK,GACVC,KAAMjK,EAAMiK,KACZK,MAAOtK,EAAMsK,MACbO,KAAM7K,EAAM6K,KACZJ,IAAKzK,EAAMyK,KAGb,MAAO,CACLP,WAAa9J,GAAkB8J,EAAW9J,EAAGiJ,GAC7CmB,SAAWpK,GAAkBoK,EAASpK,EAAGiJ,GACzCqB,UAAYtK,GAAkBsK,EAAUtK,EAAGiJ,IAI/C,SAAS5C,EAAU1G,EAAiB6F,EAA8Bc,GAChE,MAAM1G,EAAQ4F,EAAQ5F,MAChBa,EAASb,EAAM+K,OAAShL,EAAGiL,cAAgBjL,EAC3C8G,EAAU7G,EAAM6G,SAAW,CAAEd,SAAS,GAG5C,IAAKlF,EAAQ,OAEb,MAAMoK,EAAWH,EAAelF,EAAQ5F,OACxCa,EAAOqK,eAAiBvD,OAAO9G,EAAOqK,gBACtCrK,EAAOqK,eAAgBxE,EAAMS,QAASC,MAAQ6D,EAE9CE,eAAKF,GAAUG,QAAQC,IACrBxK,EAAOiF,iBAAiBuF,EAAWJ,EAASI,GAA6BxE,KAI7E,SAAST,EAAQrG,EAAiB6F,EAA8Bc,GAC9D,MAAM7F,EAAS+E,EAAQ5F,MAAO+K,OAAShL,EAAGiL,cAAgBjL,EAC1D,IAAKc,IAAWA,EAAOqK,eAAgB,OAEvC,MAAMD,EAAWpK,EAAOqK,eAAexE,EAAMS,QAASC,MACtD+D,eAAKF,GAAUG,QAAQC,IACrBxK,EAAOoF,oBAAoBoF,EAAWJ,EAASI,aAE1CxK,EAAOqK,eAAexE,EAAMS,QAASC,MAGvC,MAAMkE,EAAQ,CACnB7E,WACAL,UAGakF,U,kCC/Gf,SAAS7E,EAAU1G,EAAiB6F,EAA+Bc,GACjE,MAAMqC,EAAWnD,EAAQ5F,MACnB6G,EAAUjB,EAAQiB,SAAW,CAAEd,SAAS,GAE9ChD,OAAO+C,iBAAiB,SAAUiD,EAAUlC,GAE5C9G,EAAGwL,UAAY5D,OAAO5H,EAAGwL,WACzBxL,EAAGwL,UAAW7E,EAAMS,QAASC,MAAQ,CACnC2B,WACAlC,WAGGjB,EAAQe,WAAcf,EAAQe,UAAUa,OAC3CuB,IAIJ,SAAS3C,EAAQrG,EAAiB6F,EAA+Bc,G,MAC/D,KAAiB,QAAZ,EAAA3G,EAAGwL,iBAASrE,WAAA,EAAAA,EAAGR,EAAMS,QAASC,OAAO,OAE1C,MAAM,SAAE2B,EAAF,QAAYlC,GAAY9G,EAAGwL,UAAU7E,EAAMS,QAASC,MAE1DrE,OAAOkD,oBAAoB,SAAU8C,EAAUlC,UAExC9G,EAAGwL,UAAU7E,EAAMS,QAASC,MAG9B,MAAMoE,EAAS,CACpB/E,WACAL,UAGaoF","file":"js/chunk-e9ea816c.f063bfe4.js","sourcesContent":["// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { rippleStop?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e.rippleStop) return\n\n // Don't allow the event to trigger ripples on any other elements\n e.rippleStop = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective, vnode: VNode) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n const _observe = el._observe?.[vnode.context!._uid]\n if (!_observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n _observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n _observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el, binding, vnode)\n else _observe.init = true\n }, options)\n\n el._observe = Object(el._observe)\n el._observe![vnode.context!._uid] = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement, binding: ObserveVNodeDirective, vnode: VNode) {\n const observe = el._observe?.[vnode.context!._uid]\n if (!observe) return\n\n observe.observer.unobserve(el)\n delete el._observe![vnode.context!._uid]\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","import { attachedRoot } from '../../util/dom'\nimport { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: Event) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirective extends VNodeDirective {\n value?: ((e: Event) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (\n typeof ShadowRoot !== 'undefined' &&\n root instanceof ShadowRoot &&\n root.host === e.target\n ) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: PointerEvent, binding: ClickOutsideDirective): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value!.handler\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document)\n\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n inserted (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n const onClick = (e: Event) => directive(e as PointerEvent, el, binding)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as PointerEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: true,\n }\n }\n\n el._clickOutside[vnode.context!._uid] = {\n onClick,\n onMousedown,\n }\n },\n\n unbind (el: HTMLElement, binding: ClickOutsideDirective, vnode: VNode) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside?.[vnode.context!._uid]) return\n\n const { onClick, onMousedown } = el._clickOutside[vnode.context!._uid]!\n\n app.removeEventListener('click', onClick, true)\n app.removeEventListener('mousedown', onMousedown, true)\n })\n\n delete el._clickOutside[vnode.context!._uid]\n },\n}\n\nexport default ClickOutside\n","import { VNodeDirective, VNode } from 'vue/types/vnode'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/types'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\ninterface TouchVNodeDirective extends VNodeDirective {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start &&\n wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end &&\n wrapper.end(Object.assign(event, wrapper))\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction inserted (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const value = binding.value!\n const target = value.parent ? el.parentElement : el\n const options = value.options || { passive: true }\n\n // Needed to pass unit tests\n if (!target) return\n\n const handlers = createHandlers(binding.value!)\n target._touchHandlers = Object(target._touchHandlers)\n target._touchHandlers![vnode.context!._uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName] as EventListener, options)\n })\n}\n\nfunction unbind (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const target = binding.value!.parent ? el.parentElement : el\n if (!target || !target._touchHandlers) return\n\n const handlers = target._touchHandlers[vnode.context!._uid]\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.context!._uid]\n}\n\nexport const Touch = {\n inserted,\n unbind,\n}\n\nexport default Touch\n","import { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ninterface ResizeVNodeDirective extends VNodeDirective {\n value?: () => void\n options?: boolean | AddEventListenerOptions\n}\n\nfunction inserted (el: HTMLElement, binding: ResizeVNodeDirective, vnode: VNode) {\n const callback = binding.value!\n const options = binding.options || { passive: true }\n\n window.addEventListener('resize', callback, options)\n\n el._onResize = Object(el._onResize)\n el._onResize![vnode.context!._uid] = {\n callback,\n options,\n }\n\n if (!binding.modifiers || !binding.modifiers.quiet) {\n callback()\n }\n}\n\nfunction unbind (el: HTMLElement, binding: ResizeVNodeDirective, vnode: VNode) {\n if (!el._onResize?.[vnode.context!._uid]) return\n\n const { callback, options } = el._onResize[vnode.context!._uid]!\n\n window.removeEventListener('resize', callback, options)\n\n delete el._onResize[vnode.context!._uid]\n}\n\nexport const Resize = {\n inserted,\n unbind,\n}\n\nexport default Resize\n"],"sourceRoot":""}