{"version":3,"file":"view.js","mappings":";;;;;;;;;;;;;;;;AAAqC;AAMZ;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,IAAI,GAAG,UAAUC,EAAE,EAAEC,QAAQ,EAAG;EAC5C,IAAI,CAACD,EAAE,GAAGA,EAAE;EACZ,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAExB,IAAKD,EAAE,CAACE,YAAY,CAAE,aAAa,CAAE,EAAG;IACvC,IAAI,CAACD,QAAQ,GAAGL,wDAAS,CAAEI,EAAE,CAACE,YAAY,CAAE,aAAa,CAAE,CAAE;IAC7DF,EAAE,CAACG,YAAY,CAAE,aAAa,EAAE,IAAI,CAACF,QAAQ,CAACG,IAAI,CAAE;EACrD;EAEA,IAAI,CAACC,OAAO,GAAG,KAAK;EAEpB,IAAK,IAAI,CAACL,EAAE,IAAI,IAAI,CAACC,QAAQ,EAAG;IAC/B,IAAI,CAACK,KAAK,EAAE;EACb;EAEA,OAAO,IAAI;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACAP,IAAI,CAACQ,SAAS,CAACD,KAAK,GAAG,YAAW;EACjC,IAAK,CAACR,+DAAgB,CAAE,IAAI,CAACE,EAAE,EAAE,IAAI,CAACC,QAAQ,CAACO,IAAI,CAAE,IAAI,IAAI,CAACH,OAAO,EAAG;IACvE,OAAO,KAAK;EACb;EAEA,IAAI,CAACA,OAAO,GAAG,IAAI;EACnB,IAAI,CAACI,IAAI,EAAE;EAEX,OAAO,IAAI;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACAV,IAAI,CAACQ,SAAS,CAACG,IAAI,GAAG,UAAUV,EAAE,EAAEC,QAAQ,EAAG;EAC9C,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EACxB,IAAI,CAACD,EAAE,GAAGA,EAAE;EAEZ,IAAI,CAACS,IAAI,EAAE;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACAV,IAAI,CAACQ,SAAS,CAACE,IAAI,GAAG,YAAW;EAChC,MAAME,GAAG,GAAG,IAAI,CAACC,WAAW,EAAE;EAE9B,IAAI,CAACC,aAAa,CAAEF,GAAG,CAAE;EACzB,IAAI,CAACG,YAAY,CAAEH,GAAG,CAAE;EACxB,IAAI,CAACX,EAAE,CAACG,YAAY,CAAE,gBAAgB,EAAE,CAAC,CAAE;EAE3CQ,GAAG,CAACI,OAAO,CAAE,CAAEf,EAAE,EAAEgB,KAAK,KAAM;IAC7B,IAAI,CAACC,YAAY,CAAEjB,EAAE,CAAE;IACvB,IAAI,CAACkB,YAAY,CAAElB,EAAE,EAAEgB,KAAK,CAAE;EAC/B,CAAC,CAAE;EAEHG,YAAY,CAAE,IAAI,CAACC,QAAQ,CAAE;EAC7B,IAAI,CAACA,QAAQ,GAAGC,UAAU,CAAE,MAAM;IACjC,IAAI,CAACC,cAAc,CAAEX,GAAG,CAAE;IAC1B,IAAI,CAACX,EAAE,CAACG,YAAY,CAAE,gBAAgB,EAAE,CAAC,CAAE;EAC5C,CAAC,EAAE,IAAI,CAACF,QAAQ,CAACsB,QAAQ,GAAG,IAAI,CAACtB,QAAQ,CAACuB,KAAK,GAAG,IAAI,CAACC,YAAY,CAAE;EAErE,OAAO,IAAI;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA1B,IAAI,CAACQ,SAAS,CAACK,WAAW,GAAG,YAAW;EACvC,IAAID,GAAG,GAAG,CAAE,IAAI,CAACX,EAAE,CAAE;EACrB,IAAI,CAACyB,YAAY,GAAG,CAAC;EAErB,IAAK,IAAI,CAACxB,QAAQ,CAACyB,SAAS,EAAG;IAC9Bf,GAAG,GAAG,IAAI,CAACX,EAAE,CAAC2B,gBAAgB,CAAE,WAAW,GAAG,IAAI,CAAC1B,QAAQ,CAACyB,SAAS,CAAE;IACvE,IAAI,CAACD,YAAY,GAAG,CAAEd,GAAG,CAACiB,MAAM,GAAG,CAAC,KAAO,IAAI,CAAC3B,QAAQ,CAAC4B,UAAU,IAAI,CAAC,CAAE;EAC3E,CAAC,MAEI,IAAK,IAAI,CAAC5B,QAAQ,CAAC6B,OAAO,EAAG;IACjCnB,GAAG,GAAG,IAAI,CAACX,EAAE,CAAC2B,gBAAgB,CAAE,YAAY,CAAE;EAC/C;EAEA,OAAOhB,GAAG;AACX,CAAC;;AAED;AACA;AACA;AACA;AACA;AACAZ,IAAI,CAACQ,SAAS,CAACM,aAAa,GAAG,UAAUF,GAAG,EAAG;EAC9CA,GAAG,CAACI,OAAO,CAAIf,EAAE,IAAM;IACtB,IAAKA,EAAE,CAAC+B,WAAW,EAAG;MACrB/B,EAAE,CAAC+B,WAAW,CAACC,YAAY,EAAE;IAC9B;EACD,CAAC,CAAE;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACAjC,IAAI,CAACQ,SAAS,CAACO,YAAY,GAAG,UAAUH,GAAG,EAAG;EAC7C,IAAK,IAAI,CAACV,QAAQ,CAAC6B,OAAO,EAAG;IAC5B,IAAI,CAAC9B,EAAE,CAACG,YAAY,CAAE,aAAa,EAAE,CAAC,CAAE;EACzC;EAEAQ,GAAG,CAACI,OAAO,CAAIf,EAAE,IAAM;IACtB,IAAKH,6DAAc,CAAEG,EAAE,CAAE,IAAI,QAAQ,EAAG;MACvCA,EAAE,CAACiC,KAAK,CAACC,OAAO,GAAG,cAAc;IAClC;IAEA,IAAK,IAAI,CAACjC,QAAQ,CAACyB,SAAS,EAAG;MAC9B1B,EAAE,CAACG,YAAY,CAAE,gBAAgB,EAAE,CAAC,CAAE;IACvC;EACD,CAAC,CAAE;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACAJ,IAAI,CAACQ,SAAS,CAACe,cAAc,GAAG,UAAUX,GAAG,EAAG;EAC/C,IAAK,IAAI,CAACV,QAAQ,CAAC6B,OAAO,EAAG;IAC5B,IAAI,CAAC9B,EAAE,CAACmC,eAAe,CAAE,aAAa,CAAE;EACzC;EAEAxB,GAAG,CAACI,OAAO,CAAIf,EAAE,IAAM;IACtB,IAAK,IAAI,CAACC,QAAQ,CAACyB,SAAS,EAAG;MAC9B1B,EAAE,CAACmC,eAAe,CAAE,gBAAgB,CAAE;IACvC;EACD,CAAC,CAAE;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACApC,IAAI,CAACQ,SAAS,CAACW,YAAY,GAAG,UAAUlB,EAAE,EAAEgB,KAAK,EAAG;EACnDhB,EAAE,CAAC+B,WAAW,GAAG,IAAIpC,8CAAQ,CAAEK,EAAE,EAAE,IAAI,CAACC,QAAQ,EAAEe,KAAK,CAAE;EACzDhB,EAAE,CAAC+B,WAAW,CAACtB,IAAI,EAAE;AACtB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACAV,IAAI,CAACQ,SAAS,CAACU,YAAY,GAAKjB,EAAE,IAAM;EACvC,IAAKA,EAAE,CAAC+B,WAAW,EAAG;IACrB/B,EAAE,CAAC+B,WAAW,CAACK,IAAI,EAAE;EACtB;AACD,CAAC;;;;;;;;;;;;;;;ACrLkD;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACO,MAAME,OAAO,GAAG,UAAUtC,EAAE,EAAEC,QAAQ,EAAG;EAC/C,IAAI,CAACD,EAAE,GAAGA,EAAE;EACZ,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAExB,OAAO,IAAI;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACAqC,OAAO,CAAC/B,SAAS,CAACE,IAAI,GAAG,YAAW;EACnC,IAAK,CAAC,IAAI,CAAC8B,UAAU,EAAE,EAAG;IACzB,OAAO,KAAK;EACb;EAEA,IAAI,CAACC,WAAW,GAAG,IAAI,CAACxC,EAAE,CAACyC,SAAS;EACpC,IAAIC,cAAc,GAAG,IAAI;EAEzB,MAAMC,IAAI,GAAKC,SAAS,IAAM;IAC7B,IAAK,CAACF,cAAc,EAAG;MACtBA,cAAc,GAAGE,SAAS;IAC3B;IAEA,MAAMC,QAAQ,GAAG,IAAI,CAACC,WAAW,CAAEF,SAAS,EAAEF,cAAc,CAAE;IAC9D,IAAI,CAAC1C,EAAE,CAAC+C,SAAS,GAAG,IAAI,CAACC,UAAU,CAAEH,QAAQ,CAAE;IAE/C,IAAKA,QAAQ,GAAG,CAAC,EAAG;MACnBI,MAAM,CAACC,qBAAqB,CAAEP,IAAI,CAAE;IACrC;EACD,CAAC;EAEDtB,UAAU,CAAE,MAAM;IACjB4B,MAAM,CAACC,qBAAqB,CAAEP,IAAI,CAAE;EACrC,CAAC,EAAE,IAAI,CAAC1C,QAAQ,CAACuB,KAAK,CAAE;EAExB,OAAO,IAAI;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACAc,OAAO,CAAC/B,SAAS,CAACuC,WAAW,GAAG,UAAUF,SAAS,EAAEF,cAAc,EAAG;EACrE,MAAMS,aAAa,GAAGP,SAAS,GAAGF,cAAc;EAChD,OAAOU,IAAI,CAACC,GAAG,CAAEF,aAAa,GAAG,IAAI,CAAClD,QAAQ,CAACsB,QAAQ,EAAE,CAAC,CAAE;AAC7D,CAAC;;AAED;AACA;AACA;AACA;AACAe,OAAO,CAAC/B,SAAS,CAACyC,UAAU,GAAG,UAAUH,QAAQ,EAAG;EACnD,MAAMvC,KAAK,GAAGgD,UAAU,CAAE,IAAI,CAACrD,QAAQ,CAACK,KAAK,CAAE;EAC/C,MAAMiD,GAAG,GAAGD,UAAU,CAAE,IAAI,CAACrD,QAAQ,CAACsD,GAAG,CAAE;EAC3C,MAAMC,OAAO,GAAGnB,+DAAgB,CAAEe,IAAI,CAACK,KAAK,CAAEZ,QAAQ,IAAKU,GAAG,GAAGjD,KAAK,CAAE,GAAGA,KAAK,CAAE,CAAE;EAEpF,MAAMoD,MAAM,GAAG,IAAI,CAACzD,QAAQ,CAACyD,MAAM,IAAI,WAAW;EAClD,OAAOA,MAAM,CAACC,OAAO,CAAE,WAAW,EAAEH,OAAO,CAAE;AAC9C,CAAC;;AAED;AACA;AACA;AACA;AACAlB,OAAO,CAAC/B,SAAS,CAACgC,UAAU,GAAG,YAAW;EACzC,MAAMqB,SAAS,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;EAE3D,OAASA,SAAS,CAACC,QAAQ,CAAE,IAAI,CAAC7D,EAAE,CAAC8D,OAAO,CAAE;AAC/C,CAAC;;;;;;;;;;;;;;;;;AC9EiC;AACE;AAMX;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMnE,QAAQ,GAAG,UAAUK,EAAE,EAAEC,QAAQ,EAAc;EAAA,IAAZe,KAAK,uEAAG,CAAC;EACxD,IAAI,CAAChB,EAAE,GAAGA,EAAE;EACZ,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAExB,IAAI,CAACkE,QAAQ,GAAG,CAAE,IAAI,CAAClE,QAAQ,CAAC4B,UAAU,IAAI,CAAC,IAAKb,KAAK;EACzD,IAAI,CAACA,KAAK,GAAGA,KAAK;EAElB,OAAO,IAAI;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACArB,QAAQ,CAACY,SAAS,CAACE,IAAI,GAAG,YAAW;EACpC,IAAK,IAAI,CAACR,QAAQ,CAACmE,OAAO,EAAG;IAC5B,IAAI,CAACC,MAAM,EAAE;EACd;EAEA,IAAK,IAAI,CAACpE,QAAQ,CAACG,IAAI,IAAI,SAAS,EAAG;IACtC,OAAO,IAAI,CAACkE,WAAW,EAAE;EAC1B;EAEA,IAAK,IAAI,CAACrE,QAAQ,CAACsE,SAAS,EAAG;IAC9B,OAAO,IAAI,CAACC,UAAU,EAAE;EACzB;EAEA,MAAMC,SAAS,GAAG,CACjB,IAAI,CAACC,aAAa,EAAE,EACpB,IAAI,CAACC,WAAW,EAAE,CAClB;EAED,MAAMC,cAAc,GAAG,IAAIC,cAAc,CAAE,IAAI,CAAC7E,EAAE,EAAEyE,SAAS,EAAE;IAC9DK,IAAI,EAAE,MAAM;IACZC,MAAM,EAAE,IAAI,CAAC9E,QAAQ,CAAC8E,MAAM;IAC5BxD,QAAQ,EAAE,IAAI,CAACtB,QAAQ,CAACsB,QAAQ;IAChCC,KAAK,EAAE,IAAI,CAACvB,QAAQ,CAACuB,KAAK,GAAG,IAAI,CAAC2C;EACnC,CAAC,CAAE;EAEH,IAAI,CAACa,SAAS,GAAG,IAAIC,SAAS,CAAEL,cAAc,CAAE;EAChD,IAAI,CAACI,SAAS,CAACvE,IAAI,EAAE;AACtB,CAAC;;AAED;AACA;AACA;AACA;AACAd,QAAQ,CAACY,SAAS,CAAC6B,IAAI,GAAG,YAAW;EACpC,IAAK,IAAI,CAAC4C,SAAS,EAAG;IACrB,IAAI,CAACA,SAAS,CAACE,MAAM,EAAE;EACxB;AACD,CAAC;;AAED;AACA;AACA;AACA;AACAvF,QAAQ,CAACY,SAAS,CAACiE,UAAU,GAAG,YAAW;EAC1C,IAAI,CAACW,MAAM,GAAG,IAAIpB,2CAAM,CAAG,IAAI,CAAC/D,EAAE,EAAE,IAAI,CAACC,QAAQ,CAAE;EACnD,MAAMmF,UAAU,GAAG,IAAI,CAACV,aAAa,EAAE;EACvC,MAAMW,QAAQ,GAAG,IAAI,CAACV,WAAW,EAAE;EAEnC,IAAI,CAACQ,MAAM,CAAC1E,IAAI,CAAE2E,UAAU,EAAEC,QAAQ,EAAE,IAAI,CAAClB,QAAQ,CAAE;AACxD,CAAC;;AAED;AACA;AACA;AACA;AACAxE,QAAQ,CAACY,SAAS,CAAC+D,WAAW,GAAG,YAAW;EAC3C,IAAI,CAACgB,OAAO,GAAG,IAAIhD,6CAAO,CAAE,IAAI,CAACtC,EAAE,EAAE,IAAI,CAACC,QAAQ,CAAE;EACpD,IAAI,CAACqF,OAAO,CAAC7E,IAAI,EAAE;AACpB,CAAC;;AAED;AACA;AACA;AACA;AACAd,QAAQ,CAACY,SAAS,CAACyB,YAAY,GAAG,YAAW;EAC5C,IAAK,IAAI,CAACsD,OAAO,EAAG;IACnB,IAAI,CAACA,OAAO,CAACtF,EAAE,CAACyC,SAAS,GAAG,IAAI,CAAC6C,OAAO,CAAC9C,WAAW;EACrD;AACD,CAAC;;AAED;AACA;AACA;AACA;AACA7C,QAAQ,CAACY,SAAS,CAAC8D,MAAM,GAAG,YAAW;EACtC,MAAMI,SAAS,GAAG,CACjB;IAAEc,OAAO,EAAE;EAAC,CAAC,EACb;IAAEA,OAAO,EAAE;EAAE,CAAC,CACd;EAED,IAAIhE,QAAQ,GAAG,IAAI,CAACtB,QAAQ,CAACsB,QAAQ;EACrC,IAAK,IAAI,CAACtB,QAAQ,CAACG,IAAI,IAAI,MAAM,EAAG;IACnCmB,QAAQ,GAAGA,QAAQ,GAAG,CAAC;EACxB;EAEA,MAAMqD,cAAc,GAAG,IAAIC,cAAc,CAAE,IAAI,CAAC7E,EAAE,EAAEyE,SAAS,EAAE;IAC9DK,IAAI,EAAE,MAAM;IACZvD,QAAQ,EAAEA,QAAQ;IAClBwD,MAAM,EAAE,IAAI,CAAC9E,QAAQ,CAAC8E,MAAM;IAC5BvD,KAAK,EAAE,IAAI,CAACvB,QAAQ,CAACuB,KAAK,GAAG,IAAI,CAAC2C;EACnC,CAAC,CAAE;EAEH,MAAMa,SAAS,GAAG,IAAIC,SAAS,CAAEL,cAAc,CAAE;EACjDI,SAAS,CAACvE,IAAI,EAAE;AACjB,CAAC;;AAED;AACA;AACA;AACA;AACAd,QAAQ,CAACY,SAAS,CAACmE,aAAa,GAAG,YAAW;EAC7C,MAAMc,UAAU,GAAG,IAAI,CAACC,aAAa,EAAE;EACvC,MAAMC,YAAY,GAAG,EAAE;EACvB,IAAIC,SAAS,GAAG,CAAC,CAAC;EAElB,KAAM,MAAMC,IAAI,IAAIJ,UAAU,EAAG;IAChC,IAAK,IAAI,CAACvF,QAAQ,CAAE2F,IAAI,CAAE,EAAG;MAC5BF,YAAY,CAACG,IAAI,CAAED,IAAI,GAAG,GAAG,GAAG,IAAI,CAACE,UAAU,CAAEF,IAAI,EAAE,IAAI,CAAC3F,QAAQ,CAAE2F,IAAI,CAAE,CAAE,GAAG,GAAG,CAAE;IACvF;EACD;EAEA,IAAKF,YAAY,CAAC9D,MAAM,EAAG;IAC1B+D,SAAS,CAACI,SAAS,GAAGL,YAAY,CAACM,IAAI,CAAC,GAAG,CAAC;EAC7C;EAEA,IAAK,IAAI,CAAC/F,QAAQ,CAACgG,QAAQ,EAAG;IAC7BN,SAAS,CAACM,QAAQ,GAAG,IAAI,CAACH,UAAU,CAAE,UAAU,EAAE,IAAI,CAAC7F,QAAQ,CAACgG,QAAQ,CAAE;EAC3E;EAEA,OAAON,SAAS;AACjB,CAAC;;AAED;AACA;AACA;AACA;AACAhG,QAAQ,CAACY,SAAS,CAACoE,WAAW,GAAG,YAAW;EAC3C,MAAMa,UAAU,GAAG,IAAI,CAACC,aAAa,EAAE;EACvC,MAAMC,YAAY,GAAG,EAAE;EACvB,IAAIC,SAAS,GAAG,CAAC,CAAC;EAElB,KAAM,MAAMC,IAAI,IAAIJ,UAAU,EAAG;IAChC,IAAK,IAAI,CAACvF,QAAQ,CAAE2F,IAAI,CAAE,EAAG;MAC5BF,YAAY,CAACG,IAAI,CAAED,IAAI,GAAG,GAAG,GAAGJ,UAAU,CAAEI,IAAI,CAAE,GAAG,GAAG,CAAE;IAC3D;EACD;EAEA,IAAKF,YAAY,CAAC9D,MAAM,EAAG;IAC1B+D,SAAS,CAACI,SAAS,GAAGL,YAAY,CAACM,IAAI,CAAC,GAAG,CAAC;EAC7C;EAEA,IAAK,IAAI,CAAC/F,QAAQ,CAACgG,QAAQ,EAAG;IAC7BN,SAAS,CAACM,QAAQ,GAAG,gBAAgB;EACtC;EAEA,OAAON,SAAS;AACjB,CAAC;;AAGD;AACA;AACA;AACA;AACA;AACA;AACAhG,QAAQ,CAACY,SAAS,CAACuF,UAAU,GAAG,UAAUF,IAAI,EAAEM,GAAG,EAAG;EACrD,IAAIC,YAAY,GAAGnC,6DAAc,CAAEkC,GAAG,CAAE;EACxC,MAAME,WAAW,GAAG,EAAE;EAEtB,IAAKR,IAAI,IAAI,UAAU,EAAG;IACzB,IAAK,IAAI,CAAC3F,QAAQ,CAACoG,UAAU,IAAInC,oDAAK,CAAE,IAAI,CAAClD,KAAK,CAAE,EAAG;MACtD,MAAMsF,CAAC,GAAGH,YAAY;MACtB,IAAII,EAAE,GAAG,CAAED,CAAC,CAAE,CAAC,CAAE,EAAEA,CAAC,CAAE,CAAC,CAAE,CAAE;MAE3B,IAAKA,CAAC,CAAC1E,MAAM,IAAI,CAAC,EAAG;QACpB2E,EAAE,GAAG,CAAED,CAAC,CAAE,CAAC,CAAE,EAAEA,CAAC,CAAE,CAAC,CAAE,EAAEA,CAAC,CAAE,CAAC,CAAE,EAAEA,CAAC,CAAE,CAAC,CAAE,CAAE;MACxC;MAEAH,YAAY,GAAGI,EAAE;IAClB;IAEA,OAAOtC,6DAAc,CAAEiC,GAAG,EAAEC,YAAY,CAAE;EAC3C;EAEAA,YAAY,CAACpF,OAAO,CAAIyF,SAAS,IAAM;IACtCA,SAAS,GAAGlD,UAAU,CAAEkD,SAAS,CAAE;IAEnC,IAAK,IAAI,CAACvG,QAAQ,CAACoG,UAAU,IAAInC,oDAAK,CAAE,IAAI,CAAClD,KAAK,CAAE,EAAG;MACtD,IAAK,CAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAE,CAAC6C,QAAQ,CAAE+B,IAAI,CAAE,EAAG;QACvD,MAAMa,MAAM,GAAGrD,IAAI,CAACsD,GAAG,CAAE,CAAC,GAAGF,SAAS,CAAE;QACxCA,SAAS,GAAKA,SAAS,GAAG,CAAC,GAAK,CAAC,GAAGC,MAAM,GAAG,CAAC,GAAGA,MAAM;MACxD,CAAC,MAEI;QACJD,SAAS,GAAG,CAACA,SAAS;MACvB;IACD;IAEAJ,WAAW,CAACP,IAAI,CAAEW,SAAS,CAAE;EAC9B,CAAC,CAAE;EAIH,OAAOvC,6DAAc,CAAEiC,GAAG,EAAEE,WAAW,CAAE;AAC1C,CAAC;;AAED;AACA;AACA;AACA;AACAzG,QAAQ,CAACY,SAAS,CAACkF,aAAa,GAAG,YAAW;EAC7C,OAAO;IACNkB,UAAU,EAAE,KAAK;IACjBC,UAAU,EAAE,KAAK;IACjBC,KAAK,EAAE,GAAG;IACVC,MAAM,EAAE,GAAG;IACXC,MAAM,EAAE,GAAG;IACXC,MAAM,EAAE,MAAM;IACdC,OAAO,EAAE,MAAM;IACfC,OAAO,EAAE,MAAM;IACfC,KAAK,EAAE,MAAM;IACbC,KAAK,EAAE;EACR,CAAC;AACF,CAAC;;;;;;;;;;;;;;;ACjPwB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACO,MAAMrD,MAAM,GAAG,UAAU/D,EAAE,EAAEC,QAAQ,EAAG;EAC9C,IAAI,CAACD,EAAE,GAAGA,EAAE;EACZ,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAExB,OAAO,IAAI;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA8D,MAAM,CAACxD,SAAS,CAACE,IAAI,GAAG,UAAU2E,UAAU,EAAEC,QAAQ,EAAiB;EAAA,IAAflB,QAAQ,uEAAG,CAAC;EACnE,KAAM,MAAMyB,IAAI,IAAIR,UAAU,EAAG;IAChC,MAAM;MAAEX,SAAS;MAAE4C;IAAO,CAAC,GAAG,IAAI,CAACC,YAAY,CAAE1B,IAAI,EAAER,UAAU,CAAEQ,IAAI,CAAE,EAAEP,QAAQ,CAAEO,IAAI,CAAE,CAAE;IAC7F,IAAIrE,QAAQ,GAAK8F,MAAM,GAAG,EAAE,GAAK,IAAI;IAErC,IAAK,IAAI,CAACpH,QAAQ,CAACsB,QAAQ,GAAGA,QAAQ,EAAG;MACxCA,QAAQ,GAAG,IAAI,CAACtB,QAAQ,CAACsB,QAAQ;IAClC;IAEA,IAAKkD,SAAS,CAAC7C,MAAM,EAAG;MACvB,MAAMgD,cAAc,GAAG,IAAIC,cAAc,CAAE,IAAI,CAAC7E,EAAE,EAAEyE,SAAS,EAAE;QAC9DK,IAAI,EAAE,MAAM;QACZC,MAAM,EAAE,QAAQ;QAChBxD,QAAQ,EAAEA,QAAQ;QAClBC,KAAK,EAAE,IAAI,CAACvB,QAAQ,CAACuB,KAAK,GAAG2C;MAC9B,CAAC,CAAE;MAEHS,cAAc,CAAC2C,SAAS,GAAG,KAAK;MAChC,IAAI,CAACvC,SAAS,GAAG,IAAIC,SAAS,CAAEL,cAAc,CAAE;MAChD,IAAI,CAACI,SAAS,CAACvE,IAAI,EAAE;IACtB;EACD;AACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAsD,MAAM,CAACxD,SAAS,CAAC+G,YAAY,GAAG,UAAU1B,IAAI,EAAE4B,QAAQ,EAAEC,MAAM,EAAG;EAClE,MAAMC,SAAS,GAAG,IAAI;EACtB,MAAMC,SAAS,GAAG,EAAE;EACpB,MAAMC,UAAU,GAAG,CAAC,GAAGD,SAAS;EAEhC,MAAME,QAAQ,GAAG7D,6DAAc,CAAEwD,QAAQ,CAAE;EAC3C,MAAMM,MAAM,GAAG9D,6DAAc,CAAEyD,MAAM,CAAE;EACvC,MAAMhD,SAAS,GAAG,EAAE;EACpB,IAAIsD,WAAW,GAAG,EAAE;EACpB,IAAIC,WAAW,GAAG,EAAE;EAEpBH,QAAQ,CAAC9G,OAAO,CAAE,MAAM;IACvBgH,WAAW,CAAClC,IAAI,CAAE,CAAC,CAAE;EACtB,CAAC,CAAE;EAEH,IAAIoC,SAAS,GAAG,CAAC;EACjB,IAAIZ,MAAM,GAAG,CAAC;EACd,IAAInF,OAAO;EAEX,KAAM,IAAIS,IAAI,GAAG,CAAC,EAAEA,IAAI,IAAI+E,SAAS,EAAE/E,IAAI,IAAI,CAAC,EAAG;IAClDkF,QAAQ,CAAC9G,OAAO,CAAE,CAAET,KAAK,EAAE4H,CAAC,KAAM;MACjC5H,KAAK,GAAGgD,UAAU,CAAEhD,KAAK,CAAE;MAC3B,IAAIiD,GAAG,GAAGD,UAAU,CAAEwE,MAAM,CAAEI,CAAC,CAAE,CAAE;MACnC,IAAIC,KAAK,GAAG,IAAI,CAACC,eAAe,CAAE9H,KAAK,EAAEiD,GAAG,EAAEwE,WAAW,CAAEG,CAAC,CAAE,CAAE;MAChEH,WAAW,CAAEG,CAAC,CAAE,IAAIC,KAAK,GAAGP,UAAU;MACtCI,WAAW,CAAEE,CAAC,CAAE,GAAG5H,KAAK,GAAGyH,WAAW,CAAEG,CAAC,CAAE,GAAGN,UAAU;MACxDC,QAAQ,CAAEK,CAAC,CAAE,GAAGF,WAAW,CAAEE,CAAC,CAAE;IACjC,CAAC,CAAE;IAEH,IAAIG,aAAa,GAAGpE,6DAAc,CAAEuD,QAAQ,EAAEQ,WAAW,CAAE;IAC3DvD,SAAS,CAACoB,IAAI,CAAE;MAAE,CAACD,IAAI,GAAGyC;IAAc,CAAC,CAAE;IAE3CnG,OAAO,GAAG,IAAI,CAACoG,iBAAiB,CAAEN,WAAW,EAAE9F,OAAO,CAAE;IACxD+F,SAAS,GAAG,IAAI,CAACM,kBAAkB,CAAErG,OAAO,EAAE+F,SAAS,CAAE;IAEzD,IAAKA,SAAS,IAAIN,SAAS,EAAG;MAC7BN,MAAM,GAAG1E,IAAI;MACb;IACD;EACD;EAEA,IAAK0E,MAAM,IAAI,CAAC,EAAG;IAClBA,MAAM,GAAGK,SAAS;EACnB;EAEA,OAAO;IAAEjD,SAAS;IAAE4C;EAAO,CAAC;AAC7B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACAtD,MAAM,CAACxD,SAAS,CAAC+H,iBAAiB,GAAG,UAAUN,WAAW,EAAE9F,OAAO,EAAG;EACrE,IAAIsG,OAAO,GAAG,CAAC;EAEfR,WAAW,CAACjH,OAAO,CAAI0H,QAAQ,IAAM;IACpCD,OAAO,IAAMC,QAAQ,IAAI,CAAG;EAC7B,CAAC,CAAE;EAEH,MAAMC,SAAS,GAAGtF,IAAI,CAACuF,GAAG,CAAEzG,OAAO,IAAI,CAAC0G,QAAQ,EAAExF,IAAI,CAACyF,IAAI,CAAEL,OAAO,CAAE,CAAE;EACxE,MAAMM,SAAS,GAAG1F,IAAI,CAACC,GAAG,CAAEnB,OAAO,IAAI0G,QAAQ,EAAExF,IAAI,CAACyF,IAAI,CAAEL,OAAO,CAAE,CAAE;EAEvE,OAAOtG,OAAO,GAAG,CAAC,GAAGwG,SAAS,GAAGI,SAAS;AAC3C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA/E,MAAM,CAACxD,SAAS,CAACgI,kBAAkB,GAAG,UAAUrG,OAAO,EAAE+F,SAAS,EAAG;EACpE,MAAMc,eAAe,GAAG,CAAC;EAEzB,IAAK3F,IAAI,CAACsD,GAAG,CAAExE,OAAO,CAAE,GAAG6G,eAAe,EAAG;IAC5Cd,SAAS,IAAI,CAAC;EACf,CAAC,MAAM;IACNA,SAAS,GAAG,CAAC;EACd;EAEA,OAAOA,SAAS;AACjB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAlE,MAAM,CAACxD,SAAS,CAAC6H,eAAe,GAAG,UAAUxC,IAAI,EAAErC,GAAG,EAAEyF,QAAQ,EAAG;EAClE,MAAMC,SAAS,GAAG,CAAC,IAAI,CAAChJ,QAAQ,CAACgJ,SAAS;EAC1C,MAAMC,OAAO,GAAG,CAAC,IAAI,CAACjJ,QAAQ,CAACiJ,OAAO;EACtC,MAAMC,IAAI,GAAG,IAAI,CAAClJ,QAAQ,CAACkJ,IAAI;EAE/B,MAAMC,OAAO,GAAGH,SAAS,IAAKrD,IAAI,GAAGrC,GAAG,CAAE;EAC1C,MAAM8F,QAAQ,GAAGH,OAAO,GAAGF,QAAQ;EAEnC,OAAO,CAAEI,OAAO,GAAGC,QAAQ,IAAKF,IAAI;AACrC,CAAC;;;;;;;;;;;;;;;AClK2C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,KAAK,GAAG,UAAUtJ,EAAE,EAAG;EACnC,IAAI,CAACA,EAAE,GAAGA,EAAE;EAEZ,IAAI,CAACuJ,SAAS,GAAG3J,wDAAS,CAAEI,EAAE,CAACE,YAAY,CAAE,cAAc,CAAE,CAAE;EAC/DF,EAAE,CAACG,YAAY,CAAE,cAAc,EAAE,IAAI,CAACoJ,SAAS,CAACnJ,IAAI,CAAE;EAEtD,IAAI,CAACC,OAAO,GAAG,KAAK;EACpB,IAAI,CAACC,KAAK,EAAE;EAEZ,OAAO,IAAI;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACAgJ,KAAK,CAAC/I,SAAS,CAACD,KAAK,GAAG,UAAUkJ,WAAW,EAAG;EAC/C,IAAK,IAAI,CAACxJ,EAAE,CAACyJ,YAAY,CAAE,aAAa,CAAE,IAAI,IAAI,CAACzJ,EAAE,CAACE,YAAY,CAAE,gBAAgB,CAAE,IAAI,CAAC,EAAG;IAC7F,OAAO,KAAK;EACb;EAEA,IAAI,CAACG,OAAO,GAAG,IAAI;EACnB,IAAI,CAACmJ,WAAW,GAAGA,WAAW;EAC9B;;EAEA,OAAO,IAAI;AACZ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnCD;AACA;AACA;AACA;AACA;AACO,MAAME,SAAS,GAAG,MAAM;EAC9B,OAAOtG,IAAI,CAACuG,MAAM,EAAE,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,OAAO,GAAKC,GAAG,IAAM;EACjC,OAAOA,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,CAAChE,IAAI,CAAC,GAAG,CAAC;AAChC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMiE,aAAa,GAAG,CAAEC,UAAU,EAAEC,MAAM,KAAM;EACtD,MAAMC,IAAI,GAAGC,IAAI,CAACC,KAAK,CAAEJ,UAAU,CAAEA,UAAU,CAAC9J,IAAI,CAAE,IAAI,IAAI,CAAE;EAChE,MAAMwF,IAAI,GAAG2E,MAAM,CAACC,IAAI,CAAEL,MAAM,CAAE,CAAE,CAAC,CAAE;EACvCC,IAAI,CAAExE,IAAI,CAAE,GAAGuE,MAAM,CAAEvE,IAAI,CAAE;EAE7B,OAAOyE,IAAI,CAACI,SAAS,CAAEL,IAAI,CAAE;AAC9B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMM,cAAc,GAAG,CAAER,UAAU,EAAEtE,IAAI,KAAO;EACtD,MAAMwE,IAAI,GAAGC,IAAI,CAACC,KAAK,CAAEJ,UAAU,CAAEA,UAAU,CAAC9J,IAAI,CAAE,IAAI,IAAI,CAAE;EAChE,OAAOgK,IAAI,CAAExE,IAAI,CAAE;AACpB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,MAAM+E,SAAS,GAAKP,IAAI,IAAM;EACpC,OAAOC,IAAI,CAACI,SAAS,CAAEL,IAAI,CAAE,CAACzG,OAAO,CAAE,KAAK,EAAC,GAAG,CAAE;AACnD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,MAAM/D,SAAS,GAAKmK,GAAG,IAAM;EACnC,OAAOM,IAAI,CAACC,KAAK,CAAEP,GAAG,CAACpG,OAAO,CAAE,KAAK,EAAC,GAAG,CAAE,CAAE;AAC9C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMiH,eAAe,GAAG,CAAEV,UAAU,EAAEW,QAAQ,KAAM;EAC1D,IAAK,CAACX,UAAU,CAAEA,UAAU,CAAC9J,IAAI,CAAE,EAAG;IACrC8J,UAAU,CAAEA,UAAU,CAAC9J,IAAI,CAAE,GAAGiK,IAAI,CAACI,SAAS,CAAEI,QAAQ,CAAE;EAC3D;EAEA,OAAOX,UAAU;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,MAAMY,SAAS,GAAKC,IAAI,IAAM;EACpC,IAAKA,IAAI,CAAClH,QAAQ,CAAE,IAAI,CAAE,EAAG;IAC5BkH,IAAI,GAAGA,IAAI,CAACpH,OAAO,CAAE,IAAI,EAAE,EAAE,CAAE;IAC/BoH,IAAI,GAAGzH,UAAU,CAAEyH,IAAI,CAAE;EAC1B,CAAC,MAEI,IAAKA,IAAI,CAAClH,QAAQ,CAAE,GAAG,CAAE,EAAG;IAChCkH,IAAI,GAAGA,IAAI,CAACpH,OAAO,CAAE,GAAG,EAAE,EAAE,CAAE;IAC9BoH,IAAI,GAAGzH,UAAU,CAAEyH,IAAI,CAAE,GAAG,IAAI;EACjC;EAEA,OAAOA,IAAI;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAY,GAAG,CAAE5K,IAAI,EAAE6K,QAAQ,KAAM;EACjD,MAAMC,IAAI,GAAG;IACZvE,UAAU,EAAE,KAAK;IACjBC,UAAU,EAAE;EACb,CAAC;EAED,QAAQxG,IAAI;IACX,KAAK,MAAM;MAAE8K,IAAI,CAACvE,UAAU,GAAGsE,QAAQ,GAAG,IAAI;MAAE;IAChD,KAAK,OAAO;MAAEC,IAAI,CAACvE,UAAU,GAAG,CAACsE,QAAQ,GAAG,IAAI;MAAE;IAClD,KAAK,KAAK;MAAEC,IAAI,CAACtE,UAAU,GAAGqE,QAAQ,GAAG,IAAI;MAAE;IAC/C,KAAK,SAAS;MACbC,IAAI,CAACtE,UAAU,GAAGqE,QAAQ,GAAG,IAAI;MACjCC,IAAI,CAACvE,UAAU,GAAGsE,QAAQ,GAAG,IAAI;MAClC;IACA,KAAK,UAAU;MACdC,IAAI,CAACtE,UAAU,GAAGqE,QAAQ,GAAG,IAAI;MACjCC,IAAI,CAACvE,UAAU,GAAG,CAACsE,QAAQ,GAAG,IAAI;MACnC;IACA,KAAK,SAAS;MACbC,IAAI,CAACtE,UAAU,GAAG,CAACqE,QAAQ,GAAG,IAAI;MAClCC,IAAI,CAACvE,UAAU,GAAGsE,QAAQ,GAAG,IAAI;MAClC;IACA,KAAK,UAAU;MACdC,IAAI,CAACtE,UAAU,GAAG,CAACqE,QAAQ,GAAG,IAAI;MAClCC,IAAI,CAACvE,UAAU,GAAG,CAACsE,QAAQ,GAAG,IAAI;MACnC;IACA;MAASC,IAAI,CAACtE,UAAU,GAAG,CAACqE,QAAQ,GAAG,IAAI;MAAE;EAAM;EAGpD,KAAM,MAAMrF,IAAI,IAAIsF,IAAI,EAAG;IAC1B,IAAKA,IAAI,CAAEtF,IAAI,CAAE,KAAK,KAAK,EAAG;MAC7B,OAAOsF,IAAI,CAACtF,IAAI,CAAC;IAClB;EACD;EAEA,OAAOsF,IAAI;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,SAAS,GAAG,CAAE/K,IAAI,EAAEgL,MAAM,KAAM;EAC5C,MAAMC,QAAQ,GAAGD,MAAM,GAAG,KAAK;EAC/B,MAAME,QAAQ,GAAG,CAACF,MAAM,GAAG,KAAK;EAEhC,MAAMpE,MAAM,GAAG;IACdC,OAAO,EAAE,KAAK;IACdC,OAAO,EAAE,KAAK;IACdF,MAAM,EAAE;EACT,CAAC;EAED,QAAQ5G,IAAI;IACX,KAAK,MAAM;MAAE4G,MAAM,CAACE,OAAO,GAAGmE,QAAQ;MAAE;IACxC,KAAK,OAAO;MAAErE,MAAM,CAACE,OAAO,GAAGoE,QAAQ;MAAE;IACzC,KAAK,QAAQ;MAAEtE,MAAM,CAACC,OAAO,GAAGoE,QAAQ;MAAE;IAC1C,KAAK,WAAW;MAAErE,MAAM,CAACA,MAAM,GAAGsE,QAAQ;MAAE;IAC5C,KAAK,SAAS;MAAEtE,MAAM,CAACA,MAAM,GAAGqE,QAAQ;MAAE;IAC1C;MAASrE,MAAM,CAACC,OAAO,GAAGqE,QAAQ;MAAE;EAAM;EAG3C,KAAM,MAAM1F,IAAI,IAAIoB,MAAM,EAAG;IAC5B,IAAKA,MAAM,CAAEpB,IAAI,CAAE,KAAK,KAAK,EAAG;MAC/B,OAAOoB,MAAM,CAACpB,IAAI,CAAC;IACpB;EACD;EAEA,OAAOoB,MAAM;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMuE,OAAO,GAAG,CAAEnL,IAAI,EAAEgL,MAAM,KAAM;EAC1C,MAAMC,QAAQ,GAAGD,MAAM,GAAG,KAAK;EAC/B,MAAME,QAAQ,GAAG,CAACF,MAAM,GAAG,KAAK;EAEhC,MAAMI,IAAI,GAAG;IACZrE,KAAK,EAAE,KAAK;IACZC,KAAK,EAAE;EACR,CAAC;EAED,QAAQhH,IAAI;IACX,KAAK,OAAO;MAAEoL,IAAI,CAACpE,KAAK,GAAGiE,QAAQ;MAAE;IACrC,KAAK,QAAQ;MAAEG,IAAI,CAACpE,KAAK,GAAGkE,QAAQ;MAAE;IACtC,KAAK,MAAM;MAAEE,IAAI,CAACrE,KAAK,GAAGkE,QAAQ;MAAE;IACpC;MAASG,IAAI,CAACrE,KAAK,GAAGmE,QAAQ;MAAE;EAAM;EAGvC,KAAM,MAAM1F,IAAI,IAAI4F,IAAI,EAAG;IAC1B,IAAKA,IAAI,CAAE5F,IAAI,CAAE,KAAK,KAAK,EAAG;MAC7B,OAAO4F,IAAI,CAAC5F,IAAI,CAAC;IAClB;EACD;EAEA,OAAO4F,IAAI;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,WAAW,GAAKrL,IAAI,IAAM;EACtC,IAAI6F,QAAQ;EAEZ,QAAQ7F,IAAI;IACX,KAAK,MAAM;MAAE6F,QAAQ,GAAG,sBAAsB;MAAE;IAChD,KAAK,OAAO;MAAEA,QAAQ,GAAG,sBAAsB;MAAE;IACjD,KAAK,KAAK;MAAEA,QAAQ,GAAG,sBAAsB;MAAE;IAC/C,KAAK,YAAY;MAAEA,QAAQ,GAAG,gBAAgB;MAAE;IAChD,KAAK,UAAU;MAAEA,QAAQ,GAAG,gBAAgB;MAAE;IAC9C;MAASA,QAAQ,GAAG,sBAAsB;MAAE;EAAM;EAGnD,OAAOA,QAAQ;AAChB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,MAAMyF,QAAQ,GAAG,CAAEtL,IAAI,EAAEgL,MAAM,KAAM;EAC3C,IAAIO,IAAI,GAAG,CAAC,GAAKP,MAAM,GAAG,GAAK;EAC/B,IAAIQ,MAAM,GAAG,CAAC,GAAKR,MAAM,GAAG,IAAM;EAElC,MAAMvE,KAAK,GAAG;IACbC,MAAM,EAAE,KAAK;IACbC,MAAM,EAAE,KAAK;IACbF,KAAK,EAAE;EACR,CAAC;EAED,QAAQzG,IAAI;IACX,KAAK,KAAK;MAAEyG,KAAK,CAACC,MAAM,GAAG6E,IAAI;MAAE;IACjC,KAAK,MAAM;MAAE9E,KAAK,CAACC,MAAM,GAAG8E,MAAM;MAAE;IACpC,KAAK,KAAK;MAAE/E,KAAK,CAACE,MAAM,GAAG4E,IAAI;MAAE;IACjC,KAAK,IAAI;MAAE9E,KAAK,CAACA,KAAK,GAAG8E,IAAI;MAAE;IAC/B,KAAK,KAAK;MAAE9E,KAAK,CAACA,KAAK,GAAG+E,MAAM;MAAE;IAClC;MAAS/E,KAAK,CAACE,MAAM,GAAG6E,MAAM;MAAE;EAAM;EAGvC,KAAM,MAAMhG,IAAI,IAAIiB,KAAK,EAAG;IAC3B,IAAKA,KAAK,CAAEjB,IAAI,CAAE,KAAK,KAAK,EAAG;MAC9B,OAAOiB,KAAK,CAACjB,IAAI,CAAC;IACnB;EACD;EAEA,OAAOiB,KAAK;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMgF,aAAa,GAAG,MAAM;EAClC,OAAO,CACN;IAAEC,KAAK,EAAE,MAAM;IAAEC,KAAK,EAAE;EAAO,CAAC,EAChC;IAAED,KAAK,EAAE,OAAO;IAAEC,KAAK,EAAE;EAAQ,CAAC,EAClC;IAAED,KAAK,EAAE,IAAI;IAAEC,KAAK,EAAE;EAAK,CAAC,EAC5B;IAAED,KAAK,EAAE,MAAM;IAAEC,KAAK,EAAE;EAAO,CAAC,CAChC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAY,GAAG,MAAM;EACjC,OAAO,CACN;IAAEF,KAAK,EAAE,IAAI;IAAEC,KAAK,EAAE;EAAK,CAAC,EAC5B;IAAED,KAAK,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAI,CAAC,CAC1B;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAME,UAAU,GAAG,MAAM;EAC/B,OAAO,CACN;IAAEF,KAAK,EAAE,QAAQ;IAAED,KAAK,EAAE;EAA2C,CAAC,EACtE;IAAEC,KAAK,EAAE,MAAM;IAAED,KAAK,EAAE;EAA2C,CAAC,EACpE;IAAEC,KAAK,EAAE,QAAQ;IAAED,KAAK,EAAE;EAA2C,CAAC,EACtE;IAAEC,KAAK,EAAE,SAAS;IAAED,KAAK,EAAE;EAA2C,CAAC,EACvE;IAAEC,KAAK,EAAE,WAAW;IAAED,KAAK,EAAE;EAA2C,CAAC,EAEzE;IAAEC,KAAK,EAAE,YAAY;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC1E;IAAEC,KAAK,EAAE,aAAa;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC3E;IAAEC,KAAK,EAAE,aAAa;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC3E;IAAEC,KAAK,EAAE,aAAa;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC3E;IAAEC,KAAK,EAAE,YAAY;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC1E;IAAEC,KAAK,EAAE,YAAY;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC1E;IAAEC,KAAK,EAAE,YAAY;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC1E;IAAEC,KAAK,EAAE,YAAY;IAAED,KAAK,EAAE;EAA4C,CAAC,EAE3E;IAAEC,KAAK,EAAE,aAAa;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC3E;IAAEC,KAAK,EAAE,cAAc;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC5E;IAAEC,KAAK,EAAE,cAAc;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC5E;IAAEC,KAAK,EAAE,cAAc;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC5E;IAAEC,KAAK,EAAE,aAAa;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC3E;IAAEC,KAAK,EAAE,aAAa;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC3E;IAAEC,KAAK,EAAE,aAAa;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC3E;IAAEC,KAAK,EAAE,aAAa;IAAED,KAAK,EAAE;EAA2C,CAAC,EAE3E;IAAEC,KAAK,EAAE,eAAe;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC7E;IAAEC,KAAK,EAAE,gBAAgB;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC9E;IAAEC,KAAK,EAAE,gBAAgB;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC9E;IAAEC,KAAK,EAAE,gBAAgB;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC9E;IAAEC,KAAK,EAAE,eAAe;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC7E;IAAEC,KAAK,EAAE,eAAe;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC7E;IAAEC,KAAK,EAAE,eAAe;IAAED,KAAK,EAAE;EAA2C,CAAC,EAC7E;IAAEC,KAAK,EAAE,eAAe;IAAED,KAAK,EAAE;EAA2C,CAAC,CAC7E;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMhM,gBAAgB,GAAG,UAAEE,EAAE,EAA2B;EAAA,IAAzBkM,cAAc,uEAAG,EAAE;EACxD,IAAIC,IAAI,GAAGnM,EAAE,CAACoM,qBAAqB,EAAE;EACrC,IAAIC,YAAY,GAAKpJ,MAAM,CAACqJ,WAAW,IAAIC,QAAQ,CAACC,eAAe,CAACC,YAAc;EAElF,MAAMC,OAAO,GAAG,CAAEP,IAAI,CAACQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAGR,IAAI,CAACQ,GAAG,IAAK,CAAC,CAACR,IAAI,CAACS,MAAM;EAChE,MAAMC,UAAU,GAAG,CAAEV,IAAI,CAACW,MAAM,GAAGT,YAAY,IAAKF,IAAI,CAACS,MAAM;EAE/D,OAAO,EACNxJ,IAAI,CAACK,KAAK,CAAE,GAAG,GAAKiJ,OAAO,GAAG,GAAK,CAAE,GAAGR,cAAc,IACtD9I,IAAI,CAACK,KAAK,CAAE,GAAG,GAAGoJ,UAAU,GAAG,GAAG,CAAE,GAAGX,cAAc,CACrD;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,MAAMrM,cAAc,GAAKG,EAAE,IAAM;EACpC,MAAM+M,MAAM,GAAG/M,EAAE,CAACgN,YAAY,IAAI/J,MAAM,CAACgK,gBAAgB,CAAEjN,EAAE,EAAE,EAAE,CAAE;EACnE,OAAO+M,MAAM,CAAC7K,OAAO;AACzB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,gBAAgB,GAAK6K,GAAG,IAAM;EAC1C,OAAOA,GAAG,CAACtD,QAAQ,EAAE,CAACjG,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC;AAC5D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,MAAMK,cAAc,GAAK+F,GAAG,IAAM;EACxCA,GAAG,GAAKA,GAAG,IAAIoD,SAAS,GAAK,EAAE,GAAGpD,GAAG;EAErC,IAAIqD,KAAK,GAAG,mBAAmB;EAC/B,OAAOrD,GAAG,CAACH,QAAQ,EAAE,CAACyD,KAAK,CAAED,KAAK,CAAE,IAAI,EAAE;AAC3C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMnJ,cAAc,GAAG,CAAE8F,GAAG,EAAEuD,GAAG,KAAM;EAC7C,IAAIF,KAAK,GAAG,mBAAmB;EAC/B,IAAIG,KAAK,GAAG,CAAC,CAAC;EAEd,OAAOxD,GAAG,CAACH,QAAQ,EAAE,CAACjG,OAAO,CAAEyJ,KAAK,EAAE,MAAM;IAC3C,OAAOE,GAAG,CAAC,EAAEC,KAAK,CAAC;EACpB,CAAC,CAAE,IAAI,EAAE;AACV,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,MAAMrJ,KAAK,GAAKgJ,GAAG,IAAM;EAC/B,OAAO9J,IAAI,CAACsD,GAAG,CAAEwG,GAAG,GAAG,CAAC,CAAE,IAAI,CAAC;AAChC,CAAC;;;;;;UC9ZD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;ACNoC;AACE;;AAEtC;AACA;AACA;AACA;AACA,MAAMM,eAAe,GAAKC,KAAK,IAAM;EACpCxK,MAAM,CAACyK,aAAa,GAAG,IAAIC,eAAe,EAAE;EAC5C,IAAItN,OAAO,GAAG,CAAC;EAEf4C,MAAM,CAAC2K,gBAAgB,CAAE,QAAQ,EAAE,MAAM;IACxC,IAAKH,KAAK,CAAC7L,MAAM,KAAKvB,OAAO,EAAG;MAC/B,OAAO4C,MAAM,CAACyK,aAAa,CAACG,KAAK,EAAE;IACpC;IAEAJ,KAAK,CAAC1M,OAAO,CAAI+M,IAAI,IAAM;MAC1B,IAAKA,IAAI,CAACxN,KAAK,EAAE,EAAG;QACnBD,OAAO,EAAE;MACV;IACD,CAAC,CAAE;EACJ,CAAC,EAAE;IAAE0N,MAAM,EAAE9K,MAAM,CAACyK,aAAa,CAACK;EAAO,CAAC,CAAE;AAC7C,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMC,cAAc,GAAKC,MAAM,IAAM;EACpChL,MAAM,CAACiL,cAAc,GAAG,IAAIP,eAAe,EAAE;EAC7C,IAAInE,WAAW,GAAG,CAAC;EACnB,IAAI2E,WAAW,GAAG,IAAI;EAEtBlL,MAAM,CAAC2K,gBAAgB,CAAE,QAAQ,EAAE,MAAM;IACxCK,MAAM,CAAClN,OAAO,CAAIqN,KAAK,IAAM;MAC5BA,KAAK,CAAC9N,KAAK,CAAEkJ,WAAW,CAAE;IAC3B,CAAC,CAAE;IAEH,IAAI2E,WAAW,KAAK,IAAI,EAAG;MAC1BhN,YAAY,CAAEgN,WAAW,CAAE;IAC5B;IAEAA,WAAW,GAAG9M,UAAU,CAAE,YAAW;MACpCmI,WAAW,GAAGvG,MAAM,CAACoL,OAAO;IAC7B,CAAC,EAAE,GAAG,CAAE;EACT,CAAC,EAAE;IAAEN,MAAM,EAAE9K,MAAM,CAACiL,cAAc,CAACH;EAAO,CAAC,CAAE;AAC9C,CAAC;AAEDxB,QAAQ,CAACqB,gBAAgB,CAAE,kBAAkB,EAAE,YAAY;EAC1D,MAAMH,KAAK,GAAG,EAAE;EAChB,MAAMQ,MAAM,GAAG,EAAE;EAEjB1B,QAAQ,CAAC5K,gBAAgB,CAAE,eAAe,CAAE,CAACZ,OAAO,CAAIf,EAAE,IAAM;IAC/DA,EAAE,CAACsO,OAAO,GAAG,IAAIvO,4CAAI,CAAEC,EAAE,CAAE;IAC3ByN,KAAK,CAAC5H,IAAI,CAAE7F,EAAE,CAACsO,OAAO,CAAE;EACzB,CAAC,CAAE;EAEH/B,QAAQ,CAAC5K,gBAAgB,CAAE,gBAAgB,CAAE,CAACZ,OAAO,CAAIf,EAAE,IAAM;IAChEA,EAAE,CAACuO,QAAQ,GAAG,IAAIjF,8CAAK,CAAEtJ,EAAE,CAAE;IAC7BiO,MAAM,CAACpI,IAAI,CAAE7F,EAAE,CAACuO,QAAQ,CAAE;EAC3B,CAAC,CAAE;EAEHf,eAAe,CAAEC,KAAK,CAAE;EACxB;AACD,CAAC,CAAE,C","sources":["webpack://swanim/./anim/Anim.js","webpack://swanim/./anim/Counter.js","webpack://swanim/./anim/Keyrame.js","webpack://swanim/./anim/Spring.js","webpack://swanim/./anim/Swift.js","webpack://swanim/./utils/helper.js","webpack://swanim/webpack/bootstrap","webpack://swanim/webpack/runtime/define property getters","webpack://swanim/webpack/runtime/hasOwnProperty shorthand","webpack://swanim/webpack/runtime/make namespace object","webpack://swanim/./src/view.js"],"sourcesContent":["import { Keyframe } from \"./Keyrame\";\r\n\r\nimport { \r\n\tstrToJson, \r\n\tgetDisplayType, \r\n\tisPeekedIntoView \r\n} from \"../utils/helper\";\r\n\r\n/**\r\n * Handles the playing of different animation effects.\r\n *\r\n * @param {node} el\r\n * @param {Object} animJson\r\n * @return {node}\r\n */\r\nexport const Anim = function( el, animJson ) {\r\n\tthis.el = el;\r\n\tthis.animJson = animJson;\r\n\r\n\tif ( el.getAttribute( 'data-swanim' ) ) {\r\n\t\tthis.animJson = strToJson( el.getAttribute( 'data-swanim' ) );\r\n\t\tel.setAttribute( 'data-swanim', this.animJson.type );\r\n\t}\r\n\r\n\tthis.started = false;\r\n\r\n\tif ( this.el && this.animJson ) {\r\n\t\tthis.start();\r\n\t}\r\n\r\n\treturn this;\r\n}\r\n\r\n/**\r\n * Starts the animation if its within the viewport.\r\n *\r\n * @return {boolean}\r\n */\r\nAnim.prototype.start = function() {\r\n\tif ( !isPeekedIntoView( this.el, this.animJson.peek ) || this.started ) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tthis.started = true;\r\n\tthis.play();\r\n\r\n\treturn true;\r\n}\r\n\r\n/**\r\n * Tests the animation within the gutenberg editor.\r\n *\r\n * @param {node} el\r\n * @param {Object} animJson\r\n * @return {boolean}\r\n */\r\nAnim.prototype.live = function( el, animJson ) {\r\n\tthis.animJson = animJson;\r\n\tthis.el = el;\r\n\r\n\tthis.play();\r\n}\r\n\r\n/**\r\n * Starts playing the animation keyframes.\r\n *\r\n * @return {boolean}\r\n */\r\nAnim.prototype.play = function() {\r\n\tconst els = this.getElements();\r\n\r\n\tthis.resetElements( els );\r\n\tthis.prepElements( els );\r\n\tthis.el.setAttribute( 'data-swanimate', 1 );\r\n\r\n\tels.forEach( ( el, index ) => {\r\n\t\tthis.stopKeyframe( el );\r\n\t\tthis.playKeyframe( el, index );\r\n\t} );\r\n\r\n\tclearTimeout( this._timeout );\r\n\tthis._timeout = setTimeout( () => {\r\n\t\tthis.unprepElements( els );\r\n\t\tthis.el.setAttribute( 'data-swanimate', 0 );\r\n\t}, this.animJson.duration + this.animJson.delay + this.totaInterval );\r\n\r\n\treturn true;\r\n}\r\n\r\n/**\r\n * Retrieves the elements to play animation.\r\n *\r\n * @return {node}\r\n */\r\nAnim.prototype.getElements = function() {\r\n\tlet els = [ this.el ];\r\n\tthis.totaInterval = 0;\r\n\t\r\n\tif ( this.animJson.cascadeEl ) {\r\n\t\tels = this.el.querySelectorAll( ':scope > ' + this.animJson.cascadeEl );\r\n\t\tthis.totaInterval = ( els.length - 1 ) * ( this.animJson.cascadeInt || 0 );\r\n\t}\r\n\r\n\telse if ( this.animJson.hasMask ) {\r\n\t\tels = this.el.querySelectorAll( ':scope > *' );\r\n\t}\r\n\r\n\treturn els;\r\n}\r\n\r\n/**\r\n * Resets the styles and states of the all the elements.\r\n *\r\n * @param {node} els\r\n */\r\nAnim.prototype.resetElements = function( els ) {\r\n\tels.forEach( ( el ) => {\r\n\t\tif ( el._swkeyframe ) {\r\n\t\t\tel._swkeyframe.resetCounter();\r\n\t\t}\r\n\t} );\r\n}\r\n\r\n/**\r\n * Prepares the element before animating.\r\n *\r\n * @param {node} els\r\n */\r\nAnim.prototype.prepElements = function( els ) {\r\n\tif ( this.animJson.hasMask ) {\r\n\t\tthis.el.setAttribute( 'data-swmask', 1 );\r\n\t}\r\n\r\n\tels.forEach( ( el ) => {\r\n\t\tif ( getDisplayType( el ) == 'inline' ) {\r\n\t\t\tel.style.display = 'inline-block';\r\n\t\t}\r\n\r\n\t\tif ( this.animJson.cascadeEl ) {\r\n\t\t\tel.setAttribute( 'data-swcascade', 1 );\r\n\t\t}\r\n\t} );\r\n}\r\n\r\n/**\r\n * Unprepares the element after animating.\r\n *\r\n * @param {node} els\r\n */\r\nAnim.prototype.unprepElements = function( els ) {\r\n\tif ( this.animJson.hasMask ) {\r\n\t\tthis.el.removeAttribute( 'data-swmask' );\r\n\t}\r\n\r\n\tels.forEach( ( el ) => {\r\n\t\tif ( this.animJson.cascadeEl ) {\r\n\t\t\tel.removeAttribute( 'data-swcascade' );\r\n\t\t}\r\n\t} );\r\n}\r\n\r\n/**\r\n * Plays the animation keyframe.\r\n *\r\n * @param {node} el\r\n * @param {number} index\r\n */\r\nAnim.prototype.playKeyframe = function( el, index ) {\r\n\tel._swkeyframe = new Keyframe( el, this.animJson, index );\r\n\tel._swkeyframe.play();\r\n}\r\n\r\n/**\r\n * Stops the animation keyframe.\r\n *\r\n * @param {Node} el\r\n */\r\nAnim.prototype.stopKeyframe = ( el ) => {\r\n\tif ( el._swkeyframe ) {\r\n\t\tel._swkeyframe.stop();\r\n\t}\r\n}","import { numberWithCommas } from \"../utils/helper\";\r\n\r\n/**\r\n * Handles the playing of counter animation.\r\n *\r\n * @param {node} el\r\n * @return {node}\r\n */\r\nexport const Counter = function( el, animJson ) {\r\n\tthis.el = el;\r\n\tthis.animJson = animJson;\r\n\r\n\treturn this;\r\n}\r\n\r\n/**\r\n * Starts the counter animation of a prop.\r\n *\r\n * @return {boolean|Object}\r\n */\r\nCounter.prototype.play = function() {\r\n\tif ( !this.isTextNode() ) {\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\tthis.counterHtml = this.el.innerHTML;\r\n\tlet startTimestamp = null;\r\n\t\r\n\tconst step = ( timestamp ) => {\r\n\t\tif ( !startTimestamp ) {\r\n\t\t\tstartTimestamp = timestamp;\r\n\t\t}\r\n\t\t\r\n\t\tconst progress = this.getProgress( timestamp, startTimestamp );\r\n\t\tthis.el.innerText = this.getNewText( progress );\r\n\r\n\t\tif ( progress < 1 ) {\r\n\t\t\twindow.requestAnimationFrame( step );\r\n\t\t}\r\n\t}\r\n\t\r\n\tsetTimeout( () => {\r\n\t\twindow.requestAnimationFrame( step );\r\n\t}, this.animJson.delay );\r\n\t\r\n\treturn true;\r\n}\r\n\r\n/**\r\n * Retrieves the progress based on the timestamps.\r\n *\r\n */\r\nCounter.prototype.getProgress = function( timestamp, startTimestamp ) {\r\n\tconst diffTimestamp = timestamp - startTimestamp;\r\n\treturn Math.min( diffTimestamp / this.animJson.duration, 1 );\r\n}\r\n\r\n/**\r\n * Retrieves the new counter text given the progress.\r\n *\r\n */\r\nCounter.prototype.getNewText = function( progress ) {\r\n\tconst start = parseFloat( this.animJson.start );\r\n\tconst end = parseFloat( this.animJson.end );\r\n\tconst newText = numberWithCommas( Math.floor( progress * ( end - start ) + start ) );\r\n\r\n\tconst format = this.animJson.format || '{counter}';\r\n\treturn format.replace( '{counter}', newText );\r\n}\r\n\r\n/**\r\n * Checks if the element is a tet node type.\r\n *\r\n */\r\nCounter.prototype.isTextNode = function() {\r\n\tconst textNodes = ['P', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\r\n\r\n\treturn ( textNodes.includes( this.el.tagName ) );\r\n}","import { Spring } from \"./Spring\";\r\nimport { Counter } from \"./Counter\";\r\n\r\nimport { \r\n\textractNumbers, \r\n\treplaceNumbers, \r\n\tisOdd \r\n} from \"../utils/helper\";\r\n\r\n/**\r\n * Handles the playing of keyframe animation.\r\n *\r\n * @param {node} el\r\n * @param {Object} animJson\r\n * @param {number} index\r\n * @return {node}\r\n */\r\nexport const Keyframe = function( el, animJson, index = 0 ) {\r\n\tthis.el = el;\r\n\tthis.animJson = animJson;\r\n\r\n\tthis.interval = ( this.animJson.cascadeInt || 0 ) * index;\r\n\tthis.index = index;\r\n\r\n\treturn this;\r\n}\r\n\r\n/**\r\n * Starts the keyframe animation.\r\n *\r\n */\r\nKeyframe.prototype.play = function() {\r\n\tif ( this.animJson.hasFade ) {\r\n\t\tthis.fadeIn();\r\n\t}\r\n\r\n\tif ( this.animJson.type == 'counter' ) {\r\n\t\treturn this.playCounter()\r\n\t}\r\n\r\n\tif ( this.animJson.hasSpring ) {\r\n\t\treturn this.playSpring()\r\n\t}\r\n\r\n\tconst keyframes = [\r\n\t\tthis.getStartStyle(),\r\n\t\tthis.getEndStyle()\r\n\t];\r\n\r\n\tconst keyframeEffect = new KeyframeEffect( this.el, keyframes, {\r\n\t\tfill: 'both',\r\n\t\teasing: this.animJson.easing,\r\n\t\tduration: this.animJson.duration,\r\n\t\tdelay: this.animJson.delay + this.interval\r\n\t} );\r\n\t\r\n\tthis.animation = new Animation( keyframeEffect );\r\n\tthis.animation.play();\r\n}\r\n\r\n/**\r\n * Stops the keyframe animation.\r\n *\r\n */\r\nKeyframe.prototype.stop = function() {\r\n\tif ( this.animation ) {\r\n\t\tthis.animation.finish();\r\n\t}\r\n}\r\n\r\n/**\r\n * Plays the spring animation to the element.\r\n *\r\n */\r\nKeyframe.prototype.playSpring = function() {\r\n\tthis.spring = new Spring ( this.el, this.animJson );\r\n\tconst startStyle = this.getStartStyle();\r\n\tconst endStyle = this.getEndStyle();\r\n\r\n\tthis.spring.play( startStyle, endStyle, this.interval );\r\n}\r\n\r\n/**\r\n * Plays the counter animation to the element.\r\n *\r\n */\r\nKeyframe.prototype.playCounter = function() {\r\n\tthis.counter = new Counter( this.el, this.animJson );\r\n\tthis.counter.play();\r\n}\r\n\r\n/**\r\n * Resets the counter text back to its original.\r\n *\r\n */\r\nKeyframe.prototype.resetCounter = function() {\r\n\tif ( this.counter ) {\r\n\t\tthis.counter.el.innerHTML = this.counter.counterHtml;\r\n\t}\r\n}\r\n\r\n/**\r\n * Fade in earlier than the animation if needed.\r\n *\r\n */\r\nKeyframe.prototype.fadeIn = function() {\r\n\tconst keyframes = [\r\n\t\t{ opacity: 0} ,\r\n\t\t{ opacity: 1 }\r\n\t];\r\n\r\n\tlet duration = this.animJson.duration;\r\n\tif ( this.animJson.type != 'fade' ) {\r\n\t\tduration = duration / 2;\r\n\t}\r\n\r\n\tconst keyframeEffect = new KeyframeEffect( this.el, keyframes, {\r\n\t\tfill: 'both',\r\n\t\tduration: duration,\r\n\t\teasing: this.animJson.easing,\r\n\t\tdelay: this.animJson.delay + this.interval\r\n\t} );\r\n\r\n\tconst animation = new Animation( keyframeEffect );\r\n\tanimation.play();\r\n}\r\n\r\n/**\r\n * Sets the start style before the animation.\r\n *\r\n */\r\nKeyframe.prototype.getStartStyle = function() {\r\n\tconst transforms = this.getTransforms();\r\n\tconst transformArr = [];\r\n\tlet animStyle = {};\r\n\r\n\tfor ( const prop in transforms ) {\r\n\t\tif ( this.animJson[ prop ] ) {\r\n\t\t\ttransformArr.push( prop + '(' + this.filterProp( prop, this.animJson[ prop ] ) + ')' );\r\n\t\t}\r\n\t}\r\n\r\n\tif ( transformArr.length ) {\r\n\t\tanimStyle.transform = transformArr.join(' ');\r\n\t}\r\n\r\n\tif ( this.animJson.clipPath ) {\r\n\t\tanimStyle.clipPath = this.filterProp( 'clipPath', this.animJson.clipPath );\r\n\t}\r\n\r\n\treturn animStyle;\r\n}\r\n\r\n/**\r\n * Sets the end style before the animation.\r\n *\r\n */\r\nKeyframe.prototype.getEndStyle = function() {\r\n\tconst transforms = this.getTransforms();\r\n\tconst transformArr = [];\r\n\tlet animStyle = {};\r\n\r\n\tfor ( const prop in transforms ) {\r\n\t\tif ( this.animJson[ prop ] ) {\r\n\t\t\ttransformArr.push( prop + '(' + transforms[ prop ] + ')' );\r\n\t\t}\r\n\t}\r\n\r\n\tif ( transformArr.length ) {\r\n\t\tanimStyle.transform = transformArr.join(' ');\r\n\t}\r\n\r\n\tif ( this.animJson.clipPath ) {\r\n\t\tanimStyle.clipPath = 'inset(0 0 0 0)';\r\n\t}\r\n\r\n\treturn animStyle;\r\n}\r\n\r\n\r\n/**\r\n * Filters the property value for oscillation.\r\n *\r\n * @param {Object} prop\r\n * @param {number} val\r\n */\r\nKeyframe.prototype.filterProp = function( prop, val ) {\r\n\tlet extractedArr = extractNumbers( val );\r\n\tconst filteredArr = [];\r\n\r\n\tif ( prop == 'clipPath' ) {\r\n\t\tif ( this.animJson.cascadeAlt && isOdd( this.index ) ) {\r\n\t\t\tconst r = extractedArr;\r\n\t\t\tlet r2 = [ r[ 1 ], r[ 0 ] ];\r\n\r\n\t\t\tif ( r.length == 4 ) {\r\n\t\t\t\tr2 = [ r[ 2 ], r[ 3 ], r[ 0 ], r[ 1 ] ];\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\textractedArr = r2;\r\n\t\t}\r\n\r\n\t\treturn replaceNumbers( val, extractedArr );\r\n\t}\r\n\r\n\textractedArr.forEach( ( extracted ) => {\r\n\t\textracted = parseFloat( extracted );\r\n\r\n\t\tif ( this.animJson.cascadeAlt && isOdd( this.index ) ) {\r\n\t\t\tif ( [ 'scale', 'scaleX', 'scaleY' ].includes( prop ) ) {\r\n\t\t\t\tconst adjust = Math.abs( 1 - extracted );\r\n\t\t\t\textracted = ( extracted > 1 ) ? 1 - adjust : 1 + adjust;\r\n\t\t\t} \r\n\t\t\t\r\n\t\t\telse {\r\n\t\t\t\textracted = -extracted;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfilteredArr.push( extracted );\r\n\t} );\r\n\r\n\t\r\n\r\n\treturn replaceNumbers( val, filteredArr );\r\n}\r\n\r\n/**\r\n * Retrieves the list of supported transform types.\r\n *\r\n */\r\nKeyframe.prototype.getTransforms = function() {\r\n\treturn {\r\n\t\ttranslateX: '0px',\r\n\t\ttranslateY: '0px',\r\n\t\tscale: '1', \r\n\t\tscaleX: '1', \r\n\t\tscaleY: '1', \r\n\t\trotate: '0deg', \r\n\t\trotateX: '0deg', \r\n\t\trotateY: '0deg', \r\n\t\tskewX: '0deg', \r\n\t\tskewY: '0deg' \r\n\t};\r\n}","import { \r\n\textractNumbers, \r\n\treplaceNumbers \r\n} from \"../utils/helper\";\r\n\r\n/**\r\n * Handles the playing of spring animation.\r\n *\r\n * @param {node} el\r\n * @return {node}\r\n */\r\nexport const Spring = function( el, animJson ) {\r\n\tthis.el = el;\r\n\tthis.animJson = animJson;\r\n\r\n\treturn this;\r\n}\r\n\r\n/**\r\n * Starts the spring animation of a prop.\r\n *\r\n * @param {Object} startStyle\r\n * @param {Object} endStyle\r\n * @param {number} interval\r\n * @return {boolean}\r\n */\r\nSpring.prototype.play = function( startStyle, endStyle, interval = 0 ) {\r\n\tfor ( const prop in startStyle ) {\r\n\t\tconst { keyframes, frames } = this.getKeyframes( prop, startStyle[ prop ], endStyle[ prop ] );\r\n\t\tlet duration = ( frames / 60 ) * 1000;\r\n\r\n\t\tif ( this.animJson.duration > duration ) {\r\n\t\t\tduration = this.animJson.duration;\r\n\t\t}\r\n\r\n\t\tif ( keyframes.length ) {\r\n\t\t\tconst keyframeEffect = new KeyframeEffect( this.el, keyframes, {\r\n\t\t\t\tfill: 'both',\r\n\t\t\t\teasing: 'linear',\r\n\t\t\t\tduration: duration,\r\n\t\t\t\tdelay: this.animJson.delay + interval\r\n\t\t\t} );\r\n\t\t\r\n\t\t\tkeyframeEffect.composite = 'add';\r\n\t\t\tthis.animation = new Animation( keyframeEffect );\r\n\t\t\tthis.animation.play();\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Retrieves the spring animation keyframes of a prop.\r\n *\r\n * @param {string} prop\r\n * @param {string} startVal\r\n * @param {string} endVal\r\n * @return {Array}\r\n */\r\nSpring.prototype.getKeyframes = function( prop, startVal, endVal ) {\r\n\tconst FRAME_MAX = 1000;\r\n\tconst FRAME_MIN = 60;\r\n\tconst FRAME_RATE = 1 / FRAME_MIN;\r\n\r\n\tconst startArr = extractNumbers( startVal );\r\n\tconst endArr = extractNumbers( endVal );\r\n\tconst keyframes = [];\r\n\tlet velocityArr = [];\r\n\tlet computedArr = [];\r\n\r\n\tstartArr.forEach( () => {\r\n\t\tvelocityArr.push( 0 )\r\n\t} );\r\n\t\r\n\tlet threshold = 0;\r\n\tlet frames = 0;\r\n\tlet display;\r\n\r\n\tfor ( let step = 0; step <= FRAME_MAX; step += 1 ) {\r\n\t\tstartArr.forEach( ( start, i ) => {\r\n\t\t\tstart = parseFloat( start );\r\n\t\t\tlet end = parseFloat( endArr[ i ] );\r\n\t\t\tlet accel = this.getAcceleration( start, end, velocityArr[ i ] )\r\n\t\t\tvelocityArr[ i ] += accel * FRAME_RATE;\r\n\t\t\tcomputedArr[ i ] = start + velocityArr[ i ] * FRAME_RATE;\r\n\t\t\tstartArr[ i ] = computedArr[ i ];\r\n\t\t} );\r\n\r\n\t\tlet computedStyle = replaceNumbers( startVal, computedArr );\r\n\t\tkeyframes.push( { [prop]: computedStyle } );\r\n\r\n\t\tdisplay = this.getLargestDisplay( computedArr, display );\r\n\t\tthreshold = this.getFramesThreshold( display, threshold );\r\n\r\n\t\tif ( threshold >= FRAME_MIN ) {\r\n\t\t\tframes = step;\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tif ( frames == 0 ) {\r\n\t\tframes = FRAME_MAX;\r\n\t}\r\n\r\n\treturn { keyframes, frames };\r\n}\r\n\r\n/**\r\n * Retrieves the largest display value.\r\n *\r\n * @param {Array} computedArr\r\n * @param {number} display\r\n * @return {number}\r\n */\r\nSpring.prototype.getLargestDisplay = function( computedArr, display ) {\r\n\tlet squares = 0;\r\n\r\n\tcomputedArr.forEach( ( computed ) => {\r\n\t\tsquares += ( computed ** 2 );\r\n\t} );\r\n\r\n\tconst max_displ = Math.max( display || -Infinity, Math.sqrt( squares ) );\r\n\tconst min_displ = Math.min( display || Infinity, Math.sqrt( squares ) );\r\n\r\n\treturn display < 0 ? max_displ : min_displ;\r\n}\r\n\r\n/**\r\n * Retrieves the updated frames threshold.\r\n *\r\n * @param {number} display\r\n * @param {number} threshold\r\n * @return {number}\r\n */\r\nSpring.prototype.getFramesThreshold = function( display, threshold ) {\r\n\tconst DISPL_THRESHOLD = 3;\r\n\r\n\tif ( Math.abs( display ) < DISPL_THRESHOLD ) {\r\n\t\tthreshold += 1;\r\n\t} else {\r\n\t\tthreshold = 0;\r\n\t}\r\n\r\n\treturn threshold;\r\n}\r\n\r\n/**\r\n * Retrieves the acceleration of a prop given the velocity.\r\n *\r\n * @param {string|number} prop\r\n * @param {number} end\r\n * @param {number} velocity\r\n * @return {number}\r\n */\r\nSpring.prototype.getAcceleration = function( prop, end, velocity ) {\r\n\tconst stiffness = -this.animJson.stiffness;\r\n\tconst damping = -this.animJson.damping;\r\n\tconst mass = this.animJson.mass;\r\n\r\n\tconst Aspring = stiffness * ( prop - end );\r\n\tconst Adamping = damping * velocity;\r\n\r\n\treturn ( Aspring + Adamping ) / mass;\r\n}","import { strToJson } from \"../utils/helper\";\r\n\r\n/**\r\n * Handles the playing of reactive animation.\r\n *\r\n * @param {node} el\r\n * @return {node}\r\n */\r\nexport const Swift = function( el ) {\r\n\tthis.el = el;\r\n\t\r\n\tthis.reactJson = strToJson( el.getAttribute( 'data-swreact' ) );\r\n\tel.setAttribute( 'data-swreact', this.reactJson.type );\r\n\r\n\tthis.started = false;\r\n\tthis.start();\r\n\r\n\treturn this;\r\n}\r\n\r\n/**\r\n * Starts the reactive animation if not animating.\r\n *\r\n * @return {boolean}\r\n */\r\nSwift.prototype.start = function( lastScrollY ) {\r\n\tif ( this.el.hasAttribute( 'data-swanim' ) && this.el.getAttribute( 'data-swanimate' ) != 0 ) {\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\tthis.started = true;\r\n\tthis.lastScrollY = lastScrollY;\r\n\t// new React\r\n\r\n\treturn true;\r\n}","/**\r\n * Retrieves a unique indentifier.\r\n *\r\n * @return {string}\r\n */\r\nexport const getUniqId = () => {\r\n\treturn Math.random().toString(16).slice(2)\r\n}\r\n\r\n/**\r\n * Retrieves a slug from a string.\r\n *\r\n * @param {string} str\r\n * @return {string}\r\n */\r\nexport const getSlug = ( str ) => {\r\n\treturn str.split(' ').join('-');\r\n}\r\n\r\n/**\r\n * Updates a json string with a new object.\r\n *\r\n * @param {Object} attributes\r\n * @param {Object} update\r\n * @return {Object}\r\n */\r\nexport const updateJsonStr = ( attributes, update ) => {\r\n\tconst json = JSON.parse( attributes[ attributes.type ] || '{}' );\r\n\tconst prop = Object.keys( update )[ 0 ];\r\n\tjson[ prop ] = update[ prop ];\r\n\r\n\treturn JSON.stringify( json );\r\n}\r\n\r\n/**\r\n * Extracts a prop from a json string.\r\n *\r\n * @param {Object} attributes\r\n * @param {string} prop\r\n * @return {string}\r\n */\r\nexport const extractJsonStr = ( attributes, prop ) => {\r\n\tconst json = JSON.parse( attributes[ attributes.type ] || '{}' );\r\n\treturn json[ prop ];\r\n}\r\n\r\n/**\r\n * Coverts the anim json into string.\r\n *\r\n * @param {Object} json\r\n * @return {string}\r\n */\r\nexport const jsonToStr = ( json ) => {\r\n\treturn JSON.stringify( json ).replace( /\"/ig,\"'\" );\r\n}\r\n\r\n/**\r\n * Coverts the anim string into json.\r\n *\r\n * @param {string} str\r\n * @return {Object}\r\n */\r\nexport const strToJson = ( str ) => {\r\n\treturn JSON.parse( str.replace( /'/ig,'\"' ) );\r\n}\r\n\r\n/**\r\n * Checks for empty attribute type and fill with defaults.\r\n *\r\n * @param {Object} attributes\r\n * @param {Object} defaults\r\n * @return {Object}\r\n */\r\nexport const checkAttributes = ( attributes, defaults ) => {\r\n\tif ( !attributes[ attributes.type ] ) {\r\n\t\tattributes[ attributes.type ] = JSON.stringify( defaults );\r\n\t}\r\n\r\n\treturn attributes;\r\n}\r\n\r\n/**\r\n * Parse time string into number.\r\n *\r\n * @param {string} json\r\n * @return {Object}\r\n */\r\nexport const parseTime = ( time ) => {\r\n\tif ( time.includes( 'ms' ) ) {\r\n\t\ttime = time.replace( 'ms', '' );\r\n\t\ttime = parseFloat( time );\r\n\t}\r\n\r\n\telse if ( time.includes( 's' ) ) {\r\n\t\ttime = time.replace( 's', '' );\r\n\t\ttime = parseFloat( time ) * 1000;\r\n\t}\r\n\r\n\treturn time;\r\n}\r\n\r\n/**\r\n * Retrieves the movement object given a type and distance.\r\n *\r\n * @param {string} type\r\n * @param {number} distance\r\n * @return {Object}\r\n */\r\nexport const getTranslate = ( type, distance ) => {\r\n\tconst move = {\r\n\t\ttranslateX: false,\r\n\t\ttranslateY: false\r\n\t};\r\n\t\r\n\tswitch( type ) {\r\n\t\tcase 'left': move.translateX = distance + 'px'; break;\r\n\t\tcase 'right': move.translateX = -distance + 'px'; break;\r\n\t\tcase 'top': move.translateY = distance + 'px'; break;\r\n\t\tcase 'topleft': \r\n\t\t\tmove.translateY = distance + 'px';\r\n\t\t\tmove.translateX = distance + 'px';\r\n\t\tbreak;\r\n\t\tcase 'topright': \r\n\t\t\tmove.translateY = distance + 'px';\r\n\t\t\tmove.translateX = -distance + 'px';\r\n\t\tbreak;\r\n\t\tcase 'botleft': \r\n\t\t\tmove.translateY = -distance + 'px'\r\n\t\t\tmove.translateX = distance + 'px';\r\n\t\tbreak;\r\n\t\tcase 'botright': \r\n\t\t\tmove.translateY = -distance + 'px'\r\n\t\t\tmove.translateX = -distance + 'px';\r\n\t\tbreak;\r\n\t\tdefault: move.translateY = -distance + 'px'; break;\r\n\t}\r\n\r\n\tfor ( const prop in move ) {\r\n\t\tif ( move[ prop ] === false ) {\r\n\t\t\tdelete move[prop]\r\n\t\t}\r\n\t}\r\n\r\n\treturn move;\r\n}\r\n\r\n/**\r\n * Retrieves the rotate object given a type and degree.\r\n *\r\n * @param {string} type\r\n * @param {number} degree\r\n * @return {Object}\r\n */\r\nexport const getRotate = ( type, degree ) => {\r\n\tconst positive = degree + 'deg';\r\n\tconst negative = -degree + 'deg';\r\n\r\n\tconst rotate = {\r\n\t\trotateX: false,\r\n\t\trotateY: false,\r\n\t\trotate: false\r\n\t};\r\n\r\n\tswitch( type ) {\r\n\t\tcase 'left': rotate.rotateY = positive; break;\r\n\t\tcase 'right': rotate.rotateY = negative; break;\r\n\t\tcase 'bottom': rotate.rotateX = positive; break;\r\n\t\tcase 'clockwise': rotate.rotate = negative; break;\r\n\t\tcase 'counter': rotate.rotate = positive; break;\r\n\t\tdefault: rotate.rotateX = negative; break;\r\n\t}\r\n\r\n\tfor ( const prop in rotate ) {\r\n\t\tif ( rotate[ prop ] === false ) {\r\n\t\t\tdelete rotate[prop]\r\n\t\t}\r\n\t}\r\n\r\n\treturn rotate;\r\n}\r\n\r\n/**\r\n * Retrieves the skew object given a type and degree.\r\n *\r\n * @param {string} type\r\n * @param {number} degree\r\n * @return {Object}\r\n */\r\nexport const getSkew = ( type, degree ) => {\r\n\tconst positive = degree + 'deg';\r\n\tconst negative = -degree + 'deg';\r\n\r\n\tconst skew = {\r\n\t\tskewX: false,\r\n\t\tskewY: false\r\n\t};\r\n\r\n\tswitch( type ) {\r\n\t\tcase 'vleft': skew.skewY = positive; break;\r\n\t\tcase 'vright': skew.skewY = negative; break;\r\n\t\tcase 'htop': skew.skewX = positive; break;\r\n\t\tdefault: skew.skewX = negative; break;\r\n\t}\r\n\r\n\tfor ( const prop in skew ) {\r\n\t\tif ( skew[ prop ] === false ) {\r\n\t\t\tdelete skew[prop]\r\n\t\t}\r\n\t}\r\n\r\n\treturn skew;\r\n}\r\n\r\n/**\r\n * Retrieves the clip path given the clip type.\r\n *\r\n * @param {string} type\r\n * @return {Object}\r\n */\r\nexport const getClipPath = ( type ) => {\r\n\tlet clipPath;\r\n\r\n\tswitch( type ) {\r\n\t\tcase 'left': clipPath = 'inset(0% 0% 0% 100%)'; break;\r\n\t\tcase 'right': clipPath = 'inset(0% 100% 0% 0%)'; break;\r\n\t\tcase 'top': clipPath = 'inset(100% 0% 0% 0%)'; break;\r\n\t\tcase 'horizontal': clipPath = 'inset(0% 100%)'; break;\r\n\t\tcase 'vertical': clipPath = 'inset(100% 0%)'; break;\r\n\t\tdefault: clipPath = 'inset(0% 0% 100% 0%)'; break;\r\n\t}\r\n\r\n\treturn clipPath;\r\n}\r\n\r\n/**\r\n * Retrieves the scale given the scale type and degree.\r\n *\r\n * @param {string} type\r\n * @return {Object}\r\n */\r\nexport const getScale = ( type, degree ) => {\r\n\tlet zoom = 1 + ( degree / 100 );\r\n\tlet shrink = 1 - ( degree * .010 );\r\n\r\n\tconst scale = {\r\n\t\tscaleX: false,\r\n\t\tscaleY: false,\r\n\t\tscale: false\r\n\t};\r\n\r\n\tswitch( type ) {\r\n\t\tcase 'hin': scale.scaleX = zoom; break;\r\n\t\tcase 'hout': scale.scaleX = shrink; break;\r\n\t\tcase 'vin': scale.scaleY = zoom; break;\r\n\t\tcase 'in': scale.scale = zoom; break;\r\n\t\tcase 'out': scale.scale = shrink; break;\r\n\t\tdefault: scale.scaleY = shrink; break;\r\n\t}\r\n\r\n\tfor ( const prop in scale ) {\r\n\t\tif ( scale[ prop ] === false ) {\r\n\t\t\tdelete scale[prop]\r\n\t\t}\r\n\t}\r\n\r\n\treturn scale;\r\n}\r\n\r\n/**\r\n * Retrieves the basic directions.\r\n *\r\n * @return {Object}\r\n */\r\nexport const getDirections = () => {\r\n\treturn [\r\n\t\t{ value: 'left', label: 'Left' },\r\n\t\t{ value: 'right', label: 'Right' },\r\n\t\t{ value: 'up', label: 'Up' },\r\n\t\t{ value: 'down', label: 'Down' }\r\n\t];\r\n}\r\n\r\n/**\r\n * Retrieves the time units.\r\n *\r\n * @return {Object}\r\n */\r\nexport const getTimeUnits = () => {\r\n\treturn [\r\n\t\t{ value: 'ms', label: 'ms' },\r\n\t\t{ value: 's', label: 's' }\r\n\t];\r\n}\r\n\r\n/**\r\n * Retrieve easing names with its cubic bezeir.\r\n *\r\n * @return {string}\r\n */\r\nexport const getEasings = () => {\r\n\treturn [\r\n\t\t{ label: 'linear', value: 'cubic-bezier(0.250, 0.250, 0.750, 0.750)' },\r\n\t\t{ label: 'ease', value: 'cubic-bezier(0.250, 0.100, 0.250, 1.000)' },\r\n\t\t{ label: 'easeIn', value: 'cubic-bezier(0.420, 0.000, 1.000, 1.000)' },\r\n\t\t{ label: 'easeOut', value: 'cubic-bezier(0.000, 0.000, 0.580, 1.000)' },\r\n\t\t{ label: 'easeInOut', value: 'cubic-bezier(0.420, 0.000, 0.580, 1.000)' },\r\n\r\n\t\t{ label: 'easeInQuad', value: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)' },\r\n\t\t{ label: 'easeInCubic', value: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)' },\r\n\t\t{ label: 'easeInQuart', value: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)' },\r\n\t\t{ label: 'easeInQuint', value: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)' },\r\n\t\t{ label: 'easeInSine', value: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)' },\r\n\t\t{ label: 'easeInExpo', value: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)' },\r\n\t\t{ label: 'easeInCirc', value: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)' },\r\n\t\t{ label: 'easeInBack', value: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)' },\r\n\r\n\t\t{ label: 'easeOutQuad', value: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)' },\r\n\t\t{ label: 'easeOutCubic', value: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)' },\r\n\t\t{ label: 'easeOutQuart', value: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)' },\r\n\t\t{ label: 'easeOutQuint', value: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)' },\r\n\t\t{ label: 'easeOutSine', value: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)' },\r\n\t\t{ label: 'easeOutExpo', value: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)' },\r\n\t\t{ label: 'easeOutCirc', value: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)' },\r\n\t\t{ label: 'easeOutBack', value: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)' },\r\n\r\n\t\t{ label: 'easeInOutQuad', value: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)' },\r\n\t\t{ label: 'easeInOutCubic', value: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)' },\r\n\t\t{ label: 'easeInOutQuart', value: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)' },\r\n\t\t{ label: 'easeInOutQuint', value: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)' },\r\n\t\t{ label: 'easeInOutSine', value: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)' },\r\n\t\t{ label: 'easeInOutExpo', value: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)' },\r\n\t\t{ label: 'easeInOutCirc', value: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)' },\r\n\t\t{ label: 'easeInOutBack', value: 'cubic-bezier(0.680,-0.550, 0.265, 1.550)' }\r\n\t];\r\n}\r\n\r\n/**\r\n * Checks if element is peeked in viewport.\r\n *\r\n * @param {Node} el\r\n * @param {number} percentVisible\r\n * @return {boolean}\r\n */\r\nexport const isPeekedIntoView = ( el, percentVisible = 20 ) => {\r\n\tlet rect = el.getBoundingClientRect();\r\n\tlet windowHeight = ( window.innerHeight || document.documentElement.clientHeight );\r\n\r\n\tconst peekTop = ( rect.top >= 0 ? 0 : rect.top ) / +-rect.height;\r\n\tconst peekBottom = ( rect.bottom - windowHeight ) / rect.height;\r\n\r\n\treturn !(\r\n\t\tMath.floor( 100 - ( peekTop * 100 ) ) < percentVisible ||\r\n\t\tMath.floor( 100 - peekBottom * 100 ) < percentVisible\r\n\t);\r\n}\r\n\r\n/**\r\n * Retrieves the display type of an element.\r\n *\r\n * @param {Node} el\r\n * @return {string}\r\n */\r\nexport const getDisplayType = ( el ) => {\r\n const cStyle = el.currentStyle || window.getComputedStyle( el, '' ); \r\n return cStyle.display;\r\n}\r\n\r\n/**\r\n * Convert a number into a number with commas.\r\n *\r\n * @param {number} num\r\n * @return {number}\r\n */\r\nexport const numberWithCommas = ( num ) => {\r\n\treturn num.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n}\r\n\r\n/**\r\n* Extracts all numbers from a string.\r\n*\r\n* @param {string} str\r\n* @return {Array}\r\n*/\r\nexport const extractNumbers = ( str ) => {\r\n\tstr = ( str == undefined ) ? '' : str;\r\n\r\n\tvar regex = /[+-]?\\d+(\\.\\d+)?/g;\r\n\treturn str.toString().match( regex ) || [];\r\n};\r\n\r\n/**\r\n * Replaces all numbers from a string given an array of numbers as reference.\r\n *\r\n * @param {string} str\r\n * @param {Array} arr\r\n * @return {Array}\r\n */\r\nexport const replaceNumbers = ( str, arr ) => {\r\n\tvar regex = /[+-]?\\d+(\\.\\d+)?/g;\r\n\tvar count = -1;\r\n\r\n\treturn str.toString().replace( regex, () => {\r\n\t\treturn arr[++count];\r\n\t} ) || [];\r\n};\r\n\r\n/**\r\n * Checks if a number is odd.\r\n *\r\n * @param {number} num\r\n * @return {boolean}\r\n */\r\nexport const isOdd = ( num ) => {\r\n\treturn Math.abs( num % 2 ) == 1;\r\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { Anim } from \"../anim/Anim\";\r\nimport { Swift } from \"../anim/Swift\";\r\n\r\n/**\r\n * Listens for scrolling to trigger the animation.\r\n *\r\n */\r\nconst listenAnimation = ( Anims ) => {\r\n\twindow._animListener = new AbortController();\r\n\tlet started = 0;\r\n\r\n\twindow.addEventListener( 'scroll', () => {\r\n\t\tif ( Anims.length === started ) {\r\n\t\t\treturn window._animListener.abort();\r\n\t\t}\r\n\r\n\t\tAnims.forEach( ( anim ) => {\r\n\t\t\tif ( anim.start() ) {\r\n\t\t\t\tstarted++;\r\n\t\t\t}\r\n\t\t} );\r\n\t}, { signal: window._animListener.signal } );\r\n}\r\n\r\n/**\r\n * Listens for scrolling to trigger the reactive animation.\r\n *\r\n */\r\nconst listenReactive = ( Reacts ) => {\r\n\twindow._reactListener = new AbortController();\r\n\tlet lastScrollY = 0;\r\n\tlet scrollTimer = null;\r\n\r\n\twindow.addEventListener( 'scroll', () => {\r\n\t\tReacts.forEach( ( react ) => {\r\n\t\t\treact.start( lastScrollY );\r\n\t\t} );\r\n\r\n\t\tif( scrollTimer !== null ) {\r\n\t\t\tclearTimeout( scrollTimer ); \r\n\t\t}\r\n\r\n\t\tscrollTimer = setTimeout( function() {\r\n\t\t\tlastScrollY = window.scrollY;\r\n\t\t}, 150 );\r\n\t}, { signal: window._reactListener.signal } );\r\n}\r\n\r\ndocument.addEventListener( 'DOMContentLoaded', async () => {\r\n\tconst Anims = [];\r\n\tconst Reacts = []\r\n\r\n\tdocument.querySelectorAll( '[data-swanim]' ).forEach( ( el ) => {\r\n\t\tel._swanim = new Anim( el );\r\n\t\tAnims.push( el._swanim );\r\n\t} );\r\n\r\n\tdocument.querySelectorAll( '[data-swreact]' ).forEach( ( el ) => {\r\n\t\tel._swswift = new Swift( el );\r\n\t\tReacts.push( el._swswift );\r\n\t} );\r\n\r\n\tlistenAnimation( Anims );\r\n\t//listenReactive( Reacts );\r\n} );"],"names":["Keyframe","strToJson","getDisplayType","isPeekedIntoView","Anim","el","animJson","getAttribute","setAttribute","type","started","start","prototype","peek","play","live","els","getElements","resetElements","prepElements","forEach","index","stopKeyframe","playKeyframe","clearTimeout","_timeout","setTimeout","unprepElements","duration","delay","totaInterval","cascadeEl","querySelectorAll","length","cascadeInt","hasMask","_swkeyframe","resetCounter","style","display","removeAttribute","stop","numberWithCommas","Counter","isTextNode","counterHtml","innerHTML","startTimestamp","step","timestamp","progress","getProgress","innerText","getNewText","window","requestAnimationFrame","diffTimestamp","Math","min","parseFloat","end","newText","floor","format","replace","textNodes","includes","tagName","Spring","extractNumbers","replaceNumbers","isOdd","interval","hasFade","fadeIn","playCounter","hasSpring","playSpring","keyframes","getStartStyle","getEndStyle","keyframeEffect","KeyframeEffect","fill","easing","animation","Animation","finish","spring","startStyle","endStyle","counter","opacity","transforms","getTransforms","transformArr","animStyle","prop","push","filterProp","transform","join","clipPath","val","extractedArr","filteredArr","cascadeAlt","r","r2","extracted","adjust","abs","translateX","translateY","scale","scaleX","scaleY","rotate","rotateX","rotateY","skewX","skewY","frames","getKeyframes","composite","startVal","endVal","FRAME_MAX","FRAME_MIN","FRAME_RATE","startArr","endArr","velocityArr","computedArr","threshold","i","accel","getAcceleration","computedStyle","getLargestDisplay","getFramesThreshold","squares","computed","max_displ","max","Infinity","sqrt","min_displ","DISPL_THRESHOLD","velocity","stiffness","damping","mass","Aspring","Adamping","Swift","reactJson","lastScrollY","hasAttribute","getUniqId","random","toString","slice","getSlug","str","split","updateJsonStr","attributes","update","json","JSON","parse","Object","keys","stringify","extractJsonStr","jsonToStr","checkAttributes","defaults","parseTime","time","getTranslate","distance","move","getRotate","degree","positive","negative","getSkew","skew","getClipPath","getScale","zoom","shrink","getDirections","value","label","getTimeUnits","getEasings","percentVisible","rect","getBoundingClientRect","windowHeight","innerHeight","document","documentElement","clientHeight","peekTop","top","height","peekBottom","bottom","cStyle","currentStyle","getComputedStyle","num","undefined","regex","match","arr","count","listenAnimation","Anims","_animListener","AbortController","addEventListener","abort","anim","signal","listenReactive","Reacts","_reactListener","scrollTimer","react","scrollY","_swanim","_swswift"],"sourceRoot":""}