{"mappings":"A,IEAyC,EAAgB,E,E,C,EEErD,EAAiB,SAAU,CAAQ,CAAE,CAAW,EAClD,GAAI,CAAE,CAAA,aAAoB,CAAA,EACxB,MAAM,AAAI,UAAU,oCAExB,EASI,EAAc,WAChB,SAAS,EAAY,CAAO,EAC1B,IAAI,EAAW,UAAU,MAAM,CAAG,GAAK,AAAiB,KAAA,IAAjB,SAAS,CAAC,EAAE,CAAiB,SAAS,CAAC,EAAE,CAAG,CAAC,EAGpF,GAFA,EAAe,IAAI,CAAE,GAEjB,CAAE,CAAA,aAAmB,IAAA,EACvB,KAAM,wCAA0C,EAAU,iBAG5D,CAAA,IAAI,CAAC,KAAK,CAAG,KACb,IAAI,CAAC,MAAM,CAAG,KACd,IAAI,CAAC,WAAW,CAAG,KACnB,IAAI,CAAC,YAAY,CAAG,KACpB,IAAI,CAAC,IAAI,CAAG,KACZ,IAAI,CAAC,GAAG,CAAG,KAGX,IAAI,CAAC,SAAS,CAAG,KACjB,IAAI,CAAC,QAAQ,CAAG,KAChB,IAAI,CAAC,aAAa,CAAG,KACrB,IAAI,CAAC,YAAY,CAAG,KAEpB,IAAI,CAAC,iBAAiB,CAAG,KACzB,IAAI,CAAC,UAAU,CAAG,KAClB,IAAI,CAAC,KAAK,CAAG,KAEb,IAAI,CAAC,UAAU,CAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EACvC,IAAI,CAAC,SAAS,CAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAErC,IAAI,CAAC,OAAO,CAAG,EACf,IAAI,CAAC,QAAQ,CAAG,IAAI,CAAC,cAAc,CAAC,GAEpC,IAAI,CAAC,OAAO,CAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAG,GAAK,EAC5C,IAAI,CAAC,YAAY,CAAG,EAAY,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAC7E,IAAI,CAAC,KAAK,CAAG,EAAY,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAC1D,IAAI,CAAC,cAAc,CAAG,EAAY,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAChF,IAAI,CAAC,iBAAiB,CAAG,EAAY,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EACvF,IAAI,CAAC,SAAS,CAAG,EAAY,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAClE,IAAI,CAAC,gBAAgB,CAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAEtD,IAAI,CAAC,eAAe,CAAG,IAAI,CAAC,kBAAkB,GAE1C,IAAI,CAAC,KAAK,EACZ,IAAI,CAAC,YAAY,GAGf,IAAI,CAAC,iBAAiB,EACxB,IAAI,CAAC,gBAAgB,GAGvB,IAAI,CAAC,iBAAiB,GACtB,IAAI,CAAC,KAAK,GAEgB,CAAA,IAAtB,IAAI,CAAC,YAAY,GACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAG,EACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAG,EAE3B,CA2aA,OAzaA,EAAY,aAAa,CAAG,SAAuB,CAAO,EACxD,MAAO,AAAY,KAAZ,GAAkB,AAAY,CAAA,IAAZ,GAAoB,AAAY,IAAZ,CAC/C,EAQA,EAAY,SAAS,CAAC,kBAAkB,CAAG,WACzC,GAAI,IAAI,CAAC,iBAAiB,CACxB,OAAO,OAAO,QAAQ,CAGxB,GAAI,AAAgD,UAAhD,OAAO,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAe,CAC5D,IAAI,EAAoB,SAAS,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAEnF,GAAI,EACF,OAAO,CAEX,QAEA,AAAI,IAAI,CAAC,QAAQ,CAAC,sBAAsB,WAAY,KAC3C,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAGtC,IAAI,CAAC,OAAO,AACrB,EAQA,EAAY,SAAS,CAAC,iBAAiB,CAAG,WACxC,IAAI,CAAC,gBAAgB,CAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EACnD,IAAI,CAAC,eAAe,CAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EACjD,IAAI,CAAC,gBAAgB,CAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EACnD,IAAI,CAAC,kBAAkB,CAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EACvD,IAAI,CAAC,uBAAuB,CAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAEjE,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,aAAc,IAAI,CAAC,gBAAgB,EACzE,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,aAAc,IAAI,CAAC,gBAAgB,EACzE,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,YAAa,IAAI,CAAC,eAAe,EAEnE,CAAA,IAAI,CAAC,KAAK,EAAI,IAAI,CAAC,iBAAiB,AAAjB,GACrB,OAAO,gBAAgB,CAAC,SAAU,IAAI,CAAC,kBAAkB,EAGvD,IAAI,CAAC,SAAS,EAChB,OAAO,gBAAgB,CAAC,oBAAqB,IAAI,CAAC,uBAAuB,CAE7E,EAOA,EAAY,SAAS,CAAC,oBAAoB,CAAG,WAC3C,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,aAAc,IAAI,CAAC,gBAAgB,EAC5E,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,aAAc,IAAI,CAAC,gBAAgB,EAC5E,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,YAAa,IAAI,CAAC,eAAe,EAEtE,IAAI,CAAC,SAAS,EAChB,OAAO,mBAAmB,CAAC,oBAAqB,IAAI,CAAC,uBAAuB,EAG1E,CAAA,IAAI,CAAC,KAAK,EAAI,IAAI,CAAC,iBAAiB,AAAjB,GACrB,OAAO,mBAAmB,CAAC,SAAU,IAAI,CAAC,kBAAkB,CAEhE,EAEA,EAAY,SAAS,CAAC,OAAO,CAAG,WAC9B,aAAa,IAAI,CAAC,iBAAiB,EACX,OAApB,IAAI,CAAC,UAAU,EACjB,qBAAqB,IAAI,CAAC,UAAU,EAGtC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAG,GAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAG,GAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAG,GAC/B,IAAI,CAAC,UAAU,GAEf,IAAI,CAAC,oBAAoB,GACzB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAG,KAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAE/B,IAAI,CAAC,OAAO,CAAG,IACjB,EAEA,EAAY,SAAS,CAAC,mBAAmB,CAAG,SAA6B,CAAK,EAC5E,GAAI,AAAgB,OAAhB,EAAM,KAAK,EAAa,AAAe,OAAf,EAAM,IAAI,EAItC,IAAI,CAAC,qBAAqB,GAEtB,IAAI,CAAC,gBAAgB,CAAG,IAC1B,IAAI,CAAC,aAAa,CAAG,IAAI,CAAC,SAAS,CACnC,IAAI,CAAC,YAAY,CAAG,IAAI,CAAC,QAAQ,CAE7B,AAAmB,OAAnB,IAAI,CAAC,SAAS,EAChB,IAAI,CAAC,SAAS,CAAG,EAAM,KAAK,CAC5B,IAAI,CAAC,QAAQ,CAAG,EAAM,IAAI,GAE1B,IAAI,CAAC,SAAS,CAAI,AAAA,CAAA,EAAM,KAAK,CAAG,IAAI,CAAC,aAAY,AAAZ,EAAiB,EACtD,IAAI,CAAC,QAAQ,CAAI,AAAA,CAAA,EAAM,IAAI,CAAG,IAAI,CAAC,YAAW,AAAX,EAAgB,GAGrD,IAAI,CAAC,gBAAgB,EAAI,GAG3B,IAAI,EAAc,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CACjF,EAAc,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAEjF,EAAmB,EAAc,IAAI,CAAC,KAAK,CAC3C,EAAmB,EAAc,IAAI,CAAC,MAAM,CAE5C,EAAS,EAAM,KAAK,CAAI,CAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAG,IAAI,CAAC,SAAS,AAAT,EAChE,EAAS,EAAM,IAAI,CAAI,CAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAG,IAAI,CAAC,QAAQ,AAAR,CAK3C,QAApB,IAAI,CAAC,UAAU,EACjB,qBAAqB,IAAI,CAAC,UAAU,EAGtC,IAAI,CAAC,KAAK,CAAG,CACX,QAAS,AARA,EAAS,EAQF,IAAI,CAAC,IAAI,CACzB,QAAS,AARA,EAAS,EAQF,IAAI,CAAC,GAAG,AAC1B,EAEA,IAAI,CAAC,UAAU,CAAG,sBAAsB,IAAI,CAAC,UAAU,EACzD,EAEA,EAAY,SAAS,CAAC,YAAY,CAAG,WACnC,IAAI,CAAC,qBAAqB,GAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAG,YAChC,IAAI,CAAC,aAAa,EACpB,EAEA,EAAY,SAAS,CAAC,WAAW,CAAG,SAAqB,CAAK,EACpC,OAApB,IAAI,CAAC,UAAU,EACjB,qBAAqB,IAAI,CAAC,UAAU,EAGtC,IAAI,CAAC,KAAK,CAAG,EACb,IAAI,CAAC,UAAU,CAAG,sBAAsB,IAAI,CAAC,UAAU,CACzD,EAEA,EAAY,SAAS,CAAC,YAAY,CAAG,WACnC,IAAI,CAAC,aAAa,GAEd,IAAI,CAAC,QAAQ,CAAC,KAAK,EACrB,sBAAsB,IAAI,CAAC,SAAS,CAExC,EAEA,EAAY,SAAS,CAAC,KAAK,CAAG,WAC5B,IAAI,CAAC,YAAY,GAEb,IAAI,CAAC,iBAAiB,CACxB,IAAI,CAAC,KAAK,CAAG,CACX,QAAS,AAAC,CAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,AAAH,EAAQ,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAC,GAAE,AAAF,EAAO,IAAI,CAAC,WAAW,CAChG,QAAS,AAAC,CAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,AAAH,EAAQ,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAC,GAAE,AAAF,EAAO,IAAI,CAAC,YAAY,AACnG,EAEA,IAAI,CAAC,KAAK,CAAG,CACX,QAAS,IAAI,CAAC,IAAI,CAAI,AAAA,CAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAG,IAAI,CAAC,QAAQ,CAAC,GAAE,AAAF,EAAQ,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,AAAH,EAAO,IAAI,CAAC,KAAK,CACtG,QAAS,IAAI,CAAC,GAAG,CAAI,AAAA,CAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAG,IAAI,CAAC,QAAQ,CAAC,GAAE,AAAF,EAAQ,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,AAAH,EAAO,IAAI,CAAC,MAAM,AACxG,EAGF,IAAI,EAAc,IAAI,CAAC,QAAQ,CAAC,KAAK,AACrC,CAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAG,EACtB,IAAI,CAAC,MAAM,GACX,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAG,EACtB,IAAI,CAAC,UAAU,EACjB,EAEA,EAAY,SAAS,CAAC,UAAU,CAAG,WAC7B,IAAI,CAAC,KAAK,GACZ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAG,uCACpC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAG,IAEtC,EAEA,EAAY,SAAS,CAAC,SAAS,CAAG,WAChC,IAAI,EAAI,KAAK,EACT,EAAI,KAAK,EAiBb,OAfI,IAAI,CAAC,iBAAiB,EACxB,EAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAG,IAAI,CAAC,WAAW,CACzC,EAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAG,IAAI,CAAC,YAAY,GAE1C,EAAK,AAAA,CAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAG,IAAI,CAAC,IAAI,AAAJ,EAAQ,IAAI,CAAC,KAAK,CACjD,EAAK,AAAA,CAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAG,IAAI,CAAC,GAAG,AAAH,EAAO,IAAI,CAAC,MAAM,EAGnD,EAAI,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,EAAG,GAAI,GAC7B,EAAI,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,EAAG,GAAI,GAMtB,CACL,MALW,AAAA,CAAA,IAAI,CAAC,OAAO,CAAI,CAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAG,EAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAG,CAAA,CAAA,EAAI,OAAO,CAAC,GAMnF,MALW,AAAA,CAAA,IAAI,CAAC,OAAO,CAAI,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAG,EAAI,IAAI,CAAC,QAAQ,CAAC,GAAE,AAAF,CAAE,EAAI,OAAO,CAAC,GAMnF,YAAa,AAAI,IAAJ,EACb,YAAa,AAAI,IAAJ,EACb,MAPU,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAI,CAAA,IAAI,CAAC,IAAI,CAAG,IAAI,CAAC,KAAK,CAAG,CAAA,EAAI,CAAE,CAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAI,CAAA,IAAI,CAAC,GAAG,CAAG,IAAI,CAAC,MAAM,CAAG,CAAA,CAAA,GAAQ,CAAA,IAAM,KAAK,EAAC,AAAD,CAQ9I,CACF,EAEA,EAAY,SAAS,CAAC,qBAAqB,CAAG,WAC5C,IAAI,EAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAE7C,CAAA,IAAI,CAAC,KAAK,CAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CACrC,IAAI,CAAC,MAAM,CAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CACvC,IAAI,CAAC,IAAI,CAAG,EAAK,IAAI,CACrB,IAAI,CAAC,GAAG,CAAG,EAAK,GAAG,AACrB,EAEA,EAAY,SAAS,CAAC,MAAM,CAAG,WAC7B,IAAI,EAAS,IAAI,CAAC,SAAS,EAE3B,CAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAG,eAAiB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAA1C,eAAoE,CAAA,AAAuB,MAAvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAW,EAAI,EAAO,KAAK,AAAL,EAA5G,gBAA6I,CAAA,AAAuB,MAAvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAW,EAAI,EAAO,KAAK,AAAL,EAArL,gBAAqN,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAG,KAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAG,KAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAG,IAEhU,IAAI,CAAC,KAAK,GACZ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAG,UAAY,EAAO,KAAK,CAAG,6BAC/D,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAG,GAAK,EAAO,WAAW,CAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAG,KAG3F,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,YAAY,aAAc,CACvD,OAAU,CACZ,IAEA,IAAI,CAAC,UAAU,CAAG,IACpB,EAQA,EAAY,SAAS,CAAC,YAAY,CAAG,WAEnC,GAAI,CAAC,IAAI,CAAC,cAAc,CAAE,CAExB,IAAI,EAAc,SAAS,aAAa,CAAC,OACzC,EAAY,SAAS,CAAC,GAAG,CAAC,iBAE1B,IAAI,EAAmB,SAAS,aAAa,CAAC,OAC9C,EAAiB,SAAS,CAAC,GAAG,CAAC,uBAE/B,EAAY,WAAW,CAAC,GACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,CAEA,IAAI,CAAC,mBAAmB,CAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,kBACtD,IAAI,CAAC,YAAY,CAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,wBAE3C,IAAI,CAAC,cAAc,GAIvB,OAAO,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAE,CAC5C,SAAY,WACZ,IAAO,IACP,KAAQ,IACR,MAAS,OACT,OAAU,OACV,SAAY,SACZ,iBAAkB,OAClB,gBAAiB,SACnB,GAEA,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAE,CACrC,SAAY,WACZ,IAAO,MACP,KAAQ,MACR,iBAAkB,OAClB,mBAAoB,0EACpB,UAAa,uCACb,mBAAoB,QACpB,QAAW,GACb,GAEA,IAAI,CAAC,eAAe,GACtB,EAEA,EAAY,SAAS,CAAC,eAAe,CAAG,WACtC,GAAI,IAAI,CAAC,KAAK,CAAE,CACd,IAAI,EAAa,AAAA,CAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAG,IAAI,CAAC,OAAO,CAAC,YAAY,AAAZ,EAAgB,EAEhI,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAE,CACrC,MAAS,EAAY,KACrB,OAAU,EAAY,IACxB,EACF,CACF,EAEA,EAAY,SAAS,CAAC,gBAAgB,CAAG,WACvC,IAAI,CAAC,WAAW,CAAG,OAAO,UAAU,EAAI,SAAS,eAAe,CAAC,WAAW,EAAI,SAAS,IAAI,CAAC,WAAW,CAEzG,IAAI,CAAC,YAAY,CAAG,OAAO,WAAW,EAAI,SAAS,eAAe,CAAC,YAAY,EAAI,SAAS,IAAI,CAAC,YAAY,AAC/G,EAEA,EAAY,SAAS,CAAC,cAAc,CAAG,WACrC,IAAI,CAAC,eAAe,GACpB,IAAI,CAAC,gBAAgB,EACvB,EAEA,EAAY,SAAS,CAAC,aAAa,CAAG,WACpC,IAAI,EAAQ,IAAI,CAEhB,aAAa,IAAI,CAAC,iBAAiB,EACnC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAG,MAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAC9E,IAAI,CAAC,KAAK,EAAE,CAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAG,WAAa,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAG,MAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,AAAN,EAE9G,IAAI,CAAC,iBAAiB,CAAG,WAAW,WAClC,EAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAAG,GAC7B,EAAM,KAAK,EACb,CAAA,EAAM,YAAY,CAAC,KAAK,CAAC,UAAU,CAAG,EADxC,CAGF,EAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CACxB,EA2BA,EAAY,SAAS,CAAC,cAAc,CAAG,SAAwB,CAAQ,EACrE,IAAI,EAAkB,CACpB,QAAS,CAAA,EACT,IAAK,GACL,OAAQ,EACR,OAAQ,EACR,YAAa,IACb,OAAQ,gCACR,MAAO,EACP,MAAO,IACP,WAAY,CAAA,EACZ,KAAM,KACN,MAAO,CAAA,EACP,YAAa,EACb,kBAAmB,CAAA,EACnB,sBAAuB,CAAA,EACvB,sBAAuB,KACvB,MAAO,CAAA,EACP,iBAAkB,CAAA,EAClB,UAAW,CAAA,EACX,mBAAoB,IACpB,mBAAoB,GACpB,mBAAoB,IACpB,mBAAoB,GACpB,iBAAkB,EACpB,EAEI,EAAc,CAAC,EACnB,IAAK,IAAI,KAAY,EACnB,GAAI,KAAY,EACd,CAAW,CAAC,EAAS,CAAG,CAAQ,CAAC,EAAS,MACrC,GAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,aAAe,GAAW,CAC7D,IAAI,EAAY,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,aAAe,GACzD,GAAI,CACF,CAAW,CAAC,EAAS,CAAG,KAAK,KAAK,CAAC,EACrC,CAAE,MAAO,EAAG,CACV,CAAW,CAAC,EAAS,CAAG,CAC1B,CACF,MACE,CAAW,CAAC,EAAS,CAAG,CAAe,CAAC,EAAS,CAIrD,OAAO,CACT,EAEA,EAAY,IAAI,CAAG,SAAc,CAAQ,CAAE,CAAQ,EAC7C,aAAoB,MACtB,CAAA,EAAW,CAAC,EAAS,AAAA,EAGnB,aAAoB,UACtB,CAAA,EAAW,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAD3B,EAIM,aAAoB,OAI1B,EAAS,OAAO,CAAC,SAAU,CAAO,EAC1B,gBAAiB,GACrB,CAAA,EAAQ,WAAW,CAAG,IAAI,EAAY,EAAS,EADjD,CAGF,EACF,EAEO,CACT,GAEwB,CAAA,aAApB,OAAO,WAET,OAAO,WAAW,CAAG,EAKrB,EAAY,IAAI,CAAC,SAAS,gBAAgB,CAAC,iBAG7C,EAAiB,EFhgBwC,EGA7B,CAC1B,OAAQ,6BACR,SAAU,OACV,SAAU,IACV,QAAS,CAAA,EACT,OAAQ,CAAA,CACV,EHLO,CADkC,EGQX,CAC5B,CACE,QAAS,iBACT,UAAW,CACT,MAAO,IACP,SAAU,MACV,OAAQ,QACV,CACF,EACA,CACE,QAAS,cACT,UAAW,CACT,MAAO,IACP,OAAQ,OAAO,UAAU,CAAG,IAAM,OAAS,QAC7C,CACF,EACA,CACE,QAAS,YACT,UAAW,CACT,MAAO,IACP,OAAQ,OAAO,UAAU,CAAG,IAAM,OAAS,QAC7C,CACF,EACA,CACE,QAAS,wBACT,UAAW,CACT,MAAO,IACP,OAAQ,QACV,CACF,EACA,CACE,QAAS,uBACT,UAAW,CACT,MAAO,IACP,OAAQ,OAAO,UAAU,CAAG,IAAM,OAAS,QAC7C,CACF,EACA,CACE,QAAS,yBACT,UAAW,CACT,MAAO,IACP,OAAQ,OAAO,UAAU,CAAG,IAAM,OAAS,QAC7C,CACF,EACA,CACE,QAAS,0BACT,UAAW,CACT,MAAO,IACP,OAAQ,OAAO,UAAU,CAAG,IAAM,QAAU,QAC9C,CACF,EACA,CACE,QAAS,mBACT,UAAW,CACT,MAAO,IACP,OAAQ,QACV,CACF,EACD,EHjEqB,MAAM,GAE1B,aAAa,CAAE,MAAO,CAAA,CAAM,GAE5B,EAAe,OAAO,CAAC,CAAC,CAAA,QAAE,CAAO,CAAA,UAAE,CAAS,CAAE,IAC5C,eAAe,MAAM,CAAC,EAAS,OAAO,MAAM,CAAC,CAAC,EAAG,EAAc,GACjE,IDFF,AEHe,e,EACb,IAAM,EAAW,SAAS,gBAAgB,CAAC,YAC3C,A,C,C,EAAA,I,E,U,C,E,O,C,C,EAAY,IAAI,CAAC,EACnB","sources":["","src/index.js","src/scripts/scrollReveal.js","src/scripts/tiltAnimation.js","node_modules/vanilla-tilt/lib/vanilla-tilt.js","src/data/scrollRevealConfig.js"],"sourcesContent":["\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\nfunction $6f019d1f45ba2738$export$2e2bcd8739ae039(targetElements, defaultProps) {\n if (!targetElements.length) return;\n ScrollReveal({\n reset: false\n });\n targetElements.forEach(({ element: element, animation: animation })=>{\n ScrollReveal().reveal(element, Object.assign({}, defaultProps, animation));\n });\n}\n\n\nvar $b5f6d4efc654cf78$exports = {};\n\"use strict\";\nvar $b5f6d4efc654cf78$var$classCallCheck = function(instance, Constructor) {\n if (!(instance instanceof Constructor)) throw new TypeError(\"Cannot call a class as a function\");\n};\n/**\r\n * Created by Sergiu Șandor (micku7zu) on 1/27/2017.\r\n * Original idea: https://github.com/gijsroge/tilt.js\r\n * MIT License.\r\n * Version 1.8.1\r\n */ var $b5f6d4efc654cf78$var$VanillaTilt = function() {\n function VanillaTilt(element) {\n var settings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n $b5f6d4efc654cf78$var$classCallCheck(this, VanillaTilt);\n if (!(element instanceof Node)) throw \"Can't initialize VanillaTilt because \" + element + \" is not a Node.\";\n this.width = null;\n this.height = null;\n this.clientWidth = null;\n this.clientHeight = null;\n this.left = null;\n this.top = null;\n // for Gyroscope sampling\n this.gammazero = null;\n this.betazero = null;\n this.lastgammazero = null;\n this.lastbetazero = null;\n this.transitionTimeout = null;\n this.updateCall = null;\n this.event = null;\n this.updateBind = this.update.bind(this);\n this.resetBind = this.reset.bind(this);\n this.element = element;\n this.settings = this.extendSettings(settings);\n this.reverse = this.settings.reverse ? -1 : 1;\n this.resetToStart = VanillaTilt.isSettingTrue(this.settings[\"reset-to-start\"]);\n this.glare = VanillaTilt.isSettingTrue(this.settings.glare);\n this.glarePrerender = VanillaTilt.isSettingTrue(this.settings[\"glare-prerender\"]);\n this.fullPageListening = VanillaTilt.isSettingTrue(this.settings[\"full-page-listening\"]);\n this.gyroscope = VanillaTilt.isSettingTrue(this.settings.gyroscope);\n this.gyroscopeSamples = this.settings.gyroscopeSamples;\n this.elementListener = this.getElementListener();\n if (this.glare) this.prepareGlare();\n if (this.fullPageListening) this.updateClientSize();\n this.addEventListeners();\n this.reset();\n if (this.resetToStart === false) {\n this.settings.startX = 0;\n this.settings.startY = 0;\n }\n }\n VanillaTilt.isSettingTrue = function isSettingTrue(setting) {\n return setting === \"\" || setting === true || setting === 1;\n };\n /**\r\n * Method returns element what will be listen mouse events\r\n * @return {Node}\r\n */ VanillaTilt.prototype.getElementListener = function getElementListener() {\n if (this.fullPageListening) return window.document;\n if (typeof this.settings[\"mouse-event-element\"] === \"string\") {\n var mouseEventElement = document.querySelector(this.settings[\"mouse-event-element\"]);\n if (mouseEventElement) return mouseEventElement;\n }\n if (this.settings[\"mouse-event-element\"] instanceof Node) return this.settings[\"mouse-event-element\"];\n return this.element;\n };\n /**\r\n * Method set listen methods for this.elementListener\r\n * @return {Node}\r\n */ VanillaTilt.prototype.addEventListeners = function addEventListeners() {\n this.onMouseEnterBind = this.onMouseEnter.bind(this);\n this.onMouseMoveBind = this.onMouseMove.bind(this);\n this.onMouseLeaveBind = this.onMouseLeave.bind(this);\n this.onWindowResizeBind = this.onWindowResize.bind(this);\n this.onDeviceOrientationBind = this.onDeviceOrientation.bind(this);\n this.elementListener.addEventListener(\"mouseenter\", this.onMouseEnterBind);\n this.elementListener.addEventListener(\"mouseleave\", this.onMouseLeaveBind);\n this.elementListener.addEventListener(\"mousemove\", this.onMouseMoveBind);\n if (this.glare || this.fullPageListening) window.addEventListener(\"resize\", this.onWindowResizeBind);\n if (this.gyroscope) window.addEventListener(\"deviceorientation\", this.onDeviceOrientationBind);\n };\n /**\r\n * Method remove event listeners from current this.elementListener\r\n */ VanillaTilt.prototype.removeEventListeners = function removeEventListeners() {\n this.elementListener.removeEventListener(\"mouseenter\", this.onMouseEnterBind);\n this.elementListener.removeEventListener(\"mouseleave\", this.onMouseLeaveBind);\n this.elementListener.removeEventListener(\"mousemove\", this.onMouseMoveBind);\n if (this.gyroscope) window.removeEventListener(\"deviceorientation\", this.onDeviceOrientationBind);\n if (this.glare || this.fullPageListening) window.removeEventListener(\"resize\", this.onWindowResizeBind);\n };\n VanillaTilt.prototype.destroy = function destroy() {\n clearTimeout(this.transitionTimeout);\n if (this.updateCall !== null) cancelAnimationFrame(this.updateCall);\n this.element.style.willChange = \"\";\n this.element.style.transition = \"\";\n this.element.style.transform = \"\";\n this.resetGlare();\n this.removeEventListeners();\n this.element.vanillaTilt = null;\n delete this.element.vanillaTilt;\n this.element = null;\n };\n VanillaTilt.prototype.onDeviceOrientation = function onDeviceOrientation(event) {\n if (event.gamma === null || event.beta === null) return;\n this.updateElementPosition();\n if (this.gyroscopeSamples > 0) {\n this.lastgammazero = this.gammazero;\n this.lastbetazero = this.betazero;\n if (this.gammazero === null) {\n this.gammazero = event.gamma;\n this.betazero = event.beta;\n } else {\n this.gammazero = (event.gamma + this.lastgammazero) / 2;\n this.betazero = (event.beta + this.lastbetazero) / 2;\n }\n this.gyroscopeSamples -= 1;\n }\n var totalAngleX = this.settings.gyroscopeMaxAngleX - this.settings.gyroscopeMinAngleX;\n var totalAngleY = this.settings.gyroscopeMaxAngleY - this.settings.gyroscopeMinAngleY;\n var degreesPerPixelX = totalAngleX / this.width;\n var degreesPerPixelY = totalAngleY / this.height;\n var angleX = event.gamma - (this.settings.gyroscopeMinAngleX + this.gammazero);\n var angleY = event.beta - (this.settings.gyroscopeMinAngleY + this.betazero);\n var posX = angleX / degreesPerPixelX;\n var posY = angleY / degreesPerPixelY;\n if (this.updateCall !== null) cancelAnimationFrame(this.updateCall);\n this.event = {\n clientX: posX + this.left,\n clientY: posY + this.top\n };\n this.updateCall = requestAnimationFrame(this.updateBind);\n };\n VanillaTilt.prototype.onMouseEnter = function onMouseEnter() {\n this.updateElementPosition();\n this.element.style.willChange = \"transform\";\n this.setTransition();\n };\n VanillaTilt.prototype.onMouseMove = function onMouseMove(event) {\n if (this.updateCall !== null) cancelAnimationFrame(this.updateCall);\n this.event = event;\n this.updateCall = requestAnimationFrame(this.updateBind);\n };\n VanillaTilt.prototype.onMouseLeave = function onMouseLeave() {\n this.setTransition();\n if (this.settings.reset) requestAnimationFrame(this.resetBind);\n };\n VanillaTilt.prototype.reset = function reset() {\n this.onMouseEnter();\n if (this.fullPageListening) this.event = {\n clientX: (this.settings.startX + this.settings.max) / (2 * this.settings.max) * this.clientWidth,\n clientY: (this.settings.startY + this.settings.max) / (2 * this.settings.max) * this.clientHeight\n };\n else this.event = {\n clientX: this.left + (this.settings.startX + this.settings.max) / (2 * this.settings.max) * this.width,\n clientY: this.top + (this.settings.startY + this.settings.max) / (2 * this.settings.max) * this.height\n };\n var backupScale = this.settings.scale;\n this.settings.scale = 1;\n this.update();\n this.settings.scale = backupScale;\n this.resetGlare();\n };\n VanillaTilt.prototype.resetGlare = function resetGlare() {\n if (this.glare) {\n this.glareElement.style.transform = \"rotate(180deg) translate(-50%, -50%)\";\n this.glareElement.style.opacity = \"0\";\n }\n };\n VanillaTilt.prototype.getValues = function getValues() {\n var x = void 0, y = void 0;\n if (this.fullPageListening) {\n x = this.event.clientX / this.clientWidth;\n y = this.event.clientY / this.clientHeight;\n } else {\n x = (this.event.clientX - this.left) / this.width;\n y = (this.event.clientY - this.top) / this.height;\n }\n x = Math.min(Math.max(x, 0), 1);\n y = Math.min(Math.max(y, 0), 1);\n var tiltX = (this.reverse * (this.settings.max - x * this.settings.max * 2)).toFixed(2);\n var tiltY = (this.reverse * (y * this.settings.max * 2 - this.settings.max)).toFixed(2);\n var angle = Math.atan2(this.event.clientX - (this.left + this.width / 2), -(this.event.clientY - (this.top + this.height / 2))) * (180 / Math.PI);\n return {\n tiltX: tiltX,\n tiltY: tiltY,\n percentageX: x * 100,\n percentageY: y * 100,\n angle: angle\n };\n };\n VanillaTilt.prototype.updateElementPosition = function updateElementPosition() {\n var rect = this.element.getBoundingClientRect();\n this.width = this.element.offsetWidth;\n this.height = this.element.offsetHeight;\n this.left = rect.left;\n this.top = rect.top;\n };\n VanillaTilt.prototype.update = function update() {\n var values = this.getValues();\n this.element.style.transform = \"perspective(\" + this.settings.perspective + \"px) \" + \"rotateX(\" + (this.settings.axis === \"x\" ? 0 : values.tiltY) + \"deg) \" + \"rotateY(\" + (this.settings.axis === \"y\" ? 0 : values.tiltX) + \"deg) \" + \"scale3d(\" + this.settings.scale + \", \" + this.settings.scale + \", \" + this.settings.scale + \")\";\n if (this.glare) {\n this.glareElement.style.transform = \"rotate(\" + values.angle + \"deg) translate(-50%, -50%)\";\n this.glareElement.style.opacity = \"\" + values.percentageY * this.settings[\"max-glare\"] / 100;\n }\n this.element.dispatchEvent(new CustomEvent(\"tiltChange\", {\n \"detail\": values\n }));\n this.updateCall = null;\n };\n /**\r\n * Appends the glare element (if glarePrerender equals false)\r\n * and sets the default style\r\n */ VanillaTilt.prototype.prepareGlare = function prepareGlare() {\n // If option pre-render is enabled we assume all html/css is present for an optimal glare effect.\n if (!this.glarePrerender) {\n // Create glare element\n var jsTiltGlare = document.createElement(\"div\");\n jsTiltGlare.classList.add(\"js-tilt-glare\");\n var jsTiltGlareInner = document.createElement(\"div\");\n jsTiltGlareInner.classList.add(\"js-tilt-glare-inner\");\n jsTiltGlare.appendChild(jsTiltGlareInner);\n this.element.appendChild(jsTiltGlare);\n }\n this.glareElementWrapper = this.element.querySelector(\".js-tilt-glare\");\n this.glareElement = this.element.querySelector(\".js-tilt-glare-inner\");\n if (this.glarePrerender) return;\n Object.assign(this.glareElementWrapper.style, {\n \"position\": \"absolute\",\n \"top\": \"0\",\n \"left\": \"0\",\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"overflow\": \"hidden\",\n \"pointer-events\": \"none\",\n \"border-radius\": \"inherit\"\n });\n Object.assign(this.glareElement.style, {\n \"position\": \"absolute\",\n \"top\": \"50%\",\n \"left\": \"50%\",\n \"pointer-events\": \"none\",\n \"background-image\": \"linear-gradient(0deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%)\",\n \"transform\": \"rotate(180deg) translate(-50%, -50%)\",\n \"transform-origin\": \"0% 0%\",\n \"opacity\": \"0\"\n });\n this.updateGlareSize();\n };\n VanillaTilt.prototype.updateGlareSize = function updateGlareSize() {\n if (this.glare) {\n var glareSize = (this.element.offsetWidth > this.element.offsetHeight ? this.element.offsetWidth : this.element.offsetHeight) * 2;\n Object.assign(this.glareElement.style, {\n \"width\": glareSize + \"px\",\n \"height\": glareSize + \"px\"\n });\n }\n };\n VanillaTilt.prototype.updateClientSize = function updateClientSize() {\n this.clientWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\n this.clientHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\n };\n VanillaTilt.prototype.onWindowResize = function onWindowResize() {\n this.updateGlareSize();\n this.updateClientSize();\n };\n VanillaTilt.prototype.setTransition = function setTransition() {\n var _this = this;\n clearTimeout(this.transitionTimeout);\n this.element.style.transition = this.settings.speed + \"ms \" + this.settings.easing;\n if (this.glare) this.glareElement.style.transition = \"opacity \" + this.settings.speed + \"ms \" + this.settings.easing;\n this.transitionTimeout = setTimeout(function() {\n _this.element.style.transition = \"\";\n if (_this.glare) _this.glareElement.style.transition = \"\";\n }, this.settings.speed);\n };\n /**\r\n * Method return patched settings of instance\r\n * @param {boolean} settings.reverse - reverse the tilt direction\r\n * @param {number} settings.max - max tilt rotation (degrees)\r\n * @param {startX} settings.startX - the starting tilt on the X axis, in degrees. Default: 0\r\n * @param {startY} settings.startY - the starting tilt on the Y axis, in degrees. Default: 0\r\n * @param {number} settings.perspective - Transform perspective, the lower the more extreme the tilt gets\r\n * @param {string} settings.easing - Easing on enter/exit\r\n * @param {number} settings.scale - 2 = 200%, 1.5 = 150%, etc..\r\n * @param {number} settings.speed - Speed of the enter/exit transition\r\n * @param {boolean} settings.transition - Set a transition on enter/exit\r\n * @param {string|null} settings.axis - What axis should be enabled. Can be \"x\" or \"y\"\r\n * @param {boolean} settings.glare - if it should have a \"glare\" effect\r\n * @param {number} settings.max-glare - the maximum \"glare\" opacity (1 = 100%, 0.5 = 50%)\r\n * @param {boolean} settings.glare-prerender - false = VanillaTilt creates the glare elements for you, otherwise\r\n * @param {boolean} settings.full-page-listening - If true, parallax effect will listen to mouse move events on the whole document, not only the selected element\r\n * @param {string|object} settings.mouse-event-element - String selector or link to HTML-element what will be listen mouse events\r\n * @param {boolean} settings.reset - false = If the tilt effect has to be reset on exit\r\n * @param {boolean} settings.reset-to-start - true = On reset event (mouse leave) will return to initial start angle (if startX or startY is set)\r\n * @param {gyroscope} settings.gyroscope - Enable tilting by deviceorientation events\r\n * @param {gyroscopeSensitivity} settings.gyroscopeSensitivity - Between 0 and 1 - The angle at which max tilt position is reached. 1 = 90deg, 0.5 = 45deg, etc..\r\n * @param {gyroscopeSamples} settings.gyroscopeSamples - How many gyroscope moves to decide the starting position.\r\n */ VanillaTilt.prototype.extendSettings = function extendSettings(settings) {\n var defaultSettings = {\n reverse: false,\n max: 15,\n startX: 0,\n startY: 0,\n perspective: 1000,\n easing: \"cubic-bezier(.03,.98,.52,.99)\",\n scale: 1,\n speed: 300,\n transition: true,\n axis: null,\n glare: false,\n \"max-glare\": 1,\n \"glare-prerender\": false,\n \"full-page-listening\": false,\n \"mouse-event-element\": null,\n reset: true,\n \"reset-to-start\": true,\n gyroscope: true,\n gyroscopeMinAngleX: -45,\n gyroscopeMaxAngleX: 45,\n gyroscopeMinAngleY: -45,\n gyroscopeMaxAngleY: 45,\n gyroscopeSamples: 10\n };\n var newSettings = {};\n for(var property in defaultSettings){\n if (property in settings) newSettings[property] = settings[property];\n else if (this.element.hasAttribute(\"data-tilt-\" + property)) {\n var attribute = this.element.getAttribute(\"data-tilt-\" + property);\n try {\n newSettings[property] = JSON.parse(attribute);\n } catch (e) {\n newSettings[property] = attribute;\n }\n } else newSettings[property] = defaultSettings[property];\n }\n return newSettings;\n };\n VanillaTilt.init = function init(elements, settings) {\n if (elements instanceof Node) elements = [\n elements\n ];\n if (elements instanceof NodeList) elements = [].slice.call(elements);\n if (!(elements instanceof Array)) return;\n elements.forEach(function(element) {\n if (!(\"vanillaTilt\" in element)) element.vanillaTilt = new VanillaTilt(element, settings);\n });\n };\n return VanillaTilt;\n}();\nif (typeof document !== \"undefined\") {\n /* expose the class to window */ window.VanillaTilt = $b5f6d4efc654cf78$var$VanillaTilt;\n /**\r\n * Auto load\r\n */ $b5f6d4efc654cf78$var$VanillaTilt.init(document.querySelectorAll(\"[data-tilt]\"));\n}\n$b5f6d4efc654cf78$exports = $b5f6d4efc654cf78$var$VanillaTilt;\n\n\nfunction $b8855ed206bb3c2e$export$2e2bcd8739ae039() {\n const elements = document.querySelectorAll(\".js-tilt\");\n (0, (/*@__PURE__*/$parcel$interopDefault($b5f6d4efc654cf78$exports))).init(elements);\n}\n\n\nconst $d859da13df4a30ff$export$9c21a3269931e1e6 = {\n easing: \"cubic-bezier(0.5, 0, 0, 1)\",\n distance: \"30px\",\n duration: 1000,\n desktop: true,\n mobile: true\n};\nconst $d859da13df4a30ff$export$adcf75ad64a03007 = [\n {\n element: \".section-title\",\n animation: {\n delay: 300,\n distance: \"0px\",\n origin: \"bottom\"\n }\n },\n {\n element: \".hero-title\",\n animation: {\n delay: 500,\n origin: window.innerWidth > 768 ? \"left\" : \"bottom\"\n }\n },\n {\n element: \".hero-cta\",\n animation: {\n delay: 1000,\n origin: window.innerWidth > 768 ? \"left\" : \"bottom\"\n }\n },\n {\n element: \".about-wrapper__image\",\n animation: {\n delay: 600,\n origin: \"bottom\"\n }\n },\n {\n element: \".about-wrapper__info\",\n animation: {\n delay: 1000,\n origin: window.innerWidth > 768 ? \"left\" : \"bottom\"\n }\n },\n {\n element: \".project-wrapper__text\",\n animation: {\n delay: 500,\n origin: window.innerWidth > 768 ? \"left\" : \"bottom\"\n }\n },\n {\n element: \".project-wrapper__image\",\n animation: {\n delay: 1000,\n origin: window.innerWidth > 768 ? \"right\" : \"bottom\"\n }\n },\n {\n element: \".contact-wrapper\",\n animation: {\n delay: 800,\n origin: \"bottom\"\n }\n }\n];\n\n\n(0, $6f019d1f45ba2738$export$2e2bcd8739ae039)((0, $d859da13df4a30ff$export$adcf75ad64a03007), (0, $d859da13df4a30ff$export$9c21a3269931e1e6));\n(0, $b8855ed206bb3c2e$export$2e2bcd8739ae039)();\n\n\n//# sourceMappingURL=index.2c33bff8.js.map\n","import initScrollReveal from \"./scripts/scrollReveal\";\r\nimport initTiltEffect from \"./scripts/tiltAnimation\";\r\nimport { targetElements, defaultProps } from \"./data/scrollRevealConfig\";\r\n\r\ninitScrollReveal(targetElements, defaultProps);\r\ninitTiltEffect();\r\n","export default function initScrollReveal(targetElements, defaultProps) {\r\n if (!targetElements.length) return;\r\n\r\n ScrollReveal({ reset: false });\r\n\r\n targetElements.forEach(({ element, animation }) => {\r\n ScrollReveal().reveal(element, Object.assign({}, defaultProps, animation));\r\n });\r\n}\r\n","import VanillaTilt from \"vanilla-tilt\";\r\n\r\nexport default function initTiltAnimation() {\r\n const elements = document.querySelectorAll(\".js-tilt\");\r\n VanillaTilt.init(elements);\r\n}\r\n","'use strict';\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n/**\r\n * Created by Sergiu Șandor (micku7zu) on 1/27/2017.\r\n * Original idea: https://github.com/gijsroge/tilt.js\r\n * MIT License.\r\n * Version 1.8.1\r\n */\n\nvar VanillaTilt = function () {\n function VanillaTilt(element) {\n var settings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, VanillaTilt);\n\n if (!(element instanceof Node)) {\n throw \"Can't initialize VanillaTilt because \" + element + \" is not a Node.\";\n }\n\n this.width = null;\n this.height = null;\n this.clientWidth = null;\n this.clientHeight = null;\n this.left = null;\n this.top = null;\n\n // for Gyroscope sampling\n this.gammazero = null;\n this.betazero = null;\n this.lastgammazero = null;\n this.lastbetazero = null;\n\n this.transitionTimeout = null;\n this.updateCall = null;\n this.event = null;\n\n this.updateBind = this.update.bind(this);\n this.resetBind = this.reset.bind(this);\n\n this.element = element;\n this.settings = this.extendSettings(settings);\n\n this.reverse = this.settings.reverse ? -1 : 1;\n this.resetToStart = VanillaTilt.isSettingTrue(this.settings[\"reset-to-start\"]);\n this.glare = VanillaTilt.isSettingTrue(this.settings.glare);\n this.glarePrerender = VanillaTilt.isSettingTrue(this.settings[\"glare-prerender\"]);\n this.fullPageListening = VanillaTilt.isSettingTrue(this.settings[\"full-page-listening\"]);\n this.gyroscope = VanillaTilt.isSettingTrue(this.settings.gyroscope);\n this.gyroscopeSamples = this.settings.gyroscopeSamples;\n\n this.elementListener = this.getElementListener();\n\n if (this.glare) {\n this.prepareGlare();\n }\n\n if (this.fullPageListening) {\n this.updateClientSize();\n }\n\n this.addEventListeners();\n this.reset();\n\n if (this.resetToStart === false) {\n this.settings.startX = 0;\n this.settings.startY = 0;\n }\n }\n\n VanillaTilt.isSettingTrue = function isSettingTrue(setting) {\n return setting === \"\" || setting === true || setting === 1;\n };\n\n /**\r\n * Method returns element what will be listen mouse events\r\n * @return {Node}\r\n */\n\n\n VanillaTilt.prototype.getElementListener = function getElementListener() {\n if (this.fullPageListening) {\n return window.document;\n }\n\n if (typeof this.settings[\"mouse-event-element\"] === \"string\") {\n var mouseEventElement = document.querySelector(this.settings[\"mouse-event-element\"]);\n\n if (mouseEventElement) {\n return mouseEventElement;\n }\n }\n\n if (this.settings[\"mouse-event-element\"] instanceof Node) {\n return this.settings[\"mouse-event-element\"];\n }\n\n return this.element;\n };\n\n /**\r\n * Method set listen methods for this.elementListener\r\n * @return {Node}\r\n */\n\n\n VanillaTilt.prototype.addEventListeners = function addEventListeners() {\n this.onMouseEnterBind = this.onMouseEnter.bind(this);\n this.onMouseMoveBind = this.onMouseMove.bind(this);\n this.onMouseLeaveBind = this.onMouseLeave.bind(this);\n this.onWindowResizeBind = this.onWindowResize.bind(this);\n this.onDeviceOrientationBind = this.onDeviceOrientation.bind(this);\n\n this.elementListener.addEventListener(\"mouseenter\", this.onMouseEnterBind);\n this.elementListener.addEventListener(\"mouseleave\", this.onMouseLeaveBind);\n this.elementListener.addEventListener(\"mousemove\", this.onMouseMoveBind);\n\n if (this.glare || this.fullPageListening) {\n window.addEventListener(\"resize\", this.onWindowResizeBind);\n }\n\n if (this.gyroscope) {\n window.addEventListener(\"deviceorientation\", this.onDeviceOrientationBind);\n }\n };\n\n /**\r\n * Method remove event listeners from current this.elementListener\r\n */\n\n\n VanillaTilt.prototype.removeEventListeners = function removeEventListeners() {\n this.elementListener.removeEventListener(\"mouseenter\", this.onMouseEnterBind);\n this.elementListener.removeEventListener(\"mouseleave\", this.onMouseLeaveBind);\n this.elementListener.removeEventListener(\"mousemove\", this.onMouseMoveBind);\n\n if (this.gyroscope) {\n window.removeEventListener(\"deviceorientation\", this.onDeviceOrientationBind);\n }\n\n if (this.glare || this.fullPageListening) {\n window.removeEventListener(\"resize\", this.onWindowResizeBind);\n }\n };\n\n VanillaTilt.prototype.destroy = function destroy() {\n clearTimeout(this.transitionTimeout);\n if (this.updateCall !== null) {\n cancelAnimationFrame(this.updateCall);\n }\n\n this.element.style.willChange = \"\";\n this.element.style.transition = \"\";\n this.element.style.transform = \"\";\n this.resetGlare();\n\n this.removeEventListeners();\n this.element.vanillaTilt = null;\n delete this.element.vanillaTilt;\n\n this.element = null;\n };\n\n VanillaTilt.prototype.onDeviceOrientation = function onDeviceOrientation(event) {\n if (event.gamma === null || event.beta === null) {\n return;\n }\n\n this.updateElementPosition();\n\n if (this.gyroscopeSamples > 0) {\n this.lastgammazero = this.gammazero;\n this.lastbetazero = this.betazero;\n\n if (this.gammazero === null) {\n this.gammazero = event.gamma;\n this.betazero = event.beta;\n } else {\n this.gammazero = (event.gamma + this.lastgammazero) / 2;\n this.betazero = (event.beta + this.lastbetazero) / 2;\n }\n\n this.gyroscopeSamples -= 1;\n }\n\n var totalAngleX = this.settings.gyroscopeMaxAngleX - this.settings.gyroscopeMinAngleX;\n var totalAngleY = this.settings.gyroscopeMaxAngleY - this.settings.gyroscopeMinAngleY;\n\n var degreesPerPixelX = totalAngleX / this.width;\n var degreesPerPixelY = totalAngleY / this.height;\n\n var angleX = event.gamma - (this.settings.gyroscopeMinAngleX + this.gammazero);\n var angleY = event.beta - (this.settings.gyroscopeMinAngleY + this.betazero);\n\n var posX = angleX / degreesPerPixelX;\n var posY = angleY / degreesPerPixelY;\n\n if (this.updateCall !== null) {\n cancelAnimationFrame(this.updateCall);\n }\n\n this.event = {\n clientX: posX + this.left,\n clientY: posY + this.top\n };\n\n this.updateCall = requestAnimationFrame(this.updateBind);\n };\n\n VanillaTilt.prototype.onMouseEnter = function onMouseEnter() {\n this.updateElementPosition();\n this.element.style.willChange = \"transform\";\n this.setTransition();\n };\n\n VanillaTilt.prototype.onMouseMove = function onMouseMove(event) {\n if (this.updateCall !== null) {\n cancelAnimationFrame(this.updateCall);\n }\n\n this.event = event;\n this.updateCall = requestAnimationFrame(this.updateBind);\n };\n\n VanillaTilt.prototype.onMouseLeave = function onMouseLeave() {\n this.setTransition();\n\n if (this.settings.reset) {\n requestAnimationFrame(this.resetBind);\n }\n };\n\n VanillaTilt.prototype.reset = function reset() {\n this.onMouseEnter();\n\n if (this.fullPageListening) {\n this.event = {\n clientX: (this.settings.startX + this.settings.max) / (2 * this.settings.max) * this.clientWidth,\n clientY: (this.settings.startY + this.settings.max) / (2 * this.settings.max) * this.clientHeight\n };\n } else {\n this.event = {\n clientX: this.left + (this.settings.startX + this.settings.max) / (2 * this.settings.max) * this.width,\n clientY: this.top + (this.settings.startY + this.settings.max) / (2 * this.settings.max) * this.height\n };\n }\n\n var backupScale = this.settings.scale;\n this.settings.scale = 1;\n this.update();\n this.settings.scale = backupScale;\n this.resetGlare();\n };\n\n VanillaTilt.prototype.resetGlare = function resetGlare() {\n if (this.glare) {\n this.glareElement.style.transform = \"rotate(180deg) translate(-50%, -50%)\";\n this.glareElement.style.opacity = \"0\";\n }\n };\n\n VanillaTilt.prototype.getValues = function getValues() {\n var x = void 0,\n y = void 0;\n\n if (this.fullPageListening) {\n x = this.event.clientX / this.clientWidth;\n y = this.event.clientY / this.clientHeight;\n } else {\n x = (this.event.clientX - this.left) / this.width;\n y = (this.event.clientY - this.top) / this.height;\n }\n\n x = Math.min(Math.max(x, 0), 1);\n y = Math.min(Math.max(y, 0), 1);\n\n var tiltX = (this.reverse * (this.settings.max - x * this.settings.max * 2)).toFixed(2);\n var tiltY = (this.reverse * (y * this.settings.max * 2 - this.settings.max)).toFixed(2);\n var angle = Math.atan2(this.event.clientX - (this.left + this.width / 2), -(this.event.clientY - (this.top + this.height / 2))) * (180 / Math.PI);\n\n return {\n tiltX: tiltX,\n tiltY: tiltY,\n percentageX: x * 100,\n percentageY: y * 100,\n angle: angle\n };\n };\n\n VanillaTilt.prototype.updateElementPosition = function updateElementPosition() {\n var rect = this.element.getBoundingClientRect();\n\n this.width = this.element.offsetWidth;\n this.height = this.element.offsetHeight;\n this.left = rect.left;\n this.top = rect.top;\n };\n\n VanillaTilt.prototype.update = function update() {\n var values = this.getValues();\n\n this.element.style.transform = \"perspective(\" + this.settings.perspective + \"px) \" + \"rotateX(\" + (this.settings.axis === \"x\" ? 0 : values.tiltY) + \"deg) \" + \"rotateY(\" + (this.settings.axis === \"y\" ? 0 : values.tiltX) + \"deg) \" + \"scale3d(\" + this.settings.scale + \", \" + this.settings.scale + \", \" + this.settings.scale + \")\";\n\n if (this.glare) {\n this.glareElement.style.transform = \"rotate(\" + values.angle + \"deg) translate(-50%, -50%)\";\n this.glareElement.style.opacity = \"\" + values.percentageY * this.settings[\"max-glare\"] / 100;\n }\n\n this.element.dispatchEvent(new CustomEvent(\"tiltChange\", {\n \"detail\": values\n }));\n\n this.updateCall = null;\n };\n\n /**\r\n * Appends the glare element (if glarePrerender equals false)\r\n * and sets the default style\r\n */\n\n\n VanillaTilt.prototype.prepareGlare = function prepareGlare() {\n // If option pre-render is enabled we assume all html/css is present for an optimal glare effect.\n if (!this.glarePrerender) {\n // Create glare element\n var jsTiltGlare = document.createElement(\"div\");\n jsTiltGlare.classList.add(\"js-tilt-glare\");\n\n var jsTiltGlareInner = document.createElement(\"div\");\n jsTiltGlareInner.classList.add(\"js-tilt-glare-inner\");\n\n jsTiltGlare.appendChild(jsTiltGlareInner);\n this.element.appendChild(jsTiltGlare);\n }\n\n this.glareElementWrapper = this.element.querySelector(\".js-tilt-glare\");\n this.glareElement = this.element.querySelector(\".js-tilt-glare-inner\");\n\n if (this.glarePrerender) {\n return;\n }\n\n Object.assign(this.glareElementWrapper.style, {\n \"position\": \"absolute\",\n \"top\": \"0\",\n \"left\": \"0\",\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"overflow\": \"hidden\",\n \"pointer-events\": \"none\",\n \"border-radius\": \"inherit\"\n });\n\n Object.assign(this.glareElement.style, {\n \"position\": \"absolute\",\n \"top\": \"50%\",\n \"left\": \"50%\",\n \"pointer-events\": \"none\",\n \"background-image\": \"linear-gradient(0deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%)\",\n \"transform\": \"rotate(180deg) translate(-50%, -50%)\",\n \"transform-origin\": \"0% 0%\",\n \"opacity\": \"0\"\n });\n\n this.updateGlareSize();\n };\n\n VanillaTilt.prototype.updateGlareSize = function updateGlareSize() {\n if (this.glare) {\n var glareSize = (this.element.offsetWidth > this.element.offsetHeight ? this.element.offsetWidth : this.element.offsetHeight) * 2;\n\n Object.assign(this.glareElement.style, {\n \"width\": glareSize + \"px\",\n \"height\": glareSize + \"px\"\n });\n }\n };\n\n VanillaTilt.prototype.updateClientSize = function updateClientSize() {\n this.clientWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\n\n this.clientHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\n };\n\n VanillaTilt.prototype.onWindowResize = function onWindowResize() {\n this.updateGlareSize();\n this.updateClientSize();\n };\n\n VanillaTilt.prototype.setTransition = function setTransition() {\n var _this = this;\n\n clearTimeout(this.transitionTimeout);\n this.element.style.transition = this.settings.speed + \"ms \" + this.settings.easing;\n if (this.glare) this.glareElement.style.transition = \"opacity \" + this.settings.speed + \"ms \" + this.settings.easing;\n\n this.transitionTimeout = setTimeout(function () {\n _this.element.style.transition = \"\";\n if (_this.glare) {\n _this.glareElement.style.transition = \"\";\n }\n }, this.settings.speed);\n };\n\n /**\r\n * Method return patched settings of instance\r\n * @param {boolean} settings.reverse - reverse the tilt direction\r\n * @param {number} settings.max - max tilt rotation (degrees)\r\n * @param {startX} settings.startX - the starting tilt on the X axis, in degrees. Default: 0\r\n * @param {startY} settings.startY - the starting tilt on the Y axis, in degrees. Default: 0\r\n * @param {number} settings.perspective - Transform perspective, the lower the more extreme the tilt gets\r\n * @param {string} settings.easing - Easing on enter/exit\r\n * @param {number} settings.scale - 2 = 200%, 1.5 = 150%, etc..\r\n * @param {number} settings.speed - Speed of the enter/exit transition\r\n * @param {boolean} settings.transition - Set a transition on enter/exit\r\n * @param {string|null} settings.axis - What axis should be enabled. Can be \"x\" or \"y\"\r\n * @param {boolean} settings.glare - if it should have a \"glare\" effect\r\n * @param {number} settings.max-glare - the maximum \"glare\" opacity (1 = 100%, 0.5 = 50%)\r\n * @param {boolean} settings.glare-prerender - false = VanillaTilt creates the glare elements for you, otherwise\r\n * @param {boolean} settings.full-page-listening - If true, parallax effect will listen to mouse move events on the whole document, not only the selected element\r\n * @param {string|object} settings.mouse-event-element - String selector or link to HTML-element what will be listen mouse events\r\n * @param {boolean} settings.reset - false = If the tilt effect has to be reset on exit\r\n * @param {boolean} settings.reset-to-start - true = On reset event (mouse leave) will return to initial start angle (if startX or startY is set)\r\n * @param {gyroscope} settings.gyroscope - Enable tilting by deviceorientation events\r\n * @param {gyroscopeSensitivity} settings.gyroscopeSensitivity - Between 0 and 1 - The angle at which max tilt position is reached. 1 = 90deg, 0.5 = 45deg, etc..\r\n * @param {gyroscopeSamples} settings.gyroscopeSamples - How many gyroscope moves to decide the starting position.\r\n */\n\n\n VanillaTilt.prototype.extendSettings = function extendSettings(settings) {\n var defaultSettings = {\n reverse: false,\n max: 15,\n startX: 0,\n startY: 0,\n perspective: 1000,\n easing: \"cubic-bezier(.03,.98,.52,.99)\",\n scale: 1,\n speed: 300,\n transition: true,\n axis: null,\n glare: false,\n \"max-glare\": 1,\n \"glare-prerender\": false,\n \"full-page-listening\": false,\n \"mouse-event-element\": null,\n reset: true,\n \"reset-to-start\": true,\n gyroscope: true,\n gyroscopeMinAngleX: -45,\n gyroscopeMaxAngleX: 45,\n gyroscopeMinAngleY: -45,\n gyroscopeMaxAngleY: 45,\n gyroscopeSamples: 10\n };\n\n var newSettings = {};\n for (var property in defaultSettings) {\n if (property in settings) {\n newSettings[property] = settings[property];\n } else if (this.element.hasAttribute(\"data-tilt-\" + property)) {\n var attribute = this.element.getAttribute(\"data-tilt-\" + property);\n try {\n newSettings[property] = JSON.parse(attribute);\n } catch (e) {\n newSettings[property] = attribute;\n }\n } else {\n newSettings[property] = defaultSettings[property];\n }\n }\n\n return newSettings;\n };\n\n VanillaTilt.init = function init(elements, settings) {\n if (elements instanceof Node) {\n elements = [elements];\n }\n\n if (elements instanceof NodeList) {\n elements = [].slice.call(elements);\n }\n\n if (!(elements instanceof Array)) {\n return;\n }\n\n elements.forEach(function (element) {\n if (!(\"vanillaTilt\" in element)) {\n element.vanillaTilt = new VanillaTilt(element, settings);\n }\n });\n };\n\n return VanillaTilt;\n}();\n\nif (typeof document !== \"undefined\") {\n /* expose the class to window */\n window.VanillaTilt = VanillaTilt;\n\n /**\r\n * Auto load\r\n */\n VanillaTilt.init(document.querySelectorAll(\"[data-tilt]\"));\n}\n\nmodule.exports = VanillaTilt;\n","export const defaultProps = {\r\n easing: \"cubic-bezier(0.5, 0, 0, 1)\",\r\n distance: \"30px\",\r\n duration: 1000,\r\n desktop: true,\r\n mobile: true,\r\n};\r\n\r\nexport const targetElements = [\r\n {\r\n element: \".section-title\",\r\n animation: {\r\n delay: 300,\r\n distance: \"0px\",\r\n origin: \"bottom\",\r\n },\r\n },\r\n {\r\n element: \".hero-title\",\r\n animation: {\r\n delay: 500,\r\n origin: window.innerWidth > 768 ? \"left\" : \"bottom\",\r\n },\r\n },\r\n {\r\n element: \".hero-cta\",\r\n animation: {\r\n delay: 1000,\r\n origin: window.innerWidth > 768 ? \"left\" : \"bottom\",\r\n },\r\n },\r\n {\r\n element: \".about-wrapper__image\",\r\n animation: {\r\n delay: 600,\r\n origin: \"bottom\",\r\n },\r\n },\r\n {\r\n element: \".about-wrapper__info\",\r\n animation: {\r\n delay: 1000,\r\n origin: window.innerWidth > 768 ? \"left\" : \"bottom\",\r\n },\r\n },\r\n {\r\n element: \".project-wrapper__text\",\r\n animation: {\r\n delay: 500,\r\n origin: window.innerWidth > 768 ? \"left\" : \"bottom\",\r\n },\r\n },\r\n {\r\n element: \".project-wrapper__image\",\r\n animation: {\r\n delay: 1000,\r\n origin: window.innerWidth > 768 ? \"right\" : \"bottom\",\r\n },\r\n },\r\n {\r\n element: \".contact-wrapper\",\r\n animation: {\r\n delay: 800,\r\n origin: \"bottom\",\r\n },\r\n },\r\n];\r\n"],"names":["targetElements","defaultProps","$b5f6d4efc654cf78$exports","$b5f6d4efc654cf78$var$classCallCheck","instance","Constructor","TypeError","$b5f6d4efc654cf78$var$VanillaTilt","VanillaTilt","element","settings","arguments","length","undefined","Node","width","height","clientWidth","clientHeight","left","top","gammazero","betazero","lastgammazero","lastbetazero","transitionTimeout","updateCall","event","updateBind","update","bind","resetBind","reset","extendSettings","reverse","resetToStart","isSettingTrue","glare","glarePrerender","fullPageListening","gyroscope","gyroscopeSamples","elementListener","getElementListener","prepareGlare","updateClientSize","addEventListeners","startX","startY","setting","prototype","window","document","mouseEventElement","querySelector","onMouseEnterBind","onMouseEnter","onMouseMoveBind","onMouseMove","onMouseLeaveBind","onMouseLeave","onWindowResizeBind","onWindowResize","onDeviceOrientationBind","onDeviceOrientation","addEventListener","removeEventListeners","removeEventListener","destroy","clearTimeout","cancelAnimationFrame","style","willChange","transition","transform","resetGlare","vanillaTilt","gamma","beta","updateElementPosition","totalAngleX","gyroscopeMaxAngleX","gyroscopeMinAngleX","totalAngleY","gyroscopeMaxAngleY","gyroscopeMinAngleY","degreesPerPixelX","degreesPerPixelY","angleX","angleY","clientX","posX","clientY","posY","requestAnimationFrame","setTransition","max","backupScale","scale","glareElement","opacity","getValues","x","y","Math","min","tiltX","toFixed","tiltY","percentageX","percentageY","angle","atan2","PI","rect","getBoundingClientRect","offsetWidth","offsetHeight","values","perspective","axis","dispatchEvent","CustomEvent","jsTiltGlare","createElement","classList","add","jsTiltGlareInner","appendChild","glareElementWrapper","Object","assign","updateGlareSize","glareSize","innerWidth","documentElement","body","innerHeight","_this","speed","easing","setTimeout","defaultSettings","newSettings","property","hasAttribute","attribute","getAttribute","JSON","parse","e","init","elements","NodeList","slice","call","Array","forEach","querySelectorAll","distance","duration","desktop","mobile","animation","delay","origin","ScrollReveal","reveal","a","__esModule","default"],"version":3,"file":"index.2c33bff8.js.map"}